As computing becomes more ubiquitous in our objects, designers need to be more aware of how to design meaningful interactions into electronically enhanced objects. At the University of Washington, a class of junior Interaction Design majors is exploring this question. These pages chronicle their efforts.

Wednesday, June 10, 2015

HEKTAR the lamp // Nick Ricci & Naoki Hisamoto


11in x 17 in Poster describing functionality

Follow HEKTAR on Twitter @HektartheLamp

Watch video on https://www.youtube.com/watch?v=kalP5woxf5A&feature=youtu.be

Sprout Final // Maddy Harrison & Ben Schiffler






Tess & Jordan Final





Tess & Jordan chair construction

We first soldered all the wires together, extended some wires, and then cut into the back of our chair to hide the arduino. We then covered the whole chair in nice black fabric. The speaker is close to the top so the person sitting can hear the beep but the aruduino is near the bottom by the light sensor which only shows slightly in the crack between the top and bottom the chair.  The arduino is as discrete and sneaky as possible. Now, this chair looks like any regular office chair that someone would work in, but has the extra beeps of incentive to take breaks!





Wiimote Knolling



For the knolling project I chose to take apart a wiimote. The process of disassembly was a bit trickier than I expected. The wiimote uses screws that have a triangular slot so I had to track down the appropriate screwdriver. Once apart the controller was fairly straightforward. One circuitboard connected to all of the physical buttons. Also on the circuitboard was an accelerometer as well as a bluetooth chip and ir lights. After further research online I found the basic functions of the light sensor/sender and how the wii is able to calculate where you are pointing the wiimote. 

Neopixel Fun

For the timer that controls the length of time that the phone is held down for we wanted to include a visual indicator to show the increasing or decreasing time. After looking at products on adafruit we decided that a neopixel ring combined with a twist knob would be the best combination to show this. 


Hooking up the neopixels and supporting library was quick although learning some of the commands and methods for controlling the individual pixels was more difficult than anticipated. Specifically turning the pixels back off.

Wiring setup for testing. Potentiometer hooked up to the neopixel ring for control.

The following is the code that created the lighting pattern that we settled on. The code makes the lights go from green to red following the rotation of the twist knob.

#include <Adafruit_NeoPixel.h>
#include <avr/power.h>

#define PIN            6

// How many NeoPixels are attached to the Arduino?
#define NUMPIXELS      24

// When we setup the NeoPixel library, we tell it how many pixels, and which pin to use to send signals.
// Note that for older NeoPixel strips you might need to change the third parameter--see the strandtest
// example for more information on possible values.
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

int delayval = 5; // delay for half a second

void setup() {
  
Serial.begin(9600);
  pixels.begin(); // This initializes the NeoPixel library.
}

void loop() {

  // For a set of NeoPixels the first NeoPixel is 0, second is 1, all the way up to the count of pixels minus one.
int sensorValue = analogRead(A0);
 int green = 0;
 int red = 0;
 int pixel = 0;
 pixel = map (sensorValue, 0, 1023, 0, 50);
 red = map (sensorValue, 0, 1023, 0, 50);
 green = map (sensorValue, 0, 1023, 50, 0);
 int something=map(sensorValue,0,1023,0,24);

    // pixels.Color takes RGB values, from 0,0,0 up to 255,255,255
    pixels.clear();
    for (int i=0; i<something; i++){
    pixels.setPixelColor(i , pixels.Color(red, green , 0)); // Moderately bright green color.
    
    pixels.show(); // This sends the updated pixel color to the hardware.
    }
    
    

  
}

CUMULUS Final [Jessica and Gloria]




CUMULUS is a lamp that can detect weather conditions around the world and respond to them by changing the color of its light. Use Culumus to alert you to weather conditions or just enjoy its colorful and playful light effects. 


Soldering Struggles

After a good few weeks of use our $10 soldering iron up and broke. The broken ceramic head made fixing the iron impossible, so a quick order off amazon was needed to get back to soldering. 


For the original phone lifter testing it was apparent that only using 30 degrees of rotation out of the available 180 was wasting important phone lifting power. So after a meeting with Dominic and a discussion of  types of gears, we came up with a more efficient means of lifting phones. Some quick rhino work and a few cuts on the laser cutter and some extra lines of code and we had a gear that lifted the phone to the full height with 180deg of rotation and no more power struggles. 

