Above: The overarching schematic of an STM. A piezoectric disk (or tube) is used to lower an atomically fine electrode tip (tungsten) to within a few nanometers of the surface of the sample material. When a bias voltage is applied to the sample, electrons will quantum tunnel from the electrode tip to the sample material. A tunneling current amplifer then reads this current and sends it back to the control electronics. The scan head scrolls over the surface of the sample, measuring the current, and reading the data over serial into the computer to display the image and perform PI control over the scanner.
Contents
General STM Project Overview
To Top
The general idea is to build an STM (scanneling tunneling electron microscope) that has the ability to see (at a minimum) individual carbon atoms in a graphite lattice. There have been a few people that have done this and posted their machine images and general ideas/process online, but not too many. I'd like to continue where they left off, and really document this build very well so that other people can follow in my footsteps easily. The machine makes use of pretty cheap materials (using a piezoelectric disk instead of a piezoelectric tube, tungsten wire instead of platinum wire, manual calibration of z-axis instead of stepper motor calibraton, etc.), but should still be funcitonal, and for a lot less money (on the order of $200-$300). The goal is to replicate their work and document the process in extreme detail, well hopefully being able to achieve atomic resolution on some HOPG (highly oriented pyrolitic graphite) such as seen in the picture below.
Best Current Scan
Goal Scan
Current Status of STM
To Top
1) What does it do?
2) Who's done it beforehand?
3) What did I design?
4) What materials and components were used?
5) Where did they come from?
6) How much did they cost?
7) What parts and systems were made?
8) What processes were used?
9) What questions were answered?
10) How was it evaluated?
11) What are the implications?
Theory of STM Operation
To Top
The actual in-depth theory of the STM is quite complex, so I will only provide a relatively surface level overview here. I will put some of the more in-depth papers on the theory of Scanning Tunneling Microscopy in the "Additional Resources and Links" section at the end of this site.
In general, a piezoectric disk (or tube) is used to lower an atomically fine electrode tip (tungsten) to within 5-10 Angstroms (0.5-1.0nm) of the surface of the sample material. When a bias voltage is applied to the sample, electrons will quantum tunnel from the electrode tip to the sample materiial. A tunneling current amplifer then reads this current and sends it back to the control electronics. The scan head scrolls over the surface of the sample, measuring the current, and reading the data over serial into the computer to display the image and perform PI control over the scanner. I will cover this all in more depth below.
Image Sources [Left: (http://www.slideshare.net/guestc5e21a/principle-of-a-f-s), Middle: (http://images.slideplayer.com/21/6281817/slides/slide_2.jpg), Right: (http://old.icnanotox.org/tag/stm/)]
Tunneling Theory
To Top
Scanning Tunneling Microscopy (STM) tunneling theory is quite complex, but may be simplified greatly by several approximations. STM involves the tunneling of electrons through vacuum (or in this case, air) from the tip of the STM to the sample. For simplification, this can be considered as tunneling between two metallic electrodes, separated by a vacuum region. The potential in the vacuum region acts as a barrier to electrons. In this simplified form, one can apply the trivial solution of the Schrodinger equation, applied to a rectangular barrier:
In classical physics, if an electron has energy E smaller than the potential of the gap, then there is no way for the electron to cross that potential gap. It would first need to aquire that energy somewhere. This is equivalent to saying that if I coast down a hill of height 10 meters on my bike, then I can make it partially up a hill of 20 meters height using that energy, but not all the way up. I would need to acquire more energy somehow (via peddeling or by starting on a higher hill to have more potential energy) to make it over the 20 meter height hill. However, in quantum mechanics, when an electon has a potential higher than the barier height, it oscillates (sinosoidally), and if it has an energy, E, below the barier height, it can cross that barrier with an exponentially decaying wavefunction. In this way, it only needs a small increase in energy to cross the barrier, which in this case is provided by a small bias voltage. This "quantum tunneling" of electrons across bariers that they shouldn't classically be able to cross provides the basis for all of scanning tunneling microscopy. This is equivalent to the biker somehow disapearing from one side of the hill and reapearing on the other side of the barrier. Now let's look at the math behind this to see if we can isolate the tunneling current as a function of the bias voltage, seperation distance, and potential barrier between the electrode tip and the sample.
For a rectangular barrier, we get a wavefuntion of:
The probability of finding an electron behind the barrier of width d is:
In STM (scanning tunneling microscopy), a bias voltage is applied to the sample such that the tunneling current is caused from the reduced barrier height. This barrier height can be approximated by the average workfunction of the sample and tip materials. The workfuntion of a material is essentially the energy required to fully strip an electron from the surface of that material and place it into vacuum. The work function is different for the surface and bulk of a material, but we are only concerned about the surface here. The work functions for materials have already been worked out experimentally and can be found online.
The critical parameter in this solution is k. One finds that:
k = sqrt[2m(phi - E)/(h2)]
where, phi represents the barrier potential, E is the energy of the particular state, and h corresponds to the reduced Planck constant. In order to simplify the model, phi can be substituted by its average value across the potential barrier; however, generally, phi would not be constant. With this simplification, the system then becomes a rectangular potential barrier, which is actually quite easy to solve.
When the bias voltage is much smaller than the workfunction, the inverse decay length of the electrons can be further simplifed to:
The current is then proportional to the probability of electrons to tunnel through the barrier. From quantum mechanics, we know that the probability of electrons to tunnel is proportional to the wave function squared. Then, the current becomes proportional to:
Finally, by using the definition of the local density of states:
the current can be shown as:
where, d is defined as the separation between the tip and the sample. This result turns out to be the key to the STM operation. If an atomically sharp tip is used, the tunneling current from the first atom of the tip will be exponentially larger than that of the tip atoms which are slightly behind it. Considering general work function values, and substituting this for (phi-E) in the equation for k, one finds that the tunneling current decreases about an order of magnitude for every angstrom of separation, d, between the tip and the sample.
This gives us unprecidented vertical resolution in the scan head. Because the current increases by a factor of 10 for every angstron, we can actually use this to get 0.01 Angstrom accuracy in the vertical scanning with some relatively simple electronics and mechanics.
Finally, if we wanted a more accurate calculation of the current density, we would need to solve Schrodinger's equation for all three regions (before, in, and after the barrier) for a verticaly varying electic field strength, leading us to a transition probability of:
Piezoelectric Tube/Disk Theory
To Top
A piezoceramic tube/disk is a ceramic tube/disk in which the many molecular dipoles, or positive-negative charge separations, are polarized at an elevated temperature by applying a (typically) positive voltage to an outer electrode (inner at ground). The positive outer voltage causes the molecules to partially align themselves with the positive directed outward, resulting in + outer and - inner radial polarization. The ceramic is then cooled to retain this polarization permanently. The resulting ceramic has a net negative charge on the inside surface and net positive charge on the outside surface. When a smaller voltage is then applied with the same polarity as the polarizing voltage, the element experiences a temporary expansion in the polarizing direction (i.e., the tube/disk radius expands) and contraction in the perpendicular direction (i.e., the tube length contracts). It is this contraction that results in the tube/disk bending, thus allowing x-y scanning.
In order to achieve scanning in the X and Y directions, the outer electrode of the disk is sectioned into quarters. The outer electrode is grounded. When a positive voltage is applied to one of the quartered electrodes, that segment of the disk contracts perpendicular to the electric field. This causes the whole disk to bend perpendicular to its axis. It is best to use push-pull voltages on opposite tube quadrants. A single voltage on one quadrant will result in tube bending in x or y, but also some undesirable net motion in the z-direction. Opposite polarity voltages of equal magnitude on opposite quadrants will bend the disk with no net z motion. Orthogonal x-y motion is obtained by controlling the voltages of the two electrode pairs in an additive vector fashion.
Motion of the tube in the Z direction is obtained by applying a voltage to all outside electrodes uniformly. A positive voltage causes a uniform contraction of the tube. A negative voltage causes an expansion. Important Note: Do not try to get increased range by applying an equal and opposite voltage to the inner electrode. This will tend to depolarize the piezo tube. The inner electrode should always be grounded, or at the negative pole, i.e., if your range is +-18 volts, the inner electrode should be held at a steady -18 volts.
Crystallographic conventions are used to describe the orientation of a poled piezoceramic and to characterize the performance parameters of the various piezoceramic meterials. The specific type of performance we are concerned with in a STM is:
da,b where:
d=Displacement, or the ratio of mechanical strain developed to electrical field applied, expressed as 10-12 meters/V, or angstroms/volt.
a=Electrode orientation
b=Direction of induced strain
For a, the only value, for our application is:
3=the dimension from the positive to the negative electrode. In a tube piezoceramic, this is normally the thickness of the tube, as the electrodes normally coat the interior and exterior of the tube.
For b, the only value for our application is:
1=The direction of induced strain (movement) along the tube's length.
d3,1 is the "piezoelectric coefficient" which, when you plug it into the Delta_L formula (below), tells you how much the tube will shorten (due to the negative sign) when a positive voltage is applied. D3,1 = -1.73 angstroms/volt for PZT-5A type ceramic at 293 degrees Kelvin. It characterizes tube length changes with voltage.
This is an important parameter, and it does vary with temperature. The higher the temperature, the more the expansion or contraction. It doesn't vary much for PZT-5A, though: About 11% from 0-100 deg. Celsius, vs. over 30% for PZT-5H.
D3,1 is an approximation.
In the case of my STM, I will be utilizing cheaper piezoelectric disks instead of the more expensive piezoelectric tubes. They are much cheaper, but don't has as much precision as the tubes, and tend to be more vibration sensitive. Speaker piezoelectric disks were bought and an exacto knife was used to but them into 4 quadrants for the x, y, and z movements.
Current Measurement Theory (Transimpedance Amp)
To Top
The most common approach to amplifying the tunneling current is to use something called a transimpedance amplifier [TIA]. This is basically a current-to-voltage converter, most commonly implemented via an op-amp circuit. The TIA can be used to amplify the current output of many different machines, including photo detectors, accelerometers, and a huge variety of sensors.
In this case, I will be using this making this TIA with a special op-amp that has an ultra low input bias current, and using a 100M Ohm feedback resistor to get amplification on the order of 100,000,000. This means a current of 1nA-10nA will read as a voltage of 100mV to 1V, easily readable by a microchip's ADC. However, when using an op-amp with a relatively high input bias current (on the order of the tunneling current - 1nA), that current will also get summed up/amplified, leading to huge errors in the current measurement. I will be using the ADA4530 for this current amplifier circuit, as the ADA4530 has a guaranteed input bias current of only 20fA at room temperature! The designs for this can be seen in the electronics section below, but of special note is the guard ring I implemented around the current input node to reduce unwanted voltage and current noise - the guard ring is held at ground to absorb the noise. Finally, even though the set point for this scope will be around 1nA of current, it is important to have some extra range in order to not damage the preAmp circuit. With the ADA4530 and a 100M Ohm resistor, I can measure up to around 100nA of current before the circuit is overwhelmed.
Noise Damping Theory
To Top
Noise tends to be the primary issue with building homemade STMs, as evidenced by many other makers' problems and advice. There is a multitude of vibrational frequencies that can disrupt the device (from lower frequencies such as building and ground vibrations to higher frequencies from nearby movement and even accoustic vibrations from sound waves such as people talking). These all need to be protected against. The primary sources of noise in the STM are normal vibrations, accoustic vibrations and electromagnetic interference. These are taken care of in my STM through the following means:
1) Vibration Isolation and Dampening (using spring and pendulum system as well as some Viton o-ring inserts)
2) Eddy Current Dampening (using eddy current induced by the vibrations in an aluminum disk and some Neo magnets to prevent movement)
3) Accoustic Dampening (using a frame that fits over the scanner with speaker foam padded on the inside)
4) Electromagnetic Shielding (using some thick sheets of aluminum foil placed behind the speaker foam on the above frame)
The vibration isolation and dampening is taken care of by hanging the entire scan head on some very large springs (approximately 26.3" extended - see bill of materials at the end). The scan head itself is actually quite rigid, so low frequency oscillations only cause the whole STM head to oscillate, not affecting the tip to sample distance and the scan. High frequency oscillations are the issue here. The springs create a pendulum with a resonant frequency of roughly 0.6 Hz (to isolate from horizontal vibrations) and a harmonic oscillator with a resonant frequency of almost exactly 1 Hz (to isolate from vertical vibrations). The entire setup, as well as the spacings between the metal disks, are mounted on Viton O-ring, which proves to be an extremely effective vibration dampener. Finally, there are a series of strong Neodymium magnets mounted under the aluminum disk to provide some extra eddy current dampening effects to dampen vibrations. Everything is connected using extremely fine 40 AWG wire to minimize vibrations transmission throughout the setup.
The accoustic dampening and electromagnetic shielding are carried out by some speaker foam and thick aluminum foil that I'd like to place in a frame around the entire STM. As a preliminary step, I will simply place an aluminum pot, with foam padding on the inside, over the entire scan head setup.
Data Acquisition Theory and Techniques
To Top
***Work in progress***
Data is aquired via a 16 bit LTC ADC located on the main PCB away from the scan head. Since this ADC is located somewhat far away (a few feet) from the preAmp board, I will be taking a differential measurment to compensate for the noise picked up in the wiring. There are also a number of op-amps (LT1469 dual op-amp) for buffering and filtering the preAmp output and ground signals. Finally, these buffered and filtered preAmp signals are fed into the LTC2326-16 16-bit pseudo-differential ADC.
There is also a feedback loop using the Teensy 3.6. The teensy takes the log of the input data (because the tunneling current is exponentially proportional to the tip-sample distance), then looks up that value on an ADC table of 2^16 entries. Finally, that signal is fed into a PI loop, which then outputs the Z-piezo signal.
Spectroscopic Theory and Techniques
To Top
Finally, as a stretch goal, it is actually possibly to use the STM as a spectrometer. Instead of scanning over the surface and measuring the current with the known bias voltgae, we can just keep the tip in the same position and vary the bias voltage. This plot of bias voltage vs tunneling current is unique for different elements, and will give us an exact plot of the different elements in the sample. This type of spectrometry is known as I/V spectrometry, and also as dI/dV spectrometry (because we are measuring the slope of the plot of current with respect to voltage).
***More info on this to come***
Design of the STM
To Top
The design on my STM was influenced by a few other homemeade STM designs out there (which can all be seen in the links at the end). In particular, the vibrational isolation methods were quite similar, as there isn't a whole lot to change there. My eddy current damping system, as well as accoustic dampening are fairly unique however. As far as I can tell, no homemade STM has used electrochemically etched tips either, so we'll see how that turns out. Finally, while my electronic diagrams were influenced by others' designs, the board designs were all done myself. Hopefully they work!
Mechanical Design Overview
To Top
The mechanical design is pretty straight forward. Most of the actual design considerations come from trying to limit the vibrations in the scan head. This is done by hanging the scan head from some long springs to limit both horizontal vibrations (pendulum), and vertical vibrations (spring). The scan head and spring are weighted by some steel disks to provide extra weight to the pendulum and spring to dampen these vibrations. On the bottom of this scan head I put an aluminum disk so that I can have some extra eddy current dampening from some neodymium magnets mounted underneath. This will further limit the vibrations. Finally, these disks, and the entire instrument, are mounted on some Viton rubber gaskets to provide further dampening.
The scan head itself functions via a cheap, common piezoelectric disk. This disk is cut into 4 segments as seen in the photos below. A wire is soldered onto each of these quadrants. By modulating the input to each of these quadrants, we can control the scanning (x-y movement) and depth of scan (z-movement). Additonally, some super fine thread bolts provide some rough z movement to get near to the surface, while the piezoelectric disk does the fin z movement. The scan tip itself is a thin gauge tungsten wire, which, when cut in a very specific way, can become atomically fine at the tip. The sample is mounted on a disk (penny) below this with a bias applied to it by the electronics. The scan head moves down to the surface, and measures the tunneling current.
Above: The (unfinished) solidworks design of the scan head and vibration dampening system. The springs aren't modeled yet.
Mechanical Design: Scan Head
To Top
The scan head is composed of two 2" by 2" blocks of machined aluminum, with drilled sockets for the fine thread coarse approach screws and the piezo scanner. The fine thread screws and bushings fit into the top block and are kinematically locked to the bottom aluminum block via the V-groove and two holes. This helps to prevent vibrations of the scan head. The fine thread screws are used for the coarse approach to the sample surface, with 80 threads/inch. This gives roughly 250 um/revolution. The fine screw head on one side will be attached to a 28byj-48 stepper motor geared down to about 2048 steps per revolution. That, along with the lever arm reduction of around 20 (because I am only driving one screw on one side), gives me 250um/2048/20 = 6nm steps!
Generally, one wants to scan the surface at around the 1nm range. The stepper motor will be used in a woodpecker approach. It will first fully extend the z-piezo to search for the surface (which is easy to recognize becuase the current increases by a factor 0f 10 for every angstrom below 1nm). If it doesn't find the surface, it will retract, step the stepper motor by 1 step, and then extend the z-piezo again to search for the surface. In this way, I can limit the electrode tip from crashing into the surface.
The piezo is a 6.3 kHz piezoelectric disk meant to be used for speaker drivers, but is cut into 4 seperate segments here. By applying a (very, very specific voltage) to different combinations of the 4 quadrants on the piezo disk, I can scan over the surface in x, y, and z axis.
Finally, the PCB attached to the scan head is a preAmplifer PCB. It is a precision op-amp configured as a transImpedance Amplifier with a 100 million gain. This needs to be well isolated and also have very, very little input bias current, as that would get summed up with the tunnelling current. The preAmp amplifes the tunneling current (~1n-100A), and converts it to a voltage an ADC and a micro can read. The PCB pictured here is an early verison from OSHPark. The updated version can be seen in the electronics seciton below.
Above: Several images from my current build progress on the STM.
Mechanical Design: Scanning Electrode Tip
To Top
The tungsten electrode tips have to be produced in a unique way - via an electrochemical etching lammalae drop off technique. This is because the electrode tips need to be atomically shart - on the order of 1 to a few atoms at the tip. This is because, as stated in the theory above, even a few extra atoms at the tip heavily changes the tunneling current because our tip is no longer as fine a point a the surface.
This is an interesting technique that actually allows us to get an atomically fine tip. If you refer to the images below, the electrochemical etching only occurs in that thin membrane layer which helps to make it atomically fine. There will be more papers posted on how exactly this works in the additional resources section as the bottom.
The best method found in the literature was to use 2M NaOH (roughly 8 grams NaOH disolved in 100ml of water), and a voltage of around 4-4.5V for the etching. A thin steel wire rolled into a loop was used as the anode, while a small section (1cm) of the 30 AWG tungsten wire as cut off with a sharp wirecutters, and placed through the steel ring to be used as the cathode.
A container with the 2M NaOH was then raised up onto the loop electorde to provide a thin membrane/lamallae layer that began the etching process. I had a bit of troubly keeping the membrane layer to stay at first, but adding some acetone to the layer helped a bit, as it kept the bubbles from aggregating too largely and disrupting the membrane. The whole process took around 30 minutes, after which the etched tungsten wire dropped out into the cup of water and was recovered, being very careful not to tough the end of it so as to damage the tip.
Above:
Mechanical Design: Noise Reduction
To Top
1) Vibration Dampening (using spring and pendulum system as well as some Viton o-ring inserts)
2) Eddy Current Dampening (using eddy current induced by the vibrations in an aluminum disk and some Neo magnets)
3) Accoustic Dampening (using a frame that fits over the scanner with speaker foam padded on the inside)
4) Electromagnetic Shielding (using some thick sheets of aluminum foil placed behind the speaker foam on the frame)
Above:
Mechanical Design: Course Approach
To Top
*** In progress ***
Couse approach is done via 3 80 thread/inch screws attached to some stepper motors that provide a step size of around 2000 steps per revolution.
Above: Several images from my current build progress on the STM.
Electrical Design Overview
To Top
The electical design is fairly straightforward, but a bit more difficult than the mechanical design. I'm pretty much done with the schematics at this point, and am starting to work on the board layups. I will be most likely doing a 4 layer board with a ground plane and VCC plane for extra noise immunity. Gavin, the TA for our section, has given me some good resources for this. I'm debating between Oshpark and a few other fab houses.
The electircal design is sectioned into a few different sections, one on the scanning side to control the piezoelectric disk and to scan over the surface and plunge down towards the surface. This will be done using a 4 channel 16 bit DAC 8814 bit banged up to a 20 bit DAC for extra resolution. The other side of the circuit is the one that provides the bias voltage to the sample, and measures the tunneling current. It measures the current, amplifies it, and reads it into a 16 bit ADC. This current then gets sent over serial to the computer. It also provides a feedback loop for the scanning electronics - if the current is too high, move the z axis of the scan head up a bit. The tunneling current increases exponentially with distance to surface, so it is quite easy to read.
Electrical Design: Pre-amplifer
To Top
The preAmplifer has undergone a few major revisions in the past few weeks. The most current version is used the ADA4530 op amp.
The most common approach to amplifying the tunnelling current is to use a transimpedance amplifer using a ultra low imput bias current op amp. Following MatthiasR's design on hackaday and Dan Berard's design, I built a preAmp using Eagle. It used a 100M Ohm feedback resistor to amplify the current from around 1nA and to convert it to get an ouput voltage rating on the order of 100mV to 10V at the highest. An op amp for this use case needs an extremely low input bias current, because any input bias current will get summed up with the tunneling current and amplified as well, giving me huge errors. The ADA4350 op amp can be configured in this way and only as an input bias current of 20fA at ambient temperature, voltage and current noise, which is definetely low enough. The schematics for this can be seen below.
https://dberard.com/home-built-stm/electronics/
https://hackaday.io/project/11829-diy-scanning-tunneling-microscope
Above: Shown above is version number 1 and version number 2 of the preAmplifer. They were both sent to OSHPark and should be done within a week or so.
Electrical Design: Main Analog Scanning PCB
To Top
The block diagram for the scanner PCB can be seen below. The electronics aren't that compicated by themselves, except for the fact that they all need to be very precise and have as little noise as possible. This means a 4 layer PCB board was neeeded with seperate ground and power planes to minimize EMI interference, and specialized parts were needed that had higher than normal resolution, etc.. The STM electronics work like this: a microcontroller (Teensy 3.6) scans the electrode tip in a raster pattern by having the DAC8814 4 Channel 16 bit (bit banged to 20 bit) generate the X and Y scanning signals. It also generated the Z scanning signal for vertical motion. A DC bias voltage is supplied by the DAC as well, which is connected to the sample surface, which causes electrons to quantum tunnel across the gap between the electrode tip and the material surface (when they are (< 1 nm apart). The current is measured by the preAmp, which outputs a voltage proportional to the tunneling current. That signal is then digitized via the 16 bit ADC, fed into the Teensy 3.6 to be sent to the computer, and is also fed into a PI control loop to drive the scanner again. This is needed to provide some feedback and to maintain either a constant scanning height or constant scanning current. This surprisingly actually works pretty well. The scanning data (tunneling current and output z-axis height change) are send over USB to the PC C# program.
Above: Some of the electrical schematics and beginning of the board design files.
Software Design Overview
To Top
The programming is basically split into two parts, and will probably be where I spend the majority of my time on this project. There is the programming of the Teensey 3.6 in C which controls all of the electronics in the instrument and sends serial data to the computer over USB or FTDI. There is also the host side of the programming, where the computer takes the data being sent over and develops the image for it, line by line. This will either be accomplished with Python or C#.
Software Design: Teensey 3.6 C Code
To Top
The Teensy uses a timer to call a function at a regular time interval (around 40us). This function increments the scan, performs PI calculations to update the Z axis, and performs sigma-delta modulation of the scanner DACs. Since the scanning probe is a (sharp, fragile) solid object, it’s velocity needs to be controlled at all times. If it moves too fast, it will likely crash into something, so the tip scans in a zig-zag pattern rather than a traditional raster (as in a CRT or SEM for example). Since the STM is always incrementing the scan at the same time interval, doing a slower scan will acquire more data. All data acquired between pixels is averaged, so you’ll get less noise in a slower scan. Once a line of the image has been scanned in one direction and re-scanned in the other direction, the Teeny sends the Z data and error signal data over USB.
Many thanks to the other STM contributers out there with their help and guiadance on the software end. Specifically, Dan Berard's page and John Alexander's Page were very helpful with the software!
/*
This program uses an intervalTimer to call an ISR at a time interval defined
by "dt" (see #define statements below). The ISR increments the scan, reads the
ADC, performs PI calculations, sigma-delta calculations, updates the X, Y, and
Z DACs and stores acquired data in buffers. Data is sent over USB when the
scanner finishes scanning and re-scanning a line.
Set the CPU speed to 180 MHz optimized (overclock) or faster.
Cut the small trace on the bottom of the Teensy board to separate Vin from VUSB,
since the Teensy is being powered from an external 5V supply.
STM analog PCB to Teensy 3.6 connections:
All GNDs -> Teensy GND
+5V -> Vin
~CS_DAC -> pin 20
~LDAC -> pin 17
~CS_ADC -> pin 21
CNV -> pin 4
BUSY -> pin 3
MISO_ADC -> pin 12
MOSI_DAC -> pin 11
Serial indicator LED -> pin 0
Tunneling indicator LED -> pin 1
SCK_ADC and SCK_DAC -> pin 13.
*/
/**************************************************************************/
// Pin definitions:
#define CS_DAC 20 // DAC chip select pin
#define LDAC 17 // Load DAC pin, not currently used
#define CS_ADC 21 // ADC chip select pin
#define CNV 4 // ADC CNV pin - initiates a conversion
#define BUSY 3 // ADC BUSY pin
#define SERIAL_LED 0 // Indicates serial data transmission
#define TUNNEL_LED 1 // Indicates tunneling
// DAC channel addresses:
#define DAC_CH_X 2
#define DAC_CH_Y 1
#define DAC_CH_Z 0
#define DAC_CH_BIAS 3
// DAC and ADC resolution:
#define DAC_BITS 16 // Actual DAC resolution
#define POSITION_BITS 20 // Sigma-delta resolution
#define ADC_BITS 16
// Default scan settings:
#define SCAN_SIZE 100000 // ~160 nm // Scan size in LSBs
#define IMAGE_PIXELS 512 // Scan size in pixels
#define LINE_RATE 1 // Number of scan lines/second
#define SETPOINT 328 // 1 nA // Tunneling current setpoint in LSBs
#define BIAS 328 // 100 mV // Sample bias in LSBs
#define KP 0 // Proportional gain
#define KI 300000 // Integral gain
// Constants:
#define INVERT_Z true // Inverts the Z output signal from the DAC
#define ENGAGE_SCANNER_STEP_SIZE 50 // Number of LSBs to step the scanner by during engage
#define ENGAGE_MOTOR_STEP_SIZE 1 // Number of steps to move the motor by during engage
#define dt 40 // Time step for scanning and PI control in microseconds
#define DATA_BUFFER_LENGTH 16386 // Number of bytes in each ping-pong buffer for data storage. Need 2 bytes for line number + 16 bytes/pixel.
#define SCAN_COUNTER_LIMIT 0x40000000 // Scan counter counts from -SCAN_COUNTER_LIMIT to SCAN_COUNTER_LIMIT-1
/**************************************************************************/
#include
#include "logTable.h"
#include
#include
/**************************************************************************/
/*
Variable declarations
*/
/**************************************************************************/
// Scan parameters:
float lineRate = LINE_RATE; // Scan lines per second
unsigned int pixelsPerLine = IMAGE_PIXELS * 2;
unsigned int samplesPerPixel;
int scanSize = SCAN_SIZE; // Size of the scan in LSBs
int bias = BIAS; // Sample bias in LSBs
boolean scanningEnabled = false;
boolean engaged = false;
// Scan counters. Counts from -SCAN_COUNTER_LIMIT to SCAN_COUNTER_LIMIT - 1
// regardless of scan size, then counts back down when the scan direction reverses.
volatile int xCount = -SCAN_COUNTER_LIMIT; // X-axis scan counter
volatile int yCount = -SCAN_COUNTER_LIMIT; // Y-axis scan counter
volatile int dx = 0, dy = 0; // Scan counter increments
// Sample, pixel and line counters:
volatile unsigned int sampleCounter = 0, pixelCounter = 0, lineCounter = 0;
volatile int zAvg = 0, eAvg = 0; // Accumulates Z and error samples for later averaging
// Ping-pong buffers:
byte data1[DATA_BUFFER_LENGTH], data2[DATA_BUFFER_LENGTH]; // Data buffers
volatile boolean fillData1 = true; // Indicates which buffer to fill
volatile boolean sendData = false; // Indicates that data is ready to be sent over USB
boolean serialEnabled = false; // Enables serial transfer of data
// Position variables:
const int MAX_Z = (1 << (POSITION_BITS - 1)) - 1; // Maximum Z value
int xo = 0, yo = 0; // Scan offsets
volatile int x = 0, y = 0, z = 0; // Scanner coordinates in LSBs
// PI variables:
boolean pidEnabled = true; // Setting this to false desiables PI control
int setpoint = SETPOINT, setpointLog; // setpointLog = log(|setpoint|)
int Kp = KP, Ki = KI; // Proportional and integral gains
volatile int16_t input; // ADC input data
volatile int error = 0; // PID error signal
volatile int64_t iTerm = 0; // Integral term
const int64_t MAX_ITERM = MAX_Z * 0x100000000; // Maximum integral term. Used to prevent windup.
// Sigma-delta variables:
int sigmaX = 0, sigmaY = 0, sigmaZ = 0; // Sigma-delta integrators
const unsigned int shift = POSITION_BITS - DAC_BITS; // Number of bits to increase DAC resolution by using sigma-delta algorithm
// Timers:
IntervalTimer scanTimer;
// Data converters:
DAC8814 dac(CS_DAC, LDAC); // 16-bit quad DAC
LTC2326_16 adc(CS_ADC, CNV, BUSY); // 16-bit ADC
const int MAX_DAC_OUT = (1 << (DAC_BITS - 1)) - 1; // DAC upper bound
const int MIN_DAC_OUT = -(1 << (DAC_BITS - 1)); // DAC lower bound
boolean saturationCompensation = true; // The LTC2326-16 seems to output 0 when its input saturates. This is a temporary fix.
/**************************************************************************/
/*
Setup
*/
/**************************************************************************/
void setup()
{
pinMode(SERIAL_LED, OUTPUT);
pinMode(TUNNEL_LED, OUTPUT);
digitalWrite(SERIAL_LED, LOW);
digitalWrite(TUNNEL_LED, LOW);
// Set the sample bias:
dac.begin();
dac.setOutput((uint16_t)(bias + MAX_DAC_OUT + 1), DAC_CH_BIAS);
setpointLog = logTable[abs(SETPOINT)]; // Take the log of the setpoint
updateStepSizes(); // Compute the scan counter step sizes
adc.convert(); // Start an ADC conversion
// Start the scan/PI/sigma-delta timer:
scanTimer.priority(0);
scanTimer.begin(incrementScan, dt);
}
/**************************************************************************/
/*
Loop
*/
/**************************************************************************/
void loop()
{
checkSerial(); // Check for incoming serial commands. See "SerialCommands" tab.
// Illuminate tunelling LED if the tunneling current is > setpoint/2:
if(abs(input) > setpoint >> 1) digitalWriteFast(TUNNEL_LED, HIGH);
else digitalWriteFast(TUNNEL_LED, LOW);
// Send data over USB if a line has been scanned and re-scanned:
if(sendData)
{
if(!fillData1) // Print data1
{
data1[0] = (byte)((lineCounter >> 8) & 0xFF); // High byte
data1[1] = (byte)(lineCounter & 0xFF); // Low byte
if(serialEnabled)
{
Serial.println("DATA");
Serial.write(data1, DATA_BUFFER_LENGTH);
}
// Uncomment this block to print human-readable data to the serial port:
/*
for(unsigned int i = 0; i < pixelsPerLine * 2; i++) // Loop over pixels
{
Serial.print((int)((int)data1[4*i+2] << 24 | (int)data1[4*i+3] << 16 |(int)data1[4*i+4] << 8 |(int)data1[4*i+5]));
Serial.print(" ");
}
*/
}
else
{
data2[0] = (byte)((lineCounter >> 8) & 0xFF); // High byte
data2[1] = (byte)(lineCounter & 0xFF); // Low byte
if(serialEnabled)
{
Serial.println("DATA");
Serial.write(data2, DATA_BUFFER_LENGTH);
}
// Uncomment this block to print human-readable data to the serial port:
/*
for(unsigned int i = 0; i < pixelsPerLine * 2; i++) // Loop over pixels
{
Serial.print((int)((int)data2[4*i+2] << 24 | (int)data2[4*i+3] << 16 |(int)data2[4*i+4] << 8 |(int)data2[4*i+5]));
Serial.print(" ");
}
*/
}
Serial.println();
sendData = false;
}
}
/**************************************************************************/
/*
Increment the scan, perform PI calculations, sigma-delta calculations,
update the x, y and z DACs, store data in buffers.
*/
/**************************************************************************/
void incrementScan(void) // This interrupt runs in about ~18 us at 96 MHz
{
static int xout, yout, zout;
static int64_t pTerm;
//////////////////////////////////////////////////////////////////////
// Increment the scan:
//////////////////////////////////////////////////////////////////////
if(scanningEnabled)
{
if(xCount <= -SCAN_COUNTER_LIMIT || xCount >= SCAN_COUNTER_LIMIT - 1 - dx) dx = -dx; // Reverse at the end of a line
xCount += dx;
x = (int)(((int64_t)xCount * (int64_t)scanSize) >> 31) + xo;
if(yCount <= -SCAN_COUNTER_LIMIT || yCount >= SCAN_COUNTER_LIMIT - 1 - dy) dy = -dy; // Reverse and the end of a scan
yCount += dy;
y = (int)(((int64_t)yCount * (int64_t)scanSize) >> 31) + yo;
if(yCount <= -SCAN_COUNTER_LIMIT) lineCounter = 0; // Just in case the scan and acquisition become desynchronized...
}
//////////////////////////////////////////////////////////////////////
// Perform PI calculations:
//////////////////////////////////////////////////////////////////////
adc.begin(); // Set up the SPI port to communicate with the ADC
input = adc.read(); // Read the ADC data over SPI
if(saturationCompensation & (input == 0) & (z != -MAX_Z)) input = 32767; // Compensate for the LTC2326-16 saturation issue
error = logTable[abs((int16_t)input)] - setpointLog; // Negative error = tip too far from sample
if(pidEnabled)
{
pTerm = (int64_t)Kp * (int64_t)error;
iTerm += (int64_t)Ki * (int64_t)error;
if(iTerm > MAX_ITERM) iTerm = MAX_ITERM; // Constrain the integral term to prevent windup
else if (iTerm < -MAX_ITERM) iTerm = -MAX_ITERM;
z = (int)(((pTerm + iTerm) >> 32) & 0xFFFFFFFF);
z = saturate(z, MAX_Z, -MAX_Z);
}
adc.convert(); // Initiate a new conversion. Data will be ready by the next time this interrupt runs.
//////////////////////////////////////////////////////////////////////
// Perform sigma-delta calculations and update scanner DACs:
//////////////////////////////////////////////////////////////////////
dac.begin();
xout = sigmaDelta(x, &sigmaX, shift);
xout = saturate(xout, MAX_DAC_OUT, MIN_DAC_OUT);
dac.setOutput((uint16_t)(xout + MAX_DAC_OUT + 1), DAC_CH_X);
yout = sigmaDelta(y, &sigmaY, shift);
yout = saturate(yout, MAX_DAC_OUT, MIN_DAC_OUT);
dac.setOutput((uint16_t)(yout + MAX_DAC_OUT + 1), DAC_CH_Y);
zout = sigmaDelta(z, &sigmaZ, shift);
if(INVERT_Z) zout = -zout;
zout = saturate(zout, MAX_DAC_OUT, MIN_DAC_OUT);
dac.setOutput((uint16_t)(zout + MAX_DAC_OUT + 1), DAC_CH_Z);
//////////////////////////////////////////////////////////////////////
// Store data in buffer arrays and update counters:
//////////////////////////////////////////////////////////////////////
if(scanningEnabled)
{
zAvg += z; // Accumulate data for averaging
eAvg += error;
sampleCounter++;
if(sampleCounter >= samplesPerPixel) // If enough samples have been acquired for one pixel
{
unsigned int indexZ = (pixelCounter << 2) + 2; // Index for Z data point in data buffer
unsigned int indexE = indexZ + (pixelsPerLine << 2); // Index for error data point in data buffer
zAvg = zAvg / (int)samplesPerPixel; // Compute the average of acquired samples
eAvg = eAvg / (int)samplesPerPixel;
if(fillData1)
{
data1[indexZ] = (byte)((zAvg >> 24) & 0xFF); // High byte Z
data1[indexZ + 1] = (byte)((zAvg >> 16) & 0xFF);
data1[indexZ + 2] = (byte)((zAvg >> 8) & 0xFF);
data1[indexZ + 3] = (byte)(zAvg & 0xFF); // Low byte Z
data1[indexE] = (byte)((eAvg >> 24) & 0xFF); // High byte E
data1[indexE + 1] = (byte)((eAvg >> 16) & 0xFF);
data1[indexE + 2] = (byte)((eAvg >> 8) & 0xFF);
data1[indexE + 3] = (byte)(eAvg & 0xFF); // Low byte E
}
else
{
data2[indexZ] = (byte)((zAvg >> 24) & 0xFF); // High byte Z
data2[indexZ + 1] = (byte)((zAvg >> 16) & 0xFF);
data2[indexZ + 2] = (byte)((zAvg >> 8) & 0xFF);
data2[indexZ + 3] = (byte)(zAvg & 0xFF); // Low byte Z
data2[indexE] = (byte)((eAvg >> 24) & 0xFF); // High byte E
data2[indexE + 1] = (byte)((eAvg >> 16) & 0xFF);
data2[indexE + 2] = (byte)((eAvg >> 8) & 0xFF);
data2[indexE + 3] = (byte)(eAvg & 0xFF); // Low byte E
}
pixelCounter++;
sampleCounter = 0;
zAvg = 0;
eAvg = 0;
if(pixelCounter >= pixelsPerLine)
{
pixelCounter = 0;
fillData1 = !fillData1;
sendData = true;
lineCounter++;
if(lineCounter >= pixelsPerLine)
{
lineCounter = 0;
}
}
}
}
}
/**************************************************************************/
/*
Sigma delta. Used to produce a PWM output between LSBs of a DAC to
effectively increase its resolution. The DAC output must be low-pass
filtered to smooth out the PWM.
Based on Tim Wescott's example here:
http://www.embedded.com/design/configurable-systems/4006431/Sigma-delta-techniques-extend-DAC-resolution
*/
/**************************************************************************/
int sigmaDelta(int in, int *sigma, unsigned int shift)
{
int out;
*sigma += in; // Add desired input to sigma-delta integrator
out = *sigma >> shift; // Truncate to the number of actual DAC bits
*sigma -= out << shift; // Shift the DAC output value and subtract it from the integrator
return out;
}
/**************************************************************************/
/*
Saturate a value if it falls outside of max or min
*/
/**************************************************************************/
int saturate(int val, int max, int min)
{
if(val > max) val = max;
else if (val < min) val = min;
return val;
}
/**************************************************************************/
/*
This function updates scan stepsizes without changing the scan direction.
*/
/**************************************************************************/
void updateStepSizes()
{
unsigned int new_samplesPerPixel = (unsigned int)(1000000.0f / (lineRate * (float)dt * (float)pixelsPerLine));
int new_dx = (SCAN_COUNTER_LIMIT - 1)/ ((int)new_samplesPerPixel * (int)pixelsPerLine) * 4;
int new_dy = new_dx / (int)pixelsPerLine;
noInterrupts();
samplesPerPixel = new_samplesPerPixel;
if(dx > 0) dx = new_dx;
else dx = -new_dx;
if(dy > 0) dy = new_dy;
else dy = -new_dy;
interrupts();
}
/**************************************************************************/
/*
Move the scanner to the scan start position.
*/
/**************************************************************************/
void resetScan()
{
int xStart = -(scanSize >> 1) + xo;
int yStart = -(scanSize >> 1) + yo;
scanningEnabled = false; // disable scanning
// Reset counters etc:
noInterrupts();
xCount = -SCAN_COUNTER_LIMIT;
yCount = -SCAN_COUNTER_LIMIT;
dx = 0;
dy = 0;
updateStepSizes(); // Re-calculate step sizes
sampleCounter = 0;
pixelCounter = 0;
lineCounter = 0;
zAvg = 0;
eAvg = 0;
fillData1 = true;
interrupts();
// Move to start position:
moveTip(xStart, yStart);
}
/**************************************************************************/
/*
Move from (x,y) to (xf,yf). The tip moves at the current scanning speed.
*/
/**************************************************************************/
void moveTip(int xf, int yf)
{
int stepSize = abs((int)(((int64_t)dx * (int64_t)scanSize) >> 31));
scanningEnabled = false;
while (x > xf) {
x -= stepSize;
waitTimeStep(); // Wait for incrementScan() to update the DAC
}
while (x < xf) {
x += stepSize;
waitTimeStep();
}
while (y > yf) {
y -= stepSize;
waitTimeStep();
}
while (y < yf) {
y += stepSize;
waitTimeStep();
}
}
/**************************************************************************/
/*
Wait for on time interval dt.
*/
/**************************************************************************/
void waitTimeStep()
{
unsigned int t = micros();
while (micros() - t <= dt)
{
// Wait...
}
}
/**************************************************************************/
/*
Currently, this function only starts the scan and enables the Z feedback
loop. For use with manual coarse approach. Will be replaced later with
a motorized approach function.
*/
/**************************************************************************/
boolean engage()
{
scanningEnabled = true;
engaged = true;
pidEnabled = true;
return true;
}
/**************************************************************************/
/*
Retracts the scanner without using the approach motor. This function
only moves the scanner Z-axis, not the approach motor.
*/
/**************************************************************************/
void retract()
{
scanningEnabled = false;
pidEnabled = false;
engaged = false;
z = MAX_Z; // Fully retract the Z-piezo
digitalWrite(TUNNEL_LED, LOW);
}
/**************************************************************************/
/*
Engage the scanner without using the approach motor. This function
only moves the scanner Z-axis, not the approach motor. Returns true
if the surface was detected, false otherwise. This function is not
currently used.
*/
/**************************************************************************
boolean engageScanner()
{
if(!engaged)
{
pidEnabled = false;
scanningEnabled = false;
saturationCompensation = false;
while (error < 0 && z > -MAX_Z)
{
z -= ENGAGE_SCANNER_STEP_SIZE;
waitTimeStep();
}
// If scanner is not fully extended after approach, it has found the surface. Enable PID:
if (z > -MAX_Z)
{
pidEnabled = true;
engaged = true;
saturationCompensation = true;
digitalWrite(TUNNEL_LED, HIGH);
}
else // Fully retract the Z-piezo:
{
retract();
}
}
return engaged;
}
/**************************************************************************/
/*
Move the approach motor by the specified amount.
*/
/**************************************************************************
void stepMotor(int stepSize, int dir)
{
}
/**************************************************************************/
/*
This function sweeps the bias voltage from its current value to minus its
current value while reading the current at every point.
*/
/**************************************************************************
void IVCurve()
{
}
/**************************************************************************/
/*
This function retracts the Z-piezo by a specified distance while reading
the current at every point.
*/
/**************************************************************************
void IVCurve()
{
}
/***************************************************************/
void checkSerial()
{
String serialString;
if(Serial.available() > 0)
{
for(int i = 0; i < 2; i++) // Accepts 2 char commands
{
delay(1); // This seems to be necessary, not sure why
char inChar = Serial.read();
serialString += inChar;
}
}
serialCommand(serialString);
serialString = "";
}
/**************************************************************************/
void serialCommand(String str)
{
String command = "00";
if (str.length() > 0)
{
// Get the first 2 characters of str and store them in command:
for(int i = 0; i < 2; i++)
{
command[i] = str[i];
}
if(command == "SE") // Enable serial communications
{
Serial.begin(115200);
Serial.println("SE");
serialEnabled = true;
digitalWriteFast(SERIAL_LED, HIGH);
}
else if(command == "SD") // Disable serial communications
{
serialEnabled = false;
Serial.flush();
Serial.end();
digitalWriteFast(SERIAL_LED, LOW);
}
else if(command == "SS") // Scan size in LSBs
{
boolean scanningEnabledOnCommand = scanningEnabled;
int new_scanSize = Serial.parseInt();
int xNew, yNew;
// Calculate position to move to:
xNew = (int)(((float)(x - xo) * (float)new_scanSize) / (float)scanSize) + xo;
yNew = (int)(((float)(y - yo) * (float)new_scanSize) / (float)scanSize) + yo;
scanningEnabled = false; // Pause the scan
if(new_scanSize > scanSize) // Update scanSize, then move
{
scanSize = new_scanSize;
moveTip(xNew, yNew);
}
else // Move, then update scanSize
{
moveTip(xNew, yNew);
scanSize = new_scanSize;
}
if(scanningEnabledOnCommand) scanningEnabled = true; // Resume scanning
}
else if(command == "IP") // Image pixels
{
boolean scanningEnabledOnCommand = scanningEnabled;
pixelsPerLine = Serial.parseInt() * 2;
resetScan();
if(scanningEnabledOnCommand) scanningEnabled = true;
}
else if(command == "LR") // Line rate in Hz
{
boolean scanningEnabledOnCommand = scanningEnabled;
lineRate = (float)Serial.parseInt() / 100.0f; // Line rate is multiplied by 100 for the transmission
while(pixelCounter != 0); // Wait for the scanner to finish scanning a line
scanningEnabled = false; // Pause the scan
updateStepSizes();
if(scanningEnabledOnCommand) scanningEnabled = true; // Resume scan
}
else if(command == "XO") // X-offset
{
boolean scanningEnabledOnCommand = scanningEnabled;
int previous_xo = xo;
int new_xo = Serial.parseInt();
scanningEnabled = false; // Pause the scan
xo = new_xo;
moveTip(x - previous_xo + xo, y); // Move over by (xo, yo)
if(scanningEnabledOnCommand) scanningEnabled = true; // Resume scan
}
else if(command == "YO") // Y-offset
{
boolean scanningEnabledOnCommand = scanningEnabled;
int previous_yo = yo;
int new_yo = Serial.parseInt();
scanningEnabled = false;
yo = new_yo;
moveTip(x, y - previous_yo + yo);
if(scanningEnabledOnCommand) scanningEnabled = true;
}
else if(command == "SP") // Setpoint in LSBs
{
setpoint = Serial.parseInt();
setpointLog = logTable[abs(setpoint)];
}
else if(command == "SB") // Sample bias in LSBs
{
bias = Serial.parseInt();
noInterrupts();
dac.setOutput((uint16_t)(bias + 32768), DAC_CH_BIAS); // Set the sample bias
interrupts();
}
else if(command == "KP") // P gain
{
Kp = Serial.parseInt();
}
else if(command == "KI") // I gain
{
Ki = Serial.parseInt() * dt;
}
else if(command == "EN") // Enable scanning
{
resetScan();
scanningEnabled = true;
}
else if(command == "DL") // Disable scanning
{
scanningEnabled = false;
}
else if(command == "TE") // Tip engage
{
engage();
}
else if(command == "TR") // Tip retract
{
retract();
}
}
}
/**************************************************************************/
/*
Table generated using the following MATLAB code:
x=0:32768;
lt = round(log(x+1)*(2^19-1)/log(2^15+1))';
fid = fopen('lt.txt', 'a');
fprintf(fid, [repmat('%d, ', 1, size(lt, 2) - 1), '%d,\r\n'], lt.');
fclose(fid);
logTable takes an input from 0 - 32768 (the absolute value of the input
from the 16-bit ADC) and outputs a value from 0 - 524287.
*/
/**************************************************************************/
const int logTable[32769] = {
0,
34952,
55398,
69905,
81157,
90351,
98124,
104857,
110796,
116109,
120915,
125303,
129339,
133076,
136555,
139809,
142866,
145749,
148475,
151062,
153522,
155868,
158109,
160255,
162314,
164291,
166195,
168028,
169798,
171507,
173161,
174762,
176313,
177819,
179281,
180701,
182083,
183427,
184737,
186014,
187259,
188474,
189661,
190820,
191953,
193062,
194146,
195208,
196247,
197266,
198265,
199244,
200204,
201147,
202072,
202981,
203873,
204750,
205612,
206460,
207293,
208113,
208920,
209714,
210496,
211266,
212024,
212771,
213507,
214233,
214948,
215653,
216349,
217035,
217712,
218380,
219039,
219690,
220332,
220966,
221593,
222211,
222823,
223427,
224023,
224613,
225196,
225772,
226342,
226906,
227463,
228014,
228559,
229098,
229632,
230160,
230683,
231200,
231712,
232218,
232720,
233217,
233709,
234196,
234679,
235157,
235630,
236099,
236564,
237025,
237481,
237933,
238381,
238826,
239266,
239703,
240135,
240565,
240990,
241412,
241831,
242246,
242657,
243066,
243471,
243872,
244271,
244667,
245059,
245448,
245835,
246218,
246599,
246977,
247351,
247724,
248093,
248460,
248824,
249185,
249544,
249901,
250254,
250606,
250955,
251301,
251646,
251987,
252327,
252664,
252999,
253332,
253663,
253991,
254318,
254642,
254964,
255284,
255603,
255919,
256233,
256545,
256855,
257164,
257470,
257775,
258078,
258379,
258678,
258976,
259271,
259566,
259858,
260148,
260437,
260725,
261010,
261295,
261577,
261858,
262137,
262415,
262691,
262966,
263240,
263511,
263782,
264051,
264318,
264584,
264849,
265112,
265374,
265635,
265894,
266152,
266409,
266664,
266918,
267171,
267422,
267673,
267922,
268169,
268416,
268661,
268906,
269149,
269390,
269631,
269871,
270109,
270346,
270583,
270818,
271052,
271285,
271516,
271747,
271977,
272206,
272433,
272660,
272886,
273110,
273334,
273556,
273778,
273999,
274218,
274437,
274655,
274872,
275088,
275303,
275517,
275730,
275943,
276154,
276365,
276574,
276783,
276991,
277198,
277404,
277610,
277814,
278018,
278221,
278423,
278624,
278825,
279024,
279223,
279422,
279619,
279816,
280011,
280206,
280401,
280594,
280787,
280979,
281171,
281361,
281551,
281740,
281929,
282117,
282304,
282490,
282676,
282861,
283045,
283229,
283412,
283594,
283776,
283957,
284138,
284317,
284497,
284675,
284853,
285030,
285207,
285383,
285558,
285733,
285907,
286081,
286254,
286426,
286598,
286769,
286940,
287110,
287279,
287448,
287617,
287784,
287952,
288118,
288285,
288450,
288615,
288780,
288944,
289107,
289270,
289433,
289594,
289756,
289917,
290077,
290237,
290396,
290555,
290713,
290871,
291028,
291185,
291342,
291497,
291653,
291808,
291962,
292116,
292270,
292423,
292575,
292727,
292879,
293030,
293181,
293331,
293481,
293631,
293780,
293928,
294076,
294224,
294371,
294518,
294664,
294810,
294956,
295101,
295246,
295390,
295534,
295677,
295820,
295963,
296105,
296247,
296388,
296529,
296670,
296810,
296950,
297090,
297229,
297368,
297506,
297644,
297781,
297919,
298055,
298192,
298328,
298464,
298599,
298734,
298869,
299003,
299137,
299271,
299404,
299537,
299669,
299801,
299933,
300065,
300196,
300327,
300457,
300587,
300717,
300847,
300976,
301104,
301233,
301361,
301489,
301616,
301744,
301870,
301997,
302123,
302249,
302375,
302500,
302625,
302750,
302874,
302998,
303122,
303245,
303368,
303491,
303614,
303736,
303858,
303980,
304101,
304222,
304343,
304463,
304583,
304703,
304823,
304942,
305061,
305180,
305299,
305417,
305535,
305653,
305770,
305887,
306004,
306121,
306237,
306353,
306469,
306584,
306700,
306815,
306929,
307044,
307158,
307272,
307386,
307499,
307612,
307725,
307838,
307950,
308062,
308174,
308286,
308398,
308509,
308620,
308730,
308841,
308951,
309061,
309171,
309280,
309390,
309499,
309607,
309716,
309824,
309932,
310040,
310148,
310255,
310362,
310469,
310576,
310683,
310789,
310895,
311001,
311106,
311212,
311317,
311422,
311527,
311631,
311735,
311839,
311943,
312047,
312150,
312254,
312357,
312459,
312562,
312664,
312767,
312869,
312970,
313072,
313173,
313274,
313375,
313476,
313577,
313677,
313777,
313877,
313977,
314076,
314176,
314275,
314374,
314473,
314571,
314670,
314768,
314866,
314964,
315061,
315159,
315256,
315353,
315450,
315547,
315643,
315739,
315836,
315932,
316027,
316123,
316218,
316314,
316409,
316504,
316598,
316693,
316787,
316881,
316975,
317069,
317163,
317256,
317349,
317443,
317536,
317628,
317721,
317813,
317906,
317998,
318090,
318181,
318273,
318364,
318456,
318547,
318638,
318729,
318819,
318910,
319000,
319090,
319180,
319270,
319359,
319449,
319538,
319627,
319716,
319805,
319894,
319983,
320071,
320159,
320247,
320335,
320423,
320511,
320598,
320685,
320773,
320860,
320946,
321033,
321120,
321206,
321292,
321378,
321464,
321550,
321636,
321722,
321807,
321892,
321977,
322062,
322147,
322232,
322316,
322401,
322485,
322569,
322653,
322737,
322821,
322904,
322988,
323071,
323154,
323237,
323320,
323403,
323485,
323568,
323650,
323732,
323814,
323896,
323978,
324060,
324141,
324222,
324304,
324385,
324466,
324547,
324628,
324708,
324789,
324869,
324949,
325029,
325109,
325189,
325269,
325348,
325428,
325507,
325586,
325666,
325745,
325823,
325902,
325981,
326059,
326138,
326216,
326294,
326372,
326450,
326528,
326605,
326683,
326760,
326837,
326915,
326992,
327069,
327145,
327222,
327299,
327375,
327451,
327528,
327604,
327680,
327756,
327831,
327907,
327983,
328058,
328133,
328209,
328284,
328359,
328434,
328508,
328583,
328657,
328732,
328806,
328880,
328955,
329029,
329102,
329176,
329250,
329323,
329397,
329470,
329543,
329617,
329690,
329763,
329835,
329908,
329981,
330053,
330126,
330198,
330270,
330342,
330414,
330486,
330558,
330629,
330701,
330773,
330844,
330915,
330986,
331057,
331128,
331199,
331270,
331341,
331411,
331482,
331552,
331622,
331693,
331763,
331833,
331903,
331972,
332042,
332112,
332181,
332251,
332320,
332389,
332458,
332527,
332596,
332665,
332734,
332802,
332871,
332939,
333008,
333076,
333144,
333212,
333280,
333348,
333416,
333484,
333552,
333619,
333687,
333754,
333821,
333888,
333955,
334022,
334089,
334156,
334223,
334290,
334356,
334423,
334489,
334555,
334622,
334688,
334754,
334820,
334886,
334951,
335017,
335083,
335148,
335214,
335279,
335344,
335410,
335475,
335540,
335605,
335669,
335734,
335799,
335864,
335928,
335992,
336057,
336121,
336185,
336249,
336313,
336377,
336441,
336505,
336569,
336632,
336696,
336759,
336823,
336886,
336949,
337013,
337076,
337139,
337201,
337264,
337327,
337390,
337452,
337515,
337577,
337640,
337702,
337764,
337826,
337888,
337950,
338012,
338074,
338136,
338198,
338259,
338321,
338382,
338444,
338505,
338566,
338627,
338688,
338749,
338810,
338871,
338932,
338993,
339053,
339114,
339174,
339235,
339295,
339355,
339416,
339476,
339536,
339596,
339656,
339716,
339775,
339835,
339895,
339954,
340014,
340073,
340133,
340192,
340251,
340310,
340369,
340428,
340487,
340546,
340605,
340664,
340722,
340781,
340840,
340898,
340956,
341015,
341073,
341131,
341189,
341247,
341305,
341363,
341421,
341479,
341537,
341594,
341652,
341709,
341767,
341824,
341882,
341939,
341996,
342053,
342110,
342167,
342224,
342281,
342338,
342395,
342451,
342508,
342565,
342621,
342678,
342734,
342790,
342846,
342903,
342959,
343015,
343071,
343127,
343183,
343238,
343294,
343350,
343406,
343461,
343517,
343572,
343627,
343683,
343738,
343793,
343848,
343903,
343958,
344013,
344068,
344123,
344178,
344233,
344287,
344342,
344396,
344451,
344505,
344560,
344614,
344668,
344722,
344777,
344831,
344885,
344939,
344993,
345046,
345100,
345154,
345208,
345261,
345315,
345368,
345422,
345475,
345528,
345582,
345635,
345688,
345741,
345794,
345847,
345900,
345953,
346006,
346059,
346111,
346164,
346217,
346269,
346322,
346374,
346427,
346479,
346531,
346583,
346636,
346688,
346740,
346792,
346844,
346896,
346948,
346999,
347051,
347103,
347154,
347206,
347258,
347309,
347360,
347412,
347463,
347514,
347566,
347617,
347668,
347719,
347770,
347821,
347872,
347923,
347974,
348024,
348075,
348126,
348176,
348227,
348277,
348328,
348378,
348428,
348479,
348529,
348579,
348629,
348679,
348730,
348780,
348829,
348879,
348929,
348979,
349029,
349078,
349128,
349178,
349227,
349277,
349326,
349376,
349425,
349474,
349524,
349573,
349622,
349671,
349720,
349769,
349818,
349867,
349916,
349965,
350014,
350062,
350111,
350160,
350208,
350257,
350305,
350354,
350402,
350451,
350499,
350547,
350596,
350644,
350692,
350740,
350788,
350836,
350884,
350932,
350980,
351028,
351075,
351123,
351171,
351218,
351266,
351314,
351361,
351408,
351456,
351503,
351551,
351598,
351645,
351692,
351739,
351787,
351834,
351881,
351928,
351975,
352021,
352068,
352115,
352162,
352209,
352255,
352302,
352348,
352395,
352441,
352488,
352534,
352581,
352627,
352673,
352720,
352766,
352812,
352858,
352904,
352950,
352996,
353042,
353088,
353134,
353180,
353225,
353271,
353317,
353362,
353408,
353454,
353499,
353545,
353590,
353636,
353681,
353726,
353772,
353817,
353862,
353907,
353952,
353997,
354042,
354087,
354132,
354177,
354222,
354267,
354312,
354357,
354401,
354446,
354491,
354535,
354580,
354624,
354669,
354713,
354758,
354802,
354846,
354891,
354935,
354979,
355023,
355067,
355112,
355156,
355200,
355244,
355288,
355331,
355375,
355419,
355463,
355507,
355550,
355594,
355638,
355681,
355725,
355768,
355812,
355855,
355899,
355942,
355985,
356029,
356072,
356115,
356158,
356202,
356245,
356288,
356331,
356374,
356417,
356460,
356503,
356546,
356588,
356631,
356674,
356717,
356759,
356802,
356845,
356887,
356930,
356972,
357015,
357057,
357099,
357142,
357184,
357226,
357269,
357311,
357353,
357395,
357437,
357479,
357521,
357563,
357605,
357647,
357689,
357731,
357773,
357815,
357856,
357898,
357940,
357982,
358023,
358065,
358106,
358148,
358189,
358231,
358272,
358314,
358355,
358396,
358437,
358479,
358520,
358561,
358602,
358643,
358684,
358726,
358767,
358808,
358848,
358889,
358930,
358971,
359012,
359053,
359093,
359134,
359175,
359215,
359256,
359297,
359337,
359378,
359418,
359459,
359499,
359540,
359580,
359620,
359660,
359701,
359741,
359781,
359821,
359861,
359902,
359942,
359982,
360022,
360062,
360102,
360141,
360181,
360221,
360261,
360301,
360341,
360380,
360420,
360460,
360499,
360539,
360578,
360618,
360657,
360697,
360736,
360776,
360815,
360855,
360894,
360933,
360972,
361012,
361051,
361090,
361129,
361168,
361207,
361246,
361285,
361324,
361363,
361402,
361441,
361480,
361519,
361558,
361596,
361635,
361674,
361713,
361751,
361790,
361828,
361867,
361905,
361944,
361982,
362021,
362059,
362098,
362136,
362174,
362213,
362251,
362289,
362327,
362366,
362404,
362442,
362480,
362518,
362556,
362594,
362632,
362670,
362708,
362746,
362784,
362822,
362859,
362897,
362935,
362973,
363010,
363048,
363086,
363123,
363161,
363199,
363236,
363274,
363311,
363348,
363386,
363423,
363461,
363498,
363535,
363573,
363610,
363647,
363684,
363721,
363759,
363796,
363833,
363870,
363907,
363944,
363981,
364018,
364055,
364092,
364129,
364165,
364202,
364239,
364276,
364313,
364349,
364386,
364423,
364459,
364496,
364532,
364569,
364606,
364642,
364678,
364715,
364751,
364788,
364824,
364860,
364897,
364933,
364969,
365006,
365042,
365078,
365114,
365150,
365186,
365222,
365259,
365295,
365331,
365367,
365402,
365438,
365474,
365510,
365546,
365582,
365618,
365653,
365689,
365725,
365761,
365796,
365832,
365868,
365903,
365939,
365974,
366010,
366045,
366081,
366116,
366152,
366187,
366222,
366258,
366293,
366328,
366364,
366399,
366434,
366469,
366505,
366540,
366575,
366610,
366645,
366680,
366715,
366750,
366785,
366820,
366855,
366890,
366925,
366960,
366994,
367029,
367064,
367099,
367134,
367168,
367203,
367238,
367272,
367307,
367341,
367376,
367411,
367445,
367480,
367514,
367549,
367583,
367617,
367652,
367686,
367720,
367755,
367789,
367823,
367858,
367892,
367926,
367960,
367994,
368028,
368063,
368097,
368131,
368165,
368199,
368233,
368267,
368301,
368335,
368369,
368402,
368436,
368470,
368504,
368538,
368571,
368605,
368639,
368673,
368706,
368740,
368774,
368807,
368841,
368874,
368908,
368941,
368975,
369008,
369042,
369075,
369109,
369142,
369175,
369209,
369242,
369275,
369309,
369342,
369375,
369408,
369441,
369475,
369508,
369541,
369574,
369607,
369640,
369673,
369706,
369739,
369772,
369805,
369838,
369871,
369904,
369937,
369969,
370002,
370035,
370068,
370101,
370133,
370166,
370199,
370231,
370264,
370297,
370329,
370362,
370394,
370427,
370460,
370492,
370524,
370557,
370589,
370622,
370654,
370687,
370719,
370751,
370784,
370816,
370848,
370880,
370913,
370945,
370977,
371009,
371041,
371073,
371106,
371138,
371170,
371202,
371234,
371266,
371298,
371330,
371362,
371394,
371426,
371457,
371489,
371521,
371553,
371585,
371617,
371648,
371680,
371712,
371743,
371775,
371807,
371838,
371870,
371902,
371933,
371965,
371996,
372028,
372059,
372091,
372122,
372154,
372185,
372217,
372248,
372279,
372311,
372342,
372373,
372405,
372436,
372467,
372498,
372530,
372561,
372592,
372623,
372654,
372685,
372717,
372748,
372779,
372810,
372841,
372872,
372903,
372934,
372965,
372996,
373026,
373057,
373088,
373119,
373150,
373181,
373212,
373242,
373273,
373304,
373335,
373365,
373396,
373427,
373457,
373488,
373518,
373549,
373580,
373610,
373641,
373671,
373702,
373732,
373763,
373793,
373824,
373854,
373884,
373915,
373945,
373975,
374006,
374036,
374066,
374096,
374127,
374157,
374187,
374217,
374248,
374278,
374308,
374338,
374368,
374398,
374428,
374458,
374488,
374518,
374548,
374578,
374608,
374638,
374668,
374698,
374728,
374758,
374787,
374817,
374847,
374877,
374907,
374936,
374966,
374996,
375026,
375055,
375085,
375115,
375144,
375174,
375203,
375233,
375263,
375292,
375322,
375351,
375381,
375410,
375440,
375469,
375499,
375528,
375557,
375587,
375616,
375645,
375675,
375704,
375733,
375763,
375792,
375821,
375850,
375880,
375909,
375938,
375967,
375996,
376025,
376054,
376084,
376113,
376142,
376171,
376200,
376229,
376258,
376287,
376316,
376345,
376373,
376402,
376431,
376460,
376489,
376518,
376547,
376575,
376604,
376633,
376662,
376691,
376719,
376748,
376777,
376805,
376834,
376863,
376891,
376920,
376948,
376977,
377006,
377034,
377063,
377091,
377120,
377148,
377177,
377205,
377234,
377262,
377290,
377319,
377347,
377375,
377404,
377432,
377460,
377489,
377517,
377545,
377573,
377602,
377630,
377658,
377686,
377714,
377743,
377771,
377799,
377827,
377855,
377883,
377911,
377939,
377967,
377995,
378023,
378051,
378079,
378107,
378135,
378163,
378191,
378219,
378247,
378274,
378302,
378330,
378358,
378386,
378413,
378441,
378469,
378497,
378524,
378552,
378580,
378607,
378635,
378663,
378690,
378718,
378746,
378773,
378801,
378828,
378856,
378883,
378911,
378938,
378966,
378993,
379021,
379048,
379076,
379103,
379130,
379158,
379185,
379212,
379240,
379267,
379294,
379322,
379349,
379376,
379403,
379431,
379458,
379485,
379512,
379539,
379566,
379594,
379621,
379648,
379675,
379702,
379729,
379756,
379783,
379810,
379837,
379864,
379891,
379918,
379945,
379972,
379999,
380026,
380053,
380079,
380106,
380133,
380160,
380187,
380214,
380240,
380267,
380294,
380321,
380347,
380374,
380401,
380427,
380454,
380481,
380507,
380534,
380561,
380587,
380614,
380640,
380667,
380694,
380720,
380747,
380773,
380800,
380826,
380853,
380879,
380905,
380932,
380958,
380985,
381011,
381037,
381064,
381090,
381116,
381143,
381169,
381195,
381222,
381248,
381274,
381300,
381327,
381353,
381379,
381405,
381431,
381457,
381484,
381510,
381536,
381562,
381588,
381614,
381640,
381666,
381692,
381718,
381744,
381770,
381796,
381822,
381848,
381874,
381900,
381926,
381952,
381978,
382003,
382029,
382055,
382081,
382107,
382133,
382158,
382184,
382210,
382236,
382261,
382287,
382313,
382338,
382364,
382390,
382415,
382441,
382467,
382492,
382518,
382544,
382569,
382595,
382620,
382646,
382671,
382697,
382722,
382748,
382773,
382799,
382824,
382850,
382875,
382900,
382926,
382951,
382977,
383002,
383027,
383053,
383078,
383103,
383129,
383154,
383179,
383204,
383230,
383255,
383280,
383305,
383330,
383356,
383381,
383406,
383431,
383456,
383481,
383506,
383532,
383557,
383582,
383607,
383632,
383657,
383682,
383707,
383732,
383757,
383782,
383807,
383832,
383857,
383882,
383906,
383931,
383956,
383981,
384006,
384031,
384056,
384081,
384105,
384130,
384155,
384180,
384204,
384229,
384254,
384279,
384303,
384328,
384353,
384377,
384402,
384427,
384451,
384476,
384501,
384525,
384550,
384574,
384599,
384624,
384648,
384673,
384697,
384722,
384746,
384771,
384795,
384820,
384844,
384868,
384893,
384917,
384942,
384966,
384990,
385015,
385039,
385063,
385088,
385112,
385136,
385161,
385185,
385209,
385234,
385258,
385282,
385306,
385330,
385355,
385379,
385403,
385427,
385451,
385476,
385500,
385524,
385548,
385572,
385596,
385620,
385644,
385668,
385692,
385716,
385740,
385764,
385788,
385812,
385836,
385860,
385884,
385908,
385932,
385956,
385980,
386004,
386028,
386052,
386075,
386099,
386123,
386147,
386171,
386195,
386218,
386242,
386266,
386290,
386313,
386337,
386361,
386385,
386408,
386432,
386456,
386479,
386503,
386527,
386550,
386574,
386597,
386621,
386645,
386668,
386692,
386715,
386739,
386762,
386786,
386809,
386833,
386856,
386880,
386903,
386927,
386950,
386974,
386997,
387021,
387044,
387067,
387091,
387114,
387138,
387161,
387184,
387208,
387231,
387254,
387277,
387301,
387324,
387347,
387371,
387394,
387417,
387440,
387463,
387487,
387510,
387533,
387556,
387579,
387603,
387626,
387649,
387672,
387695,
387718,
387741,
387764,
387787,
387810,
387833,
387856,
387879,
387902,
387925,
387948,
387971,
387994,
388017,
388040,
388063,
388086,
388109,
388132,
388155,
388178,
388201,
388223,
388246,
388269,
388292,
388315,
388338,
388360,
388383,
388406,
388429,
388452,
388474,
388497,
388520,
388543,
388565,
388588,
388611,
388633,
388656,
388679,
388701,
388724,
388747,
388769,
388792,
388814,
388837,
388860,
388882,
388905,
388927,
388950,
388972,
388995,
389017,
389040,
389062,
389085,
389107,
389130,
389152,
389175,
389197,
389219,
389242,
389264,
389287,
389309,
389331,
389354,
389376,
389398,
389421,
389443,
389465,
389488,
389510,
389532,
389554,
389577,
389599,
389621,
389643,
389666,
389688,
389710,
389732,
389754,
389777,
389799,
389821,
389843,
389865,
389887,
389909,
389931,
389954,
389976,
389998,
390020,
390042,
390064,
390086,
390108,
390130,
390152,
390174,
390196,
390218,
390240,
390262,
390284,
390306,
390328,
390350,
390371,
390393,
390415,
390437,
390459,
390481,
390503,
390525,
390546,
390568,
390590,
390612,
390634,
390655,
390677,
390699,
390721,
390743,
390764,
390786,
390808,
390829,
390851,
390873,
390894,
390916,
390938,
390959,
390981,
391003,
391024,
391046,
391068,
391089,
391111,
391132,
391154,
391176,
391197,
391219,
391240,
391262,
391283,
391305,
391326,
391348,
391369,
391391,
391412,
391434,
391455,
391476,
391498,
391519,
391541,
391562,
391583,
391605,
391626,
391648,
391669,
391690,
391712,
391733,
391754,
391776,
391797,
391818,
391839,
391861,
391882,
391903,
391925,
391946,
391967,
391988,
392009,
392031,
392052,
392073,
392094,
392115,
392136,
392158,
392179,
392200,
392221,
392242,
392263,
392284,
392305,
392326,
392348,
392369,
392390,
392411,
392432,
392453,
392474,
392495,
392516,
392537,
392558,
392579,
392600,
392621,
392642,
392663,
392683,
392704,
392725,
392746,
392767,
392788,
392809,
392830,
392851,
392871,
392892,
392913,
392934,
392955,
392976,
392996,
393017,
393038,
393059,
393079,
393100,
393121,
393142,
393162,
393183,
393204,
393225,
393245,
393266,
393287,
393307,
393328,
393349,
393369,
393390,
393410,
393431,
393452,
393472,
393493,
393513,
393534,
393555,
393575,
393596,
393616,
393637,
393657,
393678,
393698,
393719,
393739,
393760,
393780,
393801,
393821,
393842,
393862,
393883,
393903,
393923,
393944,
393964,
393985,
394005,
394025,
394046,
394066,
394087,
394107,
394127,
394148,
394168,
394188,
394208,
394229,
394249,
394269,
394290,
394310,
394330,
394350,
394371,
394391,
394411,
394431,
394451,
394472,
394492,
394512,
394532,
394552,
394573,
394593,
394613,
394633,
394653,
394673,
394693,
394713,
394734,
394754,
394774,
394794,
394814,
394834,
394854,
394874,
394894,
394914,
394934,
394954,
394974,
394994,
395014,
395034,
395054,
395074,
395094,
395114,
395134,
395154,
395174,
395193,
395213,
395233,
395253,
395273,
395293,
395313,
395333,
395353,
395372,
395392,
395412,
395432,
395452,
395471,
395491,
395511,
395531,
395551,
395570,
395590,
395610,
395630,
395649,
395669,
395689,
395708,
395728,
395748,
395768,
395787,
395807,
395827,
395846,
395866,
395885,
395905,
395925,
395944,
395964,
395984,
396003,
396023,
396042,
396062,
396081,
396101,
396121,
396140,
396160,
396179,
396199,
396218,
396238,
396257,
396277,
396296,
396316,
396335,
396355,
396374,
396393,
396413,
396432,
396452,
396471,
396491,
396510,
396529,
396549,
396568,
396587,
396607,
396626,
396646,
396665,
396684,
396704,
396723,
396742,
396761,
396781,
396800,
396819,
396839,
396858,
396877,
396896,
396916,
396935,
396954,
396973,
396993,
397012,
397031,
397050,
397069,
397088,
397108,
397127,
397146,
397165,
397184,
397203,
397222,
397242,
397261,
397280,
397299,
397318,
397337,
397356,
397375,
397394,
397413,
397432,
397451,
397470,
397490,
397509,
397528,
397547,
397566,
397585,
397604,
397622,
397641,
397660,
397679,
397698,
397717,
397736,
397755,
397774,
397793,
397812,
397831,
397850,
397869,
397887,
397906,
397925,
397944,
397963,
397982,
398000,
398019,
398038,
398057,
398076,
398095,
398113,
398132,
398151,
398170,
398188,
398207,
398226,
398245,
398263,
398282,
398301,
398320,
398338,
398357,
398376,
398394,
398413,
398432,
398450,
398469,
398488,
398506,
398525,
398544,
398562,
398581,
398599,
398618,
398637,
398655,
398674,
398692,
398711,
398730,
398748,
398767,
398785,
398804,
398822,
398841,
398859,
398878,
398896,
398915,
398933,
398952,
398970,
398989,
399007,
399026,
399044,
399063,
399081,
399099,
399118,
399136,
399155,
399173,
399191,
399210,
399228,
399247,
399265,
399283,
399302,
399320,
399338,
399357,
399375,
399393,
399412,
399430,
399448,
399466,
399485,
399503,
399521,
399540,
399558,
399576,
399594,
399613,
399631,
399649,
399667,
399686,
399704,
399722,
399740,
399758,
399776,
399795,
399813,
399831,
399849,
399867,
399885,
399904,
399922,
399940,
399958,
399976,
399994,
400012,
400030,
400048,
400066,
400085,
400103,
400121,
400139,
400157,
400175,
400193,
400211,
400229,
400247,
400265,
400283,
400301,
400319,
400337,
400355,
400373,
400391,
400409,
400427,
400445,
400463,
400480,
400498,
400516,
400534,
400552,
400570,
400588,
400606,
400624,
400642,
400659,
400677,
400695,
400713,
400731,
400749,
400766,
400784,
400802,
400820,
400838,
400856,
400873,
400891,
400909,
400927,
400944,
400962,
400980,
400998,
401015,
401033,
401051,
401069,
401086,
401104,
401122,
401139,
401157,
401175,
401192,
401210,
401228,
401245,
401263,
401281,
401298,
401316,
401334,
401351,
401369,
401387,
401404,
401422,
401439,
401457,
401474,
401492,
401510,
401527,
401545,
401562,
401580,
401597,
401615,
401632,
401650,
401667,
401685,
401702,
401720,
401737,
401755,
401772,
401790,
401807,
401825,
401842,
401860,
401877,
401895,
401912,
401929,
401947,
401964,
401982,
401999,
402016,
402034,
402051,
402069,
402086,
402103,
402121,
402138,
402155,
402173,
402190,
402207,
402225,
402242,
402259,
402277,
402294,
402311,
402328,
402346,
402363,
402380,
402397,
402415,
402432,
402449,
402466,
402484,
402501,
402518,
402535,
402553,
402570,
402587,
402604,
402621,
402639,
402656,
402673,
402690,
402707,
402724,
402741,
402759,
402776,
402793,
402810,
402827,
402844,
402861,
402878,
402895,
402913,
402930,
402947,
402964,
402981,
402998,
403015,
403032,
403049,
403066,
403083,
403100,
403117,
403134,
403151,
403168,
403185,
403202,
403219,
403236,
403253,
403270,
403287,
403304,
403321,
403338,
403355,
403372,
403389,
403406,
403422,
403439,
403456,
403473,
403490,
403507,
403524,
403541,
403558,
403574,
403591,
403608,
403625,
403642,
403659,
403675,
403692,
403709,
403726,
403743,
403760,
403776,
403793,
403810,
403827,
403843,
403860,
403877,
403894,
403910,
403927,
403944,
403961,
403977,
403994,
404011,
404028,
404044,
404061,
404078,
404094,
404111,
404128,
404144,
404161,
404178,
404194,
404211,
404228,
404244,
404261,
404278,
404294,
404311,
404327,
404344,
404361,
404377,
404394,
404410,
404427,
404444,
404460,
404477,
404493,
404510,
404526,
404543,
404559,
404576,
404592,
404609,
404625,
404642,
404659,
404675,
404691,
404708,
404724,
404741,
404757,
404774,
404790,
404807,
404823,
404840,
404856,
404873,
404889,
404905,
404922,
404938,
404955,
404971,
404987,
405004,
405020,
405037,
405053,
405069,
405086,
405102,
405118,
405135,
405151,
405167,
405184,
405200,
405216,
405233,
405249,
405265,
405282,
405298,
405314,
405331,
405347,
405363,
405379,
405396,
405412,
405428,
405444,
405461,
405477,
405493,
405509,
405526,
405542,
405558,
405574,
405590,
405607,
405623,
405639,
405655,
405671,
405687,
405704,
405720,
405736,
405752,
405768,
405784,
405801,
405817,
405833,
405849,
405865,
405881,
405897,
405913,
405929,
405945,
405962,
405978,
405994,
406010,
406026,
406042,
406058,
406074,
406090,
406106,
406122,
406138,
406154,
406170,
406186,
406202,
406218,
406234,
406250,
406266,
406282,
406298,
406314,
406330,
406346,
406362,
406378,
406394,
406410,
406426,
406442,
406458,
406474,
406489,
406505,
406521,
406537,
406553,
406569,
406585,
406601,
406617,
406632,
406648,
406664,
406680,
406696,
406712,
406728,
406743,
406759,
406775,
406791,
406807,
406822,
406838,
406854,
406870,
406886,
406901,
406917,
406933,
406949,
406965,
406980,
406996,
407012,
407028,
407043,
407059,
407075,
407090,
407106,
407122,
407138,
407153,
407169,
407185,
407200,
407216,
407232,
407247,
407263,
407279,
407294,
407310,
407326,
407341,
407357,
407373,
407388,
407404,
407420,
407435,
407451,
407466,
407482,
407498,
407513,
407529,
407544,
407560,
407576,
407591,
407607,
407622,
407638,
407653,
407669,
407684,
407700,
407716,
407731,
407747,
407762,
407778,
407793,
407809,
407824,
407840,
407855,
407871,
407886,
407902,
407917,
407932,
407948,
407963,
407979,
407994,
408010,
408025,
408041,
408056,
408071,
408087,
408102,
408118,
408133,
408149,
408164,
408179,
408195,
408210,
408225,
408241,
408256,
408272,
408287,
408302,
408318,
408333,
408348,
408364,
408379,
408394,
408410,
408425,
408440,
408456,
408471,
408486,
408501,
408517,
408532,
408547,
408563,
408578,
408593,
408608,
408624,
408639,
408654,
408669,
408685,
408700,
408715,
408730,
408745,
408761,
408776,
408791,
408806,
408821,
408837,
408852,
408867,
408882,
408897,
408913,
408928,
408943,
408958,
408973,
408988,
409003,
409019,
409034,
409049,
409064,
409079,
409094,
409109,
409124,
409140,
409155,
409170,
409185,
409200,
409215,
409230,
409245,
409260,
409275,
409290,
409305,
409320,
409335,
409350,
409365,
409381,
409396,
409411,
409426,
409441,
409456,
409471,
409486,
409501,
409516,
409531,
409546,
409560,
409575,
409590,
409605,
409620,
409635,
409650,
409665,
409680,
409695,
409710,
409725,
409740,
409755,
409770,
409785,
409799,
409814,
409829,
409844,
409859,
409874,
409889,
409904,
409919,
409933,
409948,
409963,
409978,
409993,
410008,
410023,
410037,
410052,
410067,
410082,
410097,
410111,
410126,
410141,
410156,
410171,
410185,
410200,
410215,
410230,
410245,
410259,
410274,
410289,
410304,
410318,
410333,
410348,
410363,
410377,
410392,
410407,
410421,
410436,
410451,
410466,
410480,
410495,
410510,
410524,
410539,
410554,
410568,
410583,
410598,
410612,
410627,
410642,
410656,
410671,
410686,
410700,
410715,
410730,
410744,
410759,
410773,
410788,
410803,
410817,
410832,
410847,
410861,
410876,
410890,
410905,
410919,
410934,
410949,
410963,
410978,
410992,
411007,
411021,
411036,
411050,
411065,
411079,
411094,
411109,
411123,
411138,
411152,
411167,
411181,
411196,
411210,
411225,
411239,
411254,
411268,
411282,
411297,
411311,
411326,
411340,
411355,
411369,
411384,
411398,
411413,
411427,
411441,
411456,
411470,
411485,
411499,
411513,
411528,
411542,
411557,
411571,
411585,
411600,
411614,
411629,
411643,
411657,
411672,
411686,
411700,
411715,
411729,
411743,
411758,
411772,
411786,
411801,
411815,
411829,
411844,
411858,
411872,
411887,
411901,
411915,
411929,
411944,
411958,
411972,
411987,
412001,
412015,
412029,
412044,
412058,
412072,
412086,
412101,
412115,
412129,
412143,
412157,
412172,
412186,
412200,
412214,
412229,
412243,
412257,
412271,
412285,
412299,
412314,
412328,
412342,
412356,
412370,
412384,
412399,
412413,
412427,
412441,
412455,
412469,
412483,
412498,
412512,
412526,
412540,
412554,
412568,
412582,
412596,
412610,
412625,
412639,
412653,
412667,
412681,
412695,
412709,
412723,
412737,
412751,
412765,
412779,
412793,
412807,
412821,
412835,
412849,
412864,
412878,
412892,
412906,
412920,
412934,
412948,
412962,
412976,
412990,
413004,
413018,
413032,
413045,
413059,
413073,
413087,
413101,
413115,
413129,
413143,
413157,
413171,
413185,
413199,
413213,
413227,
413241,
413255,
413269,
413282,
413296,
413310,
413324,
413338,
413352,
413366,
413380,
413394,
413407,
413421,
413435,
413449,
413463,
413477,
413491,
413504,
413518,
413532,
413546,
413560,
413574,
413587,
413601,
413615,
413629,
413643,
413657,
413670,
413684,
413698,
413712,
413726,
413739,
413753,
413767,
413781,
413794,
413808,
413822,
413836,
413849,
413863,
413877,
413891,
413904,
413918,
413932,
413946,
413959,
413973,
413987,
414000,
414014,
414028,
414042,
414055,
414069,
414083,
414096,
414110,
414124,
414137,
414151,
414165,
414178,
414192,
414206,
414219,
414233,
414247,
414260,
414274,
414288,
414301,
414315,
414328,
414342,
414356,
414369,
414383,
414397,
414410,
414424,
414437,
414451,
414464,
414478,
414492,
414505,
414519,
414532,
414546,
414559,
414573,
414587,
414600,
414614,
414627,
414641,
414654,
414668,
414681,
414695,
414708,
414722,
414735,
414749,
414762,
414776,
414789,
414803,
414816,
414830,
414843,
414857,
414870,
414884,
414897,
414911,
414924,
414938,
414951,
414965,
414978,
414992,
415005,
415018,
415032,
415045,
415059,
415072,
415086,
415099,
415112,
415126,
415139,
415153,
415166,
415179,
415193,
415206,
415220,
415233,
415246,
415260,
415273,
415286,
415300,
415313,
415326,
415340,
415353,
415367,
415380,
415393,
415407,
415420,
415433,
415447,
415460,
415473,
415486,
415500,
415513,
415526,
415540,
415553,
415566,
415580,
415593,
415606,
415619,
415633,
415646,
415659,
415672,
415686,
415699,
415712,
415726,
415739,
415752,
415765,
415778,
415792,
415805,
415818,
415831,
415845,
415858,
415871,
415884,
415897,
415911,
415924,
415937,
415950,
415963,
415977,
415990,
416003,
416016,
416029,
416042,
416056,
416069,
416082,
416095,
416108,
416121,
416135,
416148,
416161,
416174,
416187,
416200,
416213,
416226,
416240,
416253,
416266,
416279,
416292,
416305,
416318,
416331,
416344,
416357,
416371,
416384,
416397,
416410,
416423,
416436,
416449,
416462,
416475,
416488,
416501,
416514,
416527,
416540,
416553,
416566,
416579,
416592,
416605,
416618,
416632,
416645,
416658,
416671,
416684,
416697,
416710,
416723,
416735,
416748,
416761,
416774,
416787,
416800,
416813,
416826,
416839,
416852,
416865,
416878,
416891,
416904,
416917,
416930,
416943,
416956,
416969,
416982,
416995,
417007,
417020,
417033,
417046,
417059,
417072,
417085,
417098,
417111,
417124,
417136,
417149,
417162,
417175,
417188,
417201,
417214,
417227,
417239,
417252,
417265,
417278,
417291,
417304,
417317,
417329,
417342,
417355,
417368,
417381,
417393,
417406,
417419,
417432,
417445,
417458,
417470,
417483,
417496,
417509,
417522,
417534,
417547,
417560,
417573,
417585,
417598,
417611,
417624,
417636,
417649,
417662,
417675,
417687,
417700,
417713,
417726,
417738,
417751,
417764,
417777,
417789,
417802,
417815,
417827,
417840,
417853,
417866,
417878,
417891,
417904,
417916,
417929,
417942,
417954,
417967,
417980,
417992,
418005,
418018,
418030,
418043,
418056,
418068,
418081,
418094,
418106,
418119,
418131,
418144,
418157,
418169,
418182,
418195,
418207,
418220,
418232,
418245,
418258,
418270,
418283,
418295,
418308,
418321,
418333,
418346,
418358,
418371,
418383,
418396,
418409,
418421,
418434,
418446,
418459,
418471,
418484,
418496,
418509,
418522,
418534,
418547,
418559,
418572,
418584,
418597,
418609,
418622,
418634,
418647,
418659,
418672,
418684,
418697,
418709,
418722,
418734,
418747,
418759,
418772,
418784,
418797,
418809,
418821,
418834,
418846,
418859,
418871,
418884,
418896,
418909,
418921,
418934,
418946,
418958,
418971,
418983,
418996,
419008,
419020,
419033,
419045,
419058,
419070,
419082,
419095,
419107,
419120,
419132,
419144,
419157,
419169,
419182,
419194,
419206,
419219,
419231,
419243,
419256,
419268,
419280,
419293,
419305,
419317,
419330,
419342,
419354,
419367,
419379,
419391,
419404,
419416,
419428,
419441,
419453,
419465,
419478,
419490,
419502,
419514,
419527,
419539,
419551,
419564,
419576,
419588,
419600,
419613,
419625,
419637,
419649,
419662,
419674,
419686,
419698,
419711,
419723,
419735,
419747,
419760,
419772,
419784,
419796,
419809,
419821,
419833,
419845,
419857,
419870,
419882,
419894,
419906,
419918,
419931,
419943,
419955,
419967,
419979,
419992,
420004,
420016,
420028,
420040,
420052,
420065,
420077,
420089,
420101,
420113,
420125,
420137,
420150,
420162,
420174,
420186,
420198,
420210,
420222,
420234,
420247,
420259,
420271,
420283,
420295,
420307,
420319,
420331,
420343,
420355,
420368,
420380,
420392,
420404,
420416,
420428,
420440,
420452,
420464,
420476,
420488,
420500,
420512,
420524,
420536,
420548,
420560,
420573,
420585,
420597,
420609,
420621,
420633,
420645,
420657,
420669,
420681,
420693,
420705,
420717,
420729,
420741,
420753,
420765,
420777,
420789,
420801,
420813,
420825,
420837,
420849,
420861,
420872,
420884,
420896,
420908,
420920,
420932,
420944,
420956,
420968,
420980,
420992,
421004,
421016,
421028,
421040,
421052,
421064,
421075,
421087,
421099,
421111,
421123,
421135,
421147,
421159,
421171,
421183,
421194,
421206,
421218,
421230,
421242,
421254,
421266,
421278,
421289,
421301,
421313,
421325,
421337,
421349,
421361,
421372,
421384,
421396,
421408,
421420,
421432,
421443,
421455,
421467,
421479,
421491,
421503,
421514,
421526,
421538,
421550,
421562,
421573,
421585,
421597,
421609,
421621,
421632,
421644,
421656,
421668,
421680,
421691,
421703,
421715,
421727,
421738,
421750,
421762,
421774,
421785,
421797,
421809,
421821,
421832,
421844,
421856,
421868,
421879,
421891,
421903,
421914,
421926,
421938,
421950,
421961,
421973,
421985,
421996,
422008,
422020,
422031,
422043,
422055,
422067,
422078,
422090,
422102,
422113,
422125,
422137,
422148,
422160,
422172,
422183,
422195,
422207,
422218,
422230,
422241,
422253,
422265,
422276,
422288,
422300,
422311,
422323,
422335,
422346,
422358,
422369,
422381,
422393,
422404,
422416,
422427,
422439,
422451,
422462,
422474,
422485,
422497,
422509,
422520,
422532,
422543,
422555,
422566,
422578,
422590,
422601,
422613,
422624,
422636,
422647,
422659,
422670,
422682,
422694,
422705,
422717,
422728,
422740,
422751,
422763,
422774,
422786,
422797,
422809,
422820,
422832,
422843,
422855,
422866,
422878,
422889,
422901,
422912,
422924,
422935,
422947,
422958,
422970,
422981,
422993,
423004,
423016,
423027,
423039,
423050,
423061,
423073,
423084,
423096,
423107,
423119,
423130,
423142,
423153,
423164,
423176,
423187,
423199,
423210,
423222,
423233,
423244,
423256,
423267,
423279,
423290,
423301,
423313,
423324,
423336,
423347,
423358,
423370,
423381,
423393,
423404,
423415,
423427,
423438,
423449,
423461,
423472,
423484,
423495,
423506,
423518,
423529,
423540,
423552,
423563,
423574,
423586,
423597,
423608,
423620,
423631,
423642,
423654,
423665,
423676,
423688,
423699,
423710,
423721,
423733,
423744,
423755,
423767,
423778,
423789,
423801,
423812,
423823,
423834,
423846,
423857,
423868,
423880,
423891,
423902,
423913,
423925,
423936,
423947,
423958,
423970,
423981,
423992,
424003,
424015,
424026,
424037,
424048,
424060,
424071,
424082,
424093,
424104,
424116,
424127,
424138,
424149,
424161,
424172,
424183,
424194,
424205,
424217,
424228,
424239,
424250,
424261,
424272,
424284,
424295,
424306,
424317,
424328,
424340,
424351,
424362,
424373,
424384,
424395,
424407,
424418,
424429,
424440,
424451,
424462,
424473,
424485,
424496,
424507,
424518,
424529,
424540,
424551,
424562,
424574,
424585,
424596,
424607,
424618,
424629,
424640,
424651,
424662,
424673,
424685,
424696,
424707,
424718,
424729,
424740,
424751,
424762,
424773,
424784,
424795,
424806,
424818,
424829,
424840,
424851,
424862,
424873,
424884,
424895,
424906,
424917,
424928,
424939,
424950,
424961,
424972,
424983,
424994,
425005,
425016,
425027,
425038,
425049,
425060,
425071,
425082,
425093,
425104,
425115,
425126,
425137,
425148,
425159,
425170,
425181,
425192,
425203,
425214,
425225,
425236,
425247,
425258,
425269,
425280,
425291,
425302,
425313,
425324,
425335,
425346,
425357,
425368,
425379,
425390,
425400,
425411,
425422,
425433,
425444,
425455,
425466,
425477,
425488,
425499,
425510,
425521,
425532,
425542,
425553,
425564,
425575,
425586,
425597,
425608,
425619,
425630,
425640,
425651,
425662,
425673,
425684,
425695,
425706,
425717,
425727,
425738,
425749,
425760,
425771,
425782,
425793,
425803,
425814,
425825,
425836,
425847,
425858,
425869,
425879,
425890,
425901,
425912,
425923,
425934,
425944,
425955,
425966,
425977,
425988,
425998,
426009,
426020,
426031,
426042,
426052,
426063,
426074,
426085,
426096,
426106,
426117,
426128,
426139,
426149,
426160,
426171,
426182,
426193,
426203,
426214,
426225,
426236,
426246,
426257,
426268,
426279,
426289,
426300,
426311,
426322,
426332,
426343,
426354,
426364,
426375,
426386,
426397,
426407,
426418,
426429,
426440,
426450,
426461,
426472,
426482,
426493,
426504,
426514,
426525,
426536,
426547,
426557,
426568,
426579,
426589,
426600,
426611,
426621,
426632,
426643,
426653,
426664,
426675,
426685,
426696,
426707,
426717,
426728,
426739,
426749,
426760,
426771,
426781,
426792,
426802,
426813,
426824,
426834,
426845,
426856,
426866,
426877,
426887,
426898,
426909,
426919,
426930,
426941,
426951,
426962,
426972,
426983,
426994,
427004,
427015,
427025,
427036,
427047,
427057,
427068,
427078,
427089,
427099,
427110,
427121,
427131,
427142,
427152,
427163,
427173,
427184,
427194,
427205,
427216,
427226,
427237,
427247,
427258,
427268,
427279,
427289,
427300,
427310,
427321,
427331,
427342,
427353,
427363,
427374,
427384,
427395,
427405,
427416,
427426,
427437,
427447,
427458,
427468,
427479,
427489,
427500,
427510,
427521,
427531,
427542,
427552,
427563,
427573,
427583,
427594,
427604,
427615,
427625,
427636,
427646,
427657,
427667,
427678,
427688,
427699,
427709,
427719,
427730,
427740,
427751,
427761,
427772,
427782,
427792,
427803,
427813,
427824,
427834,
427845,
427855,
427865,
427876,
427886,
427897,
427907,
427917,
427928,
427938,
427949,
427959,
427969,
427980,
427990,
428001,
428011,
428021,
428032,
428042,
428053,
428063,
428073,
428084,
428094,
428104,
428115,
428125,
428135,
428146,
428156,
428167,
428177,
428187,
428198,
428208,
428218,
428229,
428239,
428249,
428260,
428270,
428280,
428291,
428301,
428311,
428322,
428332,
428342,
428353,
428363,
428373,
428383,
428394,
428404,
428414,
428425,
428435,
428445,
428456,
428466,
428476,
428486,
428497,
428507,
428517,
428528,
428538,
428548,
428558,
428569,
428579,
428589,
428599,
428610,
428620,
428630,
428641,
428651,
428661,
428671,
428682,
428692,
428702,
428712,
428722,
428733,
428743,
428753,
428763,
428774,
428784,
428794,
428804,
428815,
428825,
428835,
428845,
428855,
428866,
428876,
428886,
428896,
428906,
428917,
428927,
428937,
428947,
428957,
428968,
428978,
428988,
428998,
429008,
429019,
429029,
429039,
429049,
429059,
429069,
429080,
429090,
429100,
429110,
429120,
429130,
429141,
429151,
429161,
429171,
429181,
429191,
429201,
429212,
429222,
429232,
429242,
429252,
429262,
429272,
429282,
429293,
429303,
429313,
429323,
429333,
429343,
429353,
429363,
429374,
429384,
429394,
429404,
429414,
429424,
429434,
429444,
429454,
429464,
429475,
429485,
429495,
429505,
429515,
429525,
429535,
429545,
429555,
429565,
429575,
429585,
429595,
429605,
429616,
429626,
429636,
429646,
429656,
429666,
429676,
429686,
429696,
429706,
429716,
429726,
429736,
429746,
429756,
429766,
429776,
429786,
429796,
429806,
429816,
429826,
429836,
429846,
429856,
429866,
429876,
429886,
429896,
429906,
429916,
429926,
429936,
429946,
429956,
429966,
429976,
429986,
429996,
430006,
430016,
430026,
430036,
430046,
430056,
430066,
430076,
430086,
430096,
430106,
430116,
430126,
430136,
430146,
430156,
430166,
430176,
430186,
430196,
430206,
430215,
430225,
430235,
430245,
430255,
430265,
430275,
430285,
430295,
430305,
430315,
430325,
430335,
430345,
430354,
430364,
430374,
430384,
430394,
430404,
430414,
430424,
430434,
430444,
430453,
430463,
430473,
430483,
430493,
430503,
430513,
430523,
430533,
430542,
430552,
430562,
430572,
430582,
430592,
430602,
430612,
430621,
430631,
430641,
430651,
430661,
430671,
430681,
430690,
430700,
430710,
430720,
430730,
430740,
430749,
430759,
430769,
430779,
430789,
430799,
430808,
430818,
430828,
430838,
430848,
430857,
430867,
430877,
430887,
430897,
430907,
430916,
430926,
430936,
430946,
430956,
430965,
430975,
430985,
430995,
431004,
431014,
431024,
431034,
431044,
431053,
431063,
431073,
431083,
431092,
431102,
431112,
431122,
431132,
431141,
431151,
431161,
431171,
431180,
431190,
431200,
431210,
431219,
431229,
431239,
431249,
431258,
431268,
431278,
431287,
431297,
431307,
431317,
431326,
431336,
431346,
431356,
431365,
431375,
431385,
431394,
431404,
431414,
431424,
431433,
431443,
431453,
431462,
431472,
431482,
431491,
431501,
431511,
431520,
431530,
431540,
431550,
431559,
431569,
431579,
431588,
431598,
431608,
431617,
431627,
431637,
431646,
431656,
431666,
431675,
431685,
431695,
431704,
431714,
431723,
431733,
431743,
431752,
431762,
431772,
431781,
431791,
431801,
431810,
431820,
431829,
431839,
431849,
431858,
431868,
431878,
431887,
431897,
431906,
431916,
431926,
431935,
431945,
431954,
431964,
431974,
431983,
431993,
432002,
432012,
432022,
432031,
432041,
432050,
432060,
432070,
432079,
432089,
432098,
432108,
432117,
432127,
432137,
432146,
432156,
432165,
432175,
432184,
432194,
432204,
432213,
432223,
432232,
432242,
432251,
432261,
432270,
432280,
432289,
432299,
432309,
432318,
432328,
432337,
432347,
432356,
432366,
432375,
432385,
432394,
432404,
432413,
432423,
432432,
432442,
432451,
432461,
432470,
432480,
432489,
432499,
432508,
432518,
432527,
432537,
432546,
432556,
432565,
432575,
432584,
432594,
432603,
432613,
432622,
432632,
432641,
432651,
432660,
432670,
432679,
432689,
432698,
432707,
432717,
432726,
432736,
432745,
432755,
432764,
432774,
432783,
432793,
432802,
432811,
432821,
432830,
432840,
432849,
432859,
432868,
432877,
432887,
432896,
432906,
432915,
432925,
432934,
432943,
432953,
432962,
432972,
432981,
432990,
433000,
433009,
433019,
433028,
433038,
433047,
433056,
433066,
433075,
433084,
433094,
433103,
433113,
433122,
433131,
433141,
433150,
433160,
433169,
433178,
433188,
433197,
433206,
433216,
433225,
433235,
433244,
433253,
433263,
433272,
433281,
433291,
433300,
433309,
433319,
433328,
433337,
433347,
433356,
433365,
433375,
433384,
433393,
433403,
433412,
433421,
433431,
433440,
433449,
433459,
433468,
433477,
433487,
433496,
433505,
433515,
433524,
433533,
433543,
433552,
433561,
433570,
433580,
433589,
433598,
433608,
433617,
433626,
433635,
433645,
433654,
433663,
433673,
433682,
433691,
433700,
433710,
433719,
433728,
433738,
433747,
433756,
433765,
433775,
433784,
433793,
433802,
433812,
433821,
433830,
433839,
433849,
433858,
433867,
433876,
433886,
433895,
433904,
433913,
433923,
433932,
433941,
433950,
433960,
433969,
433978,
433987,
433996,
434006,
434015,
434024,
434033,
434043,
434052,
434061,
434070,
434079,
434089,
434098,
434107,
434116,
434125,
434135,
434144,
434153,
434162,
434171,
434181,
434190,
434199,
434208,
434217,
434226,
434236,
434245,
434254,
434263,
434272,
434282,
434291,
434300,
434309,
434318,
434327,
434336,
434346,
434355,
434364,
434373,
434382,
434391,
434401,
434410,
434419,
434428,
434437,
434446,
434455,
434465,
434474,
434483,
434492,
434501,
434510,
434519,
434528,
434538,
434547,
434556,
434565,
434574,
434583,
434592,
434601,
434611,
434620,
434629,
434638,
434647,
434656,
434665,
434674,
434683,
434692,
434702,
434711,
434720,
434729,
434738,
434747,
434756,
434765,
434774,
434783,
434792,
434801,
434811,
434820,
434829,
434838,
434847,
434856,
434865,
434874,
434883,
434892,
434901,
434910,
434919,
434928,
434937,
434947,
434956,
434965,
434974,
434983,
434992,
435001,
435010,
435019,
435028,
435037,
435046,
435055,
435064,
435073,
435082,
435091,
435100,
435109,
435118,
435127,
435136,
435145,
435154,
435163,
435172,
435181,
435190,
435199,
435208,
435217,
435226,
435235,
435244,
435253,
435262,
435271,
435280,
435289,
435298,
435307,
435316,
435325,
435334,
435343,
435352,
435361,
435370,
435379,
435388,
435397,
435406,
435415,
435424,
435433,
435442,
435451,
435460,
435469,
435478,
435487,
435496,
435504,
435513,
435522,
435531,
435540,
435549,
435558,
435567,
435576,
435585,
435594,
435603,
435612,
435621,
435630,
435639,
435647,
435656,
435665,
435674,
435683,
435692,
435701,
435710,
435719,
435728,
435737,
435746,
435754,
435763,
435772,
435781,
435790,
435799,
435808,
435817,
435826,
435835,
435843,
435852,
435861,
435870,
435879,
435888,
435897,
435906,
435915,
435923,
435932,
435941,
435950,
435959,
435968,
435977,
435986,
435994,
436003,
436012,
436021,
436030,
436039,
436048,
436056,
436065,
436074,
436083,
436092,
436101,
436109,
436118,
436127,
436136,
436145,
436154,
436162,
436171,
436180,
436189,
436198,
436207,
436215,
436224,
436233,
436242,
436251,
436260,
436268,
436277,
436286,
436295,
436304,
436312,
436321,
436330,
436339,
436348,
436356,
436365,
436374,
436383,
436392,
436400,
436409,
436418,
436427,
436436,
436444,
436453,
436462,
436471,
436480,
436488,
436497,
436506,
436515,
436523,
436532,
436541,
436550,
436558,
436567,
436576,
436585,
436594,
436602,
436611,
436620,
436629,
436637,
436646,
436655,
436664,
436672,
436681,
436690,
436699,
436707,
436716,
436725,
436733,
436742,
436751,
436760,
436768,
436777,
436786,
436795,
436803,
436812,
436821,
436829,
436838,
436847,
436856,
436864,
436873,
436882,
436890,
436899,
436908,
436917,
436925,
436934,
436943,
436951,
436960,
436969,
436977,
436986,
436995,
437004,
437012,
437021,
437030,
437038,
437047,
437056,
437064,
437073,
437082,
437090,
437099,
437108,
437116,
437125,
437134,
437142,
437151,
437160,
437168,
437177,
437186,
437194,
437203,
437212,
437220,
437229,
437238,
437246,
437255,
437264,
437272,
437281,
437289,
437298,
437307,
437315,
437324,
437333,
437341,
437350,
437358,
437367,
437376,
437384,
437393,
437402,
437410,
437419,
437427,
437436,
437445,
437453,
437462,
437471,
437479,
437488,
437496,
437505,
437514,
437522,
437531,
437539,
437548,
437557,
437565,
437574,
437582,
437591,
437599,
437608,
437617,
437625,
437634,
437642,
437651,
437660,
437668,
437677,
437685,
437694,
437702,
437711,
437720,
437728,
437737,
437745,
437754,
437762,
437771,
437779,
437788,
437797,
437805,
437814,
437822,
437831,
437839,
437848,
437856,
437865,
437873,
437882,
437891,
437899,
437908,
437916,
437925,
437933,
437942,
437950,
437959,
437967,
437976,
437984,
437993,
438001,
438010,
438018,
438027,
438035,
438044,
438052,
438061,
438070,
438078,
438087,
438095,
438104,
438112,
438121,
438129,
438138,
438146,
438154,
438163,
438171,
438180,
438188,
438197,
438205,
438214,
438222,
438231,
438239,
438248,
438256,
438265,
438273,
438282,
438290,
438299,
438307,
438316,
438324,
438333,
438341,
438349,
438358,
438366,
438375,
438383,
438392,
438400,
438409,
438417,
438426,
438434,
438442,
438451,
438459,
438468,
438476,
438485,
438493,
438501,
438510,
438518,
438527,
438535,
438544,
438552,
438560,
438569,
438577,
438586,
438594,
438603,
438611,
438619,
438628,
438636,
438645,
438653,
438661,
438670,
438678,
438687,
438695,
438703,
438712,
438720,
438729,
438737,
438745,
438754,
438762,
438771,
438779,
438787,
438796,
438804,
438813,
438821,
438829,
438838,
438846,
438854,
438863,
438871,
438880,
438888,
438896,
438905,
438913,
438921,
438930,
438938,
438946,
438955,
438963,
438972,
438980,
438988,
438997,
439005,
439013,
439022,
439030,
439038,
439047,
439055,
439063,
439072,
439080,
439088,
439097,
439105,
439113,
439122,
439130,
439138,
439147,
439155,
439163,
439172,
439180,
439188,
439197,
439205,
439213,
439222,
439230,
439238,
439247,
439255,
439263,
439271,
439280,
439288,
439296,
439305,
439313,
439321,
439330,
439338,
439346,
439354,
439363,
439371,
439379,
439388,
439396,
439404,
439412,
439421,
439429,
439437,
439446,
439454,
439462,
439470,
439479,
439487,
439495,
439504,
439512,
439520,
439528,
439537,
439545,
439553,
439561,
439570,
439578,
439586,
439594,
439603,
439611,
439619,
439627,
439636,
439644,
439652,
439660,
439669,
439677,
439685,
439693,
439702,
439710,
439718,
439726,
439734,
439743,
439751,
439759,
439767,
439776,
439784,
439792,
439800,
439808,
439817,
439825,
439833,
439841,
439850,
439858,
439866,
439874,
439882,
439891,
439899,
439907,
439915,
439923,
439932,
439940,
439948,
439956,
439964,
439973,
439981,
439989,
439997,
440005,
440014,
440022,
440030,
440038,
440046,
440054,
440063,
440071,
440079,
440087,
440095,
440103,
440112,
440120,
440128,
440136,
440144,
440152,
440161,
440169,
440177,
440185,
440193,
440201,
440210,
440218,
440226,
440234,
440242,
440250,
440258,
440267,
440275,
440283,
440291,
440299,
440307,
440315,
440324,
440332,
440340,
440348,
440356,
440364,
440372,
440380,
440389,
440397,
440405,
440413,
440421,
440429,
440437,
440445,
440454,
440462,
440470,
440478,
440486,
440494,
440502,
440510,
440518,
440527,
440535,
440543,
440551,
440559,
440567,
440575,
440583,
440591,
440599,
440607,
440616,
440624,
440632,
440640,
440648,
440656,
440664,
440672,
440680,
440688,
440696,
440704,
440713,
440721,
440729,
440737,
440745,
440753,
440761,
440769,
440777,
440785,
440793,
440801,
440809,
440817,
440825,
440833,
440842,
440850,
440858,
440866,
440874,
440882,
440890,
440898,
440906,
440914,
440922,
440930,
440938,
440946,
440954,
440962,
440970,
440978,
440986,
440994,
441002,
441010,
441018,
441026,
441034,
441042,
441050,
441058,
441066,
441074,
441082,
441090,
441099,
441107,
441115,
441123,
441131,
441139,
441147,
441155,
441163,
441171,
441179,
441187,
441195,
441203,
441211,
441219,
441227,
441235,
441242,
441250,
441258,
441266,
441274,
441282,
441290,
441298,
441306,
441314,
441322,
441330,
441338,
441346,
441354,
441362,
441370,
441378,
441386,
441394,
441402,
441410,
441418,
441426,
441434,
441442,
441450,
441458,
441466,
441474,
441482,
441489,
441497,
441505,
441513,
441521,
441529,
441537,
441545,
441553,
441561,
441569,
441577,
441585,
441593,
441601,
441609,
441617,
441624,
441632,
441640,
441648,
441656,
441664,
441672,
441680,
441688,
441696,
441704,
441712,
441719,
441727,
441735,
441743,
441751,
441759,
441767,
441775,
441783,
441791,
441799,
441806,
441814,
441822,
441830,
441838,
441846,
441854,
441862,
441870,
441877,
441885,
441893,
441901,
441909,
441917,
441925,
441933,
441941,
441948,
441956,
441964,
441972,
441980,
441988,
441996,
442004,
442011,
442019,
442027,
442035,
442043,
442051,
442059,
442066,
442074,
442082,
442090,
442098,
442106,
442114,
442121,
442129,
442137,
442145,
442153,
442161,
442168,
442176,
442184,
442192,
442200,
442208,
442216,
442223,
442231,
442239,
442247,
442255,
442263,
442270,
442278,
442286,
442294,
442302,
442309,
442317,
442325,
442333,
442341,
442349,
442356,
442364,
442372,
442380,
442388,
442395,
442403,
442411,
442419,
442427,
442434,
442442,
442450,
442458,
442466,
442473,
442481,
442489,
442497,
442505,
442512,
442520,
442528,
442536,
442544,
442551,
442559,
442567,
442575,
442582,
442590,
442598,
442606,
442614,
442621,
442629,
442637,
442645,
442652,
442660,
442668,
442676,
442683,
442691,
442699,
442707,
442714,
442722,
442730,
442738,
442745,
442753,
442761,
442769,
442776,
442784,
442792,
442800,
442807,
442815,
442823,
442831,
442838,
442846,
442854,
442862,
442869,
442877,
442885,
442893,
442900,
442908,
442916,
442923,
442931,
442939,
442947,
442954,
442962,
442970,
442978,
442985,
442993,
443001,
443008,
443016,
443024,
443032,
443039,
443047,
443055,
443062,
443070,
443078,
443085,
443093,
443101,
443109,
443116,
443124,
443132,
443139,
443147,
443155,
443162,
443170,
443178,
443185,
443193,
443201,
443209,
443216,
443224,
443232,
443239,
443247,
443255,
443262,
443270,
443278,
443285,
443293,
443301,
443308,
443316,
443324,
443331,
443339,
443347,
443354,
443362,
443370,
443377,
443385,
443393,
443400,
443408,
443416,
443423,
443431,
443438,
443446,
443454,
443461,
443469,
443477,
443484,
443492,
443500,
443507,
443515,
443523,
443530,
443538,
443545,
443553,
443561,
443568,
443576,
443584,
443591,
443599,
443606,
443614,
443622,
443629,
443637,
443645,
443652,
443660,
443667,
443675,
443683,
443690,
443698,
443705,
443713,
443721,
443728,
443736,
443743,
443751,
443759,
443766,
443774,
443781,
443789,
443797,
443804,
443812,
443819,
443827,
443835,
443842,
443850,
443857,
443865,
443872,
443880,
443888,
443895,
443903,
443910,
443918,
443926,
443933,
443941,
443948,
443956,
443963,
443971,
443979,
443986,
443994,
444001,
444009,
444016,
444024,
444031,
444039,
444047,
444054,
444062,
444069,
444077,
444084,
444092,
444099,
444107,
444115,
444122,
444130,
444137,
444145,
444152,
444160,
444167,
444175,
444182,
444190,
444197,
444205,
444213,
444220,
444228,
444235,
444243,
444250,
444258,
444265,
444273,
444280,
444288,
444295,
444303,
444310,
444318,
444325,
444333,
444340,
444348,
444355,
444363,
444370,
444378,
444385,
444393,
444400,
444408,
444415,
444423,
444430,
444438,
444445,
444453,
444460,
444468,
444475,
444483,
444490,
444498,
444505,
444513,
444520,
444528,
444535,
444543,
444550,
444558,
444565,
444573,
444580,
444588,
444595,
444603,
444610,
444618,
444625,
444632,
444640,
444647,
444655,
444662,
444670,
444677,
444685,
444692,
444700,
444707,
444715,
444722,
444729,
444737,
444744,
444752,
444759,
444767,
444774,
444782,
444789,
444797,
444804,
444811,
444819,
444826,
444834,
444841,
444849,
444856,
444863,
444871,
444878,
444886,
444893,
444901,
444908,
444915,
444923,
444930,
444938,
444945,
444953,
444960,
444967,
444975,
444982,
444990,
444997,
445005,
445012,
445019,
445027,
445034,
445042,
445049,
445056,
445064,
445071,
445079,
445086,
445093,
445101,
445108,
445116,
445123,
445130,
445138,
445145,
445153,
445160,
445167,
445175,
445182,
445190,
445197,
445204,
445212,
445219,
445226,
445234,
445241,
445249,
445256,
445263,
445271,
445278,
445285,
445293,
445300,
445308,
445315,
445322,
445330,
445337,
445344,
445352,
445359,
445366,
445374,
445381,
445389,
445396,
445403,
445411,
445418,
445425,
445433,
445440,
445447,
445455,
445462,
445469,
445477,
445484,
445491,
445499,
445506,
445513,
445521,
445528,
445535,
445543,
445550,
445557,
445565,
445572,
445579,
445587,
445594,
445601,
445609,
445616,
445623,
445631,
445638,
445645,
445653,
445660,
445667,
445675,
445682,
445689,
445697,
445704,
445711,
445719,
445726,
445733,
445740,
445748,
445755,
445762,
445770,
445777,
445784,
445792,
445799,
445806,
445813,
445821,
445828,
445835,
445843,
445850,
445857,
445865,
445872,
445879,
445886,
445894,
445901,
445908,
445916,
445923,
445930,
445937,
445945,
445952,
445959,
445966,
445974,
445981,
445988,
445996,
446003,
446010,
446017,
446025,
446032,
446039,
446046,
446054,
446061,
446068,
446075,
446083,
446090,
446097,
446104,
446112,
446119,
446126,
446133,
446141,
446148,
446155,
446162,
446170,
446177,
446184,
446191,
446199,
446206,
446213,
446220,
446228,
446235,
446242,
446249,
446257,
446264,
446271,
446278,
446285,
446293,
446300,
446307,
446314,
446322,
446329,
446336,
446343,
446350,
446358,
446365,
446372,
446379,
446387,
446394,
446401,
446408,
446415,
446423,
446430,
446437,
446444,
446451,
446459,
446466,
446473,
446480,
446487,
446495,
446502,
446509,
446516,
446523,
446531,
446538,
446545,
446552,
446559,
446567,
446574,
446581,
446588,
446595,
446602,
446610,
446617,
446624,
446631,
446638,
446646,
446653,
446660,
446667,
446674,
446681,
446689,
446696,
446703,
446710,
446717,
446724,
446732,
446739,
446746,
446753,
446760,
446767,
446775,
446782,
446789,
446796,
446803,
446810,
446817,
446825,
446832,
446839,
446846,
446853,
446860,
446868,
446875,
446882,
446889,
446896,
446903,
446910,
446917,
446925,
446932,
446939,
446946,
446953,
446960,
446967,
446975,
446982,
446989,
446996,
447003,
447010,
447017,
447024,
447032,
447039,
447046,
447053,
447060,
447067,
447074,
447081,
447088,
447096,
447103,
447110,
447117,
447124,
447131,
447138,
447145,
447152,
447160,
447167,
447174,
447181,
447188,
447195,
447202,
447209,
447216,
447223,
447231,
447238,
447245,
447252,
447259,
447266,
447273,
447280,
447287,
447294,
447301,
447309,
447316,
447323,
447330,
447337,
447344,
447351,
447358,
447365,
447372,
447379,
447386,
447393,
447401,
447408,
447415,
447422,
447429,
447436,
447443,
447450,
447457,
447464,
447471,
447478,
447485,
447492,
447499,
447506,
447513,
447521,
447528,
447535,
447542,
447549,
447556,
447563,
447570,
447577,
447584,
447591,
447598,
447605,
447612,
447619,
447626,
447633,
447640,
447647,
447654,
447661,
447668,
447675,
447682,
447690,
447697,
447704,
447711,
447718,
447725,
447732,
447739,
447746,
447753,
447760,
447767,
447774,
447781,
447788,
447795,
447802,
447809,
447816,
447823,
447830,
447837,
447844,
447851,
447858,
447865,
447872,
447879,
447886,
447893,
447900,
447907,
447914,
447921,
447928,
447935,
447942,
447949,
447956,
447963,
447970,
447977,
447984,
447991,
447998,
448005,
448012,
448019,
448026,
448033,
448040,
448047,
448054,
448061,
448068,
448075,
448082,
448089,
448096,
448103,
448110,
448116,
448123,
448130,
448137,
448144,
448151,
448158,
448165,
448172,
448179,
448186,
448193,
448200,
448207,
448214,
448221,
448228,
448235,
448242,
448249,
448256,
448263,
448270,
448277,
448283,
448290,
448297,
448304,
448311,
448318,
448325,
448332,
448339,
448346,
448353,
448360,
448367,
448374,
448381,
448388,
448394,
448401,
448408,
448415,
448422,
448429,
448436,
448443,
448450,
448457,
448464,
448471,
448478,
448485,
448491,
448498,
448505,
448512,
448519,
448526,
448533,
448540,
448547,
448554,
448561,
448567,
448574,
448581,
448588,
448595,
448602,
448609,
448616,
448623,
448630,
448637,
448643,
448650,
448657,
448664,
448671,
448678,
448685,
448692,
448699,
448705,
448712,
448719,
448726,
448733,
448740,
448747,
448754,
448761,
448767,
448774,
448781,
448788,
448795,
448802,
448809,
448816,
448822,
448829,
448836,
448843,
448850,
448857,
448864,
448871,
448877,
448884,
448891,
448898,
448905,
448912,
448919,
448925,
448932,
448939,
448946,
448953,
448960,
448967,
448973,
448980,
448987,
448994,
449001,
449008,
449014,
449021,
449028,
449035,
449042,
449049,
449056,
449062,
449069,
449076,
449083,
449090,
449097,
449103,
449110,
449117,
449124,
449131,
449138,
449144,
449151,
449158,
449165,
449172,
449179,
449185,
449192,
449199,
449206,
449213,
449219,
449226,
449233,
449240,
449247,
449254,
449260,
449267,
449274,
449281,
449288,
449294,
449301,
449308,
449315,
449322,
449328,
449335,
449342,
449349,
449356,
449362,
449369,
449376,
449383,
449390,
449396,
449403,
449410,
449417,
449424,
449430,
449437,
449444,
449451,
449458,
449464,
449471,
449478,
449485,
449491,
449498,
449505,
449512,
449519,
449525,
449532,
449539,
449546,
449552,
449559,
449566,
449573,
449580,
449586,
449593,
449600,
449607,
449613,
449620,
449627,
449634,
449640,
449647,
449654,
449661,
449668,
449674,
449681,
449688,
449695,
449701,
449708,
449715,
449722,
449728,
449735,
449742,
449749,
449755,
449762,
449769,
449776,
449782,
449789,
449796,
449803,
449809,
449816,
449823,
449829,
449836,
449843,
449850,
449856,
449863,
449870,
449877,
449883,
449890,
449897,
449904,
449910,
449917,
449924,
449930,
449937,
449944,
449951,
449957,
449964,
449971,
449977,
449984,
449991,
449998,
450004,
450011,
450018,
450024,
450031,
450038,
450045,
450051,
450058,
450065,
450071,
450078,
450085,
450092,
450098,
450105,
450112,
450118,
450125,
450132,
450138,
450145,
450152,
450158,
450165,
450172,
450179,
450185,
450192,
450199,
450205,
450212,
450219,
450225,
450232,
450239,
450245,
450252,
450259,
450265,
450272,
450279,
450286,
450292,
450299,
450306,
450312,
450319,
450326,
450332,
450339,
450346,
450352,
450359,
450366,
450372,
450379,
450386,
450392,
450399,
450406,
450412,
450419,
450426,
450432,
450439,
450445,
450452,
450459,
450465,
450472,
450479,
450485,
450492,
450499,
450505,
450512,
450519,
450525,
450532,
450539,
450545,
450552,
450558,
450565,
450572,
450578,
450585,
450592,
450598,
450605,
450612,
450618,
450625,
450631,
450638,
450645,
450651,
450658,
450665,
450671,
450678,
450684,
450691,
450698,
450704,
450711,
450718,
450724,
450731,
450737,
450744,
450751,
450757,
450764,
450771,
450777,
450784,
450790,
450797,
450804,
450810,
450817,
450823,
450830,
450837,
450843,
450850,
450856,
450863,
450870,
450876,
450883,
450889,
450896,
450903,
450909,
450916,
450922,
450929,
450936,
450942,
450949,
450955,
450962,
450969,
450975,
450982,
450988,
450995,
451001,
451008,
451015,
451021,
451028,
451034,
451041,
451047,
451054,
451061,
451067,
451074,
451080,
451087,
451093,
451100,
451107,
451113,
451120,
451126,
451133,
451139,
451146,
451153,
451159,
451166,
451172,
451179,
451185,
451192,
451199,
451205,
451212,
451218,
451225,
451231,
451238,
451244,
451251,
451257,
451264,
451271,
451277,
451284,
451290,
451297,
451303,
451310,
451316,
451323,
451329,
451336,
451343,
451349,
451356,
451362,
451369,
451375,
451382,
451388,
451395,
451401,
451408,
451414,
451421,
451427,
451434,
451441,
451447,
451454,
451460,
451467,
451473,
451480,
451486,
451493,
451499,
451506,
451512,
451519,
451525,
451532,
451538,
451545,
451551,
451558,
451564,
451571,
451577,
451584,
451590,
451597,
451603,
451610,
451616,
451623,
451629,
451636,
451642,
451649,
451655,
451662,
451668,
451675,
451681,
451688,
451694,
451701,
451707,
451714,
451720,
451727,
451733,
451740,
451746,
451753,
451759,
451766,
451772,
451779,
451785,
451792,
451798,
451805,
451811,
451818,
451824,
451831,
451837,
451843,
451850,
451856,
451863,
451869,
451876,
451882,
451889,
451895,
451902,
451908,
451915,
451921,
451928,
451934,
451940,
451947,
451953,
451960,
451966,
451973,
451979,
451986,
451992,
451999,
452005,
452011,
452018,
452024,
452031,
452037,
452044,
452050,
452057,
452063,
452070,
452076,
452082,
452089,
452095,
452102,
452108,
452115,
452121,
452127,
452134,
452140,
452147,
452153,
452160,
452166,
452173,
452179,
452185,
452192,
452198,
452205,
452211,
452218,
452224,
452230,
452237,
452243,
452250,
452256,
452262,
452269,
452275,
452282,
452288,
452295,
452301,
452307,
452314,
452320,
452327,
452333,
452339,
452346,
452352,
452359,
452365,
452371,
452378,
452384,
452391,
452397,
452403,
452410,
452416,
452423,
452429,
452435,
452442,
452448,
452455,
452461,
452467,
452474,
452480,
452487,
452493,
452499,
452506,
452512,
452519,
452525,
452531,
452538,
452544,
452551,
452557,
452563,
452570,
452576,
452582,
452589,
452595,
452602,
452608,
452614,
452621,
452627,
452633,
452640,
452646,
452653,
452659,
452665,
452672,
452678,
452684,
452691,
452697,
452703,
452710,
452716,
452723,
452729,
452735,
452742,
452748,
452754,
452761,
452767,
452773,
452780,
452786,
452792,
452799,
452805,
452812,
452818,
452824,
452831,
452837,
452843,
452850,
452856,
452862,
452869,
452875,
452881,
452888,
452894,
452900,
452907,
452913,
452919,
452926,
452932,
452938,
452945,
452951,
452957,
452964,
452970,
452976,
452983,
452989,
452995,
453002,
453008,
453014,
453021,
453027,
453033,
453040,
453046,
453052,
453059,
453065,
453071,
453078,
453084,
453090,
453096,
453103,
453109,
453115,
453122,
453128,
453134,
453141,
453147,
453153,
453160,
453166,
453172,
453179,
453185,
453191,
453197,
453204,
453210,
453216,
453223,
453229,
453235,
453242,
453248,
453254,
453260,
453267,
453273,
453279,
453286,
453292,
453298,
453304,
453311,
453317,
453323,
453330,
453336,
453342,
453348,
453355,
453361,
453367,
453374,
453380,
453386,
453392,
453399,
453405,
453411,
453417,
453424,
453430,
453436,
453443,
453449,
453455,
453461,
453468,
453474,
453480,
453486,
453493,
453499,
453505,
453512,
453518,
453524,
453530,
453537,
453543,
453549,
453555,
453562,
453568,
453574,
453580,
453587,
453593,
453599,
453605,
453612,
453618,
453624,
453630,
453637,
453643,
453649,
453655,
453662,
453668,
453674,
453680,
453687,
453693,
453699,
453705,
453712,
453718,
453724,
453730,
453736,
453743,
453749,
453755,
453761,
453768,
453774,
453780,
453786,
453793,
453799,
453805,
453811,
453817,
453824,
453830,
453836,
453842,
453849,
453855,
453861,
453867,
453873,
453880,
453886,
453892,
453898,
453905,
453911,
453917,
453923,
453929,
453936,
453942,
453948,
453954,
453960,
453967,
453973,
453979,
453985,
453991,
453998,
454004,
454010,
454016,
454022,
454029,
454035,
454041,
454047,
454053,
454060,
454066,
454072,
454078,
454084,
454091,
454097,
454103,
454109,
454115,
454122,
454128,
454134,
454140,
454146,
454152,
454159,
454165,
454171,
454177,
454183,
454190,
454196,
454202,
454208,
454214,
454220,
454227,
454233,
454239,
454245,
454251,
454257,
454264,
454270,
454276,
454282,
454288,
454294,
454301,
454307,
454313,
454319,
454325,
454331,
454338,
454344,
454350,
454356,
454362,
454368,
454375,
454381,
454387,
454393,
454399,
454405,
454412,
454418,
454424,
454430,
454436,
454442,
454448,
454455,
454461,
454467,
454473,
454479,
454485,
454491,
454498,
454504,
454510,
454516,
454522,
454528,
454534,
454541,
454547,
454553,
454559,
454565,
454571,
454577,
454583,
454590,
454596,
454602,
454608,
454614,
454620,
454626,
454632,
454639,
454645,
454651,
454657,
454663,
454669,
454675,
454681,
454688,
454694,
454700,
454706,
454712,
454718,
454724,
454730,
454736,
454743,
454749,
454755,
454761,
454767,
454773,
454779,
454785,
454791,
454798,
454804,
454810,
454816,
454822,
454828,
454834,
454840,
454846,
454852,
454859,
454865,
454871,
454877,
454883,
454889,
454895,
454901,
454907,
454913,
454920,
454926,
454932,
454938,
454944,
454950,
454956,
454962,
454968,
454974,
454980,
454986,
454993,
454999,
455005,
455011,
455017,
455023,
455029,
455035,
455041,
455047,
455053,
455059,
455065,
455072,
455078,
455084,
455090,
455096,
455102,
455108,
455114,
455120,
455126,
455132,
455138,
455144,
455150,
455156,
455163,
455169,
455175,
455181,
455187,
455193,
455199,
455205,
455211,
455217,
455223,
455229,
455235,
455241,
455247,
455253,
455259,
455265,
455272,
455278,
455284,
455290,
455296,
455302,
455308,
455314,
455320,
455326,
455332,
455338,
455344,
455350,
455356,
455362,
455368,
455374,
455380,
455386,
455392,
455398,
455404,
455410,
455416,
455422,
455429,
455435,
455441,
455447,
455453,
455459,
455465,
455471,
455477,
455483,
455489,
455495,
455501,
455507,
455513,
455519,
455525,
455531,
455537,
455543,
455549,
455555,
455561,
455567,
455573,
455579,
455585,
455591,
455597,
455603,
455609,
455615,
455621,
455627,
455633,
455639,
455645,
455651,
455657,
455663,
455669,
455675,
455681,
455687,
455693,
455699,
455705,
455711,
455717,
455723,
455729,
455735,
455741,
455747,
455753,
455759,
455765,
455771,
455777,
455783,
455789,
455795,
455801,
455807,
455813,
455819,
455825,
455831,
455837,
455843,
455849,
455855,
455861,
455867,
455873,
455879,
455885,
455891,
455897,
455903,
455909,
455915,
455920,
455926,
455932,
455938,
455944,
455950,
455956,
455962,
455968,
455974,
455980,
455986,
455992,
455998,
456004,
456010,
456016,
456022,
456028,
456034,
456040,
456046,
456052,
456058,
456064,
456070,
456075,
456081,
456087,
456093,
456099,
456105,
456111,
456117,
456123,
456129,
456135,
456141,
456147,
456153,
456159,
456165,
456171,
456177,
456182,
456188,
456194,
456200,
456206,
456212,
456218,
456224,
456230,
456236,
456242,
456248,
456254,
456260,
456266,
456271,
456277,
456283,
456289,
456295,
456301,
456307,
456313,
456319,
456325,
456331,
456337,
456343,
456349,
456354,
456360,
456366,
456372,
456378,
456384,
456390,
456396,
456402,
456408,
456414,
456420,
456425,
456431,
456437,
456443,
456449,
456455,
456461,
456467,
456473,
456479,
456484,
456490,
456496,
456502,
456508,
456514,
456520,
456526,
456532,
456538,
456543,
456549,
456555,
456561,
456567,
456573,
456579,
456585,
456591,
456597,
456602,
456608,
456614,
456620,
456626,
456632,
456638,
456644,
456650,
456655,
456661,
456667,
456673,
456679,
456685,
456691,
456697,
456702,
456708,
456714,
456720,
456726,
456732,
456738,
456744,
456749,
456755,
456761,
456767,
456773,
456779,
456785,
456791,
456796,
456802,
456808,
456814,
456820,
456826,
456832,
456837,
456843,
456849,
456855,
456861,
456867,
456873,
456879,
456884,
456890,
456896,
456902,
456908,
456914,
456920,
456925,
456931,
456937,
456943,
456949,
456955,
456960,
456966,
456972,
456978,
456984,
456990,
456996,
457001,
457007,
457013,
457019,
457025,
457031,
457036,
457042,
457048,
457054,
457060,
457066,
457071,
457077,
457083,
457089,
457095,
457101,
457106,
457112,
457118,
457124,
457130,
457136,
457141,
457147,
457153,
457159,
457165,
457171,
457176,
457182,
457188,
457194,
457200,
457205,
457211,
457217,
457223,
457229,
457235,
457240,
457246,
457252,
457258,
457264,
457269,
457275,
457281,
457287,
457293,
457299,
457304,
457310,
457316,
457322,
457328,
457333,
457339,
457345,
457351,
457357,
457362,
457368,
457374,
457380,
457386,
457391,
457397,
457403,
457409,
457415,
457420,
457426,
457432,
457438,
457444,
457449,
457455,
457461,
457467,
457473,
457478,
457484,
457490,
457496,
457501,
457507,
457513,
457519,
457525,
457530,
457536,
457542,
457548,
457554,
457559,
457565,
457571,
457577,
457582,
457588,
457594,
457600,
457605,
457611,
457617,
457623,
457629,
457634,
457640,
457646,
457652,
457657,
457663,
457669,
457675,
457681,
457686,
457692,
457698,
457704,
457709,
457715,
457721,
457727,
457732,
457738,
457744,
457750,
457755,
457761,
457767,
457773,
457778,
457784,
457790,
457796,
457801,
457807,
457813,
457819,
457824,
457830,
457836,
457842,
457847,
457853,
457859,
457865,
457870,
457876,
457882,
457888,
457893,
457899,
457905,
457911,
457916,
457922,
457928,
457934,
457939,
457945,
457951,
457956,
457962,
457968,
457974,
457979,
457985,
457991,
457997,
458002,
458008,
458014,
458020,
458025,
458031,
458037,
458042,
458048,
458054,
458060,
458065,
458071,
458077,
458082,
458088,
458094,
458100,
458105,
458111,
458117,
458123,
458128,
458134,
458140,
458145,
458151,
458157,
458162,
458168,
458174,
458180,
458185,
458191,
458197,
458202,
458208,
458214,
458220,
458225,
458231,
458237,
458242,
458248,
458254,
458259,
458265,
458271,
458277,
458282,
458288,
458294,
458299,
458305,
458311,
458316,
458322,
458328,
458334,
458339,
458345,
458351,
458356,
458362,
458368,
458373,
458379,
458385,
458390,
458396,
458402,
458407,
458413,
458419,
458425,
458430,
458436,
458442,
458447,
458453,
458459,
458464,
458470,
458476,
458481,
458487,
458493,
458498,
458504,
458510,
458515,
458521,
458527,
458532,
458538,
458544,
458549,
458555,
458561,
458566,
458572,
458578,
458583,
458589,
458595,
458600,
458606,
458612,
458617,
458623,
458629,
458634,
458640,
458646,
458651,
458657,
458663,
458668,
458674,
458680,
458685,
458691,
458696,
458702,
458708,
458713,
458719,
458725,
458730,
458736,
458742,
458747,
458753,
458759,
458764,
458770,
458776,
458781,
458787,
458792,
458798,
458804,
458809,
458815,
458821,
458826,
458832,
458838,
458843,
458849,
458854,
458860,
458866,
458871,
458877,
458883,
458888,
458894,
458899,
458905,
458911,
458916,
458922,
458928,
458933,
458939,
458944,
458950,
458956,
458961,
458967,
458973,
458978,
458984,
458989,
458995,
459001,
459006,
459012,
459018,
459023,
459029,
459034,
459040,
459046,
459051,
459057,
459062,
459068,
459074,
459079,
459085,
459090,
459096,
459102,
459107,
459113,
459118,
459124,
459130,
459135,
459141,
459146,
459152,
459158,
459163,
459169,
459174,
459180,
459186,
459191,
459197,
459202,
459208,
459214,
459219,
459225,
459230,
459236,
459242,
459247,
459253,
459258,
459264,
459270,
459275,
459281,
459286,
459292,
459297,
459303,
459309,
459314,
459320,
459325,
459331,
459337,
459342,
459348,
459353,
459359,
459364,
459370,
459376,
459381,
459387,
459392,
459398,
459403,
459409,
459415,
459420,
459426,
459431,
459437,
459442,
459448,
459454,
459459,
459465,
459470,
459476,
459481,
459487,
459493,
459498,
459504,
459509,
459515,
459520,
459526,
459531,
459537,
459543,
459548,
459554,
459559,
459565,
459570,
459576,
459581,
459587,
459593,
459598,
459604,
459609,
459615,
459620,
459626,
459631,
459637,
459642,
459648,
459654,
459659,
459665,
459670,
459676,
459681,
459687,
459692,
459698,
459703,
459709,
459715,
459720,
459726,
459731,
459737,
459742,
459748,
459753,
459759,
459764,
459770,
459775,
459781,
459786,
459792,
459798,
459803,
459809,
459814,
459820,
459825,
459831,
459836,
459842,
459847,
459853,
459858,
459864,
459869,
459875,
459880,
459886,
459891,
459897,
459902,
459908,
459913,
459919,
459925,
459930,
459936,
459941,
459947,
459952,
459958,
459963,
459969,
459974,
459980,
459985,
459991,
459996,
460002,
460007,
460013,
460018,
460024,
460029,
460035,
460040,
460046,
460051,
460057,
460062,
460068,
460073,
460079,
460084,
460090,
460095,
460101,
460106,
460112,
460117,
460123,
460128,
460134,
460139,
460145,
460150,
460156,
460161,
460167,
460172,
460178,
460183,
460189,
460194,
460199,
460205,
460210,
460216,
460221,
460227,
460232,
460238,
460243,
460249,
460254,
460260,
460265,
460271,
460276,
460282,
460287,
460293,
460298,
460304,
460309,
460315,
460320,
460325,
460331,
460336,
460342,
460347,
460353,
460358,
460364,
460369,
460375,
460380,
460386,
460391,
460397,
460402,
460407,
460413,
460418,
460424,
460429,
460435,
460440,
460446,
460451,
460457,
460462,
460468,
460473,
460478,
460484,
460489,
460495,
460500,
460506,
460511,
460517,
460522,
460528,
460533,
460538,
460544,
460549,
460555,
460560,
460566,
460571,
460577,
460582,
460587,
460593,
460598,
460604,
460609,
460615,
460620,
460625,
460631,
460636,
460642,
460647,
460653,
460658,
460664,
460669,
460674,
460680,
460685,
460691,
460696,
460702,
460707,
460712,
460718,
460723,
460729,
460734,
460740,
460745,
460750,
460756,
460761,
460767,
460772,
460778,
460783,
460788,
460794,
460799,
460805,
460810,
460815,
460821,
460826,
460832,
460837,
460843,
460848,
460853,
460859,
460864,
460870,
460875,
460880,
460886,
460891,
460897,
460902,
460908,
460913,
460918,
460924,
460929,
460935,
460940,
460945,
460951,
460956,
460962,
460967,
460972,
460978,
460983,
460989,
460994,
460999,
461005,
461010,
461016,
461021,
461026,
461032,
461037,
461043,
461048,
461053,
461059,
461064,
461069,
461075,
461080,
461086,
461091,
461096,
461102,
461107,
461113,
461118,
461123,
461129,
461134,
461140,
461145,
461150,
461156,
461161,
461166,
461172,
461177,
461183,
461188,
461193,
461199,
461204,
461209,
461215,
461220,
461226,
461231,
461236,
461242,
461247,
461252,
461258,
461263,
461269,
461274,
461279,
461285,
461290,
461295,
461301,
461306,
461311,
461317,
461322,
461328,
461333,
461338,
461344,
461349,
461354,
461360,
461365,
461370,
461376,
461381,
461387,
461392,
461397,
461403,
461408,
461413,
461419,
461424,
461429,
461435,
461440,
461445,
461451,
461456,
461461,
461467,
461472,
461478,
461483,
461488,
461494,
461499,
461504,
461510,
461515,
461520,
461526,
461531,
461536,
461542,
461547,
461552,
461558,
461563,
461568,
461574,
461579,
461584,
461590,
461595,
461600,
461606,
461611,
461616,
461622,
461627,
461632,
461638,
461643,
461648,
461654,
461659,
461664,
461670,
461675,
461680,
461686,
461691,
461696,
461702,
461707,
461712,
461718,
461723,
461728,
461734,
461739,
461744,
461750,
461755,
461760,
461765,
461771,
461776,
461781,
461787,
461792,
461797,
461803,
461808,
461813,
461819,
461824,
461829,
461835,
461840,
461845,
461850,
461856,
461861,
461866,
461872,
461877,
461882,
461888,
461893,
461898,
461904,
461909,
461914,
461919,
461925,
461930,
461935,
461941,
461946,
461951,
461957,
461962,
461967,
461972,
461978,
461983,
461988,
461994,
461999,
462004,
462009,
462015,
462020,
462025,
462031,
462036,
462041,
462046,
462052,
462057,
462062,
462068,
462073,
462078,
462083,
462089,
462094,
462099,
462105,
462110,
462115,
462120,
462126,
462131,
462136,
462142,
462147,
462152,
462157,
462163,
462168,
462173,
462178,
462184,
462189,
462194,
462200,
462205,
462210,
462215,
462221,
462226,
462231,
462236,
462242,
462247,
462252,
462258,
462263,
462268,
462273,
462279,
462284,
462289,
462294,
462300,
462305,
462310,
462315,
462321,
462326,
462331,
462336,
462342,
462347,
462352,
462357,
462363,
462368,
462373,
462378,
462384,
462389,
462394,
462399,
462405,
462410,
462415,
462420,
462426,
462431,
462436,
462441,
462447,
462452,
462457,
462462,
462468,
462473,
462478,
462483,
462489,
462494,
462499,
462504,
462510,
462515,
462520,
462525,
462531,
462536,
462541,
462546,
462552,
462557,
462562,
462567,
462572,
462578,
462583,
462588,
462593,
462599,
462604,
462609,
462614,
462620,
462625,
462630,
462635,
462640,
462646,
462651,
462656,
462661,
462667,
462672,
462677,
462682,
462687,
462693,
462698,
462703,
462708,
462714,
462719,
462724,
462729,
462734,
462740,
462745,
462750,
462755,
462760,
462766,
462771,
462776,
462781,
462787,
462792,
462797,
462802,
462807,
462813,
462818,
462823,
462828,
462833,
462839,
462844,
462849,
462854,
462859,
462865,
462870,
462875,
462880,
462885,
462891,
462896,
462901,
462906,
462911,
462917,
462922,
462927,
462932,
462937,
462943,
462948,
462953,
462958,
462963,
462969,
462974,
462979,
462984,
462989,
462995,
463000,
463005,
463010,
463015,
463020,
463026,
463031,
463036,
463041,
463046,
463052,
463057,
463062,
463067,
463072,
463077,
463083,
463088,
463093,
463098,
463103,
463109,
463114,
463119,
463124,
463129,
463134,
463140,
463145,
463150,
463155,
463160,
463165,
463171,
463176,
463181,
463186,
463191,
463196,
463202,
463207,
463212,
463217,
463222,
463227,
463233,
463238,
463243,
463248,
463253,
463258,
463264,
463269,
463274,
463279,
463284,
463289,
463295,
463300,
463305,
463310,
463315,
463320,
463326,
463331,
463336,
463341,
463346,
463351,
463356,
463362,
463367,
463372,
463377,
463382,
463387,
463392,
463398,
463403,
463408,
463413,
463418,
463423,
463429,
463434,
463439,
463444,
463449,
463454,
463459,
463465,
463470,
463475,
463480,
463485,
463490,
463495,
463500,
463506,
463511,
463516,
463521,
463526,
463531,
463536,
463542,
463547,
463552,
463557,
463562,
463567,
463572,
463577,
463583,
463588,
463593,
463598,
463603,
463608,
463613,
463619,
463624,
463629,
463634,
463639,
463644,
463649,
463654,
463659,
463665,
463670,
463675,
463680,
463685,
463690,
463695,
463700,
463706,
463711,
463716,
463721,
463726,
463731,
463736,
463741,
463746,
463752,
463757,
463762,
463767,
463772,
463777,
463782,
463787,
463792,
463798,
463803,
463808,
463813,
463818,
463823,
463828,
463833,
463838,
463844,
463849,
463854,
463859,
463864,
463869,
463874,
463879,
463884,
463889,
463894,
463900,
463905,
463910,
463915,
463920,
463925,
463930,
463935,
463940,
463945,
463951,
463956,
463961,
463966,
463971,
463976,
463981,
463986,
463991,
463996,
464001,
464007,
464012,
464017,
464022,
464027,
464032,
464037,
464042,
464047,
464052,
464057,
464062,
464068,
464073,
464078,
464083,
464088,
464093,
464098,
464103,
464108,
464113,
464118,
464123,
464128,
464133,
464139,
464144,
464149,
464154,
464159,
464164,
464169,
464174,
464179,
464184,
464189,
464194,
464199,
464204,
464210,
464215,
464220,
464225,
464230,
464235,
464240,
464245,
464250,
464255,
464260,
464265,
464270,
464275,
464280,
464285,
464291,
464296,
464301,
464306,
464311,
464316,
464321,
464326,
464331,
464336,
464341,
464346,
464351,
464356,
464361,
464366,
464371,
464376,
464381,
464387,
464392,
464397,
464402,
464407,
464412,
464417,
464422,
464427,
464432,
464437,
464442,
464447,
464452,
464457,
464462,
464467,
464472,
464477,
464482,
464487,
464492,
464497,
464502,
464508,
464513,
464518,
464523,
464528,
464533,
464538,
464543,
464548,
464553,
464558,
464563,
464568,
464573,
464578,
464583,
464588,
464593,
464598,
464603,
464608,
464613,
464618,
464623,
464628,
464633,
464638,
464643,
464648,
464653,
464658,
464663,
464668,
464673,
464678,
464683,
464688,
464693,
464698,
464704,
464709,
464714,
464719,
464724,
464729,
464734,
464739,
464744,
464749,
464754,
464759,
464764,
464769,
464774,
464779,
464784,
464789,
464794,
464799,
464804,
464809,
464814,
464819,
464824,
464829,
464834,
464839,
464844,
464849,
464854,
464859,
464864,
464869,
464874,
464879,
464884,
464889,
464894,
464899,
464904,
464909,
464914,
464919,
464924,
464929,
464934,
464939,
464944,
464949,
464954,
464959,
464964,
464969,
464974,
464979,
464984,
464989,
464994,
464999,
465004,
465009,
465014,
465019,
465024,
465028,
465033,
465038,
465043,
465048,
465053,
465058,
465063,
465068,
465073,
465078,
465083,
465088,
465093,
465098,
465103,
465108,
465113,
465118,
465123,
465128,
465133,
465138,
465143,
465148,
465153,
465158,
465163,
465168,
465173,
465178,
465183,
465188,
465193,
465198,
465203,
465208,
465213,
465218,
465222,
465227,
465232,
465237,
465242,
465247,
465252,
465257,
465262,
465267,
465272,
465277,
465282,
465287,
465292,
465297,
465302,
465307,
465312,
465317,
465322,
465327,
465332,
465337,
465342,
465346,
465351,
465356,
465361,
465366,
465371,
465376,
465381,
465386,
465391,
465396,
465401,
465406,
465411,
465416,
465421,
465426,
465431,
465436,
465440,
465445,
465450,
465455,
465460,
465465,
465470,
465475,
465480,
465485,
465490,
465495,
465500,
465505,
465510,
465515,
465519,
465524,
465529,
465534,
465539,
465544,
465549,
465554,
465559,
465564,
465569,
465574,
465579,
465584,
465589,
465593,
465598,
465603,
465608,
465613,
465618,
465623,
465628,
465633,
465638,
465643,
465648,
465653,
465657,
465662,
465667,
465672,
465677,
465682,
465687,
465692,
465697,
465702,
465707,
465712,
465717,
465721,
465726,
465731,
465736,
465741,
465746,
465751,
465756,
465761,
465766,
465771,
465775,
465780,
465785,
465790,
465795,
465800,
465805,
465810,
465815,
465820,
465825,
465829,
465834,
465839,
465844,
465849,
465854,
465859,
465864,
465869,
465874,
465879,
465883,
465888,
465893,
465898,
465903,
465908,
465913,
465918,
465923,
465927,
465932,
465937,
465942,
465947,
465952,
465957,
465962,
465967,
465972,
465976,
465981,
465986,
465991,
465996,
466001,
466006,
466011,
466016,
466020,
466025,
466030,
466035,
466040,
466045,
466050,
466055,
466059,
466064,
466069,
466074,
466079,
466084,
466089,
466094,
466099,
466103,
466108,
466113,
466118,
466123,
466128,
466133,
466138,
466142,
466147,
466152,
466157,
466162,
466167,
466172,
466177,
466181,
466186,
466191,
466196,
466201,
466206,
466211,
466216,
466220,
466225,
466230,
466235,
466240,
466245,
466250,
466254,
466259,
466264,
466269,
466274,
466279,
466284,
466288,
466293,
466298,
466303,
466308,
466313,
466318,
466322,
466327,
466332,
466337,
466342,
466347,
466352,
466356,
466361,
466366,
466371,
466376,
466381,
466386,
466390,
466395,
466400,
466405,
466410,
466415,
466420,
466424,
466429,
466434,
466439,
466444,
466449,
466453,
466458,
466463,
466468,
466473,
466478,
466483,
466487,
466492,
466497,
466502,
466507,
466512,
466516,
466521,
466526,
466531,
466536,
466541,
466545,
466550,
466555,
466560,
466565,
466570,
466574,
466579,
466584,
466589,
466594,
466599,
466603,
466608,
466613,
466618,
466623,
466628,
466632,
466637,
466642,
466647,
466652,
466657,
466661,
466666,
466671,
466676,
466681,
466685,
466690,
466695,
466700,
466705,
466710,
466714,
466719,
466724,
466729,
466734,
466739,
466743,
466748,
466753,
466758,
466763,
466767,
466772,
466777,
466782,
466787,
466791,
466796,
466801,
466806,
466811,
466816,
466820,
466825,
466830,
466835,
466840,
466844,
466849,
466854,
466859,
466864,
466868,
466873,
466878,
466883,
466888,
466892,
466897,
466902,
466907,
466912,
466916,
466921,
466926,
466931,
466936,
466940,
466945,
466950,
466955,
466960,
466964,
466969,
466974,
466979,
466984,
466988,
466993,
466998,
467003,
467008,
467012,
467017,
467022,
467027,
467032,
467036,
467041,
467046,
467051,
467055,
467060,
467065,
467070,
467075,
467079,
467084,
467089,
467094,
467099,
467103,
467108,
467113,
467118,
467122,
467127,
467132,
467137,
467142,
467146,
467151,
467156,
467161,
467165,
467170,
467175,
467180,
467185,
467189,
467194,
467199,
467204,
467208,
467213,
467218,
467223,
467228,
467232,
467237,
467242,
467247,
467251,
467256,
467261,
467266,
467270,
467275,
467280,
467285,
467290,
467294,
467299,
467304,
467309,
467313,
467318,
467323,
467328,
467332,
467337,
467342,
467347,
467351,
467356,
467361,
467366,
467370,
467375,
467380,
467385,
467389,
467394,
467399,
467404,
467408,
467413,
467418,
467423,
467428,
467432,
467437,
467442,
467447,
467451,
467456,
467461,
467466,
467470,
467475,
467480,
467485,
467489,
467494,
467499,
467503,
467508,
467513,
467518,
467522,
467527,
467532,
467537,
467541,
467546,
467551,
467556,
467560,
467565,
467570,
467575,
467579,
467584,
467589,
467594,
467598,
467603,
467608,
467613,
467617,
467622,
467627,
467631,
467636,
467641,
467646,
467650,
467655,
467660,
467665,
467669,
467674,
467679,
467683,
467688,
467693,
467698,
467702,
467707,
467712,
467717,
467721,
467726,
467731,
467735,
467740,
467745,
467750,
467754,
467759,
467764,
467769,
467773,
467778,
467783,
467787,
467792,
467797,
467802,
467806,
467811,
467816,
467820,
467825,
467830,
467835,
467839,
467844,
467849,
467853,
467858,
467863,
467868,
467872,
467877,
467882,
467886,
467891,
467896,
467901,
467905,
467910,
467915,
467919,
467924,
467929,
467933,
467938,
467943,
467948,
467952,
467957,
467962,
467966,
467971,
467976,
467980,
467985,
467990,
467995,
467999,
468004,
468009,
468013,
468018,
468023,
468027,
468032,
468037,
468042,
468046,
468051,
468056,
468060,
468065,
468070,
468074,
468079,
468084,
468088,
468093,
468098,
468103,
468107,
468112,
468117,
468121,
468126,
468131,
468135,
468140,
468145,
468149,
468154,
468159,
468163,
468168,
468173,
468178,
468182,
468187,
468192,
468196,
468201,
468206,
468210,
468215,
468220,
468224,
468229,
468234,
468238,
468243,
468248,
468252,
468257,
468262,
468266,
468271,
468276,
468280,
468285,
468290,
468294,
468299,
468304,
468308,
468313,
468318,
468322,
468327,
468332,
468336,
468341,
468346,
468350,
468355,
468360,
468364,
468369,
468374,
468378,
468383,
468388,
468392,
468397,
468402,
468406,
468411,
468416,
468420,
468425,
468430,
468434,
468439,
468444,
468448,
468453,
468458,
468462,
468467,
468472,
468476,
468481,
468486,
468490,
468495,
468500,
468504,
468509,
468513,
468518,
468523,
468527,
468532,
468537,
468541,
468546,
468551,
468555,
468560,
468565,
468569,
468574,
468579,
468583,
468588,
468592,
468597,
468602,
468606,
468611,
468616,
468620,
468625,
468630,
468634,
468639,
468644,
468648,
468653,
468657,
468662,
468667,
468671,
468676,
468681,
468685,
468690,
468695,
468699,
468704,
468708,
468713,
468718,
468722,
468727,
468732,
468736,
468741,
468745,
468750,
468755,
468759,
468764,
468769,
468773,
468778,
468783,
468787,
468792,
468796,
468801,
468806,
468810,
468815,
468820,
468824,
468829,
468833,
468838,
468843,
468847,
468852,
468856,
468861,
468866,
468870,
468875,
468880,
468884,
468889,
468893,
468898,
468903,
468907,
468912,
468917,
468921,
468926,
468930,
468935,
468940,
468944,
468949,
468953,
468958,
468963,
468967,
468972,
468976,
468981,
468986,
468990,
468995,
468999,
469004,
469009,
469013,
469018,
469023,
469027,
469032,
469036,
469041,
469046,
469050,
469055,
469059,
469064,
469069,
469073,
469078,
469082,
469087,
469092,
469096,
469101,
469105,
469110,
469115,
469119,
469124,
469128,
469133,
469137,
469142,
469147,
469151,
469156,
469160,
469165,
469170,
469174,
469179,
469183,
469188,
469193,
469197,
469202,
469206,
469211,
469216,
469220,
469225,
469229,
469234,
469238,
469243,
469248,
469252,
469257,
469261,
469266,
469271,
469275,
469280,
469284,
469289,
469293,
469298,
469303,
469307,
469312,
469316,
469321,
469325,
469330,
469335,
469339,
469344,
469348,
469353,
469358,
469362,
469367,
469371,
469376,
469380,
469385,
469390,
469394,
469399,
469403,
469408,
469412,
469417,
469421,
469426,
469431,
469435,
469440,
469444,
469449,
469453,
469458,
469463,
469467,
469472,
469476,
469481,
469485,
469490,
469495,
469499,
469504,
469508,
469513,
469517,
469522,
469526,
469531,
469536,
469540,
469545,
469549,
469554,
469558,
469563,
469567,
469572,
469577,
469581,
469586,
469590,
469595,
469599,
469604,
469608,
469613,
469618,
469622,
469627,
469631,
469636,
469640,
469645,
469649,
469654,
469658,
469663,
469668,
469672,
469677,
469681,
469686,
469690,
469695,
469699,
469704,
469708,
469713,
469718,
469722,
469727,
469731,
469736,
469740,
469745,
469749,
469754,
469758,
469763,
469767,
469772,
469777,
469781,
469786,
469790,
469795,
469799,
469804,
469808,
469813,
469817,
469822,
469826,
469831,
469835,
469840,
469845,
469849,
469854,
469858,
469863,
469867,
469872,
469876,
469881,
469885,
469890,
469894,
469899,
469903,
469908,
469912,
469917,
469921,
469926,
469931,
469935,
469940,
469944,
469949,
469953,
469958,
469962,
469967,
469971,
469976,
469980,
469985,
469989,
469994,
469998,
470003,
470007,
470012,
470016,
470021,
470025,
470030,
470034,
470039,
470043,
470048,
470052,
470057,
470062,
470066,
470071,
470075,
470080,
470084,
470089,
470093,
470098,
470102,
470107,
470111,
470116,
470120,
470125,
470129,
470134,
470138,
470143,
470147,
470152,
470156,
470161,
470165,
470170,
470174,
470179,
470183,
470188,
470192,
470197,
470201,
470206,
470210,
470215,
470219,
470224,
470228,
470233,
470237,
470242,
470246,
470251,
470255,
470260,
470264,
470269,
470273,
470278,
470282,
470287,
470291,
470295,
470300,
470304,
470309,
470313,
470318,
470322,
470327,
470331,
470336,
470340,
470345,
470349,
470354,
470358,
470363,
470367,
470372,
470376,
470381,
470385,
470390,
470394,
470399,
470403,
470408,
470412,
470417,
470421,
470426,
470430,
470434,
470439,
470443,
470448,
470452,
470457,
470461,
470466,
470470,
470475,
470479,
470484,
470488,
470493,
470497,
470502,
470506,
470511,
470515,
470519,
470524,
470528,
470533,
470537,
470542,
470546,
470551,
470555,
470560,
470564,
470569,
470573,
470578,
470582,
470586,
470591,
470595,
470600,
470604,
470609,
470613,
470618,
470622,
470627,
470631,
470636,
470640,
470644,
470649,
470653,
470658,
470662,
470667,
470671,
470676,
470680,
470685,
470689,
470693,
470698,
470702,
470707,
470711,
470716,
470720,
470725,
470729,
470734,
470738,
470742,
470747,
470751,
470756,
470760,
470765,
470769,
470774,
470778,
470782,
470787,
470791,
470796,
470800,
470805,
470809,
470814,
470818,
470822,
470827,
470831,
470836,
470840,
470845,
470849,
470854,
470858,
470862,
470867,
470871,
470876,
470880,
470885,
470889,
470894,
470898,
470902,
470907,
470911,
470916,
470920,
470925,
470929,
470933,
470938,
470942,
470947,
470951,
470956,
470960,
470964,
470969,
470973,
470978,
470982,
470987,
470991,
470995,
471000,
471004,
471009,
471013,
471018,
471022,
471026,
471031,
471035,
471040,
471044,
471049,
471053,
471057,
471062,
471066,
471071,
471075,
471080,
471084,
471088,
471093,
471097,
471102,
471106,
471110,
471115,
471119,
471124,
471128,
471133,
471137,
471141,
471146,
471150,
471155,
471159,
471163,
471168,
471172,
471177,
471181,
471185,
471190,
471194,
471199,
471203,
471208,
471212,
471216,
471221,
471225,
471230,
471234,
471238,
471243,
471247,
471252,
471256,
471260,
471265,
471269,
471274,
471278,
471282,
471287,
471291,
471296,
471300,
471304,
471309,
471313,
471318,
471322,
471326,
471331,
471335,
471340,
471344,
471348,
471353,
471357,
471362,
471366,
471370,
471375,
471379,
471384,
471388,
471392,
471397,
471401,
471406,
471410,
471414,
471419,
471423,
471428,
471432,
471436,
471441,
471445,
471449,
471454,
471458,
471463,
471467,
471471,
471476,
471480,
471485,
471489,
471493,
471498,
471502,
471506,
471511,
471515,
471520,
471524,
471528,
471533,
471537,
471542,
471546,
471550,
471555,
471559,
471563,
471568,
471572,
471577,
471581,
471585,
471590,
471594,
471598,
471603,
471607,
471612,
471616,
471620,
471625,
471629,
471633,
471638,
471642,
471647,
471651,
471655,
471660,
471664,
471668,
471673,
471677,
471681,
471686,
471690,
471695,
471699,
471703,
471708,
471712,
471716,
471721,
471725,
471729,
471734,
471738,
471743,
471747,
471751,
471756,
471760,
471764,
471769,
471773,
471777,
471782,
471786,
471791,
471795,
471799,
471804,
471808,
471812,
471817,
471821,
471825,
471830,
471834,
471838,
471843,
471847,
471852,
471856,
471860,
471865,
471869,
471873,
471878,
471882,
471886,
471891,
471895,
471899,
471904,
471908,
471912,
471917,
471921,
471925,
471930,
471934,
471939,
471943,
471947,
471952,
471956,
471960,
471965,
471969,
471973,
471978,
471982,
471986,
471991,
471995,
471999,
472004,
472008,
472012,
472017,
472021,
472025,
472030,
472034,
472038,
472043,
472047,
472051,
472056,
472060,
472064,
472069,
472073,
472077,
472082,
472086,
472090,
472095,
472099,
472103,
472108,
472112,
472116,
472121,
472125,
472129,
472134,
472138,
472142,
472147,
472151,
472155,
472160,
472164,
472168,
472173,
472177,
472181,
472186,
472190,
472194,
472199,
472203,
472207,
472212,
472216,
472220,
472225,
472229,
472233,
472237,
472242,
472246,
472250,
472255,
472259,
472263,
472268,
472272,
472276,
472281,
472285,
472289,
472294,
472298,
472302,
472307,
472311,
472315,
472319,
472324,
472328,
472332,
472337,
472341,
472345,
472350,
472354,
472358,
472363,
472367,
472371,
472376,
472380,
472384,
472388,
472393,
472397,
472401,
472406,
472410,
472414,
472419,
472423,
472427,
472431,
472436,
472440,
472444,
472449,
472453,
472457,
472462,
472466,
472470,
472475,
472479,
472483,
472487,
472492,
472496,
472500,
472505,
472509,
472513,
472517,
472522,
472526,
472530,
472535,
472539,
472543,
472548,
472552,
472556,
472560,
472565,
472569,
472573,
472578,
472582,
472586,
472590,
472595,
472599,
472603,
472608,
472612,
472616,
472620,
472625,
472629,
472633,
472638,
472642,
472646,
472650,
472655,
472659,
472663,
472668,
472672,
472676,
472680,
472685,
472689,
472693,
472698,
472702,
472706,
472710,
472715,
472719,
472723,
472728,
472732,
472736,
472740,
472745,
472749,
472753,
472757,
472762,
472766,
472770,
472775,
472779,
472783,
472787,
472792,
472796,
472800,
472804,
472809,
472813,
472817,
472822,
472826,
472830,
472834,
472839,
472843,
472847,
472851,
472856,
472860,
472864,
472869,
472873,
472877,
472881,
472886,
472890,
472894,
472898,
472903,
472907,
472911,
472915,
472920,
472924,
472928,
472932,
472937,
472941,
472945,
472950,
472954,
472958,
472962,
472967,
472971,
472975,
472979,
472984,
472988,
472992,
472996,
473001,
473005,
473009,
473013,
473018,
473022,
473026,
473030,
473035,
473039,
473043,
473047,
473052,
473056,
473060,
473064,
473069,
473073,
473077,
473081,
473086,
473090,
473094,
473098,
473103,
473107,
473111,
473115,
473120,
473124,
473128,
473132,
473137,
473141,
473145,
473149,
473154,
473158,
473162,
473166,
473171,
473175,
473179,
473183,
473187,
473192,
473196,
473200,
473204,
473209,
473213,
473217,
473221,
473226,
473230,
473234,
473238,
473243,
473247,
473251,
473255,
473259,
473264,
473268,
473272,
473276,
473281,
473285,
473289,
473293,
473298,
473302,
473306,
473310,
473314,
473319,
473323,
473327,
473331,
473336,
473340,
473344,
473348,
473353,
473357,
473361,
473365,
473369,
473374,
473378,
473382,
473386,
473391,
473395,
473399,
473403,
473407,
473412,
473416,
473420,
473424,
473429,
473433,
473437,
473441,
473445,
473450,
473454,
473458,
473462,
473466,
473471,
473475,
473479,
473483,
473488,
473492,
473496,
473500,
473504,
473509,
473513,
473517,
473521,
473525,
473530,
473534,
473538,
473542,
473547,
473551,
473555,
473559,
473563,
473568,
473572,
473576,
473580,
473584,
473589,
473593,
473597,
473601,
473605,
473610,
473614,
473618,
473622,
473626,
473631,
473635,
473639,
473643,
473647,
473652,
473656,
473660,
473664,
473668,
473673,
473677,
473681,
473685,
473689,
473694,
473698,
473702,
473706,
473710,
473715,
473719,
473723,
473727,
473731,
473736,
473740,
473744,
473748,
473752,
473757,
473761,
473765,
473769,
473773,
473777,
473782,
473786,
473790,
473794,
473798,
473803,
473807,
473811,
473815,
473819,
473824,
473828,
473832,
473836,
473840,
473844,
473849,
473853,
473857,
473861,
473865,
473870,
473874,
473878,
473882,
473886,
473890,
473895,
473899,
473903,
473907,
473911,
473916,
473920,
473924,
473928,
473932,
473936,
473941,
473945,
473949,
473953,
473957,
473962,
473966,
473970,
473974,
473978,
473982,
473987,
473991,
473995,
473999,
474003,
474007,
474012,
474016,
474020,
474024,
474028,
474032,
474037,
474041,
474045,
474049,
474053,
474057,
474062,
474066,
474070,
474074,
474078,
474082,
474087,
474091,
474095,
474099,
474103,
474107,
474112,
474116,
474120,
474124,
474128,
474132,
474137,
474141,
474145,
474149,
474153,
474157,
474162,
474166,
474170,
474174,
474178,
474182,
474186,
474191,
474195,
474199,
474203,
474207,
474211,
474216,
474220,
474224,
474228,
474232,
474236,
474240,
474245,
474249,
474253,
474257,
474261,
474265,
474269,
474274,
474278,
474282,
474286,
474290,
474294,
474299,
474303,
474307,
474311,
474315,
474319,
474323,
474328,
474332,
474336,
474340,
474344,
474348,
474352,
474357,
474361,
474365,
474369,
474373,
474377,
474381,
474386,
474390,
474394,
474398,
474402,
474406,
474410,
474415,
474419,
474423,
474427,
474431,
474435,
474439,
474443,
474448,
474452,
474456,
474460,
474464,
474468,
474472,
474477,
474481,
474485,
474489,
474493,
474497,
474501,
474505,
474510,
474514,
474518,
474522,
474526,
474530,
474534,
474538,
474543,
474547,
474551,
474555,
474559,
474563,
474567,
474571,
474576,
474580,
474584,
474588,
474592,
474596,
474600,
474604,
474609,
474613,
474617,
474621,
474625,
474629,
474633,
474637,
474642,
474646,
474650,
474654,
474658,
474662,
474666,
474670,
474674,
474679,
474683,
474687,
474691,
474695,
474699,
474703,
474707,
474712,
474716,
474720,
474724,
474728,
474732,
474736,
474740,
474744,
474749,
474753,
474757,
474761,
474765,
474769,
474773,
474777,
474781,
474786,
474790,
474794,
474798,
474802,
474806,
474810,
474814,
474818,
474822,
474827,
474831,
474835,
474839,
474843,
474847,
474851,
474855,
474859,
474863,
474868,
474872,
474876,
474880,
474884,
474888,
474892,
474896,
474900,
474904,
474909,
474913,
474917,
474921,
474925,
474929,
474933,
474937,
474941,
474945,
474950,
474954,
474958,
474962,
474966,
474970,
474974,
474978,
474982,
474986,
474990,
474995,
474999,
475003,
475007,
475011,
475015,
475019,
475023,
475027,
475031,
475035,
475039,
475044,
475048,
475052,
475056,
475060,
475064,
475068,
475072,
475076,
475080,
475084,
475089,
475093,
475097,
475101,
475105,
475109,
475113,
475117,
475121,
475125,
475129,
475133,
475137,
475142,
475146,
475150,
475154,
475158,
475162,
475166,
475170,
475174,
475178,
475182,
475186,
475190,
475195,
475199,
475203,
475207,
475211,
475215,
475219,
475223,
475227,
475231,
475235,
475239,
475243,
475247,
475252,
475256,
475260,
475264,
475268,
475272,
475276,
475280,
475284,
475288,
475292,
475296,
475300,
475304,
475308,
475313,
475317,
475321,
475325,
475329,
475333,
475337,
475341,
475345,
475349,
475353,
475357,
475361,
475365,
475369,
475373,
475378,
475382,
475386,
475390,
475394,
475398,
475402,
475406,
475410,
475414,
475418,
475422,
475426,
475430,
475434,
475438,
475442,
475446,
475451,
475455,
475459,
475463,
475467,
475471,
475475,
475479,
475483,
475487,
475491,
475495,
475499,
475503,
475507,
475511,
475515,
475519,
475523,
475527,
475532,
475536,
475540,
475544,
475548,
475552,
475556,
475560,
475564,
475568,
475572,
475576,
475580,
475584,
475588,
475592,
475596,
475600,
475604,
475608,
475612,
475616,
475620,
475625,
475629,
475633,
475637,
475641,
475645,
475649,
475653,
475657,
475661,
475665,
475669,
475673,
475677,
475681,
475685,
475689,
475693,
475697,
475701,
475705,
475709,
475713,
475717,
475721,
475725,
475729,
475733,
475737,
475742,
475746,
475750,
475754,
475758,
475762,
475766,
475770,
475774,
475778,
475782,
475786,
475790,
475794,
475798,
475802,
475806,
475810,
475814,
475818,
475822,
475826,
475830,
475834,
475838,
475842,
475846,
475850,
475854,
475858,
475862,
475866,
475870,
475874,
475878,
475882,
475886,
475890,
475894,
475898,
475902,
475906,
475910,
475915,
475919,
475923,
475927,
475931,
475935,
475939,
475943,
475947,
475951,
475955,
475959,
475963,
475967,
475971,
475975,
475979,
475983,
475987,
475991,
475995,
475999,
476003,
476007,
476011,
476015,
476019,
476023,
476027,
476031,
476035,
476039,
476043,
476047,
476051,
476055,
476059,
476063,
476067,
476071,
476075,
476079,
476083,
476087,
476091,
476095,
476099,
476103,
476107,
476111,
476115,
476119,
476123,
476127,
476131,
476135,
476139,
476143,
476147,
476151,
476155,
476159,
476163,
476167,
476171,
476175,
476179,
476183,
476187,
476191,
476195,
476199,
476203,
476207,
476211,
476215,
476219,
476223,
476227,
476231,
476235,
476239,
476243,
476247,
476251,
476255,
476259,
476263,
476267,
476271,
476275,
476279,
476283,
476287,
476291,
476295,
476299,
476303,
476307,
476311,
476315,
476319,
476322,
476326,
476330,
476334,
476338,
476342,
476346,
476350,
476354,
476358,
476362,
476366,
476370,
476374,
476378,
476382,
476386,
476390,
476394,
476398,
476402,
476406,
476410,
476414,
476418,
476422,
476426,
476430,
476434,
476438,
476442,
476446,
476450,
476454,
476458,
476462,
476466,
476470,
476474,
476478,
476482,
476486,
476490,
476494,
476497,
476501,
476505,
476509,
476513,
476517,
476521,
476525,
476529,
476533,
476537,
476541,
476545,
476549,
476553,
476557,
476561,
476565,
476569,
476573,
476577,
476581,
476585,
476589,
476593,
476597,
476601,
476605,
476609,
476612,
476616,
476620,
476624,
476628,
476632,
476636,
476640,
476644,
476648,
476652,
476656,
476660,
476664,
476668,
476672,
476676,
476680,
476684,
476688,
476692,
476696,
476700,
476703,
476707,
476711,
476715,
476719,
476723,
476727,
476731,
476735,
476739,
476743,
476747,
476751,
476755,
476759,
476763,
476767,
476771,
476775,
476779,
476782,
476786,
476790,
476794,
476798,
476802,
476806,
476810,
476814,
476818,
476822,
476826,
476830,
476834,
476838,
476842,
476846,
476850,
476854,
476857,
476861,
476865,
476869,
476873,
476877,
476881,
476885,
476889,
476893,
476897,
476901,
476905,
476909,
476913,
476917,
476920,
476924,
476928,
476932,
476936,
476940,
476944,
476948,
476952,
476956,
476960,
476964,
476968,
476972,
476976,
476979,
476983,
476987,
476991,
476995,
476999,
477003,
477007,
477011,
477015,
477019,
477023,
477027,
477031,
477035,
477038,
477042,
477046,
477050,
477054,
477058,
477062,
477066,
477070,
477074,
477078,
477082,
477086,
477089,
477093,
477097,
477101,
477105,
477109,
477113,
477117,
477121,
477125,
477129,
477133,
477137,
477140,
477144,
477148,
477152,
477156,
477160,
477164,
477168,
477172,
477176,
477180,
477184,
477187,
477191,
477195,
477199,
477203,
477207,
477211,
477215,
477219,
477223,
477227,
477231,
477234,
477238,
477242,
477246,
477250,
477254,
477258,
477262,
477266,
477270,
477274,
477277,
477281,
477285,
477289,
477293,
477297,
477301,
477305,
477309,
477313,
477317,
477320,
477324,
477328,
477332,
477336,
477340,
477344,
477348,
477352,
477356,
477359,
477363,
477367,
477371,
477375,
477379,
477383,
477387,
477391,
477395,
477398,
477402,
477406,
477410,
477414,
477418,
477422,
477426,
477430,
477434,
477437,
477441,
477445,
477449,
477453,
477457,
477461,
477465,
477469,
477473,
477476,
477480,
477484,
477488,
477492,
477496,
477500,
477504,
477508,
477511,
477515,
477519,
477523,
477527,
477531,
477535,
477539,
477543,
477546,
477550,
477554,
477558,
477562,
477566,
477570,
477574,
477578,
477581,
477585,
477589,
477593,
477597,
477601,
477605,
477609,
477613,
477616,
477620,
477624,
477628,
477632,
477636,
477640,
477644,
477647,
477651,
477655,
477659,
477663,
477667,
477671,
477675,
477678,
477682,
477686,
477690,
477694,
477698,
477702,
477706,
477709,
477713,
477717,
477721,
477725,
477729,
477733,
477737,
477740,
477744,
477748,
477752,
477756,
477760,
477764,
477768,
477771,
477775,
477779,
477783,
477787,
477791,
477795,
477799,
477802,
477806,
477810,
477814,
477818,
477822,
477826,
477829,
477833,
477837,
477841,
477845,
477849,
477853,
477857,
477860,
477864,
477868,
477872,
477876,
477880,
477884,
477887,
477891,
477895,
477899,
477903,
477907,
477911,
477914,
477918,
477922,
477926,
477930,
477934,
477938,
477941,
477945,
477949,
477953,
477957,
477961,
477965,
477968,
477972,
477976,
477980,
477984,
477988,
477992,
477995,
477999,
478003,
478007,
478011,
478015,
478019,
478022,
478026,
478030,
478034,
478038,
478042,
478046,
478049,
478053,
478057,
478061,
478065,
478069,
478072,
478076,
478080,
478084,
478088,
478092,
478096,
478099,
478103,
478107,
478111,
478115,
478119,
478122,
478126,
478130,
478134,
478138,
478142,
478146,
478149,
478153,
478157,
478161,
478165,
478169,
478172,
478176,
478180,
478184,
478188,
478192,
478195,
478199,
478203,
478207,
478211,
478215,
478218,
478222,
478226,
478230,
478234,
478238,
478242,
478245,
478249,
478253,
478257,
478261,
478265,
478268,
478272,
478276,
478280,
478284,
478288,
478291,
478295,
478299,
478303,
478307,
478310,
478314,
478318,
478322,
478326,
478330,
478333,
478337,
478341,
478345,
478349,
478353,
478356,
478360,
478364,
478368,
478372,
478376,
478379,
478383,
478387,
478391,
478395,
478398,
478402,
478406,
478410,
478414,
478418,
478421,
478425,
478429,
478433,
478437,
478441,
478444,
478448,
478452,
478456,
478460,
478463,
478467,
478471,
478475,
478479,
478483,
478486,
478490,
478494,
478498,
478502,
478505,
478509,
478513,
478517,
478521,
478524,
478528,
478532,
478536,
478540,
478544,
478547,
478551,
478555,
478559,
478563,
478566,
478570,
478574,
478578,
478582,
478585,
478589,
478593,
478597,
478601,
478605,
478608,
478612,
478616,
478620,
478624,
478627,
478631,
478635,
478639,
478643,
478646,
478650,
478654,
478658,
478662,
478665,
478669,
478673,
478677,
478681,
478684,
478688,
478692,
478696,
478700,
478703,
478707,
478711,
478715,
478719,
478722,
478726,
478730,
478734,
478738,
478741,
478745,
478749,
478753,
478757,
478760,
478764,
478768,
478772,
478776,
478779,
478783,
478787,
478791,
478795,
478798,
478802,
478806,
478810,
478813,
478817,
478821,
478825,
478829,
478832,
478836,
478840,
478844,
478848,
478851,
478855,
478859,
478863,
478867,
478870,
478874,
478878,
478882,
478885,
478889,
478893,
478897,
478901,
478904,
478908,
478912,
478916,
478920,
478923,
478927,
478931,
478935,
478938,
478942,
478946,
478950,
478954,
478957,
478961,
478965,
478969,
478972,
478976,
478980,
478984,
478988,
478991,
478995,
478999,
479003,
479006,
479010,
479014,
479018,
479022,
479025,
479029,
479033,
479037,
479040,
479044,
479048,
479052,
479056,
479059,
479063,
479067,
479071,
479074,
479078,
479082,
479086,
479090,
479093,
479097,
479101,
479105,
479108,
479112,
479116,
479120,
479123,
479127,
479131,
479135,
479139,
479142,
479146,
479150,
479154,
479157,
479161,
479165,
479169,
479172,
479176,
479180,
479184,
479187,
479191,
479195,
479199,
479203,
479206,
479210,
479214,
479218,
479221,
479225,
479229,
479233,
479236,
479240,
479244,
479248,
479251,
479255,
479259,
479263,
479266,
479270,
479274,
479278,
479281,
479285,
479289,
479293,
479297,
479300,
479304,
479308,
479312,
479315,
479319,
479323,
479327,
479330,
479334,
479338,
479342,
479345,
479349,
479353,
479357,
479360,
479364,
479368,
479372,
479375,
479379,
479383,
479387,
479390,
479394,
479398,
479402,
479405,
479409,
479413,
479417,
479420,
479424,
479428,
479432,
479435,
479439,
479443,
479447,
479450,
479454,
479458,
479461,
479465,
479469,
479473,
479476,
479480,
479484,
479488,
479491,
479495,
479499,
479503,
479506,
479510,
479514,
479518,
479521,
479525,
479529,
479533,
479536,
479540,
479544,
479547,
479551,
479555,
479559,
479562,
479566,
479570,
479574,
479577,
479581,
479585,
479589,
479592,
479596,
479600,
479604,
479607,
479611,
479615,
479618,
479622,
479626,
479630,
479633,
479637,
479641,
479645,
479648,
479652,
479656,
479659,
479663,
479667,
479671,
479674,
479678,
479682,
479686,
479689,
479693,
479697,
479700,
479704,
479708,
479712,
479715,
479719,
479723,
479727,
479730,
479734,
479738,
479741,
479745,
479749,
479753,
479756,
479760,
479764,
479767,
479771,
479775,
479779,
479782,
479786,
479790,
479794,
479797,
479801,
479805,
479808,
479812,
479816,
479820,
479823,
479827,
479831,
479834,
479838,
479842,
479846,
479849,
479853,
479857,
479860,
479864,
479868,
479872,
479875,
479879,
479883,
479886,
479890,
479894,
479898,
479901,
479905,
479909,
479912,
479916,
479920,
479924,
479927,
479931,
479935,
479938,
479942,
479946,
479949,
479953,
479957,
479961,
479964,
479968,
479972,
479975,
479979,
479983,
479987,
479990,
479994,
479998,
480001,
480005,
480009,
480012,
480016,
480020,
480024,
480027,
480031,
480035,
480038,
480042,
480046,
480049,
480053,
480057,
480061,
480064,
480068,
480072,
480075,
480079,
480083,
480086,
480090,
480094,
480098,
480101,
480105,
480109,
480112,
480116,
480120,
480123,
480127,
480131,
480134,
480138,
480142,
480146,
480149,
480153,
480157,
480160,
480164,
480168,
480171,
480175,
480179,
480182,
480186,
480190,
480194,
480197,
480201,
480205,
480208,
480212,
480216,
480219,
480223,
480227,
480230,
480234,
480238,
480242,
480245,
480249,
480253,
480256,
480260,
480264,
480267,
480271,
480275,
480278,
480282,
480286,
480289,
480293,
480297,
480300,
480304,
480308,
480311,
480315,
480319,
480323,
480326,
480330,
480334,
480337,
480341,
480345,
480348,
480352,
480356,
480359,
480363,
480367,
480370,
480374,
480378,
480381,
480385,
480389,
480392,
480396,
480400,
480403,
480407,
480411,
480414,
480418,
480422,
480425,
480429,
480433,
480436,
480440,
480444,
480447,
480451,
480455,
480458,
480462,
480466,
480470,
480473,
480477,
480481,
480484,
480488,
480492,
480495,
480499,
480503,
480506,
480510,
480514,
480517,
480521,
480525,
480528,
480532,
480536,
480539,
480543,
480546,
480550,
480554,
480557,
480561,
480565,
480568,
480572,
480576,
480579,
480583,
480587,
480590,
480594,
480598,
480601,
480605,
480609,
480612,
480616,
480620,
480623,
480627,
480631,
480634,
480638,
480642,
480645,
480649,
480653,
480656,
480660,
480664,
480667,
480671,
480675,
480678,
480682,
480686,
480689,
480693,
480696,
480700,
480704,
480707,
480711,
480715,
480718,
480722,
480726,
480729,
480733,
480737,
480740,
480744,
480748,
480751,
480755,
480759,
480762,
480766,
480769,
480773,
480777,
480780,
480784,
480788,
480791,
480795,
480799,
480802,
480806,
480810,
480813,
480817,
480821,
480824,
480828,
480831,
480835,
480839,
480842,
480846,
480850,
480853,
480857,
480861,
480864,
480868,
480872,
480875,
480879,
480882,
480886,
480890,
480893,
480897,
480901,
480904,
480908,
480912,
480915,
480919,
480922,
480926,
480930,
480933,
480937,
480941,
480944,
480948,
480952,
480955,
480959,
480962,
480966,
480970,
480973,
480977,
480981,
480984,
480988,
480991,
480995,
480999,
481002,
481006,
481010,
481013,
481017,
481021,
481024,
481028,
481031,
481035,
481039,
481042,
481046,
481050,
481053,
481057,
481060,
481064,
481068,
481071,
481075,
481079,
481082,
481086,
481089,
481093,
481097,
481100,
481104,
481108,
481111,
481115,
481118,
481122,
481126,
481129,
481133,
481137,
481140,
481144,
481147,
481151,
481155,
481158,
481162,
481165,
481169,
481173,
481176,
481180,
481184,
481187,
481191,
481194,
481198,
481202,
481205,
481209,
481213,
481216,
481220,
481223,
481227,
481231,
481234,
481238,
481241,
481245,
481249,
481252,
481256,
481259,
481263,
481267,
481270,
481274,
481278,
481281,
481285,
481288,
481292,
481296,
481299,
481303,
481306,
481310,
481314,
481317,
481321,
481324,
481328,
481332,
481335,
481339,
481343,
481346,
481350,
481353,
481357,
481361,
481364,
481368,
481371,
481375,
481379,
481382,
481386,
481389,
481393,
481397,
481400,
481404,
481407,
481411,
481415,
481418,
481422,
481425,
481429,
481433,
481436,
481440,
481443,
481447,
481451,
481454,
481458,
481461,
481465,
481469,
481472,
481476,
481479,
481483,
481487,
481490,
481494,
481497,
481501,
481505,
481508,
481512,
481515,
481519,
481522,
481526,
481530,
481533,
481537,
481540,
481544,
481548,
481551,
481555,
481558,
481562,
481566,
481569,
481573,
481576,
481580,
481584,
481587,
481591,
481594,
481598,
481601,
481605,
481609,
481612,
481616,
481619,
481623,
481627,
481630,
481634,
481637,
481641,
481645,
481648,
481652,
481655,
481659,
481662,
481666,
481670,
481673,
481677,
481680,
481684,
481688,
481691,
481695,
481698,
481702,
481705,
481709,
481713,
481716,
481720,
481723,
481727,
481730,
481734,
481738,
481741,
481745,
481748,
481752,
481756,
481759,
481763,
481766,
481770,
481773,
481777,
481781,
481784,
481788,
481791,
481795,
481798,
481802,
481806,
481809,
481813,
481816,
481820,
481823,
481827,
481831,
481834,
481838,
481841,
481845,
481848,
481852,
481856,
481859,
481863,
481866,
481870,
481873,
481877,
481881,
481884,
481888,
481891,
481895,
481898,
481902,
481906,
481909,
481913,
481916,
481920,
481923,
481927,
481930,
481934,
481938,
481941,
481945,
481948,
481952,
481955,
481959,
481963,
481966,
481970,
481973,
481977,
481980,
481984,
481987,
481991,
481995,
481998,
482002,
482005,
482009,
482012,
482016,
482020,
482023,
482027,
482030,
482034,
482037,
482041,
482044,
482048,
482052,
482055,
482059,
482062,
482066,
482069,
482073,
482076,
482080,
482084,
482087,
482091,
482094,
482098,
482101,
482105,
482108,
482112,
482115,
482119,
482123,
482126,
482130,
482133,
482137,
482140,
482144,
482147,
482151,
482155,
482158,
482162,
482165,
482169,
482172,
482176,
482179,
482183,
482186,
482190,
482194,
482197,
482201,
482204,
482208,
482211,
482215,
482218,
482222,
482225,
482229,
482233,
482236,
482240,
482243,
482247,
482250,
482254,
482257,
482261,
482264,
482268,
482272,
482275,
482279,
482282,
482286,
482289,
482293,
482296,
482300,
482303,
482307,
482310,
482314,
482318,
482321,
482325,
482328,
482332,
482335,
482339,
482342,
482346,
482349,
482353,
482356,
482360,
482363,
482367,
482371,
482374,
482378,
482381,
482385,
482388,
482392,
482395,
482399,
482402,
482406,
482409,
482413,
482416,
482420,
482424,
482427,
482431,
482434,
482438,
482441,
482445,
482448,
482452,
482455,
482459,
482462,
482466,
482469,
482473,
482476,
482480,
482483,
482487,
482491,
482494,
482498,
482501,
482505,
482508,
482512,
482515,
482519,
482522,
482526,
482529,
482533,
482536,
482540,
482543,
482547,
482550,
482554,
482557,
482561,
482565,
482568,
482572,
482575,
482579,
482582,
482586,
482589,
482593,
482596,
482600,
482603,
482607,
482610,
482614,
482617,
482621,
482624,
482628,
482631,
482635,
482638,
482642,
482645,
482649,
482652,
482656,
482659,
482663,
482666,
482670,
482674,
482677,
482681,
482684,
482688,
482691,
482695,
482698,
482702,
482705,
482709,
482712,
482716,
482719,
482723,
482726,
482730,
482733,
482737,
482740,
482744,
482747,
482751,
482754,
482758,
482761,
482765,
482768,
482772,
482775,
482779,
482782,
482786,
482789,
482793,
482796,
482800,
482803,
482807,
482810,
482814,
482817,
482821,
482824,
482828,
482831,
482835,
482838,
482842,
482845,
482849,
482852,
482856,
482859,
482863,
482866,
482870,
482873,
482877,
482880,
482884,
482887,
482891,
482894,
482898,
482901,
482905,
482908,
482912,
482915,
482919,
482922,
482926,
482929,
482933,
482936,
482940,
482943,
482947,
482950,
482954,
482957,
482961,
482964,
482968,
482971,
482975,
482978,
482982,
482985,
482989,
482992,
482996,
482999,
483003,
483006,
483010,
483013,
483017,
483020,
483024,
483027,
483030,
483034,
483037,
483041,
483044,
483048,
483051,
483055,
483058,
483062,
483065,
483069,
483072,
483076,
483079,
483083,
483086,
483090,
483093,
483097,
483100,
483104,
483107,
483111,
483114,
483118,
483121,
483125,
483128,
483132,
483135,
483138,
483142,
483145,
483149,
483152,
483156,
483159,
483163,
483166,
483170,
483173,
483177,
483180,
483184,
483187,
483191,
483194,
483198,
483201,
483205,
483208,
483212,
483215,
483218,
483222,
483225,
483229,
483232,
483236,
483239,
483243,
483246,
483250,
483253,
483257,
483260,
483264,
483267,
483271,
483274,
483277,
483281,
483284,
483288,
483291,
483295,
483298,
483302,
483305,
483309,
483312,
483316,
483319,
483323,
483326,
483330,
483333,
483336,
483340,
483343,
483347,
483350,
483354,
483357,
483361,
483364,
483368,
483371,
483375,
483378,
483382,
483385,
483388,
483392,
483395,
483399,
483402,
483406,
483409,
483413,
483416,
483420,
483423,
483427,
483430,
483433,
483437,
483440,
483444,
483447,
483451,
483454,
483458,
483461,
483465,
483468,
483471,
483475,
483478,
483482,
483485,
483489,
483492,
483496,
483499,
483503,
483506,
483509,
483513,
483516,
483520,
483523,
483527,
483530,
483534,
483537,
483541,
483544,
483547,
483551,
483554,
483558,
483561,
483565,
483568,
483572,
483575,
483579,
483582,
483585,
483589,
483592,
483596,
483599,
483603,
483606,
483610,
483613,
483616,
483620,
483623,
483627,
483630,
483634,
483637,
483641,
483644,
483647,
483651,
483654,
483658,
483661,
483665,
483668,
483672,
483675,
483678,
483682,
483685,
483689,
483692,
483696,
483699,
483703,
483706,
483709,
483713,
483716,
483720,
483723,
483727,
483730,
483734,
483737,
483740,
483744,
483747,
483751,
483754,
483758,
483761,
483764,
483768,
483771,
483775,
483778,
483782,
483785,
483789,
483792,
483795,
483799,
483802,
483806,
483809,
483813,
483816,
483819,
483823,
483826,
483830,
483833,
483837,
483840,
483843,
483847,
483850,
483854,
483857,
483861,
483864,
483867,
483871,
483874,
483878,
483881,
483885,
483888,
483891,
483895,
483898,
483902,
483905,
483909,
483912,
483915,
483919,
483922,
483926,
483929,
483933,
483936,
483939,
483943,
483946,
483950,
483953,
483957,
483960,
483963,
483967,
483970,
483974,
483977,
483981,
483984,
483987,
483991,
483994,
483998,
484001,
484004,
484008,
484011,
484015,
484018,
484022,
484025,
484028,
484032,
484035,
484039,
484042,
484046,
484049,
484052,
484056,
484059,
484063,
484066,
484069,
484073,
484076,
484080,
484083,
484087,
484090,
484093,
484097,
484100,
484104,
484107,
484110,
484114,
484117,
484121,
484124,
484127,
484131,
484134,
484138,
484141,
484145,
484148,
484151,
484155,
484158,
484162,
484165,
484168,
484172,
484175,
484179,
484182,
484185,
484189,
484192,
484196,
484199,
484203,
484206,
484209,
484213,
484216,
484220,
484223,
484226,
484230,
484233,
484237,
484240,
484243,
484247,
484250,
484254,
484257,
484260,
484264,
484267,
484271,
484274,
484277,
484281,
484284,
484288,
484291,
484294,
484298,
484301,
484305,
484308,
484311,
484315,
484318,
484322,
484325,
484328,
484332,
484335,
484339,
484342,
484345,
484349,
484352,
484356,
484359,
484362,
484366,
484369,
484373,
484376,
484379,
484383,
484386,
484390,
484393,
484396,
484400,
484403,
484407,
484410,
484413,
484417,
484420,
484424,
484427,
484430,
484434,
484437,
484440,
484444,
484447,
484451,
484454,
484457,
484461,
484464,
484468,
484471,
484474,
484478,
484481,
484485,
484488,
484491,
484495,
484498,
484501,
484505,
484508,
484512,
484515,
484518,
484522,
484525,
484529,
484532,
484535,
484539,
484542,
484545,
484549,
484552,
484556,
484559,
484562,
484566,
484569,
484573,
484576,
484579,
484583,
484586,
484589,
484593,
484596,
484600,
484603,
484606,
484610,
484613,
484617,
484620,
484623,
484627,
484630,
484633,
484637,
484640,
484644,
484647,
484650,
484654,
484657,
484660,
484664,
484667,
484671,
484674,
484677,
484681,
484684,
484687,
484691,
484694,
484698,
484701,
484704,
484708,
484711,
484714,
484718,
484721,
484725,
484728,
484731,
484735,
484738,
484741,
484745,
484748,
484752,
484755,
484758,
484762,
484765,
484768,
484772,
484775,
484778,
484782,
484785,
484789,
484792,
484795,
484799,
484802,
484805,
484809,
484812,
484816,
484819,
484822,
484826,
484829,
484832,
484836,
484839,
484842,
484846,
484849,
484853,
484856,
484859,
484863,
484866,
484869,
484873,
484876,
484879,
484883,
484886,
484890,
484893,
484896,
484900,
484903,
484906,
484910,
484913,
484916,
484920,
484923,
484926,
484930,
484933,
484937,
484940,
484943,
484947,
484950,
484953,
484957,
484960,
484963,
484967,
484970,
484973,
484977,
484980,
484984,
484987,
484990,
484994,
484997,
485000,
485004,
485007,
485010,
485014,
485017,
485020,
485024,
485027,
485030,
485034,
485037,
485041,
485044,
485047,
485051,
485054,
485057,
485061,
485064,
485067,
485071,
485074,
485077,
485081,
485084,
485087,
485091,
485094,
485097,
485101,
485104,
485108,
485111,
485114,
485118,
485121,
485124,
485128,
485131,
485134,
485138,
485141,
485144,
485148,
485151,
485154,
485158,
485161,
485164,
485168,
485171,
485174,
485178,
485181,
485184,
485188,
485191,
485194,
485198,
485201,
485204,
485208,
485211,
485214,
485218,
485221,
485225,
485228,
485231,
485235,
485238,
485241,
485245,
485248,
485251,
485255,
485258,
485261,
485265,
485268,
485271,
485275,
485278,
485281,
485285,
485288,
485291,
485295,
485298,
485301,
485305,
485308,
485311,
485315,
485318,
485321,
485325,
485328,
485331,
485335,
485338,
485341,
485345,
485348,
485351,
485355,
485358,
485361,
485365,
485368,
485371,
485375,
485378,
485381,
485385,
485388,
485391,
485395,
485398,
485401,
485405,
485408,
485411,
485414,
485418,
485421,
485424,
485428,
485431,
485434,
485438,
485441,
485444,
485448,
485451,
485454,
485458,
485461,
485464,
485468,
485471,
485474,
485478,
485481,
485484,
485488,
485491,
485494,
485498,
485501,
485504,
485508,
485511,
485514,
485517,
485521,
485524,
485527,
485531,
485534,
485537,
485541,
485544,
485547,
485551,
485554,
485557,
485561,
485564,
485567,
485571,
485574,
485577,
485581,
485584,
485587,
485590,
485594,
485597,
485600,
485604,
485607,
485610,
485614,
485617,
485620,
485624,
485627,
485630,
485634,
485637,
485640,
485643,
485647,
485650,
485653,
485657,
485660,
485663,
485667,
485670,
485673,
485677,
485680,
485683,
485687,
485690,
485693,
485696,
485700,
485703,
485706,
485710,
485713,
485716,
485720,
485723,
485726,
485730,
485733,
485736,
485739,
485743,
485746,
485749,
485753,
485756,
485759,
485763,
485766,
485769,
485772,
485776,
485779,
485782,
485786,
485789,
485792,
485796,
485799,
485802,
485805,
485809,
485812,
485815,
485819,
485822,
485825,
485829,
485832,
485835,
485838,
485842,
485845,
485848,
485852,
485855,
485858,
485862,
485865,
485868,
485871,
485875,
485878,
485881,
485885,
485888,
485891,
485895,
485898,
485901,
485904,
485908,
485911,
485914,
485918,
485921,
485924,
485927,
485931,
485934,
485937,
485941,
485944,
485947,
485951,
485954,
485957,
485960,
485964,
485967,
485970,
485974,
485977,
485980,
485983,
485987,
485990,
485993,
485997,
486000,
486003,
486006,
486010,
486013,
486016,
486020,
486023,
486026,
486029,
486033,
486036,
486039,
486043,
486046,
486049,
486052,
486056,
486059,
486062,
486066,
486069,
486072,
486075,
486079,
486082,
486085,
486089,
486092,
486095,
486098,
486102,
486105,
486108,
486112,
486115,
486118,
486121,
486125,
486128,
486131,
486134,
486138,
486141,
486144,
486148,
486151,
486154,
486157,
486161,
486164,
486167,
486171,
486174,
486177,
486180,
486184,
486187,
486190,
486193,
486197,
486200,
486203,
486207,
486210,
486213,
486216,
486220,
486223,
486226,
486229,
486233,
486236,
486239,
486243,
486246,
486249,
486252,
486256,
486259,
486262,
486265,
486269,
486272,
486275,
486279,
486282,
486285,
486288,
486292,
486295,
486298,
486301,
486305,
486308,
486311,
486315,
486318,
486321,
486324,
486328,
486331,
486334,
486337,
486341,
486344,
486347,
486350,
486354,
486357,
486360,
486364,
486367,
486370,
486373,
486377,
486380,
486383,
486386,
486390,
486393,
486396,
486399,
486403,
486406,
486409,
486412,
486416,
486419,
486422,
486425,
486429,
486432,
486435,
486439,
486442,
486445,
486448,
486452,
486455,
486458,
486461,
486465,
486468,
486471,
486474,
486478,
486481,
486484,
486487,
486491,
486494,
486497,
486500,
486504,
486507,
486510,
486513,
486517,
486520,
486523,
486526,
486530,
486533,
486536,
486539,
486543,
486546,
486549,
486552,
486556,
486559,
486562,
486566,
486569,
486572,
486575,
486579,
486582,
486585,
486588,
486592,
486595,
486598,
486601,
486605,
486608,
486611,
486614,
486617,
486621,
486624,
486627,
486630,
486634,
486637,
486640,
486643,
486647,
486650,
486653,
486656,
486660,
486663,
486666,
486669,
486673,
486676,
486679,
486682,
486686,
486689,
486692,
486695,
486699,
486702,
486705,
486708,
486712,
486715,
486718,
486721,
486725,
486728,
486731,
486734,
486738,
486741,
486744,
486747,
486750,
486754,
486757,
486760,
486763,
486767,
486770,
486773,
486776,
486780,
486783,
486786,
486789,
486793,
486796,
486799,
486802,
486806,
486809,
486812,
486815,
486818,
486822,
486825,
486828,
486831,
486835,
486838,
486841,
486844,
486848,
486851,
486854,
486857,
486861,
486864,
486867,
486870,
486873,
486877,
486880,
486883,
486886,
486890,
486893,
486896,
486899,
486903,
486906,
486909,
486912,
486915,
486919,
486922,
486925,
486928,
486932,
486935,
486938,
486941,
486944,
486948,
486951,
486954,
486957,
486961,
486964,
486967,
486970,
486974,
486977,
486980,
486983,
486986,
486990,
486993,
486996,
486999,
487003,
487006,
487009,
487012,
487015,
487019,
487022,
487025,
487028,
487032,
487035,
487038,
487041,
487044,
487048,
487051,
487054,
487057,
487061,
487064,
487067,
487070,
487073,
487077,
487080,
487083,
487086,
487089,
487093,
487096,
487099,
487102,
487106,
487109,
487112,
487115,
487118,
487122,
487125,
487128,
487131,
487135,
487138,
487141,
487144,
487147,
487151,
487154,
487157,
487160,
487163,
487167,
487170,
487173,
487176,
487180,
487183,
487186,
487189,
487192,
487196,
487199,
487202,
487205,
487208,
487212,
487215,
487218,
487221,
487224,
487228,
487231,
487234,
487237,
487241,
487244,
487247,
487250,
487253,
487257,
487260,
487263,
487266,
487269,
487273,
487276,
487279,
487282,
487285,
487289,
487292,
487295,
487298,
487301,
487305,
487308,
487311,
487314,
487317,
487321,
487324,
487327,
487330,
487333,
487337,
487340,
487343,
487346,
487349,
487353,
487356,
487359,
487362,
487365,
487369,
487372,
487375,
487378,
487381,
487385,
487388,
487391,
487394,
487397,
487401,
487404,
487407,
487410,
487413,
487417,
487420,
487423,
487426,
487429,
487433,
487436,
487439,
487442,
487445,
487449,
487452,
487455,
487458,
487461,
487465,
487468,
487471,
487474,
487477,
487481,
487484,
487487,
487490,
487493,
487497,
487500,
487503,
487506,
487509,
487512,
487516,
487519,
487522,
487525,
487528,
487532,
487535,
487538,
487541,
487544,
487548,
487551,
487554,
487557,
487560,
487563,
487567,
487570,
487573,
487576,
487579,
487583,
487586,
487589,
487592,
487595,
487599,
487602,
487605,
487608,
487611,
487614,
487618,
487621,
487624,
487627,
487630,
487634,
487637,
487640,
487643,
487646,
487649,
487653,
487656,
487659,
487662,
487665,
487669,
487672,
487675,
487678,
487681,
487684,
487688,
487691,
487694,
487697,
487700,
487704,
487707,
487710,
487713,
487716,
487719,
487723,
487726,
487729,
487732,
487735,
487739,
487742,
487745,
487748,
487751,
487754,
487758,
487761,
487764,
487767,
487770,
487773,
487777,
487780,
487783,
487786,
487789,
487792,
487796,
487799,
487802,
487805,
487808,
487812,
487815,
487818,
487821,
487824,
487827,
487831,
487834,
487837,
487840,
487843,
487846,
487850,
487853,
487856,
487859,
487862,
487865,
487869,
487872,
487875,
487878,
487881,
487884,
487888,
487891,
487894,
487897,
487900,
487903,
487907,
487910,
487913,
487916,
487919,
487922,
487926,
487929,
487932,
487935,
487938,
487941,
487945,
487948,
487951,
487954,
487957,
487960,
487964,
487967,
487970,
487973,
487976,
487979,
487983,
487986,
487989,
487992,
487995,
487998,
488001,
488005,
488008,
488011,
488014,
488017,
488020,
488024,
488027,
488030,
488033,
488036,
488039,
488043,
488046,
488049,
488052,
488055,
488058,
488061,
488065,
488068,
488071,
488074,
488077,
488080,
488084,
488087,
488090,
488093,
488096,
488099,
488102,
488106,
488109,
488112,
488115,
488118,
488121,
488125,
488128,
488131,
488134,
488137,
488140,
488143,
488147,
488150,
488153,
488156,
488159,
488162,
488166,
488169,
488172,
488175,
488178,
488181,
488184,
488188,
488191,
488194,
488197,
488200,
488203,
488206,
488210,
488213,
488216,
488219,
488222,
488225,
488228,
488232,
488235,
488238,
488241,
488244,
488247,
488251,
488254,
488257,
488260,
488263,
488266,
488269,
488273,
488276,
488279,
488282,
488285,
488288,
488291,
488295,
488298,
488301,
488304,
488307,
488310,
488313,
488316,
488320,
488323,
488326,
488329,
488332,
488335,
488338,
488342,
488345,
488348,
488351,
488354,
488357,
488360,
488364,
488367,
488370,
488373,
488376,
488379,
488382,
488386,
488389,
488392,
488395,
488398,
488401,
488404,
488407,
488411,
488414,
488417,
488420,
488423,
488426,
488429,
488433,
488436,
488439,
488442,
488445,
488448,
488451,
488454,
488458,
488461,
488464,
488467,
488470,
488473,
488476,
488480,
488483,
488486,
488489,
488492,
488495,
488498,
488501,
488505,
488508,
488511,
488514,
488517,
488520,
488523,
488526,
488530,
488533,
488536,
488539,
488542,
488545,
488548,
488551,
488555,
488558,
488561,
488564,
488567,
488570,
488573,
488576,
488580,
488583,
488586,
488589,
488592,
488595,
488598,
488601,
488605,
488608,
488611,
488614,
488617,
488620,
488623,
488626,
488630,
488633,
488636,
488639,
488642,
488645,
488648,
488651,
488655,
488658,
488661,
488664,
488667,
488670,
488673,
488676,
488679,
488683,
488686,
488689,
488692,
488695,
488698,
488701,
488704,
488708,
488711,
488714,
488717,
488720,
488723,
488726,
488729,
488732,
488736,
488739,
488742,
488745,
488748,
488751,
488754,
488757,
488760,
488764,
488767,
488770,
488773,
488776,
488779,
488782,
488785,
488788,
488792,
488795,
488798,
488801,
488804,
488807,
488810,
488813,
488816,
488820,
488823,
488826,
488829,
488832,
488835,
488838,
488841,
488844,
488848,
488851,
488854,
488857,
488860,
488863,
488866,
488869,
488872,
488876,
488879,
488882,
488885,
488888,
488891,
488894,
488897,
488900,
488903,
488907,
488910,
488913,
488916,
488919,
488922,
488925,
488928,
488931,
488934,
488938,
488941,
488944,
488947,
488950,
488953,
488956,
488959,
488962,
488966,
488969,
488972,
488975,
488978,
488981,
488984,
488987,
488990,
488993,
488997,
489000,
489003,
489006,
489009,
489012,
489015,
489018,
489021,
489024,
489027,
489031,
489034,
489037,
489040,
489043,
489046,
489049,
489052,
489055,
489058,
489062,
489065,
489068,
489071,
489074,
489077,
489080,
489083,
489086,
489089,
489092,
489096,
489099,
489102,
489105,
489108,
489111,
489114,
489117,
489120,
489123,
489126,
489130,
489133,
489136,
489139,
489142,
489145,
489148,
489151,
489154,
489157,
489160,
489164,
489167,
489170,
489173,
489176,
489179,
489182,
489185,
489188,
489191,
489194,
489197,
489201,
489204,
489207,
489210,
489213,
489216,
489219,
489222,
489225,
489228,
489231,
489235,
489238,
489241,
489244,
489247,
489250,
489253,
489256,
489259,
489262,
489265,
489268,
489272,
489275,
489278,
489281,
489284,
489287,
489290,
489293,
489296,
489299,
489302,
489305,
489308,
489312,
489315,
489318,
489321,
489324,
489327,
489330,
489333,
489336,
489339,
489342,
489345,
489348,
489352,
489355,
489358,
489361,
489364,
489367,
489370,
489373,
489376,
489379,
489382,
489385,
489388,
489392,
489395,
489398,
489401,
489404,
489407,
489410,
489413,
489416,
489419,
489422,
489425,
489428,
489431,
489435,
489438,
489441,
489444,
489447,
489450,
489453,
489456,
489459,
489462,
489465,
489468,
489471,
489474,
489478,
489481,
489484,
489487,
489490,
489493,
489496,
489499,
489502,
489505,
489508,
489511,
489514,
489517,
489520,
489524,
489527,
489530,
489533,
489536,
489539,
489542,
489545,
489548,
489551,
489554,
489557,
489560,
489563,
489566,
489570,
489573,
489576,
489579,
489582,
489585,
489588,
489591,
489594,
489597,
489600,
489603,
489606,
489609,
489612,
489615,
489619,
489622,
489625,
489628,
489631,
489634,
489637,
489640,
489643,
489646,
489649,
489652,
489655,
489658,
489661,
489664,
489667,
489671,
489674,
489677,
489680,
489683,
489686,
489689,
489692,
489695,
489698,
489701,
489704,
489707,
489710,
489713,
489716,
489719,
489722,
489726,
489729,
489732,
489735,
489738,
489741,
489744,
489747,
489750,
489753,
489756,
489759,
489762,
489765,
489768,
489771,
489774,
489777,
489780,
489784,
489787,
489790,
489793,
489796,
489799,
489802,
489805,
489808,
489811,
489814,
489817,
489820,
489823,
489826,
489829,
489832,
489835,
489838,
489841,
489844,
489848,
489851,
489854,
489857,
489860,
489863,
489866,
489869,
489872,
489875,
489878,
489881,
489884,
489887,
489890,
489893,
489896,
489899,
489902,
489905,
489908,
489911,
489915,
489918,
489921,
489924,
489927,
489930,
489933,
489936,
489939,
489942,
489945,
489948,
489951,
489954,
489957,
489960,
489963,
489966,
489969,
489972,
489975,
489978,
489981,
489984,
489987,
489991,
489994,
489997,
490000,
490003,
490006,
490009,
490012,
490015,
490018,
490021,
490024,
490027,
490030,
490033,
490036,
490039,
490042,
490045,
490048,
490051,
490054,
490057,
490060,
490063,
490066,
490069,
490072,
490075,
490079,
490082,
490085,
490088,
490091,
490094,
490097,
490100,
490103,
490106,
490109,
490112,
490115,
490118,
490121,
490124,
490127,
490130,
490133,
490136,
490139,
490142,
490145,
490148,
490151,
490154,
490157,
490160,
490163,
490166,
490169,
490172,
490175,
490179,
490182,
490185,
490188,
490191,
490194,
490197,
490200,
490203,
490206,
490209,
490212,
490215,
490218,
490221,
490224,
490227,
490230,
490233,
490236,
490239,
490242,
490245,
490248,
490251,
490254,
490257,
490260,
490263,
490266,
490269,
490272,
490275,
490278,
490281,
490284,
490287,
490290,
490293,
490296,
490299,
490302,
490305,
490308,
490311,
490315,
490318,
490321,
490324,
490327,
490330,
490333,
490336,
490339,
490342,
490345,
490348,
490351,
490354,
490357,
490360,
490363,
490366,
490369,
490372,
490375,
490378,
490381,
490384,
490387,
490390,
490393,
490396,
490399,
490402,
490405,
490408,
490411,
490414,
490417,
490420,
490423,
490426,
490429,
490432,
490435,
490438,
490441,
490444,
490447,
490450,
490453,
490456,
490459,
490462,
490465,
490468,
490471,
490474,
490477,
490480,
490483,
490486,
490489,
490492,
490495,
490498,
490501,
490504,
490507,
490510,
490513,
490516,
490519,
490522,
490525,
490528,
490531,
490534,
490537,
490540,
490543,
490546,
490549,
490552,
490555,
490558,
490561,
490564,
490567,
490570,
490573,
490576,
490579,
490582,
490585,
490588,
490591,
490594,
490597,
490600,
490603,
490606,
490609,
490612,
490615,
490618,
490621,
490624,
490627,
490630,
490633,
490636,
490639,
490642,
490645,
490648,
490651,
490654,
490657,
490660,
490663,
490666,
490669,
490672,
490675,
490678,
490681,
490684,
490687,
490690,
490693,
490696,
490699,
490702,
490705,
490708,
490711,
490714,
490717,
490720,
490723,
490726,
490729,
490732,
490735,
490738,
490741,
490744,
490747,
490750,
490753,
490756,
490759,
490762,
490765,
490768,
490771,
490774,
490777,
490780,
490783,
490786,
490789,
490792,
490795,
490798,
490801,
490804,
490807,
490810,
490813,
490816,
490819,
490822,
490825,
490828,
490831,
490834,
490837,
490840,
490843,
490846,
490849,
490852,
490855,
490858,
490861,
490864,
490867,
490870,
490873,
490876,
490879,
490882,
490885,
490888,
490891,
490894,
490897,
490900,
490903,
490906,
490909,
490912,
490915,
490918,
490921,
490924,
490927,
490930,
490933,
490935,
490938,
490941,
490944,
490947,
490950,
490953,
490956,
490959,
490962,
490965,
490968,
490971,
490974,
490977,
490980,
490983,
490986,
490989,
490992,
490995,
490998,
491001,
491004,
491007,
491010,
491013,
491016,
491019,
491022,
491025,
491028,
491031,
491034,
491037,
491040,
491043,
491046,
491049,
491052,
491055,
491058,
491061,
491064,
491067,
491069,
491072,
491075,
491078,
491081,
491084,
491087,
491090,
491093,
491096,
491099,
491102,
491105,
491108,
491111,
491114,
491117,
491120,
491123,
491126,
491129,
491132,
491135,
491138,
491141,
491144,
491147,
491150,
491153,
491156,
491159,
491162,
491165,
491168,
491170,
491173,
491176,
491179,
491182,
491185,
491188,
491191,
491194,
491197,
491200,
491203,
491206,
491209,
491212,
491215,
491218,
491221,
491224,
491227,
491230,
491233,
491236,
491239,
491242,
491245,
491248,
491251,
491253,
491256,
491259,
491262,
491265,
491268,
491271,
491274,
491277,
491280,
491283,
491286,
491289,
491292,
491295,
491298,
491301,
491304,
491307,
491310,
491313,
491316,
491319,
491322,
491325,
491328,
491330,
491333,
491336,
491339,
491342,
491345,
491348,
491351,
491354,
491357,
491360,
491363,
491366,
491369,
491372,
491375,
491378,
491381,
491384,
491387,
491390,
491393,
491396,
491398,
491401,
491404,
491407,
491410,
491413,
491416,
491419,
491422,
491425,
491428,
491431,
491434,
491437,
491440,
491443,
491446,
491449,
491452,
491455,
491458,
491460,
491463,
491466,
491469,
491472,
491475,
491478,
491481,
491484,
491487,
491490,
491493,
491496,
491499,
491502,
491505,
491508,
491511,
491514,
491516,
491519,
491522,
491525,
491528,
491531,
491534,
491537,
491540,
491543,
491546,
491549,
491552,
491555,
491558,
491561,
491564,
491567,
491570,
491572,
491575,
491578,
491581,
491584,
491587,
491590,
491593,
491596,
491599,
491602,
491605,
491608,
491611,
491614,
491617,
491620,
491622,
491625,
491628,
491631,
491634,
491637,
491640,
491643,
491646,
491649,
491652,
491655,
491658,
491661,
491664,
491667,
491670,
491672,
491675,
491678,
491681,
491684,
491687,
491690,
491693,
491696,
491699,
491702,
491705,
491708,
491711,
491714,
491717,
491719,
491722,
491725,
491728,
491731,
491734,
491737,
491740,
491743,
491746,
491749,
491752,
491755,
491758,
491761,
491763,
491766,
491769,
491772,
491775,
491778,
491781,
491784,
491787,
491790,
491793,
491796,
491799,
491802,
491805,
491807,
491810,
491813,
491816,
491819,
491822,
491825,
491828,
491831,
491834,
491837,
491840,
491843,
491846,
491848,
491851,
491854,
491857,
491860,
491863,
491866,
491869,
491872,
491875,
491878,
491881,
491884,
491886,
491889,
491892,
491895,
491898,
491901,
491904,
491907,
491910,
491913,
491916,
491919,
491922,
491925,
491927,
491930,
491933,
491936,
491939,
491942,
491945,
491948,
491951,
491954,
491957,
491960,
491963,
491965,
491968,
491971,
491974,
491977,
491980,
491983,
491986,
491989,
491992,
491995,
491998,
492000,
492003,
492006,
492009,
492012,
492015,
492018,
492021,
492024,
492027,
492030,
492033,
492035,
492038,
492041,
492044,
492047,
492050,
492053,
492056,
492059,
492062,
492065,
492068,
492070,
492073,
492076,
492079,
492082,
492085,
492088,
492091,
492094,
492097,
492100,
492103,
492105,
492108,
492111,
492114,
492117,
492120,
492123,
492126,
492129,
492132,
492135,
492137,
492140,
492143,
492146,
492149,
492152,
492155,
492158,
492161,
492164,
492167,
492169,
492172,
492175,
492178,
492181,
492184,
492187,
492190,
492193,
492196,
492199,
492201,
492204,
492207,
492210,
492213,
492216,
492219,
492222,
492225,
492228,
492231,
492233,
492236,
492239,
492242,
492245,
492248,
492251,
492254,
492257,
492260,
492263,
492265,
492268,
492271,
492274,
492277,
492280,
492283,
492286,
492289,
492292,
492294,
492297,
492300,
492303,
492306,
492309,
492312,
492315,
492318,
492321,
492323,
492326,
492329,
492332,
492335,
492338,
492341,
492344,
492347,
492350,
492352,
492355,
492358,
492361,
492364,
492367,
492370,
492373,
492376,
492379,
492381,
492384,
492387,
492390,
492393,
492396,
492399,
492402,
492405,
492408,
492410,
492413,
492416,
492419,
492422,
492425,
492428,
492431,
492434,
492436,
492439,
492442,
492445,
492448,
492451,
492454,
492457,
492460,
492462,
492465,
492468,
492471,
492474,
492477,
492480,
492483,
492486,
492489,
492491,
492494,
492497,
492500,
492503,
492506,
492509,
492512,
492515,
492517,
492520,
492523,
492526,
492529,
492532,
492535,
492538,
492541,
492543,
492546,
492549,
492552,
492555,
492558,
492561,
492564,
492567,
492569,
492572,
492575,
492578,
492581,
492584,
492587,
492590,
492592,
492595,
492598,
492601,
492604,
492607,
492610,
492613,
492616,
492618,
492621,
492624,
492627,
492630,
492633,
492636,
492639,
492642,
492644,
492647,
492650,
492653,
492656,
492659,
492662,
492665,
492667,
492670,
492673,
492676,
492679,
492682,
492685,
492688,
492690,
492693,
492696,
492699,
492702,
492705,
492708,
492711,
492714,
492716,
492719,
492722,
492725,
492728,
492731,
492734,
492737,
492739,
492742,
492745,
492748,
492751,
492754,
492757,
492760,
492762,
492765,
492768,
492771,
492774,
492777,
492780,
492783,
492785,
492788,
492791,
492794,
492797,
492800,
492803,
492806,
492808,
492811,
492814,
492817,
492820,
492823,
492826,
492829,
492831,
492834,
492837,
492840,
492843,
492846,
492849,
492851,
492854,
492857,
492860,
492863,
492866,
492869,
492872,
492874,
492877,
492880,
492883,
492886,
492889,
492892,
492895,
492897,
492900,
492903,
492906,
492909,
492912,
492915,
492917,
492920,
492923,
492926,
492929,
492932,
492935,
492938,
492940,
492943,
492946,
492949,
492952,
492955,
492958,
492960,
492963,
492966,
492969,
492972,
492975,
492978,
492980,
492983,
492986,
492989,
492992,
492995,
492998,
493001,
493003,
493006,
493009,
493012,
493015,
493018,
493021,
493023,
493026,
493029,
493032,
493035,
493038,
493041,
493043,
493046,
493049,
493052,
493055,
493058,
493061,
493063,
493066,
493069,
493072,
493075,
493078,
493081,
493083,
493086,
493089,
493092,
493095,
493098,
493101,
493103,
493106,
493109,
493112,
493115,
493118,
493121,
493123,
493126,
493129,
493132,
493135,
493138,
493141,
493143,
493146,
493149,
493152,
493155,
493158,
493161,
493163,
493166,
493169,
493172,
493175,
493178,
493180,
493183,
493186,
493189,
493192,
493195,
493198,
493200,
493203,
493206,
493209,
493212,
493215,
493218,
493220,
493223,
493226,
493229,
493232,
493235,
493237,
493240,
493243,
493246,
493249,
493252,
493255,
493257,
493260,
493263,
493266,
493269,
493272,
493275,
493277,
493280,
493283,
493286,
493289,
493292,
493294,
493297,
493300,
493303,
493306,
493309,
493311,
493314,
493317,
493320,
493323,
493326,
493329,
493331,
493334,
493337,
493340,
493343,
493346,
493348,
493351,
493354,
493357,
493360,
493363,
493366,
493368,
493371,
493374,
493377,
493380,
493383,
493385,
493388,
493391,
493394,
493397,
493400,
493402,
493405,
493408,
493411,
493414,
493417,
493419,
493422,
493425,
493428,
493431,
493434,
493436,
493439,
493442,
493445,
493448,
493451,
493454,
493456,
493459,
493462,
493465,
493468,
493471,
493473,
493476,
493479,
493482,
493485,
493488,
493490,
493493,
493496,
493499,
493502,
493505,
493507,
493510,
493513,
493516,
493519,
493522,
493524,
493527,
493530,
493533,
493536,
493539,
493541,
493544,
493547,
493550,
493553,
493556,
493558,
493561,
493564,
493567,
493570,
493572,
493575,
493578,
493581,
493584,
493587,
493589,
493592,
493595,
493598,
493601,
493604,
493606,
493609,
493612,
493615,
493618,
493621,
493623,
493626,
493629,
493632,
493635,
493638,
493640,
493643,
493646,
493649,
493652,
493654,
493657,
493660,
493663,
493666,
493669,
493671,
493674,
493677,
493680,
493683,
493686,
493688,
493691,
493694,
493697,
493700,
493702,
493705,
493708,
493711,
493714,
493717,
493719,
493722,
493725,
493728,
493731,
493734,
493736,
493739,
493742,
493745,
493748,
493750,
493753,
493756,
493759,
493762,
493765,
493767,
493770,
493773,
493776,
493779,
493781,
493784,
493787,
493790,
493793,
493796,
493798,
493801,
493804,
493807,
493810,
493812,
493815,
493818,
493821,
493824,
493827,
493829,
493832,
493835,
493838,
493841,
493843,
493846,
493849,
493852,
493855,
493857,
493860,
493863,
493866,
493869,
493872,
493874,
493877,
493880,
493883,
493886,
493888,
493891,
493894,
493897,
493900,
493902,
493905,
493908,
493911,
493914,
493917,
493919,
493922,
493925,
493928,
493931,
493933,
493936,
493939,
493942,
493945,
493947,
493950,
493953,
493956,
493959,
493961,
493964,
493967,
493970,
493973,
493976,
493978,
493981,
493984,
493987,
493990,
493992,
493995,
493998,
494001,
494004,
494006,
494009,
494012,
494015,
494018,
494020,
494023,
494026,
494029,
494032,
494034,
494037,
494040,
494043,
494046,
494048,
494051,
494054,
494057,
494060,
494062,
494065,
494068,
494071,
494074,
494076,
494079,
494082,
494085,
494088,
494090,
494093,
494096,
494099,
494102,
494104,
494107,
494110,
494113,
494116,
494118,
494121,
494124,
494127,
494130,
494132,
494135,
494138,
494141,
494144,
494146,
494149,
494152,
494155,
494158,
494160,
494163,
494166,
494169,
494172,
494174,
494177,
494180,
494183,
494186,
494188,
494191,
494194,
494197,
494200,
494202,
494205,
494208,
494211,
494214,
494216,
494219,
494222,
494225,
494228,
494230,
494233,
494236,
494239,
494241,
494244,
494247,
494250,
494253,
494255,
494258,
494261,
494264,
494267,
494269,
494272,
494275,
494278,
494281,
494283,
494286,
494289,
494292,
494294,
494297,
494300,
494303,
494306,
494308,
494311,
494314,
494317,
494320,
494322,
494325,
494328,
494331,
494334,
494336,
494339,
494342,
494345,
494347,
494350,
494353,
494356,
494359,
494361,
494364,
494367,
494370,
494373,
494375,
494378,
494381,
494384,
494386,
494389,
494392,
494395,
494398,
494400,
494403,
494406,
494409,
494412,
494414,
494417,
494420,
494423,
494425,
494428,
494431,
494434,
494437,
494439,
494442,
494445,
494448,
494450,
494453,
494456,
494459,
494462,
494464,
494467,
494470,
494473,
494475,
494478,
494481,
494484,
494487,
494489,
494492,
494495,
494498,
494500,
494503,
494506,
494509,
494512,
494514,
494517,
494520,
494523,
494525,
494528,
494531,
494534,
494537,
494539,
494542,
494545,
494548,
494550,
494553,
494556,
494559,
494562,
494564,
494567,
494570,
494573,
494575,
494578,
494581,
494584,
494587,
494589,
494592,
494595,
494598,
494600,
494603,
494606,
494609,
494611,
494614,
494617,
494620,
494623,
494625,
494628,
494631,
494634,
494636,
494639,
494642,
494645,
494648,
494650,
494653,
494656,
494659,
494661,
494664,
494667,
494670,
494672,
494675,
494678,
494681,
494683,
494686,
494689,
494692,
494695,
494697,
494700,
494703,
494706,
494708,
494711,
494714,
494717,
494719,
494722,
494725,
494728,
494731,
494733,
494736,
494739,
494742,
494744,
494747,
494750,
494753,
494755,
494758,
494761,
494764,
494766,
494769,
494772,
494775,
494778,
494780,
494783,
494786,
494789,
494791,
494794,
494797,
494800,
494802,
494805,
494808,
494811,
494813,
494816,
494819,
494822,
494824,
494827,
494830,
494833,
494836,
494838,
494841,
494844,
494847,
494849,
494852,
494855,
494858,
494860,
494863,
494866,
494869,
494871,
494874,
494877,
494880,
494882,
494885,
494888,
494891,
494893,
494896,
494899,
494902,
494904,
494907,
494910,
494913,
494915,
494918,
494921,
494924,
494926,
494929,
494932,
494935,
494938,
494940,
494943,
494946,
494949,
494951,
494954,
494957,
494960,
494962,
494965,
494968,
494971,
494973,
494976,
494979,
494982,
494984,
494987,
494990,
494993,
494995,
494998,
495001,
495004,
495006,
495009,
495012,
495015,
495017,
495020,
495023,
495026,
495028,
495031,
495034,
495037,
495039,
495042,
495045,
495048,
495050,
495053,
495056,
495059,
495061,
495064,
495067,
495070,
495072,
495075,
495078,
495081,
495083,
495086,
495089,
495091,
495094,
495097,
495100,
495102,
495105,
495108,
495111,
495113,
495116,
495119,
495122,
495124,
495127,
495130,
495133,
495135,
495138,
495141,
495144,
495146,
495149,
495152,
495155,
495157,
495160,
495163,
495166,
495168,
495171,
495174,
495177,
495179,
495182,
495185,
495187,
495190,
495193,
495196,
495198,
495201,
495204,
495207,
495209,
495212,
495215,
495218,
495220,
495223,
495226,
495229,
495231,
495234,
495237,
495240,
495242,
495245,
495248,
495250,
495253,
495256,
495259,
495261,
495264,
495267,
495270,
495272,
495275,
495278,
495281,
495283,
495286,
495289,
495292,
495294,
495297,
495300,
495302,
495305,
495308,
495311,
495313,
495316,
495319,
495322,
495324,
495327,
495330,
495333,
495335,
495338,
495341,
495343,
495346,
495349,
495352,
495354,
495357,
495360,
495363,
495365,
495368,
495371,
495373,
495376,
495379,
495382,
495384,
495387,
495390,
495393,
495395,
495398,
495401,
495404,
495406,
495409,
495412,
495414,
495417,
495420,
495423,
495425,
495428,
495431,
495434,
495436,
495439,
495442,
495444,
495447,
495450,
495453,
495455,
495458,
495461,
495464,
495466,
495469,
495472,
495474,
495477,
495480,
495483,
495485,
495488,
495491,
495493,
495496,
495499,
495502,
495504,
495507,
495510,
495513,
495515,
495518,
495521,
495523,
495526,
495529,
495532,
495534,
495537,
495540,
495542,
495545,
495548,
495551,
495553,
495556,
495559,
495562,
495564,
495567,
495570,
495572,
495575,
495578,
495581,
495583,
495586,
495589,
495591,
495594,
495597,
495600,
495602,
495605,
495608,
495610,
495613,
495616,
495619,
495621,
495624,
495627,
495629,
495632,
495635,
495638,
495640,
495643,
495646,
495649,
495651,
495654,
495657,
495659,
495662,
495665,
495668,
495670,
495673,
495676,
495678,
495681,
495684,
495687,
495689,
495692,
495695,
495697,
495700,
495703,
495705,
495708,
495711,
495714,
495716,
495719,
495722,
495724,
495727,
495730,
495733,
495735,
495738,
495741,
495743,
495746,
495749,
495752,
495754,
495757,
495760,
495762,
495765,
495768,
495771,
495773,
495776,
495779,
495781,
495784,
495787,
495790,
495792,
495795,
495798,
495800,
495803,
495806,
495808,
495811,
495814,
495817,
495819,
495822,
495825,
495827,
495830,
495833,
495836,
495838,
495841,
495844,
495846,
495849,
495852,
495854,
495857,
495860,
495863,
495865,
495868,
495871,
495873,
495876,
495879,
495881,
495884,
495887,
495890,
495892,
495895,
495898,
495900,
495903,
495906,
495909,
495911,
495914,
495917,
495919,
495922,
495925,
495927,
495930,
495933,
495936,
495938,
495941,
495944,
495946,
495949,
495952,
495954,
495957,
495960,
495963,
495965,
495968,
495971,
495973,
495976,
495979,
495981,
495984,
495987,
495989,
495992,
495995,
495998,
496000,
496003,
496006,
496008,
496011,
496014,
496016,
496019,
496022,
496025,
496027,
496030,
496033,
496035,
496038,
496041,
496043,
496046,
496049,
496051,
496054,
496057,
496060,
496062,
496065,
496068,
496070,
496073,
496076,
496078,
496081,
496084,
496086,
496089,
496092,
496095,
496097,
496100,
496103,
496105,
496108,
496111,
496113,
496116,
496119,
496121,
496124,
496127,
496130,
496132,
496135,
496138,
496140,
496143,
496146,
496148,
496151,
496154,
496156,
496159,
496162,
496165,
496167,
496170,
496173,
496175,
496178,
496181,
496183,
496186,
496189,
496191,
496194,
496197,
496199,
496202,
496205,
496207,
496210,
496213,
496216,
496218,
496221,
496224,
496226,
496229,
496232,
496234,
496237,
496240,
496242,
496245,
496248,
496250,
496253,
496256,
496258,
496261,
496264,
496267,
496269,
496272,
496275,
496277,
496280,
496283,
496285,
496288,
496291,
496293,
496296,
496299,
496301,
496304,
496307,
496309,
496312,
496315,
496317,
496320,
496323,
496326,
496328,
496331,
496334,
496336,
496339,
496342,
496344,
496347,
496350,
496352,
496355,
496358,
496360,
496363,
496366,
496368,
496371,
496374,
496376,
496379,
496382,
496384,
496387,
496390,
496392,
496395,
496398,
496400,
496403,
496406,
496409,
496411,
496414,
496417,
496419,
496422,
496425,
496427,
496430,
496433,
496435,
496438,
496441,
496443,
496446,
496449,
496451,
496454,
496457,
496459,
496462,
496465,
496467,
496470,
496473,
496475,
496478,
496481,
496483,
496486,
496489,
496491,
496494,
496497,
496499,
496502,
496505,
496507,
496510,
496513,
496515,
496518,
496521,
496523,
496526,
496529,
496531,
496534,
496537,
496539,
496542,
496545,
496547,
496550,
496553,
496555,
496558,
496561,
496563,
496566,
496569,
496571,
496574,
496577,
496579,
496582,
496585,
496587,
496590,
496593,
496595,
496598,
496601,
496603,
496606,
496609,
496611,
496614,
496617,
496619,
496622,
496625,
496627,
496630,
496633,
496635,
496638,
496641,
496643,
496646,
496649,
496651,
496654,
496657,
496659,
496662,
496665,
496667,
496670,
496673,
496675,
496678,
496681,
496683,
496686,
496689,
496691,
496694,
496697,
496699,
496702,
496705,
496707,
496710,
496713,
496715,
496718,
496720,
496723,
496726,
496728,
496731,
496734,
496736,
496739,
496742,
496744,
496747,
496750,
496752,
496755,
496758,
496760,
496763,
496766,
496768,
496771,
496774,
496776,
496779,
496782,
496784,
496787,
496790,
496792,
496795,
496798,
496800,
496803,
496805,
496808,
496811,
496813,
496816,
496819,
496821,
496824,
496827,
496829,
496832,
496835,
496837,
496840,
496843,
496845,
496848,
496851,
496853,
496856,
496859,
496861,
496864,
496866,
496869,
496872,
496874,
496877,
496880,
496882,
496885,
496888,
496890,
496893,
496896,
496898,
496901,
496904,
496906,
496909,
496912,
496914,
496917,
496919,
496922,
496925,
496927,
496930,
496933,
496935,
496938,
496941,
496943,
496946,
496949,
496951,
496954,
496957,
496959,
496962,
496964,
496967,
496970,
496972,
496975,
496978,
496980,
496983,
496986,
496988,
496991,
496994,
496996,
496999,
497001,
497004,
497007,
497009,
497012,
497015,
497017,
497020,
497023,
497025,
497028,
497031,
497033,
497036,
497038,
497041,
497044,
497046,
497049,
497052,
497054,
497057,
497060,
497062,
497065,
497068,
497070,
497073,
497075,
497078,
497081,
497083,
497086,
497089,
497091,
497094,
497097,
497099,
497102,
497104,
497107,
497110,
497112,
497115,
497118,
497120,
497123,
497126,
497128,
497131,
497133,
497136,
497139,
497141,
497144,
497147,
497149,
497152,
497155,
497157,
497160,
497162,
497165,
497168,
497170,
497173,
497176,
497178,
497181,
497184,
497186,
497189,
497191,
497194,
497197,
497199,
497202,
497205,
497207,
497210,
497213,
497215,
497218,
497220,
497223,
497226,
497228,
497231,
497234,
497236,
497239,
497241,
497244,
497247,
497249,
497252,
497255,
497257,
497260,
497263,
497265,
497268,
497270,
497273,
497276,
497278,
497281,
497284,
497286,
497289,
497291,
497294,
497297,
497299,
497302,
497305,
497307,
497310,
497312,
497315,
497318,
497320,
497323,
497326,
497328,
497331,
497333,
497336,
497339,
497341,
497344,
497347,
497349,
497352,
497354,
497357,
497360,
497362,
497365,
497368,
497370,
497373,
497375,
497378,
497381,
497383,
497386,
497389,
497391,
497394,
497396,
497399,
497402,
497404,
497407,
497410,
497412,
497415,
497417,
497420,
497423,
497425,
497428,
497431,
497433,
497436,
497438,
497441,
497444,
497446,
497449,
497452,
497454,
497457,
497459,
497462,
497465,
497467,
497470,
497472,
497475,
497478,
497480,
497483,
497486,
497488,
497491,
497493,
497496,
497499,
497501,
497504,
497507,
497509,
497512,
497514,
497517,
497520,
497522,
497525,
497527,
497530,
497533,
497535,
497538,
497541,
497543,
497546,
497548,
497551,
497554,
497556,
497559,
497561,
497564,
497567,
497569,
497572,
497575,
497577,
497580,
497582,
497585,
497588,
497590,
497593,
497595,
497598,
497601,
497603,
497606,
497608,
497611,
497614,
497616,
497619,
497622,
497624,
497627,
497629,
497632,
497635,
497637,
497640,
497642,
497645,
497648,
497650,
497653,
497655,
497658,
497661,
497663,
497666,
497669,
497671,
497674,
497676,
497679,
497682,
497684,
497687,
497689,
497692,
497695,
497697,
497700,
497702,
497705,
497708,
497710,
497713,
497715,
497718,
497721,
497723,
497726,
497728,
497731,
497734,
497736,
497739,
497742,
497744,
497747,
497749,
497752,
497755,
497757,
497760,
497762,
497765,
497768,
497770,
497773,
497775,
497778,
497781,
497783,
497786,
497788,
497791,
497794,
497796,
497799,
497801,
497804,
497807,
497809,
497812,
497814,
497817,
497820,
497822,
497825,
497827,
497830,
497833,
497835,
497838,
497840,
497843,
497846,
497848,
497851,
497853,
497856,
497859,
497861,
497864,
497866,
497869,
497872,
497874,
497877,
497879,
497882,
497885,
497887,
497890,
497892,
497895,
497898,
497900,
497903,
497905,
497908,
497911,
497913,
497916,
497918,
497921,
497924,
497926,
497929,
497931,
497934,
497937,
497939,
497942,
497944,
497947,
497949,
497952,
497955,
497957,
497960,
497962,
497965,
497968,
497970,
497973,
497975,
497978,
497981,
497983,
497986,
497988,
497991,
497994,
497996,
497999,
498001,
498004,
498007,
498009,
498012,
498014,
498017,
498019,
498022,
498025,
498027,
498030,
498032,
498035,
498038,
498040,
498043,
498045,
498048,
498051,
498053,
498056,
498058,
498061,
498064,
498066,
498069,
498071,
498074,
498076,
498079,
498082,
498084,
498087,
498089,
498092,
498095,
498097,
498100,
498102,
498105,
498107,
498110,
498113,
498115,
498118,
498120,
498123,
498126,
498128,
498131,
498133,
498136,
498139,
498141,
498144,
498146,
498149,
498151,
498154,
498157,
498159,
498162,
498164,
498167,
498170,
498172,
498175,
498177,
498180,
498182,
498185,
498188,
498190,
498193,
498195,
498198,
498201,
498203,
498206,
498208,
498211,
498213,
498216,
498219,
498221,
498224,
498226,
498229,
498231,
498234,
498237,
498239,
498242,
498244,
498247,
498250,
498252,
498255,
498257,
498260,
498262,
498265,
498268,
498270,
498273,
498275,
498278,
498280,
498283,
498286,
498288,
498291,
498293,
498296,
498299,
498301,
498304,
498306,
498309,
498311,
498314,
498317,
498319,
498322,
498324,
498327,
498329,
498332,
498335,
498337,
498340,
498342,
498345,
498347,
498350,
498353,
498355,
498358,
498360,
498363,
498365,
498368,
498371,
498373,
498376,
498378,
498381,
498383,
498386,
498389,
498391,
498394,
498396,
498399,
498401,
498404,
498407,
498409,
498412,
498414,
498417,
498419,
498422,
498425,
498427,
498430,
498432,
498435,
498437,
498440,
498443,
498445,
498448,
498450,
498453,
498455,
498458,
498461,
498463,
498466,
498468,
498471,
498473,
498476,
498479,
498481,
498484,
498486,
498489,
498491,
498494,
498496,
498499,
498502,
498504,
498507,
498509,
498512,
498514,
498517,
498520,
498522,
498525,
498527,
498530,
498532,
498535,
498538,
498540,
498543,
498545,
498548,
498550,
498553,
498555,
498558,
498561,
498563,
498566,
498568,
498571,
498573,
498576,
498579,
498581,
498584,
498586,
498589,
498591,
498594,
498596,
498599,
498602,
498604,
498607,
498609,
498612,
498614,
498617,
498620,
498622,
498625,
498627,
498630,
498632,
498635,
498637,
498640,
498643,
498645,
498648,
498650,
498653,
498655,
498658,
498660,
498663,
498666,
498668,
498671,
498673,
498676,
498678,
498681,
498683,
498686,
498689,
498691,
498694,
498696,
498699,
498701,
498704,
498706,
498709,
498712,
498714,
498717,
498719,
498722,
498724,
498727,
498729,
498732,
498735,
498737,
498740,
498742,
498745,
498747,
498750,
498752,
498755,
498758,
498760,
498763,
498765,
498768,
498770,
498773,
498775,
498778,
498781,
498783,
498786,
498788,
498791,
498793,
498796,
498798,
498801,
498804,
498806,
498809,
498811,
498814,
498816,
498819,
498821,
498824,
498826,
498829,
498832,
498834,
498837,
498839,
498842,
498844,
498847,
498849,
498852,
498855,
498857,
498860,
498862,
498865,
498867,
498870,
498872,
498875,
498877,
498880,
498883,
498885,
498888,
498890,
498893,
498895,
498898,
498900,
498903,
498905,
498908,
498911,
498913,
498916,
498918,
498921,
498923,
498926,
498928,
498931,
498933,
498936,
498939,
498941,
498944,
498946,
498949,
498951,
498954,
498956,
498959,
498961,
498964,
498967,
498969,
498972,
498974,
498977,
498979,
498982,
498984,
498987,
498989,
498992,
498994,
498997,
499000,
499002,
499005,
499007,
499010,
499012,
499015,
499017,
499020,
499022,
499025,
499027,
499030,
499033,
499035,
499038,
499040,
499043,
499045,
499048,
499050,
499053,
499055,
499058,
499060,
499063,
499066,
499068,
499071,
499073,
499076,
499078,
499081,
499083,
499086,
499088,
499091,
499093,
499096,
499099,
499101,
499104,
499106,
499109,
499111,
499114,
499116,
499119,
499121,
499124,
499126,
499129,
499131,
499134,
499137,
499139,
499142,
499144,
499147,
499149,
499152,
499154,
499157,
499159,
499162,
499164,
499167,
499169,
499172,
499175,
499177,
499180,
499182,
499185,
499187,
499190,
499192,
499195,
499197,
499200,
499202,
499205,
499207,
499210,
499213,
499215,
499218,
499220,
499223,
499225,
499228,
499230,
499233,
499235,
499238,
499240,
499243,
499245,
499248,
499250,
499253,
499256,
499258,
499261,
499263,
499266,
499268,
499271,
499273,
499276,
499278,
499281,
499283,
499286,
499288,
499291,
499293,
499296,
499298,
499301,
499304,
499306,
499309,
499311,
499314,
499316,
499319,
499321,
499324,
499326,
499329,
499331,
499334,
499336,
499339,
499341,
499344,
499346,
499349,
499351,
499354,
499357,
499359,
499362,
499364,
499367,
499369,
499372,
499374,
499377,
499379,
499382,
499384,
499387,
499389,
499392,
499394,
499397,
499399,
499402,
499404,
499407,
499409,
499412,
499415,
499417,
499420,
499422,
499425,
499427,
499430,
499432,
499435,
499437,
499440,
499442,
499445,
499447,
499450,
499452,
499455,
499457,
499460,
499462,
499465,
499467,
499470,
499472,
499475,
499477,
499480,
499483,
499485,
499488,
499490,
499493,
499495,
499498,
499500,
499503,
499505,
499508,
499510,
499513,
499515,
499518,
499520,
499523,
499525,
499528,
499530,
499533,
499535,
499538,
499540,
499543,
499545,
499548,
499550,
499553,
499555,
499558,
499560,
499563,
499566,
499568,
499571,
499573,
499576,
499578,
499581,
499583,
499586,
499588,
499591,
499593,
499596,
499598,
499601,
499603,
499606,
499608,
499611,
499613,
499616,
499618,
499621,
499623,
499626,
499628,
499631,
499633,
499636,
499638,
499641,
499643,
499646,
499648,
499651,
499653,
499656,
499658,
499661,
499663,
499666,
499668,
499671,
499673,
499676,
499678,
499681,
499683,
499686,
499688,
499691,
499693,
499696,
499698,
499701,
499704,
499706,
499709,
499711,
499714,
499716,
499719,
499721,
499724,
499726,
499729,
499731,
499734,
499736,
499739,
499741,
499744,
499746,
499749,
499751,
499754,
499756,
499759,
499761,
499764,
499766,
499769,
499771,
499774,
499776,
499779,
499781,
499784,
499786,
499789,
499791,
499794,
499796,
499799,
499801,
499804,
499806,
499809,
499811,
499814,
499816,
499819,
499821,
499824,
499826,
499829,
499831,
499834,
499836,
499839,
499841,
499844,
499846,
499849,
499851,
499854,
499856,
499859,
499861,
499864,
499866,
499869,
499871,
499874,
499876,
499879,
499881,
499884,
499886,
499889,
499891,
499894,
499896,
499899,
499901,
499904,
499906,
499909,
499911,
499914,
499916,
499919,
499921,
499924,
499926,
499929,
499931,
499933,
499936,
499938,
499941,
499943,
499946,
499948,
499951,
499953,
499956,
499958,
499961,
499963,
499966,
499968,
499971,
499973,
499976,
499978,
499981,
499983,
499986,
499988,
499991,
499993,
499996,
499998,
500001,
500003,
500006,
500008,
500011,
500013,
500016,
500018,
500021,
500023,
500026,
500028,
500031,
500033,
500036,
500038,
500041,
500043,
500046,
500048,
500051,
500053,
500056,
500058,
500061,
500063,
500066,
500068,
500070,
500073,
500075,
500078,
500080,
500083,
500085,
500088,
500090,
500093,
500095,
500098,
500100,
500103,
500105,
500108,
500110,
500113,
500115,
500118,
500120,
500123,
500125,
500128,
500130,
500133,
500135,
500138,
500140,
500143,
500145,
500148,
500150,
500153,
500155,
500157,
500160,
500162,
500165,
500167,
500170,
500172,
500175,
500177,
500180,
500182,
500185,
500187,
500190,
500192,
500195,
500197,
500200,
500202,
500205,
500207,
500210,
500212,
500215,
500217,
500220,
500222,
500224,
500227,
500229,
500232,
500234,
500237,
500239,
500242,
500244,
500247,
500249,
500252,
500254,
500257,
500259,
500262,
500264,
500267,
500269,
500272,
500274,
500277,
500279,
500281,
500284,
500286,
500289,
500291,
500294,
500296,
500299,
500301,
500304,
500306,
500309,
500311,
500314,
500316,
500319,
500321,
500324,
500326,
500329,
500331,
500333,
500336,
500338,
500341,
500343,
500346,
500348,
500351,
500353,
500356,
500358,
500361,
500363,
500366,
500368,
500371,
500373,
500376,
500378,
500380,
500383,
500385,
500388,
500390,
500393,
500395,
500398,
500400,
500403,
500405,
500408,
500410,
500413,
500415,
500418,
500420,
500422,
500425,
500427,
500430,
500432,
500435,
500437,
500440,
500442,
500445,
500447,
500450,
500452,
500455,
500457,
500460,
500462,
500464,
500467,
500469,
500472,
500474,
500477,
500479,
500482,
500484,
500487,
500489,
500492,
500494,
500497,
500499,
500501,
500504,
500506,
500509,
500511,
500514,
500516,
500519,
500521,
500524,
500526,
500529,
500531,
500534,
500536,
500538,
500541,
500543,
500546,
500548,
500551,
500553,
500556,
500558,
500561,
500563,
500566,
500568,
500570,
500573,
500575,
500578,
500580,
500583,
500585,
500588,
500590,
500593,
500595,
500598,
500600,
500602,
500605,
500607,
500610,
500612,
500615,
500617,
500620,
500622,
500625,
500627,
500630,
500632,
500634,
500637,
500639,
500642,
500644,
500647,
500649,
500652,
500654,
500657,
500659,
500662,
500664,
500666,
500669,
500671,
500674,
500676,
500679,
500681,
500684,
500686,
500689,
500691,
500693,
500696,
500698,
500701,
500703,
500706,
500708,
500711,
500713,
500716,
500718,
500720,
500723,
500725,
500728,
500730,
500733,
500735,
500738,
500740,
500743,
500745,
500747,
500750,
500752,
500755,
500757,
500760,
500762,
500765,
500767,
500770,
500772,
500774,
500777,
500779,
500782,
500784,
500787,
500789,
500792,
500794,
500797,
500799,
500801,
500804,
500806,
500809,
500811,
500814,
500816,
500819,
500821,
500824,
500826,
500828,
500831,
500833,
500836,
500838,
500841,
500843,
500846,
500848,
500850,
500853,
500855,
500858,
500860,
500863,
500865,
500868,
500870,
500873,
500875,
500877,
500880,
500882,
500885,
500887,
500890,
500892,
500895,
500897,
500899,
500902,
500904,
500907,
500909,
500912,
500914,
500917,
500919,
500921,
500924,
500926,
500929,
500931,
500934,
500936,
500939,
500941,
500943,
500946,
500948,
500951,
500953,
500956,
500958,
500961,
500963,
500965,
500968,
500970,
500973,
500975,
500978,
500980,
500983,
500985,
500987,
500990,
500992,
500995,
500997,
501000,
501002,
501005,
501007,
501009,
501012,
501014,
501017,
501019,
501022,
501024,
501027,
501029,
501031,
501034,
501036,
501039,
501041,
501044,
501046,
501048,
501051,
501053,
501056,
501058,
501061,
501063,
501066,
501068,
501070,
501073,
501075,
501078,
501080,
501083,
501085,
501087,
501090,
501092,
501095,
501097,
501100,
501102,
501105,
501107,
501109,
501112,
501114,
501117,
501119,
501122,
501124,
501126,
501129,
501131,
501134,
501136,
501139,
501141,
501144,
501146,
501148,
501151,
501153,
501156,
501158,
501161,
501163,
501165,
501168,
501170,
501173,
501175,
501178,
501180,
501182,
501185,
501187,
501190,
501192,
501195,
501197,
501199,
501202,
501204,
501207,
501209,
501212,
501214,
501217,
501219,
501221,
501224,
501226,
501229,
501231,
501234,
501236,
501238,
501241,
501243,
501246,
501248,
501251,
501253,
501255,
501258,
501260,
501263,
501265,
501268,
501270,
501272,
501275,
501277,
501280,
501282,
501285,
501287,
501289,
501292,
501294,
501297,
501299,
501302,
501304,
501306,
501309,
501311,
501314,
501316,
501319,
501321,
501323,
501326,
501328,
501331,
501333,
501336,
501338,
501340,
501343,
501345,
501348,
501350,
501353,
501355,
501357,
501360,
501362,
501365,
501367,
501369,
501372,
501374,
501377,
501379,
501382,
501384,
501386,
501389,
501391,
501394,
501396,
501399,
501401,
501403,
501406,
501408,
501411,
501413,
501416,
501418,
501420,
501423,
501425,
501428,
501430,
501432,
501435,
501437,
501440,
501442,
501445,
501447,
501449,
501452,
501454,
501457,
501459,
501462,
501464,
501466,
501469,
501471,
501474,
501476,
501478,
501481,
501483,
501486,
501488,
501491,
501493,
501495,
501498,
501500,
501503,
501505,
501507,
501510,
501512,
501515,
501517,
501520,
501522,
501524,
501527,
501529,
501532,
501534,
501536,
501539,
501541,
501544,
501546,
501549,
501551,
501553,
501556,
501558,
501561,
501563,
501565,
501568,
501570,
501573,
501575,
501578,
501580,
501582,
501585,
501587,
501590,
501592,
501594,
501597,
501599,
501602,
501604,
501606,
501609,
501611,
501614,
501616,
501619,
501621,
501623,
501626,
501628,
501631,
501633,
501635,
501638,
501640,
501643,
501645,
501647,
501650,
501652,
501655,
501657,
501660,
501662,
501664,
501667,
501669,
501672,
501674,
501676,
501679,
501681,
501684,
501686,
501688,
501691,
501693,
501696,
501698,
501701,
501703,
501705,
501708,
501710,
501713,
501715,
501717,
501720,
501722,
501725,
501727,
501729,
501732,
501734,
501737,
501739,
501741,
501744,
501746,
501749,
501751,
501753,
501756,
501758,
501761,
501763,
501765,
501768,
501770,
501773,
501775,
501778,
501780,
501782,
501785,
501787,
501790,
501792,
501794,
501797,
501799,
501802,
501804,
501806,
501809,
501811,
501814,
501816,
501818,
501821,
501823,
501826,
501828,
501830,
501833,
501835,
501838,
501840,
501842,
501845,
501847,
501850,
501852,
501854,
501857,
501859,
501862,
501864,
501866,
501869,
501871,
501874,
501876,
501878,
501881,
501883,
501886,
501888,
501890,
501893,
501895,
501898,
501900,
501902,
501905,
501907,
501910,
501912,
501914,
501917,
501919,
501922,
501924,
501926,
501929,
501931,
501934,
501936,
501938,
501941,
501943,
501946,
501948,
501950,
501953,
501955,
501958,
501960,
501962,
501965,
501967,
501970,
501972,
501974,
501977,
501979,
501981,
501984,
501986,
501989,
501991,
501993,
501996,
501998,
502001,
502003,
502005,
502008,
502010,
502013,
502015,
502017,
502020,
502022,
502025,
502027,
502029,
502032,
502034,
502037,
502039,
502041,
502044,
502046,
502049,
502051,
502053,
502056,
502058,
502060,
502063,
502065,
502068,
502070,
502072,
502075,
502077,
502080,
502082,
502084,
502087,
502089,
502092,
502094,
502096,
502099,
502101,
502103,
502106,
502108,
502111,
502113,
502115,
502118,
502120,
502123,
502125,
502127,
502130,
502132,
502135,
502137,
502139,
502142,
502144,
502146,
502149,
502151,
502154,
502156,
502158,
502161,
502163,
502166,
502168,
502170,
502173,
502175,
502177,
502180,
502182,
502185,
502187,
502189,
502192,
502194,
502197,
502199,
502201,
502204,
502206,
502209,
502211,
502213,
502216,
502218,
502220,
502223,
502225,
502228,
502230,
502232,
502235,
502237,
502239,
502242,
502244,
502247,
502249,
502251,
502254,
502256,
502259,
502261,
502263,
502266,
502268,
502270,
502273,
502275,
502278,
502280,
502282,
502285,
502287,
502289,
502292,
502294,
502297,
502299,
502301,
502304,
502306,
502309,
502311,
502313,
502316,
502318,
502320,
502323,
502325,
502328,
502330,
502332,
502335,
502337,
502339,
502342,
502344,
502347,
502349,
502351,
502354,
502356,
502358,
502361,
502363,
502366,
502368,
502370,
502373,
502375,
502377,
502380,
502382,
502385,
502387,
502389,
502392,
502394,
502397,
502399,
502401,
502404,
502406,
502408,
502411,
502413,
502415,
502418,
502420,
502423,
502425,
502427,
502430,
502432,
502434,
502437,
502439,
502442,
502444,
502446,
502449,
502451,
502453,
502456,
502458,
502461,
502463,
502465,
502468,
502470,
502472,
502475,
502477,
502480,
502482,
502484,
502487,
502489,
502491,
502494,
502496,
502499,
502501,
502503,
502506,
502508,
502510,
502513,
502515,
502517,
502520,
502522,
502525,
502527,
502529,
502532,
502534,
502536,
502539,
502541,
502544,
502546,
502548,
502551,
502553,
502555,
502558,
502560,
502562,
502565,
502567,
502570,
502572,
502574,
502577,
502579,
502581,
502584,
502586,
502589,
502591,
502593,
502596,
502598,
502600,
502603,
502605,
502607,
502610,
502612,
502615,
502617,
502619,
502622,
502624,
502626,
502629,
502631,
502633,
502636,
502638,
502641,
502643,
502645,
502648,
502650,
502652,
502655,
502657,
502659,
502662,
502664,
502667,
502669,
502671,
502674,
502676,
502678,
502681,
502683,
502685,
502688,
502690,
502693,
502695,
502697,
502700,
502702,
502704,
502707,
502709,
502711,
502714,
502716,
502719,
502721,
502723,
502726,
502728,
502730,
502733,
502735,
502737,
502740,
502742,
502744,
502747,
502749,
502752,
502754,
502756,
502759,
502761,
502763,
502766,
502768,
502770,
502773,
502775,
502777,
502780,
502782,
502785,
502787,
502789,
502792,
502794,
502796,
502799,
502801,
502803,
502806,
502808,
502810,
502813,
502815,
502818,
502820,
502822,
502825,
502827,
502829,
502832,
502834,
502836,
502839,
502841,
502843,
502846,
502848,
502851,
502853,
502855,
502858,
502860,
502862,
502865,
502867,
502869,
502872,
502874,
502876,
502879,
502881,
502883,
502886,
502888,
502891,
502893,
502895,
502898,
502900,
502902,
502905,
502907,
502909,
502912,
502914,
502916,
502919,
502921,
502923,
502926,
502928,
502930,
502933,
502935,
502938,
502940,
502942,
502945,
502947,
502949,
502952,
502954,
502956,
502959,
502961,
502963,
502966,
502968,
502970,
502973,
502975,
502977,
502980,
502982,
502985,
502987,
502989,
502992,
502994,
502996,
502999,
503001,
503003,
503006,
503008,
503010,
503013,
503015,
503017,
503020,
503022,
503024,
503027,
503029,
503031,
503034,
503036,
503038,
503041,
503043,
503046,
503048,
503050,
503053,
503055,
503057,
503060,
503062,
503064,
503067,
503069,
503071,
503074,
503076,
503078,
503081,
503083,
503085,
503088,
503090,
503092,
503095,
503097,
503099,
503102,
503104,
503106,
503109,
503111,
503113,
503116,
503118,
503121,
503123,
503125,
503128,
503130,
503132,
503135,
503137,
503139,
503142,
503144,
503146,
503149,
503151,
503153,
503156,
503158,
503160,
503163,
503165,
503167,
503170,
503172,
503174,
503177,
503179,
503181,
503184,
503186,
503188,
503191,
503193,
503195,
503198,
503200,
503202,
503205,
503207,
503209,
503212,
503214,
503216,
503219,
503221,
503223,
503226,
503228,
503230,
503233,
503235,
503237,
503240,
503242,
503244,
503247,
503249,
503251,
503254,
503256,
503258,
503261,
503263,
503265,
503268,
503270,
503272,
503275,
503277,
503279,
503282,
503284,
503286,
503289,
503291,
503293,
503296,
503298,
503300,
503303,
503305,
503307,
503310,
503312,
503314,
503317,
503319,
503321,
503324,
503326,
503328,
503331,
503333,
503335,
503338,
503340,
503342,
503345,
503347,
503349,
503352,
503354,
503356,
503359,
503361,
503363,
503366,
503368,
503370,
503373,
503375,
503377,
503380,
503382,
503384,
503387,
503389,
503391,
503394,
503396,
503398,
503401,
503403,
503405,
503408,
503410,
503412,
503415,
503417,
503419,
503422,
503424,
503426,
503429,
503431,
503433,
503436,
503438,
503440,
503443,
503445,
503447,
503450,
503452,
503454,
503457,
503459,
503461,
503464,
503466,
503468,
503471,
503473,
503475,
503477,
503480,
503482,
503484,
503487,
503489,
503491,
503494,
503496,
503498,
503501,
503503,
503505,
503508,
503510,
503512,
503515,
503517,
503519,
503522,
503524,
503526,
503529,
503531,
503533,
503536,
503538,
503540,
503543,
503545,
503547,
503549,
503552,
503554,
503556,
503559,
503561,
503563,
503566,
503568,
503570,
503573,
503575,
503577,
503580,
503582,
503584,
503587,
503589,
503591,
503594,
503596,
503598,
503601,
503603,
503605,
503608,
503610,
503612,
503614,
503617,
503619,
503621,
503624,
503626,
503628,
503631,
503633,
503635,
503638,
503640,
503642,
503645,
503647,
503649,
503652,
503654,
503656,
503658,
503661,
503663,
503665,
503668,
503670,
503672,
503675,
503677,
503679,
503682,
503684,
503686,
503689,
503691,
503693,
503696,
503698,
503700,
503702,
503705,
503707,
503709,
503712,
503714,
503716,
503719,
503721,
503723,
503726,
503728,
503730,
503733,
503735,
503737,
503740,
503742,
503744,
503746,
503749,
503751,
503753,
503756,
503758,
503760,
503763,
503765,
503767,
503770,
503772,
503774,
503777,
503779,
503781,
503783,
503786,
503788,
503790,
503793,
503795,
503797,
503800,
503802,
503804,
503807,
503809,
503811,
503813,
503816,
503818,
503820,
503823,
503825,
503827,
503830,
503832,
503834,
503837,
503839,
503841,
503843,
503846,
503848,
503850,
503853,
503855,
503857,
503860,
503862,
503864,
503867,
503869,
503871,
503873,
503876,
503878,
503880,
503883,
503885,
503887,
503890,
503892,
503894,
503897,
503899,
503901,
503903,
503906,
503908,
503910,
503913,
503915,
503917,
503920,
503922,
503924,
503927,
503929,
503931,
503933,
503936,
503938,
503940,
503943,
503945,
503947,
503950,
503952,
503954,
503956,
503959,
503961,
503963,
503966,
503968,
503970,
503973,
503975,
503977,
503979,
503982,
503984,
503986,
503989,
503991,
503993,
503996,
503998,
504000,
504002,
504005,
504007,
504009,
504012,
504014,
504016,
504019,
504021,
504023,
504025,
504028,
504030,
504032,
504035,
504037,
504039,
504042,
504044,
504046,
504048,
504051,
504053,
504055,
504058,
504060,
504062,
504065,
504067,
504069,
504071,
504074,
504076,
504078,
504081,
504083,
504085,
504088,
504090,
504092,
504094,
504097,
504099,
504101,
504104,
504106,
504108,
504111,
504113,
504115,
504117,
504120,
504122,
504124,
504127,
504129,
504131,
504133,
504136,
504138,
504140,
504143,
504145,
504147,
504150,
504152,
504154,
504156,
504159,
504161,
504163,
504166,
504168,
504170,
504172,
504175,
504177,
504179,
504182,
504184,
504186,
504189,
504191,
504193,
504195,
504198,
504200,
504202,
504205,
504207,
504209,
504211,
504214,
504216,
504218,
504221,
504223,
504225,
504227,
504230,
504232,
504234,
504237,
504239,
504241,
504244,
504246,
504248,
504250,
504253,
504255,
504257,
504260,
504262,
504264,
504266,
504269,
504271,
504273,
504276,
504278,
504280,
504282,
504285,
504287,
504289,
504292,
504294,
504296,
504298,
504301,
504303,
504305,
504308,
504310,
504312,
504314,
504317,
504319,
504321,
504324,
504326,
504328,
504330,
504333,
504335,
504337,
504340,
504342,
504344,
504346,
504349,
504351,
504353,
504356,
504358,
504360,
504362,
504365,
504367,
504369,
504372,
504374,
504376,
504378,
504381,
504383,
504385,
504388,
504390,
504392,
504394,
504397,
504399,
504401,
504404,
504406,
504408,
504410,
504413,
504415,
504417,
504420,
504422,
504424,
504426,
504429,
504431,
504433,
504435,
504438,
504440,
504442,
504445,
504447,
504449,
504451,
504454,
504456,
504458,
504461,
504463,
504465,
504467,
504470,
504472,
504474,
504477,
504479,
504481,
504483,
504486,
504488,
504490,
504492,
504495,
504497,
504499,
504502,
504504,
504506,
504508,
504511,
504513,
504515,
504518,
504520,
504522,
504524,
504527,
504529,
504531,
504533,
504536,
504538,
504540,
504543,
504545,
504547,
504549,
504552,
504554,
504556,
504559,
504561,
504563,
504565,
504568,
504570,
504572,
504574,
504577,
504579,
504581,
504584,
504586,
504588,
504590,
504593,
504595,
504597,
504599,
504602,
504604,
504606,
504609,
504611,
504613,
504615,
504618,
504620,
504622,
504624,
504627,
504629,
504631,
504634,
504636,
504638,
504640,
504643,
504645,
504647,
504649,
504652,
504654,
504656,
504659,
504661,
504663,
504665,
504668,
504670,
504672,
504674,
504677,
504679,
504681,
504684,
504686,
504688,
504690,
504693,
504695,
504697,
504699,
504702,
504704,
504706,
504708,
504711,
504713,
504715,
504718,
504720,
504722,
504724,
504727,
504729,
504731,
504733,
504736,
504738,
504740,
504743,
504745,
504747,
504749,
504752,
504754,
504756,
504758,
504761,
504763,
504765,
504767,
504770,
504772,
504774,
504777,
504779,
504781,
504783,
504786,
504788,
504790,
504792,
504795,
504797,
504799,
504801,
504804,
504806,
504808,
504810,
504813,
504815,
504817,
504820,
504822,
504824,
504826,
504829,
504831,
504833,
504835,
504838,
504840,
504842,
504844,
504847,
504849,
504851,
504853,
504856,
504858,
504860,
504863,
504865,
504867,
504869,
504872,
504874,
504876,
504878,
504881,
504883,
504885,
504887,
504890,
504892,
504894,
504896,
504899,
504901,
504903,
504906,
504908,
504910,
504912,
504915,
504917,
504919,
504921,
504924,
504926,
504928,
504930,
504933,
504935,
504937,
504939,
504942,
504944,
504946,
504948,
504951,
504953,
504955,
504957,
504960,
504962,
504964,
504966,
504969,
504971,
504973,
504976,
504978,
504980,
504982,
504985,
504987,
504989,
504991,
504994,
504996,
504998,
505000,
505003,
505005,
505007,
505009,
505012,
505014,
505016,
505018,
505021,
505023,
505025,
505027,
505030,
505032,
505034,
505036,
505039,
505041,
505043,
505045,
505048,
505050,
505052,
505054,
505057,
505059,
505061,
505063,
505066,
505068,
505070,
505072,
505075,
505077,
505079,
505081,
505084,
505086,
505088,
505090,
505093,
505095,
505097,
505099,
505102,
505104,
505106,
505108,
505111,
505113,
505115,
505117,
505120,
505122,
505124,
505126,
505129,
505131,
505133,
505135,
505138,
505140,
505142,
505144,
505147,
505149,
505151,
505153,
505156,
505158,
505160,
505162,
505165,
505167,
505169,
505171,
505174,
505176,
505178,
505180,
505183,
505185,
505187,
505189,
505192,
505194,
505196,
505198,
505201,
505203,
505205,
505207,
505210,
505212,
505214,
505216,
505219,
505221,
505223,
505225,
505228,
505230,
505232,
505234,
505237,
505239,
505241,
505243,
505246,
505248,
505250,
505252,
505255,
505257,
505259,
505261,
505264,
505266,
505268,
505270,
505273,
505275,
505277,
505279,
505282,
505284,
505286,
505288,
505290,
505293,
505295,
505297,
505299,
505302,
505304,
505306,
505308,
505311,
505313,
505315,
505317,
505320,
505322,
505324,
505326,
505329,
505331,
505333,
505335,
505338,
505340,
505342,
505344,
505347,
505349,
505351,
505353,
505355,
505358,
505360,
505362,
505364,
505367,
505369,
505371,
505373,
505376,
505378,
505380,
505382,
505385,
505387,
505389,
505391,
505394,
505396,
505398,
505400,
505403,
505405,
505407,
505409,
505411,
505414,
505416,
505418,
505420,
505423,
505425,
505427,
505429,
505432,
505434,
505436,
505438,
505441,
505443,
505445,
505447,
505449,
505452,
505454,
505456,
505458,
505461,
505463,
505465,
505467,
505470,
505472,
505474,
505476,
505479,
505481,
505483,
505485,
505487,
505490,
505492,
505494,
505496,
505499,
505501,
505503,
505505,
505508,
505510,
505512,
505514,
505517,
505519,
505521,
505523,
505525,
505528,
505530,
505532,
505534,
505537,
505539,
505541,
505543,
505546,
505548,
505550,
505552,
505554,
505557,
505559,
505561,
505563,
505566,
505568,
505570,
505572,
505575,
505577,
505579,
505581,
505583,
505586,
505588,
505590,
505592,
505595,
505597,
505599,
505601,
505604,
505606,
505608,
505610,
505612,
505615,
505617,
505619,
505621,
505624,
505626,
505628,
505630,
505632,
505635,
505637,
505639,
505641,
505644,
505646,
505648,
505650,
505653,
505655,
505657,
505659,
505661,
505664,
505666,
505668,
505670,
505673,
505675,
505677,
505679,
505681,
505684,
505686,
505688,
505690,
505693,
505695,
505697,
505699,
505701,
505704,
505706,
505708,
505710,
505713,
505715,
505717,
505719,
505722,
505724,
505726,
505728,
505730,
505733,
505735,
505737,
505739,
505742,
505744,
505746,
505748,
505750,
505753,
505755,
505757,
505759,
505762,
505764,
505766,
505768,
505770,
505773,
505775,
505777,
505779,
505782,
505784,
505786,
505788,
505790,
505793,
505795,
505797,
505799,
505802,
505804,
505806,
505808,
505810,
505813,
505815,
505817,
505819,
505821,
505824,
505826,
505828,
505830,
505833,
505835,
505837,
505839,
505841,
505844,
505846,
505848,
505850,
505853,
505855,
505857,
505859,
505861,
505864,
505866,
505868,
505870,
505872,
505875,
505877,
505879,
505881,
505884,
505886,
505888,
505890,
505892,
505895,
505897,
505899,
505901,
505904,
505906,
505908,
505910,
505912,
505915,
505917,
505919,
505921,
505923,
505926,
505928,
505930,
505932,
505935,
505937,
505939,
505941,
505943,
505946,
505948,
505950,
505952,
505954,
505957,
505959,
505961,
505963,
505966,
505968,
505970,
505972,
505974,
505977,
505979,
505981,
505983,
505985,
505988,
505990,
505992,
505994,
505997,
505999,
506001,
506003,
506005,
506008,
506010,
506012,
506014,
506016,
506019,
506021,
506023,
506025,
506027,
506030,
506032,
506034,
506036,
506039,
506041,
506043,
506045,
506047,
506050,
506052,
506054,
506056,
506058,
506061,
506063,
506065,
506067,
506069,
506072,
506074,
506076,
506078,
506080,
506083,
506085,
506087,
506089,
506092,
506094,
506096,
506098,
506100,
506103,
506105,
506107,
506109,
506111,
506114,
506116,
506118,
506120,
506122,
506125,
506127,
506129,
506131,
506133,
506136,
506138,
506140,
506142,
506144,
506147,
506149,
506151,
506153,
506155,
506158,
506160,
506162,
506164,
506167,
506169,
506171,
506173,
506175,
506178,
506180,
506182,
506184,
506186,
506189,
506191,
506193,
506195,
506197,
506200,
506202,
506204,
506206,
506208,
506211,
506213,
506215,
506217,
506219,
506222,
506224,
506226,
506228,
506230,
506233,
506235,
506237,
506239,
506241,
506244,
506246,
506248,
506250,
506252,
506255,
506257,
506259,
506261,
506263,
506266,
506268,
506270,
506272,
506274,
506277,
506279,
506281,
506283,
506285,
506288,
506290,
506292,
506294,
506296,
506299,
506301,
506303,
506305,
506307,
506310,
506312,
506314,
506316,
506318,
506321,
506323,
506325,
506327,
506329,
506332,
506334,
506336,
506338,
506340,
506343,
506345,
506347,
506349,
506351,
506354,
506356,
506358,
506360,
506362,
506365,
506367,
506369,
506371,
506373,
506375,
506378,
506380,
506382,
506384,
506386,
506389,
506391,
506393,
506395,
506397,
506400,
506402,
506404,
506406,
506408,
506411,
506413,
506415,
506417,
506419,
506422,
506424,
506426,
506428,
506430,
506433,
506435,
506437,
506439,
506441,
506443,
506446,
506448,
506450,
506452,
506454,
506457,
506459,
506461,
506463,
506465,
506468,
506470,
506472,
506474,
506476,
506479,
506481,
506483,
506485,
506487,
506489,
506492,
506494,
506496,
506498,
506500,
506503,
506505,
506507,
506509,
506511,
506514,
506516,
506518,
506520,
506522,
506525,
506527,
506529,
506531,
506533,
506535,
506538,
506540,
506542,
506544,
506546,
506549,
506551,
506553,
506555,
506557,
506560,
506562,
506564,
506566,
506568,
506570,
506573,
506575,
506577,
506579,
506581,
506584,
506586,
506588,
506590,
506592,
506595,
506597,
506599,
506601,
506603,
506605,
506608,
506610,
506612,
506614,
506616,
506619,
506621,
506623,
506625,
506627,
506629,
506632,
506634,
506636,
506638,
506640,
506643,
506645,
506647,
506649,
506651,
506653,
506656,
506658,
506660,
506662,
506664,
506667,
506669,
506671,
506673,
506675,
506677,
506680,
506682,
506684,
506686,
506688,
506691,
506693,
506695,
506697,
506699,
506701,
506704,
506706,
506708,
506710,
506712,
506715,
506717,
506719,
506721,
506723,
506725,
506728,
506730,
506732,
506734,
506736,
506739,
506741,
506743,
506745,
506747,
506749,
506752,
506754,
506756,
506758,
506760,
506763,
506765,
506767,
506769,
506771,
506773,
506776,
506778,
506780,
506782,
506784,
506786,
506789,
506791,
506793,
506795,
506797,
506800,
506802,
506804,
506806,
506808,
506810,
506813,
506815,
506817,
506819,
506821,
506823,
506826,
506828,
506830,
506832,
506834,
506837,
506839,
506841,
506843,
506845,
506847,
506850,
506852,
506854,
506856,
506858,
506860,
506863,
506865,
506867,
506869,
506871,
506873,
506876,
506878,
506880,
506882,
506884,
506887,
506889,
506891,
506893,
506895,
506897,
506900,
506902,
506904,
506906,
506908,
506910,
506913,
506915,
506917,
506919,
506921,
506923,
506926,
506928,
506930,
506932,
506934,
506936,
506939,
506941,
506943,
506945,
506947,
506950,
506952,
506954,
506956,
506958,
506960,
506963,
506965,
506967,
506969,
506971,
506973,
506976,
506978,
506980,
506982,
506984,
506986,
506989,
506991,
506993,
506995,
506997,
506999,
507002,
507004,
507006,
507008,
507010,
507012,
507015,
507017,
507019,
507021,
507023,
507025,
507028,
507030,
507032,
507034,
507036,
507038,
507041,
507043,
507045,
507047,
507049,
507051,
507054,
507056,
507058,
507060,
507062,
507064,
507067,
507069,
507071,
507073,
507075,
507077,
507080,
507082,
507084,
507086,
507088,
507090,
507093,
507095,
507097,
507099,
507101,
507103,
507106,
507108,
507110,
507112,
507114,
507116,
507119,
507121,
507123,
507125,
507127,
507129,
507131,
507134,
507136,
507138,
507140,
507142,
507144,
507147,
507149,
507151,
507153,
507155,
507157,
507160,
507162,
507164,
507166,
507168,
507170,
507173,
507175,
507177,
507179,
507181,
507183,
507186,
507188,
507190,
507192,
507194,
507196,
507198,
507201,
507203,
507205,
507207,
507209,
507211,
507214,
507216,
507218,
507220,
507222,
507224,
507227,
507229,
507231,
507233,
507235,
507237,
507239,
507242,
507244,
507246,
507248,
507250,
507252,
507255,
507257,
507259,
507261,
507263,
507265,
507268,
507270,
507272,
507274,
507276,
507278,
507280,
507283,
507285,
507287,
507289,
507291,
507293,
507296,
507298,
507300,
507302,
507304,
507306,
507308,
507311,
507313,
507315,
507317,
507319,
507321,
507324,
507326,
507328,
507330,
507332,
507334,
507336,
507339,
507341,
507343,
507345,
507347,
507349,
507352,
507354,
507356,
507358,
507360,
507362,
507364,
507367,
507369,
507371,
507373,
507375,
507377,
507380,
507382,
507384,
507386,
507388,
507390,
507392,
507395,
507397,
507399,
507401,
507403,
507405,
507408,
507410,
507412,
507414,
507416,
507418,
507420,
507423,
507425,
507427,
507429,
507431,
507433,
507435,
507438,
507440,
507442,
507444,
507446,
507448,
507451,
507453,
507455,
507457,
507459,
507461,
507463,
507466,
507468,
507470,
507472,
507474,
507476,
507478,
507481,
507483,
507485,
507487,
507489,
507491,
507493,
507496,
507498,
507500,
507502,
507504,
507506,
507508,
507511,
507513,
507515,
507517,
507519,
507521,
507524,
507526,
507528,
507530,
507532,
507534,
507536,
507539,
507541,
507543,
507545,
507547,
507549,
507551,
507554,
507556,
507558,
507560,
507562,
507564,
507566,
507569,
507571,
507573,
507575,
507577,
507579,
507581,
507584,
507586,
507588,
507590,
507592,
507594,
507596,
507599,
507601,
507603,
507605,
507607,
507609,
507611,
507614,
507616,
507618,
507620,
507622,
507624,
507626,
507629,
507631,
507633,
507635,
507637,
507639,
507641,
507644,
507646,
507648,
507650,
507652,
507654,
507656,
507659,
507661,
507663,
507665,
507667,
507669,
507671,
507673,
507676,
507678,
507680,
507682,
507684,
507686,
507688,
507691,
507693,
507695,
507697,
507699,
507701,
507703,
507706,
507708,
507710,
507712,
507714,
507716,
507718,
507721,
507723,
507725,
507727,
507729,
507731,
507733,
507735,
507738,
507740,
507742,
507744,
507746,
507748,
507750,
507753,
507755,
507757,
507759,
507761,
507763,
507765,
507768,
507770,
507772,
507774,
507776,
507778,
507780,
507782,
507785,
507787,
507789,
507791,
507793,
507795,
507797,
507800,
507802,
507804,
507806,
507808,
507810,
507812,
507814,
507817,
507819,
507821,
507823,
507825,
507827,
507829,
507832,
507834,
507836,
507838,
507840,
507842,
507844,
507846,
507849,
507851,
507853,
507855,
507857,
507859,
507861,
507864,
507866,
507868,
507870,
507872,
507874,
507876,
507878,
507881,
507883,
507885,
507887,
507889,
507891,
507893,
507895,
507898,
507900,
507902,
507904,
507906,
507908,
507910,
507913,
507915,
507917,
507919,
507921,
507923,
507925,
507927,
507930,
507932,
507934,
507936,
507938,
507940,
507942,
507944,
507947,
507949,
507951,
507953,
507955,
507957,
507959,
507961,
507964,
507966,
507968,
507970,
507972,
507974,
507976,
507978,
507981,
507983,
507985,
507987,
507989,
507991,
507993,
507995,
507998,
508000,
508002,
508004,
508006,
508008,
508010,
508012,
508015,
508017,
508019,
508021,
508023,
508025,
508027,
508029,
508032,
508034,
508036,
508038,
508040,
508042,
508044,
508046,
508049,
508051,
508053,
508055,
508057,
508059,
508061,
508063,
508066,
508068,
508070,
508072,
508074,
508076,
508078,
508080,
508083,
508085,
508087,
508089,
508091,
508093,
508095,
508097,
508100,
508102,
508104,
508106,
508108,
508110,
508112,
508114,
508117,
508119,
508121,
508123,
508125,
508127,
508129,
508131,
508133,
508136,
508138,
508140,
508142,
508144,
508146,
508148,
508150,
508153,
508155,
508157,
508159,
508161,
508163,
508165,
508167,
508169,
508172,
508174,
508176,
508178,
508180,
508182,
508184,
508186,
508189,
508191,
508193,
508195,
508197,
508199,
508201,
508203,
508205,
508208,
508210,
508212,
508214,
508216,
508218,
508220,
508222,
508225,
508227,
508229,
508231,
508233,
508235,
508237,
508239,
508241,
508244,
508246,
508248,
508250,
508252,
508254,
508256,
508258,
508261,
508263,
508265,
508267,
508269,
508271,
508273,
508275,
508277,
508280,
508282,
508284,
508286,
508288,
508290,
508292,
508294,
508296,
508299,
508301,
508303,
508305,
508307,
508309,
508311,
508313,
508315,
508318,
508320,
508322,
508324,
508326,
508328,
508330,
508332,
508334,
508337,
508339,
508341,
508343,
508345,
508347,
508349,
508351,
508353,
508356,
508358,
508360,
508362,
508364,
508366,
508368,
508370,
508372,
508375,
508377,
508379,
508381,
508383,
508385,
508387,
508389,
508391,
508394,
508396,
508398,
508400,
508402,
508404,
508406,
508408,
508410,
508413,
508415,
508417,
508419,
508421,
508423,
508425,
508427,
508429,
508431,
508434,
508436,
508438,
508440,
508442,
508444,
508446,
508448,
508450,
508453,
508455,
508457,
508459,
508461,
508463,
508465,
508467,
508469,
508472,
508474,
508476,
508478,
508480,
508482,
508484,
508486,
508488,
508490,
508493,
508495,
508497,
508499,
508501,
508503,
508505,
508507,
508509,
508512,
508514,
508516,
508518,
508520,
508522,
508524,
508526,
508528,
508530,
508533,
508535,
508537,
508539,
508541,
508543,
508545,
508547,
508549,
508551,
508554,
508556,
508558,
508560,
508562,
508564,
508566,
508568,
508570,
508572,
508575,
508577,
508579,
508581,
508583,
508585,
508587,
508589,
508591,
508594,
508596,
508598,
508600,
508602,
508604,
508606,
508608,
508610,
508612,
508615,
508617,
508619,
508621,
508623,
508625,
508627,
508629,
508631,
508633,
508635,
508638,
508640,
508642,
508644,
508646,
508648,
508650,
508652,
508654,
508656,
508659,
508661,
508663,
508665,
508667,
508669,
508671,
508673,
508675,
508677,
508680,
508682,
508684,
508686,
508688,
508690,
508692,
508694,
508696,
508698,
508701,
508703,
508705,
508707,
508709,
508711,
508713,
508715,
508717,
508719,
508721,
508724,
508726,
508728,
508730,
508732,
508734,
508736,
508738,
508740,
508742,
508745,
508747,
508749,
508751,
508753,
508755,
508757,
508759,
508761,
508763,
508765,
508768,
508770,
508772,
508774,
508776,
508778,
508780,
508782,
508784,
508786,
508788,
508791,
508793,
508795,
508797,
508799,
508801,
508803,
508805,
508807,
508809,
508811,
508814,
508816,
508818,
508820,
508822,
508824,
508826,
508828,
508830,
508832,
508834,
508837,
508839,
508841,
508843,
508845,
508847,
508849,
508851,
508853,
508855,
508857,
508860,
508862,
508864,
508866,
508868,
508870,
508872,
508874,
508876,
508878,
508880,
508883,
508885,
508887,
508889,
508891,
508893,
508895,
508897,
508899,
508901,
508903,
508906,
508908,
508910,
508912,
508914,
508916,
508918,
508920,
508922,
508924,
508926,
508928,
508931,
508933,
508935,
508937,
508939,
508941,
508943,
508945,
508947,
508949,
508951,
508954,
508956,
508958,
508960,
508962,
508964,
508966,
508968,
508970,
508972,
508974,
508976,
508979,
508981,
508983,
508985,
508987,
508989,
508991,
508993,
508995,
508997,
508999,
509001,
509004,
509006,
509008,
509010,
509012,
509014,
509016,
509018,
509020,
509022,
509024,
509026,
509029,
509031,
509033,
509035,
509037,
509039,
509041,
509043,
509045,
509047,
509049,
509051,
509054,
509056,
509058,
509060,
509062,
509064,
509066,
509068,
509070,
509072,
509074,
509076,
509079,
509081,
509083,
509085,
509087,
509089,
509091,
509093,
509095,
509097,
509099,
509101,
509103,
509106,
509108,
509110,
509112,
509114,
509116,
509118,
509120,
509122,
509124,
509126,
509128,
509130,
509133,
509135,
509137,
509139,
509141,
509143,
509145,
509147,
509149,
509151,
509153,
509155,
509158,
509160,
509162,
509164,
509166,
509168,
509170,
509172,
509174,
509176,
509178,
509180,
509182,
509185,
509187,
509189,
509191,
509193,
509195,
509197,
509199,
509201,
509203,
509205,
509207,
509209,
509211,
509214,
509216,
509218,
509220,
509222,
509224,
509226,
509228,
509230,
509232,
509234,
509236,
509238,
509241,
509243,
509245,
509247,
509249,
509251,
509253,
509255,
509257,
509259,
509261,
509263,
509265,
509267,
509270,
509272,
509274,
509276,
509278,
509280,
509282,
509284,
509286,
509288,
509290,
509292,
509294,
509296,
509299,
509301,
509303,
509305,
509307,
509309,
509311,
509313,
509315,
509317,
509319,
509321,
509323,
509325,
509328,
509330,
509332,
509334,
509336,
509338,
509340,
509342,
509344,
509346,
509348,
509350,
509352,
509354,
509357,
509359,
509361,
509363,
509365,
509367,
509369,
509371,
509373,
509375,
509377,
509379,
509381,
509383,
509385,
509388,
509390,
509392,
509394,
509396,
509398,
509400,
509402,
509404,
509406,
509408,
509410,
509412,
509414,
509416,
509419,
509421,
509423,
509425,
509427,
509429,
509431,
509433,
509435,
509437,
509439,
509441,
509443,
509445,
509447,
509450,
509452,
509454,
509456,
509458,
509460,
509462,
509464,
509466,
509468,
509470,
509472,
509474,
509476,
509478,
509481,
509483,
509485,
509487,
509489,
509491,
509493,
509495,
509497,
509499,
509501,
509503,
509505,
509507,
509509,
509511,
509514,
509516,
509518,
509520,
509522,
509524,
509526,
509528,
509530,
509532,
509534,
509536,
509538,
509540,
509542,
509544,
509547,
509549,
509551,
509553,
509555,
509557,
509559,
509561,
509563,
509565,
509567,
509569,
509571,
509573,
509575,
509577,
509579,
509582,
509584,
509586,
509588,
509590,
509592,
509594,
509596,
509598,
509600,
509602,
509604,
509606,
509608,
509610,
509612,
509615,
509617,
509619,
509621,
509623,
509625,
509627,
509629,
509631,
509633,
509635,
509637,
509639,
509641,
509643,
509645,
509647,
509649,
509652,
509654,
509656,
509658,
509660,
509662,
509664,
509666,
509668,
509670,
509672,
509674,
509676,
509678,
509680,
509682,
509684,
509687,
509689,
509691,
509693,
509695,
509697,
509699,
509701,
509703,
509705,
509707,
509709,
509711,
509713,
509715,
509717,
509719,
509721,
509723,
509726,
509728,
509730,
509732,
509734,
509736,
509738,
509740,
509742,
509744,
509746,
509748,
509750,
509752,
509754,
509756,
509758,
509760,
509763,
509765,
509767,
509769,
509771,
509773,
509775,
509777,
509779,
509781,
509783,
509785,
509787,
509789,
509791,
509793,
509795,
509797,
509799,
509801,
509804,
509806,
509808,
509810,
509812,
509814,
509816,
509818,
509820,
509822,
509824,
509826,
509828,
509830,
509832,
509834,
509836,
509838,
509840,
509842,
509845,
509847,
509849,
509851,
509853,
509855,
509857,
509859,
509861,
509863,
509865,
509867,
509869,
509871,
509873,
509875,
509877,
509879,
509881,
509883,
509886,
509888,
509890,
509892,
509894,
509896,
509898,
509900,
509902,
509904,
509906,
509908,
509910,
509912,
509914,
509916,
509918,
509920,
509922,
509924,
509926,
509928,
509931,
509933,
509935,
509937,
509939,
509941,
509943,
509945,
509947,
509949,
509951,
509953,
509955,
509957,
509959,
509961,
509963,
509965,
509967,
509969,
509971,
509973,
509976,
509978,
509980,
509982,
509984,
509986,
509988,
509990,
509992,
509994,
509996,
509998,
510000,
510002,
510004,
510006,
510008,
510010,
510012,
510014,
510016,
510018,
510020,
510022,
510025,
510027,
510029,
510031,
510033,
510035,
510037,
510039,
510041,
510043,
510045,
510047,
510049,
510051,
510053,
510055,
510057,
510059,
510061,
510063,
510065,
510067,
510069,
510071,
510074,
510076,
510078,
510080,
510082,
510084,
510086,
510088,
510090,
510092,
510094,
510096,
510098,
510100,
510102,
510104,
510106,
510108,
510110,
510112,
510114,
510116,
510118,
510120,
510122,
510124,
510127,
510129,
510131,
510133,
510135,
510137,
510139,
510141,
510143,
510145,
510147,
510149,
510151,
510153,
510155,
510157,
510159,
510161,
510163,
510165,
510167,
510169,
510171,
510173,
510175,
510177,
510179,
510182,
510184,
510186,
510188,
510190,
510192,
510194,
510196,
510198,
510200,
510202,
510204,
510206,
510208,
510210,
510212,
510214,
510216,
510218,
510220,
510222,
510224,
510226,
510228,
510230,
510232,
510234,
510236,
510238,
510241,
510243,
510245,
510247,
510249,
510251,
510253,
510255,
510257,
510259,
510261,
510263,
510265,
510267,
510269,
510271,
510273,
510275,
510277,
510279,
510281,
510283,
510285,
510287,
510289,
510291,
510293,
510295,
510297,
510299,
510301,
510303,
510306,
510308,
510310,
510312,
510314,
510316,
510318,
510320,
510322,
510324,
510326,
510328,
510330,
510332,
510334,
510336,
510338,
510340,
510342,
510344,
510346,
510348,
510350,
510352,
510354,
510356,
510358,
510360,
510362,
510364,
510366,
510368,
510370,
510372,
510375,
510377,
510379,
510381,
510383,
510385,
510387,
510389,
510391,
510393,
510395,
510397,
510399,
510401,
510403,
510405,
510407,
510409,
510411,
510413,
510415,
510417,
510419,
510421,
510423,
510425,
510427,
510429,
510431,
510433,
510435,
510437,
510439,
510441,
510443,
510445,
510447,
510449,
510452,
510454,
510456,
510458,
510460,
510462,
510464,
510466,
510468,
510470,
510472,
510474,
510476,
510478,
510480,
510482,
510484,
510486,
510488,
510490,
510492,
510494,
510496,
510498,
510500,
510502,
510504,
510506,
510508,
510510,
510512,
510514,
510516,
510518,
510520,
510522,
510524,
510526,
510528,
510530,
510532,
510534,
510536,
510538,
510541,
510543,
510545,
510547,
510549,
510551,
510553,
510555,
510557,
510559,
510561,
510563,
510565,
510567,
510569,
510571,
510573,
510575,
510577,
510579,
510581,
510583,
510585,
510587,
510589,
510591,
510593,
510595,
510597,
510599,
510601,
510603,
510605,
510607,
510609,
510611,
510613,
510615,
510617,
510619,
510621,
510623,
510625,
510627,
510629,
510631,
510633,
510635,
510637,
510639,
510641,
510643,
510646,
510648,
510650,
510652,
510654,
510656,
510658,
510660,
510662,
510664,
510666,
510668,
510670,
510672,
510674,
510676,
510678,
510680,
510682,
510684,
510686,
510688,
510690,
510692,
510694,
510696,
510698,
510700,
510702,
510704,
510706,
510708,
510710,
510712,
510714,
510716,
510718,
510720,
510722,
510724,
510726,
510728,
510730,
510732,
510734,
510736,
510738,
510740,
510742,
510744,
510746,
510748,
510750,
510752,
510754,
510756,
510758,
510760,
510762,
510764,
510766,
510768,
510770,
510772,
510774,
510776,
510778,
510780,
510782,
510784,
510786,
510789,
510791,
510793,
510795,
510797,
510799,
510801,
510803,
510805,
510807,
510809,
510811,
510813,
510815,
510817,
510819,
510821,
510823,
510825,
510827,
510829,
510831,
510833,
510835,
510837,
510839,
510841,
510843,
510845,
510847,
510849,
510851,
510853,
510855,
510857,
510859,
510861,
510863,
510865,
510867,
510869,
510871,
510873,
510875,
510877,
510879,
510881,
510883,
510885,
510887,
510889,
510891,
510893,
510895,
510897,
510899,
510901,
510903,
510905,
510907,
510909,
510911,
510913,
510915,
510917,
510919,
510921,
510923,
510925,
510927,
510929,
510931,
510933,
510935,
510937,
510939,
510941,
510943,
510945,
510947,
510949,
510951,
510953,
510955,
510957,
510959,
510961,
510963,
510965,
510967,
510969,
510971,
510973,
510975,
510977,
510979,
510981,
510983,
510985,
510987,
510989,
510991,
510993,
510995,
510997,
510999,
511001,
511003,
511005,
511007,
511009,
511011,
511013,
511015,
511017,
511019,
511021,
511023,
511025,
511027,
511029,
511031,
511033,
511035,
511037,
511039,
511041,
511043,
511045,
511047,
511049,
511051,
511053,
511055,
511057,
511059,
511061,
511063,
511065,
511067,
511069,
511071,
511073,
511075,
511077,
511079,
511081,
511083,
511085,
511087,
511089,
511091,
511093,
511095,
511097,
511099,
511101,
511103,
511105,
511107,
511109,
511111,
511113,
511115,
511117,
511119,
511121,
511123,
511125,
511127,
511129,
511131,
511133,
511135,
511137,
511139,
511141,
511143,
511145,
511147,
511149,
511151,
511153,
511155,
511157,
511159,
511161,
511163,
511165,
511167,
511169,
511171,
511173,
511175,
511177,
511179,
511181,
511183,
511185,
511187,
511189,
511191,
511193,
511195,
511197,
511199,
511201,
511203,
511205,
511207,
511209,
511211,
511213,
511215,
511217,
511219,
511221,
511223,
511225,
511227,
511229,
511231,
511233,
511235,
511237,
511239,
511241,
511243,
511245,
511247,
511249,
511251,
511253,
511255,
511257,
511259,
511261,
511263,
511265,
511267,
511269,
511271,
511273,
511275,
511277,
511279,
511281,
511283,
511285,
511287,
511289,
511291,
511293,
511295,
511297,
511299,
511301,
511303,
511305,
511307,
511309,
511311,
511313,
511315,
511317,
511319,
511321,
511323,
511325,
511327,
511329,
511331,
511333,
511335,
511337,
511339,
511341,
511343,
511345,
511347,
511349,
511350,
511352,
511354,
511356,
511358,
511360,
511362,
511364,
511366,
511368,
511370,
511372,
511374,
511376,
511378,
511380,
511382,
511384,
511386,
511388,
511390,
511392,
511394,
511396,
511398,
511400,
511402,
511404,
511406,
511408,
511410,
511412,
511414,
511416,
511418,
511420,
511422,
511424,
511426,
511428,
511430,
511432,
511434,
511436,
511438,
511440,
511442,
511444,
511446,
511448,
511450,
511452,
511454,
511456,
511458,
511460,
511462,
511464,
511466,
511468,
511470,
511472,
511474,
511476,
511478,
511480,
511482,
511484,
511486,
511488,
511490,
511492,
511493,
511495,
511497,
511499,
511501,
511503,
511505,
511507,
511509,
511511,
511513,
511515,
511517,
511519,
511521,
511523,
511525,
511527,
511529,
511531,
511533,
511535,
511537,
511539,
511541,
511543,
511545,
511547,
511549,
511551,
511553,
511555,
511557,
511559,
511561,
511563,
511565,
511567,
511569,
511571,
511573,
511575,
511577,
511579,
511581,
511583,
511585,
511587,
511589,
511591,
511593,
511595,
511597,
511598,
511600,
511602,
511604,
511606,
511608,
511610,
511612,
511614,
511616,
511618,
511620,
511622,
511624,
511626,
511628,
511630,
511632,
511634,
511636,
511638,
511640,
511642,
511644,
511646,
511648,
511650,
511652,
511654,
511656,
511658,
511660,
511662,
511664,
511666,
511668,
511670,
511672,
511674,
511676,
511678,
511680,
511682,
511684,
511685,
511687,
511689,
511691,
511693,
511695,
511697,
511699,
511701,
511703,
511705,
511707,
511709,
511711,
511713,
511715,
511717,
511719,
511721,
511723,
511725,
511727,
511729,
511731,
511733,
511735,
511737,
511739,
511741,
511743,
511745,
511747,
511749,
511751,
511753,
511755,
511757,
511759,
511761,
511762,
511764,
511766,
511768,
511770,
511772,
511774,
511776,
511778,
511780,
511782,
511784,
511786,
511788,
511790,
511792,
511794,
511796,
511798,
511800,
511802,
511804,
511806,
511808,
511810,
511812,
511814,
511816,
511818,
511820,
511822,
511824,
511826,
511828,
511830,
511831,
511833,
511835,
511837,
511839,
511841,
511843,
511845,
511847,
511849,
511851,
511853,
511855,
511857,
511859,
511861,
511863,
511865,
511867,
511869,
511871,
511873,
511875,
511877,
511879,
511881,
511883,
511885,
511887,
511889,
511891,
511893,
511894,
511896,
511898,
511900,
511902,
511904,
511906,
511908,
511910,
511912,
511914,
511916,
511918,
511920,
511922,
511924,
511926,
511928,
511930,
511932,
511934,
511936,
511938,
511940,
511942,
511944,
511946,
511948,
511950,
511952,
511953,
511955,
511957,
511959,
511961,
511963,
511965,
511967,
511969,
511971,
511973,
511975,
511977,
511979,
511981,
511983,
511985,
511987,
511989,
511991,
511993,
511995,
511997,
511999,
512001,
512003,
512005,
512007,
512008,
512010,
512012,
512014,
512016,
512018,
512020,
512022,
512024,
512026,
512028,
512030,
512032,
512034,
512036,
512038,
512040,
512042,
512044,
512046,
512048,
512050,
512052,
512054,
512056,
512058,
512059,
512061,
512063,
512065,
512067,
512069,
512071,
512073,
512075,
512077,
512079,
512081,
512083,
512085,
512087,
512089,
512091,
512093,
512095,
512097,
512099,
512101,
512103,
512105,
512107,
512108,
512110,
512112,
512114,
512116,
512118,
512120,
512122,
512124,
512126,
512128,
512130,
512132,
512134,
512136,
512138,
512140,
512142,
512144,
512146,
512148,
512150,
512152,
512154,
512155,
512157,
512159,
512161,
512163,
512165,
512167,
512169,
512171,
512173,
512175,
512177,
512179,
512181,
512183,
512185,
512187,
512189,
512191,
512193,
512195,
512197,
512199,
512200,
512202,
512204,
512206,
512208,
512210,
512212,
512214,
512216,
512218,
512220,
512222,
512224,
512226,
512228,
512230,
512232,
512234,
512236,
512238,
512240,
512242,
512243,
512245,
512247,
512249,
512251,
512253,
512255,
512257,
512259,
512261,
512263,
512265,
512267,
512269,
512271,
512273,
512275,
512277,
512279,
512281,
512283,
512285,
512286,
512288,
512290,
512292,
512294,
512296,
512298,
512300,
512302,
512304,
512306,
512308,
512310,
512312,
512314,
512316,
512318,
512320,
512322,
512324,
512325,
512327,
512329,
512331,
512333,
512335,
512337,
512339,
512341,
512343,
512345,
512347,
512349,
512351,
512353,
512355,
512357,
512359,
512361,
512363,
512364,
512366,
512368,
512370,
512372,
512374,
512376,
512378,
512380,
512382,
512384,
512386,
512388,
512390,
512392,
512394,
512396,
512398,
512400,
512402,
512403,
512405,
512407,
512409,
512411,
512413,
512415,
512417,
512419,
512421,
512423,
512425,
512427,
512429,
512431,
512433,
512435,
512437,
512439,
512440,
512442,
512444,
512446,
512448,
512450,
512452,
512454,
512456,
512458,
512460,
512462,
512464,
512466,
512468,
512470,
512472,
512474,
512475,
512477,
512479,
512481,
512483,
512485,
512487,
512489,
512491,
512493,
512495,
512497,
512499,
512501,
512503,
512505,
512507,
512509,
512510,
512512,
512514,
512516,
512518,
512520,
512522,
512524,
512526,
512528,
512530,
512532,
512534,
512536,
512538,
512540,
512542,
512544,
512545,
512547,
512549,
512551,
512553,
512555,
512557,
512559,
512561,
512563,
512565,
512567,
512569,
512571,
512573,
512575,
512577,
512578,
512580,
512582,
512584,
512586,
512588,
512590,
512592,
512594,
512596,
512598,
512600,
512602,
512604,
512606,
512608,
512610,
512611,
512613,
512615,
512617,
512619,
512621,
512623,
512625,
512627,
512629,
512631,
512633,
512635,
512637,
512639,
512641,
512642,
512644,
512646,
512648,
512650,
512652,
512654,
512656,
512658,
512660,
512662,
512664,
512666,
512668,
512670,
512672,
512673,
512675,
512677,
512679,
512681,
512683,
512685,
512687,
512689,
512691,
512693,
512695,
512697,
512699,
512701,
512703,
512704,
512706,
512708,
512710,
512712,
512714,
512716,
512718,
512720,
512722,
512724,
512726,
512728,
512730,
512732,
512733,
512735,
512737,
512739,
512741,
512743,
512745,
512747,
512749,
512751,
512753,
512755,
512757,
512759,
512761,
512763,
512764,
512766,
512768,
512770,
512772,
512774,
512776,
512778,
512780,
512782,
512784,
512786,
512788,
512790,
512792,
512793,
512795,
512797,
512799,
512801,
512803,
512805,
512807,
512809,
512811,
512813,
512815,
512817,
512819,
512821,
512822,
512824,
512826,
512828,
512830,
512832,
512834,
512836,
512838,
512840,
512842,
512844,
512846,
512848,
512849,
512851,
512853,
512855,
512857,
512859,
512861,
512863,
512865,
512867,
512869,
512871,
512873,
512875,
512876,
512878,
512880,
512882,
512884,
512886,
512888,
512890,
512892,
512894,
512896,
512898,
512900,
512902,
512903,
512905,
512907,
512909,
512911,
512913,
512915,
512917,
512919,
512921,
512923,
512925,
512927,
512929,
512930,
512932,
512934,
512936,
512938,
512940,
512942,
512944,
512946,
512948,
512950,
512952,
512954,
512956,
512957,
512959,
512961,
512963,
512965,
512967,
512969,
512971,
512973,
512975,
512977,
512979,
512981,
512983,
512984,
512986,
512988,
512990,
512992,
512994,
512996,
512998,
513000,
513002,
513004,
513006,
513008,
513009,
513011,
513013,
513015,
513017,
513019,
513021,
513023,
513025,
513027,
513029,
513031,
513033,
513034,
513036,
513038,
513040,
513042,
513044,
513046,
513048,
513050,
513052,
513054,
513056,
513058,
513059,
513061,
513063,
513065,
513067,
513069,
513071,
513073,
513075,
513077,
513079,
513081,
513083,
513084,
513086,
513088,
513090,
513092,
513094,
513096,
513098,
513100,
513102,
513104,
513106,
513108,
513109,
513111,
513113,
513115,
513117,
513119,
513121,
513123,
513125,
513127,
513129,
513131,
513132,
513134,
513136,
513138,
513140,
513142,
513144,
513146,
513148,
513150,
513152,
513154,
513156,
513157,
513159,
513161,
513163,
513165,
513167,
513169,
513171,
513173,
513175,
513177,
513179,
513180,
513182,
513184,
513186,
513188,
513190,
513192,
513194,
513196,
513198,
513200,
513202,
513203,
513205,
513207,
513209,
513211,
513213,
513215,
513217,
513219,
513221,
513223,
513225,
513226,
513228,
513230,
513232,
513234,
513236,
513238,
513240,
513242,
513244,
513246,
513248,
513249,
513251,
513253,
513255,
513257,
513259,
513261,
513263,
513265,
513267,
513269,
513271,
513272,
513274,
513276,
513278,
513280,
513282,
513284,
513286,
513288,
513290,
513292,
513293,
513295,
513297,
513299,
513301,
513303,
513305,
513307,
513309,
513311,
513313,
513315,
513316,
513318,
513320,
513322,
513324,
513326,
513328,
513330,
513332,
513334,
513336,
513337,
513339,
513341,
513343,
513345,
513347,
513349,
513351,
513353,
513355,
513357,
513359,
513360,
513362,
513364,
513366,
513368,
513370,
513372,
513374,
513376,
513378,
513380,
513381,
513383,
513385,
513387,
513389,
513391,
513393,
513395,
513397,
513399,
513401,
513402,
513404,
513406,
513408,
513410,
513412,
513414,
513416,
513418,
513420,
513422,
513423,
513425,
513427,
513429,
513431,
513433,
513435,
513437,
513439,
513441,
513443,
513444,
513446,
513448,
513450,
513452,
513454,
513456,
513458,
513460,
513462,
513464,
513465,
513467,
513469,
513471,
513473,
513475,
513477,
513479,
513481,
513483,
513484,
513486,
513488,
513490,
513492,
513494,
513496,
513498,
513500,
513502,
513504,
513505,
513507,
513509,
513511,
513513,
513515,
513517,
513519,
513521,
513523,
513525,
513526,
513528,
513530,
513532,
513534,
513536,
513538,
513540,
513542,
513544,
513545,
513547,
513549,
513551,
513553,
513555,
513557,
513559,
513561,
513563,
513564,
513566,
513568,
513570,
513572,
513574,
513576,
513578,
513580,
513582,
513584,
513585,
513587,
513589,
513591,
513593,
513595,
513597,
513599,
513601,
513603,
513604,
513606,
513608,
513610,
513612,
513614,
513616,
513618,
513620,
513622,
513623,
513625,
513627,
513629,
513631,
513633,
513635,
513637,
513639,
513641,
513642,
513644,
513646,
513648,
513650,
513652,
513654,
513656,
513658,
513660,
513661,
513663,
513665,
513667,
513669,
513671,
513673,
513675,
513677,
513679,
513680,
513682,
513684,
513686,
513688,
513690,
513692,
513694,
513696,
513698,
513699,
513701,
513703,
513705,
513707,
513709,
513711,
513713,
513715,
513717,
513718,
513720,
513722,
513724,
513726,
513728,
513730,
513732,
513734,
513736,
513737,
513739,
513741,
513743,
513745,
513747,
513749,
513751,
513753,
513754,
513756,
513758,
513760,
513762,
513764,
513766,
513768,
513770,
513772,
513773,
513775,
513777,
513779,
513781,
513783,
513785,
513787,
513789,
513790,
513792,
513794,
513796,
513798,
513800,
513802,
513804,
513806,
513808,
513809,
513811,
513813,
513815,
513817,
513819,
513821,
513823,
513825,
513826,
513828,
513830,
513832,
513834,
513836,
513838,
513840,
513842,
513844,
513845,
513847,
513849,
513851,
513853,
513855,
513857,
513859,
513861,
513862,
513864,
513866,
513868,
513870,
513872,
513874,
513876,
513878,
513879,
513881,
513883,
513885,
513887,
513889,
513891,
513893,
513895,
513896,
513898,
513900,
513902,
513904,
513906,
513908,
513910,
513912,
513914,
513915,
513917,
513919,
513921,
513923,
513925,
513927,
513929,
513931,
513932,
513934,
513936,
513938,
513940,
513942,
513944,
513946,
513948,
513949,
513951,
513953,
513955,
513957,
513959,
513961,
513963,
513965,
513966,
513968,
513970,
513972,
513974,
513976,
513978,
513980,
513982,
513983,
513985,
513987,
513989,
513991,
513993,
513995,
513997,
513999,
514000,
514002,
514004,
514006,
514008,
514010,
514012,
514014,
514015,
514017,
514019,
514021,
514023,
514025,
514027,
514029,
514031,
514032,
514034,
514036,
514038,
514040,
514042,
514044,
514046,
514048,
514049,
514051,
514053,
514055,
514057,
514059,
514061,
514063,
514065,
514066,
514068,
514070,
514072,
514074,
514076,
514078,
514080,
514081,
514083,
514085,
514087,
514089,
514091,
514093,
514095,
514097,
514098,
514100,
514102,
514104,
514106,
514108,
514110,
514112,
514113,
514115,
514117,
514119,
514121,
514123,
514125,
514127,
514129,
514130,
514132,
514134,
514136,
514138,
514140,
514142,
514144,
514145,
514147,
514149,
514151,
514153,
514155,
514157,
514159,
514161,
514162,
514164,
514166,
514168,
514170,
514172,
514174,
514176,
514177,
514179,
514181,
514183,
514185,
514187,
514189,
514191,
514193,
514194,
514196,
514198,
514200,
514202,
514204,
514206,
514208,
514209,
514211,
514213,
514215,
514217,
514219,
514221,
514223,
514224,
514226,
514228,
514230,
514232,
514234,
514236,
514238,
514239,
514241,
514243,
514245,
514247,
514249,
514251,
514253,
514255,
514256,
514258,
514260,
514262,
514264,
514266,
514268,
514270,
514271,
514273,
514275,
514277,
514279,
514281,
514283,
514285,
514286,
514288,
514290,
514292,
514294,
514296,
514298,
514300,
514301,
514303,
514305,
514307,
514309,
514311,
514313,
514315,
514316,
514318,
514320,
514322,
514324,
514326,
514328,
514330,
514331,
514333,
514335,
514337,
514339,
514341,
514343,
514345,
514346,
514348,
514350,
514352,
514354,
514356,
514358,
514360,
514361,
514363,
514365,
514367,
514369,
514371,
514373,
514375,
514376,
514378,
514380,
514382,
514384,
514386,
514388,
514390,
514391,
514393,
514395,
514397,
514399,
514401,
514403,
514404,
514406,
514408,
514410,
514412,
514414,
514416,
514418,
514419,
514421,
514423,
514425,
514427,
514429,
514431,
514433,
514434,
514436,
514438,
514440,
514442,
514444,
514446,
514448,
514449,
514451,
514453,
514455,
514457,
514459,
514461,
514462,
514464,
514466,
514468,
514470,
514472,
514474,
514476,
514477,
514479,
514481,
514483,
514485,
514487,
514489,
514491,
514492,
514494,
514496,
514498,
514500,
514502,
514504,
514505,
514507,
514509,
514511,
514513,
514515,
514517,
514519,
514520,
514522,
514524,
514526,
514528,
514530,
514532,
514533,
514535,
514537,
514539,
514541,
514543,
514545,
514547,
514548,
514550,
514552,
514554,
514556,
514558,
514560,
514561,
514563,
514565,
514567,
514569,
514571,
514573,
514575,
514576,
514578,
514580,
514582,
514584,
514586,
514588,
514589,
514591,
514593,
514595,
514597,
514599,
514601,
514603,
514604,
514606,
514608,
514610,
514612,
514614,
514616,
514617,
514619,
514621,
514623,
514625,
514627,
514629,
514630,
514632,
514634,
514636,
514638,
514640,
514642,
514644,
514645,
514647,
514649,
514651,
514653,
514655,
514657,
514658,
514660,
514662,
514664,
514666,
514668,
514670,
514671,
514673,
514675,
514677,
514679,
514681,
514683,
514685,
514686,
514688,
514690,
514692,
514694,
514696,
514698,
514699,
514701,
514703,
514705,
514707,
514709,
514711,
514712,
514714,
514716,
514718,
514720,
514722,
514724,
514725,
514727,
514729,
514731,
514733,
514735,
514737,
514738,
514740,
514742,
514744,
514746,
514748,
514750,
514751,
514753,
514755,
514757,
514759,
514761,
514763,
514764,
514766,
514768,
514770,
514772,
514774,
514776,
514777,
514779,
514781,
514783,
514785,
514787,
514789,
514791,
514792,
514794,
514796,
514798,
514800,
514802,
514804,
514805,
514807,
514809,
514811,
514813,
514815,
514817,
514818,
514820,
514822,
514824,
514826,
514828,
514829,
514831,
514833,
514835,
514837,
514839,
514841,
514842,
514844,
514846,
514848,
514850,
514852,
514854,
514855,
514857,
514859,
514861,
514863,
514865,
514867,
514868,
514870,
514872,
514874,
514876,
514878,
514880,
514881,
514883,
514885,
514887,
514889,
514891,
514893,
514894,
514896,
514898,
514900,
514902,
514904,
514906,
514907,
514909,
514911,
514913,
514915,
514917,
514919,
514920,
514922,
514924,
514926,
514928,
514930,
514931,
514933,
514935,
514937,
514939,
514941,
514943,
514944,
514946,
514948,
514950,
514952,
514954,
514956,
514957,
514959,
514961,
514963,
514965,
514967,
514969,
514970,
514972,
514974,
514976,
514978,
514980,
514981,
514983,
514985,
514987,
514989,
514991,
514993,
514994,
514996,
514998,
515000,
515002,
515004,
515006,
515007,
515009,
515011,
515013,
515015,
515017,
515018,
515020,
515022,
515024,
515026,
515028,
515030,
515031,
515033,
515035,
515037,
515039,
515041,
515043,
515044,
515046,
515048,
515050,
515052,
515054,
515055,
515057,
515059,
515061,
515063,
515065,
515067,
515068,
515070,
515072,
515074,
515076,
515078,
515079,
515081,
515083,
515085,
515087,
515089,
515091,
515092,
515094,
515096,
515098,
515100,
515102,
515103,
515105,
515107,
515109,
515111,
515113,
515115,
515116,
515118,
515120,
515122,
515124,
515126,
515127,
515129,
515131,
515133,
515135,
515137,
515139,
515140,
515142,
515144,
515146,
515148,
515150,
515151,
515153,
515155,
515157,
515159,
515161,
515163,
515164,
515166,
515168,
515170,
515172,
515174,
515175,
515177,
515179,
515181,
515183,
515185,
515186,
515188,
515190,
515192,
515194,
515196,
515198,
515199,
515201,
515203,
515205,
515207,
515209,
515210,
515212,
515214,
515216,
515218,
515220,
515222,
515223,
515225,
515227,
515229,
515231,
515233,
515234,
515236,
515238,
515240,
515242,
515244,
515245,
515247,
515249,
515251,
515253,
515255,
515256,
515258,
515260,
515262,
515264,
515266,
515268,
515269,
515271,
515273,
515275,
515277,
515279,
515280,
515282,
515284,
515286,
515288,
515290,
515291,
515293,
515295,
515297,
515299,
515301,
515302,
515304,
515306,
515308,
515310,
515312,
515314,
515315,
515317,
515319,
515321,
515323,
515325,
515326,
515328,
515330,
515332,
515334,
515336,
515337,
515339,
515341,
515343,
515345,
515347,
515348,
515350,
515352,
515354,
515356,
515358,
515359,
515361,
515363,
515365,
515367,
515369,
515370,
515372,
515374,
515376,
515378,
515380,
515381,
515383,
515385,
515387,
515389,
515391,
515393,
515394,
515396,
515398,
515400,
515402,
515404,
515405,
515407,
515409,
515411,
515413,
515415,
515416,
515418,
515420,
515422,
515424,
515426,
515427,
515429,
515431,
515433,
515435,
515437,
515438,
515440,
515442,
515444,
515446,
515448,
515449,
515451,
515453,
515455,
515457,
515459,
515460,
515462,
515464,
515466,
515468,
515470,
515471,
515473,
515475,
515477,
515479,
515481,
515482,
515484,
515486,
515488,
515490,
515492,
515493,
515495,
515497,
515499,
515501,
515503,
515504,
515506,
515508,
515510,
515512,
515514,
515515,
515517,
515519,
515521,
515523,
515525,
515526,
515528,
515530,
515532,
515534,
515535,
515537,
515539,
515541,
515543,
515545,
515546,
515548,
515550,
515552,
515554,
515556,
515557,
515559,
515561,
515563,
515565,
515567,
515568,
515570,
515572,
515574,
515576,
515578,
515579,
515581,
515583,
515585,
515587,
515589,
515590,
515592,
515594,
515596,
515598,
515600,
515601,
515603,
515605,
515607,
515609,
515610,
515612,
515614,
515616,
515618,
515620,
515621,
515623,
515625,
515627,
515629,
515631,
515632,
515634,
515636,
515638,
515640,
515642,
515643,
515645,
515647,
515649,
515651,
515652,
515654,
515656,
515658,
515660,
515662,
515663,
515665,
515667,
515669,
515671,
515673,
515674,
515676,
515678,
515680,
515682,
515684,
515685,
515687,
515689,
515691,
515693,
515694,
515696,
515698,
515700,
515702,
515704,
515705,
515707,
515709,
515711,
515713,
515715,
515716,
515718,
515720,
515722,
515724,
515725,
515727,
515729,
515731,
515733,
515735,
515736,
515738,
515740,
515742,
515744,
515746,
515747,
515749,
515751,
515753,
515755,
515756,
515758,
515760,
515762,
515764,
515766,
515767,
515769,
515771,
515773,
515775,
515777,
515778,
515780,
515782,
515784,
515786,
515787,
515789,
515791,
515793,
515795,
515797,
515798,
515800,
515802,
515804,
515806,
515807,
515809,
515811,
515813,
515815,
515817,
515818,
515820,
515822,
515824,
515826,
515828,
515829,
515831,
515833,
515835,
515837,
515838,
515840,
515842,
515844,
515846,
515848,
515849,
515851,
515853,
515855,
515857,
515858,
515860,
515862,
515864,
515866,
515868,
515869,
515871,
515873,
515875,
515877,
515878,
515880,
515882,
515884,
515886,
515888,
515889,
515891,
515893,
515895,
515897,
515898,
515900,
515902,
515904,
515906,
515908,
515909,
515911,
515913,
515915,
515917,
515918,
515920,
515922,
515924,
515926,
515928,
515929,
515931,
515933,
515935,
515937,
515938,
515940,
515942,
515944,
515946,
515947,
515949,
515951,
515953,
515955,
515957,
515958,
515960,
515962,
515964,
515966,
515967,
515969,
515971,
515973,
515975,
515977,
515978,
515980,
515982,
515984,
515986,
515987,
515989,
515991,
515993,
515995,
515996,
515998,
516000,
516002,
516004,
516006,
516007,
516009,
516011,
516013,
516015,
516016,
516018,
516020,
516022,
516024,
516025,
516027,
516029,
516031,
516033,
516035,
516036,
516038,
516040,
516042,
516044,
516045,
516047,
516049,
516051,
516053,
516054,
516056,
516058,
516060,
516062,
516064,
516065,
516067,
516069,
516071,
516073,
516074,
516076,
516078,
516080,
516082,
516083,
516085,
516087,
516089,
516091,
516093,
516094,
516096,
516098,
516100,
516102,
516103,
516105,
516107,
516109,
516111,
516112,
516114,
516116,
516118,
516120,
516121,
516123,
516125,
516127,
516129,
516131,
516132,
516134,
516136,
516138,
516140,
516141,
516143,
516145,
516147,
516149,
516150,
516152,
516154,
516156,
516158,
516159,
516161,
516163,
516165,
516167,
516168,
516170,
516172,
516174,
516176,
516178,
516179,
516181,
516183,
516185,
516187,
516188,
516190,
516192,
516194,
516196,
516197,
516199,
516201,
516203,
516205,
516206,
516208,
516210,
516212,
516214,
516215,
516217,
516219,
516221,
516223,
516225,
516226,
516228,
516230,
516232,
516234,
516235,
516237,
516239,
516241,
516243,
516244,
516246,
516248,
516250,
516252,
516253,
516255,
516257,
516259,
516261,
516262,
516264,
516266,
516268,
516270,
516271,
516273,
516275,
516277,
516279,
516280,
516282,
516284,
516286,
516288,
516289,
516291,
516293,
516295,
516297,
516298,
516300,
516302,
516304,
516306,
516307,
516309,
516311,
516313,
516315,
516317,
516318,
516320,
516322,
516324,
516326,
516327,
516329,
516331,
516333,
516335,
516336,
516338,
516340,
516342,
516344,
516345,
516347,
516349,
516351,
516353,
516354,
516356,
516358,
516360,
516362,
516363,
516365,
516367,
516369,
516371,
516372,
516374,
516376,
516378,
516380,
516381,
516383,
516385,
516387,
516389,
516390,
516392,
516394,
516396,
516398,
516399,
516401,
516403,
516405,
516407,
516408,
516410,
516412,
516414,
516416,
516417,
516419,
516421,
516423,
516425,
516426,
516428,
516430,
516432,
516434,
516435,
516437,
516439,
516441,
516443,
516444,
516446,
516448,
516450,
516451,
516453,
516455,
516457,
516459,
516460,
516462,
516464,
516466,
516468,
516469,
516471,
516473,
516475,
516477,
516478,
516480,
516482,
516484,
516486,
516487,
516489,
516491,
516493,
516495,
516496,
516498,
516500,
516502,
516504,
516505,
516507,
516509,
516511,
516513,
516514,
516516,
516518,
516520,
516522,
516523,
516525,
516527,
516529,
516531,
516532,
516534,
516536,
516538,
516539,
516541,
516543,
516545,
516547,
516548,
516550,
516552,
516554,
516556,
516557,
516559,
516561,
516563,
516565,
516566,
516568,
516570,
516572,
516574,
516575,
516577,
516579,
516581,
516583,
516584,
516586,
516588,
516590,
516592,
516593,
516595,
516597,
516599,
516600,
516602,
516604,
516606,
516608,
516609,
516611,
516613,
516615,
516617,
516618,
516620,
516622,
516624,
516626,
516627,
516629,
516631,
516633,
516635,
516636,
516638,
516640,
516642,
516643,
516645,
516647,
516649,
516651,
516652,
516654,
516656,
516658,
516660,
516661,
516663,
516665,
516667,
516669,
516670,
516672,
516674,
516676,
516677,
516679,
516681,
516683,
516685,
516686,
516688,
516690,
516692,
516694,
516695,
516697,
516699,
516701,
516703,
516704,
516706,
516708,
516710,
516711,
516713,
516715,
516717,
516719,
516720,
516722,
516724,
516726,
516728,
516729,
516731,
516733,
516735,
516736,
516738,
516740,
516742,
516744,
516745,
516747,
516749,
516751,
516753,
516754,
516756,
516758,
516760,
516762,
516763,
516765,
516767,
516769,
516770,
516772,
516774,
516776,
516778,
516779,
516781,
516783,
516785,
516787,
516788,
516790,
516792,
516794,
516795,
516797,
516799,
516801,
516803,
516804,
516806,
516808,
516810,
516812,
516813,
516815,
516817,
516819,
516820,
516822,
516824,
516826,
516828,
516829,
516831,
516833,
516835,
516836,
516838,
516840,
516842,
516844,
516845,
516847,
516849,
516851,
516853,
516854,
516856,
516858,
516860,
516861,
516863,
516865,
516867,
516869,
516870,
516872,
516874,
516876,
516878,
516879,
516881,
516883,
516885,
516886,
516888,
516890,
516892,
516894,
516895,
516897,
516899,
516901,
516902,
516904,
516906,
516908,
516910,
516911,
516913,
516915,
516917,
516918,
516920,
516922,
516924,
516926,
516927,
516929,
516931,
516933,
516935,
516936,
516938,
516940,
516942,
516943,
516945,
516947,
516949,
516951,
516952,
516954,
516956,
516958,
516959,
516961,
516963,
516965,
516967,
516968,
516970,
516972,
516974,
516975,
516977,
516979,
516981,
516983,
516984,
516986,
516988,
516990,
516991,
516993,
516995,
516997,
516999,
517000,
517002,
517004,
517006,
517007,
517009,
517011,
517013,
517015,
517016,
517018,
517020,
517022,
517023,
517025,
517027,
517029,
517031,
517032,
517034,
517036,
517038,
517039,
517041,
517043,
517045,
517047,
517048,
517050,
517052,
517054,
517055,
517057,
517059,
517061,
517063,
517064,
517066,
517068,
517070,
517071,
517073,
517075,
517077,
517079,
517080,
517082,
517084,
517086,
517087,
517089,
517091,
517093,
517094,
517096,
517098,
517100,
517102,
517103,
517105,
517107,
517109,
517110,
517112,
517114,
517116,
517118,
517119,
517121,
517123,
517125,
517126,
517128,
517130,
517132,
517134,
517135,
517137,
517139,
517141,
517142,
517144,
517146,
517148,
517149,
517151,
517153,
517155,
517157,
517158,
517160,
517162,
517164,
517165,
517167,
517169,
517171,
517173,
517174,
517176,
517178,
517180,
517181,
517183,
517185,
517187,
517188,
517190,
517192,
517194,
517196,
517197,
517199,
517201,
517203,
517204,
517206,
517208,
517210,
517211,
517213,
517215,
517217,
517219,
517220,
517222,
517224,
517226,
517227,
517229,
517231,
517233,
517234,
517236,
517238,
517240,
517242,
517243,
517245,
517247,
517249,
517250,
517252,
517254,
517256,
517257,
517259,
517261,
517263,
517265,
517266,
517268,
517270,
517272,
517273,
517275,
517277,
517279,
517280,
517282,
517284,
517286,
517288,
517289,
517291,
517293,
517295,
517296,
517298,
517300,
517302,
517303,
517305,
517307,
517309,
517311,
517312,
517314,
517316,
517318,
517319,
517321,
517323,
517325,
517326,
517328,
517330,
517332,
517334,
517335,
517337,
517339,
517341,
517342,
517344,
517346,
517348,
517349,
517351,
517353,
517355,
517356,
517358,
517360,
517362,
517364,
517365,
517367,
517369,
517371,
517372,
517374,
517376,
517378,
517379,
517381,
517383,
517385,
517386,
517388,
517390,
517392,
517394,
517395,
517397,
517399,
517401,
517402,
517404,
517406,
517408,
517409,
517411,
517413,
517415,
517416,
517418,
517420,
517422,
517424,
517425,
517427,
517429,
517431,
517432,
517434,
517436,
517438,
517439,
517441,
517443,
517445,
517446,
517448,
517450,
517452,
517453,
517455,
517457,
517459,
517461,
517462,
517464,
517466,
517468,
517469,
517471,
517473,
517475,
517476,
517478,
517480,
517482,
517483,
517485,
517487,
517489,
517490,
517492,
517494,
517496,
517498,
517499,
517501,
517503,
517505,
517506,
517508,
517510,
517512,
517513,
517515,
517517,
517519,
517520,
517522,
517524,
517526,
517527,
517529,
517531,
517533,
517534,
517536,
517538,
517540,
517542,
517543,
517545,
517547,
517549,
517550,
517552,
517554,
517556,
517557,
517559,
517561,
517563,
517564,
517566,
517568,
517570,
517571,
517573,
517575,
517577,
517578,
517580,
517582,
517584,
517585,
517587,
517589,
517591,
517592,
517594,
517596,
517598,
517600,
517601,
517603,
517605,
517607,
517608,
517610,
517612,
517614,
517615,
517617,
517619,
517621,
517622,
517624,
517626,
517628,
517629,
517631,
517633,
517635,
517636,
517638,
517640,
517642,
517643,
517645,
517647,
517649,
517650,
517652,
517654,
517656,
517657,
517659,
517661,
517663,
517664,
517666,
517668,
517670,
517672,
517673,
517675,
517677,
517679,
517680,
517682,
517684,
517686,
517687,
517689,
517691,
517693,
517694,
517696,
517698,
517700,
517701,
517703,
517705,
517707,
517708,
517710,
517712,
517714,
517715,
517717,
517719,
517721,
517722,
517724,
517726,
517728,
517729,
517731,
517733,
517735,
517736,
517738,
517740,
517742,
517743,
517745,
517747,
517749,
517750,
517752,
517754,
517756,
517757,
517759,
517761,
517763,
517764,
517766,
517768,
517770,
517771,
517773,
517775,
517777,
517778,
517780,
517782,
517784,
517785,
517787,
517789,
517791,
517792,
517794,
517796,
517798,
517799,
517801,
517803,
517805,
517806,
517808,
517810,
517812,
517813,
517815,
517817,
517819,
517820,
517822,
517824,
517826,
517827,
517829,
517831,
517833,
517834,
517836,
517838,
517840,
517841,
517843,
517845,
517847,
517848,
517850,
517852,
517854,
517855,
517857,
517859,
517861,
517862,
517864,
517866,
517868,
517869,
517871,
517873,
517875,
517876,
517878,
517880,
517882,
517883,
517885,
517887,
517889,
517890,
517892,
517894,
517896,
517897,
517899,
517901,
517903,
517904,
517906,
517908,
517910,
517911,
517913,
517915,
517917,
517918,
517920,
517922,
517924,
517925,
517927,
517929,
517931,
517932,
517934,
517936,
517937,
517939,
517941,
517943,
517944,
517946,
517948,
517950,
517951,
517953,
517955,
517957,
517958,
517960,
517962,
517964,
517965,
517967,
517969,
517971,
517972,
517974,
517976,
517978,
517979,
517981,
517983,
517985,
517986,
517988,
517990,
517992,
517993,
517995,
517997,
517999,
518000,
518002,
518004,
518006,
518007,
518009,
518011,
518012,
518014,
518016,
518018,
518019,
518021,
518023,
518025,
518026,
518028,
518030,
518032,
518033,
518035,
518037,
518039,
518040,
518042,
518044,
518046,
518047,
518049,
518051,
518053,
518054,
518056,
518058,
518060,
518061,
518063,
518065,
518066,
518068,
518070,
518072,
518073,
518075,
518077,
518079,
518080,
518082,
518084,
518086,
518087,
518089,
518091,
518093,
518094,
518096,
518098,
518100,
518101,
518103,
518105,
518107,
518108,
518110,
518112,
518113,
518115,
518117,
518119,
518120,
518122,
518124,
518126,
518127,
518129,
518131,
518133,
518134,
518136,
518138,
518140,
518141,
518143,
518145,
518147,
518148,
518150,
518152,
518153,
518155,
518157,
518159,
518160,
518162,
518164,
518166,
518167,
518169,
518171,
518173,
518174,
518176,
518178,
518180,
518181,
518183,
518185,
518186,
518188,
518190,
518192,
518193,
518195,
518197,
518199,
518200,
518202,
518204,
518206,
518207,
518209,
518211,
518213,
518214,
518216,
518218,
518219,
518221,
518223,
518225,
518226,
518228,
518230,
518232,
518233,
518235,
518237,
518239,
518240,
518242,
518244,
518245,
518247,
518249,
518251,
518252,
518254,
518256,
518258,
518259,
518261,
518263,
518265,
518266,
518268,
518270,
518271,
518273,
518275,
518277,
518278,
518280,
518282,
518284,
518285,
518287,
518289,
518291,
518292,
518294,
518296,
518297,
518299,
518301,
518303,
518304,
518306,
518308,
518310,
518311,
518313,
518315,
518317,
518318,
518320,
518322,
518323,
518325,
518327,
518329,
518330,
518332,
518334,
518336,
518337,
518339,
518341,
518343,
518344,
518346,
518348,
518349,
518351,
518353,
518355,
518356,
518358,
518360,
518362,
518363,
518365,
518367,
518368,
518370,
518372,
518374,
518375,
518377,
518379,
518381,
518382,
518384,
518386,
518388,
518389,
518391,
518393,
518394,
518396,
518398,
518400,
518401,
518403,
518405,
518407,
518408,
518410,
518412,
518413,
518415,
518417,
518419,
518420,
518422,
518424,
518426,
518427,
518429,
518431,
518432,
518434,
518436,
518438,
518439,
518441,
518443,
518445,
518446,
518448,
518450,
518451,
518453,
518455,
518457,
518458,
518460,
518462,
518464,
518465,
518467,
518469,
518470,
518472,
518474,
518476,
518477,
518479,
518481,
518483,
518484,
518486,
518488,
518489,
518491,
518493,
518495,
518496,
518498,
518500,
518502,
518503,
518505,
518507,
518508,
518510,
518512,
518514,
518515,
518517,
518519,
518521,
518522,
518524,
518526,
518527,
518529,
518531,
518533,
518534,
518536,
518538,
518540,
518541,
518543,
518545,
518546,
518548,
518550,
518552,
518553,
518555,
518557,
518558,
518560,
518562,
518564,
518565,
518567,
518569,
518571,
518572,
518574,
518576,
518577,
518579,
518581,
518583,
518584,
518586,
518588,
518590,
518591,
518593,
518595,
518596,
518598,
518600,
518602,
518603,
518605,
518607,
518608,
518610,
518612,
518614,
518615,
518617,
518619,
518621,
518622,
518624,
518626,
518627,
518629,
518631,
518633,
518634,
518636,
518638,
518639,
518641,
518643,
518645,
518646,
518648,
518650,
518651,
518653,
518655,
518657,
518658,
518660,
518662,
518664,
518665,
518667,
518669,
518670,
518672,
518674,
518676,
518677,
518679,
518681,
518682,
518684,
518686,
518688,
518689,
518691,
518693,
518694,
518696,
518698,
518700,
518701,
518703,
518705,
518707,
518708,
518710,
518712,
518713,
518715,
518717,
518719,
518720,
518722,
518724,
518725,
518727,
518729,
518731,
518732,
518734,
518736,
518737,
518739,
518741,
518743,
518744,
518746,
518748,
518749,
518751,
518753,
518755,
518756,
518758,
518760,
518761,
518763,
518765,
518767,
518768,
518770,
518772,
518774,
518775,
518777,
518779,
518780,
518782,
518784,
518786,
518787,
518789,
518791,
518792,
518794,
518796,
518798,
518799,
518801,
518803,
518804,
518806,
518808,
518810,
518811,
518813,
518815,
518816,
518818,
518820,
518822,
518823,
518825,
518827,
518828,
518830,
518832,
518834,
518835,
518837,
518839,
518840,
518842,
518844,
518846,
518847,
518849,
518851,
518852,
518854,
518856,
518858,
518859,
518861,
518863,
518864,
518866,
518868,
518870,
518871,
518873,
518875,
518876,
518878,
518880,
518882,
518883,
518885,
518887,
518888,
518890,
518892,
518894,
518895,
518897,
518899,
518900,
518902,
518904,
518906,
518907,
518909,
518911,
518912,
518914,
518916,
518918,
518919,
518921,
518923,
518924,
518926,
518928,
518929,
518931,
518933,
518935,
518936,
518938,
518940,
518941,
518943,
518945,
518947,
518948,
518950,
518952,
518953,
518955,
518957,
518959,
518960,
518962,
518964,
518965,
518967,
518969,
518971,
518972,
518974,
518976,
518977,
518979,
518981,
518983,
518984,
518986,
518988,
518989,
518991,
518993,
518994,
518996,
518998,
519000,
519001,
519003,
519005,
519006,
519008,
519010,
519012,
519013,
519015,
519017,
519018,
519020,
519022,
519024,
519025,
519027,
519029,
519030,
519032,
519034,
519035,
519037,
519039,
519041,
519042,
519044,
519046,
519047,
519049,
519051,
519053,
519054,
519056,
519058,
519059,
519061,
519063,
519064,
519066,
519068,
519070,
519071,
519073,
519075,
519076,
519078,
519080,
519082,
519083,
519085,
519087,
519088,
519090,
519092,
519094,
519095,
519097,
519099,
519100,
519102,
519104,
519105,
519107,
519109,
519111,
519112,
519114,
519116,
519117,
519119,
519121,
519122,
519124,
519126,
519128,
519129,
519131,
519133,
519134,
519136,
519138,
519140,
519141,
519143,
519145,
519146,
519148,
519150,
519151,
519153,
519155,
519157,
519158,
519160,
519162,
519163,
519165,
519167,
519169,
519170,
519172,
519174,
519175,
519177,
519179,
519180,
519182,
519184,
519186,
519187,
519189,
519191,
519192,
519194,
519196,
519197,
519199,
519201,
519203,
519204,
519206,
519208,
519209,
519211,
519213,
519214,
519216,
519218,
519220,
519221,
519223,
519225,
519226,
519228,
519230,
519231,
519233,
519235,
519237,
519238,
519240,
519242,
519243,
519245,
519247,
519248,
519250,
519252,
519254,
519255,
519257,
519259,
519260,
519262,
519264,
519265,
519267,
519269,
519271,
519272,
519274,
519276,
519277,
519279,
519281,
519282,
519284,
519286,
519288,
519289,
519291,
519293,
519294,
519296,
519298,
519299,
519301,
519303,
519305,
519306,
519308,
519310,
519311,
519313,
519315,
519316,
519318,
519320,
519322,
519323,
519325,
519327,
519328,
519330,
519332,
519333,
519335,
519337,
519339,
519340,
519342,
519344,
519345,
519347,
519349,
519350,
519352,
519354,
519356,
519357,
519359,
519361,
519362,
519364,
519366,
519367,
519369,
519371,
519372,
519374,
519376,
519378,
519379,
519381,
519383,
519384,
519386,
519388,
519389,
519391,
519393,
519395,
519396,
519398,
519400,
519401,
519403,
519405,
519406,
519408,
519410,
519411,
519413,
519415,
519417,
519418,
519420,
519422,
519423,
519425,
519427,
519428,
519430,
519432,
519434,
519435,
519437,
519439,
519440,
519442,
519444,
519445,
519447,
519449,
519450,
519452,
519454,
519456,
519457,
519459,
519461,
519462,
519464,
519466,
519467,
519469,
519471,
519472,
519474,
519476,
519478,
519479,
519481,
519483,
519484,
519486,
519488,
519489,
519491,
519493,
519494,
519496,
519498,
519500,
519501,
519503,
519505,
519506,
519508,
519510,
519511,
519513,
519515,
519516,
519518,
519520,
519522,
519523,
519525,
519527,
519528,
519530,
519532,
519533,
519535,
519537,
519538,
519540,
519542,
519544,
519545,
519547,
519549,
519550,
519552,
519554,
519555,
519557,
519559,
519560,
519562,
519564,
519565,
519567,
519569,
519571,
519572,
519574,
519576,
519577,
519579,
519581,
519582,
519584,
519586,
519587,
519589,
519591,
519593,
519594,
519596,
519598,
519599,
519601,
519603,
519604,
519606,
519608,
519609,
519611,
519613,
519614,
519616,
519618,
519620,
519621,
519623,
519625,
519626,
519628,
519630,
519631,
519633,
519635,
519636,
519638,
519640,
519641,
519643,
519645,
519647,
519648,
519650,
519652,
519653,
519655,
519657,
519658,
519660,
519662,
519663,
519665,
519667,
519668,
519670,
519672,
519674,
519675,
519677,
519679,
519680,
519682,
519684,
519685,
519687,
519689,
519690,
519692,
519694,
519695,
519697,
519699,
519700,
519702,
519704,
519706,
519707,
519709,
519711,
519712,
519714,
519716,
519717,
519719,
519721,
519722,
519724,
519726,
519727,
519729,
519731,
519733,
519734,
519736,
519738,
519739,
519741,
519743,
519744,
519746,
519748,
519749,
519751,
519753,
519754,
519756,
519758,
519759,
519761,
519763,
519765,
519766,
519768,
519770,
519771,
519773,
519775,
519776,
519778,
519780,
519781,
519783,
519785,
519786,
519788,
519790,
519791,
519793,
519795,
519796,
519798,
519800,
519802,
519803,
519805,
519807,
519808,
519810,
519812,
519813,
519815,
519817,
519818,
519820,
519822,
519823,
519825,
519827,
519828,
519830,
519832,
519833,
519835,
519837,
519839,
519840,
519842,
519844,
519845,
519847,
519849,
519850,
519852,
519854,
519855,
519857,
519859,
519860,
519862,
519864,
519865,
519867,
519869,
519870,
519872,
519874,
519875,
519877,
519879,
519881,
519882,
519884,
519886,
519887,
519889,
519891,
519892,
519894,
519896,
519897,
519899,
519901,
519902,
519904,
519906,
519907,
519909,
519911,
519912,
519914,
519916,
519917,
519919,
519921,
519922,
519924,
519926,
519928,
519929,
519931,
519933,
519934,
519936,
519938,
519939,
519941,
519943,
519944,
519946,
519948,
519949,
519951,
519953,
519954,
519956,
519958,
519959,
519961,
519963,
519964,
519966,
519968,
519969,
519971,
519973,
519974,
519976,
519978,
519979,
519981,
519983,
519985,
519986,
519988,
519990,
519991,
519993,
519995,
519996,
519998,
520000,
520001,
520003,
520005,
520006,
520008,
520010,
520011,
520013,
520015,
520016,
520018,
520020,
520021,
520023,
520025,
520026,
520028,
520030,
520031,
520033,
520035,
520036,
520038,
520040,
520041,
520043,
520045,
520046,
520048,
520050,
520052,
520053,
520055,
520057,
520058,
520060,
520062,
520063,
520065,
520067,
520068,
520070,
520072,
520073,
520075,
520077,
520078,
520080,
520082,
520083,
520085,
520087,
520088,
520090,
520092,
520093,
520095,
520097,
520098,
520100,
520102,
520103,
520105,
520107,
520108,
520110,
520112,
520113,
520115,
520117,
520118,
520120,
520122,
520123,
520125,
520127,
520128,
520130,
520132,
520133,
520135,
520137,
520138,
520140,
520142,
520143,
520145,
520147,
520148,
520150,
520152,
520154,
520155,
520157,
520159,
520160,
520162,
520164,
520165,
520167,
520169,
520170,
520172,
520174,
520175,
520177,
520179,
520180,
520182,
520184,
520185,
520187,
520189,
520190,
520192,
520194,
520195,
520197,
520199,
520200,
520202,
520204,
520205,
520207,
520209,
520210,
520212,
520214,
520215,
520217,
520219,
520220,
520222,
520224,
520225,
520227,
520229,
520230,
520232,
520234,
520235,
520237,
520239,
520240,
520242,
520244,
520245,
520247,
520249,
520250,
520252,
520254,
520255,
520257,
520259,
520260,
520262,
520264,
520265,
520267,
520269,
520270,
520272,
520274,
520275,
520277,
520279,
520280,
520282,
520284,
520285,
520287,
520289,
520290,
520292,
520294,
520295,
520297,
520299,
520300,
520302,
520304,
520305,
520307,
520309,
520310,
520312,
520314,
520315,
520317,
520319,
520320,
520322,
520324,
520325,
520327,
520329,
520330,
520332,
520334,
520335,
520337,
520339,
520340,
520342,
520344,
520345,
520347,
520349,
520350,
520352,
520354,
520355,
520357,
520359,
520360,
520362,
520364,
520365,
520367,
520369,
520370,
520372,
520373,
520375,
520377,
520378,
520380,
520382,
520383,
520385,
520387,
520388,
520390,
520392,
520393,
520395,
520397,
520398,
520400,
520402,
520403,
520405,
520407,
520408,
520410,
520412,
520413,
520415,
520417,
520418,
520420,
520422,
520423,
520425,
520427,
520428,
520430,
520432,
520433,
520435,
520437,
520438,
520440,
520442,
520443,
520445,
520447,
520448,
520450,
520452,
520453,
520455,
520457,
520458,
520460,
520462,
520463,
520465,
520467,
520468,
520470,
520472,
520473,
520475,
520476,
520478,
520480,
520481,
520483,
520485,
520486,
520488,
520490,
520491,
520493,
520495,
520496,
520498,
520500,
520501,
520503,
520505,
520506,
520508,
520510,
520511,
520513,
520515,
520516,
520518,
520520,
520521,
520523,
520525,
520526,
520528,
520530,
520531,
520533,
520535,
520536,
520538,
520540,
520541,
520543,
520544,
520546,
520548,
520549,
520551,
520553,
520554,
520556,
520558,
520559,
520561,
520563,
520564,
520566,
520568,
520569,
520571,
520573,
520574,
520576,
520578,
520579,
520581,
520583,
520584,
520586,
520588,
520589,
520591,
520593,
520594,
520596,
520598,
520599,
520601,
520602,
520604,
520606,
520607,
520609,
520611,
520612,
520614,
520616,
520617,
520619,
520621,
520622,
520624,
520626,
520627,
520629,
520631,
520632,
520634,
520636,
520637,
520639,
520641,
520642,
520644,
520645,
520647,
520649,
520650,
520652,
520654,
520655,
520657,
520659,
520660,
520662,
520664,
520665,
520667,
520669,
520670,
520672,
520674,
520675,
520677,
520679,
520680,
520682,
520684,
520685,
520687,
520688,
520690,
520692,
520693,
520695,
520697,
520698,
520700,
520702,
520703,
520705,
520707,
520708,
520710,
520712,
520713,
520715,
520717,
520718,
520720,
520722,
520723,
520725,
520726,
520728,
520730,
520731,
520733,
520735,
520736,
520738,
520740,
520741,
520743,
520745,
520746,
520748,
520750,
520751,
520753,
520755,
520756,
520758,
520759,
520761,
520763,
520764,
520766,
520768,
520769,
520771,
520773,
520774,
520776,
520778,
520779,
520781,
520783,
520784,
520786,
520788,
520789,
520791,
520792,
520794,
520796,
520797,
520799,
520801,
520802,
520804,
520806,
520807,
520809,
520811,
520812,
520814,
520816,
520817,
520819,
520821,
520822,
520824,
520825,
520827,
520829,
520830,
520832,
520834,
520835,
520837,
520839,
520840,
520842,
520844,
520845,
520847,
520849,
520850,
520852,
520853,
520855,
520857,
520858,
520860,
520862,
520863,
520865,
520867,
520868,
520870,
520872,
520873,
520875,
520877,
520878,
520880,
520881,
520883,
520885,
520886,
520888,
520890,
520891,
520893,
520895,
520896,
520898,
520900,
520901,
520903,
520905,
520906,
520908,
520909,
520911,
520913,
520914,
520916,
520918,
520919,
520921,
520923,
520924,
520926,
520928,
520929,
520931,
520932,
520934,
520936,
520937,
520939,
520941,
520942,
520944,
520946,
520947,
520949,
520951,
520952,
520954,
520956,
520957,
520959,
520960,
520962,
520964,
520965,
520967,
520969,
520970,
520972,
520974,
520975,
520977,
520979,
520980,
520982,
520983,
520985,
520987,
520988,
520990,
520992,
520993,
520995,
520997,
520998,
521000,
521002,
521003,
521005,
521006,
521008,
521010,
521011,
521013,
521015,
521016,
521018,
521020,
521021,
521023,
521025,
521026,
521028,
521029,
521031,
521033,
521034,
521036,
521038,
521039,
521041,
521043,
521044,
521046,
521047,
521049,
521051,
521052,
521054,
521056,
521057,
521059,
521061,
521062,
521064,
521066,
521067,
521069,
521070,
521072,
521074,
521075,
521077,
521079,
521080,
521082,
521084,
521085,
521087,
521088,
521090,
521092,
521093,
521095,
521097,
521098,
521100,
521102,
521103,
521105,
521107,
521108,
521110,
521111,
521113,
521115,
521116,
521118,
521120,
521121,
521123,
521125,
521126,
521128,
521129,
521131,
521133,
521134,
521136,
521138,
521139,
521141,
521143,
521144,
521146,
521147,
521149,
521151,
521152,
521154,
521156,
521157,
521159,
521161,
521162,
521164,
521165,
521167,
521169,
521170,
521172,
521174,
521175,
521177,
521179,
521180,
521182,
521183,
521185,
521187,
521188,
521190,
521192,
521193,
521195,
521197,
521198,
521200,
521201,
521203,
521205,
521206,
521208,
521210,
521211,
521213,
521215,
521216,
521218,
521219,
521221,
521223,
521224,
521226,
521228,
521229,
521231,
521233,
521234,
521236,
521237,
521239,
521241,
521242,
521244,
521246,
521247,
521249,
521251,
521252,
521254,
521255,
521257,
521259,
521260,
521262,
521264,
521265,
521267,
521269,
521270,
521272,
521273,
521275,
521277,
521278,
521280,
521282,
521283,
521285,
521286,
521288,
521290,
521291,
521293,
521295,
521296,
521298,
521300,
521301,
521303,
521304,
521306,
521308,
521309,
521311,
521313,
521314,
521316,
521318,
521319,
521321,
521322,
521324,
521326,
521327,
521329,
521331,
521332,
521334,
521335,
521337,
521339,
521340,
521342,
521344,
521345,
521347,
521349,
521350,
521352,
521353,
521355,
521357,
521358,
521360,
521362,
521363,
521365,
521366,
521368,
521370,
521371,
521373,
521375,
521376,
521378,
521379,
521381,
521383,
521384,
521386,
521388,
521389,
521391,
521393,
521394,
521396,
521397,
521399,
521401,
521402,
521404,
521406,
521407,
521409,
521410,
521412,
521414,
521415,
521417,
521419,
521420,
521422,
521423,
521425,
521427,
521428,
521430,
521432,
521433,
521435,
521437,
521438,
521440,
521441,
521443,
521445,
521446,
521448,
521450,
521451,
521453,
521454,
521456,
521458,
521459,
521461,
521463,
521464,
521466,
521467,
521469,
521471,
521472,
521474,
521476,
521477,
521479,
521480,
521482,
521484,
521485,
521487,
521489,
521490,
521492,
521493,
521495,
521497,
521498,
521500,
521502,
521503,
521505,
521506,
521508,
521510,
521511,
521513,
521515,
521516,
521518,
521519,
521521,
521523,
521524,
521526,
521528,
521529,
521531,
521532,
521534,
521536,
521537,
521539,
521541,
521542,
521544,
521545,
521547,
521549,
521550,
521552,
521554,
521555,
521557,
521558,
521560,
521562,
521563,
521565,
521567,
521568,
521570,
521571,
521573,
521575,
521576,
521578,
521580,
521581,
521583,
521584,
521586,
521588,
521589,
521591,
521593,
521594,
521596,
521597,
521599,
521601,
521602,
521604,
521606,
521607,
521609,
521610,
521612,
521614,
521615,
521617,
521619,
521620,
521622,
521623,
521625,
521627,
521628,
521630,
521632,
521633,
521635,
521636,
521638,
521640,
521641,
521643,
521645,
521646,
521648,
521649,
521651,
521653,
521654,
521656,
521657,
521659,
521661,
521662,
521664,
521666,
521667,
521669,
521670,
521672,
521674,
521675,
521677,
521679,
521680,
521682,
521683,
521685,
521687,
521688,
521690,
521692,
521693,
521695,
521696,
521698,
521700,
521701,
521703,
521704,
521706,
521708,
521709,
521711,
521713,
521714,
521716,
521717,
521719,
521721,
521722,
521724,
521726,
521727,
521729,
521730,
521732,
521734,
521735,
521737,
521738,
521740,
521742,
521743,
521745,
521747,
521748,
521750,
521751,
521753,
521755,
521756,
521758,
521760,
521761,
521763,
521764,
521766,
521768,
521769,
521771,
521772,
521774,
521776,
521777,
521779,
521781,
521782,
521784,
521785,
521787,
521789,
521790,
521792,
521793,
521795,
521797,
521798,
521800,
521802,
521803,
521805,
521806,
521808,
521810,
521811,
521813,
521814,
521816,
521818,
521819,
521821,
521823,
521824,
521826,
521827,
521829,
521831,
521832,
521834,
521835,
521837,
521839,
521840,
521842,
521844,
521845,
521847,
521848,
521850,
521852,
521853,
521855,
521856,
521858,
521860,
521861,
521863,
521865,
521866,
521868,
521869,
521871,
521873,
521874,
521876,
521877,
521879,
521881,
521882,
521884,
521886,
521887,
521889,
521890,
521892,
521894,
521895,
521897,
521898,
521900,
521902,
521903,
521905,
521907,
521908,
521910,
521911,
521913,
521915,
521916,
521918,
521919,
521921,
521923,
521924,
521926,
521927,
521929,
521931,
521932,
521934,
521936,
521937,
521939,
521940,
521942,
521944,
521945,
521947,
521948,
521950,
521952,
521953,
521955,
521957,
521958,
521960,
521961,
521963,
521965,
521966,
521968,
521969,
521971,
521973,
521974,
521976,
521977,
521979,
521981,
521982,
521984,
521986,
521987,
521989,
521990,
521992,
521994,
521995,
521997,
521998,
522000,
522002,
522003,
522005,
522006,
522008,
522010,
522011,
522013,
522014,
522016,
522018,
522019,
522021,
522023,
522024,
522026,
522027,
522029,
522031,
522032,
522034,
522035,
522037,
522039,
522040,
522042,
522043,
522045,
522047,
522048,
522050,
522052,
522053,
522055,
522056,
522058,
522060,
522061,
522063,
522064,
522066,
522068,
522069,
522071,
522072,
522074,
522076,
522077,
522079,
522080,
522082,
522084,
522085,
522087,
522088,
522090,
522092,
522093,
522095,
522097,
522098,
522100,
522101,
522103,
522105,
522106,
522108,
522109,
522111,
522113,
522114,
522116,
522117,
522119,
522121,
522122,
522124,
522125,
522127,
522129,
522130,
522132,
522133,
522135,
522137,
522138,
522140,
522142,
522143,
522145,
522146,
522148,
522150,
522151,
522153,
522154,
522156,
522158,
522159,
522161,
522162,
522164,
522166,
522167,
522169,
522170,
522172,
522174,
522175,
522177,
522178,
522180,
522182,
522183,
522185,
522186,
522188,
522190,
522191,
522193,
522194,
522196,
522198,
522199,
522201,
522202,
522204,
522206,
522207,
522209,
522211,
522212,
522214,
522215,
522217,
522219,
522220,
522222,
522223,
522225,
522227,
522228,
522230,
522231,
522233,
522235,
522236,
522238,
522239,
522241,
522243,
522244,
522246,
522247,
522249,
522251,
522252,
522254,
522255,
522257,
522259,
522260,
522262,
522263,
522265,
522267,
522268,
522270,
522271,
522273,
522275,
522276,
522278,
522279,
522281,
522283,
522284,
522286,
522287,
522289,
522291,
522292,
522294,
522295,
522297,
522299,
522300,
522302,
522303,
522305,
522307,
522308,
522310,
522311,
522313,
522315,
522316,
522318,
522319,
522321,
522323,
522324,
522326,
522327,
522329,
522331,
522332,
522334,
522335,
522337,
522339,
522340,
522342,
522343,
522345,
522347,
522348,
522350,
522351,
522353,
522355,
522356,
522358,
522359,
522361,
522363,
522364,
522366,
522367,
522369,
522371,
522372,
522374,
522375,
522377,
522379,
522380,
522382,
522383,
522385,
522387,
522388,
522390,
522391,
522393,
522395,
522396,
522398,
522399,
522401,
522403,
522404,
522406,
522407,
522409,
522411,
522412,
522414,
522415,
522417,
522419,
522420,
522422,
522423,
522425,
522427,
522428,
522430,
522431,
522433,
522434,
522436,
522438,
522439,
522441,
522442,
522444,
522446,
522447,
522449,
522450,
522452,
522454,
522455,
522457,
522458,
522460,
522462,
522463,
522465,
522466,
522468,
522470,
522471,
522473,
522474,
522476,
522478,
522479,
522481,
522482,
522484,
522486,
522487,
522489,
522490,
522492,
522494,
522495,
522497,
522498,
522500,
522502,
522503,
522505,
522506,
522508,
522509,
522511,
522513,
522514,
522516,
522517,
522519,
522521,
522522,
522524,
522525,
522527,
522529,
522530,
522532,
522533,
522535,
522537,
522538,
522540,
522541,
522543,
522545,
522546,
522548,
522549,
522551,
522552,
522554,
522556,
522557,
522559,
522560,
522562,
522564,
522565,
522567,
522568,
522570,
522572,
522573,
522575,
522576,
522578,
522580,
522581,
522583,
522584,
522586,
522588,
522589,
522591,
522592,
522594,
522595,
522597,
522599,
522600,
522602,
522603,
522605,
522607,
522608,
522610,
522611,
522613,
522615,
522616,
522618,
522619,
522621,
522623,
522624,
522626,
522627,
522629,
522630,
522632,
522634,
522635,
522637,
522638,
522640,
522642,
522643,
522645,
522646,
522648,
522650,
522651,
522653,
522654,
522656,
522658,
522659,
522661,
522662,
522664,
522665,
522667,
522669,
522670,
522672,
522673,
522675,
522677,
522678,
522680,
522681,
522683,
522685,
522686,
522688,
522689,
522691,
522692,
522694,
522696,
522697,
522699,
522700,
522702,
522704,
522705,
522707,
522708,
522710,
522712,
522713,
522715,
522716,
522718,
522719,
522721,
522723,
522724,
522726,
522727,
522729,
522731,
522732,
522734,
522735,
522737,
522738,
522740,
522742,
522743,
522745,
522746,
522748,
522750,
522751,
522753,
522754,
522756,
522758,
522759,
522761,
522762,
522764,
522765,
522767,
522769,
522770,
522772,
522773,
522775,
522777,
522778,
522780,
522781,
522783,
522784,
522786,
522788,
522789,
522791,
522792,
522794,
522796,
522797,
522799,
522800,
522802,
522804,
522805,
522807,
522808,
522810,
522811,
522813,
522815,
522816,
522818,
522819,
522821,
522823,
522824,
522826,
522827,
522829,
522830,
522832,
522834,
522835,
522837,
522838,
522840,
522842,
522843,
522845,
522846,
522848,
522849,
522851,
522853,
522854,
522856,
522857,
522859,
522861,
522862,
522864,
522865,
522867,
522868,
522870,
522872,
522873,
522875,
522876,
522878,
522880,
522881,
522883,
522884,
522886,
522887,
522889,
522891,
522892,
522894,
522895,
522897,
522899,
522900,
522902,
522903,
522905,
522906,
522908,
522910,
522911,
522913,
522914,
522916,
522917,
522919,
522921,
522922,
522924,
522925,
522927,
522929,
522930,
522932,
522933,
522935,
522936,
522938,
522940,
522941,
522943,
522944,
522946,
522948,
522949,
522951,
522952,
522954,
522955,
522957,
522959,
522960,
522962,
522963,
522965,
522966,
522968,
522970,
522971,
522973,
522974,
522976,
522978,
522979,
522981,
522982,
522984,
522985,
522987,
522989,
522990,
522992,
522993,
522995,
522996,
522998,
523000,
523001,
523003,
523004,
523006,
523008,
523009,
523011,
523012,
523014,
523015,
523017,
523019,
523020,
523022,
523023,
523025,
523026,
523028,
523030,
523031,
523033,
523034,
523036,
523038,
523039,
523041,
523042,
523044,
523045,
523047,
523049,
523050,
523052,
523053,
523055,
523056,
523058,
523060,
523061,
523063,
523064,
523066,
523067,
523069,
523071,
523072,
523074,
523075,
523077,
523079,
523080,
523082,
523083,
523085,
523086,
523088,
523090,
523091,
523093,
523094,
523096,
523097,
523099,
523101,
523102,
523104,
523105,
523107,
523108,
523110,
523112,
523113,
523115,
523116,
523118,
523119,
523121,
523123,
523124,
523126,
523127,
523129,
523130,
523132,
523134,
523135,
523137,
523138,
523140,
523142,
523143,
523145,
523146,
523148,
523149,
523151,
523153,
523154,
523156,
523157,
523159,
523160,
523162,
523164,
523165,
523167,
523168,
523170,
523171,
523173,
523175,
523176,
523178,
523179,
523181,
523182,
523184,
523186,
523187,
523189,
523190,
523192,
523193,
523195,
523197,
523198,
523200,
523201,
523203,
523204,
523206,
523208,
523209,
523211,
523212,
523214,
523215,
523217,
523219,
523220,
523222,
523223,
523225,
523226,
523228,
523230,
523231,
523233,
523234,
523236,
523237,
523239,
523241,
523242,
523244,
523245,
523247,
523248,
523250,
523252,
523253,
523255,
523256,
523258,
523259,
523261,
523263,
523264,
523266,
523267,
523269,
523270,
523272,
523274,
523275,
523277,
523278,
523280,
523281,
523283,
523285,
523286,
523288,
523289,
523291,
523292,
523294,
523296,
523297,
523299,
523300,
523302,
523303,
523305,
523307,
523308,
523310,
523311,
523313,
523314,
523316,
523318,
523319,
523321,
523322,
523324,
523325,
523327,
523328,
523330,
523332,
523333,
523335,
523336,
523338,
523339,
523341,
523343,
523344,
523346,
523347,
523349,
523350,
523352,
523354,
523355,
523357,
523358,
523360,
523361,
523363,
523365,
523366,
523368,
523369,
523371,
523372,
523374,
523376,
523377,
523379,
523380,
523382,
523383,
523385,
523386,
523388,
523390,
523391,
523393,
523394,
523396,
523397,
523399,
523401,
523402,
523404,
523405,
523407,
523408,
523410,
523412,
523413,
523415,
523416,
523418,
523419,
523421,
523423,
523424,
523426,
523427,
523429,
523430,
523432,
523433,
523435,
523437,
523438,
523440,
523441,
523443,
523444,
523446,
523448,
523449,
523451,
523452,
523454,
523455,
523457,
523459,
523460,
523462,
523463,
523465,
523466,
523468,
523469,
523471,
523473,
523474,
523476,
523477,
523479,
523480,
523482,
523484,
523485,
523487,
523488,
523490,
523491,
523493,
523494,
523496,
523498,
523499,
523501,
523502,
523504,
523505,
523507,
523509,
523510,
523512,
523513,
523515,
523516,
523518,
523519,
523521,
523523,
523524,
523526,
523527,
523529,
523530,
523532,
523534,
523535,
523537,
523538,
523540,
523541,
523543,
523544,
523546,
523548,
523549,
523551,
523552,
523554,
523555,
523557,
523559,
523560,
523562,
523563,
523565,
523566,
523568,
523569,
523571,
523573,
523574,
523576,
523577,
523579,
523580,
523582,
523583,
523585,
523587,
523588,
523590,
523591,
523593,
523594,
523596,
523598,
523599,
523601,
523602,
523604,
523605,
523607,
523608,
523610,
523612,
523613,
523615,
523616,
523618,
523619,
523621,
523622,
523624,
523626,
523627,
523629,
523630,
523632,
523633,
523635,
523637,
523638,
523640,
523641,
523643,
523644,
523646,
523647,
523649,
523651,
523652,
523654,
523655,
523657,
523658,
523660,
523661,
523663,
523665,
523666,
523668,
523669,
523671,
523672,
523674,
523675,
523677,
523679,
523680,
523682,
523683,
523685,
523686,
523688,
523689,
523691,
523693,
523694,
523696,
523697,
523699,
523700,
523702,
523704,
523705,
523707,
523708,
523710,
523711,
523713,
523714,
523716,
523718,
523719,
523721,
523722,
523724,
523725,
523727,
523728,
523730,
523732,
523733,
523735,
523736,
523738,
523739,
523741,
523742,
523744,
523746,
523747,
523749,
523750,
523752,
523753,
523755,
523756,
523758,
523760,
523761,
523763,
523764,
523766,
523767,
523769,
523770,
523772,
523774,
523775,
523777,
523778,
523780,
523781,
523783,
523784,
523786,
523787,
523789,
523791,
523792,
523794,
523795,
523797,
523798,
523800,
523801,
523803,
523805,
523806,
523808,
523809,
523811,
523812,
523814,
523815,
523817,
523819,
523820,
523822,
523823,
523825,
523826,
523828,
523829,
523831,
523833,
523834,
523836,
523837,
523839,
523840,
523842,
523843,
523845,
523847,
523848,
523850,
523851,
523853,
523854,
523856,
523857,
523859,
523860,
523862,
523864,
523865,
523867,
523868,
523870,
523871,
523873,
523874,
523876,
523878,
523879,
523881,
523882,
523884,
523885,
523887,
523888,
523890,
523892,
523893,
523895,
523896,
523898,
523899,
523901,
523902,
523904,
523905,
523907,
523909,
523910,
523912,
523913,
523915,
523916,
523918,
523919,
523921,
523923,
523924,
523926,
523927,
523929,
523930,
523932,
523933,
523935,
523936,
523938,
523940,
523941,
523943,
523944,
523946,
523947,
523949,
523950,
523952,
523954,
523955,
523957,
523958,
523960,
523961,
523963,
523964,
523966,
523967,
523969,
523971,
523972,
523974,
523975,
523977,
523978,
523980,
523981,
523983,
523984,
523986,
523988,
523989,
523991,
523992,
523994,
523995,
523997,
523998,
524000,
524002,
524003,
524005,
524006,
524008,
524009,
524011,
524012,
524014,
524015,
524017,
524019,
524020,
524022,
524023,
524025,
524026,
524028,
524029,
524031,
524032,
524034,
524036,
524037,
524039,
524040,
524042,
524043,
524045,
524046,
524048,
524049,
524051,
524053,
524054,
524056,
524057,
524059,
524060,
524062,
524063,
524065,
524066,
524068,
524070,
524071,
524073,
524074,
524076,
524077,
524079,
524080,
524082,
524083,
524085,
524087,
524088,
524090,
524091,
524093,
524094,
524096,
524097,
524099,
524100,
524102,
524104,
524105,
524107,
524108,
524110,
524111,
524113,
524114,
524116,
524117,
524119,
524121,
524122,
524124,
524125,
524127,
524128,
524130,
524131,
524133,
524134,
524136,
524138,
524139,
524141,
524142,
524144,
524145,
524147,
524148,
524150,
524151,
524153,
524154,
524156,
524158,
524159,
524161,
524162,
524164,
524165,
524167,
524168,
524170,
524171,
524173,
524175,
524176,
524178,
524179,
524181,
524182,
524184,
524185,
524187,
524188,
524190,
524192,
524193,
524195,
524196,
524198,
524199,
524201,
524202,
524204,
524205,
524207,
524208,
524210,
524212,
524213,
524215,
524216,
524218,
524219,
524221,
524222,
524224,
524225,
524227,
524228,
524230,
524232,
524233,
524235,
524236,
524238,
524239,
524241,
524242,
524244,
524245,
524247,
524249,
524250,
524252,
524253,
524255,
524256,
524258,
524259,
524261,
524262,
524264,
524265,
524267,
524269,
524270,
524272,
524273,
524275,
524276,
524278,
524279,
524281,
524282,
524284,
524285,
524287
};
Above: Teensy Software in the Arduino environment.
Software Design: Host C# GUI Code
To Top
The PC software receives the data, does some basic processing, and adds it to the images on the screen. The left image is the topography (Z signal) and the right image is the error signal. The error signal looks like the gradient of the Z signal and has more high-frequency content. The topography data is displayed line by line in the graph at the bottom of the window. The red curve corresponds to the most recent scan line, and the blue curve is the same line scanned in the opposite direction. Ideally, these curves should be identical, but the agreement will never be perfect due to piezo hysteresis and things like that.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Windows;
using System.Windows.Forms;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Drawing.Imaging;
using System.Windows.Forms.DataVisualization.Charting;
using System.IO.Ports;
using System.IO;
namespace STM
{
public partial class Form1 : Form
{
public class SPM
{
public static byte xyBits; // Horizontal scanner resolution
public static byte zBits;
public static byte eBits;
public static byte biasBits;
public static byte setpointBits;
public static decimal biasLSBsize; // mV
public static decimal xyLSBsize; // nm per LSB
public static decimal zLSBsize; // nm per LSB
public static decimal setpointLSBsize; // nm per LSB
public static decimal transimpedance; // mV/nA
public static Boolean enabled = true;
public static Boolean engaged = false;
}
public class ImgData
{
public static Bitmap imgA = null; // Left image - topography
public static Bitmap imgB = null; // Right image - error signal
public static int imgSize = 512; // Pixels
public static int zScale = 100000; // LSBs
public static int iScale = 1000; // LSBs
public static int[,] dataZTrace = new int[imgSize, imgSize]; // Raw data from the STM
public static int[,] dataZRetrace = new int[imgSize, imgSize];
public static int[,] dataETrace = new int[imgSize, imgSize];
public static int[,] dataERetrace = new int[imgSize, imgSize];
public static String saveDir; // Directory to save the images to
public static uint saveNumber = 1; // Frame number to save
}
public Form1()
{
InitializeComponent();
this.Load += new EventHandler(Form1_Load);
this.FormClosing += new FormClosingEventHandler(Form1_FormClosing);
}
private void Form1_Load(object sender, EventArgs e)
{
// Create images:
ImgData.imgA = new Bitmap(
(UInt16)numericUpDown_imgSize.Value,
(UInt16)numericUpDown_imgSize.Value,
System.Drawing.Imaging.PixelFormat.Format24bppRgb);
pictureBox1.Image = ImgData.imgA;
pictureBox1.Refresh();
ImgData.imgB = new Bitmap(
(UInt16)numericUpDown_imgSize.Value,
(UInt16)numericUpDown_imgSize.Value,
System.Drawing.Imaging.PixelFormat.Format24bppRgb);
pictureBox2.Image = ImgData.imgB;
pictureBox2.Refresh();
// Load user settings:
SPM.xyBits = Properties.Settings.Default.xyBits;
SPM.zBits = Properties.Settings.Default.zBits;
SPM.eBits = Properties.Settings.Default.eBits;
SPM.biasBits = Properties.Settings.Default.biasBits;
SPM.setpointBits = Properties.Settings.Default.setpointBits;
SPM.xyLSBsize = Properties.Settings.Default.xyLSBsize;
SPM.zLSBsize = Properties.Settings.Default.zLSBsize;
SPM.biasLSBsize = Properties.Settings.Default.biasLSBsize;
SPM.setpointLSBsize = Properties.Settings.Default.setpointLSBsize;
SPM.transimpedance = Properties.Settings.Default.transimpedance;
ImgData.saveDir = Properties.Settings.Default.saveDirectory;
numericUpDown_scanSize.Maximum = SPM.xyLSBsize * (1 << SPM.xyBits);
numericUpDown_scanSize.Minimum = SPM.xyLSBsize * 10;
// Prepare trace/retrace plot:
chart1.Series["Series1"].ChartType = SeriesChartType.FastLine;
chart1.Series["Series1"].Color = System.Drawing.Color.Red;
chart1.Series["Series2"].ChartType = SeriesChartType.FastLine;
chart1.Series["Series2"].Color = System.Drawing.Color.Blue;
chart1.ChartAreas[0].AxisX.Maximum = (UInt16)numericUpDown_imgSize.Value;
chart1.ChartAreas[0].AxisX.Minimum = 0;
chart1.ChartAreas[0].AxisY.Maximum = (UInt32)numericUpDown_scale.Value;
chart1.ChartAreas[0].AxisY.Minimum = -(UInt32)numericUpDown_scale.Value;
DoubleBuffered = true;
string[] serialPorts;
serialPorts = System.IO.Ports.SerialPort.GetPortNames();
comboBox_COMPort.Items.AddRange(serialPorts);
serialPort1.DataReceived += new SerialDataReceivedEventHandler(DataReceivedHandler);
}
void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
// Close serial port:
if (serialPort1.IsOpen)
{
serialPort1.Write("SD"); // Send a command to the SPM to disable serial communications
serialPort1.DataReceived -= DataReceivedHandler;
serialPort1.DiscardInBuffer();
serialPort1.DiscardOutBuffer();
serialPort1.Close();
}
// Save user settings:
Properties.Settings.Default.xyBits = SPM.xyBits;
Properties.Settings.Default.zBits = SPM.zBits;
Properties.Settings.Default.eBits = SPM.eBits;
Properties.Settings.Default.biasBits = SPM.biasBits;
Properties.Settings.Default.setpointBits = SPM.setpointBits;
Properties.Settings.Default.xyLSBsize = SPM.xyLSBsize;
Properties.Settings.Default.zLSBsize = SPM.zLSBsize;
Properties.Settings.Default.biasLSBsize = SPM.biasLSBsize;
Properties.Settings.Default.setpointLSBsize = SPM.setpointLSBsize;
Properties.Settings.Default.transimpedance = SPM.transimpedance;
Properties.Settings.Default.saveDirectory = ImgData.saveDir;
Properties.Settings.Default.Save();
Application.ExitThread();
Application.Exit();
}
/***********************************************************************************/
/*
Process a line of data sent from the SPM:
*/
/***********************************************************************************/
private void DataReceivedHandler(object sender, SerialDataReceivedEventArgs e)
{
int line; // Scan line number sent from the SPM
int dir = 0; // 0 = scanning down, 1 = scanning up
int imgBytes = 3; // Image bytes. There are 3 bytes per pixel in the display images (R, G, B).
int dataBytes = 4; // Number of bytes per data point sent from the SPM
int numPixels = ImgData.imgSize; // Make a copy of the image size in pixels in case it is modified
Rectangle dimension = new Rectangle(0, 0, numPixels, numPixels);
int[] lineValuesZ = new int[numPixels]; // Buffer for processing Z data
int[] lineValuesE = new int[numPixels]; // Buffer for processing error signal data
byte[] pixelValuesDispZ = new byte[numPixels * imgBytes]; //for 8-bit "RGB" display image
byte[] pixelValuesDispI = new byte[numPixels * imgBytes]; //for 8-bit "RGB" display image
int maxZ = (1 << (SPM.zBits - 1)); // Maximum Z counts
int maxE = (1 << (SPM.eBits - 1)); // Maximum error signal counts
int length = 16386; // Length of byte array sent from the SPM
int offset = 2; // Number of bytes at start of byte array that are not data points (there are 2 bytes for line number)
byte[] serialDataByteArray = new byte[length]; // Buffer to read the serial data into
for (int i = 0; i < length; i++)
{
serialDataByteArray[i] = (byte)255;
}
if (serialPort1.IsOpen)
{
try
{
// Check if we've received the header message denoting the start of a scanned line:
String serialData = serialPort1.ReadLine();
if (serialData.Equals("DATA\r"))
{
System.Threading.Thread.Sleep(10);
/*while(serialPort1.BytesToRead < length)
{
// Wait for all the data to be received...
}*/
serialPort1.Read(serialDataByteArray, 0, length); // Read data from serial port
// Extract the line number:
line = (int)(((int)serialDataByteArray[0] << 8) | (int)serialDataByteArray[1]);
if (line >= numPixels)
{
line = (int)(numPixels * 2 - 1 - line);
dir = 1;
}
for (int i = 0; i < numPixels; i++)
{
byte[] zt = new byte[dataBytes]; // Bytes for Z-trace data
byte[] zr = new byte[dataBytes]; // Bytes for Z-retrace data
byte[] et = new byte[dataBytes]; // Bytes for error-trace data
byte[] er = new byte[dataBytes]; // Bytes for error-retrace data
// Extract the individual bytes from the serial data:
for (int j = 0; j < dataBytes; j++)
{
zt[j] = ((byte)serialDataByteArray[dataBytes * i + j + offset]);
zr[j] = ((byte)serialDataByteArray[dataBytes * (i + numPixels) + j + offset]);
et[j] = ((byte)serialDataByteArray[dataBytes * (i + numPixels * 2) + j + offset]);
er[j] = ((byte)serialDataByteArray[dataBytes * (i + numPixels * 3) + j + offset]);
}
// Combine data bytes into 32-bit integers and add them to the main data arrays:
ImgData.dataZTrace[line, i] =
(int)((int)zt[0] << 24 | (int)zt[1] << 16 | (int)zt[2] << 8 | (int)zt[3]);
ImgData.dataZRetrace[line, numPixels - 1 - i] =
(int)((int)zr[0] << 24 | (int)zr[1] << 16 | (int)zr[2] << 8 | (int)zr[3]);
ImgData.dataETrace[line, i] =
(int)((int)et[0] << 24 | (int)et[1] << 16 | (int)et[2] << 8 | (int)et[3]);
ImgData.dataERetrace[line, numPixels - 1 - i] =
(int)((int)er[0] << 24 | (int)er[1] << 16 | (int)er[2] << 8 | (int)er[3]);
// Add the new data points to data processing buffers:
lineValuesZ[i] = ImgData.dataZTrace[line, i];
lineValuesE[i] = ImgData.dataETrace[line, i];
}
// Compute the average value of the new data:
int lineMeanZ = (int)lineValuesZ.Average();
int lineMeanE = (int)lineValuesE.Average();
// Modify the chart:
chart1.Invoke(new MethodInvoker(delegate
{
// Clear chart:
foreach (var series in chart1.Series)
{
chart1.Invoke(new MethodInvoker(delegate { series.Points.Clear(); }));
}
// Plot new data points:
for (int i = 0; i < ImgData.imgSize; i++)
{
chart1.Series["Series1"].Points.AddXY(
i, (ImgData.dataZTrace[line, i] - lineMeanZ) * SPM.zLSBsize);
chart1.Series["Series2"].Points.AddXY(
i, (ImgData.dataZRetrace[line, i] - lineMeanZ) * SPM.zLSBsize); //dataRetrace is mirrored
}
}));
// Modify the Z signal indicator bar:
progressBarZ.Invoke(new MethodInvoker(delegate
{
// Value of indicator bar is the average of the scanned line:
if (lineMeanZ + maxZ < progressBarZ.Maximum)
{
progressBarZ.Value = lineMeanZ + maxZ;
}
}));
// Process the new data for display:
for (int i = 0; i < numPixels; i++)
{
// Subtract mean:
lineValuesZ[i] = lineValuesZ[i] - lineMeanZ;
// Adjust contrast:
lineValuesZ[i] = lineValuesZ[i] * (maxZ / ImgData.zScale);
lineValuesE[i] = lineValuesE[i] * (maxE / ImgData.iScale);
// Saturate if too large:
lineValuesZ[i] = lineValuesZ[i] > maxZ - 1 ? maxZ - 1 : lineValuesZ[i];
lineValuesE[i] = lineValuesE[i] > maxE - 1 ? maxE - 1 : lineValuesE[i];
lineValuesZ[i] = lineValuesZ[i] < -maxZ ? -maxZ : lineValuesZ[i];
lineValuesE[i] = lineValuesE[i] < -maxE ? -maxE : lineValuesE[i];
// Extract the upper byte of the new data to be added to the 8-bit display image:
byte msbZ = (byte)(((lineValuesZ[i] + maxZ) >> (SPM.zBits - 8)) & 0xFFu);
byte msbI = (byte)(((lineValuesE[i] + maxE) >> (SPM.eBits - 8)) & 0xFFu);
// Add these bytes to arrays that will be added to the display images:
for (int l = 0; l < 3; l++)
{
pixelValuesDispZ[i * imgBytes + l] = msbZ;
pixelValuesDispI[i * imgBytes + l] = msbI;
}
}
// Add the scanned line Z data to the 1st display image:
BitmapData displayImageData1 =
ImgData.imgA.LockBits(dimension, ImageLockMode.ReadWrite, ImgData.imgA.PixelFormat);
IntPtr pixelStartAddressDisp = displayImageData1.Scan0;
System.Runtime.InteropServices.Marshal.Copy(
pixelValuesDispZ,
0,
pixelStartAddressDisp + line * numPixels * imgBytes,
numPixels * imgBytes);
ImgData.imgA.UnlockBits(displayImageData1);
// Add the scanned line error signal data to the 2nd display image:
BitmapData displayImageData2 =
ImgData.imgB.LockBits(dimension, ImageLockMode.ReadWrite, ImgData.imgB.PixelFormat);
pixelStartAddressDisp = displayImageData2.Scan0;
System.Runtime.InteropServices.Marshal.Copy(
pixelValuesDispI,
0,
pixelStartAddressDisp + line * numPixels * imgBytes,
numPixels * imgBytes);
ImgData.imgB.UnlockBits(displayImageData2);
// Update the pictureBoxes:
if (ImgData.imgA.Width == numPixels)
{
pictureBox1.Invoke(new MethodInvoker(delegate
{
pictureBox1.Image = ImgData.imgA;
pictureBox1.Refresh();
if (pictureBox1.Image != null) pictureBox1.InitialImage.Dispose();
}));
pictureBox2.Invoke(new MethodInvoker(delegate
{
pictureBox2.Image = ImgData.imgB;
pictureBox2.Refresh();
if (pictureBox2.Image != null) pictureBox2.InitialImage.Dispose();
}));
}
// If we've reached the top or bottom scan line, prepare and save a 16-bit image
if ((line == 0 && dir == 1) || (line == numPixels - 1 && dir == 0))
{
// Start a separate thread to prevent hiccups
new Thread(() =>
{
Thread.CurrentThread.IsBackground = true;
// Create 16-bit data arrays:
ushort[,] dataZTrace16 = new ushort[numPixels, numPixels];
ushort[,] dataETrace16 = new ushort[numPixels, numPixels];
// File name to save data:
String saveFileName = ImgData.saveDir + textBox_fileName.Text;
// Convert the acquired data to 16-bit and store it in the 16-bit data arrays:
for (int i = 0; i < numPixels; ++i)
{
for (int j = 0; j < numPixels; ++j)
{
dataZTrace16[i, j] =
(ushort)((ImgData.dataZTrace[i, j] >> (SPM.zBits - 16)) + (1 << 15));
dataETrace16[i, j] =
(ushort)((ImgData.dataETrace[i, j] >> (SPM.eBits - 16)) + (1 << 15));
}
}
// Add numbers to the end of the filenames for the images if overwriting of previous images
// is not wanted, and save the images:
ushort[][,] data16 = {dataZTrace16, dataETrace16};
if (!checkBox_Overwrite.Checked)
{
saveBitmap(data16, saveFileName + "_" + Convert.ToString(ImgData.saveNumber));
ImgData.saveNumber++;
}
// Otherwise, don't change the filename, and save the images:
else
{
saveBitmap(data16, saveFileName);
}
}).Start();
}
}
}
catch (Exception ex)
{
MessageBox.Show("Error: " + ex);
}
}
}
/***********************************************************************************/
/*
Save data as 16-bit TIFF stack:
*/
/***********************************************************************************/
private void saveBitmap(ushort[][,] data, string filename)
{
int imgSize = data[0].GetUpperBound(0) + 1; // Get image size from data[0] array size
// Metadata info:
decimal imgSize_nm = numericUpDown_scanSize.Value;
decimal lineRate = numericUpDown_lineRate.Value;
decimal bias = numericUpDown_bias.Value;
decimal setpoint = numericUpDown_setpoint.Value;
String comment = imgSize_nm + " nm, " + lineRate + " Hz, " + bias + " mV, " + setpoint + " nA, ";
String date = DateTime.Now.ToString("MM/dd/yyyy h:mm tt");
//Create bitmaps to save raw data in 16-bit grayscale format:
int numPages = data.Length; // Create a tiff page for each array passed in data
WriteableBitmap[] bitmap = new WriteableBitmap[numPages];
BitmapMetadata[] metadata = new BitmapMetadata[numPages];
BitmapFrame[] bitmapFrame = new BitmapFrame[numPages];
TiffBitmapEncoder encoder = new TiffBitmapEncoder(); // Encoder
encoder.Compression = TiffCompressOption.None; // No compression
// Loop over tiff frames:
for (int i = 0; i < numPages; i++)
{
bitmap[i] = new WriteableBitmap(imgSize, imgSize, 96, 96, PixelFormats.Gray16, null);
// Save scan settings and date taken in image metadata:
metadata[i] = new BitmapMetadata("tiff");
metadata[i].DateTaken = date;
metadata[i].Comment = comment;
// Convert data arrays to bitmaps:
ushort[] pixels = new ushort[imgSize * imgSize];
for (int j = 0; j < imgSize; ++j)
{
for (int k = 0; k < imgSize; ++k)
{
pixels[j * imgSize + k] = data[i][j, k];
}
}
// Add pixels to bitmap:
bitmap[i].WritePixels(new System.Windows.Int32Rect(0, 0, imgSize, imgSize), pixels, imgSize * 2, 0);
// Add frames and metadata:
bitmapFrame[i] = BitmapFrame.Create(bitmap[i]);
encoder.Frames.Add(BitmapFrame.Create(
bitmapFrame[i], bitmapFrame[i].Thumbnail, metadata[i], bitmapFrame[i].ColorContexts));
}
// Save the image:
using (var stream = System.IO.File.Create(filename + ".tif"))
encoder.Save(stream);
}
/***********************************************************************************/
/*
Form controls:
*/
/***********************************************************************************/
private void button_BrowseSaveDirectory_Click(object sender, EventArgs e)
{
FolderBrowserDialog folderBrowserDialog1 = new FolderBrowserDialog();
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{
if (folderBrowserDialog1.SelectedPath != "")
{
ImgData.saveDir = folderBrowserDialog1.SelectedPath + "\\";
}
}
}
private void button_COMPortRefresh_Click(object sender, EventArgs e)
{
string[] serialPorts;
serialPorts = System.IO.Ports.SerialPort.GetPortNames();
comboBox_COMPort.Items.Clear();
comboBox_COMPort.Items.AddRange(serialPorts);
}
private void comboBox_COMPort_SelectedIndexChanged(object sender, EventArgs e)
{
serialPort1.PortName = comboBox_COMPort.Text;
try
{
// Open serial port:
serialPort1.Open();
serialPort1.DiscardInBuffer();
serialPort1.DiscardOutBuffer();
// Enable serial comms and set scan parameters:
serialPort1.Write("SE");
Int16 bias = (Int16)(numericUpDown_bias.Value / SPM.biasLSBsize);
setBias(bias);
Int16 setpoint = (Int16)(numericUpDown_setpoint.Value * SPM.transimpedance / SPM.setpointLSBsize);
setSetpoint(setpoint);
UInt16 imgSize = (UInt16)numericUpDown_imgSize.Value;
setImgSize(imgSize);
int scanSize = (int)(numericUpDown_scanSize.Value / SPM.xyLSBsize);
setscanSize(scanSize);
decimal lineRate = (decimal)numericUpDown_lineRate.Value;
setlineRate(lineRate);
int Kp = (int)numericUpDownPGain.Value;
setKp(Kp);
int Ki = (int)numericUpDownIGain.Value;
setKi(Ki);
ImgData.zScale = (int)(numericUpDown_scale.Value / SPM.zLSBsize);
ImgData.iScale = (int)numericUpDown_eScale.Value;
chart1.ChartAreas[0].AxisY.Maximum = (double)numericUpDown_scale.Value;
chart1.ChartAreas[0].AxisY.Minimum = -(double)numericUpDown_scale.Value;
// Create new bitmaps:
ImgData.imgA = new Bitmap(
(UInt16)numericUpDown_imgSize.Value,
(UInt16)numericUpDown_imgSize.Value,
System.Drawing.Imaging.PixelFormat.Format24bppRgb);
pictureBox1.Image = ImgData.imgA;
pictureBox1.Refresh();
ImgData.imgB = new Bitmap(
(UInt16)numericUpDown_imgSize.Value,
(UInt16)numericUpDown_imgSize.Value,
System.Drawing.Imaging.PixelFormat.Format24bppRgb);
pictureBox2.Image = ImgData.imgB;
pictureBox2.Refresh();
}
catch
{
MessageBox.Show("There was an error. Please make sure that the correct port " +
"was selected, and the device plugged in.");
}
}
private void button1_Click(object sender, EventArgs e)
{
engage();
}
private void button_Retract_Click(object sender, EventArgs e)
{
retract();
}
private void numericUpDown_bias_ValueChanged(object sender, EventArgs e)
{
Int16 bias = (Int16)(numericUpDown_bias.Value / SPM.biasLSBsize);
setBias(bias);
}
private void numericUpDown_setpoint_ValueChanged(object sender, EventArgs e)
{
Int16 setpoint = (Int16)(numericUpDown_setpoint.Value * SPM.transimpedance / SPM.setpointLSBsize);
setSetpoint(setpoint);
}
private void numericUpDown_imgSize_ValueChanged(object sender, EventArgs e)
{
UInt16 imgSize = (UInt16)numericUpDown_imgSize.Value;
setImgSize(imgSize);
ImgData.imgA = new Bitmap(imgSize, imgSize, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
pictureBox1.Invoke(new MethodInvoker(delegate
{
pictureBox1.Image = ImgData.imgA;
pictureBox1.Refresh();
}));
ImgData.imgB = new Bitmap(imgSize, imgSize, System.Drawing.Imaging.PixelFormat.Format24bppRgb);
pictureBox2.Invoke(new MethodInvoker(delegate
{
pictureBox2.Image = ImgData.imgB;
pictureBox2.Refresh();
}));
chart1.Invoke(new MethodInvoker(delegate
{
chart1.ChartAreas[0].AxisX.Maximum = imgSize;
}));
ImgData.dataZTrace = new Int32[imgSize, imgSize];
ImgData.dataZRetrace = new Int32[imgSize, imgSize];
ImgData.dataETrace = new Int32[imgSize, imgSize];
ImgData.dataERetrace = new Int32[imgSize, imgSize];
ImgData.imgSize = imgSize;
}
private void numericUpDown_scanSize_ValueChanged(object sender, EventArgs e)
{
int scanSize = (int)(numericUpDown_scanSize.Value / SPM.xyLSBsize);
setscanSize(scanSize);
}
private void numericUpDown_lineRate_ValueChanged(object sender, EventArgs e)
{
decimal lineRate = numericUpDown_lineRate.Value;
setlineRate(lineRate);
}
private void numericUpDownPGain_ValueChanged(object sender, EventArgs e)
{
int Kp = (int)numericUpDownPGain.Value;
setKp(Kp);
}
private void numericUpDownIGain_ValueChanged(object sender, EventArgs e)
{
int Ki = (int)numericUpDownIGain.Value;
setKi(Ki);
}
private void numericUpDown_scale_ValueChanged(object sender, EventArgs e)
{
ImgData.zScale = (int)(numericUpDown_scale.Value / SPM.zLSBsize);
chart1.ChartAreas[0].AxisY.Maximum = (double)numericUpDown_scale.Value;
chart1.ChartAreas[0].AxisY.Minimum = -(double)numericUpDown_scale.Value;
}
private void numericUpDown_eScale_ValueChanged(object sender, EventArgs e)
{
ImgData.iScale = (int)numericUpDown_eScale.Value;
}
private void pictureBox1_Click(object sender, EventArgs e)
{
MouseEventArgs me = (MouseEventArgs)e;
System.Drawing.Point coordinates = me.Location;
if (me.Button == System.Windows.Forms.MouseButtons.Right)
{
int scanSize = (int)numericUpDown_scanSize.Value;
int x0 = (coordinates.X - pictureBox1.Width / 2) * scanSize;
int y0 = (coordinates.Y - pictureBox1.Height / 2) * scanSize;
setOffset(x0, y0);
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
ImgData.saveNumber = 0;
}
private void button1_Click_1(object sender, EventArgs e)
{
Form configForm = new Form2();
configForm.ShowDialog();
}
/***********************************************************************************/
/*
Serial commands:
*/
/***********************************************************************************/
public void setBias(Int16 bias)
{
string command = "SB " + bias;
if (serialPort1.IsOpen)
{
serialPort1.Write(command);
}
}
public void setSetpoint(Int16 setpoint)
{
string command = "SP " + setpoint;
if (serialPort1.IsOpen)
{
serialPort1.Write(command);
}
}
public void setImgSize(UInt16 imgSize)
{
string command = "IP " + imgSize;
if (serialPort1.IsOpen)
{
serialPort1.Write(command);
}
}
public void setscanSize(int scanSize)
{
string command = "SS " + scanSize;
if (serialPort1.IsOpen)
{
serialPort1.Write(command);
}
}
public void setOffset(int x0, int y0)
{
string command1 = "XO " + x0;
string command2 = "YO " + y0;
if (serialPort1.IsOpen)
{
serialPort1.Write(command1);
System.Threading.Thread.Sleep(10);
serialPort1.Write(command2);
}
}
public void setlineRate(decimal lineRate)
{
// Multiply lineRate by 100 for transmission:
string command = "LR " + (int)(lineRate * 100.0M);
if (serialPort1.IsOpen)
{
serialPort1.Write(command);
}
}
public void setKp(int Kp)
{
string command = "KP " + Kp;
if (serialPort1.IsOpen)
{
serialPort1.Write(command);
}
}
public void setKi(int Ki)
{
string command = "KI " + Ki;
if (serialPort1.IsOpen)
{
serialPort1.Write(command);
}
}
public void engage()
{
string command = "TE";
if (serialPort1.IsOpen)
{
serialPort1.Write(command);
}
}
public void retract()
{
string command = "TR";
if (serialPort1.IsOpen)
{
serialPort1.Write(command);
}
}
public void enableScanning()
{
string command = "EN";
if (serialPort1.IsOpen)
{
serialPort1.Write(command);
}
}
public void disableScanning()
{
string command = "DL";
if (serialPort1.IsOpen)
{
serialPort1.Write(command);
}
}
}
}
Build of the STM
To Top
Build log woot woot
Operation of the STM and Some Sample Scans
To Top
Does it work? We'll see...
Bill of Materials
To Top
Cost of all the stuff
Additional Links and Resources
To Top
Week 0 - Final Project Design (Camera Tilting Unit)
This week I cadded my final project in a bunch of computer design software packages! I learned how to use SolidWorks, Inkscape, Photoshop, SketchUp, and a bit of Rhino, among others. It was a productive week!
It took me a while to pick a final project and I went through a long list before I (semi) decided on one. The project I cadded for this week is a motorized barnyard camera tilt unit, also known as a ctu, or camera tilting unit. A ctu is a piece of machinery that goes between the camera and the tripod, and has a motorized angle bracket that can slowly (over the course of many hours) tilt the camera in a controlled manner. The tilt is usually such that it exactly follows the rotation of the stars in the sky. This is done so that very long exposures can be taken without getting any star trails (the blur from the moving stars). With very long exposures, and clever photo stacking techniques in software, extremely high definitino photographs can be taken. Other galaxies, star systems, and planets in our solar system can be imaged very well using this technique. It is even of enough power to record the light dimming from the direct transit of several exoplanets on nearby stars, with only a DSLR camera and a telephoto lens.
There have been many of these ctu's built, both for commercial sale and for amateur use. However, the commercial ctu's tend to be on the order of many hundreds of dollars, and the amateur-built ones tend to be of poor quality. The goal of this project is to make a very high quality ctu in a fast time period and from inexpensive materials (ie. stepper motors, bent lead scews, arduino, etc).
Above: An image without a camera tilt unit showing the resulting star trails (left) and an image showing what happens to those star trails when we rotate the camera at the same speed as the star's rotation (right).
This project seemed like it would be a good combo of all of the skills we will learn this semester - machining, cutting, cadding, electronics, programming, possibly composites, etc..
More CAD modals and pictures are in the process of being uploaded!
Week 1 - A parametric press fit construction kit and some other things
Getting comfortable with git and making my website
This week was a busy one! There were two big accomplishments. Number one was getting this website up and running (well, hopefully...). Number two was getting comfortable using the laser and vinyl cutter and making a press fit construction set, among other things. I'll talk about both projects on this page.
Above: An image showing the process of getting the git repository up and running (left). It took a few hours, but I learned a lot about how git works which is super useful. The other image shows some of the source code in the index file for my website, being edited in sublime (right).
The first step was getting git up and running. I followed the git tutorial on the class website, and it wasn't too bad. I ran into a few simple errors along the way (usually syntax errors), but I was able to work through them over the course of a few hours. I now feel pretty comfortable using the class git repository, pushing, pulling, commiting, and adding.
The next step in this process was getting my website up and running. Rather than editing the website from pure scratch html (which I've done a few times) and ending up with a boring, static website, I implemented some fun javascript and css files. At first, I browsed through a bunch of the old class websites source to see how they all worked and how their css and js files looked. I picked the ones that I liked best and looked at what addons they were using (bootstrap for backend, fluidbox, prism, etc. for simple formatting and lighting addons, animated headers, etc.). I took the ones I liked best and built my website framework from that. The websites of Albert Chen and Pierre Bertrand from the 2015 class site were particularly helpful in this, and I used some of their source code for formatting my website. After many, many hours of code errors, debugging, and testing, I was able to implement them all together in one framework. If I had to do it again, I wouldn't try to nessessarily take the best from each website, as the formatting and css files are all pretty different, and it was hard to get it to all work together. As of now, I'm having some issues on Chrome - however, it works fine on Microsoft Edge.
The next step was adding of the files and project images and documentation that I've been working on to the class website!
Using the Laser Cutter and Vinyl Cutter to make a press fit contruction kit and other things
The above image is one of the side-projects I worked on this week besides the main parametric press fit construction kit. I found the pattern for this online, and spent a few hours converting this jpg raster image into a vector image using photoshop, inkscape, and an online tracing tool. This cardboard cut was a practice run. Eventually, I'd like to cut it in some type of wood (maybe balsa...), and stain it.
The above image is another one of the side-projects I worked on this week. It is a planatery gear clock, where the clock motor and hands will drive the center gear which will turn the middle gears, while the outer gear is held in place. I cut it from cardboard originally to make sure the gears would fit and turn okay, and then cut it from 1/4" mdf to hang on my wall.
Finally we get to the actual press fit construction kit! It's made from a variety of fairly simple pieces that fit together with a simple press fit slot. There are circular connectors, square center connectors, straight slot pieces, and curved connecting pieces. There were a few other conencting pieces that I didn't quite have time to make. However, cool designs are still possible with only these 4 pieces.
My group found the the best width for the press fit slot was around 0.160". This was a slightly tight fit, but it worked well because of the springy nature of cardboard.
Week 2 - PCB Milling
What I did this week
This week I made an ISP programming device! We went through a long process of milling the PCB ourselves in a benchtop CNC mill, soldering on all of the small surface mount components, and then programming this programming board with a commercial tinyISP programmer. We will use these programming boards to communicate to the microcontrollers that we'll use in upcoming projects.
Above: an image showing the final fabISP device in functioning form, ready to program some micros!
Milling the PCB
The first step was milling out the PCB. This was done in a small Roland monoFab desktop CNC mill, using a 1/64" endmill to mill the board traces and a 1/32" endmill to cut the board from the FR1 copper-plated board stock. Ultra-strong Scotch double sided tape was used to secure the board onto the milling surface so that the endmill didn't disturb the board location or height in any way. The board design files were provided to us as part of the class, and can be seen pictured below.
The software program developed by Neil takes the fourier transform of the board image, does some other image analysis, and outputs the board cutting parameters. Other parameters that need to be entered into this program include the number of rotations to go around, the size of the drill bit, the depth of the cut, and machine home and the user home. The user places the drill bit directly onto the material surface, sets the home, checks that the file is correct, and outputs the cut file to the Roland CNC Mill pictured below.
Neil's software is nice because you can change all of the cut settings on the top level, but also go into a lower level and edit the program's source code itself. You can then save this program code offline and use it whenever you want.
The CNC Mill then goes through and cuts the traces and the board design into the FR1 stock. After roughly 7-8 minutes of cutting, the final part is ready! After pulling the part out of the machine and polishing it up a bit, we are ready to solder the components on.
Surface Mount Soldering
From looking at past board examples and the online board layout, the correct size and value components were chosen and soldered onto the board. The soldering was pretty easy and only took 30 minutes or so. For the USB port, a large blob of solder was placed across all of the pins, and solder braid was used to wick up all of the extra solder, leaving a nice solder joint.
Week 3 - Printing items that can't be machined
Overview of the week
This week we were taught 3D printing and scanning in the class. We were shown how to use the 3D printers (both 1 material and 2 material printers) and how to use the 3D scanner. Our assignment for the week was to try to print something that couldn't be machined (to show where additive manufacturing beats subtractive manufacturing) and to try to scan some object. I took advantage of the open assignment nature, and used this week to learn Rhino and Grasshopper parametric modeling. My goal was to create some unique 3D parametric shapes to print. After many, many, many hours of staring at Grasshopper and Rhino, I eventually figured a few things out.
Above: Several of the final objects that I designed after being rendered in Rhino. They were designed using Grasshopper parametric modeling with a WeaverBird plugin. The topology comes from using 3D Voronoi Cells as discussed below.
Initial Idea Formulation
Upon hearing the assignment for the week, I knew that I wanted to do something with parametric strucutres. I had heard that Rhino and Grasshopper were good at this, so I decided to give them a try (many, many hours later, I still understand very little about how they work... and how they don't work...). I did a bit of research on how they cool parametric structures are created in Grasshopper, and happened upon voronoi cells. I've heard of voronoi cells before, as they are used a bit in Materials Science, but I had no idea they were the basis of some really cool algorithms in Grasshopper.
A bit of background on voronoi cells and diagrams
Voronoi diagrams are widely used in computer science, architecture, materials science, chemistry, and a variety of other fields. According to Wikipedia, a Voronoi diagram is a "partitioning of a plane into regions based on distance to points in a specific subset of the plane. That set of points (called seeds, sites, or generators) is specified beforehand, and for each seed there is a corresponding region consisting of all points closer to that seed than to any other. These regions are called Voronoi cells. The Voronoi diagram of a set of points is dual to its Delaunay triangulation."
Above: The image on the left depicts a geometric Euclidian distance representation of a 2D voronoi tessellation. The image on the right depicts some grains in a metal sample under a microscope. The grain boundarys follow voroni behavior because as the material cools from a liquid state, the seed crystals grow evenly in 3 dimensions at a constant rate, forming 3D voronoi cells.
Every pixel in a colored region in the above image is closer to the central (seed) point in that colored region than any other seed point in a different colored region. Every point in the pink region is closer to the pink seed point that to any other seed point in the red or green or blue region for example.
The above 2D Voronoi diagram can also be done in 3D to create 3-Dimensional Voronoi cells. In general, a cross section of a 3D Voronoi tessellation is not in itself a 2D Voronoi tessellation.
Grasshopper Algorithm
Above: The images show the Grasshopper nodes and general workflow to make the voronoi cell paterns in the objects below.
I developed most of the initial Grasshopper workflow that generates and scales the voronoi cells myself, and combined a few different workflow algorithms for joining the meshes together that I found online. Surprisingly, it seems to work okay.
The general workflow is described below:
The object can then be rendered or exported as an STL file for printing.
Process of Developing a 3D Voronoi Tessellation
Above: General process workflow in Rhino going from an empty box brep to a 3D printable voronoi tessellated shape.
Various pieces that I made
Above: Several of the final objects that I designed in Rhino and Grasshopper. The next step is to attempt to 3D print some of them.
3D Printing the Above Objects
I had a lot of trouble trying to 3D print these objects in the single material 3D printers just based on the topology of the objects. There are a lot of overhangs on pretty much every object, so without any support material, the pieces just wouldn't print correctly. The initial layer or two might lay down well, but everything above that would turn into silly string on the end of the printer head and not stick correctly to the piece.
This could be fixed by using the dual material 3D printer that can also print out a disolvable support material. However, that process would be quite time intensive depending on the size of the object I was printing and the number of cells in said object. Not wanting to hog the printer by having a print going for more than 12 hours, I chose to wait until after Wednesday to print any of the more complex objects. Additionally, finding any time available on the dual material 3D printer anyways was quite hard, as it was busy every time I checked it. I will update on the printing in the next few days when I get a chance to print my objects.
3D Scanning an Object
I had a bit of trouble using the 3D scanner, but was eventually able to get the hang of it. It just requires a bit of gentle hadling and slow rotation to get a decent scan. I scanned a water bottle.
Week 4 - Desiging PCBs in Eagle
Overview of the week
This week we redesigned the Hello Echo Fab Board in a PCB design software of our choice. As I've already had some experience in Eagle designing circuits, I chose to redesign the board in Eagle. I went through the process of designing the schematic, adding components (including the new LED and button), and then designed the board in the board layout section of Eagle. I then exported the board layout as a monochrome image from Eagle, imported it into the Fab Module for PCB cutting, and milled the PCB and traces. Finally, I populated the board with the desired components.
Designing the PCB Schematic in Eagle
I'm already quite familiar with Eagle, as I've done a bit of PCB design for my internship this summer. Because of this experience, this week was a bit gentler than most in this class. I took a look at the given design files for the Hello Echo board on the cba website, and decided on where and how to add the extra items. I decided on adding an led (current limited via resisitor) to one of the IO pins on the micro - perhaps for some feedback on the RX and TX communication - and a push button onto the reset line tied to VCC so that if one wants to manually reset the micro, the push button allows that. The Eagle Schematic for this can be seen below. The parts were mostly taken from the FAB class Eagle library, although a few were taken from the Sparkfun or Adafruit Eagle libraries that were already in my library folder.
Designing the PCB Board Layout in Eagle
The next step in this process was to design the actual board layout in Eagle. By clicking the button in Eagle to go to the board layout, we are taken to a dark screen where we can drag around the actual component footprints onto our board. After spending some time making sure all the components are in the places I wanted them to be (in a way that minimized the complexity of routing the board and crossing airwires, which can be seen/updated via the Ratsnest button), I started manually routing the traces. Autorouting probably would have been fine here for such a simple board, but I generally like to manually route the boards anyway to make sure everything is the way I like. The design should be functional, but that doesn't mean it has to be ugly!
Before I actually started manually routing the traces, I selected one of the GND airwires, and checked the box to hide all GND airwires on the board. This cleans up the layout a bit and makes the next steps a bit easier. I then manually routed all of the airwires, playing around a bit and moving components around when need be. It's a lot like a puzzle!!! After getting everything the way I want it, I move on to doing a polygon copper GND pour over the whole board. After setting the clearance to something high enough that the drill bit can cut it out, I pour the GND copper and name it GND. This will connect all of the GND connections of the components on to the GND pour. Sometimes traces have to be moved over a bit for this GND pour to connect to different parts of the board.
Ideally, we would have at least a 2 layered board, and we could leave the top layer for communication/signals and the bottom layer for the ground plane, and have vias connecting the component grounds to the ground plane. Better even would be a 4 layer board, with digital on top, analog on bottom, and a VCC and GND plane in between. Alas, that is a bit harder to do when milling the boards ourselves, and definetely overkill for a board this simple.
Exporting the board image and milling the PCB
The next step in the process was to export the board image so that it could be milled. This was done by first turning off all layers on the board except either the top copper layer, or the board dimension layer. Then the board was exported as a monochrome image at 1000 dpi. It was then cropped in Microsoft Paint to just leave a bit of black (cut copper) on the outside edge. The dimension layer was also exported and cropped, and would serve as the tool path to cut out the PCB from the FR1 substrate. This dimension layer had to be color inverted as black means cut and white means leave behind. This was simply done in Microsoft Paint with the paint bucket tool. These images were then loaded into the FAB Milling Module and the PCB was milled.
Populating the board
After milling the board, I began to populate the board (solder all of the components on). This was a long process that I am still in the midst of. It is going well so far though. I just have to be really careful because all of the pads and traces are so close together.
Issues I had and other comments
I had a few large issues when I was doing the PCB milling. The biggest issue I had was that I wasn't making the clearance for the polygon copper ground pour high enough, and the FAB Module distance function wasn't able to correctly read the toolpath for such a narrow cut. When I was designing the board, I had suspected there might be an issue with the tool diameter being too large, because at first, my clearance was set to be even smaller than the tool diameter itself! However, while this is indeed an issue, another factor was that the inverting distance function (fourier transform) didn't give 'bright' enough values for the tool paths to be recognized. There must have been some threshold brightness in the transformed image that wasn't obtained because of the small toolpath. Both of these issues were simply fixed by increasing the clearance between the ground plane and the traces. This made the tracing a bit harder because the ground plane no longer reached everywhere on the board, so some components and traces had to be ripped up and moved. This transition can be seen in the images above.
I also had a similar issue where the traces weren't quite far enough away from each other, and there were some connections that shouldn't have been there. This can be seen in the below images where there is a trace connecting some of the microcontroller pads that shouldn't have been. I corrected this in the short term by using a knife to cut out the excess copper connections, and in the long term by increasing the clearance between traces and the pads in the Eagle board file.
PCBs that I have worked on previously
Below are some images of a PCB I worked on a bit this summer in Eagle. It is a fairly simple BMS (battery managment system) board for monitoring a series of lithium-ion cells. The board was produced in Eagle, and uploaded to OshPark to be printed. Some of the below images are from the print confirmation in OshPark. Oshpark is nice because they have a fairly low cost ($5/sq-in for three boards), quick turnaround time (10-12 days), and pretty high quality (made in the US). They are also super easy to work with Eagle, as you can directly upload your Eagle BRD file without having to mess around with Gerber files.
Week 5 - Making Something Big
Overview of the week
This week, the only assignment we were given was to 'make something big'. We were given a 4' x 8' sheet of OSB Plywood and were instructed on how to use a shopbot and other milling machines (computer-controlled machining). I initially started looking at past student's projects and online milled furniture for inspiration, and eventually decided on making a small bench to fit at the base of my bookshelf as well as a fairly simple chair. I was fairly time constrained this week in terms of other classes, so I was able to find some dxf files for a cnc millable press fit chair design online which greatly sped the pre-milling process up. Taking inspiration from similar minded benches online, I designed/drew the bench using Inkscape. I made a few mistakes in dimensioning out some of the parts in Inkscape, so if I were to go back and do it again, I'd probably use Solidworks to make sure that every part will correctly fit together before cutting them.
I was able to cut my bench out on the shopbot, sand all of the connections down, and press fit everything together fairly nicely. I had some trouble with the flexture joint I designed which I'll go into a bit further below. I didn't have enough shopbot time to mill out my chair, which was dissapointing, but at least I got the bench done. I'll save the chair for another time!
Above: On the left you can see the DXF file holding the drawing files for the bench and for the chair. On the right, you can see the bench fully cut out and assembled.
Designing the bench and chair in Inkscape
I drew the bench myself in Inkscape taking inspiration from several online bench designs, which turned out to be a relatively poor choice, as I messed on of the dimensions up somehow, which made one of the press fit connections not be able to fit correctly (off by over 1/2"). If I were to go back and do it again, I would have designed it all in Solidworks so that I could fit everything together and check all connections. Or perhaps just paid a bit more attention to the dimeensions in Inkscape instead of rushing quite so fast.
Above: The full Shopbot in all of its glory! It has around a 5' by 10' working bed.
Shopbot Milling the Parts
The next step was to take our design file and turn it into a real life object. I exported the Inkscape file into a DXF Vector drawing, and uploaded that to the VCarve software on the milling computer. The various different milling paths were selected in VCarve, including outside cuts for cutting the actual pieces out (the drill bit cuts so that it cuts the material away outside the cut line), and inside cuts (where the bit cuts such that it cuts the material out from the inside of the line). I didn't have any rastering done on the part, so I didn't need to worry about that. After selected the correct bit we were using (a 0.25" carbide endmill), adding a number of tabs to the parts manually (to avoid placing them in any areas where there were going to be press fits), I exported the cut file, and opened it up in the Shopbot software.
After opening the Shopbot software, we first needed to zero the z-axis. This was done using a metal plate positioned on the base of the plywood that the endmill comes down to and touches - completing an electrical circuit so that it knows when to stop. Before zeroing the axis, we made sure that our plywood piece was screwed down and secured correctly. Before commencing with the cutting, we turned on the air/fan and attached the brush to the mill head to avoid getting dust everywhere. We double and triple checked that none or our parts were located in areas of the board that had screws holding it down, so that we wouldn't destroy the endmill. Then we commenced with the cutting.
During the milling process, a few issues came up, which I'll delve into further below.
Above: Some pictures showing the milling process of my bench parts, as well as the test piece we cut with Gavin in the center.
Fitting the parts together
The next step in the process was to sand all of the connections down and fit everything together. I used a thickness of 0.44" for the OSB Plywood in my press fit holes, which ended up being a decent amount too small. The actual thickness ended up being much closer to 0.47" - 0.48". This meant I had a lot of sanding to do to make everything fit together correctly. On the bright side, everything had a very tight fit in the end, so it was pretty secure.
I tried to use a flextured joint (seen in the pictures below) as some extra reinforcment/support for the top of the bench. However, I learned that OSB doesn't really like flexing all that much, and I ended up accidentally breaking on of the flextures. I also missaligned one of the connections in the side of the support such that it didn't fit correctly in the press fit hold. I eneded up chisseling some of those connections off in order to make the part fit correctly still. The one flexture joint that still remained actually worked pretty well though. It bent nicely through the hole, and then popped into place once through the hold, securing it in place. Afterwards, I epoxied all of the connections in place to provide extra support. Lastly, you can see an air gap between the top of the support and the bottom of the top plate. This was a mistake in the drawing - it should have been pushed up right against the top to actually provide support. If I could re-cut the pieces, this would be fixed.
Above: Some pictures showing the milled out pieces and the process of putting them together. You can see the flexture joint actually worked fairly well (at least the one that didn't break off...).
Using the Bench!
Of course, the next thing to do is to actually use the bench! Here it is below pictured in my bedroom next to my bookshelf. Unsure what I'll use if for at this point...
Above: A picture showing the bench in my room, sitting next to the base of my bookshelf.
Issues I Had
I had a number of issues pop up when I was doing the design and milling this week - some small and some a bit larger.
1.) One issue was that I found out that OSB Plywood doesn't flex that well. One of my flexture joints broke when I was trying to bend it through the hold. The breaking was most likely a combination of the board material not being ideal, and me being a bit too impatient to connect everything together.
2.) Another small issue that I had was in the milling process. If you look at the picture below this on the left, you can see two parts being milled. I added tabs to both of these so that they wouldn't pop up. However, if you look at the material between the two pieces, it really isn't connected to anything, as it is between the two cut pieces. As the Shopbot cut over this section, it started to lift this center piece up a bit. This could probably have been relieved with better use of tabs. We simply paused the cut process, and put an extra screw in the center piece to secure it down.
3.) Another issue that we found was that it was hard to predict sometimes how close the cut piece was going to come to the screws holding the material down. We could simply offset all of our cut parts, but the TA I was cutting with had another good idea - to actually include the screw/supporting holes in the design file itself. That way we can have the mill drill out the screw holes for us, and then the holes will actually be exactly included in our design file so we can very easily see where they are and avoid them.
4.) Lastly, there were a few small software issues, such as the Shopbot software freezing up every now and then and just refusing to cut for a while. This was usually fixed by quiting and restarting the program, or even restarting the computer itself.
Above: Some pictures showing varous issues that I encounterd this week.
Other comments
I wanted to make something this week with the living hinge type design that we saw a lot in the laser cutting week. However, this really just isn't possible with this cheap OSB Plywood that we're using. It just doesn't bend well enough without breaking apart. The chair pictured below is a really cool deisng featuring this living hinge concept where the entire base and back of this chair is one continious milled piece of wood. I've been told that birch plywood works well for this, but that trying it in OSB would be a nightmare.
Week 6 - Programming Microcontrollers to Blink LEDS
Overview of the week
This week, our goal was to program the Hello World board we made last week, as well as to fully read the data sheet for the ATTiny44A microcontroller. My initial goal was to get the led to light up when the button was pressed. This seemed like it would be fairly trivial, so I also had a stretch goal of adding an rgb led in and try to get it to do a rainbow fade (using PWM I believe). Actually programming this microprocessor (ATTiny44) turned out to not be super trivial. This project included designing the boards in Eagle, milling the board traces out, populating the boards with the desired components, then writing the code in C, assembly, hex, or arduino, and finally, plugging the board in and programming it. I discovered that checking for errors between each step was absolutely critical to make sure that multiple steps didn't have to be repeated. Overall, I'd say the week was a success though.
Above: You can see the programming board (FABISP) we made a few weeks ago hooked up to the new Hello World board that we designed and milled out last week. On the right, you can see the LED lighting up/blinking after having the code uploaded.
Reading the ATTiny44A Data Sheet
Reading the data sheet was both very enlightening as to how these microcontrollers work, as well as very confusing. There was a lot of info I didn't really understand about the fuses and memory, but the rest of it seemed okay. I'm sure I'll get it in the future as I work with these chips more often. Reading this data sheet definetely helped me understand how to do the next parts much more clearly. Here is a link to the data sheet for the ATTiny44A: http://www.atmel.com/images/doc8183.pdf .
Above: You can see the design files for the new board, including the black and white image that was used to mill out the traces.
Populating the board
Populating the board was fairly trivial at this point, and took no more than 10 minutes to fully populate. I added an extra led, resistor for the led, and a push button so that I could turn the led on and off with the button. Soldering was quite easy. Also in this time, I made a small ribbon cable for connecting my programmer ISP jack to my Hello World ISP jack. These can all be seen in the images below.
Above: You can see the process of milling the boards and populating the boards int he images above. You can also see the ribbon cable that I made to connect my programmer to my Hello World board.
Flashing the first sketch
To make sure that the board was working properly, I uploaded the example sketch that was provided to us on the class website. I did this to make sure that everything was hooked up correctly, there were no hardware or software issues, and that my programmer was functioning correctly. At first, I could not get my programmer to work, until I realized that I had forgotten to remove the 0 ohm jumper and solder bridge that were required when it was programmed. When I removed them, everything worked correctly, and I was able to upload the sketch without any errors using AVRDude. Images of this process can be seen below.
Above: You can see some of the code being uploaded to the board. I used the command 'lsusb' at first, to make sure that the computer was seeing my usbtiny correctly, which it was. I then used the given ARVDude command to flash the intel hex file to the board using the makefile.
Flashing new sketches using Arduino
After that process was over, I really wanted to make my led blink, and to do stuff with the button. I thought that the simplist was to do this at first would be to use the Arduino library. I set about this process, opening Arduino, getting support for the USBTiny progammer and ATTTiny44A microcontroller, following this blog: http://highlowtech.org/?p=1695.
The process was fairly straightforward, but I had one very large error that occupied me for hours. I thought that it was a software issue, but it turns out, that I had just hooked my led up backwards and so it wasn't able to light up. I found this out after some extensive testing with a multimeter. Once that was figured out, I was able to upload some cool sketches through Arduino to get the led to blink, fade, come on with the push of a button, etc.. It was actually quite fun! I feel like a whole new world has opened up now.
Above: You can see some simple Arduino code to make an led flash, as well as the microcontroller data sheet open to reference which pin on the mcirocontroller did what. You can also see the results of the cocde - a blinking led.
Flashing new sketches using Atmel Studio
So let me preface this by saying that I had a large number of issues with Atmel Studio, namely because they don't natively support the USBTiny ISP programmer, so I had to manually add support into it by using the AVRDude command. This somehow introduced a large room for errors, and it was really a struggle to get it working. However, after a lot of trial and error, I was finally able to upload a sketch to blink and led when a button is pressed.
It was very interesting seeing the coding difference between the Arduino libary and then coding in pure C in Atmel Studio. I could fairly quickly see that, while Atmel Studio was defintely the harder of the two, it would provide a lot more flexibility and power when coding the micros. After many hours of struggle, I was finally able to consistently upload a sketch using Atmel Studio. Now I just have to figure out how to actually code in C to be able to do anything!
Week 7 - Casting Chocolate Doges and Other Things
Overview of the week
This week our assignment was to CAD a part to cast, machine a positive of that part out of machinable wax, cast the negative mold from OOMOO resin in the positive wax plug, then to take that negative mold and make a cast of our part using hydrostone, drystone, metals, or some other casting material. This week was fairly intense, in that there were many parts to accomplish in a very limited timeframe. However, despite all of the challenges, and there were many, I enjoyed this week a lot. It was back to working with my hands a lot, and I really liked that. I was able to cast the spinner totem from Inception, a Doge, and a copy of my Brass Rat, all in hydrostone. They turned out surprisingly well. I attempted to cast in drystone but ran into some difficulties. I will be attempting to cast the totem in the low melting temp metal alloy in the near future, as well as making a food safe mold of the Doge and casting chocolate Doges - because why not!
Above: Some of the CAD files I used this week, including the totem piece, split into two sections and attached to the mold plug base, as well as the design files for the Doge that I would 3D print and later cast.
Designing the Positive Mold Plug
The first step to this week was to design the parts that we wanted to cast, and to place them into a mold design somehow. I did this in Solidworks. I first designed the totem fairly quickly, then sat there for around 2 hours figuring out how to split the stupid totem in half to attach to the mold. Finally, I figured out that I needed to sketch a line through the centerline of the part, then use the Split command, select that line and the curved surface above that, and it would split the piece in two.
Once this was done, I needed to design the mold to place them in. I designed it as a simple box, with some insets to place the parts in, and some cylindrical connecting pieces to connect the two pieces of the mold together after they were demolded. Once this was done, it was time to export the stl and get machining! The mold box containing the totem pieces was sent to be machined in the wax, while the stl containing the Doge (which was obtained online) was sent to the 3D printer to be printed quickly.
Above: The cut files from Neil's mod software is shown. On the left, we can see the wax rough cut being sent to the Roland SRM Mill. On the right, we can see the STL being processes for the wax fine cut, which is done via rastering the mold. The fine cut is done after the rough cut.
Using the Mod Software to Machine the Wax
The mold then needed to be machined! I took a wax block (3" x 3.5" x 1.5") and taped it solidly down to the milling bed. I went through the mod software, uploaded my STL, chose the wax rough cut, positioned the zero point on the wax block, calculated the toolpath for the rough cut, and sent it to the printer. It worked the first time I sent it thankfully! I would periodically pause the process and vacuum the wax shavings out as the mill was running.
Once the rough cut had been finished, I proceeded to calculate the wax fine cut. This is a very similar process, but does rastering along all 3 axis at once, instead of just an xy cut, then z step down. The wax fine cut was then sent to the mill, without changing the mill bit, wax position, or the zero position. This process can be seen in the pictures below as well.
Above: The Roland SRM mill doing the wax rough cut and wax fine cut, cutting out the positive mold/plug for the two halves of the Inception totem.
Making the Negative Mold with OOMOO Silocone Resin
The mold was then taken out of the mill and cleaned off to get rid of extra wax shavings. The OOMOO 2 part solution was then weighed out and mixed together. The mixing was done slowly and up/down to minimize bubble formation. When it was poured, it was also poured slowly and in a thin stream to minimize bubble formation. It was then poured into the wax positive mold up until the brim of the mold. Before it was poured, the positive section of the mold was painted with OOMOO using a small brush to minimize bubbles after the bulk resin was poured in.
Once it was poured in, the wax mold was shaken and tapped to get rid of as many bubbles as possible from the resin. It was then allowed to set for around 2 hours before it was taken out of the mold.
Above: Shown on the left is the wax positve mold/plug. On the right is the OOMOO being mixed. You can see the different resin part colors mixing together.
Casting the Totem using Hydrostone and Demolding Afterwards
The mold was then used to cast the totem in Hydrostone. The Hydrostone was mixed together, powder into water, and pressed into the two mold pieces, which were then clamped together. I waited a few hours for the Hydrostone to cure, then took the totem out. There were a few issues with one of the ends of the totem not going quite far enough into the mold so it looks cut off. It still spins pretty well though.
Above: The process for making the Hydrostone mold is shown, including mixing the Hydrostone, pouring into the negative mold, demolding, and spinning the top.
Making Molds for the Doge and Brass Rat
The next thing I tried to do was to skip the wax milling step and cast over some actual objects. For this, I first 3D printed a Doge design that I found online. It printed quite well. I then made a container with two seperate compartments - one for the doge and one for my Brass Rat. I then mixed some OOMOO together and poured it into the two compartments, making sure to avoid as many bubbles as possible.
Once the OOMOO 25 was set, I very carefully cut into the molds using a utility knife. By cutting part way into the mold, along the axis of the Doge's back, I was able to pull the 3D printed Doge out of the mold. Same for the Brass Rat. I now had super detailed molds for both.
Above: The process of creating the negative molds for the Doge and Brass Rat is shown.
Casting the Doge and Brass Rat
The next step was to cast both using the Hydrostone. I initially tried the Drystone, but it was too thick to force into the mold cavities. After mixing the Hydrostone, and creating holes to pour it into in the top of the molds, I proceeded to pour it in, then pressed or clamped the molds shut, and waited for them to dry.
Once they were dry, I carefully opened up the mold and pulled them out. I had some issues with the Doge's legs not being molded correctly (so he's a little stunted... :( ), but other that that, both parts looked great. There was a surprisng amount of detail for the Brass Rat. If the lower ring section had been slightly thicker, it would have been almost identical. There is a slight parting line on it where the mold was cut, but it's hard to notice on the ring, and virtually nonexistant on the Doge.
Above: Some images of the Hydrostone Doge and Hydrostone Brass Rat. It gave a surpsiing amount of detail. The 3D printing layers are even visible on the Doge.
Problems I Ran Into
There were a few problems this week.
(1) When using STL's from Solidworks, the routing path calculations took extremely long on my laptop (there was something like 20,000 triangles). By reducing the DPI from 1000 to 300 I was able to cut this slightly. However, when I tried it on the desktop in the EDS, it took only a few minutes to compute the tool path, so that worked fine I guess.
(2) I didn't run into this problem quite as much, but some people had issues with the drill bit depth. The depth wasn't quite enough to get down into the wax as far as they wanted, and some people had the collet smash into the side of the wax. Most people either had to lower the bit some more (if it wasn't fully lowered before), or try to cut some of the wax off the top of their mold.
(3) I had a few issues with the Hydrostone not getting into the cracks and crevices very well for some parts. This could probably have been solved by better shaking the molds to get the Hydrostone better dispersed, using the brushes to push some Hydrostone into the cracks, or by adding slightly more water to the Hydrostone to make it more liquidy.
Week 8 - Making clap activated lights (and failing miserably...)
Overview of the week
This week our assignment was to do something with input devices - or sensors. To read some sensor in, and to try to communicate that data over to the host computer via a serial TX/RX connection. I chose to try to implement a microphone for this weeks project, and to try to use it to make some clap noise activated lights. I could map the wave out for clapping twice, and only turn on or off the lights if a sound waveform fairly closely matches that waveform. This was a fairly ambitous project, and I suspected that I wouldn't be able to finish the clap activated part. However, I found that I really struggled this week with the serial connection, and wasn't even able to get data to transmit over correctly. I will continue trying this weekend to see if I can get it.
Above: The milled PCB in all its glory, along with some garbled serial data being displayed in putty.
Designing the circuit in Eagle and milling the board out.
The first step this week was to design the circuit and mill the board out, just like the past few weeks. This process went fairly smoothly. I chose to use the ATTiny44A instead of the ATTiny45 that Neil used, mostly because I wanted to add a few leds to the circuit, a button, as well as a tiny little N-channel mosfet and a power plug, so that I could try hooking this board up to my led strip to turn it on or off. This means I needed to choose the 44A over the 45 for extra IO pins.
After I designed the board in Eagle (which was a bit of a struggle to do with all of these new pin connections using only one side of the board - I ended up having to use an external jumper wire where I couldn't route one of the traces), I proceeded to mill the board. The first mill I did didn't work correctly becauase my trace widths were too small and the gnd pour clearance too small as well. A lot of pins were connected. I redesigned the board with larger traces and greater clearance and remilled it. This time it worked correctly. I had to cut one connected trace apart with an exacto knife, but it was fine otherwise.
Above: The milled board and all of the pieces to solder on.
Soldering the components on
The next step was to solder all of the components on. This went fairly smoothly for most of them. I had to use some solder paste for the MEMS microphone and heat the traces surrounding the microphone chip to get it soldered correctly (because it has pads on the bottom of the chip). I double checked all of the connections, gnd lines, etc. with th multimeter to make sure everything was connected correctly.
I then powered the board up, uploaded some generic code using Atmel Studio to blink the leds on and off, which worked beautifully, and then proceeded to work on the serial connection for the rest of forever...
Above: Some test code uploaded directly from the command line using the Makefile to compile the 'c' code into 'hex' and upload it to the board. On the right you can see some garbled serial data coming over displayed in the putty terminal.
Struggled with Serial
This part occupied me for many, many hours...
For some stupid reason, I could not get the correct serial data to come over. I worked with the TA's for a number of hours, and we couldn't figure it out. To make it simpler, we disregarded the ADC microphone data for now, and just told the chip to send over some numbers through the serial connection. This shouldn't have been that hard, but we couldn't get it to not just send over trash. We tried Atmel Studio, Arduino, and directly from the command line with the Makefile. We adjusted all of the timing (tried 8 MHz and 1 MHz on the ATTiny45) and a variety of Baud rates on the computer and in the code (mostly 9600 baud), adjusted the makefile to compile for the right chip, double/triple/quadruple checked the rx/tx connections from the chip and FTDI cable, etc.. We reverted to trying to get a hello echo board serial connection to work, and eventually got that working, but couldn't get my board to work (the hello echo board we tried used the ATTiny45, so we never actually got the ATTiny44A chip to work). The TA (Tomer Weller) suggested that it could just be a bad ATTiny44A chip, or perhaps we just hadn't tried the right timing combo yet. I will try to mill out Neil's example board for that project (using the ATTiny45) and see if I can get that too work this weekend, and then try to move to other boards and chips from there.
Week 9 - Making a bike seat and other parts
Overview of the week
This week our assignment was to read the MSDS sheet for the composite resins we would work with, then design and fabricate a 3D mold on the mill and produce a fiber composite part within it. I've worked with a number of different composite materials before (making fiberglass fairings for the EVT team and carbon fiber aero structures for the FSAE team), so this week was a bit of a recap for me. It was interesting working with burlap as a composite material because it was much heavier than the other fibers I had worked with, and seemed to absorb much more epoxy than either fiberglass or carbon fiber. I chose to make a bike seat this week, with a stretch goal of making a bike frame (as a starter to trying to make my own carbon fiber bike frame this IAP).
Above: The Solidworks design of the bike seat mold as well as the final burlap composite bike seat, scaled down to 0.75 size so it would fit in 1 layer of foam thickness.
Designing the bike seat mold in Solidworks and obtaining the GCode
I first modeled the bike seat in Solidworks, following some designs and dimensions found online. After the seat was modeled, I extruded the shell into a solid, embedded that solid into a brick, and used the 'combine' feature to subtract out the bike seat from the mold. This means that I would have to cut out the pattern of the walls onto the seat after I took it out of the mold, since the wall pattern got 'smooshed' out from the extrude.
Once I did this, I found that the depth of the mold of the seat was around 3", meaning I would have to use 2 layers of foam to get a full mold. Being lazy, I just downsized the seat mold by 0.75 such that it would fit in a 2" block of foam. I then exported the STL and imported it into the Vectorcut 3D software on the mill we were using. In this software, the tool paths (rough, finishing, and cut) were generated using a specific stepsize and spindle movement speed. These files were then exported into the mill Shark software, the mill was zeroed, and the mold was cut.
Above: The scaled Solidworks mold file, and the VectorCut 3D software generating toolpaths.
Milling the mold out
After all of the tool paths were generated using the VectorCut 3D software, the gcode was send into the CNC Shark Contorl Panel. An appropriately sized piece of foam was cut out and screwed into the base board of the CNC mill to secure it. The mill head was jogged to where we wanted the zero location to be - making sure to avoid the screws. It was then zeroes there for x and y, and z was also zeroed using the touch plate. The tool paths were then verified quick using an air cut (about 4" above the foam surface). Once it was verified the toolpahts were correct, the milling proces began.
The roughing cut took around 15 minutes, the finishing cut around 20 minutes, and the final cut path around 2 minutes. The vacuum was used to get rid of the machined foam after each cutting cycle. Once it was finished, the foam was unscrewed and taken out of the CNC mill. The mold was then broken out of the securing foam by cutting the connecting pins off.
Above: The seat mold being machined in a block of foam.
Getting the mold ready for the fiber composites
The mold was then sanded down lightly to reduce the effect of the different rastering heights on the bike seat mold. I could have used a smaller step size, but this would have taken longer, and other people were waiting for the mill. I then placed the aluminum foil inside the mold, as the TA Sam showed us, and sprayed it with a few coatings of the mold release spray (EXOff?).
Above: The seat mold broken out of the foam and then sanded down a bit.
Laying up the burlap composite bike seat
I then cut 3 sections of burlap sized for the mold, cut little slits in them so they'd situate better, and cut sections of the bleeder clother and wicking cloth as well. The burap sections were then coated in the resin epoxy (2.1 parts epoxy to 1 part hardener), and placed in the mold. The bleeder cloth was then placed on this, and then the wicking cloth. It was then placed in the vacuum bag, sealed, and held under vacuum overnight.
Above: Some images from the layup process, placing in the vacuum bag, and demolding.
Demolding the seat and sanding it down
The process of demolding wasn't the easiest because I had used too much epoxy, but it didn't go horribly I guess. After 30 minutes of prying and pulling I got the fabric out of the mold, and then another 20 minutes to get the rest of the foil off.
Once the fabric was all off, I used a strong cutting too to cut the composite to shape, and then sanded it down lightly to remove all rough edges. The finished product can be seen below.
Above: The finished product!
Future work (bicycle frame)
The seat was good practice, but I'm looking forward to trying to make a rideable bike frame in the near future. I am midway through cadding the frame. I will then take each individual tube, slice it in half, machine each half out, then glue the two halves together, make a jig to connect all of the tubes together, epoxy the tubes together, then wrap the fiber composite over the foam tubes, and vacuum bag it. This will hopefully be strong enough to support a person.
I will test it out with burlap to start, and then hopefully move on to fiberglass and carbon fiber once I have the process figured out and all kinks worked out. Hopefully by the end of this IAP, I will have a carbon fiber bike similar to the one pictured below.
Week 10 - Making a Stepper Motor Driver for a Star Tracker System (and a 4x4x4 LED Cube)
Overview of the week
This week our assignment was to design a circuit and program it to output / do something to a device. This could be something with LEDs, motors, etc.. I chose to make a stepper motor driver system for my star tracking system project. It needs to have a small microstepped stepper motor with an attachment to a 1/4" threaded rod that will rotate the star tracker (camera) hinge to rotate at the same speed as the stars (see week 1 for more details). I suceeded in building the H-bridge stepper driver that Neil had on his website, but chose to also do this with a commercial stepper motor driver for more versatillity and ease in programming. I chose to use the DRV8825 Stepper Motor Driver from Pololu because it is able to carry a higher current. I also am in the process of making a 4x4x4 LED cube for this weeks assignment, utilizing multiplexing. I need 20 IO lines from the AVR to do this (16 for each coloumn cathode and 4 for each ground plane anode).
Above: The stepper motor and circuit in action. I was using the full step mode on the driver, so at 20 MHz of the AVR, and 200 steps for the stepper motor, and a 20 millisecond delay, it takes 8 seconds to do a full rotation.
Designing the AVR circuit (ATMega328p)
I mostly followed Neil's example for the ATMega328 Fabduino project, adding an extra LED, and high current N-channel mosfet (for turning on and off my LED strip), and a few other parts.
Week 11 - Making a computer application (in C#) to control a 4x4x4 LED Cube
Overview of the week
This week, our assignment was to program a host side appliction (in Python, C#, or other programs) to interface somehow with an external board. I chose to make a simple program in C# (as I wanted more experience in it) using Visual Studio that could send some simple patterns to a 4x4x4 LED Cube that I also made this week. The serial communication was fairly simple to set up (following a few online tutorials), and getting the C# program to communicate to the C program on the AVR wasn't too hard. This week was mostly an issue of making sure I had enough time to mill out the boards, solder the cube together, program both the AVR and the host side C# application, debug everything, and make it all look pretty. This time managment is always a bit of a struggle. I made good progress though, and have a simple, controllable LED cube to show for it. I also made a large amount of progress on my final project this week as well, finishing up much of the mechanical work, and submitting the PCB designs to some fab houses to make.
Above: The finished program can be seen on the left (a combination of a serial terminal reader and an LED cube control panel). On the right, the freshly milled LED control PCB can be seen.
Designing the circuit and milling the LED Cube control PCB
This process has generally gotten much faster than the previous weeks, as I've become more used to the process of designing the board in Eagle, milling, and populating the board. I was able to design and make this board in just a few days which was very nice. The schematic and board file images can be seen below. I used the ATMega328p, which was a pain to mill traces for and solder last week, but this week behaved a little more nicely.
The LED control itself is fairly simple. There is an IO line (with a 150 ohm resistor) for each column of LEDs (with a column having the anodes of 4 LEDs soldered together), and then an 4 IO lines connected to N-channel mosfets that control the cathode planes of each row (with 4 rows in the LED matrix). By turning on 1 column and 1 cathode plane at a time, individual LEDs can be lit up. By cycling through each LED fast enough, even though only 1 LED is on at once, you can make it seem like every LED is on. A diagram of this can be seen below. This was all routed out in Eagle, milled on the Roland SRM 20, and soldered together, with ribbon cables being used to connect the board to the LEDs.
Above: The schematic and board design file for this ATMega328p controlled LED Cube can be seen above. It milled out very nicely the second try (I had to replace the bit with a newer bit).
Populating the board and building the LED Cube
I had a bit of a struggle actually soldering the LED cube together, mostly because I didn't plan well enough ahead of time, and didn't have a good template to solder the LEDs together. Because of this, I only manageed to get 2 of the layers soldered together (32 LEDs) instead of the total of 64. In the below pictures, I only actually have 4 of the LEDs hooked up and working at the time, but the program is shown to be working, so extending it should be trivial. For the future, I'd like to mill the holes and traces for the LEDs right into the PCB itself, so I don't have to mess with the ribbon cables anymore.
Above: The baby version of the LED cube can be seen above, as well as a general diagram for how the charlieplexing of the cube works. I need (N*(N+1)) IO lines to control an N^3 sized cube. That is 20 IO lines for a 4x4x4 cube, the full extent of what the ATMega328p can do.
The AVR code
The AVR code this week was fairly trivial, as it was mostly just a rehash of the previous week's code. The most challenging part was getting the serial communication to work both ways. I had some trouble with the baud rates for a while, but eventually figured it out. Neil's echo hello world example code was very helpful. Beyond that, there is some simple code to control which LEDs are on (the cathode plane and the anode column must both be on), as well as some code which monitors the serial in line for various characters to do different patterns in the LED matrix. For instance, if it sees a '5' come over the serial line, it will flash all of the LEDs on and off. Some images of this can be seen below.
Above: A segment of the AVR code can be seen above.
The C# application code
This part was a little more interesting, as I've pretty much never worked with C# before. I decided this week was a good time as any to learn, so I set about installing Visual Studio and going through a number of tutorials for making applications. I found some very good tutorials on setting up and using the COM ports and serial communication. It turns out it's fairly trivial (code wise) to set up your own serial terminal. I made a simple application to contorl the LEDs (with a button click sending a specific coded character out over the serial line), and a built in serial terminal to make viewing and opening the COM port easier. A good tutorial that explained this was found here: https://www.codeproject.com/articles/678025/serial-comms-in-csharp-for-beginners
Above: A segment of the C# code can be seen.
Future work
For the future, I'd like to actually finish building the full LED cube and soldering everything together. I think it would be fairly trivial to modify my board design to just route the output lines directly to spots on the PCB to solder the LEDs to, getting rid of the need for cumbersome ribbon cables. Once this is done, I'd like to implement a better GUI with more options on the host side, such as clicking a button to send over a sin wave, or to flash all LEDs, etc.. I'm also midway through programming the application for my final project (which I'm using C# for), whose purpose is to display an image of the sample surface line by line as the microscope scans over it. I'd like to get an alpha version of that working by the end of the week to prep for hooking up the electronics to.
Week 12 - Making a Microphone-Input, Speaker-Output delayed networked ATTiny45 device
Overview of the week
This week our assignment was to network a few microcontrollers together using either a wired or wireless network. Being an extremely busy week for me (with another final project due, 2 psets, an essay, and test), I chose to go with a more simple wired asynchronous serial communication network for this week rather than the more complicated and time consuming wireless networks. I thought it would be cool to combine the microphone I made during the input week, and a speaker driver circuit from the output week. My goal was to take input waveforms from the microphone, convert them through the ADC, send that value over an RX/TX communication line to another ATTiny45 chip controlling the speaker. I would then convert that ADC value into a PWM current/frequency to replay the micrphone input with a bit of a delay - around 200 ms as per the video below. Something interesting happens pchycologically when you hear your own voice being played back at a slight delay - most people become unable to talk normally or even at all. See the video below.
Microphone ---> ATTiny45 (1) ADC ---> RX/TX Serial Communication ---> ATTiny45 (2) PWM ---> Speaker
I would be following the AVR Application Note here, which somewhat explained the process in complicated terms... http://www.atmel.com/Images/doc1456.pdf
Above: A quick video explaining the general process and showing the effects of this process. I'm not sure how well it would work without the headphones, but I figure I'd give it a shot.
Designing the speaker circuit and remilling the microphone board
This week the circuit design was fairly simple. I already had a design for the microphone circuit and had it working a few weeks ago. I somehow lost that board though, so I remilled it out and repopulated it. I hooked it up to the computer to verify that it was working correctly. This can be seen in the below images.
The speaker driver circuit is very similar to Neil's example speaker driver circuit, except for the fact that I added a push button to mine (to be able to toggle on and off speaker output), and a few IO lines for the RX/TX communication. I also added an extra V and GND line to connect the two boards together so only one power source was needed.
Above: Testing both the microphone code out as well as the speaker code. Also shown is the design files for the modified speaker board.
Testing the speaker circuit - playinng sin wave patterns and notes
As per the above video, I pretty much started out this week (and spend the majority of my time working on... :( ) figuring out how to interface PWM with sound/speakers and messing around with frequencies, etc.. I tried a number of different codes, and struggled for a number of days trying to wrap my brain around interupts, PWM registers, how PWM translates to square waves translates to voltages at various frequencies translates to different notes at different octaves. It was a pretty big struggle actually. I've learnt over the past few weeks that my biggest weakness in this class has been my programming skills. Everything else is relatively okay, but my programming could use some work. I will be taking some coding classes next semester because of this.
Above: On the left you can see a small .wav file that has been converted to C and is trying to be played out over the speaker. I had some troubles with this because of the small flash storage size on the ATTiny45. On the right is a table of frequencies of oscillation to the note that it sounds like.
Learning how sound/frequency works...
I tried to start out simple on the speaker end and only play out simple tones to figure out how the PWM function and timers worked. This took me a long time and was very frustrating!
Eventually, I came to grasp the timers and PWM better and was able to reproduce some simple tones. I did an A (4th octave) which was 440Hz oscillation, and a few other notes such as G (5th octave) and D(3rd octave). I verified that the notes are correct by having one of my friends (who has near perfect pitch) try to guess the notes, which she did correctly for 4 of the 5 notes I tested. She said the notes were a little on the flat side, but I'm guessing that's just because I'm using such a smaller speaker driver and have no filtering.
#include
#include
#define output(directions,pin) (directions |= pin) // set port direction for output
#define set(port,pin) (port |= pin) // set port pin
#define clear(port,pin) (port &= (~pin)) // clear port pin
#define pin_test(pins,pin) (pins & pin) // test for port pin
#define bit_test(byte,bit) (byte & (1 << bit)) // test for bit set
#define cycle_delay() _delay_us(2) // cycle delay
#define current 150 // PWM current
#define off 255 // PWM off
#define MOSFET_pin (1 << PB1)
#define MOSFET_port PORTB
#define MOSFET_direction DDRB
void timer0_init()
{
// set up timer with prescaler = 1024
//*incr = (Clock Freq) / prescalar / desired freq
//*incr = (8,000,000) / 256 / 440Hz = 71.02 == A4 note
TCCR0B |= (1 << CS02);
// initialize counter
TCNT0 = 0;
}
int main(void)
{
// set clock divider to /1
//
CLKPR = (1 << CLKPCE);
CLKPR = (0 << CLKPS3) | (0 << CLKPS2) | (0 << CLKPS1) | (0 << CLKPS0);
clear(MOSFET_port, MOSFET_pin);
output(MOSFET_direction, MOSFET_pin);
// initialize timer
timer0_init();
// loop forever
while(1)
{
// check if the timer count reaches 20
if (TCNT0 >= 71)
{
PORTB ^= (1 << PB1); // toggles the mosfet
TCNT0 = 0; // reset counter
}
}
}
Above: Some of the code for producing a simple tone as well as a picture of the workflow and software I was using (sublime text editor).
Getting the microphone circuit communicating with the speaker circuit via asynchronous serial communication (RX/TX)
This was fairly trivial. Since I was only working with RX/TX asyncronous serial communication, it was as simple as using the getChar and putChar commands to putChar the ADC values (after splitting them into 2 seperate bytes), and using getChar on the other end to receive those bytes, put them back together, and output them to the speaker.
The part that was challenging for me was in how to actually output those ADC values to a speaker... I struggled for a while in trying to convert them to frequencies, etc. before I gave up.
Since each ADC value is just a small data point on the overall waveform that the microphone outputs, I should just be able to directly output the ADC value, after some downsizing and bit shifting, to the speaker, at the same sample rate that the microphone took input at. In practice, this wasn't so simple...
Playing the delayed microphone input on the speaker output
So I never actually achieved direct or delayed playback on the speaker from the microphone input, but I'm still working on it! I've learned a lot this week on how sounds are synthesized and how PWM/Timers work and I want to keep learning more. I did get the inter-microcontroller communication to work however, as verified to hooking up the output line of the speaker chip to the computer and seeing the output from the microphone. Microphone ---> Speaker ---> Computer.
I will update this site as I figure out how to output the sound to the speaker better.
Progress on final project
This will also be documented in my final project tracking page, but I made a decent amount of progress on my final project this week. The majority of the mechanical work is now done, with the aluminum and wooden housing all being machined out, threaded, polished, etc.. I've received all of the mechanical parts I need now (except for some conductive epoxy that I'll be getting), including the springs, threaded fine screws, piezo disks, aluminum brackets, etc..
On the electrical side, I now have all of the components I need, with the last components from digikey coming in today. I will begin soldering the components to the board and testing them as soon as the 2 PCB's arrive - which should happen in the next 2-3 days.
On the programming side, I have a rough sketch going which should suffice for now. It does everything I need it too, including scanning over the surface, reading the ADC current values, plugging them into a PI algorithm, and reading them from the Teensy 3.6 to the computer software that I've coded in C#. The computer software is fairly simple. It takes the data in via a large matrix of byte values, deconstructs it, reads the values, and 'paints' a bitmap image onto the screen so the user can see the current scan progress. There is also a number of options that the user can enter into the code, including scan height, various modes of operation, etc..
Week 13 - Making the machine to make the machine
Overview of the week
This week our assignment was to automate a machine that Nadya helped us build. We were given a few hours of work time in the CBA shop (I was in the EECS section with Gavin), and were tasked with building the machine. Most of the design was already completed by Nadya so it was mostly a matter of grunt work to laser cut the cardboard frame, CNC mill the PCBs, glue everything together, and program it. I was involved in the electronics section with milling out the PCBs and then glueing together the frames afterwards as well. Our group didn't get much further than actually making the general frame and putting everything together - probably because we were all pretty busy working on our final projects. It was a cool experience though to make a machine like this in a matter of hours. The biggest thing we still needed to do was the programming of it.
Above: One of the machine axes being glued together after being laser cut out.
Laser Cutting the Frame Material Out
Nadya provided us with the design files for the laser cutter and the cardboard for the frame as well. It was a fairly simple task of importing the design files, choosing the correct lines to be associated with the correct cutting intensity (since some lines were only supposed to cut half way though for fold lines), and getting on with the cutting.
Above: Some of the laser cutting patterns as provided by the cba website.
Attaching the axes together
After each group finished their respective tasks (we split up into subgroups for PCB milling, electronic connector making, laser cutting, frame glueing, and programming), we all helped finish up the glueing together of the frame, and putting everything together at the end.
After the stages were put together, everything was moved up the EDS. It hasn't been touched too much since then, except to put the electronics and connectors together for it. As far as I know, no one has attempted to program the stages to move at all yet. For another day I guess... I was pretty busy getting my final project ready this week to help too much with the the machine design after the initial 2 hour meeting.
Above: Some photos of the stages being put together
Future Work
I would definetely like to take a better crack at this once I have more time, as it seems really interesting. I would like to make it do something useful, perhaps related to beiking somehow, as I like to bake a lot. Perhaps over IAP I'll try to build my own CNC machine.