├── README.md
├── doc
└── STM32F4_Discovery_Arduino.PNG
└── examples
├── AccelerometerControlsSound
├── AccelerometerControlsSound.ino
├── BufferPlayer.cpp
├── BufferPlayer.h
├── CS43L22_STM32.cpp
├── CS43L22_STM32.h
├── LIS3DSx.cpp
├── LIS3DSx.h
├── wavetables.c
└── wavetables.h
├── AudioBufferPlayer_sineWave
├── AudioBufferPlayer_sineWave.ino
├── BufferPlayer.cpp
├── BufferPlayer.h
├── CS43L22_STM32.cpp
└── CS43L22_STM32.h
├── LIS3DSx_Accelerometer
├── LIS3DSx.cpp
├── LIS3DSx.h
└── LIS3DSx_Accelerometer.ino
└── MicrophonePlayBack
├── BufferPlayer.cpp
├── BufferPlayer.h
├── CS43L22_STM32.cpp
├── CS43L22_STM32.h
├── Microphone.cpp
├── Microphone.h
└── MicrophonePlayBack.ino
/README.md:
--------------------------------------------------------------------------------
1 | # Arduino_STM32F4_Discovery
2 |
3 | ## What?
4 | The [STM32F4 Discovery](http://www.st.com/en/evaluation-tools/stm32f4discovery.html) is a development board with an ARM microcontrolller from STM which is very suitable for audio applications.
5 | Now it is possible to program it with the Arduino-IDE if you have installed the plugins.
6 |
7 | ## Why
8 | Programming the STM32F407 microcontroller is usually very complicated if you are using the common deveoper IDEs and frameworks.
9 | With Arduino-IDE it is now possible for every one.
10 |
11 | ## Demo Applications
12 | - playing sound
13 | - using the accelerometer
14 | - controlling the sound with the accelerometer
15 |
16 | ## Installation
17 |
18 | You have to install the [STM32GENERIC framework](https://github.com/ChrisMicro/STM32GENERIC).
19 |
20 | The installatiion instructions you will [find here](https://danieleff.github.io/STM32GENERIC/).
21 |
22 |
23 |
24 |
25 |
26 |
--------------------------------------------------------------------------------
/doc/STM32F4_Discovery_Arduino.PNG:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ChrisMicro/Arduino_STM32F4_Discovery/7505529aecfe7478c3bb9e0b37f901f34da56289/doc/STM32F4_Discovery_Arduino.PNG
--------------------------------------------------------------------------------
/examples/AccelerometerControlsSound/AccelerometerControlsSound.ino:
--------------------------------------------------------------------------------
1 | /*
2 | accelerometer controlls sound pitch and repetion rate
3 |
4 | Framework used: Arduino compatiple STM32GENERIC
5 | Hardware: STM32F4 Discovery
6 | codec: CS43L22 Audio DAC
7 | accelerometer: LIS302DL or LIS3DSH
8 | ( depends on the verison of the STM32F4 Discovery board )
9 |
10 | *************************************************************************************
11 |
12 | This program is free software; you can redistribute it and/or modify
13 | it under the terms of the GNU General Public License as published by
14 | the Free Software Foundation; either version 2 of the License, or
15 | (at your option) any later version.
16 |
17 | ********************************** list of outhors **********************************
18 | v0.1 2.Mai.2017 C. ChrisMicro initial version
19 |
20 | It is mandatory to keep the list of authors in this code.
21 | Please add your name if you improve/extend something
22 | 2017 ChrisMicro
23 | *************************************************************************************
24 | */
25 |
26 | #include "LIS3DSx.h"
27 | #include "BufferPlayer.h"
28 | #include "wavetables.h"
29 |
30 | #define SERIALINTERFACE SerialUSB
31 |
32 | LIS3DSx Accelerometer;
33 | BufferPlayer Player;
34 |
35 |
36 | #define NUMLEDS 4
37 | const uint8_t Led[] = {LED_GREEN, LED_ORANGE, LED_RED, LED_BLUE};
38 |
39 | void setLed(uint8_t n, uint8_t state)
40 | {
41 | if(n==4)digitalWrite(Led[n], !state);
42 | else digitalWrite(Led[n], state);
43 | }
44 |
45 | void setup()
46 | {
47 | //SERIALINTERFACE.begin(115200);
48 |
49 | delay(1000);
50 |
51 | //SERIALINTERFACE.println("\n accelerometer");
52 |
53 | // print sensor informatiion
54 | Accelerometer.begin();
55 | Player.begin(16000);
56 | for (int n = 0; n < NUMLEDS; n++) pinMode(Led[n], OUTPUT);
57 |
58 | }
59 |
60 | uint8_t LedCounter=0;
61 | void loop()
62 | {
63 | //SERIALINTERFACE.print(" X: "); SERIALINTERFACE.print ( Accelerometer.getX_g() );
64 | //SERIALINTERFACE.print(" Y: "); SERIALINTERFACE.print ( Accelerometer.getY_g() );
65 | //SERIALINTERFACE.print(" Z: "); SERIALINTERFACE.println( Accelerometer.getZ_g() );
66 |
67 | //SERIALINTERFACE.print(" abosolute acceleration: "); SERIALINTERFACE.println( Accelerometer.absolute_g() );
68 |
69 | //delay(500);
70 | float duration;
71 | float randomSpeedFactor;
72 |
73 | duration = 0.1 + abs(Accelerometer.getX_g());
74 | randomSpeedFactor = 0.05 + abs(Accelerometer.getZ_g());
75 |
76 | //SERIALINTERFACE.print("duration"); SERIALINTERFACE.print(duration);
77 |
78 | if ( Accelerometer.getZ_g() > 0 ) Player.playBuffer(piano , SONGLEN, duration, randomSpeedFactor);
79 | else Player.playBuffer(sabine, SONGLEN, duration, randomSpeedFactor);
80 |
81 | setLed(LedCounter++,0);
82 |
83 | if(LedCounter>3)LedCounter=0;
84 | setLed(LedCounter,1);
85 |
86 | }
87 |
88 |
89 |
90 |
--------------------------------------------------------------------------------
/examples/AccelerometerControlsSound/BufferPlayer.cpp:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Blocking buffer player using the
4 | CS43L22 codec class for Arduino STM32GENERIC
5 |
6 | *************************************************************************************
7 |
8 | This program is free software; you can redistribute it and/or modify
9 | it under the terms of the GNU General Public License as published by
10 | the Free Software Foundation; either version 2 of the License, or
11 | (at your option) any later version.
12 |
13 | ********************************** list of outhors **********************************
14 | v0.1 2.Mai.2017 C. ChrisMicro initial version
15 |
16 | It is mandatory to keep the list of authors in this code.
17 | Please add your name if you improve/extend something
18 | 2017 ChrisMicro
19 | *************************************************************************************
20 | */
21 | #include "Arduino.h"
22 | #include "BufferPlayer.h"
23 | #include "CS43L22_STM32.h"
24 | #include "I2S.h"
25 |
26 | I2SClass I2S(SPI3, PC12 /*sd*/ , PA4 /*ws*/, PC10 /*ck*/, PC7/* MCK*/); // setup for STM32F4 Discovery, check your board schematic
27 |
28 | CS43L22_STM32 Codec;
29 |
30 | #define AUDIOCODEC_CS PD4
31 |
32 | BufferPlayer::BufferPlayer()
33 | {
34 |
35 | };
36 |
37 | void BufferPlayer::begin(uint32_t samplingFrequency_Hz)
38 | {
39 | SamplingFrequency=samplingFrequency_Hz;
40 |
41 | pinMode(AUDIOCODEC_CS, OUTPUT); // the chip select pin of the codec needs to be enabled
42 |
43 | // digitalWrite(AUDIOCODEC_CS, HIGH);
44 | // start I2S
45 | // I2S will also produce MCK for the codec of aroung 12Mhz
46 | // without MCK the CS43L22 is not working
47 | I2S.begin(I2S_PHILIPS_MODE, samplingFrequency_Hz, 16);
48 |
49 | digitalWrite(AUDIOCODEC_CS, HIGH); // enable codec
50 | Codec.begin();
51 | }
52 |
53 | #define DACZEROAMPLITUDE 0x4000
54 | int Amplitude = 100;
55 |
56 | // unsigned byte buffer player
57 | void BufferPlayer::playBuffer(const uint8_t *table, uint32_t tableLength, float maxDuration_sec, float speedFactor)
58 | {
59 | uint32_t duration_ms = maxDuration_sec * 1000;
60 | float index = 0;
61 |
62 | uint32_t startTime = millis();
63 | while (millis() - startTime < duration_ms)
64 | {
65 | if (index < tableLength)
66 | {
67 | int dacValue = DACZEROAMPLITUDE + ((int)table[(int)index] - 128) * Amplitude;
68 | I2S.write(dacValue); // left channel
69 | I2S.write(dacValue); // right channel
70 | index+=speedFactor;
71 | } else
72 | {
73 | I2S.write(DACZEROAMPLITUDE);
74 | I2S.write(DACZEROAMPLITUDE);
75 | }
76 | }
77 | }
78 | void BufferPlayer::playBuffer(const uint8_t *table, uint32_t tableLength)
79 | {
80 | float maxDuration_sec = tableLength / SamplingFrequency;
81 | float speedFactor = 1;
82 | playBuffer(table, tableLength, maxDuration_sec, speedFactor );
83 | }
84 |
85 | // 16 bit buffer player
86 | // table values: full scale range -32768..+32767
87 | void BufferPlayer::playBuffer(int16_t *table, uint32_t tableLength, float maxDuration_sec, float speedFactor)
88 | {
89 | uint32_t duration_ms = maxDuration_sec * 1000;
90 | float index = 0;
91 |
92 | uint32_t startTime = millis();
93 | while (millis() - startTime < duration_ms)
94 | {
95 | if (index < tableLength)
96 | {
97 |
98 | uint16_t dacValue = (int32_t ) DACZEROAMPLITUDE*2 + table[(int)index];
99 | dacValue=dacValue>>1; // for unknown reaons the DAC goes only from 0..0x7FFF
100 |
101 | I2S.write(dacValue); // left channel
102 | I2S.write(dacValue); // right channel
103 | index += speedFactor;
104 | } else
105 | {
106 | I2S.write(DACZEROAMPLITUDE);
107 | I2S.write(DACZEROAMPLITUDE);
108 | }
109 | }
110 |
111 | }
112 |
113 | void BufferPlayer::playBuffer(int16_t *table, uint32_t tableLength)
114 | {
115 | float maxDuration_sec = tableLength / SamplingFrequency;
116 | float speedFactor = 1;
117 | playBuffer(table, tableLength, maxDuration_sec, speedFactor );
118 | }
119 |
120 |
121 | void BufferPlayer::end()
122 | {
123 | digitalWrite(AUDIOCODEC_CS, LOW); // disable codec, enough noise, stop it !!
124 | }
125 |
126 | void BufferPlayer::setVolume(uint8_t vol)
127 | {
128 | Codec.setVolume(vol);
129 | }
130 |
131 |
--------------------------------------------------------------------------------
/examples/AccelerometerControlsSound/BufferPlayer.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Blocking buffer player using the
4 | CS43L22 codec class for Arduino STM32GENERIC
5 |
6 | *************************************************************************************
7 |
8 | This program is free software; you can redistribute it and/or modify
9 | it under the terms of the GNU General Public License as published by
10 | the Free Software Foundation; either version 2 of the License, or
11 | (at your option) any later version.
12 |
13 | ********************************** list of outhors **********************************
14 | v0.1 2.Mai.2017 C. ChrisMicro initial version
15 |
16 | It is mandatory to keep the list of authors in this code.
17 | Please add your name if you improve/extend something
18 | 2017 ChrisMicro
19 | *************************************************************************************
20 | */
21 | #include
22 |
23 | typedef struct {
24 | uint8_t * signalBuffer;
25 | uint32_t signalBufferLength;
26 | } SampleBuffer_t;
27 |
28 | class BufferPlayer
29 | {
30 | public:
31 | BufferPlayer();
32 | void begin(uint32_t samplingFrequency_Hz);
33 | void playBuffer(const uint8_t *table, uint32_t tableLength, float duration_sec, float speedFactor);
34 | void playBuffer(const uint8_t *table, uint32_t tableLength);
35 | void playBuffer(int16_t *table, uint32_t tableLength, float duration_sec, float speedFactor);
36 | void playBuffer(int16_t *table, uint32_t tableLength);
37 | void end();
38 | void setVolume(uint8_t vol);
39 |
40 | private:
41 | uint32_t SamplingFrequency;
42 |
43 | };
44 |
--------------------------------------------------------------------------------
/examples/AccelerometerControlsSound/CS43L22_STM32.cpp:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | CS43L22 codec class for Arduino STM32GENERIC
4 |
5 | *************************************************************************************
6 |
7 | This program is free software; you can redistribute it and/or modify
8 | it under the terms of the GNU General Public License as published by
9 | the Free Software Foundation; either version 2 of the License, or
10 | (at your option) any later version.
11 |
12 | ********************************** list of outhors **********************************
13 | v0.1 2.Mai.2017 C. ChrisMicro initial version
14 |
15 | It is mandatory to keep the list of authors in this code.
16 | Please add your name if you improve/extend something
17 | 2017 ChrisMicro
18 | *************************************************************************************
19 | */
20 |
21 | // The CS43L22 is a Low Power, Stereo DAC w/Headphone & Speaker Amps
22 | //
23 | // related links:
24 | // data sheet CS43L22: https://d3uzseaevmutz1.cloudfront.net/pubs/proDatasheet/CS43L22_F2.pdf
25 | // https://github.com/abhishek-kakkar/STM32F4Player/blob/master/STM32F4_Discovery_demo/codec_CS43L22.c
26 | // https://www.mikrocontroller.net/topic/413574#4814689
27 |
28 | #include "CS43L22_STM32.h"
29 |
30 | CS43L22_STM32::CS43L22_STM32()
31 | {
32 | // before calling this class
33 | // remember for correct working codec:
34 | // 1. enable code clock ( usually done by I2S driver )
35 | // enable codec chip select line
36 | }
37 |
38 | #define CODEC_ADDR 0x4A // i2c address ( 2*0x4A=0x94)
39 |
40 | void codec_writeReg(unsigned char reg, unsigned char data)
41 | {
42 | uint8_t error;
43 | Wire.beginTransmission(CODEC_ADDR);
44 | Wire.write(reg);
45 | Wire.write(data);
46 | error = Wire.endTransmission();
47 | }
48 |
49 | // codec setup from
50 | // https://github.com/mubase/STM32F4-Arduino-core/blob/master/cores/maple/libmaple/stm32f4codec/codec.h
51 | // TBD: to be refactured
52 | void codec_reg_setup(void)
53 | {
54 | Wire.begin();
55 |
56 | codec_writeReg(0x02, 0x01); // power save registers -> all on
57 | codec_writeReg(0x00, 0x99);
58 | codec_writeReg(0x47, 0x80); //inits
59 | codec_writeReg(0x0d, 0x03); // playback ctrl
60 | codec_writeReg(0x32, (1 << 7)); // vol
61 | codec_writeReg(0x32, (0 << 7)); // vol
62 | codec_writeReg(0x00, 0x00); // inits
63 | codec_writeReg(0x04, 0xaf); // power ctrl
64 | codec_writeReg(0x0d, 0x70);
65 | codec_writeReg(0x05, 0x81); // clocking: auto speed is determined by the MCLK/LRCK ratio.
66 | codec_writeReg(0x06, 0x07); // DAC interface format, I²S 16 bit
67 | codec_writeReg(0x0a, 0x00);
68 | codec_writeReg(0x27, 0x00);
69 | codec_writeReg(0x80, 0x0a); // both channels on
70 | codec_writeReg(0x1f, 0x0f);
71 | codec_writeReg(0x02, 0x9e);
72 |
73 | }
74 |
75 | void CS43L22_STM32::begin()
76 | {
77 | Wire.begin();
78 | codec_reg_setup();
79 | }
80 |
81 | void CS43L22_STM32::setVolume(uint8_t volumeValue)
82 | {
83 | int8_t vol;
84 | if(volumeValue>100)volumeValue=100;
85 | //strange mapping, see datasheet
86 | //vol=25; // -102 dB
87 | //vol=24 // +12dB
88 |
89 | vol=-90+(float)80*volumeValue/100;
90 |
91 | codec_writeReg(0x20, vol);
92 | codec_writeReg(0x21, vol);
93 | }
94 |
--------------------------------------------------------------------------------
/examples/AccelerometerControlsSound/CS43L22_STM32.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | CS43L22 codec class for Arduino STM32GENERIC
4 |
5 |
6 | *************************************************************************************
7 |
8 | This program is free software; you can redistribute it and/or modify
9 | it under the terms of the GNU General Public License as published by
10 | the Free Software Foundation; either version 2 of the License, or
11 | (at your option) any later version.
12 |
13 | ********************************** list of outhors **********************************
14 | v0.1 2.Mai.2017 C. ChrisMicro initial version
15 |
16 | It is mandatory to keep the list of authors in this code.
17 | Please add your name if you improve/extend something
18 | 2017 ChrisMicro
19 | *************************************************************************************
20 | */
21 | #include
22 |
23 | class CS43L22_STM32
24 | {
25 | public:
26 | CS43L22_STM32();
27 | void begin();
28 | void setVolume(uint8_t vol);
29 | };
30 |
31 |
--------------------------------------------------------------------------------
/examples/AccelerometerControlsSound/LIS3DSx.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | MEMS driver
3 |
4 | accelerometer: LIS302DL or LIS3DSH
5 |
6 | MEMS digital output motion sensor:
7 | ultra-low-power high-performance three-axis "nano" accelerometer
8 |
9 | *************************************************************************************
10 |
11 | This program is free software; you can redistribute it and/or modify
12 | it under the terms of the GNU General Public License as published by
13 | the Free Software Foundation; either version 2 of the License, or
14 | (at your option) any later version.
15 |
16 | ********************************** list of outhors **********************************
17 | v0.1 2.Mai.2017 C. ChrisMicro initial version
18 |
19 | It is mandatory to keep the list of authors in this code.
20 | Please add your name if you improve/extend something
21 | 2017 ChrisMicro
22 | *************************************************************************************
23 | */
24 | #include
25 | #include
26 |
27 | #include "LIS3DSx.h"
28 |
29 | #define SERIALINTERFACE SerialUSB
30 |
31 | #define CS PE3
32 |
33 | void accelerometer_SPI_select()
34 | {
35 | digitalWrite(CS, LOW); // 0=SPI communication mode, 1=SPI IDLE MODE
36 | delayMicroseconds(50);
37 | }
38 |
39 | void accelerometer_SPI_release()
40 | {
41 | digitalWrite(CS, HIGH);
42 | delayMicroseconds(50);
43 | }
44 |
45 | #define READREGISTERCOMMAND 0x80
46 | #define DELAYBETWEENTRANSFERS 10
47 | uint8_t spiRead(uint8_t registerAddress)
48 | {
49 | uint8_t r;
50 |
51 | accelerometer_SPI_select();
52 | SPI.transfer( registerAddress | READREGISTERCOMMAND );
53 | delayMicroseconds(DELAYBETWEENTRANSFERS);
54 | r = SPI.transfer(0); // dummy write, data read
55 | delayMicroseconds(DELAYBETWEENTRANSFERS);
56 | accelerometer_SPI_release();
57 |
58 | return r;
59 | }
60 |
61 | void LIS3DSx::begin()
62 | {
63 | // configure SPI
64 | pinMode(CS, OUTPUT);
65 |
66 | SPI.begin();
67 | SPI.setDataMode(SPI_MODE3);
68 | SPI.setBitOrder(MSBFIRST);
69 |
70 | // configure sensor
71 | accelerometer_SPI_select();
72 | SPI.transfer(0x20); // CTRL4 ODR register
73 | //delay(10);
74 | SPI.transfer(0x47); // 25 Hz update, enable x,y,z
75 | accelerometer_SPI_release();
76 | }
77 |
78 | int16_t LIS3DSx::getX()
79 | {
80 | int32_t a,aa;
81 | int16_t ag;
82 |
83 | a= spiRead ( 0x28 );
84 | aa = spiRead( 0x29 );
85 |
86 | return (a + (aa << 8));
87 | }
88 |
89 | int16_t LIS3DSx::getY()
90 | {
91 | int32_t a,aa;
92 | int16_t ag;
93 |
94 | a= spiRead ( 0x2A );
95 | aa = spiRead( 0x2B );
96 |
97 | return (a + (aa << 8));
98 |
99 | }
100 |
101 | int16_t LIS3DSx::getZ()
102 | {
103 | int32_t a,aa;
104 | int16_t ag;
105 |
106 | a= spiRead ( 0x2C );
107 | aa = spiRead( 0x2D );
108 |
109 | return (a + (aa << 8));
110 | }
111 |
112 | #define ONE_G 16384
113 |
114 | float LIS3DSx::getX_g()
115 | {
116 | return getX()/(float)ONE_G;
117 | }
118 |
119 | float LIS3DSx::getY_g()
120 | {
121 | return getY()/(float)ONE_G;
122 | }
123 |
124 | float LIS3DSx::getZ_g()
125 | {
126 | return getZ()/(float)ONE_G;
127 | }
128 |
129 | float LIS3DSx::absolute_g()
130 | {
131 | float g;
132 | g=sqrt(getX_g()*getX_g()+getY_g()*getY_g()+getZ_g()*getZ_g());
133 | return g;
134 | }
135 |
136 |
137 | uint8_t LIS3DSx::getChipVersion()
138 | {
139 | uint8_t whoAmI=spiRead(0x0F);
140 | return whoAmI;
141 | }
142 |
143 |
144 |
--------------------------------------------------------------------------------
/examples/AccelerometerControlsSound/LIS3DSx.h:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | class LIS3DSx
4 | {
5 | public:
6 | void begin();
7 | uint8_t getChipVersion();
8 | int16_t getX();
9 | int16_t getY();
10 | int16_t getZ();
11 | float getX_g();
12 | float getY_g();
13 | float getZ_g();
14 | float absolute_g();
15 | };
16 |
17 |
--------------------------------------------------------------------------------
/examples/AccelerometerControlsSound/wavetables.c:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | const uint8_t sabine[] = {
4 | 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 ,
5 | 127 , 127 , 127 , 126 , 126 , 125 , 126 , 125 , 125 , 126 , 126 , 127 , 128 , 128 , 127 , 126 , 127 , 126 , 127 , 128 , 127 , 128 , 126 , 127 , 127 , 128 , 127 , 128 , 128 , 129 , 129 , 130 ,
6 | 129 , 128 , 129 , 128 , 129 , 128 , 127 , 128 , 127 , 127 , 128 , 129 , 128 , 128 , 127 , 128 , 129 , 130 , 131 , 130 , 130 , 129 , 129 , 129 , 130 , 131 , 132 , 132 , 131 , 130 , 129 , 129 ,
7 | 128 , 128 , 127 , 128 , 127 , 128 , 128 , 128 , 128 , 126 , 126 , 126 , 127 , 127 , 128 , 129 , 128 , 127 , 126 , 125 , 126 , 127 , 128 , 128 , 128 , 128 , 128 , 127 , 126 , 127 , 126 , 127 ,
8 | 126 , 125 , 126 , 125 , 126 , 125 , 126 , 125 , 126 , 125 , 126 , 125 , 125 , 125 , 124 , 123 , 123 , 122 , 123 , 122 , 123 , 122 , 123 , 123 , 124 , 124 , 125 , 126 , 125 , 124 , 125 , 126 ,
9 | 126 , 125 , 126 , 127 , 126 , 127 , 128 , 127 , 128 , 127 , 128 , 127 , 128 , 128 , 128 , 129 , 129 , 128 , 127 , 126 , 126 , 124 , 123 , 122 , 123 , 123 , 123 , 125 , 126 , 128 , 129 , 130 ,
10 | 130 , 131 , 130 , 130 , 129 , 128 , 129 , 130 , 130 , 131 , 130 , 131 , 132 , 131 , 132 , 131 , 132 , 132 , 131 , 130 , 129 , 128 , 126 , 124 , 121 , 118 , 116 , 115 , 115 , 119 , 122 , 126 ,
11 | 130 , 133 , 134 , 134 , 132 , 129 , 128 , 126 , 124 , 125 , 127 , 129 , 130 , 131 , 132 , 132 , 131 , 130 , 131 , 131 , 132 , 132 , 131 , 128 , 125 , 120 , 115 , 111 , 109 , 108 , 110 , 115 ,
12 | 120 , 126 , 131 , 135 , 135 , 134 , 132 , 127 , 124 , 122 , 121 , 121 , 123 , 124 , 125 , 127 , 128 , 130 , 131 , 133 , 135 , 136 , 135 , 134 , 131 , 127 , 123 , 118 , 114 , 111 , 109 , 108 ,
13 | 111 , 114 , 121 , 128 , 135 , 139 , 139 , 136 , 131 , 126 , 120 , 120 , 118 , 121 , 125 , 129 , 131 , 130 , 128 , 126 , 126 , 128 , 132 , 137 , 142 , 143 , 142 , 140 , 135 , 132 , 130 , 128 ,
14 | 127 , 125 , 121 , 117 , 112 , 111 , 112 , 118 , 127 , 136 , 143 , 145 , 142 , 133 , 125 , 116 , 111 , 112 , 115 , 123 , 130 , 134 , 137 , 135 , 132 , 128 , 125 , 124 , 126 , 130 , 134 , 136 ,
15 | 137 , 136 , 133 , 132 , 128 , 125 , 119 , 114 , 111 , 107 , 109 , 113 , 122 , 131 , 141 , 147 , 147 , 142 , 132 , 124 , 116 , 113 , 113 , 119 , 128 , 135 , 139 , 138 , 135 , 126 , 121 , 122 ,
16 | 124 , 126 , 127 , 132 , 137 , 138 , 138 , 138 , 140 , 139 , 135 , 128 , 120 , 112 , 104 , 101 , 107 , 118 , 132 , 144 , 155 , 156 , 150 , 136 , 122 , 113 , 106 , 109 , 116 , 128 , 137 , 144 ,
17 | 143 , 136 , 128 , 120 , 118 , 120 , 126 , 133 , 139 , 142 , 144 , 142 , 139 , 138 , 140 , 136 , 130 , 121 , 110 , 103 , 95 , 96 , 103 , 117 , 133 , 147 , 157 , 153 , 144 , 128 , 115 , 105 ,
18 | 102 , 109 , 119 , 133 , 141 , 146 , 142 , 132 , 124 , 115 , 113 , 115 , 121 , 130 , 136 , 139 , 139 , 136 , 133 , 135 , 139 , 145 , 145 , 137 , 125 , 107 , 93 , 81 , 81 , 92 , 112 , 136 ,
19 | 156 , 167 , 163 , 150 , 127 , 110 , 96 , 94 , 103 , 119 , 137 , 148 , 152 , 143 , 128 , 115 , 106 , 106 , 113 , 125 , 138 , 147 , 151 , 147 , 142 , 138 , 139 , 142 , 149 , 148 , 137 , 115 ,
20 | 95 , 77 , 67 , 69 , 86 , 120 , 151 , 180 , 192 , 187 , 160 , 126 , 98 , 79 , 74 , 80 , 105 , 129 , 144 , 148 , 144 , 133 , 119 , 113 , 115 , 124 , 133 , 142 , 147 , 145 , 138 , 130 ,
21 | 127 , 131 , 143 , 156 , 169 , 169 , 152 , 119 , 83 , 61 , 51 , 62 , 88 , 135 , 178 , 204 , 211 , 196 , 163 , 115 , 79 , 61 , 65 , 83 , 112 , 149 , 169 , 173 , 160 , 140 , 118 , 106 ,
22 | 108 , 116 , 131 , 142 , 149 , 149 , 141 , 131 , 125 , 129 , 145 , 164 , 178 , 180 , 161 , 119 , 79 , 49 , 42 , 50 , 80 , 130 , 178 , 210 , 211 , 198 , 155 , 101 , 60 , 44 , 53 , 70 ,
23 | 108 , 149 , 177 , 174 , 157 , 134 , 106 , 92 , 92 , 106 , 124 , 138 , 146 , 146 , 139 , 124 , 118 , 124 , 144 , 168 , 191 , 201 , 191 , 157 , 102 , 61 , 34 , 34 , 50 , 95 , 156 , 201 ,
24 | 222 , 212 , 190 , 133 , 79 , 44 , 39 , 61 , 86 , 134 , 174 , 193 , 180 , 153 , 121 , 90 , 81 , 85 , 108 , 127 , 145 , 154 , 153 , 140 , 126 , 120 , 131 , 153 , 181 , 201 , 202 , 171 ,
25 | 113 , 65 , 28 , 23 , 25 , 67 , 134 , 199 , 231 , 234 , 219 , 159 , 94 , 44 , 34 , 40 , 68 , 119 , 175 , 203 , 192 , 164 , 124 , 87 , 66 , 72 , 95 , 119 , 143 , 156 , 163 , 149 ,
26 | 135 , 123 , 128 , 149 , 171 , 192 , 189 , 155 , 104 , 59 , 29 , 19 , 29 , 77 , 141 , 203 , 231 , 233 , 209 , 153 , 92 , 50 , 40 , 44 , 75 , 126 , 175 , 196 , 186 , 163 , 128 , 99 ,
27 | 86 , 93 , 109 , 129 , 151 , 164 , 165 , 154 , 144 , 138 , 149 , 171 , 190 , 203 , 181 , 135 , 85 , 43 , 27 , 23 , 52 , 108 , 179 , 226 , 232 , 234 , 194 , 133 , 73 , 47 , 40 , 54 ,
28 | 99 , 151 , 191 , 190 , 170 , 134 , 98 , 75 , 76 , 93 , 114 , 137 , 153 , 158 , 149 , 135 , 127 , 134 , 157 , 184 , 208 , 202 , 160 , 102 , 44 , 20 , 14 , 24 , 68 , 148 , 216 , 237 ,
29 | 239 , 223 , 169 , 95 , 54 , 37 , 43 , 81 , 137 , 188 , 197 , 183 , 149 , 108 , 76 , 66 , 84 , 107 , 137 , 159 , 172 , 166 , 149 , 134 , 131 , 147 , 169 , 200 , 202 , 167 , 116 , 54 ,
30 | 20 , 15 , 14 , 42 , 117 , 194 , 233 , 239 , 234 , 196 , 118 , 69 , 39 , 32 , 60 , 114 , 169 , 189 , 184 , 156 , 118 , 83 , 67 , 78 , 99 , 130 , 156 , 175 , 175 , 158 , 141 , 133 ,
31 | 141 , 158 , 186 , 183 , 158 , 117 , 66 , 30 , 14 , 19 , 43 , 115 , 183 , 228 , 239 , 230 , 195 , 124 , 76 , 42 , 30 , 56 , 109 , 162 , 184 , 180 , 159 , 124 , 95 , 81 , 87 , 105 ,
32 | 131 , 157 , 176 , 175 , 160 , 142 , 138 , 143 , 160 , 167 , 152 , 135 , 105 , 80 , 43 , 33 , 49 , 91 , 149 , 195 , 230 , 224 , 202 , 154 , 108 , 69 , 40 , 49 , 84 , 137 , 174 , 188 ,
33 | 182 , 158 , 133 , 108 , 98 , 94 , 103 , 122 , 143 , 157 , 153 , 142 , 139 , 144 , 151 , 162 , 143 , 129 , 98 , 83 , 62 , 43 , 50 , 70 , 128 , 160 , 201 , 203 , 182 , 150 , 106 , 85 ,
34 | 54 , 55 , 78 , 123 , 168 , 184 , 186 , 163 , 144 , 120 , 107 , 101 , 102 , 116 , 129 , 147 , 149 , 142 , 141 , 151 , 169 , 175 , 152 , 130 , 97 , 80 , 58 , 51 , 61 , 87 , 138 , 172 ,
35 | 211 , 199 , 176 , 133 , 97 , 81 , 54 , 63 , 84 , 129 , 161 , 176 , 177 , 152 , 139 , 120 , 119 , 115 , 117 , 124 , 130 , 135 , 129 , 122 , 124 , 141 , 165 , 178 , 152 , 130 , 90 , 70 ,
36 | 44 , 42 , 60 , 94 , 153 , 190 , 227 , 203 , 172 , 118 , 77 , 58 , 37 , 60 , 90 , 146 , 176 , 187 , 175 , 147 , 131 , 113 , 119 , 118 , 132 , 141 , 146 , 146 , 131 , 119 , 116 , 139 ,
37 | 170 , 171 , 153 , 127 , 93 , 67 , 41 , 47 , 65 , 112 , 168 , 216 , 235 , 214 , 178 , 116 , 82 , 43 , 37 , 65 , 109 , 163 , 188 , 197 , 172 , 144 , 123 , 116 , 119 , 130 , 151 , 165 ,
38 | 173 , 162 , 145 , 124 , 123 , 144 , 156 , 145 , 131 , 109 , 85 , 55 , 44 , 54 , 84 , 133 , 186 , 229 , 226 , 208 , 156 , 111 , 63 , 26 , 30 , 58 , 115 , 155 , 183 , 178 , 156 , 131 ,
39 | 113 , 108 , 109 , 124 , 146 , 166 , 170 , 159 , 136 , 125 , 137 , 145 , 135 , 117 , 101 , 86 , 64 , 49 , 53 , 73 , 114 , 162 , 216 , 232 , 217 , 180 , 137 , 98 , 48 , 32 , 46 , 91 ,
40 | 136 , 170 , 181 , 164 , 144 , 126 , 116 , 112 , 116 , 130 , 149 , 163 , 166 , 153 , 139 , 145 , 157 , 143 , 125 , 96 , 77 , 54 , 38 , 48 , 64 , 107 , 144 , 203 , 226 , 220 , 186 , 142 ,
41 | 114 , 63 , 50 , 54 , 90 , 128 , 158 , 180 , 166 , 146 , 124 , 115 , 111 , 114 , 127 , 141 , 155 , 159 , 154 , 145 , 152 , 162 , 149 , 135 , 107 , 86 , 57 , 35 , 38 , 55 , 97 , 135 ,
42 | 194 , 222 , 228 , 204 , 161 , 131 , 74 , 54 , 57 , 90 , 127 , 154 , 179 , 176 , 162 , 139 , 126 , 114 , 113 , 127 , 141 , 160 , 162 , 159 , 150 , 155 , 164 , 143 , 130 , 103 , 90 , 65 ,
43 | 44 , 48 , 56 , 97 , 124 , 179 , 207 , 212 , 198 , 167 , 149 , 95 , 68 , 60 , 82 , 109 , 130 , 154 , 156 , 155 , 145 , 138 , 125 , 119 , 125 , 132 , 148 , 154 , 155 , 151 , 167 , 174 ,
44 | 150 , 121 , 80 , 64 , 36 , 28 , 31 , 56 , 101 , 137 , 194 , 206 , 208 , 173 , 150 , 134 , 96 , 83 , 79 , 108 , 123 , 139 , 145 , 138 , 133 , 128 , 138 , 133 , 136 , 140 , 147 , 153 ,
45 | 154 , 155 , 157 , 180 , 169 , 158 , 124 , 88 , 56 , 24 , 28 , 29 , 76 , 112 , 168 , 212 , 217 , 207 , 164 , 141 , 102 , 83 , 84 , 107 , 138 , 147 , 152 , 142 , 127 , 108 , 105 , 110 ,
46 | 120 , 135 , 147 , 158 , 156 , 154 , 147 , 161 , 175 , 169 , 161 , 133 , 107 , 61 , 29 , 18 , 22 , 48 , 89 , 156 , 199 , 214 , 204 , 179 , 150 , 105 , 81 , 80 , 103 , 130 , 146 , 153 ,
47 | 144 , 126 , 107 , 96 , 92 , 101 , 118 , 141 , 155 , 159 , 159 , 156 , 172 , 173 , 159 , 145 , 122 , 106 , 66 , 44 , 32 , 36 , 62 , 88 , 144 , 166 , 185 , 183 , 175 , 159 , 123 , 113 ,
48 | 110 , 130 , 137 , 140 , 136 , 127 , 117 , 108 , 104 , 100 , 112 , 124 , 145 , 150 , 155 , 155 , 164 , 183 , 163 , 152 , 119 , 103 , 78 , 50 , 48 , 43 , 76 , 92 , 134 , 152 , 154 , 149 ,
49 | 136 , 141 , 117 , 116 , 120 , 146 , 163 , 163 , 153 , 128 , 111 , 96 , 99 , 93 , 97 , 109 , 127 , 145 , 146 , 149 , 148 , 175 , 183 , 174 , 151 , 114 , 92 , 53 , 44 , 37 , 55 , 82 ,
50 | 120 , 163 , 171 , 164 , 135 , 125 , 108 , 97 , 101 , 121 , 155 , 175 , 181 , 165 , 142 , 117 , 105 , 100 , 96 , 102 , 108 , 125 , 130 , 136 , 137 , 153 , 180 , 181 , 181 , 149 , 127 , 83 ,
51 | 52 , 40 , 39 , 66 , 89 , 140 , 164 , 178 , 158 , 134 , 118 , 90 , 88 , 97 , 133 , 163 , 181 , 183 , 166 , 145 , 120 , 110 , 99 , 100 , 106 , 119 , 130 , 131 , 133 , 135 , 160 , 166 ,
52 | 173 , 163 , 147 , 124 , 84 , 70 , 51 , 64 , 80 , 111 , 144 , 157 , 156 , 138 , 127 , 107 , 93 , 95 , 119 , 150 , 173 , 179 , 173 , 156 , 136 , 125 , 113 , 109 , 106 , 111 , 120 , 121 ,
53 | 122 , 122 , 141 , 153 , 161 , 159 , 148 , 139 , 104 , 87 , 68 , 70 , 83 , 104 , 136 , 150 , 155 , 136 , 124 , 103 , 86 , 83 , 98 , 133 , 160 , 183 , 185 , 174 , 156 , 140 , 126 , 111 ,
54 | 105 , 103 , 109 , 115 , 118 , 119 , 130 , 138 , 138 , 137 , 128 , 126 , 108 , 98 , 91 , 94 , 106 , 116 , 135 , 143 , 145 , 132 , 119 , 103 , 89 , 81 , 91 , 118 , 144 , 163 , 175 , 177 ,
55 | 168 , 161 , 150 , 142 , 129 , 121 , 117 , 111 , 111 , 111 , 125 , 134 , 135 , 132 , 121 , 117 , 98 , 92 , 90 , 100 , 120 , 141 , 163 , 168 , 164 , 145 , 125 , 97 , 80 , 71 , 82 , 107 ,
56 | 136 , 157 , 166 , 172 , 166 , 163 , 153 , 152 , 147 , 141 , 138 , 129 , 124 , 116 , 124 , 129 , 126 , 118 , 104 , 100 , 85 , 78 , 78 , 94 , 122 , 150 , 175 , 182 , 175 , 154 , 134 , 104 ,
57 | 80 , 62 , 71 , 94 , 123 , 147 , 155 , 162 , 158 , 160 , 152 , 151 , 149 , 148 , 149 , 138 , 134 , 122 , 127 , 132 , 128 , 119 , 101 , 95 , 75 , 68 , 67 , 78 , 108 , 141 , 176 , 190 ,
58 | 190 , 171 , 151 , 122 , 96 , 75 , 72 , 90 , 115 , 137 , 145 , 151 , 145 , 147 , 146 , 147 , 148 , 148 , 154 , 148 , 148 , 136 , 141 , 143 , 136 , 125 , 100 , 94 , 70 , 61 , 55 , 64 ,
59 | 95 , 125 , 169 , 187 , 196 , 180 , 165 , 139 , 109 , 88 , 76 , 91 , 110 , 132 , 138 , 145 , 142 , 141 , 138 , 139 , 141 , 142 , 150 , 150 , 154 , 145 , 150 , 159 , 153 , 143 , 114 , 97 ,
60 | 74 , 52 , 43 , 43 , 73 , 105 , 151 , 182 , 197 , 191 , 175 , 155 , 124 , 96 , 81 , 87 , 105 , 125 , 133 , 141 , 141 , 141 , 138 , 134 , 136 , 137 , 144 , 148 , 150 , 151 , 152 , 166 ,
61 | 159 , 149 , 119 , 97 , 78 , 53 , 50 , 41 , 70 , 95 , 137 , 165 , 176 , 177 , 166 , 161 , 141 , 125 , 106 , 107 , 115 , 124 , 125 , 122 , 123 , 129 , 138 , 140 , 145 , 141 , 144 , 143 ,
62 | 141 , 142 , 143 , 166 , 163 , 164 , 138 , 114 , 89 , 57 , 53 , 40 , 67 , 89 , 134 , 163 , 175 , 174 , 159 , 153 , 133 , 123 , 111 , 118 , 128 , 137 , 137 , 131 , 123 , 119 , 122 , 128 ,
63 | 136 , 141 , 146 , 146 , 147 , 148 , 152 , 170 , 170 , 168 , 149 , 125 , 98 , 63 , 53 , 41 , 63 , 88 , 131 , 163 , 175 , 175 , 160 , 148 , 125 , 116 , 108 , 121 , 137 , 149 , 149 , 139 ,
64 | 128 , 118 , 116 , 113 , 122 , 127 , 139 , 144 , 144 , 144 , 144 , 165 , 167 , 170 , 151 , 129 , 106 , 71 , 57 , 37 , 53 , 73 , 118 , 154 , 173 , 177 , 161 , 154 , 131 , 121 , 106 , 114 ,
65 | 129 , 149 , 156 , 151 , 142 , 130 , 125 , 116 , 117 , 114 , 122 , 127 , 135 , 146 , 154 , 173 , 176 , 174 , 157 , 128 , 101 , 66 , 50 , 40 , 55 , 82 , 119 , 155 , 169 , 172 , 160 , 147 ,
66 | 127 , 114 , 109 , 120 , 136 , 152 , 156 , 151 , 139 , 127 , 123 , 118 , 121 , 121 , 128 , 131 , 132 , 138 , 144 , 167 , 176 , 176 , 167 , 141 , 119 , 79 , 56 , 39 , 45 , 68 , 102 , 145 ,
67 | 163 , 171 , 165 , 155 , 136 , 117 , 105 , 110 , 127 , 146 , 152 , 153 , 146 , 135 , 132 , 121 , 121 , 116 , 117 , 123 , 120 , 128 , 135 , 158 , 181 , 183 , 179 , 148 , 128 , 90 , 58 , 39 ,
68 | 29 , 54 , 81 , 128 , 157 , 169 , 169 , 156 , 146 , 123 , 105 , 101 , 112 , 136 , 146 , 152 , 147 , 138 , 133 , 121 , 117 , 111 , 108 , 114 , 115 , 127 , 138 , 158 , 182 , 186 , 186 , 152 ,
69 | 129 , 91 , 60 , 45 , 34 , 62 , 82 , 127 , 148 , 163 , 162 , 147 , 143 , 126 , 121 , 116 , 129 , 145 , 154 , 155 , 145 , 136 , 127 , 119 , 118 , 119 , 121 , 123 , 123 , 124 , 129 , 141 ,
70 | 166 , 183 , 190 , 179 , 155 , 129 , 89 , 62 , 37 , 43 , 62 , 95 , 130 , 151 , 167 , 161 , 158 , 143 , 129 , 119 , 121 , 138 , 151 , 156 , 151 , 141 , 135 , 123 , 118 , 113 , 115 , 117 ,
71 | 120 , 127 , 132 , 145 , 160 , 180 , 179 , 169 , 141 , 120 , 90 , 66 , 51 , 50 , 72 , 95 , 127 , 143 , 152 , 147 , 139 , 134 , 123 , 118 , 122 , 136 , 152 , 153 , 150 , 138 , 130 , 122 ,
72 | 118 , 117 , 114 , 118 , 116 , 122 , 128 , 138 , 151 , 173 , 183 , 182 , 158 , 131 , 98 , 66 , 50 , 38 , 59 , 84 , 119 , 146 , 160 , 163 , 148 , 136 , 119 , 112 , 111 , 122 , 145 , 152 ,
73 | 156 , 143 , 132 , 123 , 114 , 118 , 115 , 124 , 125 , 129 , 135 , 138 , 149 , 161 , 173 , 175 , 161 , 143 , 112 , 84 , 56 , 41 , 52 , 69 , 104 , 133 , 160 , 170 , 169 , 156 , 135 , 119 ,
74 | 106 , 112 , 126 , 141 , 148 , 148 , 140 , 134 , 122 , 116 , 116 , 115 , 119 , 125 , 134 , 143 , 151 , 167 , 178 , 182 , 169 , 147 , 123 , 86 , 64 , 42 , 45 , 63 , 89 , 125 , 150 , 173 ,
75 | 172 , 170 , 152 , 132 , 117 , 109 , 118 , 130 , 141 , 141 , 138 , 131 , 121 , 116 , 113 , 112 , 116 , 123 , 135 , 145 , 155 , 164 , 173 , 174 , 165 , 143 , 119 , 92 , 67 , 54 , 45 , 59 ,
76 | 79 , 107 , 134 , 151 , 165 , 164 , 156 , 144 , 129 , 120 , 117 , 124 , 129 , 131 , 129 , 121 , 121 , 114 , 113 , 112 , 111 , 115 , 122 , 132 , 146 , 158 , 173 , 183 , 180 , 162 , 133 , 102 ,
77 | 65 , 43 , 31 , 43 , 66 , 97 , 132 , 154 , 168 , 169 , 161 , 145 , 131 , 121 , 120 , 128 , 139 , 142 , 140 , 130 , 123 , 116 , 112 , 113 , 116 , 122 , 130 , 139 , 147 , 155 , 165 , 176 ,
78 | 177 , 169 , 148 , 123 , 89 , 62 , 42 , 42 , 55 , 81 , 115 , 141 , 164 , 171 , 172 , 160 , 144 , 129 , 120 , 120 , 127 , 133 , 134 , 131 , 126 , 125 , 119 , 117 , 114 , 115 , 118 , 125 ,
79 | 134 , 144 , 159 , 175 , 189 , 187 , 171 , 142 , 109 , 75 , 47 , 34 , 43 , 68 , 99 , 134 , 158 , 171 , 171 , 162 , 147 , 132 , 121 , 118 , 127 , 136 , 142 , 140 , 133 , 125 , 119 , 116 ,
80 | 114 , 117 , 123 , 131 , 139 , 147 , 153 , 161 , 175 , 180 , 173 , 152 , 129 , 97 , 73 , 53 , 47 , 60 , 81 , 113 , 140 , 162 , 170 , 169 , 158 , 146 , 132 , 122 , 122 , 128 , 134 , 134 ,
81 | 133 , 126 , 123 , 119 , 120 , 119 , 121 , 128 , 133 , 142 , 146 , 154 , 163 , 176 , 176 , 162 , 139 , 106 , 79 , 52 , 44 , 48 , 71 , 100 , 132 , 159 , 170 , 169 , 159 , 141 , 126 , 115 ,
82 | 112 , 120 , 133 , 144 , 142 , 136 , 125 , 117 , 113 , 112 , 118 , 128 , 139 , 150 , 153 , 155 , 157 , 160 , 164 , 159 , 145 , 124 , 99 , 75 , 62 , 54 , 65 , 83 , 113 , 140 , 163 , 172 ,
83 | 167 , 157 , 136 , 124 , 111 , 110 , 117 , 130 , 137 , 138 , 134 , 126 , 121 , 116 , 118 , 121 , 131 , 138 , 149 , 152 , 157 , 163 , 164 , 168 , 154 , 138 , 111 , 84 , 65 , 48 , 53 , 64 ,
84 | 93 , 122 , 150 , 173 , 170 , 170 , 148 , 132 , 116 , 106 , 109 , 117 , 133 , 136 , 138 , 127 , 122 , 115 , 116 , 120 , 129 , 142 , 150 , 159 , 156 , 157 , 158 , 160 , 159 , 146 , 129 , 105 ,
85 | 81 , 65 , 52 , 57 , 71 , 99 , 131 , 155 , 177 , 173 , 172 , 151 , 132 , 119 , 103 , 109 , 115 , 129 , 132 , 131 , 126 , 119 , 118 , 117 , 122 , 134 , 145 , 155 , 162 , 163 , 162 , 160 ,
86 | 160 , 151 , 137 , 115 , 94 , 72 , 62 , 54 , 63 , 84 , 110 , 141 , 166 , 179 , 176 , 166 , 143 , 126 , 109 , 100 , 105 , 116 , 127 , 131 , 131 , 127 , 122 , 119 , 119 , 124 , 134 , 144 ,
87 | 153 , 156 , 161 , 159 , 163 , 159 , 153 , 135 , 114 , 90 , 70 , 62 , 54 , 72 , 91 , 123 , 152 , 173 , 182 , 176 , 162 , 138 , 123 , 107 , 104 , 111 , 120 , 129 , 130 , 129 , 126 , 124 ,
88 | 124 , 127 , 135 , 146 , 152 , 155 , 156 , 151 , 154 , 155 , 154 , 147 , 132 , 111 , 87 , 70 , 55 , 54 , 69 , 92 , 125 , 153 , 174 , 178 , 173 , 154 , 131 , 112 , 100 , 101 , 111 , 122 ,
89 | 129 , 130 , 124 , 123 , 118 , 121 , 124 , 133 , 143 , 149 , 152 , 151 , 148 , 149 , 148 , 143 , 134 , 113 , 96 , 75 , 64 , 58 , 62 , 82 , 105 , 137 , 157 , 172 , 172 , 159 , 143 , 120 ,
90 | 109 , 97 , 105 , 115 , 124 , 131 , 125 , 127 , 123 , 125 , 129 , 136 , 146 , 150 , 152 , 151 , 147 , 145 , 148 , 150 , 149 , 136 , 119 , 96 , 78 , 65 , 59 , 71 , 91 , 122 , 152 , 174 ,
91 | 181 , 174 , 156 , 132 , 113 , 99 , 95 , 108 , 122 , 133 , 138 , 135 , 133 , 127 , 129 , 133 , 139 , 146 , 150 , 152 , 152 , 148 , 146 , 150 , 149 , 142 , 125 , 108 , 87 , 74 , 65 , 66 ,
92 | 85 , 105 , 136 , 159 , 175 , 176 , 163 , 147 , 123 , 108 , 95 , 99 , 110 , 120 , 129 , 129 , 131 , 132 , 132 , 140 , 144 , 149 , 149 , 147 , 141 , 135 , 132 , 134 , 143 , 142 , 141 , 125 ,
93 | 107 , 87 , 71 , 64 , 66 , 88 , 110 , 146 , 164 , 175 , 172 , 155 , 135 , 112 , 100 , 93 , 104 , 114 , 125 , 132 , 129 , 131 , 130 , 134 , 141 , 146 , 152 , 151 , 150 , 141 , 135 , 131 ,
94 | 134 , 140 , 139 , 135 , 118 , 100 , 83 , 69 , 65 , 75 , 97 , 123 , 156 , 172 , 179 , 170 , 146 , 126 , 102 , 94 , 90 , 108 , 120 , 134 , 139 , 133 , 137 , 131 , 140 , 141 , 149 , 151 ,
95 | 152 , 146 , 137 , 132 , 130 , 136 , 139 , 140 , 129 , 113 , 91 , 79 , 64 , 66 , 83 , 106 , 141 , 164 , 181 , 176 , 161 , 136 , 110 , 93 , 83 , 92 , 108 , 127 , 137 , 139 , 138 , 135 ,
96 | 136 , 140 , 145 , 152 , 155 , 152 , 146 , 133 , 128 , 126 , 130 , 135 , 134 , 126 , 108 , 93 , 77 , 68 , 70 , 85 , 110 , 142 , 164 , 175 , 173 , 151 , 129 , 101 , 88 , 80 , 91 , 108 ,
97 | 123 , 138 , 137 , 142 , 141 , 141 , 146 , 146 , 147 , 145 , 139 , 133 , 125 , 125 , 128 , 136 , 138 , 134 , 122 , 103 , 83 , 72 , 66 , 79 , 99 , 127 , 160 , 174 , 181 , 164 , 142 , 113 ,
98 | 91 , 81 , 83 , 102 , 119 , 136 , 143 , 144 , 144 , 140 , 140 , 144 , 146 , 150 , 147 , 143 , 133 , 125 , 123 , 129 , 134 , 141 , 139 , 129 , 112 , 91 , 81 , 70 , 83 , 99 , 128 , 157 ,
99 | 173 , 180 , 165 , 142 , 112 , 91 , 82 , 84 , 103 , 119 , 137 , 149 , 149 , 153 , 146 , 146 , 148 , 146 , 147 , 142 , 139 , 130 , 125 , 124 , 129 , 134 , 136 , 131 , 119 , 104 , 89 , 81 ,
100 | 79 , 93 , 110 , 139 , 161 , 172 , 171 , 155 , 133 , 107 , 92 , 84 , 92 , 108 , 124 , 140 , 149 , 151 , 154 , 151 , 150 , 149 , 148 , 145 , 141 , 133 , 129 , 122 , 125 , 132 , 137 , 139 ,
101 | 127 , 117 , 96 , 86 , 74 , 77 , 94 , 114 , 142 , 162 , 173 , 166 , 150 , 125 , 103 , 88 , 84 , 92 , 111 , 128 , 142 , 150 , 153 , 155 , 150 , 150 , 149 , 148 , 146 , 139 , 133 , 126 ,
102 | 122 , 126 , 135 , 142 , 140 , 131 , 118 , 99 , 83 , 72 , 74 , 95 , 115 , 146 , 164 , 173 , 167 , 147 , 124 , 99 , 85 , 81 , 95 , 115 , 133 , 148 , 155 , 156 , 156 , 150 , 147 , 144 ,
103 | 142 , 141 , 137 , 131 , 124 , 123 , 129 , 137 , 140 , 137 , 126 , 114 , 93 , 83 , 72 , 79 , 98 , 117 , 148 , 161 , 169 , 159 , 140 , 119 , 96 , 87 , 85 , 100 , 120 , 134 , 148 , 150 ,
104 | 150 , 150 , 144 , 145 , 144 , 144 , 142 , 136 , 128 , 120 , 120 , 127 , 137 , 143 , 144 , 135 , 121 , 100 , 84 , 73 , 74 , 92 , 113 , 142 , 160 , 166 , 161 , 143 , 122 , 97 , 87 , 85 ,
105 | 99 , 119 , 133 , 149 , 154 , 155 , 154 , 146 , 144 , 140 , 138 , 137 , 130 , 126 , 120 , 121 , 128 , 139 , 142 , 142 , 134 , 119 , 102 , 84 , 75 , 79 , 94 , 113 , 141 , 156 , 163 , 158 ,
106 | 139 , 122 , 101 , 93 , 94 , 106 , 124 , 136 , 152 , 153 , 154 , 153 , 144 , 145 , 140 , 138 , 134 , 126 , 121 , 115 , 118 , 126 , 135 , 143 , 142 , 139 , 124 , 105 , 90 , 77 , 81 , 90 ,
107 | 111 , 135 , 148 , 157 , 150 , 138 , 121 , 102 , 96 , 98 , 110 , 128 , 139 , 153 , 154 , 156 , 155 , 147 , 146 , 139 , 136 , 132 , 125 , 119 , 115 , 120 , 130 , 143 , 151 , 150 , 143 , 124 ,
108 | 104 , 85 , 74 , 78 , 89 , 111 , 135 , 151 , 155 , 150 , 134 , 117 , 103 , 98 , 103 , 118 , 134 , 145 , 157 , 156 , 155 , 152 , 144 , 143 , 139 , 139 , 134 , 127 , 119 , 114 , 117 , 129 ,
109 | 144 , 150 , 158 , 149 , 137 , 111 , 89 , 74 , 70 , 85 , 100 , 131 , 147 , 156 , 154 , 139 , 122 , 99 , 93 , 95 , 111 , 130 , 144 , 158 , 161 , 160 , 155 , 144 , 136 , 130 , 125 , 124 ,
110 | 118 , 114 , 115 , 117 , 133 , 143 , 155 , 155 , 147 , 136 , 108 , 90 , 68 , 67 , 78 , 94 , 124 , 137 , 153 , 150 , 140 , 125 , 106 , 99 , 97 , 110 , 124 , 138 , 150 , 154 , 156 , 151 ,
111 | 142 , 135 , 130 , 126 , 125 , 116 , 113 , 110 , 117 , 130 , 143 , 155 , 155 , 152 , 137 , 114 , 91 , 75 , 69 , 78 , 92 , 117 , 135 , 146 , 152 , 142 , 132 , 112 , 106 , 102 , 110 , 127 ,
112 | 137 , 155 , 160 , 163 , 159 , 148 , 141 , 130 , 125 , 119 , 114 , 112 , 113 , 123 , 136 , 154 , 160 , 162 , 149 , 131 , 106 , 82 , 70 , 67 , 82 , 100 , 125 , 141 , 153 , 150 , 139 , 126 ,
113 | 111 , 106 , 107 , 119 , 134 , 147 , 157 , 160 , 157 , 151 , 140 , 132 , 129 , 125 , 122 , 117 , 113 , 113 , 117 , 129 , 146 , 157 , 162 , 159 , 144 , 120 , 95 , 71 , 64 , 69 , 84 , 106 ,
114 | 130 , 145 , 151 , 149 , 136 , 122 , 108 , 106 , 110 , 125 , 137 , 150 , 159 , 157 , 157 , 144 , 135 , 125 , 118 , 112 , 108 , 109 , 111 , 121 , 133 , 154 , 165 , 165 , 158 , 137 , 117 , 89 ,
115 | 71 , 63 , 69 , 84 , 101 , 129 , 138 , 147 , 145 , 136 , 128 , 116 , 116 , 117 , 130 , 140 , 150 , 156 , 153 , 152 , 143 , 137 , 130 , 123 , 119 , 112 , 111 , 111 , 120 , 132 , 152 , 167 ,
116 | 171 , 167 , 150 , 128 , 101 , 79 , 64 , 66 , 79 , 96 , 124 , 139 , 152 , 153 , 146 , 138 , 122 , 119 , 115 , 127 , 136 , 146 , 157 , 155 , 157 , 147 , 138 , 128 , 119 , 115 , 111 , 109 ,
117 | 114 , 122 , 137 , 155 , 166 , 169 , 161 , 144 , 122 , 98 , 78 , 66 , 67 , 79 , 94 , 117 , 131 , 141 , 146 , 139 , 135 , 123 , 122 , 123 , 131 , 141 , 146 , 155 , 150 , 150 , 142 , 130 ,
118 | 127 , 116 , 113 , 109 , 105 , 109 , 116 , 130 , 149 , 165 , 170 , 167 , 154 , 133 , 107 , 81 , 64 , 62 , 70 , 86 , 112 , 131 , 146 , 152 , 148 , 141 , 127 , 121 , 119 , 128 , 140 , 149 ,
119 | 159 , 157 , 156 , 147 , 135 , 126 , 115 , 111 , 106 , 107 , 111 , 121 , 133 , 151 , 167 , 172 , 170 , 155 , 137 , 111 , 89 , 69 , 64 , 69 , 82 , 108 , 126 , 147 , 154 , 155 , 151 , 138 ,
120 | 131 , 124 , 130 , 138 , 149 , 157 , 156 , 156 , 149 , 138 , 130 , 120 , 113 , 112 , 110 , 113 , 122 , 133 , 149 , 165 , 171 , 169 , 156 , 140 , 114 , 94 , 73 , 66 , 70 , 78 , 103 , 119 ,
121 | 140 , 148 , 151 , 149 , 138 , 133 , 126 , 131 , 136 , 145 , 152 , 153 , 153 , 146 , 137 , 125 , 117 , 109 , 107 , 109 , 113 , 124 , 134 , 150 , 165 , 173 , 168 , 158 , 139 , 115 , 93 , 71 ,
122 | 62 , 63 , 71 , 95 , 116 , 134 , 149 , 152 , 152 , 143 , 136 , 128 , 128 , 133 , 140 , 149 , 147 , 147 , 143 , 134 , 125 , 116 , 109 , 107 , 107 , 115 , 123 , 133 , 147 , 162 , 171 , 168 ,
123 | 157 , 139 , 116 , 96 , 75 , 66 , 63 , 72 , 92 , 112 , 133 , 145 , 152 , 152 , 149 , 138 , 132 , 131 , 134 , 140 , 145 , 146 , 144 , 142 , 135 , 127 , 119 , 111 , 108 , 107 , 112 , 121 ,
124 | 132 , 145 , 161 , 174 , 172 , 162 , 142 , 117 , 93 , 71 , 61 , 61 , 69 , 90 , 114 , 135 , 151 , 155 , 154 , 149 , 140 , 134 , 131 , 135 , 140 , 145 , 145 , 141 , 137 , 129 , 121 , 115 ,
125 | 110 , 108 , 108 , 110 , 120 , 129 , 142 , 156 , 169 , 171 , 163 , 149 , 123 , 101 , 76 , 63 , 62 , 69 , 87 , 112 , 133 , 149 , 157 , 155 , 150 , 139 , 136 , 132 , 137 , 141 , 146 , 149 ,
126 | 144 , 142 , 131 , 123 , 117 , 110 , 110 , 110 , 113 , 121 , 127 , 141 , 154 , 170 , 173 , 168 , 155 , 130 , 108 , 80 , 65 , 58 , 63 , 79 , 106 , 130 , 150 , 160 , 161 , 157 , 145 , 139 ,
127 | 132 , 136 , 139 , 147 , 152 , 148 , 145 , 135 , 126 , 119 , 113 , 112 , 113 , 119 , 127 , 136 , 145 , 156 , 168 , 169 , 164 , 150 , 129 , 107 , 85 , 71 , 62 , 66 , 79 , 101 , 126 , 143 ,
128 | 156 , 158 , 159 , 150 , 142 , 136 , 133 , 137 , 139 , 144 , 143 , 140 , 134 , 127 , 121 , 112 , 109 , 108 , 111 , 117 , 126 , 139 , 153 , 168 , 174 , 168 , 153 , 129 , 108 , 85 , 68 , 62 ,
129 | 67 , 79 , 104 , 124 , 143 , 152 , 153 , 154 , 145 , 142 , 134 , 135 , 137 , 142 , 146 , 141 , 138 , 133 , 128 , 123 , 118 , 115 , 114 , 114 , 118 , 125 , 136 , 148 , 163 , 173 , 169 , 161 ,
130 | 139 , 119 , 95 , 75 , 65 , 65 , 77 , 97 , 122 , 141 , 155 , 158 , 159 , 153 , 145 , 138 , 133 , 135 , 137 , 142 , 141 , 139 , 136 , 128 , 124 , 116 , 113 , 112 , 112 , 116 , 123 , 131 ,
131 | 142 , 156 , 165 , 164 , 157 , 138 , 119 , 99 , 78 , 68 , 65 , 75 , 91 , 115 , 134 , 147 , 156 , 155 , 153 , 143 , 135 , 130 , 131 , 134 , 139 , 140 , 138 , 136 , 129 , 123 , 116 , 110 ,
132 | 109 , 111 , 115 , 122 , 132 , 142 , 154 , 163 , 162 , 155 , 137 , 119 , 98 , 81 , 67 , 65 , 71 , 87 , 108 , 126 , 144 , 149 , 157 , 150 , 146 , 137 , 131 , 131 , 131 , 138 , 137 , 139 ,
133 | 135 , 131 , 127 , 119 , 114 , 107 , 107 , 109 , 114 , 125 , 135 , 150 , 161 , 163 , 158 , 143 , 126 , 104 , 86 , 73 , 66 , 74 , 85 , 108 , 127 , 142 , 152 , 154 , 152 , 142 , 135 , 128 ,
134 | 128 , 132 , 137 , 143 , 141 , 142 , 136 , 129 , 122 , 115 , 112 , 110 , 113 , 118 , 126 , 136 , 148 , 160 , 164 , 159 , 147 , 130 , 112 , 93 , 75 , 66 , 67 , 79 , 98 , 120 , 138 , 152 ,
135 | 158 , 157 , 149 , 139 , 129 , 125 , 129 , 133 , 140 , 140 , 140 , 137 , 129 , 121 , 111 , 106 , 105 , 110 , 115 , 126 , 137 , 149 , 161 , 164 , 160 , 146 , 130 , 112 , 93 , 78 , 69 , 72 ,
136 | 80 , 99 , 119 , 134 , 148 , 154 , 156 , 150 , 143 , 135 , 131 , 132 , 134 , 138 , 135 , 134 , 133 , 128 , 124 , 117 , 113 , 110 , 109 , 114 , 119 , 131 , 141 , 158 , 167 , 168 , 162 , 143 ,
137 | 127 , 102 , 83 , 65 , 62 , 71 , 87 , 115 , 134 , 153 , 162 , 163 , 158 , 146 , 135 , 125 , 127 , 131 , 137 , 141 , 141 , 141 , 134 , 126 , 116 , 110 , 106 , 106 , 112 , 121 , 132 , 142 ,
138 | 155 , 162 , 162 , 155 , 140 , 124 , 104 , 88 , 72 , 69 , 72 , 84 , 105 , 124 , 142 , 151 , 156 , 154 , 148 , 138 , 131 , 128 , 129 , 134 , 136 , 135 , 134 , 130 , 124 , 117 , 110 , 104 ,
139 | 102 , 107 , 114 , 126 , 137 , 150 , 163 , 168 , 162 , 148 , 129 , 107 , 86 , 69 , 63 , 65 , 80 , 102 , 125 , 143 , 154 , 159 , 157 , 151 , 141 , 131 , 127 , 129 , 135 , 138 , 140 , 137 ,
140 | 134 , 127 , 120 , 113 , 108 , 108 , 112 , 120 , 130 , 140 , 149 , 162 , 166 , 165 , 151 , 135 , 116 , 95 , 80 , 64 , 68 , 73 , 95 , 117 , 138 , 155 , 160 , 165 , 156 , 148 , 133 , 125 ,
141 | 125 , 128 , 135 , 137 , 140 , 138 , 135 , 127 , 119 , 111 , 107 , 109 , 117 , 127 , 138 , 149 , 161 , 168 , 166 , 156 , 140 , 119 , 100 , 82 , 70 , 70 , 76 , 96 , 116 , 138 , 155 , 162 ,
142 | 165 , 155 , 147 , 132 , 125 , 123 , 125 , 134 , 137 , 140 , 138 , 133 , 126 , 117 , 109 , 106 , 107 , 113 , 123 , 134 , 146 , 157 , 166 , 163 , 154 , 135 , 116 , 95 , 77 , 67 , 67 , 76 ,
143 | 92 , 115 , 133 , 152 , 158 , 160 , 154 , 145 , 136 , 127 , 129 , 130 , 136 , 137 , 135 , 133 , 127 , 122 , 115 , 111 , 110 , 111 , 116 , 124 , 134 , 144 , 154 , 163 , 166 , 159 , 148 , 128 ,
144 | 110 , 89 , 73 , 68 , 71 , 88 , 110 , 134 , 155 , 166 , 170 , 164 , 155 , 141 , 132 , 128 , 128 , 136 , 138 , 139 , 137 , 133 , 127 , 121 , 114 , 111 , 113 , 118 , 127 , 136 , 147 , 154 ,
145 | 162 , 166 , 160 , 147 , 128 , 111 , 92 , 76 , 69 , 72 , 86 , 106 , 128 , 147 , 158 , 161 , 159 , 152 , 140 , 129 , 124 , 125 , 130 , 134 , 135 , 134 , 132 , 126 , 122 , 114 , 110 , 110 ,
146 | 114 , 123 , 131 , 142 , 150 , 158 , 164 , 157 , 147 , 128 , 111 , 92 , 73 , 68 , 66 , 83 , 100 , 124 , 147 , 159 , 166 , 160 , 154 , 140 , 128 , 123 , 124 , 131 , 136 , 140 , 138 , 135 ,
147 | 128 , 121 , 113 , 109 , 110 , 112 , 124 , 133 , 144 , 150 , 157 , 162 , 157 , 147 , 133 , 118 , 100 , 83 , 74 , 71 , 79 , 97 , 117 , 141 , 156 , 165 , 164 , 156 , 145 , 131 , 124 , 120 ,
148 | 127 , 132 , 136 , 139 , 137 , 135 , 126 , 119 , 111 , 111 , 111 , 119 , 130 , 140 , 151 , 155 , 163 , 157 , 153 , 139 , 123 , 107 , 88 , 82 , 76 , 84 , 96 , 117 , 138 , 155 , 165 , 164 ,
149 | 157 , 146 , 136 , 126 , 124 , 126 , 132 , 139 , 142 , 140 , 134 , 127 , 119 , 115 , 114 , 116 , 124 , 132 , 143 , 147 , 152 , 152 , 150 , 146 , 136 , 125 , 109 , 96 , 85 , 81 , 85 , 96 ,
150 | 114 , 133 , 152 , 161 , 162 , 156 , 146 , 136 , 128 , 125 , 126 , 131 , 136 , 141 , 138 , 133 , 124 , 117 , 112 , 110 , 113 , 120 , 131 , 140 , 147 , 150 , 150 , 148 , 141 , 131 , 118 , 102 ,
151 | 92 , 84 , 86 , 92 , 103 , 120 , 135 , 149 , 154 , 154 , 147 , 140 , 134 , 128 , 128 , 131 , 137 , 142 , 144 , 142 , 134 , 126 , 118 , 111 , 109 , 111 , 117 , 126 , 135 , 143 , 147 , 148 ,
152 | 146 , 142 , 134 , 121 , 109 , 96 , 90 , 86 , 91 , 102 , 115 , 133 , 144 , 153 , 153 , 146 , 139 , 130 , 127 , 124 , 129 , 133 , 139 , 141 , 139 , 133 , 125 , 120 , 114 , 112 , 113 , 118 ,
153 | 125 , 132 , 140 , 143 , 145 , 142 , 138 , 130 , 119 , 108 , 97 , 91 , 91 , 96 , 105 , 116 , 128 , 135 , 141 , 138 , 136 , 131 , 128 , 129 , 131 , 136 , 139 , 142 , 139 , 135 , 127 , 121 ,
154 | 117 , 114 , 116 , 117 , 121 , 126 , 131 , 135 , 137 , 137 , 136 , 134 , 129 , 121 , 113 , 102 , 97 , 98 , 102 , 111 , 119 , 131 , 139 , 142 , 141 , 137 , 134 , 131 , 131 , 132 , 135 , 138 ,
155 | 140 , 141 , 138 , 132 , 126 , 120 , 116 , 115 , 114 , 118 , 123 , 129 , 135 , 136 , 138 , 136 , 134 , 129 , 122 , 116 , 107 , 107 , 104 , 108 , 114 , 120 , 127 , 130 , 133 , 132 , 131 , 129 ,
156 | 130 , 131 , 133 , 136 , 139 , 140 , 140 , 135 , 129 , 124 , 120 , 118 , 115 , 117 , 118 , 121 , 125 , 127 , 130 , 130 , 132 , 129 , 127 , 122 , 116 , 113 , 108 , 110 , 111 , 116 , 120 , 123 ,
157 | 128 , 128 , 128 , 128 , 130 , 132 , 135 , 138 , 140 , 141 , 139 , 136 , 131 , 126 , 123 , 121 , 122 , 121 , 122 , 121 , 121 , 121 , 123 , 124 , 124 , 127 , 127 , 126 , 124 , 119 , 117 , 114 ,
158 | 114 , 117 , 119 , 123 , 124 , 127 , 127 , 128 , 130 , 131 , 135 , 137 , 140 , 141 , 142 , 142 , 139 , 135 , 132 , 127 , 124 , 123 , 121 , 122 , 121 , 122 , 121 , 121 , 122 , 121 , 124 , 124 ,
159 | 127 , 126 , 124 , 123 , 121 , 120 , 117 , 118 , 118 , 119 , 119 , 122 , 125 , 128 , 132 , 135 , 137 , 137 , 137 , 136 , 135 , 134 , 132 , 131 , 130 , 128 , 126 , 123 , 121 , 117 , 116 , 113 ,
160 | 114 , 116 , 119 , 123 , 124 , 127 , 125 , 123 , 121 , 120 , 120 , 119 , 122 , 123 , 123 , 121 , 120 , 122 , 123 , 127 , 130 , 133 , 135 , 137 , 138 , 137 , 135 , 132 , 130 , 126 , 125 , 124 ,
161 | 121 , 119 , 116 , 116 , 113 , 115 , 116 , 119 , 123 , 125 , 128 , 128 , 129 , 126 , 124 , 123 , 121 , 122 , 120 , 120 , 121 , 122 , 124 , 127 , 131 , 134 , 135 , 136 , 137 , 137 , 136 , 135 ,
162 | 134 , 135 , 135 , 135 , 134 , 130 , 126 , 120 , 114 , 110 , 110 , 111 , 116 , 123 , 129 , 133 , 135 , 135 , 133 , 129 , 126 , 125 , 125 , 125 , 126 , 126 , 128 , 129 , 130 , 132 , 133 , 135 ,
163 | 136 , 138 , 139 , 141 , 139 , 139 , 137 , 136 , 135 , 132 , 128 , 123 , 120 , 113 , 110 , 108 , 110 , 114 , 120 , 127 , 132 , 135 , 135 , 133 , 130 , 126 , 122 , 120 , 121 , 122 , 125 , 126 ,
164 | 127 , 128 , 130 , 129 , 128 , 130 , 132 , 136 , 137 , 139 , 140 , 136 , 134 , 128 , 124 , 119 , 112 , 112 , 109 , 112 , 110 , 115 , 117 , 119 , 122 , 123 , 126 , 125 , 126 , 127 , 127 , 127 ,
165 | 125 , 125 , 123 , 123 , 121 , 122 , 123 , 126 , 128 , 130 , 133 , 135 , 137 , 136 , 138 , 136 , 136 , 134 , 132 , 129 , 122 , 119 , 113 , 111 , 109 , 111 , 114 , 117 , 122 , 124 , 126 , 128 ,
166 | 127 , 129 , 128 , 130 , 130 , 129 , 129 , 126 , 125 , 122 , 123 , 121 , 124 , 127 , 130 , 135 , 137 , 139 , 139 , 140 , 137 , 134 , 132 , 127 , 126 , 121 , 119 , 116 , 113 , 113 , 113 , 117 ,
167 | 116 , 119 , 121 , 124 , 126 , 128 , 130 , 130 , 131 , 130 , 128 , 127 , 125 , 122 , 121 , 122 , 122 , 125 , 127 , 131 , 133 , 136 , 136 , 137 , 137 , 135 , 135 , 130 , 129 , 124 , 122 , 116 ,
168 | 113 , 111 , 110 , 114 , 115 , 119 , 122 , 126 , 127 , 129 , 131 , 131 , 132 , 131 , 131 , 128 , 126 , 125 , 123 , 124 , 123 , 124 , 126 , 128 , 131 , 134 , 137 , 139 , 140 , 139 , 138 , 135 ,
169 | 130 , 127 , 122 , 120 , 117 , 117 , 118 , 118 , 120 , 121 , 123 , 122 , 124 , 125 , 129 , 131 , 134 , 136 , 135 , 134 , 131 , 129 , 124 , 124 , 123 , 124 , 127 , 129 , 135 , 137 , 139 , 141 ,
170 | 140 , 141 , 139 , 138 , 135 , 132 , 129 , 126 , 123 , 120 , 118 , 117 , 116 , 118 , 121 , 121 , 122 , 123 , 124 , 125 , 127 , 130 , 131 , 132 , 133 , 132 , 130 , 127 , 125 , 123 , 122 , 124 ,
171 | 126 , 131 , 134 , 138 , 141 , 139 , 140 , 136 , 135 , 131 , 129 , 126 , 123 , 122 , 119 , 121 , 120 , 123 , 124 , 125 , 125 , 124 , 124 , 125 , 127 , 128 , 130 , 130 , 130 , 128 , 128 , 125 ,
172 | 122 , 123 , 122 , 124 , 125 , 128 , 132 , 135 , 137 , 137 , 136 , 136 , 133 , 133 , 131 , 130 , 127 , 125 , 124 , 121 , 121 , 120 , 121 , 122 , 125 , 126 , 127 , 127 , 129 , 129 , 128 , 128 ,
173 | 126 , 126 , 125 , 126 , 126 , 126 , 127 , 125 , 127 , 126 , 128 , 131 , 133 , 136 , 137 , 137 , 136 , 134 , 130 , 128 , 125 , 124 , 124 , 124 , 123 , 123 , 122 , 120 , 122 , 122 , 123 , 124 ,
174 | 126 , 129 , 131 , 132 , 130 , 128 , 125 , 122 , 121 , 121 , 122 , 124 , 127 , 129 , 131 , 132 , 133 , 134 , 133 , 132 , 131 , 129 , 128 , 127 , 126 , 125 , 124 , 123 , 123 , 122 , 122 , 123 ,
175 | 122 , 122 , 123 , 124 , 125 , 126 , 127 , 127 , 128 , 127 , 126 , 125 , 124 , 124 , 124 , 123 , 123 , 124 , 126 , 128 , 130 , 133 , 135 , 136 , 136 , 134 , 131 , 127 , 124 , 121 , 120 , 120 ,
176 | 121 , 122 , 124 , 127 , 127 , 127 , 124 , 124 , 123 , 123 , 124 , 125 , 126 , 128 , 128 , 127 , 125 , 124 , 122 , 122 , 123 , 126 , 128 , 130 , 134 , 136 , 136 , 136 , 136 , 133 , 131 , 129 ,
177 | 127 , 126 , 127 , 126 , 126 , 127 , 126 , 127 , 127 , 128 , 123 , 121 , 118 , 116 , 118 , 119 , 125 , 131 , 136 , 138 , 136 , 131 , 122 , 117 , 112 , 112 , 115 , 121 , 131 , 138 , 145 , 146 ,
178 | 141 , 135 , 128 , 122 , 118 , 118 , 119 , 122 , 123 , 125 , 125 , 125 , 126 , 126 , 129 , 130 , 131 , 131 , 129 , 126 , 124 , 122 , 121 , 121 , 123 , 125 , 128 , 128 , 127 , 127 , 124 , 124 ,
179 | 122 , 124 , 127 , 131 , 134 , 136 , 137 , 136 , 133 , 129 , 125 , 122 , 120 , 120 , 121 , 124 , 127 , 129 , 131 , 132 , 131 , 129 , 128 , 128 , 127 , 126 , 127 , 127 , 128 , 129 , 128 , 129 ,
180 | 126 , 125 , 124 , 125 , 126 , 128 , 132 , 135 , 136 , 137 , 138 , 136 , 132 , 129 , 125 , 122 , 119 , 118 , 120 , 123 , 126 , 129 , 132 , 131 , 132 , 130 , 128 , 126 , 124 , 124 , 123 , 125 ,
181 | 126 , 126 , 127 , 126 , 126 , 125 , 125 , 124 , 125 , 125 , 126 , 129 , 130 , 133 , 135 , 134 , 134 , 131 , 129 , 126 , 123 , 122 , 120 , 119 , 120 , 122 , 125 , 128 , 130 , 132 , 131 , 131 ,
182 | 128 , 126 , 125 , 124 , 124 , 125 , 126 , 126 , 127 , 126 , 126 , 124 , 123 , 124 , 126 , 129 , 131 , 135 , 137 , 137 , 135 , 132 , 128 , 124 , 122 , 121 , 121 , 122 , 121 , 123 , 124 , 126 ,
183 | 128 , 129 , 130 , 129 , 130 , 128 , 127 , 125 , 124 , 123 , 121 , 123 , 124 , 126 , 128 , 128 , 128 , 127 , 126 , 125 , 127 , 129 , 132 , 136 , 138 , 139 , 138 , 135 , 131 , 127 , 123 , 121 ,
184 | 121 , 123 , 127 , 131 , 134 , 136 , 135 , 132 , 130 , 128 , 127 , 128 , 129 , 128 , 127 , 127 , 126 , 125 , 125 , 126 , 125 , 126 , 128 , 130 , 131 , 132 , 132 , 132 , 131 , 131 , 131 , 130 ,
185 | 129 , 128 , 126 , 124 , 122 , 120 , 119 , 121 , 123 , 126 , 129 , 131 , 133 , 133 , 131 , 128 , 126 , 124 , 122 , 121 , 122 , 124 , 125 , 126 , 126 , 127 , 125 , 125 , 126 , 126 , 128 , 130 ,
186 | 132 , 132 , 133 , 132 , 131 , 130 , 128 , 126 , 124 , 122 , 122 , 121 , 123 , 125 , 128 , 131 , 132 , 133 , 133 , 132 , 130 , 127 , 127 , 126 , 126 , 127 , 128 , 129 , 130 , 131 , 131 , 130 ,
187 | 130 , 129 , 130 , 132 , 133 , 134 , 136 , 136 , 135 , 132 , 130 , 128 , 125 , 123 , 123 , 124 , 125 , 126 , 129 , 131 , 132 , 133 , 132 , 133 , 132 , 131 , 130 , 128 , 126 , 124 , 123 , 122 ,
188 | 123 , 126 , 127 , 128 , 129 , 128 , 128 , 127 , 128 , 129 , 130 , 131 , 132 , 131 , 131 , 130 , 128 , 125 , 123 , 121 , 119 , 120 , 121 , 124 , 126 , 128 , 129 , 128 , 128 , 126 , 125 , 122 ,
189 | 121 , 121 , 120 , 121 , 120 , 122 , 123 , 124 , 126 , 126 , 127 , 128 , 128 , 129 , 128 , 129 , 128 , 127 , 128 , 127 , 128 , 127 , 125 , 123 , 122 , 121 , 122 , 124 , 127 , 129 , 131 , 132 ,
190 | 131 , 130 , 129 , 127 , 126 , 125 , 124 , 124 , 125 , 125 , 124 , 126 , 127 , 127 , 128 , 129 , 130 , 130 , 129 , 128 , 129 , 128 , 130 , 129 , 130 , 129 , 128 , 128 , 126 , 125 , 124 , 125 ,
191 | 127 , 129 , 131 , 132 , 132 , 133 , 132 , 129 , 127 , 126 , 123 , 123 , 124 , 125 , 126 , 127 , 128 , 127 , 127 , 126 , 127 , 128 , 129 , 130 , 131 , 131 , 130 , 131 , 129 , 128 , 128 , 126 ,
192 | 124 , 124 , 123 , 123 , 124 , 125 , 127 , 128 , 129 , 130 , 131 , 130 , 129 , 128 , 126 , 124 , 123 , 122 , 123 , 125 , 126 , 128 , 129 , 130 , 129 , 128 , 129 , 128 , 127 , 128 , 128 , 129 ,
193 | 128 , 129 , 129 , 127 , 125 , 123 , 121 , 121 , 122 , 124 , 127 , 129 , 131 , 132 , 132 , 131 , 130 , 128 , 126 , 124 , 123 , 123 , 124 , 125 , 126 , 128 , 129 , 129 , 130 , 131 , 130 , 131 ,
194 | 130 , 130 , 129 , 128 , 129 , 128 , 129 , 128 , 128 , 126 , 125 , 124 , 124 , 125 , 125 , 127 , 128 , 129 , 129 , 130 , 129 , 129 , 127 , 126 , 125 , 124 , 124 , 123 , 123 , 124 , 124 , 125 ,
195 | 125 , 127 , 128 , 128 , 127 , 128 , 129 , 129 , 129 , 128 , 127 , 127 , 126 , 124 , 123 , 122 , 121 , 120 , 122 , 123 , 125 , 126 , 126 , 127 , 126 , 124 , 124 , 123 , 123 , 122 , 122 , 121 ,
196 | 121 , 122 , 122 , 123 , 124 , 125 , 126 , 127 , 127 , 127 , 126 , 125 , 125 , 125 , 126 , 126 , 127 , 128 , 127 , 126 , 124 , 123 , 122 , 122 , 124 , 126 , 127 , 127 , 128 , 128 , 127 , 125 ,
197 | 124 , 123 , 124 , 124 , 124 , 126 , 125 , 126 , 127 , 126 , 128 , 129 , 130 , 129 , 130 , 129 , 127 , 126 , 125 , 126 , 125 , 126 , 128 , 128 , 127 , 127 , 126 , 125 , 127 , 129 , 130 , 131 ,
198 | 132 , 132 , 131 , 131 , 129 , 127 , 125 , 124 , 125 , 126 , 126 , 127 , 127 , 128 , 129 , 129 , 130 , 130 , 131 , 130 , 130 , 129 , 128 , 129 , 128 , 128 , 129 , 128 , 129 , 128 , 127 , 126 ,
199 | 126 , 125 , 126 , 126 , 127 , 128 , 128 , 129 , 128 , 128 , 127 , 127 , 127 , 126 , 125 , 125 , 126 , 126 , 127 , 128 , 129 , 130 , 131 , 131 , 129 , 127 , 126 , 126 , 125 , 127 , 128 , 128 ,
200 | 127 , 126 , 125 , 125 , 124 , 123 , 125 , 126 , 127 , 127 , 128 , 128 , 127 , 127 , 126 , 127 , 126 , 126 , 126 , 125 , 126 , 126 , 126 , 127 , 128 , 129 , 128 , 129 , 130 , 130 , 129 , 128 ,
201 | 129 , 128 , 128 , 128 , 128 , 127 , 127 , 126 , 126 , 125 , 125 , 125 , 126 , 126 , 127 , 128 , 129 , 128 , 127 , 126 , 126 , 124 , 124 , 123 , 124 , 123 , 123 , 124 , 125 , 125 , 127 , 128 ,
202 | 129 , 130 , 129 , 128 , 126 , 124 , 124 , 123 , 124 , 125 , 125 , 126 , 125 , 125 , 124 , 125 , 124 , 125 , 124 , 124 , 125 , 125 , 126 , 127 , 126 , 125 , 123 , 123 , 122 , 121 , 122 , 122 ,
203 | 122 , 123 , 125 , 125 , 127 , 127 , 126 , 127 , 127 , 126 , 126 , 125 , 125 , 124 , 125 , 124 , 125 , 126 , 125 , 126 , 125 , 124 , 124 , 124 , 125 , 126 , 128 , 128 , 129 , 128 , 127 , 125 ,
204 | 124 , 125 , 124 , 125 , 126 , 127 , 128 , 129 , 128 , 129 , 129 , 129 , 129 , 130 , 130 , 129 , 129 , 128 , 128 , 126 , 126 , 127 , 128 , 129 , 128 , 129 , 128 , 127 , 127 , 128 , 129 , 130 ,
205 | 132 , 131 , 131 , 129 , 128 , 127 , 127 , 128 , 128 , 129
206 | };
207 | const uint8_t piano[] = {
208 | 128 , 128 , 128 , 128 , 128 , 128 , 129 , 130 , 130 , 130 , 131 , 130 , 131 , 131 , 132 , 132 , 133 , 133 , 132 , 133 , 133 , 134 , 134 , 133 , 132 , 132 , 132 , 132 , 132 , 131 , 130 , 125 ,
209 | 129 , 134 , 122 , 130 , 119 , 130 , 118 , 131 , 124 , 136 , 124 , 119 , 177 , 151 , 144 , 140 , 132 , 144 , 114 , 112 , 105 , 102 , 112 , 76 , 125 , 112 , 90 , 109 , 78 , 88 , 114 , 100 ,
210 | 112 , 106 , 122 , 108 , 142 , 109 , 148 , 156 , 143 , 130 , 172 , 194 , 160 , 187 , 174 , 194 , 198 , 164 , 147 , 138 , 142 , 124 , 125 , 100 , 108 , 141 , 80 , 76 , 90 , 58 , 68 , 71 ,
211 | 76 , 80 , 120 , 102 , 159 , 191 , 172 , 193 , 183 , 192 , 155 , 181 , 116 , 130 , 120 , 112 , 117 , 104 , 112 , 120 , 124 , 164 , 126 , 159 , 119 , 128 , 181 , 157 , 165 , 116 , 140 , 49 ,
212 | 127 , 122 , 142 , 114 , 107 , 135 , 126 , 102 , 80 , 98 , 125 , 70 , 114 , 112 , 104 , 124 , 120 , 135 , 154 , 166 , 160 , 145 , 152 , 125 , 144 , 118 , 92 , 154 , 128 , 136 , 140 , 144 ,
213 | 144 , 137 , 112 , 130 , 117 , 101 , 158 , 123 , 131 , 84 , 116 , 116 , 116 , 160 , 108 , 166 , 127 , 158 , 139 , 162 , 132 , 151 , 160 , 135 , 96 , 150 , 101 , 118 , 123 , 151 , 114 , 154 ,
214 | 98 , 90 , 104 , 126 , 118 , 98 , 82 , 74 , 114 , 112 , 98 , 142 , 138 , 152 , 175 , 197 , 193 , 214 , 226 , 185 , 181 , 193 , 174 , 177 , 105 , 95 , 52 , 45 , 0 , 0 , 54 , 50 ,
215 | 84 , 86 , 108 , 74 , 128 , 110 , 133 , 128 , 138 , 155 , 133 , 144 , 151 , 168 , 171 , 176 , 216 , 176 , 200 , 200 , 229 , 188 , 186 , 178 , 155 , 113 , 146 , 112 , 109 , 82 , 58 , 79 ,
216 | 94 , 80 , 88 , 85 , 62 , 77 , 64 , 98 , 53 , 90 , 112 , 135 , 140 , 154 , 186 , 187 , 189 , 195 , 200 , 190 , 148 , 143 , 168 , 144 , 162 , 167 , 119 , 96 , 112 , 96 , 80 , 80 ,
217 | 93 , 110 , 98 , 131 , 96 , 120 , 110 , 129 , 110 , 129 , 117 , 150 , 124 , 109 , 123 , 107 , 82 , 38 , 109 , 86 , 118 , 118 , 138 , 138 , 171 , 158 , 176 , 171 , 159 , 175 , 129 , 129 ,
218 | 102 , 118 , 135 , 132 , 161 , 142 , 149 , 147 , 167 , 145 , 148 , 133 , 114 , 100 , 113 , 92 , 129 , 106 , 83 , 108 , 131 , 128 , 120 , 143 , 148 , 140 , 144 , 155 , 130 , 124 , 135 , 144 ,
219 | 128 , 112 , 128 , 149 , 142 , 147 , 159 , 150 , 90 , 114 , 97 , 95 , 110 , 125 , 100 , 92 , 106 , 124 , 124 , 143 , 119 , 167 , 167 , 178 , 150 , 191 , 170 , 191 , 178 , 170 , 178 , 160 ,
220 | 168 , 102 , 113 , 74 , 52 , 40 , 46 , 58 , 72 , 68 , 78 , 88 , 106 , 100 , 112 , 147 , 112 , 152 , 133 , 144 , 139 , 132 , 158 , 176 , 177 , 166 , 190 , 179 , 206 , 180 , 209 , 158 ,
221 | 150 , 132 , 106 , 91 , 84 , 68 , 66 , 74 , 112 , 83 , 87 , 92 , 100 , 104 , 74 , 97 , 87 , 88 , 90 , 128 , 131 , 138 , 150 , 174 , 186 , 175 , 203 , 184 , 149 , 155 , 141 , 147 ,
222 | 144 , 141 , 138 , 110 , 110 , 88 , 92 , 98 , 88 , 132 , 131 , 122 , 110 , 139 , 129 , 127 , 134 , 129 , 152 , 146 , 142 , 127 , 147 , 115 , 99 , 97 , 78 , 101 , 108 , 130 , 117 , 154 ,
223 | 157 , 160 , 159 , 165 , 162 , 139 , 131 , 103 , 107 , 102 , 127 , 147 , 148 , 112 , 166 , 151 , 157 , 142 , 166 , 134 , 141 , 106 , 102 , 106 , 96 , 100 , 92 , 109 , 132 , 130 , 132 , 118 ,
224 | 142 , 154 , 128 , 124 , 122 , 112 , 93 , 109 , 109 , 78 , 119 , 126 , 149 , 146 , 152 , 139 , 138 , 104 , 107 , 94 , 125 , 116 , 104 , 123 , 110 , 117 , 127 , 137 , 130 , 171 , 170 , 175 ,
225 | 154 , 180 , 176 , 188 , 168 , 160 , 191 , 160 , 140 , 128 , 107 , 86 , 72 , 80 , 49 , 45 , 65 , 74 , 77 , 93 , 102 , 112 , 124 , 122 , 145 , 138 , 144 , 140 , 143 , 146 , 164 , 197 ,
226 | 186 , 164 , 202 , 203 , 204 , 202 , 189 , 197 , 166 , 139 , 96 , 90 , 71 , 64 , 74 , 81 , 90 , 88 , 95 , 84 , 91 , 95 , 101 , 86 , 94 , 85 , 96 , 115 , 118 , 121 , 164 , 155 ,
227 | 189 , 195 , 193 , 186 , 192 , 178 , 136 , 147 , 154 , 159 , 123 , 130 , 100 , 90 , 93 , 102 , 101 , 119 , 122 , 119 , 122 , 102 , 122 , 123 , 110 , 112 , 144 , 138 , 134 , 135 , 146 , 122 ,
228 | 129 , 122 , 99 , 100 , 89 , 120 , 123 , 138 , 140 , 148 , 157 , 147 , 138 , 138 , 108 , 103 , 102 , 104 , 121 , 144 , 128 , 142 , 137 , 148 , 163 , 157 , 152 , 151 , 162 , 125 , 103 , 104 ,
229 | 104 , 85 , 108 , 119 , 132 , 122 , 140 , 146 , 137 , 150 , 138 , 142 , 130 , 103 , 109 , 99 , 81 , 105 , 120 , 136 , 144 , 164 , 163 , 148 , 158 , 139 , 105 , 100 , 108 , 113 , 112 , 107 ,
230 | 112 , 113 , 127 , 123 , 151 , 155 , 156 , 167 , 170 , 157 , 173 , 163 , 157 , 154 , 171 , 158 , 132 , 126 , 108 , 114 , 108 , 90 , 62 , 73 , 51 , 60 , 76 , 86 , 94 , 98 , 117 , 118 ,
231 | 119 , 128 , 131 , 131 , 122 , 133 , 161 , 156 , 167 , 171 , 189 , 186 , 202 , 207 , 193 , 198 , 200 , 152 , 110 , 93 , 81 , 76 , 61 , 84 , 85 , 97 , 86 , 98 , 99 , 92 , 95 , 106 ,
232 | 90 , 80 , 87 , 100 , 98 , 104 , 147 , 148 , 176 , 182 , 194 , 196 , 209 , 194 , 166 , 150 , 148 , 151 , 138 , 112 , 89 , 102 , 101 , 98 , 110 , 120 , 128 , 132 , 118 , 126 , 117 , 120 ,
233 | 102 , 115 , 133 , 123 , 139 , 135 , 128 , 138 , 155 , 130 , 112 , 100 , 106 , 93 , 118 , 125 , 130 , 143 , 152 , 154 , 144 , 109 , 125 , 123 , 94 , 102 , 115 , 130 , 117 , 130 , 138 , 139 ,
234 | 147 , 157 , 156 , 166 , 174 , 157 , 131 , 120 , 111 , 112 , 105 , 116 , 125 , 143 , 132 , 146 , 158 , 129 , 150 , 141 , 130 , 106 , 81 , 80 , 80 , 88 , 99 , 117 , 140 , 155 , 147 , 168 ,
235 | 173 , 156 , 128 , 126 , 100 , 119 , 116 , 102 , 101 , 117 , 122 , 137 , 134 , 142 , 168 , 161 , 165 , 157 , 171 , 152 , 149 , 157 , 160 , 128 , 135 , 121 , 112 , 108 , 131 , 110 , 94 , 78 ,
236 | 64 , 66 , 68 , 76 , 85 , 94 , 104 , 132 , 117 , 115 , 132 , 140 , 134 , 126 , 150 , 155 , 160 , 162 , 174 , 180 , 193 , 181 , 200 , 198 , 195 , 162 , 140 , 120 , 85 , 84 , 78 , 78 ,
237 | 93 , 94 , 99 , 104 , 97 , 100 , 94 , 106 , 96 , 94 , 78 , 78 , 94 , 115 , 117 , 139 , 165 , 183 , 181 , 206 , 220 , 200 , 186 , 176 , 153 , 148 , 123 , 99 , 98 , 87 , 98 , 103 ,
238 | 110 , 106 , 125 , 141 , 122 , 124 , 126 , 110 , 100 , 125 , 122 , 119 , 128 , 138 , 139 , 144 , 160 , 152 , 145 , 130 , 102 , 121 , 104 , 111 , 129 , 129 , 149 , 132 , 133 , 108 , 123 , 112 ,
239 | 109 , 100 , 116 , 116 , 131 , 122 , 126 , 142 , 150 , 138 , 154 , 171 , 173 , 158 , 154 , 151 , 122 , 121 , 98 , 119 , 120 , 124 , 142 , 140 , 137 , 130 , 151 , 138 , 124 , 104 , 85 , 65 ,
240 | 71 , 85 , 86 , 100 , 131 , 140 , 144 , 158 , 172 , 162 , 147 , 129 , 126 , 126 , 98 , 107 , 98 , 122 , 114 , 138 , 144 , 139 , 159 , 177 , 171 , 173 , 162 , 164 , 152 , 156 , 140 , 129 ,
241 | 132 , 112 , 116 , 120 , 124 , 125 , 128 , 102 , 82 , 70 , 70 , 66 , 61 , 85 , 103 , 106 , 110 , 108 , 141 , 136 , 134 , 142 , 142 , 151 , 164 , 170 , 156 , 177 , 195 , 189 , 189 , 195 ,
242 | 189 , 168 , 158 , 134 , 126 , 83 , 84 , 81 , 85 , 84 , 96 , 100 , 96 , 76 , 110 , 99 , 97 , 87 , 72 , 77 , 83 , 104 , 98 , 133 , 150 , 170 , 184 , 198 , 200 , 218 , 208 , 189 ,
243 | 172 , 152 , 126 , 100 , 91 , 96 , 87 , 106 , 112 , 111 , 126 , 122 , 136 , 134 , 116 , 107 , 114 , 117 , 104 , 115 , 130 , 130 , 134 , 150 , 150 , 168 , 160 , 168 , 133 , 114 , 116 , 120 ,
244 | 114 , 120 , 128 , 134 , 110 , 107 , 120 , 113 , 108 , 109 , 115 , 113 , 123 , 124 , 117 , 124 , 139 , 134 , 154 , 148 , 161 , 162 , 167 , 167 , 158 , 134 , 115 , 112 , 127 , 123 , 127 , 138 ,
245 | 140 , 138 , 144 , 144 , 128 , 113 , 84 , 66 , 74 , 69 , 67 , 94 , 110 , 114 , 147 , 138 , 165 , 154 , 167 , 154 , 145 , 130 , 111 , 106 , 106 , 106 , 119 , 127 , 132 , 151 , 163 , 162 ,
246 | 166 , 189 , 170 , 160 , 155 , 151 , 118 , 128 , 113 , 121 , 109 , 108 , 126 , 126 , 132 , 133 , 109 , 87 , 72 , 72 , 71 , 68 , 85 , 101 , 98 , 110 , 129 , 140 , 136 , 136 , 146 , 156 ,
247 | 159 , 158 , 149 , 181 , 172 , 189 , 186 , 181 , 178 , 162 , 170 , 157 , 140 , 126 , 96 , 90 , 88 , 88 , 94 , 92 , 97 , 92 , 106 , 96 , 106 , 100 , 82 , 74 , 101 , 86 , 94 , 119 ,
248 | 144 , 159 , 170 , 180 , 203 , 205 , 215 , 203 , 194 , 171 , 129 , 122 , 93 , 85 , 90 , 97 , 97 , 110 , 125 , 115 , 128 , 138 , 128 , 116 , 117 , 105 , 105 , 104 , 110 , 132 , 133 , 132 ,
249 | 142 , 158 , 179 , 163 , 163 , 138 , 122 , 130 , 107 , 118 , 106 , 117 , 103 , 106 , 108 , 112 , 115 , 109 , 108 , 126 , 121 , 115 , 108 , 122 , 126 , 131 , 142 , 149 , 148 , 154 , 179 , 180 ,
250 | 181 , 150 , 150 , 136 , 123 , 126 , 124 , 135 , 136 , 144 , 143 , 132 , 135 , 119 , 89 , 74 , 71 , 66 , 63 , 74 , 101 , 116 , 125 , 135 , 149 , 166 , 162 , 157 , 176 , 139 , 132 , 117 ,
251 | 122 , 104 , 107 , 124 , 136 , 146 , 159 , 146 , 173 , 179 , 176 , 172 , 154 , 141 , 125 , 111 , 106 , 105 , 116 , 110 , 102 , 129 , 136 , 139 , 129 , 108 , 96 , 89 , 71 , 76 , 78 , 85 ,
252 | 92 , 114 , 122 , 122 , 144 , 141 , 146 , 156 , 153 , 155 , 147 , 162 , 170 , 167 , 177 , 176 , 159 , 156 , 154 , 173 , 159 , 136 , 124 , 118 , 95 , 92 , 85 , 94 , 90 , 102 , 94 , 99 ,
253 | 108 , 93 , 104 , 88 , 90 , 90 , 91 , 112 , 123 , 141 , 158 , 160 , 192 , 198 , 202 , 197 , 202 , 174 , 145 , 123 , 108 , 94 , 80 , 81 , 98 , 124 , 108 , 113 , 132 , 139 , 141 , 129 ,
254 | 130 , 107 , 97 , 111 , 106 , 110 , 133 , 132 , 142 , 152 , 170 , 174 , 170 , 158 , 154 , 140 , 122 , 112 , 108 , 92 , 90 , 104 , 100 , 104 , 104 , 112 , 117 , 118 , 117 , 116 , 109 , 122 ,
255 | 112 , 128 , 132 , 138 , 146 , 148 , 159 , 176 , 187 , 178 , 170 , 158 , 139 , 129 , 129 , 126 , 146 , 140 , 133 , 138 , 130 , 108 , 101 , 87 , 76 , 62 , 62 , 80 , 76 , 106 , 107 , 123 ,
256 | 141 , 146 , 155 , 150 , 161 , 155 , 147 , 136 , 123 , 122 , 115 , 110 , 137 , 149 , 148 , 146 , 169 , 180 , 188 , 173 , 178 , 139 , 127 , 113 , 101 , 106 , 100 , 106 , 110 , 118 , 129 , 135 ,
257 | 140 , 123 , 119 , 110 , 87 , 78 , 77 , 76 , 84 , 100 , 113 , 124 , 130 , 142 , 152 , 154 , 155 , 147 , 160 , 155 , 156 , 162 , 165 , 165 , 154 , 155 , 148 , 156 , 163 , 157 , 154 , 136 ,
258 | 113 , 112 , 84 , 90 , 96 , 100 , 88 , 96 , 102 , 105 , 96 , 103 , 92 , 90 , 92 , 101 , 110 , 122 , 130 , 154 , 177 , 182 , 190 , 188 , 192 , 174 , 166 , 144 , 117 , 110 , 88 , 86 ,
259 | 94 , 111 , 116 , 106 , 122 , 140 , 139 , 144 , 128 , 118 , 113 , 103 , 102 , 112 , 118 , 133 , 138 , 151 , 156 , 160 , 178 , 164 , 171 , 154 , 143 , 124 , 102 , 90 , 84 , 86 , 90 , 92 ,
260 | 107 , 102 , 117 , 128 , 115 , 116 , 124 , 125 , 114 , 119 , 124 , 142 , 138 , 150 , 151 , 168 , 184 , 192 , 197 , 174 , 166 , 151 , 133 , 132 , 135 , 140 , 129 , 120 , 126 , 107 , 103 , 90 ,
261 | 76 , 72 , 65 , 68 , 83 , 81 , 88 , 109 , 134 , 146 , 136 , 150 , 156 , 164 , 161 , 154 , 150 , 138 , 130 , 122 , 124 , 142 , 142 , 144 , 156 , 164 , 188 , 182 , 166 , 147 , 138 , 110 ,
262 | 98 , 91 , 95 , 95 , 109 , 114 , 119 , 118 , 133 , 135 , 136 , 118 , 104 , 96 , 84 , 76 , 75 , 90 , 99 , 118 , 129 , 129 , 148 , 154 , 152 , 155 , 159 , 165 , 159 , 152 , 150 , 154 ,
263 | 154 , 137 , 139 , 139 , 150 , 160 , 164 , 151 , 140 , 119 , 112 , 102 , 96 , 99 , 87 , 99 , 95 , 100 , 103 , 100 , 102 , 103 , 96 , 103 , 106 , 117 , 113 , 138 , 164 , 182 , 178 , 174 ,
264 | 178 , 181 , 167 , 153 , 146 , 123 , 114 , 95 , 104 , 108 , 101 , 115 , 118 , 126 , 139 , 140 , 134 , 128 , 123 , 114 , 100 , 112 , 114 , 127 , 133 , 145 , 154 , 154 , 157 , 173 , 173 , 169 ,
265 | 146 , 138 , 120 , 87 , 85 , 74 , 80 , 90 , 96 , 100 , 114 , 116 , 116 , 122 , 132 , 123 , 116 , 112 , 112 , 129 , 134 , 140 , 144 , 155 , 176 , 190 , 191 , 193 , 181 , 171 , 150 , 149 ,
266 | 147 , 131 , 128 , 125 , 114 , 104 , 101 , 87 , 80 , 72 , 74 , 71 , 71 , 72 , 76 , 94 , 116 , 132 , 135 , 132 , 148 , 155 , 157 , 157 , 162 , 165 , 147 , 136 , 136 , 138 , 136 , 144 ,
267 | 146 , 162 , 173 , 176 , 169 , 153 , 144 , 117 , 102 , 93 , 88 , 94 , 102 , 111 , 115 , 115 , 129 , 130 , 143 , 125 , 120 , 117 , 108 , 87 , 80 , 80 , 99 , 113 , 119 , 129 , 143 , 151 ,
268 | 144 , 156 , 171 , 166 , 162 , 152 , 142 , 143 , 139 , 137 , 126 , 128 , 144 , 151 , 167 , 151 , 156 , 146 , 129 , 124 , 112 , 95 , 97 , 94 , 97 , 95 , 96 , 107 , 104 , 107 , 102 , 109 ,
269 | 112 , 104 , 103 , 125 , 143 , 170 , 167 , 170 , 164 , 167 , 162 , 146 , 147 , 144 , 130 , 121 , 106 , 106 , 104 , 110 , 114 , 117 , 131 , 137 , 135 , 133 , 131 , 116 , 112 , 116 , 114 , 119 ,
270 | 126 , 144 , 142 , 148 , 151 , 171 , 174 , 167 , 160 , 154 , 136 , 112 , 90 , 72 , 75 , 86 , 90 , 91 , 99 , 110 , 108 , 118 , 129 , 124 , 124 , 114 , 115 , 112 , 126 , 132 , 138 , 152 ,
271 | 160 , 182 , 194 , 189 , 194 , 184 , 180 , 176 , 158 , 144 , 131 , 124 , 115 , 99 , 92 , 87 , 81 , 80 , 72 , 73 , 75 , 72 , 73 , 75 , 102 , 112 , 128 , 128 , 135 , 147 , 148 , 152 ,
272 | 168 , 171 , 168 , 167 , 151 , 147 , 143 , 150 , 150 , 155 , 172 , 174 , 165 , 167 , 148 , 128 , 107 , 103 , 94 , 86 , 94 , 95 , 109 , 109 , 114 , 127 , 126 , 122 , 122 , 116 , 122 , 103 ,
273 | 94 , 87 , 94 , 110 , 117 , 125 , 135 , 140 , 144 , 152 , 165 , 168 , 164 , 160 , 144 , 138 , 135 , 123 , 127 , 123 , 136 , 141 , 152 , 153 , 158 , 152 , 152 , 142 , 128 , 109 , 104 , 99 ,
274 | 95 , 87 , 99 , 97 , 104 , 106 , 106 , 108 , 109 , 113 , 108 , 112 , 135 , 147 , 163 , 161 , 160 , 165 , 147 , 144 , 147 , 152 , 145 , 139 , 124 , 116 , 112 , 118 , 107 , 111 , 123 , 127 ,
275 | 135 , 133 , 132 , 125 , 120 , 125 , 117 , 123 , 119 , 130 , 138 , 141 , 147 , 163 , 164 , 165 , 155 , 156 , 148 , 133 , 99 , 86 , 78 , 90 , 81 , 89 , 95 , 104 , 106 , 116 , 124 , 122 ,
276 | 128 , 127 , 114 , 114 , 118 , 122 , 131 , 138 , 160 , 168 , 181 , 190 , 190 , 191 , 191 , 194 , 183 , 157 , 147 , 137 , 113 , 99 , 88 , 89 , 82 , 80 , 75 , 64 , 81 , 76 , 78 , 74 ,
277 | 82 , 100 , 117 , 117 , 128 , 136 , 141 , 141 , 158 , 170 , 178 , 178 , 171 , 156 , 160 , 154 , 151 , 154 , 159 , 161 , 164 , 162 , 142 , 125 , 116 , 110 , 100 , 91 , 84 , 90 , 97 , 104 ,
278 | 111 , 112 , 120 , 121 , 114 , 114 , 122 , 122 , 108 , 94 , 109 , 114 , 116 , 123 , 130 , 138 , 137 , 154 , 160 , 162 , 168 , 163 , 154 , 138 , 125 , 120 , 115 , 119 , 125 , 130 , 141 , 147 ,
279 | 151 , 156 , 146 , 158 , 150 , 129 , 120 , 109 , 104 , 90 , 93 , 97 , 107 , 109 , 103 , 103 , 113 , 111 , 115 , 114 , 122 , 136 , 151 , 157 , 157 , 153 , 146 , 138 , 142 , 146 , 144 , 151 ,
280 | 133 , 130 , 132 , 116 , 111 , 110 , 119 , 115 , 126 , 134 , 126 , 121 , 119 , 130 , 133 , 124 , 124 , 124 , 130 , 135 , 146 , 156 , 161 , 160 , 157 , 150 , 141 , 141 , 115 , 100 , 90 , 96 ,
281 | 84 , 85 , 95 , 101 , 101 , 108 , 112 , 123 , 119 , 124 , 122 , 116 , 112 , 109 , 121 , 137 , 144 , 160 , 174 , 179 , 187 , 189 , 189 , 203 , 196 , 186 , 167 , 151 , 124 , 106 , 97 , 83 ,
282 | 90 , 85 , 69 , 72 , 77 , 84 , 76 , 75 , 80 , 87 , 95 , 110 , 120 , 123 , 126 , 132 , 154 , 155 , 174 , 182 , 177 , 173 , 174 , 166 , 158 , 156 , 162 , 154 , 163 , 155 , 146 , 130 ,
283 | 114 , 118 , 113 , 99 , 92 , 90 , 97 , 95 , 100 , 113 , 119 , 116 , 118 , 112 , 119 , 119 , 118 , 114 , 119 , 124 , 123 , 126 , 130 , 129 , 142 , 142 , 152 , 160 , 165 , 166 , 152 , 148 ,
284 | 131 , 112 , 110 , 114 , 108 , 116 , 125 , 144 , 144 , 142 , 142 , 157 , 157 , 149 , 145 , 131 , 110 , 104 , 98 , 97 , 110 , 110 , 107 , 102 , 106 , 116 , 115 , 118 , 119 , 130 , 138 , 140 ,
285 | 146 , 144 , 132 , 132 , 135 , 132 , 132 , 144 , 145 , 143 , 141 , 133 , 125 , 122 , 114 , 117 , 124 , 126 , 124 , 123 , 120 , 128 , 139 , 140 , 132 , 125 , 134 , 130 , 141 , 148 , 161 , 168 ,
286 | 158 , 147 , 141 , 135 , 121 , 109 , 109 , 97 , 88 , 96 , 92 , 97 , 95 , 104 , 108 , 112 , 120 , 123 , 118 , 124 , 115 , 112 , 116 , 124 , 143 , 143 , 159 , 175 , 184 , 181 , 179 , 196 ,
287 | 200 , 192 , 189 , 165 , 144 , 120 , 104 , 96 , 87 , 86 , 78 , 75 , 70 , 76 , 73 , 80 , 72 , 82 , 89 , 95 , 110 , 109 , 121 , 130 , 144 , 155 , 163 , 171 , 174 , 182 , 188 , 173 ,
288 | 174 , 171 , 166 , 159 , 160 , 156 , 144 , 135 , 124 , 110 , 110 , 112 , 101 , 96 , 90 , 92 , 98 , 99 , 112 , 122 , 120 , 107 , 109 , 114 , 106 , 116 , 126 , 128 , 125 , 126 , 134 , 131 ,
289 | 136 , 138 , 150 , 158 , 162 , 156 , 154 , 147 , 134 , 124 , 110 , 102 , 107 , 108 , 120 , 133 , 144 , 142 , 139 , 149 , 151 , 159 , 152 , 144 , 132 , 114 , 108 , 112 , 118 , 118 , 108 , 112 ,
290 | 112 , 106 , 111 , 114 , 122 , 124 , 126 , 128 , 128 , 124 , 126 , 125 , 127 , 124 , 133 , 135 , 132 , 148 , 147 , 147 , 135 , 136 , 129 , 123 , 123 , 127 , 123 , 126 , 124 , 128 , 138 , 137 ,
291 | 139 , 141 , 131 , 128 , 135 , 140 , 150 , 162 , 160 , 138 , 134 , 126 , 112 , 109 , 104 , 108 , 100 , 98 , 101 , 99 , 100 , 96 , 102 , 119 , 115 , 115 , 116 , 118 , 119 , 122 , 122 , 129 ,
292 | 131 , 138 , 147 , 170 , 175 , 178 , 182 , 183 , 193 , 196 , 191 , 176 , 162 , 141 , 119 , 101 , 102 , 92 , 80 , 78 , 78 , 74 , 69 , 73 , 82 , 85 , 85 , 92 , 98 , 99 , 106 , 122 ,
293 | 138 , 147 , 156 , 163 , 165 , 177 , 184 , 188 , 186 , 184 , 184 , 164 , 164 , 150 , 150 , 137 , 122 , 112 , 112 , 103 , 106 , 105 , 101 , 92 , 93 , 98 , 106 , 122 , 115 , 113 , 110 , 106 ,
294 | 103 , 114 , 122 , 131 , 134 , 141 , 140 , 142 , 146 , 134 , 146 , 158 , 162 , 151 , 142 , 142 , 135 , 125 , 114 , 111 , 107 , 100 , 109 , 128 , 131 , 138 , 139 , 141 , 144 , 149 , 152 , 148 ,
295 | 138 , 134 , 123 , 126 , 127 , 124 , 120 , 117 , 115 , 115 , 104 , 110 , 121 , 128 , 125 , 121 , 126 , 119 , 113 , 110 , 114 , 120 , 119 , 122 , 125 , 131 , 139 , 146 , 150 , 151 , 146 , 141 ,
296 | 135 , 127 , 128 , 133 , 129 , 129 , 128 , 136 , 132 , 140 , 136 , 131 , 127 , 131 , 148 , 157 , 148 , 144 , 140 , 124 , 107 , 103 , 105 , 99 , 104 , 108 , 105 , 108 , 106 , 100 , 104 , 113 ,
297 | 120 , 119 , 107 , 110 , 115 , 127 , 123 , 133 , 136 , 133 , 142 , 158 , 168 , 172 , 179 , 187 , 186 , 182 , 184 , 176 , 173 , 149 , 129 , 122 , 110 , 100 , 90 , 85 , 83 , 77 , 69 , 66 ,
298 | 74 , 84 , 88 , 86 , 90 , 93 , 104 , 108 , 122 , 142 , 151 , 157 , 157 , 168 , 171 , 176 , 194 , 196 , 194 , 182 , 176 , 164 , 154 , 142 , 135 , 118 , 109 , 101 , 102 , 99 , 102 , 96 ,
299 | 92 , 86 , 102 , 112 , 111 , 106 , 110 , 110 , 98 , 108 , 115 , 123 , 135 , 142 , 149 , 150 , 149 , 146 , 150 , 158 , 158 , 155 , 146 , 131 , 128 , 124 , 119 , 113 , 111 , 100 , 104 , 111 ,
300 | 126 , 128 , 136 , 140 , 144 , 147 , 135 , 139 , 145 , 140 , 129 , 138 , 136 , 134 , 126 , 126 , 126 , 117 , 112 , 113 , 118 , 122 , 127 , 127 , 122 , 114 , 114 , 105 , 104 , 112 , 119 , 121 ,
301 | 116 , 126 , 126 , 133 , 144 , 155 , 159 , 148 , 140 , 138 , 131 , 133 , 136 , 140 , 133 , 131 , 135 , 138 , 136 , 138 , 134 , 139 , 141 , 152 , 146 , 142 , 138 , 128 , 113 , 102 , 94 , 96 ,
302 | 102 , 106 , 111 , 118 , 118 , 105 , 112 , 119 , 119 , 117 , 109 , 106 , 104 , 114 , 124 , 130 , 136 , 135 , 138 , 145 , 150 , 166 , 178 , 181 , 183 , 187 , 173 , 170 , 170 , 158 , 139 , 131 ,
303 | 128 , 114 , 104 , 92 , 95 , 85 , 74 , 68 , 77 , 78 , 83 , 86 , 91 , 94 , 99 , 107 , 111 , 127 , 142 , 150 , 152 , 154 , 156 , 167 , 180 , 192 , 197 , 192 , 183 , 172 , 161 , 146 ,
304 | 138 , 129 , 121 , 104 , 99 , 100 , 103 , 98 , 94 , 99 , 106 , 108 , 104 , 105 , 107 , 104 , 108 , 106 , 104 , 113 , 127 , 136 , 139 , 154 , 160 , 154 , 154 , 161 , 160 , 159 , 147 , 135 ,
305 | 122 , 116 , 113 , 114 , 114 , 103 , 107 , 110 , 109 , 119 , 133 , 142 , 146 , 144 , 135 , 131 , 141 , 140 , 138 , 141 , 148 , 151 , 144 , 133 , 128 , 130 , 120 , 113 , 115 , 118 , 117 , 120 ,
306 | 120 , 117 , 112 , 102 , 100 , 103 , 108 , 114 , 122 , 118 , 114 , 120 , 138 , 147 , 156 , 154 , 149 , 142 , 144 , 141 , 139 , 143 , 145 , 142 , 129 , 131 , 134 , 139 , 132 , 139 , 150 , 146 ,
307 | 144 , 140 , 135 , 126 , 116 , 108 , 94 , 85 , 95 , 100 , 106 , 114 , 122 , 124 , 123 , 125 , 122 , 122 , 115 , 109 , 106 , 106 , 110 , 126 , 136 , 133 , 136 , 139 , 144 , 151 , 163 , 178 ,
308 | 186 , 186 , 172 , 165 , 165 , 154 , 142 , 142 , 134 , 131 , 126 , 112 , 101 , 96 , 92 , 83 , 79 , 79 , 76 , 75 , 82 , 91 , 104 , 96 , 105 , 122 , 128 , 136 , 145 , 154 , 147 , 151 ,
309 | 168 , 179 , 187 , 190 , 187 , 178 , 171 , 157 , 146 , 138 , 131 , 122 , 110 , 97 , 98 , 100 , 96 , 102 , 114 , 111 , 108 , 101 , 105 , 104 , 106 , 106 , 107 , 107 , 111 , 121 , 127 , 146 ,
310 | 152 , 163 , 168 , 168 , 165 , 165 , 160 , 142 , 130 , 116 , 109 , 107 , 110 , 112 , 107 , 106 , 108 , 114 , 122 , 133 , 147 , 147 , 131 , 130 , 136 , 134 , 128 , 143 , 150 , 156 , 155 , 149 ,
311 | 138 , 136 , 132 , 127 , 124 , 117 , 114 , 113 , 106 , 112 , 113 , 107 , 93 , 100 , 100 , 104 , 110 , 118 , 113 , 113 , 126 , 138 , 147 , 144 , 148 , 151 , 154 , 147 , 145 , 154 , 154 , 151 ,
312 | 143 , 134 , 134 , 133 , 131 , 142 , 144 , 154 , 148 , 142 , 132 , 125 , 122 , 109 , 97 , 93 , 90 , 84 , 90 , 100 , 112 , 119 , 133 , 130 , 125 , 122 , 124 , 119 , 112 , 105 , 114 , 119 ,
313 | 127 , 134 , 135 , 140 , 139 , 151 , 156 , 166 , 180 , 188 , 174 , 165 , 166 , 153 , 142 , 132 , 138 , 137 , 136 , 125 , 113 , 106 , 100 , 94 , 94 , 80 , 74 , 70 , 72 , 79 , 90 , 100 ,
314 | 103 , 114 , 118 , 124 , 136 , 144 , 146 , 151 , 160 , 167 , 183 , 182 , 180 , 180 , 183 , 170 , 152 , 149 , 144 , 137 , 118 , 112 , 104 , 98 , 97 , 102 , 110 , 107 , 112 , 110 , 101 , 96 ,
315 | 104 , 108 , 107 , 109 , 111 , 108 , 114 , 127 , 141 , 156 , 170 , 175 , 173 , 165 , 160 , 158 , 140 , 123 , 108 , 110 , 106 , 104 , 106 , 106 , 106 , 113 , 120 , 125 , 138 , 139 , 138 , 132 ,
316 | 133 , 128 , 130 , 133 , 140 , 155 , 162 , 158 , 154 , 149 , 144 , 141 , 136 , 136 , 115 , 109 , 103 , 106 , 104 , 100 , 99 , 103 , 96 , 94 , 104 , 108 , 111 , 116 , 125 , 126 , 135 , 141 ,
317 | 139 , 145 , 151 , 158 , 154 , 158 , 163 , 162 , 151 , 144 , 141 , 138 , 131 , 135 , 147 , 147 , 147 , 149 , 138 , 125 , 116 , 110 , 102 , 98 , 87 , 81 , 81 , 86 , 96 , 116 , 126 , 133 ,
318 | 133 , 129 , 128 , 125 , 123 , 117 , 115 , 119 , 125 , 126 , 129 , 132 , 142 , 148 , 152 , 163 , 176 , 173 , 172 , 172 , 163 , 150 , 138 , 130 , 122 , 128 , 133 , 135 , 122 , 119 , 118 , 108 ,
319 | 106 , 98 , 90 , 74 , 69 , 71 , 82 , 87 , 101 , 114 , 116 , 114 , 128 , 135 , 142 , 148 , 159 , 166 , 172 , 174 , 172 , 175 , 174 , 174 , 162 , 158 , 151 , 145 , 138 , 116 , 116 , 110 ,
320 | 103 , 97 , 102 , 106 , 109 , 112 , 106 , 102 , 102 , 100 , 108 , 115 , 106 , 104 , 110 , 112 , 120 , 138 , 158 , 172 , 170 , 174 , 170 , 163 , 151 , 135 , 125 , 112 , 110 , 108 , 100 , 96 ,
321 | 107 , 119 , 114 , 124 , 132 , 137 , 131 , 134 , 133 , 130 , 129 , 130 , 134 , 138 , 150 , 163 , 158 , 156 , 154 , 153 , 152 , 142 , 133 , 122 , 104 , 98 , 94 , 92 , 91 , 101 , 100 , 95 ,
322 | 93 , 102 , 107 , 114 , 116 , 124 , 132 , 133 , 128 , 131 , 143 , 148 , 157 , 165 , 168 , 167 , 166 , 156 , 152 , 144 , 142 , 139 , 136 , 136 , 145 , 149 , 138 , 132 , 120 , 104 , 101 , 103 ,
323 | 94 , 77 , 78 , 81 , 84 , 93 , 113 , 128 , 135 , 133 , 136 , 134 , 132 , 125 , 130 , 124 , 125 , 127 , 125 , 121 , 130 , 145 , 149 , 159 , 168 , 172 , 172 , 168 , 166 , 156 , 144 , 130 ,
324 | 125 , 120 , 122 , 125 , 132 , 132 , 124 , 122 , 120 , 114 , 102 , 90 , 78 , 70 , 70 , 78 , 90 , 102 , 112 , 120 , 121 , 124 , 134 , 145 , 151 , 154 , 167 , 173 , 162 , 162 , 164 , 160 ,
325 | 160 , 164 , 163 , 157 , 143 , 136 , 131 , 125 , 113 , 110 , 103 , 98 , 101 , 109 , 106 , 106 , 106 , 102 , 104 , 110 , 114 , 106 , 103 , 109 , 113 , 125 , 136 , 156 , 172 , 173 , 173 , 174 ,
326 | 161 , 144 , 136 , 129 , 119 , 109 , 99 , 96 , 96 , 106 , 112 , 124 , 130 , 129 , 132 , 129 , 131 , 129 , 135 , 130 , 128 , 131 , 137 , 142 , 154 , 163 , 161 , 161 , 159 , 158 , 149 , 133 ,
327 | 124 , 109 , 92 , 85 , 90 , 96 , 94 , 98 , 97 , 100 , 100 , 111 , 114 , 115 , 127 , 131 , 124 , 122 , 125 , 136 , 145 , 158 , 170 , 176 , 170 , 163 , 165 , 162 , 154 , 151 , 144 , 138 ,
328 | 135 , 142 , 142 , 133 , 124 , 113 , 104 , 104 , 93 , 84 , 82 , 80 , 80 , 90 , 95 , 111 , 128 , 134 , 135 , 138 , 141 , 136 , 132 , 131 , 138 , 130 , 122 , 118 , 125 , 128 , 139 , 156 ,
329 | 167 , 166 , 170 , 171 , 165 , 151 , 152 , 141 , 128 , 120 , 112 , 116 , 122 , 129 , 132 , 129 , 129 , 126 , 122 , 102 , 92 , 84 , 77 , 73 , 81 , 94 , 106 , 111 , 120 , 126 , 129 , 139 ,
330 | 144 , 149 , 160 , 165 , 167 , 158 , 149 , 146 , 151 , 158 , 160 , 163 , 155 , 148 , 142 , 139 , 133 , 124 , 114 , 109 , 98 , 98 , 101 , 108 , 106 , 103 , 106 , 113 , 107 , 104 , 107 , 106 ,
331 | 110 , 118 , 126 , 137 , 152 , 168 , 172 , 171 , 165 , 158 , 146 , 136 , 128 , 122 , 107 , 99 , 96 , 98 , 98 , 117 , 130 , 131 , 128 , 130 , 130 , 128 , 130 , 134 , 135 , 131 , 126 , 131 ,
332 | 141 , 150 , 160 , 165 , 165 , 163 , 165 , 151 , 135 , 119 , 105 , 94 , 86 , 86 , 86 , 91 , 94 , 97 , 103 , 104 , 106 , 113 , 120 , 122 , 125 , 123 , 120 , 117 , 129 , 147 , 162 , 172 ,
333 | 174 , 175 , 171 , 170 , 174 , 164 , 156 , 149 , 144 , 137 , 129 , 132 , 129 , 114 , 110 , 106 , 96 , 85 , 80 , 80 , 80 , 82 , 90 , 97 , 107 , 119 , 128 , 138 , 140 , 140 , 144 , 141 ,
334 | 141 , 142 , 136 , 128 , 127 , 128 , 129 , 142 , 161 , 168 , 173 , 167 , 160 , 156 , 149 , 141 , 136 , 126 , 112 , 106 , 112 , 118 , 123 , 131 , 135 , 134 , 128 , 118 , 107 , 96 , 85 , 83 ,
335 | 86 , 86 , 92 , 106 , 112 , 120 , 133 , 137 , 139 , 142 , 154 , 161 , 162 , 158 , 149 , 140 , 134 , 143 , 151 , 155 , 156 , 155 , 150 , 146 , 144 , 142 , 131 , 120 , 111 , 101 , 95 , 99 ,
336 | 106 , 108 , 111 , 112 , 114 , 107 , 102 , 106 , 108 , 115 , 117 , 126 , 139 , 149 , 155 , 164 , 167 , 162 , 156 , 148 , 138 , 132 , 122 , 112 , 106 , 97 , 94 , 107 , 117 , 126 , 133 , 132 ,
337 | 128 , 130 , 132 , 134 , 135 , 140 , 129 , 124 , 130 , 140 , 149 , 156 , 166 , 174 , 175 , 163 , 149 , 136 , 116 , 106 , 98 , 84 , 78 , 81 , 84 , 90 , 98 , 106 , 109 , 112 , 114 , 120 ,
338 | 123 , 123 , 121 , 119 , 118 , 129 , 147 , 159 , 170 , 174 , 181 , 179 , 179 , 176 , 173 , 167 , 158 , 141 , 131 , 126 , 122 , 119 , 115 , 107 , 102 , 92 , 82 , 75 , 75 , 83 , 86 , 89 ,
339 | 96 , 103 , 111 , 122 , 136 , 142 , 148 , 149 , 151 , 148 , 145 , 142 , 142 , 130 , 125 , 132 , 147 , 158 , 166 , 165 , 161 , 154 , 151 , 142 , 135 , 131 , 119 , 108 , 104 , 106 , 113 , 122 ,
340 | 128 , 134 , 139 , 128 , 120 , 110 , 99 , 96 , 96 , 94 , 91 , 92 , 101 , 113 , 126 , 131 , 137 , 146 , 150 , 152 , 157 , 156 , 151 , 142 , 133 , 131 , 133 , 142 , 147 , 151 , 151 , 152 ,
341 | 154 , 151 , 142 , 140 , 125 , 112 , 100 , 98 , 98 , 105 , 111 , 114 , 113 , 114 , 110 , 104 , 103 , 110 , 118 , 125 , 130 , 137 , 140 , 146 , 154 , 160 , 158 , 152 , 145 , 142 , 128 , 124 ,
342 | 118 , 112 , 101 , 100 , 108 , 118 , 124 , 129 , 126 , 130 , 132 , 131 , 134 , 135 , 131 , 129 , 129 , 130 , 135 , 145 , 157 , 168 , 176 , 171 , 160 , 146 , 131 , 120 , 109 , 98 , 88 , 80 ,
343 | 77 , 80 , 96 , 101 , 107 , 113 , 117 , 114 , 116 , 120 , 122 , 120 , 120 , 123 , 130 , 141 , 156 , 168 , 177 , 179 , 184 , 186 , 184 , 182 , 173 , 157 , 143 , 129 , 125 , 114 , 114 , 109 ,
344 | 106 , 100 , 89 , 81 , 77 , 79 , 84 , 90 , 92 , 96 , 96 , 104 , 117 , 133 , 143 , 149 , 152 , 152 , 152 , 154 , 151 , 146 , 136 , 135 , 141 , 149 , 159 , 158 , 158 , 158 , 154 , 143 ,
345 | 136 , 132 , 120 , 112 , 106 , 106 , 106 , 110 , 118 , 128 , 135 , 136 , 129 , 121 , 112 , 108 , 107 , 104 , 97 , 97 , 97 , 100 , 115 , 123 , 133 , 144 , 152 , 151 , 149 , 151 , 150 , 147 ,
346 | 135 , 127 , 127 , 126 , 130 , 139 , 144 , 150 , 155 , 156 , 155 , 149 , 143 , 131 , 115 , 108 , 103 , 103 , 108 , 108 , 114 , 119 , 116 , 110 , 103 , 106 , 112 , 122 , 129 , 131 , 128 , 131 ,
347 | 139 , 146 , 148 , 151 , 151 , 140 , 137 , 131 , 130 , 126 , 114 , 111 , 106 , 110 , 117 , 120 , 122 , 129 , 135 , 135 , 131 , 135 , 133 , 134 , 132 , 132 , 133 , 137 , 147 , 158 , 170 , 171 ,
348 | 167 , 160 , 144 , 129 , 122 , 112 , 100 , 88 , 80 , 75 , 83 , 92 , 96 , 109 , 114 , 114 , 113 , 113 , 116 , 122 , 122 , 121 , 122 , 128 , 140 , 150 , 161 , 171 , 179 , 187 , 191 , 188 ,
349 | 186 , 171 , 161 , 147 , 131 , 120 , 114 , 108 , 104 , 103 , 98 , 88 , 81 , 78 , 78 , 85 , 90 , 92 , 92 , 90 , 104 , 115 , 128 , 139 , 148 , 155 , 156 , 157 , 158 , 156 , 153 , 149 ,
350 | 146 , 146 , 149 , 154 , 152 , 154 , 154 , 149 , 142 , 133 , 124 , 116 , 112 , 109 , 108 , 108 , 110 , 116 , 127 , 131 , 129 , 129 , 123 , 116 , 112 , 111 , 110 , 110 , 102 , 100 , 105 , 114 ,
351 | 121 , 138 , 148 , 149 , 150 , 149 , 146 , 144 , 140 , 132 , 125 , 122 , 122 , 124 , 132 , 140 , 148 , 158 , 157 , 160 , 154 , 143 , 133 , 126 , 117 , 111 , 106 , 107 , 110 , 117 , 119 , 116 ,
352 | 109 , 108 , 109 , 116 , 122 , 126 , 129 , 124 , 127 , 128 , 135 , 140 , 143 , 144 , 140 , 139 , 136 , 134 , 131 , 124 , 118 , 115 , 113 , 112 , 114 , 122 , 130 , 134 , 135 , 136 , 136 , 132 ,
353 | 134 , 131 , 134 , 137 , 141 , 145 , 156 , 162 , 165 , 161 , 152 , 142 , 130 , 120 , 112 , 104 , 90 , 80 , 81 , 82 , 89 , 100 , 112 , 113 , 112 , 112 , 115 , 118 , 122 , 119 , 121 , 127 ,
354 | 128 , 137 , 146 , 154 , 170 , 183 , 190 , 194 , 192 , 186 , 174 , 162 , 149 , 134 , 123 , 110 , 104 , 103 , 99 , 96 , 90 , 84 , 81 , 84 , 89 , 88 , 88 , 90 , 93 , 102 , 110 , 122 ,
355 | 136 , 146 , 152 , 159 , 157 , 161 , 164 , 161 , 157 , 154 , 154 , 149 , 146 , 146 , 150 , 148 , 144 , 138 , 129 , 119 , 113 , 109 , 109 , 110 , 109 , 112 , 114 , 118 , 124 , 128 , 125 , 124 ,
356 | 119 , 116 , 118 , 118 , 115 , 106 , 106 , 110 , 116 , 126 , 138 , 146 , 150 , 148 , 145 , 144 , 142 , 130 , 126 , 125 , 116 , 116 , 118 , 124 , 135 , 146 , 157 , 161 , 158 , 151 , 146 , 140 ,
357 | 132 , 124 , 117 , 110 , 109 , 114 , 115 , 115 , 115 , 116 , 112 , 114 , 121 , 123 , 125 , 122 , 122 , 123 , 122 , 126 , 131 , 134 , 135 , 138 , 138 , 136 , 139 , 136 , 132 , 125 , 118 , 116 ,
358 | 112 , 115 , 122 , 130 , 135 , 140 , 141 , 139 , 132 , 131 , 137 , 140 , 141 , 144 , 147 , 152 , 154 , 156 , 154 , 147 , 138 , 126 , 122 , 112 , 106 , 94 , 88 , 84 , 88 , 94 , 102 , 105 ,
359 | 110 , 114 , 112 , 118 , 119 , 115 , 120 , 126 , 130 , 130 , 133 , 143 , 155 , 170 , 181 , 192 , 198 , 189 , 184 , 176 , 165 , 152 , 140 , 123 , 110 , 102 , 99 , 94 , 92 , 91 , 86 , 86 ,
360 | 84 , 83 , 88 , 87 , 91 , 96 , 98 , 108 , 120 , 134 , 142 , 148 , 157 , 161 , 166 , 167 , 167 , 167 , 161 , 155 , 148 , 144 , 142 , 144 , 144 , 141 , 135 , 128 , 117 , 109 , 109 , 114 ,
361 | 115 , 111 , 109 , 112 , 114 , 118 , 122 , 124 , 120 , 119 , 123 , 124 , 120 , 117 , 117 , 115 , 114 , 123 , 130 , 138 , 142 , 147 , 144 , 146 , 142 , 133 , 126 , 122 , 120 , 115 , 112 , 112 ,
362 | 122 , 135 , 142 , 155 , 161 , 157 , 153 , 148 , 144 , 136 , 132 , 126 , 118 , 116 , 112 , 113 , 117 , 116 , 116 , 120 , 120 , 120 , 121 , 122 , 122 , 120 , 120 , 116 , 119 , 122 , 126 , 128 ,
363 | 131 , 136 , 142 , 142 , 138 , 136 , 132 , 124 , 120 , 116 , 115 , 118 , 129 , 137 , 141 , 141 , 138 , 133 , 132 , 138 , 145 , 145 , 146 , 146 , 147 , 147 , 146 , 147 , 141 , 131 , 126 , 120 ,
364 | 113 , 102 , 100 , 96 , 94 , 96 , 96 , 100 , 104 , 106 , 112 , 115 , 117 , 116 , 118 , 122 , 125 , 128 , 130 , 132 , 139 , 154 , 166 , 180 , 191 , 193 , 188 , 182 , 176 , 167 , 156 , 140 ,
365 | 127 , 117 , 101 , 94 , 95 , 93 , 90 , 90 , 88 , 84 , 81 , 85 , 88 , 90 , 94 , 100 , 109 , 120 , 126 , 138 , 146 , 155 , 164 , 171 , 170 , 172 , 173 , 166 , 158 , 152 , 146 , 141 ,
366 | 138 , 138 , 139 , 133 , 123 , 115 , 111 , 112 , 114 , 114 , 112 , 109 , 110 , 113 , 112 , 115 , 120 , 121 , 124 , 124 , 123 , 122 , 122 , 122 , 125 , 128 , 128 , 136 , 139 , 139 , 142 , 146 ,
367 | 147 , 135 , 128 , 125 , 118 , 115 , 111 , 110 , 113 , 121 , 129 , 139 , 150 , 155 , 156 , 152 , 145 , 146 , 146 , 138 , 134 , 129 , 120 , 116 , 116 , 119 , 118 , 122 , 126 , 122 , 120 , 117 ,
368 | 118 , 119 , 117 , 113 , 115 , 117 , 112 , 115 , 122 , 128 , 138 , 142 , 141 , 138 , 138 , 134 , 129 , 122 , 117 , 119 , 123 , 128 , 137 , 142 , 141 , 135 , 136 , 139 , 142 , 147 , 149 , 147 ,
369 | 145 , 145 , 144 , 141 , 136 , 134 , 131 , 123 , 114 , 110 , 106 , 103 , 106 , 104 , 99 , 99 , 102 , 102 , 102 , 110 , 118 , 118 , 118 , 118 , 122 , 125 , 125 , 129 , 135 , 143 , 152 , 166 ,
370 | 180 , 185 , 189 , 188 , 179 , 173 , 167 , 156 , 144 , 130 , 115 , 104 , 99 , 97 , 93 , 92 , 91 , 88 , 88 , 82 , 81 , 87 , 92 , 95 , 102 , 112 , 115 , 120 , 130 , 143 , 156 , 165 ,
371 | 170 , 176 , 173 , 172 , 170 , 163 , 151 , 144 , 141 , 137 , 132 , 134 , 128 , 120 , 116 , 115 , 114 , 113 , 114 , 114 , 112 , 110 , 109 , 112 , 112 , 115 , 123 , 124 , 122 , 124 , 123 , 127 ,
372 | 129 , 135 , 138 , 136 , 138 , 137 , 136 , 139 , 141 , 141 , 134 , 123 , 118 , 114 , 109 , 108 , 113 , 116 , 118 , 125 , 138 , 144 , 150 , 149 , 149 , 149 , 147 , 148 , 146 , 142 , 133 , 125 ,
373 | 125 , 120 , 118 , 124 , 125 , 124 , 124 , 119 , 114 , 113 , 114 , 112 , 111 , 112 , 109 , 104 , 106 , 114 , 129 , 134 , 136 , 139 , 141 , 138 , 135 , 134 , 129 , 123 , 127 , 128 , 131 , 137 ,
374 | 140 , 140 , 140 , 139 , 143 , 147 , 147 , 149 , 150 , 146 , 142 , 139 , 134 , 129 , 128 , 123 , 116 , 108 , 107 , 108 , 109 , 109 , 106 , 108 , 106 , 99 , 99 , 103 , 109 , 118 , 120 , 120 ,
375 | 118 , 122 , 124 , 126 , 131 , 139 , 148 , 154 , 162 , 176 , 182 , 181 , 179 , 177 , 171 , 163 , 156 , 148 , 129 , 119 , 114 , 106 , 97 , 93 , 93 , 93 , 90 , 85 , 80 , 81 , 84 , 90 ,
376 | 97 , 106 , 110 , 112 , 115 , 123 , 142 , 156 , 164 , 169 , 175 , 176 , 172 , 173 , 163 , 157 , 149 , 141 , 136 , 130 , 125 , 124 , 124 , 120 , 114 , 117 , 117 , 115 , 114 , 112 , 112 , 109 ,
377 | 108 , 110 , 113 , 117 , 122 , 120 , 121 , 123 , 132 , 138 , 138 , 144 , 145 , 140 , 134 , 132 , 135 , 136 , 138 , 130 , 122 , 112 , 109 , 109 , 112 , 112 , 117 , 120 , 125 , 132 , 140 , 142 ,
378 | 144 , 147 , 150 , 149 , 150 , 154 , 145 , 139 , 136 , 133 , 130 , 123 , 123 , 127 , 128 , 122 , 116 , 114 , 111 , 109 , 110 , 110 , 106 , 101 , 100 , 102 , 112 , 123 , 130 , 137 , 138 , 139 ,
379 | 139 , 139 , 135 , 136 , 136 , 132 , 134 , 137 , 135 , 135 , 142 , 144 , 143 , 144 , 148 , 150 , 148 , 148 , 147 , 142 , 134 , 128 , 124 , 120 , 112 , 112 , 107 , 104 , 108 , 111 , 112 , 114 ,
380 | 115 , 111 , 103 , 99 , 104 , 111 , 119 , 121 , 122 , 122 , 118 , 123 , 129 , 135 , 142 , 149 , 156 , 161 , 168 , 173 , 172 , 175 , 171 , 166 , 162 , 151 , 142 , 134 , 127 , 118 , 112 , 101 ,
381 | 95 , 94 , 95 , 90 , 82 , 84 , 84 , 87 , 92 , 102 , 109 , 108 , 108 , 115 , 126 , 140 , 152 , 165 , 169 , 170 , 174 , 173 , 169 , 165 , 162 , 152 , 142 , 134 , 128 , 122 , 124 , 124 ,
382 | 119 , 118 , 116 , 117 , 112 , 112 , 111 , 114 , 110 , 106 , 110 , 113 , 113 , 115 , 118 , 123 , 128 , 134 , 141 , 146 , 151 , 148 , 144 , 135 , 132 , 134 , 138 , 132 , 124 , 119 , 112 , 108 ,
383 | 108 , 112 , 114 , 118 , 122 , 125 , 129 , 130 , 138 , 143 , 144 , 147 , 154 , 151 , 148 , 146 , 148 , 144 , 142 , 136 , 130 , 128 , 129 , 127 , 120 , 116 , 113 , 111 , 107 , 106 , 106 , 105 ,
384 | 98 , 96 , 103 , 108 , 118 , 128 , 134 , 133 , 134 , 137 , 138 , 138 , 141 , 141 , 142 , 138 , 135 , 135 , 139 , 145 , 145 , 149 , 150 , 151 , 150 , 147 , 144 , 147 , 142 , 132 , 123 , 114 ,
385 | 112 , 106 , 104 , 104 , 104 , 108 , 110 , 117 , 120 , 116 , 112 , 108 , 102 , 106 , 114 , 121 , 120 , 120 , 121 , 122 , 125 , 132 , 138 , 148 , 152 , 158 , 162 , 160 , 164 , 170 , 169 , 165 ,
386 | 160 , 156 , 146 , 140 , 136 , 132 , 126 , 117 , 106 , 100 , 94 , 91 , 88 , 84 , 83 , 85 , 90 , 94 , 100 , 107 , 108 , 109 , 117 , 126 , 138 , 150 , 161 , 166 , 167 , 167 , 168 , 170 ,
387 | 166 , 160 , 154 , 146 , 134 , 126 , 126 , 124 , 122 , 123 , 123 , 118 , 116 , 111 , 112 , 112 , 115 , 112 , 110 , 107 , 108 , 110 , 114 , 117 , 124 , 131 , 136 , 146 , 154 , 154 , 150 , 145 ,
388 | 140 , 134 , 134 , 131 , 127 , 122 , 115 , 110 , 110 , 107 , 112 , 117 , 120 , 123 , 124 , 125 , 125 , 133 , 139 , 144 , 147 , 150 , 148 , 149 , 149 , 152 , 154 , 149 , 142 , 138 , 133 , 126 ,
389 | 122 , 120 , 117 , 112 , 109 , 103 , 103 , 102 , 100 , 98 , 96 , 100 , 106 , 116 , 122 , 127 , 130 , 130 , 132 , 139 , 142 , 144 , 147 , 148 , 144 , 138 , 140 , 144 , 145 , 148 , 154 , 156 ,
390 | 152 , 145 , 144 , 146 , 146 , 138 , 128 , 118 , 106 , 103 , 100 , 98 , 100 , 104 , 106 , 112 , 118 , 120 , 119 , 115 , 112 , 110 , 113 , 115 , 118 , 122 , 120 , 122 , 126 , 128 , 132 , 140 ,
391 | 150 , 156 , 156 , 157 , 158 , 160 , 162 , 160 , 159 , 154 , 147 , 144 , 139 , 135 , 136 , 133 , 122 , 113 , 105 , 96 , 90 , 87 , 87 , 90 , 90 , 91 , 96 , 101 , 105 , 110 , 115 , 118 ,
392 | 126 , 140 , 149 , 155 , 159 , 161 , 163 , 166 , 166 , 160 , 158 , 154 , 146 , 138 , 128 , 126 , 125 , 123 , 123 , 124 , 121 , 114 , 109 , 112 , 117 , 116 , 116 , 112 , 107 , 106 , 107 , 112 ,
393 | 117 , 122 , 130 , 140 , 148 , 149 , 152 , 154 , 148 , 144 , 138 , 131 , 126 , 124 , 118 , 113 , 110 , 111 , 109 , 111 , 118 , 122 , 124 , 122 , 122 , 127 , 130 , 135 , 143 , 144 , 145 , 147 ,
394 | 150 , 152 , 156 , 160 , 158 , 153 , 144 , 133 , 128 , 123 , 120 , 117 , 112 , 105 , 101 , 100 , 98 , 97 , 99 , 99 , 100 , 107 , 113 , 119 , 122 , 123 , 128 , 135 , 138 , 141 , 146 , 150 ,
395 | 150 , 151 , 146 , 145 , 145 , 150 , 153 , 154 , 154 , 149 , 144 , 145 , 145 , 142 , 135 , 125 , 114 , 106 , 97 , 96 , 98 , 98 , 100 , 108 , 114 , 116 , 117 , 122 , 120 , 120 , 119 , 119 ,
396 | 118 , 120 , 121 , 122 , 125 , 128 , 131 , 136 , 143 , 150 , 155 , 155 , 155 , 157 , 155 , 153 , 152 , 151 , 146 , 141 , 139 , 138 , 138 , 138 , 135 , 131 , 120 , 107 , 98 , 93 , 90 , 90 ,
397 | 93 , 92 , 94 , 97 , 102 , 107 , 112 , 117 , 124 , 131 , 138 , 144 , 150 , 152 , 157 , 162 , 160 , 157 , 158 , 156 , 151 , 147 , 141 , 134 , 128 , 126 , 126 , 126 , 125 , 118 , 115 , 113 ,
398 | 115 , 120 , 120 , 117 , 113 , 110 , 106 , 106 , 111 , 116 , 122 , 131 , 139 , 142 , 148 , 151 , 154 , 151 , 144 , 138 , 131 , 126 , 119 , 114 , 114 , 112 , 110 , 112 , 113 , 118 , 120 , 122 ,
399 | 123 , 124 , 126 , 129 , 133 , 138 , 141 , 144 , 145 , 147 , 155 , 160 , 163 , 164 , 158 , 146 , 136 , 132 , 125 , 118 , 113 , 109 , 103 , 99 , 96 , 96 , 96 , 97 , 100 , 106 , 106 , 111 ,
400 | 114 , 115 , 119 , 127 , 133 , 135 , 140 , 146 , 151 , 154 , 154 , 151 , 152 , 153 , 152 , 155 , 154 , 151 , 150 , 147 , 144 , 142 , 138 , 133 , 123 , 112 , 102 , 96 , 94 , 93 , 96 , 100 ,
401 | 106 , 110 , 113 , 115 , 119 , 124 , 126 , 123 , 123 , 124 , 122 , 120 , 123 , 128 , 132 , 134 , 139 , 143 , 147 , 153 , 156 , 156 , 154 , 150 , 148 , 145 , 142 , 138 , 137 , 133 , 135 , 138 ,
402 | 139 , 139 , 135 , 124 , 112 , 104 , 98 , 94 , 93 , 92 , 96 , 97 , 98 , 100 , 107 , 114 , 121 , 128 , 132 , 136 , 141 , 144 , 148 , 152 , 154 , 154 , 154 , 151 , 149 , 152 , 147 , 142 ,
403 | 139 , 135 , 130 , 128 , 126 , 122 , 118 , 117 , 116 , 117 , 118 , 120 , 121 , 116 , 109 , 106 , 108 , 110 , 116 , 122 , 128 , 134 , 141 , 145 , 148 , 151 , 151 , 146 , 139 , 133 , 126 , 117 ,
404 | 113 , 112 , 113 , 112 , 112 , 114 , 115 , 118 , 122 , 126 , 126 , 125 , 127 , 132 , 134 , 136 , 139 , 142 , 149 , 156 , 161 , 165 , 166 , 160 , 152 , 144 , 134 , 125 , 119 , 111 , 107 , 104 ,
405 | 98 , 94 , 93 , 96 , 99 , 103 , 106 , 108 , 107 , 109 , 112 , 119 , 123 , 128 , 135 , 140 , 143 , 150 , 154 , 157 , 160 , 160 , 158 , 156 , 155 , 154 , 153 , 150 , 146 , 144 , 140 , 134 ,
406 | 131 , 123 , 110 , 102 , 96 , 93 , 92 , 95 , 98 , 102 , 106 , 110 , 114 , 120 , 125 , 128 , 130 , 129 , 128 , 123 , 122 , 126 , 132 , 136 , 138 , 140 , 143 , 148 , 151 , 156 , 156 , 151 ,
407 | 146 , 142 , 140 , 134 , 131 , 130 , 132 , 135 , 135 , 140 , 140 , 133 , 126 , 119 , 111 , 102 , 98 , 96 , 96 , 98 , 100 , 99 , 103 , 110 , 118 , 125 , 129 , 133 , 138 , 138 , 141 , 144 ,
408 | 146 , 146 , 148 , 147 , 145 , 144 , 146 , 146 , 146 , 144 , 140 , 135 , 129 , 124 , 122 , 122 , 119 , 119 , 119 , 120 , 122 , 122 , 115 , 112 , 111 , 111 , 112 , 115 , 118 , 126 , 134 , 138 ,
409 | 141 , 146 , 148 , 147 , 145 , 142 , 134 , 124 , 118 , 113 , 113 , 116 , 116 , 114 , 113 , 114 , 118 , 124 , 126 , 127 , 128 , 128 , 131 , 131 , 131 , 136 , 144 , 151 , 154 , 160 , 166 , 165 ,
410 | 161 , 156 , 147 , 137 , 126 , 116 , 110 , 106 , 101 , 96 , 94 , 94 , 97 , 102 , 106 , 106 , 108 , 107 , 108 , 111 , 114 , 120 , 128 , 132 , 135 , 140 , 147 , 156 , 162 , 165 , 163 , 162 ,
411 | 160 , 155 , 154 , 153 , 151 , 147 , 142 , 138 , 133 , 126 , 119 , 110 , 103 , 96 , 95 , 93 , 91 , 94 , 101 , 104 , 108 , 114 , 119 , 125 , 130 , 134 , 133 , 129 , 128 , 128 , 130 , 134 ,
412 | 137 , 140 , 142 , 142 , 148 , 152 , 155 , 152 , 149 , 144 , 139 , 135 , 128 , 126 , 128 , 132 , 133 , 136 , 138 , 138 , 134 , 129 , 123 , 116 , 109 , 102 , 98 , 99 , 98 , 99 , 104 , 107 ,
413 | 112 , 118 , 125 , 132 , 135 , 137 , 139 , 139 , 139 , 139 , 141 , 142 , 139 , 140 , 140 , 142 , 147 , 150 , 149 , 144 , 139 , 132 , 126 , 124 , 123 , 123 , 122 , 122 , 123 , 122 , 118 , 117 ,
414 | 116 , 114 , 113 , 113 , 113 , 116 , 123 , 130 , 134 , 139 , 141 , 142 , 145 , 144 , 141 , 135 , 127 , 119 , 117 , 117 , 116 , 116 , 116 , 114 , 115 , 119 , 124 , 127 , 130 , 130 , 131 , 129 ,
415 | 127 , 130 , 136 , 143 , 148 , 154 , 159 , 161 , 163 , 161 , 157 , 149 , 141 , 128 , 116 , 109 , 105 , 100 , 96 , 96 , 97 , 98 , 101 , 106 , 108 , 108 , 108 , 109 , 110 , 112 , 119 , 126 ,
416 | 128 , 132 , 138 , 147 , 156 , 163 , 168 , 169 , 168 , 164 , 159 , 155 , 152 , 150 , 146 , 142 , 136 , 131 , 123 , 115 , 110 , 106 , 101 , 96 , 91 , 90 , 93 , 96 , 100 , 106 , 112 , 117 ,
417 | 125 , 130 , 132 , 136 , 136 , 134 , 133 , 133 , 136 , 139 , 141 , 143 , 144 , 146 , 149 , 151 , 150 , 145 , 143 , 138 , 128 , 122 , 123 , 125 , 128 , 130 , 133 , 134 , 134 , 133 , 129 , 126 ,
418 | 122 , 115 , 108 , 101 , 99 , 101 , 104 , 108 , 111 , 114 , 120 , 126 , 133 , 136 , 138 , 139 , 137 , 134 , 134 , 135 , 136 , 133 , 133 , 135 , 141 , 146 , 148 , 149 , 148 , 143 , 135 , 129 ,
419 | 124 , 124 , 126 , 126 , 124 , 122 , 122 , 120 , 120 , 119 , 118 , 118 , 114 , 113 , 117 , 121 , 126 , 132 , 135 , 135 , 139 , 140 , 140 , 138 , 134 , 130 , 125 , 121 , 117 , 117 , 118 , 116 ,
420 | 116 , 116 , 118 , 125 , 129 , 129 , 130 , 131 , 128 , 128 , 130 , 135 , 140 , 147 , 152 , 157 , 160 , 160 , 159 , 157 , 151 , 142 , 129 , 118 , 108 , 101 , 100 , 100 , 100 , 98 , 98 , 102 ,
421 | 106 , 107 , 109 , 110 , 110 , 112 , 112 , 116 , 120 , 126 , 130 , 136 , 147 , 155 , 162 , 167 , 172 , 172 , 166 , 162 , 156 , 151 , 149 , 146 , 141 , 134 , 126 , 119 , 116 , 110 , 107 , 103 ,
422 | 96 , 92 , 90 , 91 , 93 , 100 , 106 , 111 , 117 , 122 , 128 , 134 , 138 , 140 , 141 , 139 , 136 , 138 , 142 , 142 , 144 , 145 , 145 , 148 , 149 , 146 , 145 , 140 , 132 , 126 , 122 , 122 ,
423 | 123 , 126 , 128 , 130 , 133 , 130 , 129 , 130 , 131 , 126 , 119 , 112 , 106 , 102 , 104 , 110 , 113 , 114 , 116 , 123 , 128 , 132 , 137 , 139 , 138 , 135 , 132 , 130 , 128 , 127 , 126 , 128 ,
424 | 133 , 139 , 142 , 146 , 149 , 149 , 144 , 138 , 131 , 129 , 128 , 127 , 127 , 127 , 123 , 122 , 122 , 123 , 122 , 122 , 119 , 117 , 115 , 115 , 120 , 124 , 128 , 129 , 132 , 133 , 133 , 134 ,
425 | 135 , 134 , 134 , 128 , 122 , 119 , 119 , 117 , 116 , 115 , 118 , 123 , 125 , 127 , 130 , 132 , 131 , 130 , 131 , 130 , 134 , 140 , 145 , 150 , 156 , 158 , 157 , 157 , 156 , 151 , 143 , 131 ,
426 | 118 , 109 , 103 , 102 , 104 , 101 , 99 , 101 , 104 , 106 , 106 , 110 , 112 , 112 , 112 , 112 , 114 , 117 , 122 , 128 , 138 , 146 , 153 , 161 , 168 , 173 , 174 , 171 , 164 , 158 , 153 , 148 ,
427 | 145 , 139 , 132 , 124 , 119 , 116 , 112 , 108 , 104 , 100 , 94 , 89 , 88 , 95 , 100 , 103 , 110 , 115 , 119 , 126 , 133 , 139 , 143 , 145 , 142 , 142 , 141 , 142 , 145 , 144 , 145 , 146 ,
428 | 147 , 145 , 144 , 141 , 136 , 132 , 127 , 122 , 119 , 120 , 124 , 126 , 128 , 126 , 127 , 130 , 130 , 130 , 128 , 123 , 115 , 110 , 107 , 109 , 113 , 116 , 117 , 119 , 125 , 129 , 132 , 135 ,
429 | 138 , 138 , 135 , 129 , 126 , 123 , 121 , 122 , 127 , 130 , 133 , 139 , 144 , 147 , 147 , 145 , 142 , 137 , 132 , 130 , 128 , 128 , 128 , 126 , 124 , 124 , 125 , 124 , 123 , 122 , 121 , 118 ,
430 | 115 , 118 , 122 , 123 , 126 , 126 , 126 , 127 , 129 , 132 , 135 , 133 , 131 , 128 , 124 , 119 , 116 , 118 , 119 , 122 , 124 , 125 , 127 , 130 , 131 , 133 , 133 , 133 , 132 , 134 , 138 , 143 ,
431 | 150 , 152 , 152 , 154 , 154 , 152 , 148 , 142 , 132 , 120 , 111 , 106 , 104 , 103 , 103 , 103 , 102 , 102 , 104 , 107 , 110 , 114 , 115 , 112 , 112 , 113 , 115 , 119 , 127 , 136 , 143 , 150 ,
432 | 158 , 166 , 172 , 173 , 172 , 168 , 160 , 153 , 148 , 143 , 138 , 131 , 125 , 120 , 116 , 112 , 110 , 106 , 101 , 94 , 90 , 91 , 94 , 98 , 102 , 106 , 112 , 117 , 122 , 130 , 139 , 145 ,
433 | 147 , 147 , 147 , 145 , 144 , 144 , 146 , 146 , 146 , 145 , 144 , 140 , 138 , 136 , 133 , 127 , 123 , 122 , 120 , 120 , 123 , 124 , 125 , 127 , 128 , 129 , 128 , 128 , 125 , 120 , 114 , 112 ,
434 | 114 , 115 , 117 , 120 , 124 , 127 , 129 , 133 , 135 , 138 , 138 , 133 , 128 , 122 , 118 , 117 , 119 , 122 , 128 , 132 , 136 , 140 , 144 , 146 , 146 , 145 , 141 , 135 , 131 , 131 , 130 , 128 ,
435 | 128 , 128 , 128 , 125 , 124 , 127 , 125 , 122 , 118 , 117 , 118 , 119 , 120 , 120 , 120 , 122 , 124 , 125 , 128 , 133 , 135 , 134 , 131 , 125 , 120 , 118 , 120 , 122 , 123 , 124 , 127 , 128 ,
436 | 129 , 131 , 136 , 136 , 135 , 134 , 136 , 139 , 144 , 146 , 148 , 150 , 151 , 150 , 147 , 144 , 138 , 130 , 121 , 112 , 109 , 107 , 106 , 105 , 104 , 103 , 104 , 106 , 109 , 113 , 115 , 115 ,
437 | 115 , 114 , 112 , 115 , 121 , 127 , 134 , 142 , 150 , 157 , 163 , 168 , 172 , 173 , 170 , 162 , 153 , 146 , 142 , 137 , 129 , 125 , 122 , 117 , 112 , 110 , 106 , 100 , 95 , 94 , 94 , 95 ,
438 | 96 , 100 , 104 , 109 , 115 , 123 , 130 , 138 , 144 , 149 , 152 , 150 , 147 , 145 , 145 , 147 , 147 , 145 , 142 , 141 , 138 , 135 , 133 , 131 , 129 , 124 , 122 , 120 , 119 , 120 , 121 , 125 ,
439 | 126 , 125 , 126 , 127 , 126 , 124 , 123 , 120 , 118 , 117 , 118 , 122 , 123 , 126 , 128 , 130 , 132 , 136 , 137 , 134 , 132 , 128 , 121 , 116 , 115 , 117 , 121 , 125 , 130 , 132 , 136 , 140 ,
440 | 144 , 148 , 148 , 144 , 139 , 135 , 133 , 133 , 132 , 132 , 131 , 130 , 128 , 128 , 128 , 126 , 122 , 120 , 120 , 119 , 116 , 115 , 116 , 116 , 116 , 118 , 122 , 127 , 130 , 134 , 136 , 132 ,
441 | 126 , 123 , 122 , 124 , 124 , 126 , 127 , 128 , 129 , 131 , 134 , 137 , 138 , 138 , 138 , 138 , 141 , 142 , 143 , 147 , 149 , 147 , 144 , 142 , 138 , 133 , 128 , 122 , 117 , 112 , 109 , 107 ,
442 | 106 , 104 , 104 , 106 , 108 , 110 , 113 , 115 , 116 , 116 , 115 , 115 , 116 , 120 , 126 , 133 , 140 , 148 , 154 , 158 , 163 , 170 , 172 , 167 , 160 , 154 , 147 , 140 , 135 , 130 , 128 , 123 ,
443 | 119 , 114 , 110 , 105 , 101 , 98 , 96 , 96 , 96 , 96 , 97 , 102 , 107 , 113 , 122 , 128 , 135 , 142 , 150 , 154 , 151 , 149 , 148 , 149 , 146 , 145 , 144 , 142 , 138 , 134 , 133 , 132 ,
444 | 131 , 130 , 126 , 122 , 119 , 118 , 117 , 120 , 123 , 124 , 124 , 124 , 124 , 124 , 124 , 124 , 124 , 123 , 122 , 123 , 125 , 126 , 126 , 130 , 133 , 134 , 134 , 134 , 134 , 130 , 124 , 119 ,
445 | 115 , 114 , 114 , 118 , 122 , 124 , 128 , 132 , 136 , 141 , 147 , 147 , 144 , 140 , 138 , 136 , 134 , 134 , 135 , 134 , 133 , 133 , 131 , 128 , 126 , 126 , 123 , 122 , 118 , 115 , 112 , 111 ,
446 | 110 , 112 , 114 , 119 , 123 , 126 , 130 , 132 , 131 , 128 , 125 , 125 , 125 , 124 , 125 , 128 , 129 , 129 , 132 , 134 , 138 , 139 , 140 , 141 , 140 , 140 , 141 , 144 , 144 , 144 , 144 , 142 ,
447 | 137 , 132 , 128 , 125 , 122 , 120 , 116 , 112 , 108 , 106 , 105 , 106 , 109 , 112 , 112 , 112 , 115 , 118 , 116 , 117 , 118 , 118 , 120 , 127 , 133 , 139 , 144 , 151 , 156 , 162 , 166 , 168 ,
448 | 165 , 160 , 154 , 147 , 140 , 135 , 133 , 130 , 125 , 121 , 116 , 110 , 106 , 103 , 101 , 101 , 99 , 97 , 97 , 98 , 101 , 107 , 113 , 120 , 127 , 135 , 142 , 148 , 152 , 154 , 152 , 151 ,
449 | 149 , 147 , 145 , 144 , 141 , 138 , 133 , 133 , 134 , 132 , 128 , 126 , 124 , 120 , 118 , 119 , 122 , 121 , 122 , 123 , 123 , 122 , 123 , 124 , 126 , 128 , 128 , 128 , 127 , 126 , 128 , 129 ,
450 | 132 , 134 , 135 , 133 , 132 , 131 , 126 , 122 , 119 , 117 , 115 , 115 , 117 , 119 , 123 , 126 , 130 , 135 , 140 , 143 , 145 , 145 , 142 , 141 , 140 , 138 , 138 , 138 , 139 , 138 , 135 , 132 ,
451 | 130 , 128 , 126 , 125 , 123 , 119 , 114 , 112 , 107 , 106 , 111 , 114 , 117 , 120 , 124 , 128 , 129 , 130 , 130 , 130 , 128 , 126 , 126 , 126 , 129 , 131 , 132 , 133 , 138 , 140 , 141 , 141 ,
452 | 142 , 142 , 141 , 142 , 143 , 142 , 142 , 140 , 138 , 132 , 126 , 124 , 124 , 123 , 121 , 118 , 115 , 110 , 107 , 108 , 110 , 112 , 113 , 112 , 113 , 115 , 116 , 117 , 117 , 119 , 120 , 124 ,
453 | 126 , 130 , 138 , 143 , 148 , 154 , 159 , 160 , 162 , 162 , 158 , 152 , 146 , 142 , 138 , 133 , 130 , 128 , 122 , 116 , 111 , 107 , 104 , 103 , 103 , 100 , 98 , 98 , 98 , 100 , 106 , 113 ,
454 | 119 , 126 , 131 , 138 , 145 , 149 , 152 , 154 , 151 , 150 , 146 , 144 , 141 , 138 , 136 , 135 , 134 , 133 , 131 , 128 , 126 , 123 , 122 , 120 , 120 , 119 , 119 , 120 , 121 , 122 , 118 , 118 ,
455 | 122 , 126 , 128 , 129 , 130 , 130 , 128 , 129 , 132 , 134 , 135 , 135 , 133 , 131 , 127 , 124 , 122 , 119 , 117 , 116 , 115 , 114 , 116 , 120 , 124 , 129 , 133 , 136 , 138 , 142 , 144 , 144 ,
456 | 142 , 142 , 142 , 141 , 140 , 140 , 140 , 138 , 134 , 132 , 129 , 127 , 126 , 123 , 120 , 114 , 109 , 106 , 107 , 109 , 112 , 116 , 117 , 119 , 123 , 126 , 129 , 130 , 131 , 130 , 128 , 128 ,
457 | 129 , 130 , 131 , 134 , 138 , 139 , 140 , 142 , 143 , 143 , 144 , 144 , 144 , 142 , 141 , 140 , 138 , 133 , 128 , 124 , 120 , 122 , 122 , 121 , 119 , 116 , 112 , 110 , 111 , 112 , 113 , 113 ,
458 | 114 , 117 , 116 , 116 , 118 , 120 , 122 , 124 , 125 , 127 , 131 , 135 , 141 , 147 , 151 , 155 , 157 , 158 , 156 , 154 , 151 , 147 , 144 , 140 , 136 , 132 , 128 , 123 , 118 , 113 , 109 , 106 ,
459 | 104 , 103 , 103 , 102 , 99 , 98 , 102 , 107 , 113 , 119 , 125 , 130 , 136 , 142 , 147 , 150 , 153 , 154 , 150 , 146 , 142 , 139 , 138 , 136 , 137 , 136 , 132 , 130 , 128 , 126 , 125 , 125 ,
460 | 124 , 122 , 119 , 119 , 120 , 120 , 118 , 117 , 118 , 121 , 125 , 128 , 131 , 132 , 132 , 132 , 132 , 134 , 136 , 136 , 135 , 132 , 129 , 126 , 123 , 122 , 121 , 119 , 116 , 115 , 114 , 114 ,
461 | 118 , 124 , 128 , 129 , 132 , 136 , 139 , 140 , 143 , 145 , 145 , 145 , 144 , 143 , 142 , 142 , 140 , 136 , 132 , 130 , 128 , 125 , 122 , 118 , 113 , 108 , 106 , 107 , 108 , 111 , 113 , 114 ,
462 | 116 , 120 , 124 , 127 , 129 , 130 , 131 , 130 , 129 , 129 , 130 , 133 , 138 , 140 , 141 , 141 , 142 , 144 , 144 , 145 , 146 , 145 , 142 , 139 , 136 , 134 , 128 , 124 , 120 , 119 , 118 , 118 ,
463 | 119 , 118 , 116 , 115 , 114 , 113 , 113 , 114 , 116 , 116 , 116 , 117 , 118 , 119 , 122 , 124 , 125 , 127 , 129 , 131 , 134 , 140 , 146 , 150 , 150 , 152 , 151 , 150 , 149 , 148 , 148 , 145 ,
464 | 141 , 136 , 132 , 128 , 124 , 120 , 115 , 110 , 107 , 106 , 106 , 104 , 103 , 101 , 102 , 105 , 108 , 113 , 119 , 125 , 129 , 134 , 139 , 144 , 149 , 150 , 151 , 149 , 145 , 141 , 138 , 138 ,
465 | 138 , 138 , 136 , 133 , 129 , 128 , 127 , 127 , 126 , 125 , 124 , 121 , 119 , 119 , 119 , 117 , 117 , 118 , 120 , 122 , 127 , 131 , 133 , 133 , 135 , 136 , 136 , 136 , 136 , 134 , 131 , 128 ,
466 | 125 , 123 , 122 , 121 , 119 , 116 , 115 , 114 , 114 , 117 , 122 , 125 , 128 , 130 , 132 , 135 , 138 , 141 , 146 , 147 , 147 , 145 , 146 , 145 , 144 , 141 , 139 , 136 , 131 , 128 , 125 , 122 ,
467 | 116 , 112 , 110 , 108 , 106 , 108 , 109 , 110 , 112 , 115 , 117 , 120 , 124 , 127 , 129 , 131 , 131 , 130 , 130 , 132 , 136 , 139 , 141 , 143 , 144 , 143 , 144 , 146 , 147 , 148 , 146 , 144 ,
468 | 138 , 134 , 130 , 126 , 122 , 119 , 117 , 116 , 115 , 116 , 117 , 117 , 116 , 116 , 115 , 115 , 116 , 117 , 118 , 118 , 118 , 120 , 122 , 122 , 125 , 128 , 130 , 130 , 131 , 136 , 140 , 144 ,
469 | 147 , 147 , 146 , 145 , 145 , 145 , 147 , 148 , 146 , 141 , 137 , 134 , 131 , 126 , 122 , 118 , 114 , 109 , 108 , 107 , 106 , 104 , 106 , 106 , 106 , 109 , 114 , 119 , 124 , 128 , 132 , 137 ,
470 | 141 , 145 , 147 , 148 , 147 , 144 , 140 , 138 , 138 , 139 , 138 , 135 , 133 , 130 , 128 , 127 , 128 , 127 , 127 , 125 , 122 , 120 , 119 , 118 , 119 , 117 , 117 , 119 , 122 , 125 , 129 , 133 ,
471 | 135 , 137 , 138 , 138 , 136 , 135 , 133 , 131 , 128 , 125 , 124 , 122 , 119 , 118 , 119 , 117 , 115 , 115 , 118 , 122 , 124 , 127 , 128 , 129 , 131 , 135 , 140 , 144 , 147 , 149 , 148 , 148 ,
472 | 147 , 146 , 144 , 142 , 138 , 133 , 128 , 125 , 120 , 115 , 113 , 112 , 109 , 107 , 106 , 107 , 110 , 112 , 112 , 115 , 118 , 120 , 124 , 128 , 129 , 130 , 131 , 132 , 134 , 138 , 140 , 143 ,
473 | 144 , 144 , 144 , 145 , 146 , 148 , 149 , 146 , 142 , 138 , 132 , 128 , 125 , 122 , 118 , 114 , 112 , 112 , 113 , 114 , 116 , 117 , 116 , 117 , 117 , 116 , 117 , 119 , 120 , 120 , 122 , 123 ,
474 | 124 , 126 , 129 , 131 , 132 , 133 , 136 , 140 , 143 , 144 , 144 , 142 , 140 , 140 , 142 , 145 , 145 , 144 , 142 , 138 , 135 , 132 , 128 , 124 , 119 , 115 , 112 , 108 , 106 , 106 , 106 , 107 ,
475 | 108 , 110 , 111 , 114 , 120 , 124 , 128 , 131 , 136 , 138 , 141 , 144 , 144 , 144 , 141 , 140 , 140 , 139 , 138 , 138 , 136 , 134 , 131 , 129 , 128 , 128 , 128 , 128 , 125 , 123 , 122 , 120 ,
476 | 119 , 119 , 118 , 117 , 119 , 122 , 124 , 128 , 131 , 135 , 138 , 138 , 138 , 136 , 134 , 132 , 130 , 128 , 126 , 123 , 120 , 119 , 118 , 119 , 118 , 117 , 117 , 119 , 122 , 124 , 125 , 127 ,
477 | 128 , 129 , 133 , 138 , 143 , 146 , 149 , 150 , 150 , 149 , 148 , 146 , 143 , 138 , 134 , 128 , 122 , 118 , 116 , 114 , 112 , 110 , 107 , 106 , 108 , 110 , 110 , 112 , 114 , 116 , 118 , 120 ,
478 | 124 , 128 , 130 , 132 , 134 , 138 , 140 , 143 , 145 , 146 , 146 , 147 , 147 , 148 , 149 , 149 , 146 , 142 , 138 , 132 , 129 , 125 , 120 , 116 , 113 , 111 , 111 , 112 , 112 , 114 , 118 , 118 ,
479 | 118 , 118 , 119 , 120 , 121 , 122 , 123 , 124 , 124 , 126 , 128 , 130 , 133 , 135 , 136 , 138 , 141 , 142 , 142 , 140 , 139 , 138 , 138 , 139 , 140 , 141 , 142 , 141 , 140 , 136 , 132 , 129 ,
480 | 126 , 121 , 117 , 113 , 111 , 109 , 107 , 108 , 110 , 112 , 112 , 113 , 117 , 120 , 124 , 128 , 131 , 134 , 136 , 137 , 138 , 139 , 140 , 140 , 140 , 140 , 139 , 138 , 138 , 137 , 134 , 132 ,
481 | 130 , 130 , 129 , 128 , 128 , 128 , 126 , 123 , 122 , 120 , 119 , 118 , 118 , 118 , 119 , 122 , 126 , 130 , 134 , 138 , 138 , 137 , 135 , 133 , 132 , 130 , 129 , 127 , 123 , 120 , 119 , 119 ,
482 | 118 , 118 , 119 , 119 , 120 , 121 , 123 , 124 , 126 , 126 , 128 , 131 , 136 , 140 , 145 , 149 , 151 , 152 , 151 , 150 , 148 , 144 , 139 , 133 , 128 , 123 , 118 , 116 , 114 , 113 , 110 , 109 ,
483 | 109 , 108 , 109 , 110 , 112 , 113 , 113 , 115 , 117 , 122 , 125 , 129 , 132 , 135 , 138 , 141 , 144 , 146 , 147 , 148 , 148 , 149 , 150 , 148 , 146 , 144 , 141 , 138 , 133 , 129 , 124 , 119 ,
484 | 115 , 112 , 110 , 108 , 108 , 110 , 113 , 115 , 117 , 118 , 119 , 120 , 122 , 122 , 124 , 125 , 126 , 126 , 127 , 128 , 131 , 133 , 136 , 138 , 140 , 140 , 140 , 140 , 138 , 137 , 136 , 135 ,
485 | 135 , 135 , 138 , 140 , 140 , 139 , 138 , 135 , 131 , 127 , 123 , 119 , 116 , 113 , 110 , 108 , 110 , 112 , 113 , 114 , 117 , 120 , 122 , 125 , 129 , 132 , 132 , 132 , 133 , 133 , 135 , 137 ,
486 | 138 , 139 , 139 , 139 , 139 , 139 , 137 , 135 , 134 , 133 , 131 , 129 , 128 , 129 , 128 , 128 , 126 , 124 , 122 , 122 , 119 , 119 , 120 , 120 , 122 , 124 , 129 , 133 , 135 , 136 , 136 , 134 ,
487 | 133 , 132 , 131 , 129 , 126 , 124 , 122 , 119 , 118 , 119 , 119 , 120 , 120 , 121 , 122 , 123 , 124 , 125 , 125 , 128 , 130 , 133 , 138 , 144 , 147 , 150 , 153 , 154 , 152 , 148 , 144 , 138 ,
488 | 133 , 129 , 123 , 118 , 115 , 113 , 112 , 111 , 110 , 109 , 109 , 110 , 111 , 112 , 112 , 112 , 113 , 115 , 118 , 121 , 126 , 131 , 135 , 139 , 142 , 145 , 147 , 148 , 149 , 151 , 151 , 149 ,
489 | 147 , 145 , 144 , 141 , 138 , 134 , 128 , 124 , 119 , 114 , 112 , 109 , 107 , 107 , 108 , 110 , 113 , 116 , 119 , 120 , 122 , 122 , 124 , 126 , 126 , 127 , 128 , 128 , 129 , 131 , 135 , 138 ,
490 | 140 , 140 , 139 , 139 , 138 , 136 , 135 , 133 , 132 , 132 , 133 , 134 , 136 , 138 , 139 , 138 , 135 , 132 , 128 , 123 , 120 , 118 , 113 , 112 , 111 , 112 , 112 , 115 , 117 , 119 , 121 , 124 ,
491 | 128 , 130 , 131 , 131 , 130 , 130 , 130 , 131 , 132 , 135 , 138 , 138 , 138 , 139 , 138 , 136 , 135 , 134 , 133 , 130 , 129 , 129 , 128 , 128 , 128 , 128 , 125 , 124 , 122 , 120 , 120 , 120 ,
492 | 120 , 122 , 125 , 128 , 130 , 132 , 134 , 135 , 134 , 133 , 132 , 130 , 128 , 126 , 124 , 122 , 119 , 118 , 119 , 119 , 120 , 120 , 122 , 123 , 123 , 124 , 125 , 127 , 128 , 130 , 134 , 138 ,
493 | 143 , 148 , 152 , 154 , 155 , 154 , 148 , 143 , 138 , 134 , 128 , 122 , 118 , 115 , 113 , 112 , 112 , 110 , 110 , 110 , 110 , 112 , 111 , 112 , 112 , 113 , 115 , 118 , 122 , 126 , 132 , 136 ,
494 | 140 , 144 , 146 , 148 , 149 , 151 , 152 , 150 , 148 , 146 , 145 , 143 , 140 , 138 , 133 , 129 , 124 , 119 , 116 , 113 , 110 , 108 , 108 , 109 , 111 , 114 , 117 , 119 , 120 , 122 , 124 , 125 ,
495 | 126 , 127 , 128 , 129 , 129 , 130 , 132 , 136 , 138 , 138 , 138 , 139 , 139 , 137 , 135 , 134 , 133 , 132 , 132 , 133 , 134 , 136 , 139 , 139 , 138 , 136 , 132 , 128 , 124 , 121 , 118 , 115 ,
496 | 112 , 112 , 112 , 113 , 115 , 118 , 120 , 122 , 126 , 129 , 129 , 129 , 129 , 129 , 128 , 128 , 129 , 131 , 134 , 136 , 137 , 138 , 138 , 138 , 136 , 135 , 134 , 132 , 131 , 129 , 128 , 128 ,
497 | 128 , 128 , 128 , 127 , 125 , 123 , 122 , 122 , 122 , 122 , 124 , 126 , 128 , 129 , 132 , 134 , 133 , 133 , 132 , 131 , 129 , 128 , 126 , 123 , 122 , 119 , 118 , 118 , 118 , 119 , 120 , 122 ,
498 | 123 , 123 , 124 , 125 , 128 , 129 , 131 , 135 , 139 , 143 , 148 , 154 , 155 , 155 , 152 , 147 , 143 , 138 , 132 , 127 , 122 , 118 , 114 , 113 , 112 , 111 , 110 , 110 , 110 , 111 , 112 , 112 ,
499 | 112 , 112 , 114 , 115 , 118 , 122 , 128 , 132 , 136 , 141 , 144 , 146 , 148 , 151 , 151 , 150 , 149 , 146 , 144 , 143 , 141 , 139 , 136 , 133 , 128 , 124 , 120 , 116 , 113 , 110 , 108 , 109 ,
500 | 110 , 111 , 114 , 117 , 119 , 121 , 123 , 125 , 126 , 127 , 128 , 128 , 129 , 129 , 131 , 134 , 135 , 136 , 137 , 138 , 138 , 136 , 135 , 134 , 133 , 132 , 131 , 131 , 132 , 134 , 136 , 138 ,
501 | 139 , 138 , 135 , 132 , 128 , 125 , 120 , 117 , 115 , 113 , 112 , 113 , 114 , 116 , 118 , 122 , 124 , 127 , 128 , 129 , 129 , 129 , 128 , 128 , 128 , 129 , 131 , 133 , 135 , 137 , 138 , 138 ,
502 | 137 , 136 , 135 , 133 , 132 , 130 , 128 , 128 , 128 , 128 , 128 , 128 , 127 , 126 , 124 , 123 , 123 , 123 , 124 , 125 , 126 , 128 , 130 , 132 , 132 , 132 , 132 , 132 , 131 , 129 , 127 , 126 ,
503 | 124 , 120 , 118 , 118 , 118 , 118 , 119 , 121 , 122 , 122 , 124 , 125 , 126 , 128 , 130 , 132 , 136 , 140 , 144 , 150 , 154 , 155 , 154 , 151 , 147 , 142 , 136 , 130 , 126 , 122 , 117 , 114 ,
504 | 113 , 112 , 110 , 110 , 110 , 112 , 112 , 112 , 112 , 112 , 113 , 114 , 116 , 119 , 123 , 128 , 133 , 138 , 142 , 145 , 148 , 150 , 150 , 151 , 150 , 148 , 145 , 144 , 141 , 139 , 138 , 135 ,
505 | 131 , 127 , 124 , 120 , 116 , 113 , 111 , 110 , 109 , 110 , 112 , 115 , 117 , 119 , 122 , 124 , 126 , 127 , 128 , 128 , 129 , 130 , 130 , 132 , 134 , 134 , 135 , 136 , 136 , 136 , 135 , 134 ,
506 | 134 , 132 , 132 , 131 , 131 , 132 , 133 , 136 , 138 , 139 , 138 , 135 , 132 , 129 , 125 , 121 , 118 , 116 , 115 , 114 , 114 , 115 , 117 , 120 , 123 , 126 , 128 , 129 , 129 , 129 , 129 , 127 ,
507 | 127 , 128 , 129 , 130 , 132 , 135 , 137 , 138 , 138 , 137 , 136 , 135 , 134 , 132 , 130 , 129 , 128 , 128 , 128 , 129 , 128 , 128 , 126 , 126 , 125 , 124 , 125 , 125 , 126 , 126 , 128 , 129 ,
508 | 130 , 131 , 132 , 132 , 131 , 130 , 128 , 127 , 125 , 123 , 120 , 118 , 118 , 118 , 118 , 119 , 120 , 122 , 123 , 124 , 126 , 128 , 129 , 130 , 133 , 137 , 141 , 145 , 150 , 154 , 154 , 153 ,
509 | 150 , 146 , 140 , 135 , 130 , 126 , 120 , 116 , 114 , 113 , 112 , 110 , 110 , 110 , 112 , 112 , 112 , 112 , 113 , 113 , 113 , 116 , 120 , 124 , 128 , 133 , 138 , 142 , 146 , 148 , 150 , 150 ,
510 | 151 , 150 , 147 , 144 , 142 , 140 , 138 , 136 , 134 , 130 , 127 , 123 , 120 , 116 , 113 , 112 , 110 , 110 , 111 , 112 , 115 , 117 , 119 , 122 , 125 , 127 , 127 , 128 , 129 , 130 , 130 , 131 ,
511 | 132 , 133 , 134 , 135 , 135 , 135 , 135 , 135 , 134 , 133 , 132 , 131 , 131 , 131 , 132 , 133 , 135 , 138 , 138 , 138 , 135 , 132 , 128 , 124 , 121 , 119 , 117 , 114 , 114 , 115 , 116 , 118 ,
512 | 120 , 123 , 126 , 128 , 128 , 128 , 128 , 128 , 126 , 126 , 127 , 128 , 130 , 132 , 134 , 136 , 137 , 137 , 137 , 136 , 135 , 134 , 132 , 130 , 128 , 128 , 128 , 129 , 129 , 128 , 127 , 127 ,
513 | 126 , 126 , 125 , 125 , 125 , 126 , 126 , 127 , 128 , 129 , 129 , 130 , 131 , 131 , 129 , 128 , 126 , 124 , 122 , 119 , 118 , 118 , 117 , 118 , 119 , 120 , 122 , 123 , 125 , 127 , 128 , 130 ,
514 | 131 , 134 , 138 , 142 , 146 , 151 , 154 , 154 , 151 , 148 , 144 , 139 , 133 , 128 , 124 , 120 , 116 , 114 , 112 , 110 , 109 , 110 , 110 , 112 , 112 , 112 , 113 , 113 , 113 , 115 , 118 , 122 ,
515 | 125 , 129 , 134 , 139 , 144 , 147 , 149 , 151 , 151 , 150 , 148 , 146 , 143 , 141 , 138 , 137 , 135 , 132 , 128 , 126 , 122 , 118 , 115 , 113 , 112 , 110 , 111 , 112 , 113 , 115 , 117 , 120 ,
516 | 123 , 125 , 127 , 128 , 129 , 130 , 131 , 131 , 132 , 133 , 133 , 133 , 134 , 134 , 134 , 134 , 134 , 133 , 133 , 132 , 131 , 131 , 131 , 132 , 134 , 136 , 138 , 138 , 137 , 134 , 131 , 128 ,
517 | 124 , 122 , 119 , 117 , 115 , 115 , 116 , 117 , 119 , 122 , 124 , 126 , 128 , 128 , 128 , 128 , 126 , 125 , 126 , 127 , 128 , 130 , 132 , 134 , 135 , 136 , 137 , 137 , 136 , 136 , 134 , 132 ,
518 | 129 , 128 , 129 , 129 , 129 , 129 , 128 , 128 , 128 , 127 , 126 , 126 , 126 , 126 , 126 , 126 , 127 , 128 , 128 , 128 , 129 , 130 , 130 , 129 , 128 , 126 , 124 , 122 , 119 , 118 , 119 , 118 ,
519 | 118 , 119 , 120 , 122 , 124 , 126 , 128 , 129 , 131 , 134 , 137 , 140 , 144 , 148 , 152 , 152 , 152 , 150 , 146 , 142 , 138 , 132 , 128 , 124 , 119 , 116 , 114 , 112 , 110 , 109 , 110 , 111 ,
520 | 112 , 112 , 112 , 113 , 113 , 114 , 116 , 119 , 122 , 126 , 131 , 136 , 140 , 144 , 148 , 150 , 151 , 151 , 150 , 148 , 144 , 142 , 140 , 138 , 136 , 134 , 131 , 128 , 124 , 122 , 118 , 115 ,
521 | 113 , 112 , 112 , 111 , 112 , 113 , 116 , 117 , 120 , 123 , 126 , 128 , 129 , 130 , 131 , 132 , 132 , 132 , 133 , 133 , 133 , 133 , 133 , 132 , 133 , 133 , 133 , 133 , 132 , 131 , 131 , 132 ,
522 | 132 , 134 , 136 , 138 , 138 , 135 , 132 , 130 , 128 , 124 , 122 , 120 , 117 , 116 , 117 , 117 , 118 , 120 , 122 , 124 , 126 , 128 , 128 , 128 , 127 , 126 , 125 , 126 , 127 , 128 , 129 , 131 ,
523 | 133 , 134 , 135 , 136 , 138 , 136 , 136 , 134 , 131 , 129 , 130 , 129 , 129 , 129 , 129 , 128 , 128 , 128 , 127 , 127 , 127 , 126 , 126 , 126 , 126 , 127 , 128 , 128 , 128 , 128 , 129 , 129 ,
524 | 128 , 127 , 126 , 123 , 122 , 120 , 120 , 119 , 118 , 118 , 119 , 120 , 122 , 125 , 126 , 128 , 130 , 132 , 134 , 138 , 142 , 145 , 149 , 152 , 152 , 151 , 148 , 145 , 140 , 135 , 131 , 128 ,
525 | 123 , 118 , 116 , 114 , 112 , 110 , 110 , 110 , 112 , 112 , 112 , 112 , 113 , 114 , 115 , 117 , 120 , 124 , 128 , 132 , 136 , 141 , 144 , 148 , 150 , 151 , 151 , 149 , 146 , 143 , 141 , 139 ,
526 | 138 , 136 , 133 , 130 , 127 , 124 , 120 , 117 , 115 , 114 , 112 , 112 , 112 , 112 , 114 , 117 , 118 , 121 , 124 , 126 , 128 , 129 , 131 , 132 , 132 , 132 , 133 , 133 , 133 , 131 , 131 , 130 ,
527 | 130 , 131 , 131 , 131 , 131 , 131 , 130 , 129 , 130 , 132 , 135 , 137 , 137 , 135 , 133 , 131 , 129 , 128 , 125 , 123 , 121 , 119 , 118 , 119 , 120 , 121 , 123 , 124 , 125 , 127 , 128 , 128 ,
528 | 127 , 127 , 126 , 126 , 127 , 128 , 128 , 129 , 130 , 131 , 133 , 135 , 136 , 137 , 135 , 134 , 132 , 130 , 129 , 129 , 129 , 129 , 129 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 127 , 127 ,
529 | 127 , 127 , 127 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 127 , 126 , 124 , 123 , 121 , 121 , 119 , 119 , 120 , 120 , 121 , 124 , 126 , 128 , 128 , 130 , 132 , 135 , 138 , 142 , 146 , 149 ,
530 | 151 , 150 , 148 , 145 , 141 , 137 , 133 , 129 , 127 , 123 , 119 , 116 , 114 , 113 , 112 , 112 , 111 , 113 , 113 , 113 , 113 , 115 , 115 , 117 , 119 , 123 , 126 , 128 , 133 , 137 , 141 , 144 ,
531 | 147 , 149 , 150 , 149 , 147 , 143 , 141 , 139 , 138 , 136 , 134 , 132 , 128 , 126 , 123 , 120 , 119 , 117 , 115 , 113 , 113 , 113 , 114 , 117 , 119 , 120 , 123 , 125 , 127 , 128 , 128 , 130 ,
532 | 132 , 132 , 132 , 132 , 132 , 131 , 131 , 130 , 130 , 130 , 130 , 131 , 131 , 131 , 130 , 129 , 130 , 131 , 133 , 135 , 137 , 136 , 134 , 132 , 130 , 128 , 127 , 125 , 123 , 121 , 120 , 119 ,
533 | 120 , 121 , 123 , 123 , 124 , 126 , 127 , 127 , 126 , 126 , 126 , 125 , 126 , 127 , 128 , 128 , 129 , 130 , 131 , 133 , 134 , 135 , 135 , 134 , 133 , 132 , 130 , 129 , 129 , 129 , 129 , 130 ,
534 | 129 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 127 , 127 , 127 , 127 , 128 , 128 , 128 , 128 , 128 , 127 , 127 , 126 , 125 , 124 , 123 , 121 , 120 , 120 , 120 , 120 , 121 , 123 , 124 , 126 ,
535 | 128 , 129 , 131 , 133 , 137 , 140 , 143 , 147 , 149 , 151 , 149 , 146 , 143 , 139 , 136 , 132 , 128 , 127 , 123 , 119 , 116 , 115 , 113 , 113 , 112 , 111 , 112 , 113 , 113 , 113 , 115 , 116 ,
536 | 117 , 120 , 124 , 127 , 129 , 134 , 138 , 142 , 145 , 147 , 149 , 148 , 148 , 145 , 143 , 140 , 139 , 137 , 136 , 134 , 131 , 128 , 125 , 123 , 120 , 118 , 116 , 115 , 114 , 114 , 114 , 115 ,
537 | 118 , 120 , 121 , 124 , 126 , 127 , 128 , 129 , 131 , 132 , 132 , 132 , 132 , 132 , 131 , 130 , 130 , 129 , 129 , 130 , 130 , 130 , 130 , 129 , 129 , 131 , 132 , 134 , 135 , 137 , 137 , 134 ,
538 | 132 , 129 , 128 , 127 , 125 , 123 , 123 , 120 , 120 , 121 , 123 , 123 , 124 , 125 , 125 , 126 , 125 , 125 , 126 , 125 , 125 , 126 , 127 , 128 , 128 , 129 , 131 , 133 , 134 , 134 , 135 , 135 ,
539 | 134 , 133 , 132 , 130 , 130 , 130 , 130 , 130 , 130 , 129 , 128 , 128 , 128 , 128 , 128 , 128 , 127 , 127 , 127 , 127 , 128 , 128 , 128 , 128 , 128 , 127 , 126 , 126 , 126 , 125 , 124 , 122 ,
540 | 121 , 121 , 120 , 120 , 121 , 121 , 123 , 125 , 127 , 128 , 129 , 132 , 134 , 137 , 141 , 144 , 146 , 149 , 149 , 147 , 144 , 141 , 137 , 134 , 130 , 128 , 126 , 121 , 118 , 116 , 115 , 114 ,
541 | 113 , 112 , 112 , 112 , 112 , 113 , 113 , 115 , 116 , 118 , 121 , 125 , 128 , 131 , 135 , 140 , 143 , 144 , 146 , 146 , 146 , 145 , 143 , 141 , 139 , 138 , 137 , 135 , 133 , 129 , 127 , 125 ,
542 | 123 , 119 , 117 , 116 , 114 , 114 , 114 , 115 , 117 , 119 , 121 , 123 , 125 , 127 , 128 , 128 , 130 , 132 , 133 , 132 , 131 , 132 , 131 , 130 , 129 , 129 , 129 , 129 , 129 , 129 , 129 , 129 ,
543 | 129 , 130 , 131 , 132 , 134 , 136 , 137 , 135 , 133 , 131 , 129 , 128 , 126 , 125 , 124 , 123 , 123 , 123 , 124 , 125 , 125 , 125 , 125 , 125 , 125 , 124 , 124 , 124 , 124 , 124 , 125 , 127 ,
544 | 127 , 128 , 129 , 131 , 132 , 133 , 133 , 133 , 133 , 133 , 132 , 131 , 130 , 131 , 131 , 131 , 132 , 132 , 131 , 131 , 130 , 129 , 128 , 128 , 128 , 127 , 126 , 126 , 126 , 127 , 128 , 127 ,
545 | 127 , 127 , 126 , 125 , 125 , 125 , 124 , 123 , 121 , 120 , 120 , 119 , 120 , 121 , 123 , 124 , 126 , 128 , 129 , 132 , 135 , 137 , 140 , 143 , 145 , 147 , 149 , 148 , 145 , 142 , 139 , 135 ,
546 | 131 , 128 , 126 , 123 , 120 , 117 , 117 , 115 , 114 , 114 , 112 , 112 , 113 , 113 , 114 , 115 , 117 , 117 , 120 , 124 , 128 , 130 , 135 , 139 , 142 , 144 , 145 , 146 , 145 , 144 , 143 , 141 ,
547 | 139 , 138 , 137 , 135 , 133 , 131 , 128 , 127 , 124 , 121 , 118 , 117 , 115 , 115 , 115 , 115 , 117 , 118 , 121 , 123 , 125 , 127 , 128 , 129 , 131 , 133 , 134 , 133 , 132 , 131 , 131 , 129 ,
548 | 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 129 , 130 , 132 , 133 , 135 , 137 , 135 , 133 , 131 , 129 , 128 , 127 , 127 , 127 , 126 , 125 , 127 , 127 , 127 , 126 , 126 , 125 ,
549 | 124 , 123 , 123 , 123 , 123 , 123 , 123 , 123 , 125 , 127 , 128 , 129 , 130 , 132 , 132 , 132 , 132 , 132 , 132 , 132 , 131 , 131 , 131 , 132 , 134 , 135 , 135 , 135 , 134 , 132 , 130 , 128 ,
550 | 128 , 127 , 125 , 125 , 125 , 125 , 127 , 126 , 126 , 126 , 126 , 125 , 124 , 124 , 123 , 123 , 120 , 119 , 120 , 120 , 120 , 121 , 123 , 124 , 126 , 128 , 129 , 132 , 135 , 137 , 139 , 142 ,
551 | 143 , 145 , 146 , 146 , 146 , 143 , 140 , 136 , 133 , 128 , 127 , 124 , 122 , 120 , 118 , 116 , 115 , 114 , 112 , 112 , 112 , 112 , 114 , 114 , 116 , 117 , 120 , 123 , 128 , 130 , 135 , 138 ,
552 | 141 , 143 , 144 , 144 , 144 , 143 , 142 , 140 , 138 , 136 , 136 , 134 , 132 , 132 , 130 , 128 , 126 , 123 , 120 , 118 , 116 , 115 , 114 , 115 , 117 , 118 , 120 , 123 , 126 , 128 , 129 , 131 ,
553 | 133 , 133 , 134 , 133 , 133 , 131 , 130 , 129 , 128 , 128 , 128 , 128 , 127 , 127 , 128 , 128 , 128 , 128 , 128 , 128 , 129 , 131 , 133 , 135 , 136 , 135 , 134 , 131 , 129 , 128 , 128 , 128 ,
554 | 128 , 128 , 128 , 128 , 127 , 127 , 125 , 125 , 123 , 123 , 121 , 121 , 121 , 121 , 121 , 121 , 123 , 125 , 127 , 128 , 129 , 130 , 131 , 131 , 132 , 132 , 132 , 133 , 132 , 132 , 133 , 134 ,
555 | 135 , 136 , 138 , 137 , 136 , 135 , 132 , 129 , 128 , 127 , 125 , 124 , 123 , 124 , 124 , 125 , 125 , 125 , 126 , 125 , 124 , 123 , 123 , 121 , 121 , 120 , 120 , 121 , 121 , 121 , 122 , 123 ,
556 | 126 , 128 , 130 , 133 , 136 , 137 , 138 , 140 , 142 , 142 , 144 , 145 , 145 , 143 , 142 , 137 , 134 , 130 , 128 , 125 , 123 , 121 , 118 , 116 , 115 , 114 , 114 , 113 , 113 , 114 , 114 , 114 ,
557 | 115 , 118 , 120 , 123 , 127 , 130 , 134 , 137 , 140 , 141 , 142 , 143 , 142 , 141 , 141 , 140 , 138 , 136 , 134 , 133 , 133 , 132 , 131 , 128 , 127 , 124 , 122 , 119 , 117 , 116 , 115 , 115 ,
558 | 116 , 117 , 120 , 123 , 126 , 128 , 130 , 133 , 134 , 134 , 134 , 133 , 132 , 130 , 129 , 128 , 128 , 128 , 127 , 127 , 126 , 126 , 127 , 128 , 128 , 128 , 128 , 128 , 128 , 129 , 132 , 134 ,
559 | 136 , 136 , 136 , 134 , 133 , 132 , 131 , 130 , 130 , 129 , 128 , 128 , 128 , 127 , 126 , 125 , 123 , 122 , 122 , 121 , 120 , 120 , 119 , 120 , 121 , 123 , 124 , 127 , 128 , 128 , 129 , 131 ,
560 | 132 , 132 , 133 , 133 , 133 , 133 , 133 , 134 , 136 , 138 , 140 , 140 , 138 , 136 , 134 , 131 , 128 , 127 , 125 , 123 , 123 , 122 , 122 , 123 , 124 , 125 , 125 , 125 , 124 , 123 , 122 , 122 ,
561 | 122 , 121 , 120 , 120 , 121 , 122 , 122 , 124 , 127 , 128 , 130 , 134 , 136 , 137 , 138 , 139 , 140 , 141 , 141 , 142 , 143 , 143 , 141 , 139 , 135 , 132 , 128 , 127 , 125 , 122 , 119 , 117 ,
562 | 116 , 115 , 115 , 114 , 114 , 114 , 115 , 115 , 116 , 118 , 121 , 123 , 126 , 128 , 132 , 135 , 138 , 139 , 141 , 141 , 141 , 141 , 140 , 139 , 138 , 136 , 133 , 132 , 133 , 132 , 131 , 129 ,
563 | 128 , 126 , 123 , 122 , 119 , 117 , 117 , 117 , 117 , 117 , 119 , 123 , 127 , 128 , 131 , 133 , 134 , 134 , 133 , 133 , 132 , 131 , 128 , 128 , 128 , 127 , 126 , 125 , 125 , 126 , 127 , 127 ,
564 | 127 , 127 , 127 , 127 , 127 , 128 , 129 , 132 , 134 , 136 , 136 , 136 , 136 , 134 , 134 , 133 , 133 , 132 , 130 , 128 , 128 , 127 , 126 , 125 , 123 , 123 , 122 , 120 , 119 , 118 , 118 , 119 ,
565 | 119 , 120 , 122 , 123 , 126 , 128 , 128 , 130 , 131 , 133 , 133 , 133 , 133 , 133 , 134 , 135 , 137 , 139 , 140 , 140 , 139 , 138 , 135 , 133 , 129 , 128 , 126 , 123 , 122 , 121 , 120 , 121 ,
566 | 123 , 124 , 124 , 124 , 124 , 123 , 123 , 122 , 122 , 121 , 120 , 120 , 120 , 122 , 123 , 124 , 127 , 128 , 131 , 134 , 136 , 137 , 138 , 138 , 138 , 138 , 139 , 140 , 141 , 142 , 141 , 139 ,
567 | 136 , 133 , 131 , 128 , 126 , 123 , 120 , 118 , 116 , 115 , 115 , 115 , 115 , 115 , 115 , 116 , 117 , 119 , 122 , 124 , 127 , 128 , 130 , 132 , 136 , 137 , 139 , 140 , 141 , 141 , 139 , 138 ,
568 | 137 , 136 , 133 , 132 , 132 , 131 , 130 , 129 , 128 , 127 , 124 , 124 , 121 , 119 , 119 , 118 , 117 , 118 , 120 , 124 , 127 , 129 , 132 , 133 , 134 , 134 , 134 , 132 , 132 , 131 , 128 , 128 ,
569 | 127 , 126 , 124 , 124 , 124 , 125 , 125 , 126 , 126 , 126 , 126 , 126 , 127 , 128 , 128 , 130 , 132 , 136 , 137 , 137 , 137 , 137 , 137 , 137 , 136 , 133 , 132 , 129 , 128 , 127 , 126 , 125 ,
570 | 124 , 122 , 121 , 119 , 119 , 118 , 119 , 119 , 119 , 119 , 120 , 121 , 124 , 126 , 128 , 128 , 131 , 132 , 132 , 133 , 134 , 136 , 136 , 137 , 137 , 139 , 140 , 141 , 140 , 138 , 136 , 133 ,
571 | 131 , 128 , 127 , 124 , 122 , 120 , 120 , 120 , 121 , 124 , 124 , 124 , 124 , 124 , 124 , 122 , 122 , 122 , 122 , 121 , 120 , 121 , 124 , 125 , 128 , 129 , 132 , 134 , 136 , 136 , 136 , 136 ,
572 | 136 , 136 , 136 , 138 , 139 , 139 , 140 , 139 , 137 , 136 , 132 , 130 , 128 , 124 , 122 , 119 , 117 , 116 , 116 , 116 , 116 , 116 , 116 , 117 , 119 , 120 , 122 , 125 , 127 , 128 , 128 , 131 ,
573 | 132 , 135 , 136 , 138 , 139 , 139 , 139 , 137 , 136 , 135 , 134 , 132 , 131 , 130 , 130 , 128 , 128 , 128 , 127 , 124 , 124 , 121 , 120 , 119 , 119 , 120 , 121 , 124 , 127 , 129 , 132 , 133 ,
574 | 134 , 134 , 134 , 132 , 132 , 130 , 129 , 128 , 126 , 124 , 124 , 124 , 124 , 124 , 125 , 125 , 125 , 125 , 125 , 126 , 126 , 127 , 128 , 129 , 131 , 133 , 136 , 139 , 140 , 140 , 140 , 139 ,
575 | 137 , 136 , 133 , 131 , 128 , 127 , 125 , 124 , 124 , 122 , 120 , 119 , 119 , 118 , 118 , 118 , 119 , 118 , 118 , 119 , 121 , 124 , 126 , 128 , 129 , 131 , 132 , 134 , 135 , 135 , 137 , 138 ,
576 | 139 , 139 , 139 , 139 , 139 , 139 , 137 , 135 , 132 , 129 , 128 , 125 , 122 , 121 , 120 , 120 , 120 , 121 , 124 , 124 , 124 , 124 , 124 , 124 , 123 , 123 , 123 , 122 , 121 , 122 , 124 , 125 ,
577 | 128 , 129 , 132 , 133 , 135 , 135 , 135 , 135 , 135 , 135 , 135 , 135 , 136 , 136 , 137 , 138 , 137 , 136 , 134 , 131 , 128 , 127 , 124 , 121 , 119 , 117 , 116 , 117 , 117 , 117 , 117 , 118 ,
578 | 120 , 121 , 124 , 125 , 128 , 128 , 128 , 128 , 130 , 131 , 134 , 135 , 137 , 138 , 137 , 136 , 135 , 135 , 134 , 133 , 131 , 130 , 129 , 128 , 128 , 128 , 128 , 126 , 125 , 124 , 122 , 121 ,
579 | 121 , 121 , 122 , 124 , 126 , 128 , 131 , 132 , 133 , 134 , 133 , 132 , 131 , 130 , 129 , 128 , 126 , 124 , 123 , 124 , 123 , 124 , 124 , 124 , 125 , 125 , 125 , 125 , 126 , 127 , 128 , 128 ,
580 | 130 , 132 , 135 , 138 , 140 , 142 , 142 , 141 , 140 , 137 , 135 , 132 , 129 , 128 , 125 , 125 , 124 , 122 , 121 , 119 , 118 , 118 , 118 , 118 , 118 , 118 , 118 , 118 , 119 , 122 , 124 , 127 ,
581 | 128 , 131 , 132 , 134 , 135 , 137 , 138 , 140 , 140 , 140 , 140 , 138 , 138 , 138 , 137 , 135 , 132 , 130 , 128 , 125 , 122 , 121 , 120 , 119 , 119 , 120 , 122 , 122 , 122 , 124 , 124 , 124 ,
582 | 124 , 124 , 124 , 124 , 124 , 124 , 125 , 126 , 128 , 129 , 131 , 133 , 134 , 134 , 135 , 135 , 135 , 134 , 134 , 134 , 134 , 134 , 135 , 136 , 137 , 136 , 135 , 133 , 130 , 128 , 125 , 124 ,
583 | 121 , 119 , 118 , 117 , 117 , 118 , 119 , 119 , 121 , 124 , 125 , 126 , 127 , 128 , 128 , 128 , 128 , 129 , 131 , 132 , 134 , 135 , 135 , 135 , 135 , 135 , 134 , 134 , 132 , 131 , 129 , 128 ,
584 | 128 , 128 , 128 , 127 , 126 , 125 , 124 , 124 , 123 , 124 , 124 , 125 , 127 , 128 , 129 , 131 , 132 , 132 , 132 , 132 , 131 , 130 , 129 , 128 , 126 , 124 , 122 , 122 , 122 , 122 , 122 , 123 ,
585 | 124 , 124 , 125 , 125 , 125 , 127 , 127 , 128 , 129 , 131 , 134 , 137 , 140 , 143 , 143 , 142 , 140 , 138 , 136 , 133 , 131 , 128 , 126 , 125 , 124 , 122 , 120 , 119 , 119 , 119 , 118 , 118 ,
586 | 118 , 117 , 117 , 117 , 119 , 120 , 122 , 125 , 128 , 129 , 132 , 134 , 137 , 138 , 140 , 140 , 141 , 140 , 140 , 138 , 138 , 137 , 137 , 135 , 133 , 131 , 128 , 126 , 124 , 122 , 121 , 119 ,
587 | 119 , 119 , 119 , 121 , 122 , 122 , 124 , 124 , 124 , 124 , 124 , 125 , 125 , 125 , 125 , 127 , 128 , 128 , 130 , 130 , 131 , 132 , 132 , 132 , 132 , 132 , 132 , 132 , 131 , 131 , 132 , 134 ,
588 | 135 , 135 , 134 , 132 , 130 , 128 , 127 , 125 , 123 , 121 , 120 , 119 , 118 , 120 , 120 , 121 , 123 , 124 , 126 , 127 , 127 , 128 , 128 , 128 , 128 , 128 , 128 , 129 , 130 , 132 , 132 , 132 ,
589 | 133 , 134 , 133 , 132 , 131 , 129 , 128 , 128 , 128 , 128 , 128 , 128 , 127 , 126 , 126 , 126 , 125 , 125 , 126 , 127 , 128 , 128 , 128 , 129 , 129 , 130 , 130 , 130 , 129 , 129 , 128 , 128 ,
590 | 126 , 126 , 124 , 123 , 123 , 122 , 122 , 122 , 123 , 123 , 124 , 125 , 126 , 127 , 128 , 128 , 128 , 130 , 133 , 135 , 139 , 142 , 142 , 142 , 141 , 138 , 136 , 134 , 131 , 128 , 128 , 125 ,
591 | 123 , 121 , 120 , 120 , 119 , 118 , 118 , 118 , 117 , 117 , 117 , 117 , 117 , 119 , 121 , 124 , 126 , 128 , 130 , 132 , 135 , 138 , 139 , 139 , 139 , 139 , 138 , 137 , 136 , 135 , 135 , 134 ,
592 | 132 , 130 , 128 , 127 , 125 , 123 , 122 , 120 , 119 , 119 , 119 , 120 , 121 , 123 , 123 , 124 , 125 , 125 , 126 , 126 , 127 , 127 , 128 , 128 , 128 , 128 , 129 , 129 , 130 , 130 , 131 , 131 ,
593 | 131 , 131 , 131 , 130 , 129 , 130 , 131 , 132 , 133 , 134 , 134 , 132 , 131 , 129 , 128 , 127 , 125 , 123 , 122 , 121 , 120 , 121 , 121 , 123 , 124 , 125 , 126 , 127 , 127 , 127 , 127 , 127 ,
594 | 127 , 127 , 128 , 128 , 128 , 129 , 130 , 131 , 132 , 132 , 132 , 132 , 131 , 130 , 129 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 127 , 127 , 127 , 128 , 128 , 128 , 128 , 128 , 128 ,
595 | 128 , 129 , 129 , 129 , 129 , 128 , 128 , 128 , 127 , 126 , 125 , 123 , 122 , 122 , 122 , 122 , 122 , 123 , 123 , 124 , 126 , 126 , 127 , 128 , 128 , 130 , 132 , 135 , 138 , 139 , 140 , 140 ,
596 | 139 , 138 , 136 , 133 , 132 , 129 , 128 , 126 , 123 , 122 , 122 , 121 , 120 , 120 , 119 , 119 , 118 , 118 , 119 , 119 , 120 , 120 , 122 , 123 , 126 , 128 , 129 , 132 , 134 , 137 , 137 , 137 ,
597 | 138 , 137 , 137 , 137 , 135 , 134 , 133 , 133 , 132 , 130 , 128 , 128 , 126 , 124 , 123 , 122 , 121 , 120 , 120 , 120 , 122 , 123 , 123 , 124 , 124 , 126 , 126 , 127 , 128 , 128 , 128 , 128 ,
598 | 128 , 128 , 129 , 129 , 129 , 129 , 129 , 129 , 129 , 129 , 129 , 129 , 129 , 129 , 129 , 130 , 131 , 131 , 133 , 131 , 131 , 130 , 129 , 128 , 127 , 126 , 124 , 124 , 123 , 123 , 124 , 124 ,
599 | 125 , 126 , 126 , 126 , 127 , 126 , 126 , 126 , 126 , 126 , 126 , 127 , 128 , 128 , 128 , 129 , 131 , 131 , 131 , 131 , 131 , 130 , 129 , 129 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 ,
600 | 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 127 , 126 , 126 , 124 , 123 , 123 , 123 , 123 , 123 , 123 , 124 , 124 , 125 , 126 , 127 , 128 ,
601 | 129 , 131 , 132 , 134 , 136 , 137 , 137 , 138 , 137 , 137 , 136 , 134 , 131 , 130 , 128 , 127 , 125 , 123 , 123 , 122 , 121 , 121 , 120 , 119 , 119 , 119 , 119 , 120 , 121 , 121 , 122 , 123 ,
602 | 125 , 128 , 129 , 130 , 133 , 136 , 136 , 136 , 136 , 136 , 136 , 136 , 133 , 133 , 132 , 131 , 130 , 130 , 129 , 128 , 127 , 125 , 125 , 123 , 122 , 121 , 121 , 121 , 122 , 122 , 124 , 125 ,
603 | 125 , 126 , 127 , 128 , 128 , 128 , 129 , 129 , 129 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 129 , 129 , 129 , 130 , 130 , 131 , 131 , 130 , 130 , 129 ,
604 | 128 , 127 , 126 , 125 , 125 , 125 , 125 , 126 , 126 , 126 , 126 , 126 , 126 , 126 , 126 , 126 , 126 , 125 , 125 , 125 , 126 , 127 , 128 , 128 , 129 , 130 , 130 , 130 , 130 , 130 , 130 , 129 ,
605 | 129 , 128 , 128 , 128 , 128 , 129 , 129 , 129 , 129 , 129 , 129 , 128 , 128 , 128 , 128 , 127 , 127 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 127 , 126 , 126 , 125 , 124 , 123 , 123 , 123 ,
606 | 123 , 123 , 124 , 125 , 125 , 126 , 128 , 128 , 129 , 130 , 131 , 133 , 133 , 134 , 135 , 136 , 136 , 135 , 134 , 133 , 131 , 130 , 128 , 128 , 126 , 124 , 124 , 123 , 122 , 122 , 121 , 121 ,
607 | 121 , 121 , 121 , 121 , 122 , 122 , 122 , 124 , 125 , 127 , 128 , 131 , 133 , 133 , 134 , 135 , 135 , 135 , 135 , 134 , 133 , 132 , 131 , 131 , 130 , 129 , 129 , 128 , 128 , 126 , 126 , 124 ,
608 | 123 , 122 , 122 , 122 , 122 , 123 , 124 , 126 , 126 , 127 , 128 , 128 , 128 , 129 , 129 , 129 , 129 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 ,
609 | 128 , 128 , 129 , 130 , 131 , 131 , 130 , 129 , 128 , 128 , 128 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 126 , 126 , 126 , 126 , 126 , 126 , 126 , 126 , 125 , 126 , 126 , 127 , 128 ,
610 | 128 , 128 , 129 , 129 , 129 , 129 , 129 , 129 , 129 , 128 , 128 , 128 , 129 , 129 , 130 , 130 , 130 , 129 , 129 , 128 , 128 , 128 , 128 , 127 , 127 , 127 , 127 , 128 , 128 , 127 , 128 , 128 ,
611 | 127 , 127 , 126 , 126 , 125 , 125 , 124 , 124 , 124 , 124 , 125 , 125 , 126 , 126 , 128 , 128 , 129 , 130 , 131 , 131 , 132 , 133 , 133 , 134 , 134 , 134 , 134 , 133 , 131 , 130 , 128 , 128 ,
612 | 127 , 126 , 125 , 124 , 123 , 122 , 122 , 122 , 122 , 122 , 122 , 122 , 122 , 123 , 124 , 124 , 126 , 127 , 128 , 130 , 131 , 132 , 133 , 133 , 133 , 133 , 133 , 133 , 132 , 131 , 131 , 130 ,
613 | 129 , 129 , 129 , 128 , 128 , 127 , 126 , 125 , 124 , 124 , 123 , 123 , 123 , 124 , 124 , 125 , 126 , 127 , 128 , 128 , 129 , 129 , 129 , 129 , 129 , 129 , 128 , 128 , 128 , 128 , 128 , 128 ,
614 | 127 , 127 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 129 , 130 , 130 , 130 , 130 , 129 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 127 , 127 , 127 , 126 , 126 , 126 , 126 ,
615 | 126 , 125 , 125 , 125 , 125 , 126 , 126 , 127 , 128 , 128 , 128 , 128 , 129 , 129 , 129 , 129 , 129 , 129 , 129 , 129 , 129 , 130 , 130 , 130 , 130 , 130 , 129 , 129 , 128 , 128 , 128 , 127 ,
616 | 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 126 , 126 , 126 , 125 , 125 , 125 , 125 , 125 , 125 , 125 , 126 , 127 , 128 , 128 , 129 , 130 , 130 , 130 , 131 , 131 , 131 , 132 ,
617 | 132 , 133 , 132 , 132 , 131 , 130 , 128 , 128 , 128 , 127 , 126 , 125 , 124 , 124 , 123 , 123 , 123 , 123 , 123 , 123 , 123 , 124 , 125 , 125 , 126 , 127 , 128 , 129 , 130 , 131 , 131 , 132 ,
618 | 132 , 132 , 132 , 131 , 131 , 131 , 130 , 129 , 129 , 129 , 128 , 128 , 128 , 127 , 126 , 126 , 125 , 125 , 124 , 124 , 124 , 124 , 125 , 125 , 126 , 127 , 128 , 128 , 129 , 129 , 129 , 129 ,
619 | 129 , 128 , 128 , 128 , 128 , 128 , 127 , 127 , 127 , 127 , 127 , 127 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 129 , 129 , 130 , 129 , 129 , 129 , 129 , 129 , 128 , 128 , 128 , 128 ,
620 | 128 , 128 , 127 , 127 , 127 , 126 , 126 , 126 , 126 , 125 , 125 , 125 , 125 , 126 , 126 , 126 , 127 , 127 , 128 , 128 , 128 , 128 , 129 , 129 , 129 , 129 , 129 , 129 , 129 , 130 , 130 , 130 ,
621 | 130 , 130 , 129 , 129 , 128 , 128 , 128 , 127 , 127 , 126 , 126 , 126 , 126 , 127 , 127 , 127 , 127 , 127 , 126 , 126 , 126 , 126 , 126 , 125 , 125 , 126 , 126 , 126 , 126 , 127 , 128 , 128 ,
622 | 129 , 129 , 130 , 130 , 130 , 130 , 130 , 131 , 131 , 131 , 131 , 131 , 130 , 129 , 129 , 128 , 128 , 127 , 126 , 126 , 125 , 124 , 124 , 124 , 124 , 124 , 124 , 124 , 125 , 125 , 125 , 126 ,
623 | 126 , 127 , 128 , 128 , 129 , 130 , 130 , 130 , 130 , 131 , 131 , 130 , 130 , 130 , 130 , 129 , 129 , 129 , 128 , 128 , 128 , 128 , 127 , 126 , 126 , 125 , 125 , 125 , 125 , 125 , 125 , 126 ,
624 | 126 , 128 , 128 , 128 , 129 , 129 , 129 , 129 , 129 , 128 , 128 , 128 , 128 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 128 , 128 , 128 , 128 , 129 , 129 , 129 ,
625 | 129 , 129 , 129 , 129 , 129 , 129 , 129 , 128 , 128 , 128 , 127 , 127 , 127 , 127 , 127 , 126 , 126 , 126 , 126 , 126 , 126 , 126 , 126 , 126 , 127 , 127 , 127 , 128 , 128 , 128 , 128 , 128 ,
626 | 128 , 129 , 129 , 129 , 129 , 129 , 130 , 130 , 130 , 130 , 129 , 129 , 128 , 128 , 128 , 127 , 127 , 127 , 126 , 126 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 127 , 126 , 126 , 126 ,
627 | 126 , 126 , 126 , 127
628 | };
629 |
630 |
631 |
--------------------------------------------------------------------------------
/examples/AccelerometerControlsSound/wavetables.h:
--------------------------------------------------------------------------------
1 | #define MAXVALUE 255
2 | #define SONGLEN 6442
3 |
4 | extern const uint8_t sabine[];
5 | extern const uint8_t piano[];
6 |
7 |
--------------------------------------------------------------------------------
/examples/AudioBufferPlayer_sineWave/AudioBufferPlayer_sineWave.ino:
--------------------------------------------------------------------------------
1 | /*
2 | playing a sine wave with different volumes
3 |
4 | Framework used: Arduino compatiple STM32GENERIC
5 | Hardware: STM32F4 Discovery
6 |
7 | *************************************************************************************
8 |
9 | This program is free software; you can redistribute it and/or modify
10 | it under the terms of the GNU General Public License as published by
11 | the Free Software Foundation; either version 2 of the License, or
12 | (at your option) any later version.
13 |
14 | ********************************** list of outhors **********************************
15 | v0.1 2.Mai.2017 C. ChrisMicro initial version
16 |
17 | It is mandatory to keep the list of authors in this code.
18 | Please add your name if you improve/extend something
19 | 2017 ChrisMicro
20 | *************************************************************************************
21 | */
22 |
23 | #include "BufferPlayer.h"
24 |
25 | #define SAMPLINGFREQUENCY 16000
26 | #define WAVEBUFFERLENGTH SAMPLINGFREQUENCY * 1 // 1 seconds
27 |
28 | BufferPlayer Player;
29 |
30 | int16_t wave_i16[WAVEBUFFERLENGTH];
31 |
32 | void setup()
33 | {
34 | Player.begin( SAMPLINGFREQUENCY );
35 |
36 | float frequency = 440;
37 | float amplitude = 100;
38 | // calculate buffer values for test tone
39 | for ( int n = 0; n < WAVEBUFFERLENGTH; n++ ) wave_i16[n] = ( sin( 2 * PI * frequency / SAMPLINGFREQUENCY * n )) * 0x7FFF;
40 | }
41 |
42 | void loop()
43 | {
44 | Player.setVolume(100);
45 | Player.playBuffer(wave_i16 , WAVEBUFFERLENGTH);
46 |
47 | Player.setVolume(50);
48 | Player.playBuffer(wave_i16 , WAVEBUFFERLENGTH);
49 |
50 | }
51 |
--------------------------------------------------------------------------------
/examples/AudioBufferPlayer_sineWave/BufferPlayer.cpp:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Blocking buffer player using the
4 | CS43L22 codec class for Arduino STM32GENERIC
5 |
6 | *************************************************************************************
7 |
8 | This program is free software; you can redistribute it and/or modify
9 | it under the terms of the GNU General Public License as published by
10 | the Free Software Foundation; either version 2 of the License, or
11 | (at your option) any later version.
12 |
13 | ********************************** list of outhors **********************************
14 | v0.1 2.Mai.2017 C. ChrisMicro initial version
15 |
16 | It is mandatory to keep the list of authors in this code.
17 | Please add your name if you improve/extend something
18 | 2017 ChrisMicro
19 | *************************************************************************************
20 | */
21 | #include "Arduino.h"
22 | #include "BufferPlayer.h"
23 | #include "CS43L22_STM32.h"
24 | #include "I2S.h"
25 |
26 | I2SClass I2S(SPI3, PC12 /*sd*/ , PA4 /*ws*/, PC10 /*ck*/, PC7/* MCK*/); // setup for STM32F4 Discovery, check your board schematic
27 |
28 | CS43L22_STM32 Codec;
29 |
30 | #define AUDIOCODEC_CS PD4
31 |
32 | BufferPlayer::BufferPlayer()
33 | {
34 |
35 | };
36 |
37 | void BufferPlayer::begin(uint32_t samplingFrequency_Hz)
38 | {
39 | SamplingFrequency=samplingFrequency_Hz;
40 |
41 | pinMode(AUDIOCODEC_CS, OUTPUT); // the chip select pin of the codec needs to be enabled
42 |
43 | // digitalWrite(AUDIOCODEC_CS, HIGH);
44 | // start I2S
45 | // I2S will also produce MCK for the codec of aroung 12Mhz
46 | // without MCK the CS43L22 is not working
47 | I2S.begin(I2S_PHILIPS_MODE, samplingFrequency_Hz, 16);
48 |
49 | digitalWrite(AUDIOCODEC_CS, HIGH); // enable codec
50 | Codec.begin();
51 | }
52 |
53 | #define DACZEROAMPLITUDE 0x4000
54 | int Amplitude = 100;
55 |
56 | // unsigned byte buffer player
57 | void BufferPlayer::playBuffer(const uint8_t *table, uint32_t tableLength, float maxDuration_sec, float speedFactor)
58 | {
59 | uint32_t duration_ms = maxDuration_sec * 1000;
60 | float index = 0;
61 |
62 | uint32_t startTime = millis();
63 | while (millis() - startTime < duration_ms)
64 | {
65 | if (index < tableLength)
66 | {
67 | int dacValue = DACZEROAMPLITUDE + ((int)table[(int)index] - 128) * Amplitude;
68 | I2S.write(dacValue); // left channel
69 | I2S.write(dacValue); // right channel
70 | index+=speedFactor;
71 | } else
72 | {
73 | I2S.write(DACZEROAMPLITUDE);
74 | I2S.write(DACZEROAMPLITUDE);
75 | }
76 | }
77 | }
78 | void BufferPlayer::playBuffer(const uint8_t *table, uint32_t tableLength)
79 | {
80 | float maxDuration_sec = tableLength / SamplingFrequency;
81 | float speedFactor = 1;
82 | playBuffer(table, tableLength, maxDuration_sec, speedFactor );
83 | }
84 |
85 | // 16 bit buffer player
86 | // table values: full scale range -32768..+32767
87 | void BufferPlayer::playBuffer(int16_t *table, uint32_t tableLength, float maxDuration_sec, float speedFactor)
88 | {
89 | uint32_t duration_ms = maxDuration_sec * 1000;
90 | float index = 0;
91 |
92 | uint32_t startTime = millis();
93 | while (millis() - startTime < duration_ms)
94 | {
95 | if (index < tableLength)
96 | {
97 |
98 | uint16_t dacValue = (int32_t ) DACZEROAMPLITUDE*2 + table[(int)index];
99 | dacValue=dacValue>>1; // for unknown reaons the DAC goes only from 0..0x7FFF
100 |
101 | I2S.write(dacValue); // left channel
102 | I2S.write(dacValue); // right channel
103 | index += speedFactor;
104 | } else
105 | {
106 | I2S.write(DACZEROAMPLITUDE);
107 | I2S.write(DACZEROAMPLITUDE);
108 | }
109 | }
110 |
111 | }
112 |
113 | void BufferPlayer::playBuffer(int16_t *table, uint32_t tableLength)
114 | {
115 | float maxDuration_sec = tableLength / SamplingFrequency;
116 | float speedFactor = 1;
117 | playBuffer(table, tableLength, maxDuration_sec, speedFactor );
118 | }
119 |
120 |
121 | void BufferPlayer::end()
122 | {
123 | digitalWrite(AUDIOCODEC_CS, LOW); // disable codec, enough noise, stop it !!
124 | }
125 |
126 | void BufferPlayer::setVolume(uint8_t vol)
127 | {
128 | Codec.setVolume(vol);
129 | }
130 |
131 |
--------------------------------------------------------------------------------
/examples/AudioBufferPlayer_sineWave/BufferPlayer.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Blocking buffer player using the
4 | CS43L22 codec class for Arduino STM32GENERIC
5 |
6 | *************************************************************************************
7 |
8 | This program is free software; you can redistribute it and/or modify
9 | it under the terms of the GNU General Public License as published by
10 | the Free Software Foundation; either version 2 of the License, or
11 | (at your option) any later version.
12 |
13 | ********************************** list of outhors **********************************
14 | v0.1 2.Mai.2017 C. ChrisMicro initial version
15 |
16 | It is mandatory to keep the list of authors in this code.
17 | Please add your name if you improve/extend something
18 | 2017 ChrisMicro
19 | *************************************************************************************
20 | */
21 | #include
22 |
23 | typedef struct {
24 | uint8_t * signalBuffer;
25 | uint32_t signalBufferLength;
26 | } SampleBuffer_t;
27 |
28 | class BufferPlayer
29 | {
30 | public:
31 | BufferPlayer();
32 | void begin(uint32_t samplingFrequency_Hz);
33 | void playBuffer(const uint8_t *table, uint32_t tableLength, float duration_sec, float speedFactor);
34 | void playBuffer(const uint8_t *table, uint32_t tableLength);
35 | void playBuffer(int16_t *table, uint32_t tableLength, float duration_sec, float speedFactor);
36 | void playBuffer(int16_t *table, uint32_t tableLength);
37 | void end();
38 | void setVolume(uint8_t vol);
39 |
40 | private:
41 | uint32_t SamplingFrequency;
42 |
43 | };
44 |
--------------------------------------------------------------------------------
/examples/AudioBufferPlayer_sineWave/CS43L22_STM32.cpp:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | CS43L22 codec class for Arduino STM32GENERIC
4 |
5 | *************************************************************************************
6 |
7 | This program is free software; you can redistribute it and/or modify
8 | it under the terms of the GNU General Public License as published by
9 | the Free Software Foundation; either version 2 of the License, or
10 | (at your option) any later version.
11 |
12 | ********************************** list of outhors **********************************
13 | v0.1 2.Mai.2017 C. ChrisMicro initial version
14 |
15 | It is mandatory to keep the list of authors in this code.
16 | Please add your name if you improve/extend something
17 | 2017 ChrisMicro
18 | *************************************************************************************
19 | */
20 |
21 | // The CS43L22 is a Low Power, Stereo DAC w/Headphone & Speaker Amps
22 | //
23 | // related links:
24 | // data sheet CS43L22: https://d3uzseaevmutz1.cloudfront.net/pubs/proDatasheet/CS43L22_F2.pdf
25 | // https://github.com/abhishek-kakkar/STM32F4Player/blob/master/STM32F4_Discovery_demo/codec_CS43L22.c
26 | // https://www.mikrocontroller.net/topic/413574#4814689
27 |
28 | #include "CS43L22_STM32.h"
29 |
30 | CS43L22_STM32::CS43L22_STM32()
31 | {
32 | // before calling this class
33 | // remember for correct working codec:
34 | // 1. enable code clock ( usually done by I2S driver )
35 | // enable codec chip select line
36 | }
37 |
38 | #define CODEC_ADDR 0x4A // i2c address ( 2*0x4A=0x94)
39 |
40 | void codec_writeReg(unsigned char reg, unsigned char data)
41 | {
42 | uint8_t error;
43 | Wire.beginTransmission(CODEC_ADDR);
44 | Wire.write(reg);
45 | Wire.write(data);
46 | error = Wire.endTransmission();
47 | }
48 |
49 | // codec setup from
50 | // https://github.com/mubase/STM32F4-Arduino-core/blob/master/cores/maple/libmaple/stm32f4codec/codec.h
51 | // TBD: to be refactured
52 | void codec_reg_setup(void)
53 | {
54 | Wire.begin();
55 |
56 | codec_writeReg(0x02, 0x01); // power save registers -> all on
57 | codec_writeReg(0x00, 0x99);
58 | codec_writeReg(0x47, 0x80); //inits
59 | codec_writeReg(0x0d, 0x03); // playback ctrl
60 | codec_writeReg(0x32, (1 << 7)); // vol
61 | codec_writeReg(0x32, (0 << 7)); // vol
62 | codec_writeReg(0x00, 0x00); // inits
63 | codec_writeReg(0x04, 0xaf); // power ctrl
64 | codec_writeReg(0x0d, 0x70);
65 | codec_writeReg(0x05, 0x81); // clocking: auto speed is determined by the MCLK/LRCK ratio.
66 | codec_writeReg(0x06, 0x07); // DAC interface format, I²S 16 bit
67 | codec_writeReg(0x0a, 0x00);
68 | codec_writeReg(0x27, 0x00);
69 | codec_writeReg(0x80, 0x0a); // both channels on
70 | codec_writeReg(0x1f, 0x0f);
71 | codec_writeReg(0x02, 0x9e);
72 |
73 | }
74 |
75 | void CS43L22_STM32::begin()
76 | {
77 | Wire.begin();
78 | codec_reg_setup();
79 | }
80 |
81 | void CS43L22_STM32::setVolume(uint8_t volumeValue)
82 | {
83 | int8_t vol;
84 | if(volumeValue>100)volumeValue=100;
85 | //strange mapping, see datasheet
86 | //vol=25; // -102 dB
87 | //vol=24 // +12dB
88 |
89 | vol=-90+(float)80*volumeValue/100;
90 |
91 | codec_writeReg(0x20, vol);
92 | codec_writeReg(0x21, vol);
93 | }
94 |
--------------------------------------------------------------------------------
/examples/AudioBufferPlayer_sineWave/CS43L22_STM32.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | CS43L22 codec class for Arduino STM32GENERIC
4 |
5 |
6 | *************************************************************************************
7 |
8 | This program is free software; you can redistribute it and/or modify
9 | it under the terms of the GNU General Public License as published by
10 | the Free Software Foundation; either version 2 of the License, or
11 | (at your option) any later version.
12 |
13 | ********************************** list of outhors **********************************
14 | v0.1 2.Mai.2017 C. ChrisMicro initial version
15 |
16 | It is mandatory to keep the list of authors in this code.
17 | Please add your name if you improve/extend something
18 | 2017 ChrisMicro
19 | *************************************************************************************
20 | */
21 | #include
22 |
23 | class CS43L22_STM32
24 | {
25 | public:
26 | CS43L22_STM32();
27 | void begin();
28 | void setVolume(uint8_t vol);
29 | };
30 |
31 |
--------------------------------------------------------------------------------
/examples/LIS3DSx_Accelerometer/LIS3DSx.cpp:
--------------------------------------------------------------------------------
1 | /*
2 | MEMS driver
3 |
4 | accelerometer: LIS302DL or LIS3DSH
5 |
6 | MEMS digital output motion sensor:
7 | ultra-low-power high-performance three-axis "nano" accelerometer
8 |
9 | *************************************************************************************
10 |
11 | This program is free software; you can redistribute it and/or modify
12 | it under the terms of the GNU General Public License as published by
13 | the Free Software Foundation; either version 2 of the License, or
14 | (at your option) any later version.
15 |
16 | ********************************** list of outhors **********************************
17 | v0.1 2.Mai.2017 C. ChrisMicro initial version
18 |
19 | It is mandatory to keep the list of authors in this code.
20 | Please add your name if you improve/extend something
21 | 2017 ChrisMicro
22 | *************************************************************************************
23 | */
24 | #include
25 | #include
26 |
27 | #include "LIS3DSx.h"
28 |
29 | #define SERIALINTERFACE SerialUSB
30 |
31 | #define CS PE3
32 |
33 | void accelerometer_SPI_select()
34 | {
35 | digitalWrite(CS, LOW); // 0=SPI communication mode, 1=SPI IDLE MODE
36 | delayMicroseconds(50);
37 | }
38 |
39 | void accelerometer_SPI_release()
40 | {
41 | digitalWrite(CS, HIGH);
42 | delayMicroseconds(50);
43 | }
44 |
45 | #define READREGISTERCOMMAND 0x80
46 | uint8_t spiRead(uint8_t registerAddress)
47 | {
48 | uint8_t r;
49 |
50 | accelerometer_SPI_select();
51 | SPI.transfer( registerAddress | READREGISTERCOMMAND );
52 | delayMicroseconds(500);
53 | r = SPI.transfer(0); // dummy write, data read
54 | delayMicroseconds(500);
55 | accelerometer_SPI_release();
56 |
57 | return r;
58 | }
59 |
60 | void LIS3DSx::begin()
61 | {
62 | // configure SPI
63 | pinMode(CS, OUTPUT);
64 |
65 | SPI.begin();
66 | SPI.setDataMode(SPI_MODE3);
67 | SPI.setBitOrder(MSBFIRST);
68 |
69 | // configure sensor
70 | accelerometer_SPI_select();
71 | SPI.transfer(0x20); // CTRL4 ODR register
72 | delay(10);
73 | SPI.transfer(0x47); // 25 Hz update, enable x,y,z
74 | accelerometer_SPI_release();
75 | }
76 |
77 | int16_t LIS3DSx::getX()
78 | {
79 | int32_t a,aa;
80 | int16_t ag;
81 |
82 | a= spiRead ( 0x28 );
83 | aa = spiRead( 0x29 );
84 |
85 | return (a + (aa << 8));
86 | }
87 |
88 | int16_t LIS3DSx::getY()
89 | {
90 | int32_t a,aa;
91 | int16_t ag;
92 |
93 | a= spiRead ( 0x2A );
94 | aa = spiRead( 0x2B );
95 |
96 | return (a + (aa << 8));
97 |
98 | }
99 |
100 | int16_t LIS3DSx::getZ()
101 | {
102 | int32_t a,aa;
103 | int16_t ag;
104 |
105 | a= spiRead ( 0x2C );
106 | aa = spiRead( 0x2D );
107 |
108 | return (a + (aa << 8));
109 | }
110 |
111 | #define ONE_G 16384
112 |
113 | float LIS3DSx::getX_g()
114 | {
115 | return getX()/(float)ONE_G;
116 | }
117 |
118 | float LIS3DSx::getY_g()
119 | {
120 | return getY()/(float)ONE_G;
121 | }
122 |
123 | float LIS3DSx::getZ_g()
124 | {
125 | return getZ()/(float)ONE_G;
126 | }
127 |
128 | float LIS3DSx::absolute_g()
129 | {
130 | float g;
131 | g=sqrt(getX_g()*getX_g()+getY_g()*getY_g()+getZ_g()*getZ_g());
132 | return g;
133 | }
134 |
135 |
136 | uint8_t LIS3DSx::getChipVersion()
137 | {
138 | uint8_t whoAmI=spiRead(0x0F);
139 | return whoAmI;
140 | }
141 |
142 |
143 |
--------------------------------------------------------------------------------
/examples/LIS3DSx_Accelerometer/LIS3DSx.h:
--------------------------------------------------------------------------------
1 | #include
2 |
3 | class LIS3DSx
4 | {
5 | public:
6 | void begin();
7 | uint8_t getChipVersion();
8 | int16_t getX();
9 | int16_t getY();
10 | int16_t getZ();
11 | float getX_g();
12 | float getY_g();
13 | float getZ_g();
14 | float absolute_g();
15 | };
16 |
17 |
--------------------------------------------------------------------------------
/examples/LIS3DSx_Accelerometer/LIS3DSx_Accelerometer.ino:
--------------------------------------------------------------------------------
1 | /*
2 | read accelaration sensor and print serial
3 |
4 | Framework used: Arduino compatiple STM32GENERIC
5 | Hardware: STM32F4 Discovery
6 | accelerometer: LIS302DL or LIS3DSH
7 | ( depends on the verison of the STM32F4 Discovery board )
8 |
9 | *************************************************************************************
10 |
11 | This program is free software; you can redistribute it and/or modify
12 | it under the terms of the GNU General Public License as published by
13 | the Free Software Foundation; either version 2 of the License, or
14 | (at your option) any later version.
15 |
16 | ********************************** list of outhors **********************************
17 | v0.1 2.Mai.2017 C. ChrisMicro initial version
18 |
19 | It is mandatory to keep the list of authors in this code.
20 | Please add your name if you improve/extend something
21 | 2017 ChrisMicro
22 | *************************************************************************************
23 | */
24 |
25 | #include "LIS3DSx.h"
26 |
27 | #define SERIALINTERFACE SerialUSB
28 |
29 | LIS3DSx Accelerometer;
30 |
31 | void setup()
32 | {
33 | SERIALINTERFACE.begin(9600);
34 |
35 | delay(1000);
36 |
37 | SERIALINTERFACE.println("\n accelerometer");
38 |
39 | // print sensor informatiion
40 | Accelerometer.begin();
41 |
42 | uint8_t whoAmI = Accelerometer.getChipVersion();
43 | SERIALINTERFACE.print("WHO AM I register: "); SERIALINTERFACE.print( whoAmI , HEX);
44 |
45 | if (whoAmI == 0x3B) SERIALINTERFACE.println(" LIS3DSL sensor detected ");
46 | if (whoAmI == 0x3F) SERIALINTERFACE.println(" LIS3DSH sensor detected ");
47 |
48 | SERIALINTERFACE.println("");
49 | }
50 |
51 | void loop()
52 | {
53 | SERIALINTERFACE.print(" X: "); SERIALINTERFACE.print ( Accelerometer.getX_g() );
54 | SERIALINTERFACE.print(" Y: "); SERIALINTERFACE.print ( Accelerometer.getY_g() );
55 | SERIALINTERFACE.print(" Z: "); SERIALINTERFACE.println( Accelerometer.getZ_g() );
56 |
57 | SERIALINTERFACE.print(" abosolute acceleration: "); SERIALINTERFACE.println( Accelerometer.absolute_g() );
58 |
59 | delay(500);
60 |
61 | }
62 |
63 |
64 |
65 |
--------------------------------------------------------------------------------
/examples/MicrophonePlayBack/BufferPlayer.cpp:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Blocking buffer player using the
4 | CS43L22 codec class for Arduino STM32GENERIC
5 |
6 | *************************************************************************************
7 |
8 | This program is free software; you can redistribute it and/or modify
9 | it under the terms of the GNU General Public License as published by
10 | the Free Software Foundation; either version 2 of the License, or
11 | (at your option) any later version.
12 |
13 | ********************************** list of outhors **********************************
14 | v0.1 2.Mai.2017 C. ChrisMicro initial version
15 |
16 | It is mandatory to keep the list of authors in this code.
17 | Please add your name if you improve/extend something
18 | 2017 ChrisMicro
19 | *************************************************************************************
20 | */
21 | #include "Arduino.h"
22 | #include "BufferPlayer.h"
23 | #include "CS43L22_STM32.h"
24 | #include "I2S.h"
25 |
26 | I2SClass I2S(SPI3, PC12 /*sd*/ , PA4 /*ws*/, PC10 /*ck*/, PC7/* MCK*/); // setup for STM32F4 Discovery, check your board schematic
27 |
28 | CS43L22_STM32 Codec;
29 |
30 | #define AUDIOCODEC_CS PD4
31 |
32 | BufferPlayer::BufferPlayer()
33 | {
34 |
35 | };
36 |
37 | void BufferPlayer::begin(uint32_t samplingFrequency_Hz)
38 | {
39 | SamplingFrequency=samplingFrequency_Hz;
40 |
41 | pinMode(AUDIOCODEC_CS, OUTPUT); // the chip select pin of the codec needs to be enabled
42 |
43 | // digitalWrite(AUDIOCODEC_CS, HIGH);
44 | // start I2S
45 | // I2S will also produce MCK for the codec of aroung 12Mhz
46 | // without MCK the CS43L22 is not working
47 | I2S.begin(I2S_PHILIPS_MODE, samplingFrequency_Hz, 16);
48 |
49 | digitalWrite(AUDIOCODEC_CS, HIGH); // enable codec
50 | Codec.begin();
51 | }
52 |
53 | #define DACZEROAMPLITUDE 0x4000
54 | int Amplitude = 100;
55 |
56 | // unsigned byte buffer player
57 | void BufferPlayer::playBuffer(const uint8_t *table, uint32_t tableLength, float maxDuration_sec, float speedFactor)
58 | {
59 | uint32_t duration_ms = maxDuration_sec * 1000;
60 | float index = 0;
61 |
62 | uint32_t startTime = millis();
63 | while (millis() - startTime < duration_ms)
64 | {
65 | if (index < tableLength)
66 | {
67 | int dacValue = DACZEROAMPLITUDE + ((int)table[(int)index] - 128) * Amplitude;
68 | I2S.write(dacValue); // left channel
69 | I2S.write(dacValue); // right channel
70 | index+=speedFactor;
71 | } else
72 | {
73 | I2S.write(DACZEROAMPLITUDE);
74 | I2S.write(DACZEROAMPLITUDE);
75 | }
76 | }
77 | }
78 | void BufferPlayer::playBuffer(const uint8_t *table, uint32_t tableLength)
79 | {
80 | float maxDuration_sec = tableLength / SamplingFrequency;
81 | float speedFactor = 1;
82 | playBuffer(table, tableLength, maxDuration_sec, speedFactor );
83 | }
84 |
85 | // 16 bit buffer player
86 | // table values: full scale range -32768..+32767
87 | void BufferPlayer::playBuffer(int16_t *table, uint32_t tableLength, float maxDuration_sec, float speedFactor)
88 | {
89 | uint32_t duration_ms = maxDuration_sec * 1000;
90 | float index = 0;
91 |
92 | uint32_t startTime = millis();
93 | while (millis() - startTime < duration_ms)
94 | {
95 | if (index < tableLength)
96 | {
97 |
98 | uint16_t dacValue = (int32_t ) DACZEROAMPLITUDE*2 + table[(int)index];
99 | dacValue=dacValue>>1; // for unknown reaons the DAC goes only from 0..0x7FFF
100 |
101 | I2S.write(dacValue); // left channel
102 | I2S.write(dacValue); // right channel
103 | index += speedFactor;
104 | } else
105 | {
106 | I2S.write(DACZEROAMPLITUDE);
107 | I2S.write(DACZEROAMPLITUDE);
108 | }
109 | }
110 |
111 | }
112 |
113 | void BufferPlayer::playBuffer(int16_t *table, uint32_t tableLength)
114 | {
115 | float maxDuration_sec = tableLength / SamplingFrequency;
116 | float speedFactor = 1;
117 | playBuffer(table, tableLength, maxDuration_sec, speedFactor );
118 | }
119 |
120 |
121 | void BufferPlayer::end()
122 | {
123 | digitalWrite(AUDIOCODEC_CS, LOW); // disable codec, enough noise, stop it !!
124 | }
125 |
126 | void BufferPlayer::setVolume(uint8_t vol)
127 | {
128 | Codec.setVolume(vol);
129 | }
130 |
131 |
--------------------------------------------------------------------------------
/examples/MicrophonePlayBack/BufferPlayer.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | Blocking buffer player using the
4 | CS43L22 codec class for Arduino STM32GENERIC
5 |
6 | *************************************************************************************
7 |
8 | This program is free software; you can redistribute it and/or modify
9 | it under the terms of the GNU General Public License as published by
10 | the Free Software Foundation; either version 2 of the License, or
11 | (at your option) any later version.
12 |
13 | ********************************** list of outhors **********************************
14 | v0.1 2.Mai.2017 C. ChrisMicro initial version
15 |
16 | It is mandatory to keep the list of authors in this code.
17 | Please add your name if you improve/extend something
18 | 2017 ChrisMicro
19 | *************************************************************************************
20 | */
21 | #include
22 |
23 | typedef struct {
24 | uint8_t * signalBuffer;
25 | uint32_t signalBufferLength;
26 | } SampleBuffer_t;
27 |
28 | class BufferPlayer
29 | {
30 | public:
31 | BufferPlayer();
32 | void begin(uint32_t samplingFrequency_Hz);
33 | void playBuffer(const uint8_t *table, uint32_t tableLength, float duration_sec, float speedFactor);
34 | void playBuffer(const uint8_t *table, uint32_t tableLength);
35 | void playBuffer(int16_t *table, uint32_t tableLength, float duration_sec, float speedFactor);
36 | void playBuffer(int16_t *table, uint32_t tableLength);
37 | void end();
38 | void setVolume(uint8_t vol);
39 |
40 | private:
41 | uint32_t SamplingFrequency;
42 |
43 | };
44 |
--------------------------------------------------------------------------------
/examples/MicrophonePlayBack/CS43L22_STM32.cpp:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | CS43L22 codec class for Arduino STM32GENERIC
4 |
5 | *************************************************************************************
6 |
7 | This program is free software; you can redistribute it and/or modify
8 | it under the terms of the GNU General Public License as published by
9 | the Free Software Foundation; either version 2 of the License, or
10 | (at your option) any later version.
11 |
12 | ********************************** list of outhors **********************************
13 | v0.1 2.Mai.2017 C. ChrisMicro initial version
14 |
15 | It is mandatory to keep the list of authors in this code.
16 | Please add your name if you improve/extend something
17 | 2017 ChrisMicro
18 | *************************************************************************************
19 | */
20 |
21 | // The CS43L22 is a Low Power, Stereo DAC w/Headphone & Speaker Amps
22 | //
23 | // related links:
24 | // data sheet CS43L22: https://d3uzseaevmutz1.cloudfront.net/pubs/proDatasheet/CS43L22_F2.pdf
25 | // https://github.com/abhishek-kakkar/STM32F4Player/blob/master/STM32F4_Discovery_demo/codec_CS43L22.c
26 | // https://www.mikrocontroller.net/topic/413574#4814689
27 |
28 | #include "CS43L22_STM32.h"
29 |
30 | CS43L22_STM32::CS43L22_STM32()
31 | {
32 | // before calling this class
33 | // remember for correct working codec:
34 | // 1. enable code clock ( usually done by I2S driver )
35 | // enable codec chip select line
36 | }
37 |
38 | #define CODEC_ADDR 0x4A // i2c address ( 2*0x4A=0x94)
39 |
40 | void codec_writeReg(unsigned char reg, unsigned char data)
41 | {
42 | uint8_t error;
43 | Wire.beginTransmission(CODEC_ADDR);
44 | Wire.write(reg);
45 | Wire.write(data);
46 | error = Wire.endTransmission();
47 | }
48 |
49 | // codec setup from
50 | // https://github.com/mubase/STM32F4-Arduino-core/blob/master/cores/maple/libmaple/stm32f4codec/codec.h
51 | // TBD: to be refactured
52 | void codec_reg_setup(void)
53 | {
54 | Wire.begin();
55 |
56 | codec_writeReg(0x02, 0x01); // power save registers -> all on
57 | codec_writeReg(0x00, 0x99);
58 | codec_writeReg(0x47, 0x80); //inits
59 | codec_writeReg(0x0d, 0x03); // playback ctrl
60 | codec_writeReg(0x32, (1 << 7)); // vol
61 | codec_writeReg(0x32, (0 << 7)); // vol
62 | codec_writeReg(0x00, 0x00); // inits
63 | codec_writeReg(0x04, 0xaf); // power ctrl
64 | codec_writeReg(0x0d, 0x70);
65 | codec_writeReg(0x05, 0x81); // clocking: auto speed is determined by the MCLK/LRCK ratio.
66 | codec_writeReg(0x06, 0x07); // DAC interface format, I²S 16 bit
67 | codec_writeReg(0x0a, 0x00);
68 | codec_writeReg(0x27, 0x00);
69 | codec_writeReg(0x80, 0x0a); // both channels on
70 | codec_writeReg(0x1f, 0x0f);
71 | codec_writeReg(0x02, 0x9e);
72 |
73 | }
74 |
75 | void CS43L22_STM32::begin()
76 | {
77 | Wire.begin();
78 | codec_reg_setup();
79 | }
80 |
81 | void CS43L22_STM32::setVolume(uint8_t volumeValue)
82 | {
83 | int8_t vol;
84 | if(volumeValue>100)volumeValue=100;
85 | //strange mapping, see datasheet
86 | //vol=25; // -102 dB
87 | //vol=24 // +12dB
88 |
89 | vol=-90+(float)80*volumeValue/100;
90 |
91 | codec_writeReg(0x20, vol);
92 | codec_writeReg(0x21, vol);
93 | }
94 |
--------------------------------------------------------------------------------
/examples/MicrophonePlayBack/CS43L22_STM32.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | CS43L22 codec class for Arduino STM32GENERIC
4 |
5 |
6 | *************************************************************************************
7 |
8 | This program is free software; you can redistribute it and/or modify
9 | it under the terms of the GNU General Public License as published by
10 | the Free Software Foundation; either version 2 of the License, or
11 | (at your option) any later version.
12 |
13 | ********************************** list of outhors **********************************
14 | v0.1 2.Mai.2017 C. ChrisMicro initial version
15 |
16 | It is mandatory to keep the list of authors in this code.
17 | Please add your name if you improve/extend something
18 | 2017 ChrisMicro
19 | *************************************************************************************
20 | */
21 | #include
22 |
23 | class CS43L22_STM32
24 | {
25 | public:
26 | CS43L22_STM32();
27 | void begin();
28 | void setVolume(uint8_t vol);
29 | };
30 |
31 |
--------------------------------------------------------------------------------
/examples/MicrophonePlayBack/Microphone.cpp:
--------------------------------------------------------------------------------
1 | // https://www.theunterminatedstring.com/probing-pdm/
2 | /*
3 |
4 | MP45DT02 ST-MEMS audio sensor omni-directional digital microphone
5 |
6 | Bitbanging driver
7 |
8 | *************************************************************************************
9 |
10 | This program is free software; you can redistribute it and/or modify
11 | it under the terms of the GNU General Public License as published by
12 | the Free Software Foundation; either version 2 of the License, or
13 | (at your option) any later version.
14 |
15 | ********************************** list of outhors **********************************
16 | v0.1 3.Mai.2017 C. ChrisMicro initial, crude implementation. Better filters needed
17 |
18 | It is mandatory to keep the list of authors in this code.
19 | Please add your name if you improve/extend something
20 | 2017 ChrisMicro
21 | *************************************************************************************
22 | */
23 |
24 | #include "Arduino.h"
25 | #include "Microphone.h"
26 |
27 | #define MICROPHON_CLK_INPUT PB10
28 | #define MICROPHON_PDMDATA_OUTPUT PC3
29 |
30 | Microphone::Microphone()
31 | {
32 |
33 | };
34 |
35 | int32_t OldValue;
36 |
37 | uint32_t PDM_BitsPerSample;
38 |
39 | #define AFACTOR 0.9
40 |
41 | #define TESTBUFFERLENGTH 10000
42 |
43 | void multiplyFactor(int16_t *x, uint32_t signalLength, float factor)
44 | {
45 | for (int i = 4; i < signalLength; i++)
46 | {
47 | x[i] = x[i] * factor;
48 | }
49 | }
50 |
51 | void Microphone::record(int16_t *sampleBuffer, uint32_t bufferLength)
52 | {
53 | int32_t FloatingMeanBuffer[256] = {0};
54 | int32_t n, k;
55 | int32_t sample = 0;
56 | uint32_t startTime;
57 | float meanvalue;
58 | int32_t value;
59 | int32_t amplitude = 10;
60 |
61 | int32_t average = 0;
62 | uint32_t index = 0;
63 |
64 | meanvalue = 0;
65 | value = 0;
66 |
67 | startTime = micros();
68 |
69 | // start sampling signal
70 | for (n = 0; n < bufferLength; n++)
71 | {
72 |
73 | for (k = 0; k < PDM_BitsPerSample; k++)
74 | {
75 | digitalWrite(MICROPHON_CLK_INPUT, LOW);
76 | if (digitalRead(MICROPHON_PDMDATA_OUTPUT) == 0) value++;
77 | else value--;
78 | // CIC
79 | average += value;
80 | average -= FloatingMeanBuffer[index];
81 | FloatingMeanBuffer[index] = value;
82 | index++;
83 | index &= 0x3F;
84 |
85 | digitalWrite(MICROPHON_CLK_INPUT, HIGH);
86 | }
87 | // high pass
88 | //sample = value - OldValue;
89 | //OldValue = value;
90 |
91 | meanvalue = AFACTOR * meanvalue + (1 - AFACTOR) * value;
92 | sample = value - meanvalue;
93 |
94 | sampleBuffer[n] = sample;
95 | }
96 |
97 | uint32_t duration_us = micros() - startTime;
98 |
99 | SamplingFrequency = bufferLength / ( (float) duration_us / 1e6 );
100 |
101 | multiplyFactor(sampleBuffer , bufferLength, 20);
102 | }
103 |
104 |
105 | void Microphone::begin(uint32_t samplingFrequency_Hz)
106 | {
107 | pinMode( MICROPHON_CLK_INPUT, OUTPUT );
108 | pinMode( MICROPHON_PDMDATA_OUTPUT, INPUT );
109 |
110 | OldValue = 0;
111 | SamplingFrequency = 0;
112 | PDM_BitsPerSample = 250;
113 |
114 | int16_t testBuffer[TESTBUFFERLENGTH];
115 |
116 | record(testBuffer, TESTBUFFERLENGTH );
117 |
118 | float correctionFactor = SamplingFrequency / samplingFrequency_Hz;
119 | PDM_BitsPerSample = PDM_BitsPerSample * correctionFactor;
120 | }
121 |
122 | uint32_t Microphone::getSamplingFrequency()
123 | {
124 | return SamplingFrequency;
125 | }
126 |
127 |
128 |
129 |
130 |
--------------------------------------------------------------------------------
/examples/MicrophonePlayBack/Microphone.h:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MP45DT02 ST-MEMS audio sensor omni-directional digital microphone
4 |
5 | Bitbanging driver
6 |
7 | *************************************************************************************
8 |
9 | This program is free software; you can redistribute it and/or modify
10 | it under the terms of the GNU General Public License as published by
11 | the Free Software Foundation; either version 2 of the License, or
12 | (at your option) any later version.
13 |
14 | ********************************** list of outhors **********************************
15 | v0.1 3.Mai.2017 C. ChrisMicro initial, crued implementation. Better filters needed
16 |
17 | It is mandatory to keep the list of authors in this code.
18 | Please add your name if you improve/extend something
19 | 2017 ChrisMicro
20 | *************************************************************************************
21 | */
22 | #include
23 |
24 | class Microphone
25 | {
26 | public:
27 | Microphone();
28 | void begin(uint32_t samplingFrequency_Hz);
29 | void record(int16_t *sampleBuffer, uint32_t bufferLength);
30 | uint32_t getSamplingFrequency();
31 |
32 | private:
33 | float SamplingFrequency;
34 |
35 | };
36 |
--------------------------------------------------------------------------------
/examples/MicrophonePlayBack/MicrophonePlayBack.ino:
--------------------------------------------------------------------------------
1 | /*
2 |
3 | MP45DT02 ST-MEMS audio sensor omni-directional digital microphone
4 |
5 | Framework used: Arduino compatiple STM32GENERIC
6 | Hardware: STM32F4 Discovery
7 | codec: CS43L22 Audio DAC
8 | accelerometer: LIS302DL or LIS3DSH
9 | ( depends on the verison of the STM32F4 Discovery board )
10 | MP45DT02 ST-MEMS audio sensor omni-directional digital microphone
11 |
12 | Remark: very preliminary version,
13 | microphone class to be reworked for better sound quality
14 |
15 | *************************************************************************************
16 |
17 | This program is free software; you can redistribute it and/or modify
18 | it under the terms of the GNU General Public License as published by
19 | the Free Software Foundation; either version 2 of the License, or
20 | (at your option) any later version.
21 |
22 | ********************************** list of outhors **********************************
23 | v0.1 3.Mai.2017 C. ChrisMicro initial, crued implementation. Better filters needed
24 |
25 | It is mandatory to keep the list of authors in this code.
26 | Please add your name if you improve/extend something
27 | 2017 ChrisMicro
28 | *************************************************************************************
29 | */
30 |
31 | #include "Microphone.h"
32 | #include "BufferPlayer.h"
33 |
34 | #define SAMPLINGFREQUENCY 16000
35 | #define WAVEBUFFERLENGTH SAMPLINGFREQUENCY * 1 // 1 seconds
36 |
37 | Microphone Mic;
38 | BufferPlayer Speaker;
39 |
40 | int16_t wave_i16[WAVEBUFFERLENGTH]={0};
41 |
42 | void setup()
43 | {
44 | pinMode(LED_BLUE, OUTPUT);
45 | pinMode(LED_GREEN, OUTPUT);
46 |
47 | pinMode(USER_BTN, INPUT);
48 |
49 | Mic.begin(SAMPLINGFREQUENCY);
50 | Speaker.begin( SAMPLINGFREQUENCY );
51 | }
52 |
53 | void loop()
54 | {
55 |
56 | // repeat to play sound
57 | digitalWrite(LED_BLUE, HIGH);
58 |
59 | while (!digitalRead(USER_BTN)) Speaker.playBuffer(wave_i16 , WAVEBUFFERLENGTH);
60 |
61 | digitalWrite(LED_BLUE, LOW);
62 |
63 | // record sound
64 | digitalWrite(LED_GREEN, HIGH);
65 |
66 | Mic.record(wave_i16 , WAVEBUFFERLENGTH);
67 |
68 | digitalWrite(LED_GREEN, LOW);
69 |
70 | }
71 |
--------------------------------------------------------------------------------