Diagram of new lifter

Servo testing tower 



Final Poster + Video | Hsuanting + Melinda

Done!

Toaster table will serve your phone when you really need it! Summer and Kyle

Phones are always distracted us now in modern life, and people feel it is very frustrated to go on a date with someone who always get obsessed with their phones. So, my partner and I came up with this idea of toaster table. The toaster table is a table that helps your to avoid bad table behaviors. The wood top has multiple slots that you can put your phones in, then the table will sense the phones and lower them underneath the table. Then, you can set up a time for the table to lift up your phones by rotating the nob on the table, which contains LED lights around. 







Code // Nick Ricci & Naoki Hisamoto

This is the completed code for our project. It took various parts from various places.

/* //~~~~~~~~~~Description~~~~~~~~~~~~//

  Ping))) Sensor
 
   This sketch reads a PING))) ultrasonic rangefinder and returns the
    distance to the closest object in range. To do this, it sends a pulse
    to the sensor to initiate a reading, then listens for a pulse
   to return.  The length of the returning pulse is proportional to
   the distance of the object from the sensor. \

   This distance variable is used to fade the LED proportional to the

   distance of the object.

     
    The circuit:
     * +V connection of the PING))) attached to +5V
     * GND connection of the PING))) attached to ground
     * SIG connection of the PING))) attached to digital pin 7
     * LED connected to pin 9 (PWM)

  //~~~~~~~~~~~~~~~~~~~~~~~~~~~//  
    Created 3 Nov 2008
    by David A. Mellis
    Modified 30 Aug 2011
    by Tom Igoe

    Modified 25 Dec 2011
    by Ritesh Kanjee
    This example code is in the public domain.
 //~~~~~~~~~~~~~~~~~~~~~~~~~~~//

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
 */


// this constant won't change.  It's the pin number
// of the sensor's output:
const int pingPin = 10;
// connected to the base of the transistor
const int transistorPin = 9;  
int focusrelay = 7;
int shutterrelay = 6;
int  fadeValue, fadeValue2 ;


void setup()

  {
      // initialize serial communication:
         Serial.begin(9600);
         pinMode(transistorPin, OUTPUT);
         pinMode(focusrelay, OUTPUT);
         pinMode(shutterrelay, OUTPUT);
         analogWrite(transistorPin, 30);
   }

void loop()
 {

//-------------Get-Distance-----------------------------//
   // establish variables for duration of the ping,
  // and the distance result in inches and centimeters:
   long duration, inches, cm, cm2;

  // The PING))) is triggered by a HIGH pulse of 2 or more microseconds.
   // Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
     pinMode(pingPin, OUTPUT);
     digitalWrite(pingPin, LOW);
     delayMicroseconds(2);
     digitalWrite(pingPin, HIGH);
     delayMicroseconds(5);
     digitalWrite(pingPin, LOW);

  // The same pin is used to read the signal from the PING))): a HIGH
  // pulse whose duration is the time (in microseconds) from the sending
  // of the ping to the reception of its echo off of an object.
     pinMode(pingPin, INPUT);
    duration = pulseIn(pingPin, HIGH);

  // convert the time into a distance
     inches = microsecondsToInches(duration);
     cm = microsecondsToCentimeters(duration);
  //-------------End-Get-Distance----------------------------//


  //-------------Fading-LED------------------------------//
  // If Distance is 90 cm then do the following:
  if (cm==90)  

 {    


  // LED brightens from dimmed state
  for (int brightness = 30; brightness < 255; brightness++) {
      analogWrite(transistorPin, brightness);
      delay(10);
    }
        // Relays triggered to take picture
        digitalWrite(focusrelay, HIGH);  
        delay(200);
        digitalWrite(shutterrelay, HIGH);  
        delay(1000);            
     
    delay(2000);
  // LED returns to dimmed state
  for (int brightness = 255; brightness >= 30; brightness--) {
      analogWrite(transistorPin, brightness);
      delay(10);
    }
         // Relays turn off
         digitalWrite(focusrelay, LOW);  
         digitalWrite(shutterrelay, LOW);  
         delay(1000);            
    delay(2000);
 }
 //If distance is not 90cm then lamp remains in dimmed lighting
 else
 {
   analogWrite(transistorPin, 30);

 }
 //-------------End-Fading-LED-----------------------------//




 //-------------Debugging-------------------------------//
   //For debugging purposes

    Serial.print(inches);
    Serial.print("in, ");
    Serial.print(cm);
    Serial.print("cm");
    Serial.println();
    Serial.print("Centi 2  :");
    Serial.print(  fadeValue2 );

   Serial.println();
//-------------End-Debugging------------------------------//

 
  delay(10);  // Short Delay allows for smoother fading

 }  //End Loop



//-------------Functions-------------------------------//
long microsecondsToInches(long microseconds)
 {
   // According to Parallax's datasheet for the PING))), there are
   // 73.746 microseconds per inch (i.e. sound travels at 1130 feet per
   // second).  This gives the distance travelled by the ping, outbound
   // and return, so we divide by 2 to get the distance of the obstacle.
   // See: http://www.parallax.com/dl/docs/prod/acc/28015-PING-v1.3.pdf
   return microseconds / 74 / 2;
 }

long microsecondsToCentimeters(long microseconds)
 {
   // The speed of sound is 340 m/s or 29 microseconds per centimeter.
   // The ping travels out and back, so to find the distance of the
   // object we take half of the distance travelled.
   return microseconds / 29 / 2;
 }

 //------------End-Functions-------------------------------//



//End Of Program

Stepper Testing

Looking into different ways to create the phone lifting mechanism we wanted to test different types of motors. Having successfully tested with a servo and noticing the reduced lifting power of the mini servo we purchased a breakout board for running a more powerful stepper motor. Connecting and soldering the breakout was a breeze and with an expansive library for controlling the motor we were up and rotating. 
Breakout setup.



Doing further testing we found that while more powerful the stepper was more difficult programing the type of phone lifting/dropping we were hoping for. Next step: purchasing a full size servo!

Weather Lamp Production Cost [Jessica and Gloria]

Weather Lamp Production Cost (excluding laptop)


Arduino Uno Starter Kit (Includes Instruction Book) on Amazon  $54.99 

Polyester Filling from Blicks

Nulsom Neopixel Strips x2 from Amazon $15.90

Hot Glue Gun from UW Bookstore $10

Plastic Base from Dollar Tree  $1

Total: 

Total (excluding the Arduino): $36.90

Initial Plan // Nick Ricci & Naoki Hisamoto

This is the layout of our initial plan.
1. Shape Recognition from the Raspberry Pi
2. Arduino is triggered to brighten lights and take picture.
3. Eye-Fi card uploads the picture to the Raspberry Pi.
4. Raspberry Pi sends picture to social media using IFTTT.

However, our plans drastically changed as the Raspberry Pi became a problem for us. We replaced the shape recognition with an Ultrasonic Range Sensor and instead of the pictures getting sent from the Eye-Fi card to the Raspberry Pi, it is sent to a computer which sends it to social media using IFTTT.

Weather Lamp Final Code [Jessica and Gloria]

Arduino Not Reading the Serial Monitor Issue 



I encountered the problem where delays interfered with reading the serial output (the Arduino wouldn't register a button press while the program was delayed). I tried to write the neopixel light code without delays (similar to the blink without delay tutorial) but I couldn't figure it out so that we could still get the desired effect/lighting that we wanted. My solution was to just make the Arduino read the serial input every so often in the neopixel display functions.  It's definitely not the best/most efficient code, but at least it's working :)

Processing 

import processing.serial.*;
import com.onformative.yahooweather.*;

Serial myPort;  // Create object from Serial class

YahooWeather weather;
int updateIntervallMillis = 30000; 

void setup() 
{
   
  String portName = Serial.list()[2]; //change the 0 to a 1 or 2 etc. to match your port
  myPort = new Serial(this, portName, 9600);
  
  size(700, 300);
  fill(0);
  textFont(createFont("Arial", 14));
  // 2442047 = the WOEID of Berlin
  // use this site to find out about your WOEID : http://sigizmund.info/woeidinfo/
  weather = new YahooWeather(this, 12798949, "c", updateIntervallMillis);
}

void draw() {
  weather.update();
  background (255);
  text("City: "+weather.getCityName()+"; Region: "+weather.getRegionName()+"; Country: "+weather.getCountryName()+"; Last updated: "+weather.getLastUpdated(), 20, 20);
  text("Lon: "+weather.getLongitude()+" Lat: "+weather.getLatitude(), 20, 40);
  text( "Weather Condition:" + weather.getWeatherCondition(), 20, 60);
  text( "Condition Code:" + weather.getWeatherConditionCode(), 20, 80);  
  //text("WindTemp: "+weather.getWindTemperature()+" WindSpeed: "+weather.getWindSpeed()+" WindDirection: "+weather.getWindDirection(), 20, 60);
  //text("Humidity: "+weather.getHumidity()+" visibility: "+weather.getVisibleDistance()+" pressure: "+weather.getPressure()+" rising: "+weather.getRising(), 20, 80);
  //text("Sunrise: "+weather.getSunrise()+" sunset: "+weather.getSunset(), 20, 100);
  
   String condition = weather.getWeatherCondition();
    println(condition);
   
   //if (condition.equals("Fair"))
   
   if (condition.contains("Fai")){
   myPort.write('1');      
   println("1");   //send a 1
   }
   
   else if(condition.contains("Cloudy")){
     myPort.write('3');
     println("3");
   }
   
   else if(condition.contains ("Rain") ||condition.contains("Storms")){
     myPort.write('2');
     println("2"); 
   }
   
   else if (key == 'p') {
     myPort.write('5');
     println("off");
   } 
}
   
 public void keyPressed() {
  if (key == 's') {
    weather.setWOEID(12798949); //seattle
  }
  if (key == 'r') {
    weather.setWOEID(44418); //London
  }
  if (key == 'm') {
    weather.setWOEID (90897019); //Mawsynram
  }
  if (key == 'h'){
    weather.setWOEID (2423945); //Honolulu
  }
  if (key == 'd') {
    weather.setWOEID (23509346); //Death Valley
  }
  if (key == 'n'){
    weather.setWOEID (2459115); //snow Solden
  }
}
   


Arduino

#include <NS_Rainbow.h>
#include <Adafruit_NeoPixel.h>
#include <EEPROM.h> //random gen for TWINKLE

#define PIN 9
#define N_CELL 16 
#define PIXEL 60 //for adafruit 

Adafruit_NeoPixel strip = Adafruit_NeoPixel(PIXEL, PIN, NEO_GRB + NEO_KHZ800);
NS_Rainbow ns_stick = NS_Rainbow(N_CELL,PIN);

byte flag_a = 1, flag_b = 0; //FOR TWINKLE
unsigned int cnt = 0, seed = 0;  // seed: used to initialize random number generator
const unsigned int maxCycle = 1200;  // go to next state when cnt >= maxCycle

 char val; // Data received from the serial port
 //int ledPin = 13; // Set the pin to digital I/O 13
  int ledPin = 9; 
  boolean flag = true; 
  int time = millis();

void setup() {
   //pinMode(ledPin, OUTPUT); // Set pin as OUTPUT
   Serial.begin(9600); // Start serial communication at 9600 bps
   ns_stick.begin();
   ns_stick.setBrightness(255);
 }
  


void loop() {
  
 // digitalWrite(ledPin, LOW);
  // if (Serial.available()) 
   //{ // If data is available to read,
   ns_stick.setBrightness(255);
    
     Serial.read();
     val = Serial.read(); // read it and store it in val
   
   if (val == '1') {              //SUNNY WEATHER 
     //digitalWrite(ledPin, HIGH); // turn the LED on
     //ns_stick.setBrightness(255);
     rainbowfade(); //Gets stuck
     Serial.read();
   } else if (val == '2') {        //rainy Weather 
     raintwinkle();
     Serial.read();
   } else if (val == '3'){ //cloudy
     adafade();
     Serial.read();
   } else if (val == '5'){
    black();
     Serial.read();
   }
     
   
   //delay(10); // Wait 10 milliseconds for next reading
   //Serial.flush();
}

void rainbowfade() {    //Sunny Weather
  for(int i=0; i<2; i++) {
    rainbow(30);    // interval: 30ms
    Serial.read();
  } 
}
  
  
void rainbow(uint16_t interval) {    //Sunnt Weather pt.2
  Serial.read();
  uint16_t n = ns_stick.numCells();
  for(uint16_t j=0; j<255; j++) {  // one cycle j2 used to be 255
    Serial.read();
    for(uint16_t i=0; i<n; i++) {
      Serial.read();
      byte r_pos = (((i<<8) -  i) / n + j) % 0xFF;
      byte sect = (r_pos / 0x55) % 0x03, pos = (r_pos % 0x55) * 0x03;
      Serial.read();
  
      switch(sect) {
      case 0: 
        Serial.read();
        ns_stick.setColor(i,ns_stick.RGBtoColor(0xFF - pos, pos, 0x00)); break;
      case 1: 
        Serial.read();
        ns_stick.setColor(i,ns_stick.RGBtoColor(0x00, 0xFF - pos, pos)); break;
      case 2:
        Serial.read();
        ns_stick.setColor(i,ns_stick.RGBtoColor(pos, 0x00, 0xFF - pos)); break; 
      }  
      Serial.read();
    }
    ns_stick.show();
    delay(interval);
    Serial.read();
    
    //if (val !== 1) {
    //break;  
    //}
   }
}

void blue() {        //Stays on color (blue)
   for (int i=0; i<N_CELL; i++){
    ns_stick.setColor(i, 6 , 101, 196);
    ns_stick.show();
    Serial.read();
   }
}
 void bluefade (uint16_t interval) {
   uint16_t n = ns_stick.numCells();
  for(uint16_t j=0; j<255; j++) {  // one cycle j2 used to be 255
    for(uint16_t i=0; i<n; i++) {
      byte r_pos = (((i<<8) -  i) / n + j) % 0xFF;
      byte sect = (r_pos / 0x55) % 0x03, pos = (r_pos % 0x55) * 0x03;
  
      switch(sect) {
      case 0: 
        ns_stick.setColor(i,ns_stick.RGBtoColor(0xFF - pos, pos, 0x00)); break;
      case 1: 
        ns_stick.setColor(i,ns_stick.RGBtoColor(0x00, 0xFF - pos, pos)); break;
      case 2:
        ns_stick.setColor(i,ns_stick.RGBtoColor(pos, 0x00, 0xFF - pos)); break;
      }  
    }
    ns_stick.show();
    delay(interval);
    Serial.read();  
}
 }
void adafade () {    //Cloudy Weather
  int R = 0;
  int G = 0;
  int B = 0;
  int finCount=5;
  int foutCount=5;
  int Rset = 125;
  int Gset = 125;
  int Bset = 125;
  int waitT = 5;
  //Fade in
  while(1){ //using an inf loop to be more custom.
  //Protect the strand from higher then 255 values
  if(R>255 || G>255 || B>255) { break; } //DO NOT DELETE OR ALTER THIS LINE.
    //break the inf loop if the color is higher then what its set at.
    if (R>Rset+1 && G>Gset+1 && B>Bset+1)  { 
      //ReSet the RGB to set values. 
      R=Rset;
      G=Gset;
      B=Bset;
      break; 
    } 
    //update the strip
    for(int i=0; i<strip.numPixels(); i++) {
      strip.setPixelColor(i, strip.Color(R, G, B));
      strip.show();
      delay(0);
    }
    //increase by the set amount
    R=R+finCount;
    G=G+finCount;
    B=B+finCount;
    delay(waitT);
  }
  //Fade Out
  while(1){ //using an inf loop to be more custom.
  //Protect the strand from higher then 255 values
  if(R>255 || G>255 || B>255) { break; } //DO NOT DELETE OR ALTER THIS LINE.
  //break the inf loop if the color is off
    if (R<100 && G<100 && B<10)  { 
      //ReSet the RGB to 0 values. 
      R=100;
      G=100;
      B=100;
      break; 
    } 
    //update the strip
    for(int j=0; j<strip.numPixels(); j++) {
      strip.setPixelColor(j, strip.Color(R, G, B));
      strip.show();
      delay(0);
      Serial.read();
    }
    //Decrease by the set amount
    R=R-foutCount;
    G=G-foutCount;
    B=B-foutCount;
    delay(waitT);
  }
}

void raintwinkle() {    //for Rainy Weather
 ns_stick.setBrightness(256);
 for (int i = 0; i < 8; i++) {
    seed += analogRead(i);
    Serial.read();
  }
  seed += EEPROM.read(0);  // get part of the seed from EEPROM
  randomSeed(seed);
  EEPROM.write(0, random(256));
  delay(100);
  ns_stick.begin();
  ns_stick.clear();
  ns_stick.show();
  ns_stick.setBrightness(128);
  unsigned char sect, color;
  
  if(flag_a) {  
    sect = cnt / (maxCycle / 4);
    switch(sect) {
      case 0: 
        twinkleTwinkle(0, 1, 0);  // only white
        break;
      case 1: 
        twinkleTwinkle(0, 2, 0);  // white and red
        break;
      case 2: 
        twinkleTwinkle(1, 2, 0);  // red, and green
        break;
      default: 
        // red, green, blue, cyan, magenta, yellow
        twinkleTwinkle(1, 6, cnt > maxCycle - 100);
    }
    ns_stick.show();
  }
}

void fade(unsigned char *val, unsigned char fadeTime) { //Twinkle pt2
  if (*val) {
    unsigned char subAmt = *val >> fadeTime;
    if (subAmt < 1)
      subAmt = 1;
    *val -= subAmt;
  }
}

void twinkleColorAdjust(unsigned char *color) { //Twinkle pt 3
  if (*color == 255) {
    *color = 254;
  }
  else if (*color % 2) {
    *color = *color * 2 + 1;
  }
  else if (*color > 0) {
    fade(color, 4);
    if (*color % 2) {
      (*color)--;
    }
  }
}


//Twinkle pt4
void twinkleTwinkle(unsigned char minVal, unsigned char numColors, unsigned char noNewBursts) {
  for (unsigned int i = 0; i < N_CELL; i++) {
    uint16_t base = i * 3;
    twinkleColorAdjust((ns_stick.getCellsAddr()+base));
    twinkleColorAdjust((ns_stick.getCellsAddr()+base+2));
    twinkleColorAdjust((ns_stick.getCellsAddr()+base+1));
  }
  
  if (noNewBursts) return;
  
  for (unsigned int i = 0; i < 4; i++) {
    int j = random(N_CELL);
    uint32_t color = ns_stick.getColor(j);
    
    if (color) break;
    
    switch (random(numColors) + minVal) {
      case 0:
        ns_stick.setColor(j, 80, 100, 182);  // white RAINY COLOR
        break;
      case 1:
        ns_stick.setColor(j, 255,   0,   0);  // red
        break;
      case 2:
        ns_stick.setColor(j,   0, 255,   0);  // green
        break;
      case 3:
        ns_stick.setColor(j,   0,   0, 255);  // blue
        break;
      case 4:
        ns_stick.setColor(j, 255, 255,   0);  // yellow
        break;
      case 5:
        ns_stick.setColor(j,   0, 255, 255);  // cyan
        break;
      case 6:
        ns_stick.setColor(j, 255,   0, 255);  // magenta
        break;
      default:
        ns_stick.setColor(j, 255, 255, 255);  // white
    }
  }
}
  
void stick() {
  
   unsigned int   t = 500;   // t: delay time
  Serial.read();
  ns_stick.setColor(0, 255,   0,   0);      // Red
  ns_stick.show();
  Serial.read();
  delay(t);
  ns_stick.setColor(0,   0,   0,   0);      // Black (clear)
  ns_stick.setColor(1, 162,  93,   0);      //   
  ns_stick.show();
  Serial.read();
  delay(t);
  ns_stick.setColor(1,   0,   0,   0);      // Black (clear)
  ns_stick.setColor(2,  66, 189,   0);      // 
  ns_stick.show();
  Serial.read();
  delay(t);
  ns_stick.setColor(2,   0,   0,   0);      // Black (clear)
  ns_stick.setColor(3,   0, 255,  30);      // 
  ns_stick.show();
  Serial.read();
  delay(t);
  ns_stick.setColor(3,   0,   0,   0);      // Black (clear)
  ns_stick.setColor(4,   0, 129, 126);      // 
  ns_stick.show();
  Serial.read();
  delay(t);
  ns_stick.setColor(4,   0,   0,   0);      // Black (clear)
  ns_stick.setColor(5,   0,  33, 222);      // 
  ns_stick.show();
  Serial.read();
  delay(t);
  ns_stick.setColor(5,   0,   0,   0);      // Black (clear)
  ns_stick.setColor(6,  63,   0, 192);      // 
  ns_stick.show();
  Serial.read();
  delay(t);
  ns_stick.setColor(6,   0,   0,   0);      // Black (clear)
  ns_stick.setColor(7, 159,   0,  96);      // 
  ns_stick.show();
  Serial.read();
  delay(t);
  ns_stick.setColor(7,   0,   0,   0);      // Black (clear)
  ns_stick.show();
  //delay(t);
  Serial.read();
}  
      
void black() {        //Stays on black
   for (int i=0; i<N_CELL; i++){
    ns_stick.setColor(i, 0 , 0, 0);
    ns_stick.show();
    Serial.read();
   }
}      
      
      //ns_stick.clear();
    //ns_stick.setBrightness(0);




Soldering // Nick Ricci & Naoki Hisamoto

After having everything working together on the breadboard, we moved everything to a prototype board. We wanted everything soldered together to keep wires and components from unplugging. We spent a significant amount of time soldering to keep the wires and components in the board as well as making connections between the pieces that needed to be connected. We ran through some trouble of having solder connecting pieces that were not supposed to be connected to each other, but things eventually came together. Doing this also allowed us to condense everything so there was no wasted space in between wires and components.


Camera Trigger // Nick Ricci & Naoki Hisamoto

To trigger the camera, we dismantled a previously existing remote shutter trigger. We observed that the trigger works in two phases. First, a connection is made that activates the focus of the camera. The second connection made takes the picture. These connections are made when two metal plates touch. We simply desoldered the wires from the metal plates and replaced them with buttons on a breadboard. However, we wanted to find a way to be able to trigger the camera using the arduino. We discovered relays which were switches activated through electromagnets. We found a diagram online using a transistor to first activate the coil which flips the switch and using a diode as well to prevent any voltage to flow back into the Arduino which is a possible outcome of using relays. By doing this, we are able to code two relays to switch on one after another to simulate what the physical trigger button does.




A Little Party Never Killed Nobody (Study Party Lamp)| Angelica and Emily


The study party lamp is a lamp that recognizes voice commands and will play music and lights to bring productivity and fun to your study parties! From soldering, coding, and constructing the lamp together; it was definitely a fun and rather difficult project. We laser cut circles to build an interior structure that would hold the neopixels and arduino. Then we drilled holes on top of the lamp to connect the support structure. The support was initially held together with fish wires; however we decided to use a more sturdy wire. We ran into problems with the structure of the lamp because it caused echos; therefore we decided to rerecord the voice commands inside of the lamp to ensure that the easy vr shield would pick up the voice commands. Also, we decided to input a beep after the trigger word to alert the user that they can proceed with the next voice command to turn on the lamp.
Watch the video here: https://vimeo.com/130364599 

We decided to make two boards when the lamp is used when studying and partying! 










Everything went wrong//Mae and Chloe







Final Deliverables//Mae and Chloe

Final Code:

#include <PCM.h>

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

const int buttonPin = 2;     // the number of the pushbutton pin
const int ledPin =  13;      // the number of the LED pin
const int inputPin = 3;               // choose the input pin (for PIR sensor)

// variables will change:
int buttonState = 0;         // variable for reading the pushbutton status
int pirState = LOW;             // we start, assuming no motion detected
int val;                    // variable for reading the pin status

void setup() {
  Serial.begin(9600);
  // initialize the LED pin as an output:
  pinMode(ledPin, OUTPUT);    
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);  
}

void loop(){
  // read the state of the pushbutton value:
  buttonState = digitalRead(buttonPin);
  val = digitalRead(inputPin);  // read input value
 
  // check if the pushbutton is pressed.
  // if it is, the buttonState is HIGH:
  if (buttonState == HIGH) {  
    // turn LED on:  
    digitalWrite(ledPin, HIGH);
    startPlayback(sample, sizeof(sample));
  }  else if (val == HIGH) {            // check if the input is HIGH
    digitalWrite(ledPin, HIGH);  // turn LED ON
    if (pirState == LOW) {
      // we have just turned on
      Serial.println("Motion detected!");
      startPlayback(sample, sizeof(sample));
      // We only want to print on the output change, not state
      pirState = HIGH;
    }
  } else {
    digitalWrite(ledPin, LOW); // turn LED OFF
    if (pirState == HIGH){
      // we have just turned of
      Serial.println("Motion ended!");
      // We only want to print on the output change, not state
      pirState = LOW;
    }
  }
}






Final Video:


Final PDF: