From 7f987270feffd812dc4c1f1886279da159df82be Mon Sep 17 00:00:00 2001 From: "Ryan C. Cooper" Date: Thu, 16 Jan 2020 15:30:51 -0500 Subject: [PATCH] added project and finalized notes --- README.html | 85 + README.md | 72 + .../athletes-checkpoint.csv | 11539 --------- .../compiled_data-checkpoint.csv | 314 + ...mperature_anomaly-1880-2016-checkpoint.csv | 142 + ...nergy-consumption-by-region-checkpoint.csv | 5066 ++++ data/.~lock.transistor_data.csv# | 1 + data/archery.jpg | Bin 0 -> 112565 bytes data/athletes.csv | 11539 --------- ...d_global_temperature_anomaly-1880-2016.csv | 142 + data/primary-energy-consumption-by-region.csv | 5066 ++++ data/transistor_data.csv | 187 + data/transistors-per-microprocessor.csv | 25 + images/robot_design.png | Bin 0 -> 34145 bytes images/robot_design.svg | 1397 ++ .../01_Cheers_Stats_Beers-checkpoint.ipynb | 415 +- .../02_Seeing_Stats-checkpoint.ipynb | 185 +- ...Regression_with_Real_Data-checkpoint.ipynb | 974 + .../03_stats_and_montecarlo-checkpoint.ipynb | 19908 ---------------- ...Regression_with_Real_Data-checkpoint.ipynb | 1246 - .../04_Stats_and_Montecarlo-checkpoint.ipynb | 958 + notebooks/01_Cheers_Stats_Beers.ipynb | 198 +- notebooks/02_Seeing_Stats.ipynb | 185 +- .../03_Linear_Regression_with_Real_Data.ipynb | 974 + notebooks/03_stats_and_montecarlo.ipynb | 19908 ---------------- .../04_Linear_Regression_with_Real_Data.ipynb | 1094 - notebooks/04_Stats_and_Montecarlo.ipynb | 958 + notebooks/octave-workspace | Bin 54 -> 0 bytes .../02_Analyze-data_project-checkpoint.ipynb | 140 + .../process_target_practice-checkpoint.ipynb | 5984 +++++ project/02_Analyze-data_project.ipynb | 140 + project/process_target_practice.ipynb | 5984 +++++ 32 files changed, 29110 insertions(+), 65716 deletions(-) create mode 100644 README.html create mode 100644 README.md delete mode 100644 data/.ipynb_checkpoints/athletes-checkpoint.csv create mode 100644 data/.ipynb_checkpoints/compiled_data-checkpoint.csv create mode 100644 data/.ipynb_checkpoints/land_global_temperature_anomaly-1880-2016-checkpoint.csv create mode 100644 data/.ipynb_checkpoints/primary-energy-consumption-by-region-checkpoint.csv create mode 100644 data/.~lock.transistor_data.csv# create mode 100644 data/archery.jpg delete mode 100644 data/athletes.csv create mode 100644 data/land_global_temperature_anomaly-1880-2016.csv create mode 100644 data/primary-energy-consumption-by-region.csv create mode 100644 data/transistor_data.csv create mode 100644 data/transistors-per-microprocessor.csv create mode 100644 images/robot_design.png create mode 100644 images/robot_design.svg create mode 100644 notebooks/.ipynb_checkpoints/03_Linear_Regression_with_Real_Data-checkpoint.ipynb delete mode 100644 notebooks/.ipynb_checkpoints/03_stats_and_montecarlo-checkpoint.ipynb delete mode 100644 notebooks/.ipynb_checkpoints/04_Linear_Regression_with_Real_Data-checkpoint.ipynb create mode 100644 notebooks/.ipynb_checkpoints/04_Stats_and_Montecarlo-checkpoint.ipynb create mode 100644 notebooks/03_Linear_Regression_with_Real_Data.ipynb delete mode 100644 notebooks/03_stats_and_montecarlo.ipynb delete mode 100644 notebooks/04_Linear_Regression_with_Real_Data.ipynb create mode 100644 notebooks/04_Stats_and_Montecarlo.ipynb delete mode 100644 notebooks/octave-workspace create mode 100644 project/.ipynb_checkpoints/02_Analyze-data_project-checkpoint.ipynb create mode 100644 project/.ipynb_checkpoints/process_target_practice-checkpoint.ipynb create mode 100644 project/02_Analyze-data_project.ipynb create mode 100644 project/process_target_practice.ipynb diff --git a/README.html b/README.html new file mode 100644 index 0000000..f43c53b --- /dev/null +++ b/README.html @@ -0,0 +1,85 @@ + + + + + + + README + + + + + +

Computational Mechanics 02 - Analyze Data

+

Learning some statistics and data processing skills in Python

+

Welcome to Computational Mechanics Module #2 - Analyze Data

+

There are four modules and one final project. The modules will get us started on our exploration of computational mechanics using Python, listed below each module are the learning objectives.

+
    +
  1. 01_Cheers_Stats_Beers
  2. +
+ +
    +
  1. 02_Seeing_Stats
  2. +
+ +
    +
  1. 03_Linear_Regression_with_Real_Data
  2. +
+ +
    +
  1. 04_Stats_and_Montecarlo
  2. +
+ +

+The computer only generates pseudo-random numbers. For further information and truly random numbers check www.random.org

+

Computational Mechanics Project #02 - Create specifications for a spitballingrobot

+

On the first day of class, we threw \(2"\times~2"\) dampened paper (spitballs) at a target on the whiteboard. Now, we are going to analyze the accuracy of the class with some cool Python tools and design a robot that has the same accuracy and precision as the class.

+

The goal of this project is to determine the precision of necessary components for a robot that can reproduce the class throwing distibution. We have generated pseudo random numbers using numpy.random, but the class target practice is an example of truly random distributions. If we repeated the exercise, there is a vanishingly small probability that we would hit the same points on the target, and there are no deterministic models that could take into account all of the factors that affected each hit on the board.

+

+ + diff --git a/README.md b/README.md new file mode 100644 index 0000000..2db3add --- /dev/null +++ b/README.md @@ -0,0 +1,72 @@ +# Computational Mechanics 02 - Analyze Data +## Learning some statistics and data processing skills in Python + +Welcome to Computational Mechanics Module #2 - Analyze Data + +There are four modules and one final project. The modules will get us started on our exploration of computational +mechanics using Python, listed below each module are the learning objectives. + + +1. [01_Cheers_Stats_Beers](./notebooks/01_Cheers_Stats_Beers.ipynb) + * Read data from a `csv` file using `pandas`. + * The concepts of Data Frame and Series in `pandas`. + * Clean null (NaN) values from a Series using `pandas`. + * Convert a `panda`s Series into a `numpy` array. + * Compute maximum and minimum, and range. + * Revise concept of mean value. + * Compute the variance and standard deviation. + * Use the mean and standard deviation to understand how the data is distributed + * Plot frequency distribution diagrams (histograms). + * Normal distribution and 3-sigma rule. + +2. [02_Seeing_Stats](./notebooks/02_Seeing_Stats.ipynb) + * You should always plot your data. + * The concepts of quantitative and categorical data. + * Plotting histograms directly on columns of dataframes, using `pandas`. + * Computing variance and standard deviation using NumPy built-in functions. + * The concept of median, and how to compute it with NumPy. + * Making box plots using `pyplot`. + * Five statistics of a box plot: the quartiles Q1, Q2 (median) and Q3 (and + * interquartile range Q3$-$Q1), upper and lower extremes. + * Visualizing categorical data with bar plots. + * Visualizing multiple data with scatter plots and bubble charts. + * `pandas` is awesome! + +3. [03_Linear_Regression_with_Real_Data](./notebooks/03_Linear_Regression_with_Real_Data.ipynb) + * Making our plots more beautiful + * Defining and calling custom Python functions + * Applying linear regression to data + * NumPy built-ins for linear regression + * The Earth is warming up!!! + +4. [04_Stats_and_Montecarlo](./notebooks/04_Stats_and_Montecarlo.ipynb) + - How to generate "random" numbers in Python+ + - The definition of a Monte Carlo model + - How to calculate $\pi$ with Monte Carlo + - How to take the integral of a function with Monte Carlo + - How to propagate uncertainty in a model with Monte Carlo + - **Bonus**: use Sympy to do calculus and algebra for us! _no need for + - Wolfram, sorry Stephen_ + - How to generate a normal distribution using uniformly random numbers + + +The computer only generates pseudo-random numbers. For further + information **and** truly random numbers check + [www.random.org](https://www.random.org/randomness/) + +## [Computational Mechanics Project #02 - Create specifications for a spitballing robot](./project/02_Analyze-data_project.ipynb) + +On the first day of class, we threw $2"\times~2"$ dampened paper (spitballs) at +a target on the whiteboard. Now, we are going to analyze the accuracy of the +class with some cool Python tools and design a robot that has the same accuracy +and precision as the class. + +The goal of this project is to determine the precision of necessary components +for a robot that can reproduce the class throwing distibution. We have generated +pseudo random numbers using `numpy.random`, but the class target practice is an +example of truly random distributions. If we repeated the exercise, there is a +vanishingly small probability that we would hit the same points on the target, +and there are no deterministic models that could take into account all of the +factors that affected each hit on the board. + + + diff --git a/data/.ipynb_checkpoints/athletes-checkpoint.csv b/data/.ipynb_checkpoints/athletes-checkpoint.csv deleted file mode 100644 index a53ac54..0000000 --- a/data/.ipynb_checkpoints/athletes-checkpoint.csv +++ /dev/null @@ -1,11539 +0,0 @@ -id,name,nationality,sex,date_of_birth,height,weight,sport,gold,silver,bronze -736041664,A Jesus Garcia,ESP,male,1969-10-17,1.72,64.0,athletics,0,0,0 -532037425,A Lam Shin,KOR,female,1986-09-23,1.68,56.0,fencing,0,0,0 -435962603,Aaron Brown,CAN,male,1992-05-27,1.98,79.0,athletics,0,0,1 -521041435,Aaron Cook,MDA,male,1991-01-02,1.83,80.0,taekwondo,0,0,0 -33922579,Aaron Gate,NZL,male,1990-11-26,1.81,71.0,cycling,0,0,0 -173071782,Aaron Royle,AUS,male,1990-01-26,1.8,67.0,triathlon,0,0,0 -266237702,Aaron Russell,USA,male,1993-06-04,2.05,98.0,volleyball,0,0,1 -382571888,Aaron Younger,AUS,male,1991-09-25,1.93,100.0,aquatics,0,0,0 -87689776,Aauri Lorena Bokesa,ESP,female,1988-12-14,1.8,62.0,athletics,0,0,0 -997877719,Ababel Yeshaneh,ETH,female,1991-07-22,1.65,54.0,athletics,0,0,0 -343694681,Abadi Hadis,ETH,male,1997-11-06,1.7,63.0,athletics,0,0,0 -591319906,Abbas Abubakar Abbas,BRN,male,1996-05-17,1.75,66.0,athletics,0,0,0 -258556239,Abbas Qali,IOA,male,1992-10-11,,,aquatics,0,0,0 -376068084,Abbey D'Agostino,USA,female,1992-05-25,1.61,49.0,athletics,0,0,0 -162792594,Abbey Weitzeil,USA,female,1996-12-03,1.78,68.0,aquatics,1,1,0 -521036704,Abbie Brown,GBR,female,1996-04-10,1.76,71.0,rugby sevens,0,0,0 -149397772,Abbos Rakhmonov,UZB,male,1998-07-07,1.61,57.0,wrestling,0,0,0 -256673338,Abbubaker Mobara,RSA,male,1994-02-18,1.75,64.0,football,0,0,0 -337369662,Abby Erceg,NZL,female,1989-11-20,1.75,68.0,football,0,0,0 -334169879,Abd Elhalim Mohamed Abou,EGY,male,1989-06-03,2.1,88.0,volleyball,0,0,0 -215053268,Abdalaati Iguider,MAR,male,1987-03-25,1.73,57.0,athletics,0,0,0 -763711985,Abdalelah Haroun,QAT,male,1997-01-01,1.85,80.0,athletics,0,0,0 -924593601,Abdalla Targan,SUD,male,1996-09-28,1.77,65.0,athletics,0,0,0 -578032534,Abdel Aziz Mehelba,EGY,male,1988-12-10,1.76,80.0,shooting,0,0,0 -890222258,Abdelati El Guesse,MAR,male,1993-02-27,1.9,72.0,athletics,0,0,0 -803161695,Abdelaziz Merzougui,ESP,male,1991-08-30,1.75,67.0,athletics,0,0,0 -189931373,Abdelaziz Mohamed Ahmed,SUD,male,1994-10-12,1.81,72.0,aquatics,0,0,0 -677622742,Abdelghani Demmou,ALG,male,1989-01-29,1.85,75.0,football,0,0,0 -349871091,Abdelhafid Benchabla,ALG,male,1986-09-26,1.86,,boxing,0,0,0 -904808208,Abdelhakim Amokrane,ALG,male,1994-05-10,1.86,70.0,football,0,0,0 -23564778,Abdelkader Chadi,ALG,male,1986-12-12,1.78,,boxing,0,0,0 -133974151,Abdelkadir Salhi,ALG,male,1993-03-19,1.85,79.0,football,0,0,0 -189886442,Abdelkebir Ouaddar,MAR,male,1962-07-15,1.74,67.0,equestrian,0,0,0 -199516300,Abdelkhalek Elbanna,EGY,male,1988-07-04,1.93,95.0,rowing,0,0,0 -570342175,Abdellatif Mohamed Ahmed Mohamed,EGY,male,1995-12-08,1.76,120.0,wrestling,0,0,0 -517007712,Abdelmajid El Hissouf,MAR,male,1992-09-23,1.7,56.0,athletics,0,0,0 -512730813,Abdelmalik Lahoulou,ALG,male,1992-05-07,1.77,72.0,athletics,0,0,0 -934545704,Abdelrahman Salah Orabi Abdelgawwad,EGY,male,1987-10-09,1.85,,boxing,0,0,0 -514096508,Abdelraouf Benguit,ALG,male,1996-04-05,1.7,65.0,football,0,0,0 -388896171,Abderrahmane Benamadi,ALG,male,1985-07-03,1.83,90.0,judo,0,0,0 -285603057,Abderrahmane Mansouri,ALG,male,1995-01-13,1.72,66.0,cycling,0,0,0 -545134894,Abderrahmane Meziane,ALG,male,1994-03-07,1.68,62.0,football,0,0,0 -64529046,Abdi Hakin Ulad,DEN,male,1991-06-14,1.75,57.0,athletics,0,0,0 -917755766,Abdi Nageeye,NED,male,1989-03-02,1.65,54.0,athletics,0,0,0 -184980926,Abdi Waiss Mouhyadin,DJI,male,1996-07-03,1.6,60.0,athletics,0,0,0 -702606719,Abdoul Khadre Mbaye Niane,SEN,male,1988-08-20,1.9,90.0,aquatics,0,0,0 -259675127,Abdoulkarim Fawziya,CMR,female,1989-03-01,1.8,67.0,volleyball,0,0,0 -469953606,Abdoullah Bamoussa,ITA,male,1986-06-08,,,athletics,0,0,0 -962468808,Abdoulrazak Issoufou Alfaga,NIG,male,1994-12-26,2.07,98.0,taekwondo,0,1,0 -958967643,Abdul Khalili,SWE,male,1992-06-07,1.81,71.0,football,0,0,0 -325809293,Abdul Omar,GHA,male,1993-10-03,,,boxing,0,0,0 -152408417,Abdul Wahab Zahiri,AFG,male,1992-05-27,1.75,68.0,athletics,0,0,0 -262868423,Abdulaziz Alshatti,IOA,male,1990-10-30,,,fencing,0,0,0 -101781750,Abdulkadir Abdullayev,AZE,male,1988-07-17,1.88,,boxing,0,0,0 -5763609,Abdullah Abkar Mohammed,KSA,male,1997-01-01,1.72,73.0,athletics,0,0,0 -969824503,Abdullah Alrashidi,IOA,male,1963-08-21,1.83,84.0,shooting,0,0,1 -897549624,Abdullah Hel Baki,BAN,male,1989-08-01,,,shooting,0,0,0 -153457,Abdullahi Shehu,NGR,male,1993-03-12,1.7,,football,0,0,1 -803368584,Abdullo Tangriev,UZB,male,1981-03-28,1.9,132.0,judo,0,0,0 -937153550,Abdulrahman Al Faihan,IOA,male,1986-06-24,,,shooting,0,0,0 -746318262,Abdulrashid Sadulaev,RUS,male,1996-05-09,1.77,86.0,wrestling,1,0,0 -841446548,Abdulrazzaq Murad,QAT,male,1990-06-29,1.86,77.0,handball,0,0,0 -884912875,Abeku Gyekye Jackson,GHA,male,2000-04-12,,,aquatics,0,0,0 -146197583,Abhinav Bindra,IND,male,1982-09-28,1.75,70.0,shooting,0,0,0 -884912136,Abigail Johnston,USA,female,1989-11-16,1.66,61.0,aquatics,0,0,0 -221052317,Abigel Joo,HUN,female,1990-08-06,1.83,76.0,judo,0,0,0 -157637514,Ablaikhan Zhussupov,KAZ,male,1997-01-10,1.75,,boxing,0,0,0 -78813419,Abraham Kipchirchir Rotich,BRN,male,1993-09-26,1.83,65.0,athletics,0,0,0 -555457991,Abraham Naibei Cheroben,BRN,male,1992-10-11,1.76,60.0,athletics,0,0,0 -877850429,Abraham Niyonkuru,BDI,male,1989-12-26,1.62,52.0,athletics,0,0,0 -369092977,Abrar Osman,ERI,male,1994-01-01,1.68,58.0,athletics,0,0,0 -602585498,Abubaker Haydar Abdalla,QAT,male,1996-08-28,1.8,60.0,athletics,0,0,0 -140663745,Achraf Kharroubi,MAR,male,1990-09-25,1.6,,boxing,0,0,0 -507726155,Adam Batirov,BRN,male,1985-01-13,1.65,71.0,wrestling,0,0,0 -60265240,Adam Cwalina,POL,male,1985-01-26,1.87,81.0,badminton,0,0,0 -256805041,Adam Decker,HUN,male,1984-02-29,2.03,115.0,aquatics,0,0,0 -275689888,Adam Dixon,GBR,male,1986-09-11,1.69,70.0,hockey,0,0,0 -136977152,Adam Froese,CAN,male,1991-08-13,1.82,81.0,hockey,0,0,0 -487206822,Adam Gemili,GBR,male,1993-10-06,1.78,75.0,athletics,0,0,0 -236523132,Adam Imer,BRA,male,1989-08-18,1.82,88.0,hockey,0,0,0 -682367963,Adam Kszczot,POL,male,1989-09-02,1.78,68.0,athletics,0,0,0 -624366946,Adam Lundqvist,SWE,male,1994-03-20,1.74,70.0,football,0,0,0 -394945344,Adam Marosi,HUN,male,1984-07-26,1.81,75.0,modern pentathlon,0,0,0 -970243540,Adam Okruashvili,GEO,male,1989-01-01,1.89,130.0,judo,0,0,0 -765490473,Adam Pattantyus,HUN,male,1978-10-10,1.75,71.0,table tennis,0,0,0 -561951036,Adam Peaty,GBR,male,1994-12-28,1.93,88.0,aquatics,1,1,0 -785166259,Adam Sebastian Helcelet,CZE,male,1991-10-27,1.9,92.0,athletics,0,0,0 -846863992,Adam Telegdy,HUN,male,1995-11-01,1.94,77.0,aquatics,0,0,0 -390173289,Adam Vella,AUS,male,1971-06-12,1.78,92.0,shooting,0,0,0 -266751447,Adam Viktora,SEY,male,1996-09-06,1.88,94.0,aquatics,0,0,0 -983184686,Adam Wisniewski,POL,male,1980-10-24,1.93,93.0,handball,0,0,0 -184652432,Adam Yates,GBR,male,1992-08-07,1.72,58.0,cycling,0,0,0 -983411298,Adam van Koeverden,CAN,male,1982-01-29,1.82,85.0,canoe,0,0,0 -685532077,Adama Diatta,SEN,male,1988-08-14,1.65,57.0,wrestling,0,0,0 -222063859,Adama Jammeh,GAM,male,1993-06-10,,,athletics,0,0,0 -46940649,Adas Juskevicius,LTU,male,1989-01-03,1.94,90.0,basketball,0,0,0 -512592841,Adel Gholami,IRI,male,1986-02-09,1.95,88.0,volleyball,0,0,0 -302277635,Adel Mechaal,ESP,male,1990-12-05,1.82,71.0,athletics,0,0,0 -216864827,Adel Mojallalimoghadam,IRI,male,1993-03-21,1.85,82.0,canoe,0,0,0 -153013732,Adela Bruns,CZE,female,1987-02-05,1.71,60.0,shooting,0,0,0 -123916473,Adela Hanzlickova,CZE,female,1994-05-04,1.71,67.0,wrestling,0,0,0 -325622113,Adelina Bogus,ROU,female,1988-09-04,1.86,75.0,rowing,0,0,1 -518639420,Adelina Pastor,ROU,female,1993-05-05,1.68,56.0,athletics,0,0,0 -457663778,Adelinde Cornelissen,NED,female,1979-07-07,1.68,55.0,equestrian,0,0,0 -259002430,Adeline Maria Gray,USA,female,1991-01-15,1.73,77.0,wrestling,0,0,0 -303297765,Adem Boudjemline,ALG,male,1994-02-28,1.8,85.0,wrestling,0,0,0 -993710181,Adenizia da Silva,BRA,female,1986-12-18,1.87,65.0,volleyball,0,0,0 -878847288,Adham Ahmed Saleh Kahk,EGY,male,1993-06-27,1.6,66.0,wrestling,0,0,0 -75289002,Adilbek Niyazymbetov,KAZ,male,1989-05-19,1.8,,boxing,0,1,0 -930618704,Adilson da Silva,BRA,male,1972-01-24,1.7,79.0,golf,0,0,0 -890593128,Aditi Ashok,IND,female,1998-03-29,1.73,57.0,golf,0,0,0 -456381770,Adlan Abdurashidov,RUS,male,1990-07-31,1.72,,boxing,0,0,0 -256936407,Adnan Maric,SWE,male,1997-02-17,1.83,78.0,football,0,0,0 -637015297,Adrian Andres Puentes Perez,CUB,male,1988-07-03,1.71,76.0,archery,0,0,0 -787208883,Adrian Baches,BRA,male,1990-04-07,1.84,83.0,aquatics,0,0,0 -941631433,Adrian Blocki,POL,male,1990-04-11,1.74,62.0,athletics,0,0,0 -839462979,Adrian Chacon,CUB,male,1988-12-10,1.87,90.0,athletics,0,0,0 -284555275,Adrian Crisan,ROU,male,1980-05-07,1.86,85.0,table tennis,0,0,0 -366608701,Adrian Dziolko,POL,male,1990-02-22,1.89,85.0,badminton,0,0,0 -679510102,Adrian Eduardo Goide Arredondo,CUB,male,1998-06-26,1.91,80.0,volleyball,0,0,0 -242818896,Adrian Edward Zielinski,POL,male,1989-03-28,1.7,94.0,weightlifting,0,0,0 -400838338,Adrian Gavira Collado,ESP,male,1987-09-17,1.93,89.0,volleyball,0,0,0 -557196811,Adrian Gomboc,SLO,male,1995-01-20,1.7,69.0,judo,0,0,0 -653186701,Adrian Griffith,BAH,male,1984-11-11,1.78,75.0,athletics,0,0,0 -217850967,Adrian Ignacio Carambula Raurich,ITA,male,1988-03-16,1.82,83.0,volleyball,0,0,0 -370799805,Adrian Juhasz,HUN,male,1989-11-18,1.88,89.0,rowing,0,0,0 -714030791,Adrian Oquendo,CUB,male,1990-02-23,1.89,87.0,rowing,0,0,0 -915726586,Adrian Portela,ARG,male,1986-03-08,1.85,95.0,handball,0,0,0 -80367651,Adriana Aparecida da Silva,BRA,female,1981-07-22,1.66,52.0,athletics,0,0,0 -593328448,Adriana Araujo,BRA,female,1981-11-04,1.67,,boxing,0,0,0 -770039735,Adriana Diaz,PUR,female,2000-10-31,1.6,50.0,table tennis,0,0,0 -228337858,Adriana Martin,ESP,female,1996-04-12,1.62,65.0,archery,0,0,0 -529241363,Adriana Moises,BRA,female,1978-12-06,1.7,65.0,basketball,0,0,0 -439382128,Adrien Bart,FRA,male,1991-09-04,1.85,84.0,canoe,0,0,0 -326016199,Adrien Dipanda,FRA,male,1988-05-03,2.02,105.0,handball,0,1,0 -664737236,Adrien Niyonshuti,RWA,male,1987-01-02,1.65,68.0,cycling,0,0,0 -447910544,Adrienne Martelli,USA,female,1987-12-03,1.86,77.0,rowing,0,0,0 -835610998,Adzo Rebecca Kpossi,TOG,female,1999-01-25,1.58,53.0,aquatics,0,0,0 -26797739,Ae-Ri Noort,NED,female,1983-01-10,1.6,49.0,rowing,0,0,0 -577601340,Afa Ismail,MDV,female,1993-11-01,,,athletics,0,0,0 -16830155,Afaf Elhodhod,EGY,female,1996-10-01,1.63,75.0,shooting,0,0,0 -508610852,Afef Ben Ismail,TUN,female,1994-03-17,1.73,60.0,canoe,0,0,0 -477738986,Africa Zamorano Sanz,ESP,female,1998-01-11,1.7,58.0,aquatics,0,0,0 -998446972,Afrodite Zegers,NED,female,1991-12-02,1.61,58.0,sailing,0,0,0 -42409524,Agata Forkasiewicz,POL,female,1994-01-13,1.68,54.0,athletics,0,0,0 -28097741,Agatha Bednarczuk,BRA,female,1983-06-22,1.82,70.0,volleyball,0,1,0 -23462736,Ageze Guadie,ISR,male,1989-09-11,1.75,56.0,athletics,0,0,0 -971796358,Aglaia Pezzato,ITA,female,1994-04-22,1.75,60.0,aquatics,0,0,0 -810258362,Agnes Osazuwa,NGR,female,1989-11-26,1.62,65.0,athletics,0,0,0 -107504792,Agnes Raharolahy,FRA,female,1992-11-07,1.67,58.0,athletics,0,0,0 -320335499,Agnese Pastare,LAT,female,1988-10-27,1.79,68.0,athletics,0,0,0 -220410298,Agnete Kirk Thinggaard,DEN,female,1983-05-18,1.72,62.0,equestrian,0,0,0 -726686017,Agnieszka Dygacz,POL,female,1985-07-18,1.6,47.0,athletics,0,0,0 -517578131,Agnieszka Jadwiga Wieszczek-Kordus,POL,female,1983-03-22,1.75,69.0,wrestling,0,0,0 -120505360,Agnieszka Jerzyk,POL,female,1988-01-15,1.7,59.0,triathlon,0,0,0 -665715516,Agnieszka Kobus,POL,female,1990-08-28,1.77,68.0,rowing,0,0,1 -935702937,Agnieszka Nagay,POL,female,1981-02-20,1.69,61.0,shooting,0,0,0 -220520929,Agnieszka Radwanska,POL,female,1989-03-06,1.73,59.0,tennis,0,0,0 -527420548,Agnieszka Skrzypulec,POL,female,1989-06-03,1.66,53.0,sailing,0,0,0 -983479171,Agnieszka Szwarnog,POL,female,1986-12-28,1.65,51.0,athletics,0,0,0 -638298176,Agustin Mazzilli,ARG,male,1989-06-20,1.73,77.0,hockey,1,0,0 -833236523,Agustin Vidal,ARG,male,1987-07-08,1.94,100.0,handball,0,0,0 -794585269,Agustina Albertarrio,ARG,female,1993-01-01,1.65,55.0,hockey,0,0,0 -441542780,Agustina Habif,ARG,female,1992-03-08,1.65,55.0,hockey,0,0,0 -213448220,Ahmad Abughaush,JOR,male,1996-02-01,1.78,68.0,taekwondo,1,0,0 -443237540,Ahmad Alafasi,IOA,male,1983-01-10,,,shooting,0,0,0 -942902378,Ahmad Amsyar Azman,MAS,male,1992-08-28,1.62,62.0,aquatics,0,0,0 -684631479,Ahmad Hazer,LIB,male,1989-09-04,1.88,80.0,athletics,0,0,0 -67793782,Ahmed Abdelaal,EGY,male,1989-06-08,1.88,89.0,volleyball,0,0,0 -935849614,Ahmed Abdelhay,EGY,male,1984-08-19,1.97,87.0,volleyball,0,0,0 -786273274,Ahmed Abelrahman,EGY,male,1996-05-26,1.65,60.0,judo,0,0,0 -672789779,Ahmed Afifi,EGY,male,1988-03-30,1.94,92.0,volleyball,0,0,0 -873200853,Ahmed Akram,EGY,male,1996-10-20,1.88,80.0,aquatics,0,0,0 -862822782,Ahmed Ali,SUD,male,1993-11-15,1.73,75.0,athletics,0,0,0 -9418987,Ahmed Attellesey,LBA,male,1995-07-30,,,aquatics,0,0,0 -180751684,Ahmed Bader Magour,QAT,male,1996-03-03,1.9,90.0,athletics,0,0,0 -364294388,Ahmed Darwish,EGY,male,1981-07-02,1.72,80.0,shooting,0,0,0 -23970897,Ahmed El Kotb,EGY,male,1991-07-23,1.97,80.0,volleyball,0,0,0 -837684987,Ahmed El-Nemr,EGY,male,1978-11-21,1.83,84.0,archery,0,0,0 -635571670,Ahmed Elahmar,EGY,male,1984-01-27,1.81,79.0,handball,0,0,0 -64299896,Ahmed Gebrel,PLE,male,1991-01-22,,,aquatics,0,0,0 -215275770,Ahmed Goumar,NIG,male,1988-02-22,1.8,73.0,judo,0,0,0 -663592491,Ahmed Ibrahim,IRQ,male,1992-02-25,1.84,80.0,football,0,0,0 -916701520,Ahmed Kamar,EGY,male,1986-09-19,1.75,60.0,shooting,0,0,0 -114527133,Ahmed Mathlouthi,TUN,male,1989-12-18,1.9,90.0,aquatics,0,0,0 -205324342,Ahmed Mohamed,EGY,male,1996-04-08,1.7,73.0,shooting,0,0,0 -162169475,Ahmed Mohamed,EGY,male,1988-04-27,1.85,144.0,weightlifting,0,0,0 -739968078,Ahmed Mohamed Ibrahim Saad,EGY,male,1989-02-25,1.65,85.0,wrestling,0,0,0 -575397765,Ahmed Ragab,EGY,male,1991-09-29,1.74,81.0,sailing,0,0,0 -101574216,Ahmed Saad,EGY,male,1986-11-01,1.6,62.0,weightlifting,0,0,0 -105465611,Ahmed Shaban,EGY,male,1979-03-08,1.9,95.0,shooting,0,0,0 -585852107,Ahmet Li,TUR,male,1991-01-12,1.73,67.0,table tennis,0,0,0 -696999235,Ahmet Orken,TUR,male,1993-03-12,1.77,69.0,cycling,0,0,0 -47988332,Ahreum Na,KOR,female,1990-03-24,1.63,55.0,cycling,0,0,0 -138385356,Ahymara Espinoza,VEN,female,1985-05-28,1.8,99.0,athletics,0,0,0 -730862558,Ai Fukuhara,JPN,female,1988-11-01,1.56,48.0,table tennis,0,0,1 -488478701,Ai Kondo Yoshida,JPN,female,1980-11-05,1.61,58.0,sailing,0,0,0 -975475720,Ai Ueda,JPN,female,1983-10-26,1.55,44.0,triathlon,0,0,0 -544308054,Ai Wen Yu,TPE,female,1995-12-27,1.57,52.0,shooting,0,0,0 -696719880,Aiaal Lazarev,KGZ,male,1986-03-19,1.95,125.0,wrestling,0,0,0 -634178292,Aichen Wang,CHN,male,1985-03-28,1.85,75.0,sailing,0,0,0 -537808926,Aida Fall,SEN,female,1986-11-10,1.93,95.0,basketball,0,0,0 -155951731,Aida Mohamed,HUN,female,1976-03-12,1.62,58.0,fencing,0,0,0 -531077009,Aida Roman,MEX,female,1988-05-21,1.69,64.0,archery,0,0,0 -750356217,Aida Shanaeva,RUS,female,1986-04-23,1.73,63.0,fencing,0,0,0 -248085477,Aidan Roach,AUS,male,1990-09-07,1.87,88.0,aquatics,0,0,0 -743883365,Aika Hakoyama,JPN,female,1991-07-27,1.76,62.0,aquatics,0,0,1 -110469224,Aikaterini Nikolaidou,GRE,female,1992-10-22,1.8,70.0,rowing,0,0,0 -823094336,Aikaterini-Maria Kontochristopoulou,GRE,female,1997-06-10,1.68,58.0,fencing,0,0,0 -574808106,Aiko Hayashi,JPN,female,1993-11-17,1.66,56.0,aquatics,0,0,1 -676958658,Aiko Sugihara,JPN,female,1999-09-19,1.46,35.0,gymnastics,0,0,0 -420613340,Aileen Reid,IRL,female,1982-06-15,1.69,53.0,triathlon,0,0,0 -172676108,Ailen Valente,ARG,female,1996-03-26,1.67,58.0,gymnastics,0,0,0 -971329341,Ailly Luciano,NED,female,1991-03-25,1.71,69.0,handball,0,0,0 -356290857,Ailun Guo,CHN,male,1993-11-14,1.92,85.0,basketball,0,0,0 -273034565,Aimee Fisher,NZL,female,1995-01-24,1.83,99.0,canoe,0,0,0 -266091485,Aimee Willmott,GBR,female,1993-02-26,1.71,66.0,aquatics,0,0,0 -912490592,Aina Cid I Centelles,ESP,female,1994-09-01,1.7,60.0,rowing,0,0,0 -674464910,Ainhoa Hernandez,ESP,female,1994-04-27,1.8,88.0,handball,0,0,0 -14183642,Ainhoa Murua,ESP,female,1978-07-18,1.6,48.0,triathlon,0,0,0 -871394696,Ainur Yesbergenova,KAZ,female,1998-02-11,1.64,49.0,taekwondo,0,0,0 -635098552,Airi Hatakeyama,JPN,female,1994-08-16,1.71,46.0,gymnastics,0,0,0 -965051843,Airine Palsyte,LTU,female,1992-07-13,1.87,63.0,athletics,0,0,0 -840071617,Aisen Chen,CHN,male,1995-10-22,1.68,60.0,aquatics,2,0,0 -704825548,Aisha Praught,JAM,female,1989-12-14,1.62,50.0,athletics,0,0,0 -704391947,Aislin Jones,AUS,female,2000-02-08,1.57,51.0,shooting,0,0,0 -273177958,Aisuluu Tynybekova,KGZ,female,1993-05-04,1.7,58.0,wrestling,0,0,0 -191963338,Aitor Martinez Rodriguez,ESP,male,1993-08-22,1.83,78.0,aquatics,0,0,0 -678408880,Aivi Luik,AUS,female,1985-03-18,1.63,58.0,football,0,0,0 -234338084,Ajee Wilson,USA,female,1994-05-08,1.73,61.0,athletics,0,0,0 -374861025,Ajla del Ponte,SUI,female,1996-07-15,1.68,56.0,athletics,0,0,0 -504635619,Ajna Kesely,HUN,female,2001-09-10,1.65,54.0,aquatics,0,0,0 -680600926,Akalani Baravilala,USA,female,1991-07-12,1.68,74.0,rugby sevens,0,0,0 -213555250,Akane Kuroki,JPN,female,1978-08-13,1.65,50.0,equestrian,0,0,0 -58865414,Akane Shibata,JPN,female,1988-04-30,1.53,50.0,hockey,0,0,0 -677730191,Akane Yamaguchi,JPN,female,1997-06-06,1.56,55.0,badminton,0,0,0 -265984930,Akani Simbine,RSA,male,1993-09-21,1.76,74.0,athletics,0,0,0 -285797294,Akashdeep Singh,IND,male,1994-12-02,1.78,70.0,hockey,0,0,0 -769580282,Akeem Haynes,CAN,male,1992-03-11,1.68,71.0,athletics,0,0,1 -194243947,Akela Jones,BAR,female,1995-04-22,1.86,77.0,athletics,0,0,0 -58705332,Aki Mitsuhashi,JPN,female,1989-09-12,1.66,59.0,hockey,0,0,0 -921789441,Aki Yazawa,JPN,female,1991-11-05,1.56,50.0,canoe,0,0,0 -327133724,Akihiko Nakamura,JPN,male,1990-10-23,1.8,73.0,athletics,0,0,0 -346354435,Akiko Sato,JPN,female,1984-02-09,1.62,58.0,shooting,0,0,0 -850163240,Akira Ioane,NZL,male,1995-06-16,1.94,113.0,rugby sevens,0,0,0 -816408353,Akira Yanase,JPN,male,1988-08-11,1.91,95.0,aquatics,0,0,0 -959689266,Akossiwa Claire Ayivon,TOG,female,1996-08-11,,,rowing,0,0,0 -152032519,Akua Obeng-Akrofi,GHA,female,1996-07-10,,,athletics,0,0,0 -593452734,Alaa Ali,IRQ,male,1996-06-03,1.78,68.0,football,0,0,0 -747058984,Alaaeldin Abouelkassem,EGY,male,1990-11-25,1.88,87.0,fencing,0,0,0 -249203070,Alade Aminu,NGR,male,1987-09-14,2.1,102.0,basketball,0,0,0 -158571661,Alain Sign,GBR,male,1986-02-03,1.81,84.0,sailing,0,0,0 -471888446,Alan Campbell,GBR,male,1983-05-09,1.91,96.0,rowing,0,0,0 -275659106,Alan Hatherly,RSA,male,1996-03-15,1.78,62.0,cycling,0,0,0 -488926827,Alan Sinclair,GBR,male,1985-10-16,1.92,96.0,rowing,0,0,0 -386179468,Alan Sothern,IRL,male,1987-07-28,1.78,76.0,hockey,0,0,0 -68100583,Alana Barber,NZL,female,1987-07-08,1.63,52.0,athletics,0,0,0 -662496867,Alana Boyd,AUS,female,1984-05-10,1.71,59.0,athletics,0,0,0 -812220330,Alanna Kennedy,AUS,female,1995-01-21,1.76,63.0,football,0,0,0 -923852920,Alastair Brogdon,GBR,male,1987-11-10,1.83,76.0,hockey,0,0,0 -533114803,Alba Torrens,ESP,female,1989-08-30,1.91,68.0,basketball,0,1,0 -551413911,Albachir Mouctar,NIG,male,1995-05-01,1.78,76.0,aquatics,0,0,0 -92096398,Albane Valenzuela,SUI,female,1997-12-17,1.74,58.0,golf,0,0,0 -930879907,Albert Espanol Lifante,ESP,male,1985-10-29,1.89,86.0,aquatics,0,0,0 -596935178,Albert Gaun,RUS,male,1992-06-21,1.85,80.0,taekwondo,0,0,0 -70764024,Albert Hermoso Farras,ESP,male,1978-08-28,1.68,65.0,equestrian,0,0,0 -172435291,Albert Kibichii Rop,BRN,male,1992-07-17,1.77,63.0,athletics,0,0,0 -389597142,Albert Puig Garrich,ESP,male,1994-04-01,1.84,78.0,aquatics,0,0,0 -184326688,Albert Ramon Ramirez,VEN,male,1992-05-07,1.82,,boxing,0,0,0 -100190722,Albert Ramos-Vinolas,ESP,male,1988-01-17,1.88,80.0,tennis,0,0,0 -366742302,Albert Saritov,ROU,male,1985-07-08,1.88,100.0,wrestling,0,0,1 -670559048,Albert Selimov,AZE,male,1986-04-05,1.71,,boxing,0,0,0 -124573287,Albert Subirats,VEN,male,1986-09-25,1.9,85.0,aquatics,0,0,0 -635016740,Alberth Bravo,VEN,male,1987-08-29,1.99,88.0,athletics,0,0,0 -502881474,Alberth Elis,HON,male,1996-02-12,1.84,77.0,football,0,0,0 -583503806,Albertina Cruz Kassoma,ANG,female,1996-06-12,1.92,105.0,handball,0,0,0 -804217525,Alberto Alvarez,MEX,male,1991-03-08,1.91,78.0,athletics,0,0,0 -331799449,Alberto Ezequiel Melian,ARG,male,1990-01-02,1.7,,boxing,0,0,0 -532248667,Alberto Fernandez,ESP,male,1983-06-16,1.8,115.0,shooting,0,0,0 -566773050,Alberto Ignacio Palmetta,ARG,male,1990-04-05,1.75,,boxing,0,0,0 -220269839,Alberto Munarriz Egana,ESP,male,1994-05-19,1.98,105.0,aquatics,0,0,0 -861268031,Alberto Ricchetti,ITA,male,1985-05-26,1.86,88.0,canoe,0,0,0 -663206046,Albin Lagergren,SWE,male,1992-09-11,1.86,94.0,handball,0,0,0 -966601149,Albina Shakirova,RUS,female,1987-03-30,1.65,50.0,shooting,0,0,0 -74286490,Aldemir da Silva Junior,BRA,male,1992-06-08,1.93,80.0,athletics,0,0,0 -46123715,Aldo Montano,ITA,male,1978-11-18,1.84,82.0,fencing,0,0,0 -343089125,Alec Potts,AUS,male,1996-02-09,1.85,77.0,archery,0,0,1 -210525666,Aleixo-Platini Menga,GER,male,1987-09-29,1.82,82.0,athletics,0,0,0 -969294495,Alejandra Betancur,COL,female,1987-06-13,1.6,82.0,rugby sevens,0,0,0 -388913856,Alejandra Garza Garza,MEX,female,1991-08-01,1.65,75.0,weightlifting,0,0,0 -883610308,Alejandra Jhonay Benitez Romero,VEN,female,1980-07-07,1.69,62.0,fencing,0,0,0 -694204413,Alejandra Llaneza,MEX,female,1988-05-31,1.58,48.0,golf,0,0,0 -400375379,Alejandra Orozco,MEX,female,1997-04-19,1.57,56.0,aquatics,0,0,0 -151538357,Alejandra Ortega,MEX,female,1994-07-08,1.65,57.0,athletics,0,0,0 -281414786,Alejandra Quereda,ESP,female,1992-07-24,1.75,54.0,gymnastics,0,1,0 -471263119,Alejandra Teran,MEX,female,1991-01-20,1.76,73.0,fencing,0,0,0 -929131268,Alejandra Valencia,MEX,female,1994-10-17,1.75,74.0,archery,0,0,0 -419155357,Alejandra Zavala Vazquez,MEX,female,1984-06-16,1.65,85.0,shooting,0,0,0 -440339638,Alejandro Enrique Valdes Tobier,CUB,male,1988-11-18,1.65,65.0,wrestling,0,0,0 -691394107,Alejandro Foglia Costa,URU,male,1984-01-30,1.9,96.0,sailing,0,0,0 -813391088,Alejandro Valverde Belmonte,ESP,male,1980-04-25,1.77,63.0,cycling,0,0,0 -288835407,Aleksandar Aleksandrov,AZE,male,1990-04-09,1.89,93.0,rowing,0,0,0 -299839075,Aleksandar IVOVIC,MNE,male,1986-02-24,1.97,107.0,aquatics,0,0,0 -371740701,Aleksandar Karakasevic,SRB,male,1975-12-09,1.78,85.0,table tennis,0,0,0 -150583899,Aleksandar Kukolj,SRB,male,1991-09-09,1.94,94.0,judo,0,0,0 -156829148,Aleksandar Nikolov,BUL,male,1992-06-18,1.85,75.0,aquatics,0,0,0 -39610779,Aleksandar RADOVIC,MNE,male,1987-02-24,1.91,98.0,aquatics,0,0,0 -150706476,Aleksandr Krasnykh,RUS,male,1995-06-19,1.88,80.0,aquatics,0,0,0 -461398245,Aleksandr Lipatov,RUS,male,1981-06-10,1.84,77.0,canoe,0,0,0 -825626228,Aleksandr Markov,RUS,male,1985-05-26,1.79,70.0,equestrian,0,0,0 -26501082,Aleksandr Popkov,RUS,male,1994-12-27,1.85,80.0,aquatics,0,0,0 -442737224,Aleksandr Sadovnikov,RUS,male,1996-09-21,1.93,85.0,aquatics,0,0,0 -928101165,Aleksandra Cotti,ITA,female,1988-12-13,1.67,65.0,aquatics,0,1,0 -15347644,Aleksandra Crvendakic,SRB,female,1996-03-17,1.87,76.0,basketball,0,0,1 -398269007,Aleksandra Jarmolinska,POL,female,1990-09-06,1.6,67.0,shooting,0,0,0 -344407164,Aleksandra Krunic,SRB,female,1993-03-15,1.63,55.0,tennis,0,0,0 -598990857,Aleksandra Patskevich,RUS,female,1988-11-04,1.69,49.0,aquatics,1,0,0 -832551080,Aleksandra Romanova,KAZ,female,1990-12-26,1.68,58.0,athletics,0,0,0 -778823226,Aleksandra Socha,POL,female,1982-03-30,1.74,66.0,fencing,0,0,0 -146965989,Aleksandra Urbanczyk,POL,female,1987-11-13,1.72,64.0,aquatics,0,0,0 -265023366,Aleksandrs Samoilovs,LAT,male,1985-04-06,1.96,98.0,volleyball,0,0,0 -282139882,Aleksei Brianskii,RUS,male,1997-09-14,1.92,82.0,aquatics,0,0,0 -646633611,Aleksei Kurbatov,RUS,male,1994-05-09,,,cycling,0,0,0 -200955001,Aleksejs Rumjancevs,LAT,male,1986-02-13,1.85,90.0,canoe,0,0,0 -285964258,Aleksejs Saramotins,LAT,male,1982-04-08,1.85,75.0,cycling,0,0,0 -169040459,Aleksey Mochalov,UZB,male,1990-02-13,1.86,90.0,canoe,0,0,0 -191984367,Aleksi Ojala,FIN,male,1992-12-09,1.8,62.0,athletics,0,0,0 -462274321,Alemu Bekele,BRN,male,1990-03-23,1.62,59.0,athletics,0,0,0 -571628094,Alen Zasieiev,UKR,male,1988-10-10,1.85,125.0,wrestling,0,0,0 -871020123,Alena Abramchuk,BLR,female,1988-02-14,1.82,95.0,athletics,0,0,0 -603507285,Alena Amialiusik,BLR,female,1989-02-06,1.69,52.0,cycling,0,0,0 -390806588,Alena Furman,BLR,female,1991-05-08,1.79,65.0,rowing,0,0,0 -84230211,Alena Sharp,CAN,female,1981-03-07,1.68,69.0,golf,0,0,0 -30712954,Alena Sobaleva,BLR,female,1993-05-11,1.78,87.0,athletics,0,0,0 -906750380,Alesha Widdall,USA,female,1990-01-03,1.73,65.0,hockey,0,0,0 -779596907,Alessandra Aguilar,ESP,female,1978-07-01,1.65,50.0,athletics,0,0,0 -236415837,Alessandra Patelli,ITA,female,1991-11-17,1.8,70.0,rowing,0,0,0 -820764186,Alessandra Perilli,SMR,female,1988-04-01,1.69,73.0,shooting,0,0,0 -630246233,Alessandro De Marchi,ITA,male,1986-05-19,1.81,66.0,cycling,0,0,0 -24174970,Alessandro Fabian,ITA,male,1988-01-07,1.86,77.0,triathlon,0,0,0 -213338722,Alessandro Nora,ITA,male,1987-05-24,1.91,85.0,aquatics,0,0,1 -346410285,Alessandro Velotto,ITA,male,1995-02-12,1.86,85.0,aquatics,0,0,1 -5076328,Alessia Gennari,ITA,female,1991-11-03,1.84,68.0,volleyball,0,0,0 -559742871,Alessia Maurelli,ITA,female,1996-08-22,1.68,48.0,gymnastics,0,0,0 -488353513,Alessia Orro,ITA,female,1998-07-18,1.8,74.0,volleyball,0,0,0 -767623428,Alessia Polieri,ITA,female,1994-10-21,1.63,55.0,aquatics,0,0,0 -389711690,Alessia Trost,ITA,female,1993-03-08,1.88,70.0,athletics,0,0,0 -636505415,Aletta Jorritsma,NED,female,1989-05-17,1.86,76.0,rowing,0,0,0 -746309995,Alev Kelter,USA,female,1991-03-21,1.68,74.0,rugby sevens,0,0,0 -178787882,Alex Abrines,ESP,male,1993-08-01,1.98,93.0,basketball,0,0,1 -527236860,Alex Amankwah,GHA,male,1992-03-02,,,athletics,0,0,0 -24122998,Alex Beddoes,COK,male,1995-07-09,1.81,74.0,athletics,0,0,0 -334218519,Alex Bowen,USA,male,1993-09-04,1.96,102.0,aquatics,0,0,0 -962040149,Alex Casasayas,ESP,male,1988-02-17,1.83,78.0,hockey,0,0,0 -794799982,Alex Cejka,GER,male,1970-12-02,1.68,65.0,golf,0,0,0 -566695148,Alex Garcia,BRA,male,1980-03-04,1.92,102.0,basketball,0,0,0 -204746498,Alex Garcia Mendoza,CUB,male,1993-06-02,1.86,110.0,judo,0,0,0 -544745828,Alex Gregory,GBR,male,1984-03-11,1.98,97.0,rowing,1,0,0 -851889356,Alex Hua Tian,CHN,male,1989-10-25,1.9,70.0,equestrian,0,0,0 -212901658,Alex Kennedy,NZL,male,1992-10-13,1.96,96.0,rowing,0,0,0 -967635529,Alex Maloney,NZL,female,1992-03-19,1.58,56.0,sailing,0,1,0 -723568012,Alex Morgan,USA,female,1989-07-02,1.7,59.0,football,0,0,0 -531765497,Alex Obert,USA,male,1991-12-18,1.96,105.0,aquatics,0,0,0 -557501936,Alex Ranghieri,ITA,male,1987-06-18,2.0,94.0,volleyball,0,0,0 -240862321,Alex Roelse,USA,male,1995-01-10,2.04,115.0,aquatics,0,0,0 -107240268,Alex Rose,SAM,male,1991-11-17,,,athletics,0,0,0 -58596600,Alex Sobers,BAR,male,1998-11-13,1.88,66.0,aquatics,0,0,0 -703205900,Alex William Pombo Silva,BRA,male,1988-07-21,1.74,73.0,judo,0,0,0 -636907352,Alex Wright,IRL,male,1990-12-19,1.75,62.0,athletics,0,0,0 -893073673,Alex di Giorgio,ITA,male,1990-07-28,1.85,75.0,aquatics,0,0,0 -644656107,Alexa Moreno,MEX,female,1994-08-08,1.47,45.0,gymnastics,0,0,0 -898510239,Alexander Belonogoff,AUS,male,1990-04-17,1.87,90.0,rowing,0,1,0 -583622968,Alexander Brouwer,NED,male,1989-11-03,1.98,90.0,volleyball,0,0,1 -771200886,Alexander Bryukhankov,RUS,male,1987-04-12,1.84,79.0,triathlon,0,0,0 -525300567,Alexander Bury,BLR,male,1987-09-14,1.84,94.0,tennis,0,0,0 -750329482,Alexander Choupenitch,CZE,male,1994-05-02,1.96,89.0,fencing,0,0,0 -737791847,Alexander Edmondson,AUS,male,1993-12-22,1.84,76.0,cycling,0,1,0 -3104691,Alexander Fransson,SWE,male,1994-04-02,1.8,75.0,football,0,0,0 -100528515,Alexander Gehbauer,AUT,male,1990-04-24,1.85,70.0,cycling,0,0,0 -515896035,Alexander Hartmann,AUS,male,1993-03-07,1.98,91.0,athletics,0,0,0 -986385043,Alexander Hendrickx,BEL,male,1993-08-06,1.85,82.0,hockey,0,0,0 -711926626,Alexander Hill,AUS,male,1993-03-11,1.93,91.0,rowing,0,1,0 -45190859,Alexander Horst,AUT,male,1982-12-20,1.86,88.0,volleyball,0,0,0 -724710281,Alexander Huber,AUT,male,1985-07-25,1.79,64.0,volleyball,0,0,0 -604407494,Alexander John,GER,male,1986-05-03,1.85,84.0,athletics,0,0,0 -300967214,Alexander Karwoski,USA,male,1990-09-16,1.94,90.0,rowing,0,0,0 -41863727,Alexander Kosenkow,GER,male,1977-03-14,1.78,74.0,athletics,0,0,0 -5256036,Alexander Leksell,SWE,male,1997-02-14,1.76,78.0,football,0,0,0 -37893138,Alexander Lerionka Sampao,KEN,male,1996-12-31,,67.0,athletics,0,0,0 -911821683,Alexander Lesun,RUS,male,1988-07-01,1.85,74.0,modern pentathlon,1,0,0 -703140166,Alexander Lloyd,AUS,male,1990-12-17,1.89,89.0,rowing,0,0,0 -994257957,Alexander Massialas,USA,male,1994-04-20,1.88,81.0,fencing,0,1,1 -517168133,Alexander Milosevic,SWE,male,1992-01-30,1.92,77.0,football,0,0,0 -589365060,Alexander Molerio Quintana,CUB,male,1991-09-19,1.69,75.0,shooting,0,0,0 -536913332,Alexander Naddour,USA,male,1991-03-04,1.71,70.0,gymnastics,0,0,1 -110525640,Alexander Peya,AUT,male,1980-06-27,1.82,80.0,tennis,0,0,0 -658069337,Alexander Russo,BRA,male,1994-07-26,1.73,61.0,athletics,0,0,0 -648973939,Alexander Schmirl,AUT,male,1989-09-19,1.76,95.0,shooting,0,0,0 -961318209,Alexander Shatilov,ISR,male,1987-03-22,1.83,77.0,gymnastics,0,0,0 -909129710,Alexander Shibaev,RUS,male,1990-09-09,1.92,80.0,table tennis,0,0,0 -452039868,Alexander Sigurbjornsson,ESP,male,1988-12-13,1.8,80.0,rowing,0,0,0 -484197906,Alexander Sukhorukov,RUS,male,1988-02-22,1.96,93.0,aquatics,0,0,0 -120799596,Alexander Volkov,RUS,male,1985-02-14,2.1,90.0,volleyball,0,0,0 -745034260,Alexandr Spac,MDA,male,1989-11-21,1.64,77.0,weightlifting,0,0,0 -188141447,Alexandr Yemelyanov,KAZ,male,1984-01-01,1.84,97.0,canoe,0,0,0 -928138606,Alexandr Zaichikov,KAZ,male,1992-08-17,1.8,105.0,weightlifting,0,0,1 -878621949,Alexandra Burghardt,GER,female,1994-04-28,1.81,70.0,athletics,0,0,0 -566681185,Alexandra Danson,GBR,female,1985-05-21,1.67,56.0,hockey,1,0,0 -612116227,Alexandra Hagan,AUS,female,1991-03-21,1.82,75.0,rowing,0,0,0 -383231190,Alexandra Keresztesi,ARG,female,1983-04-26,1.83,72.0,canoe,0,0,0 -191014767,Alexandra Lacrabere,FRA,female,1987-04-27,1.77,73.0,handball,0,1,0 -486083635,Alexandra Longova,SVK,female,1994-02-07,1.73,51.0,archery,0,0,0 -30769207,Alexandra Martinez,BRA,female,1981-09-16,1.77,68.0,handball,0,0,0 -921114489,Alexandra Mirca,MDA,female,1993-10-11,1.68,70.0,archery,0,0,0 -338753895,Alexandra Nemich,KAZ,female,1995-01-03,1.68,46.0,aquatics,0,0,0 -599952871,Alexandra Oquendo,PUR,female,1984-02-03,1.89,75.0,volleyball,0,0,0 -125810149,Alexandra Popp,GER,female,1991-04-06,1.74,65.0,football,1,0,0 -891965491,Alexandra Privalova,BLR,female,1987-10-29,1.78,66.0,table tennis,0,0,0 -71010173,Alexandra Raisman,USA,female,1994-05-25,1.58,52.0,gymnastics,1,2,0 -256577556,Alexandra Razarenova,RUS,female,1990-07-17,1.68,56.0,triathlon,0,0,0 -692519892,Alexandra Tavernier,FRA,female,1993-12-13,1.7,82.0,athletics,0,0,0 -443690040,Alexandra Touretski,SUI,female,1994-09-20,1.7,58.0,aquatics,0,0,0 -475551107,Alexandra Wenk,GER,female,1995-02-07,1.8,63.0,aquatics,0,0,0 -872947130,Alexandra Wester,GER,female,1994-03-21,1.8,64.0,athletics,0,0,0 -753747706,Alexandre Ayache,FRA,male,1982-09-20,1.8,80.0,equestrian,0,0,0 -356907302,Alexandre Bouzaid,SEN,male,1981-06-29,1.68,75.0,fencing,0,0,0 -538814395,Alexandre Camarasa,FRA,male,1987-06-10,1.93,100.0,aquatics,0,0,0 -333303277,Alexandre Camargo,BRA,male,1999-04-25,1.77,75.0,fencing,0,0,0 -718560734,Alexandre Haldemann,SUI,male,1995-03-08,1.86,81.0,aquatics,0,0,0 -203028845,Alexandre Iddir,FRA,male,1991-02-21,1.84,90.0,judo,0,0,0 -391830541,Alexandre de Paeuw,BEL,male,1988-10-07,1.78,75.0,hockey,0,0,0 -350839117,Alexandres Gounas,GRE,male,1989-10-03,1.79,73.0,aquatics,0,0,0 -72024697,Alexandrina Cabral,ESP,female,1986-05-05,1.75,62.0,handball,0,0,0 -17092453,Alexandro Pozzer,BRA,male,1988-12-21,1.92,107.0,handball,0,0,0 -809372786,Alexandros Papamichail,GRE,male,1988-09-18,1.78,63.0,athletics,0,0,0 -992947913,Alexei Klimov,RUS,male,1975-08-27,1.82,88.0,shooting,0,0,0 -621322055,Alexei Sancov,MDA,male,1999-10-15,1.88,85.0,aquatics,0,0,0 -434694198,Alexej Prochorow,GER,male,1990-03-30,1.91,138.0,weightlifting,0,0,0 -271488726,Alexey Alipov,RUS,male,1975-08-07,1.74,80.0,shooting,0,0,0 -251192385,Alexey Cheremisinov,RUS,male,1985-07-09,1.83,75.0,fencing,1,0,0 -318060996,Alexey Denisenko,RUS,male,1993-08-30,1.85,68.0,taekwondo,0,1,0 -221070420,Alexey Dergunov,KAZ,male,1984-09-16,1.87,95.0,canoe,0,0,0 -333787984,Alexey Verbov,RUS,male,1982-01-31,1.83,79.0,volleyball,0,0,0 -527521403,Alexey Yakimenko,RUS,male,1983-10-31,1.84,80.0,fencing,0,0,0 -448880966,Alexi Pappas,GRE,female,1990-03-28,,,athletics,0,0,0 -524151751,Alexis Gonzalez,ARG,male,1981-07-21,1.84,85.0,volleyball,0,0,0 -491625914,Alexis Raynaud,FRA,male,1994-08-19,1.72,78.0,shooting,0,0,1 -166278707,Alexis Santos,POR,male,1992-03-23,1.85,74.0,aquatics,0,0,0 -697622072,Alexis Soto,ARG,male,1993-10-20,1.64,66.0,football,0,0,0 -194257222,Alexis Vuillermoz,FRA,male,1988-06-01,1.73,60.0,cycling,0,0,0 -860974311,Alexus Laird,SEY,female,1993-03-11,1.72,61.0,aquatics,0,0,0 -108252301,Alfonso Antonio Leyva Yepez,MEX,male,1993-01-06,1.81,85.0,wrestling,0,0,0 -231869553,Alfonso Benavides Lopez de Ayala,ESP,male,1991-03-09,1.82,86.0,canoe,0,0,0 -475919800,Alfred Kipketer,KEN,male,1996-12-28,1.67,60.0,athletics,0,0,0 -450635887,Alfredo Campo,ECU,male,1993-03-02,1.92,90.0,cycling,0,0,0 -736830151,Alfredo Talavera,MEX,male,1982-09-18,1.88,84.0,football,0,0,0 -233231940,Alhussein Gambour,LBA,male,1989-08-21,1.75,68.0,rowing,0,0,0 -604740736,Ali Adnan,IRQ,male,1993-12-19,1.8,76.0,football,0,0,0 -461686848,Ali Elghrari,LBA,male,1997-01-31,,,archery,0,0,0 -668278260,Ali Eren Demirezen,TUR,male,1990-04-02,1.89,,boxing,0,0,0 -737778764,Ali Faez,IRQ,male,1994-09-09,1.84,75.0,football,0,0,0 -800154411,Ali Hashemi,IRI,male,1991-11-01,1.78,93.0,weightlifting,0,0,0 -931441337,Ali Hisny,IRQ,male,1994-05-23,1.77,70.0,football,0,0,0 -670890480,Ali Kaya,TUR,male,1994-04-20,1.75,54.0,athletics,0,0,0 -732766543,Ali Khalafalla,EGY,male,1996-05-13,1.82,78.0,aquatics,0,0,0 -702507964,Ali Khamis Khamis,BRN,male,1995-06-30,1.82,70.0,athletics,0,0,0 -969053827,Ali Krieger,USA,female,1984-07-28,1.68,63.0,football,0,0,0 -716391442,Ali Messaoudi,ALG,male,1995-10-13,1.78,63.0,athletics,0,0,0 -768503351,Ali Nouisri,TUN,male,1994-01-20,1.84,75.0,cycling,0,0,0 -853472045,Ali Pakdaman,IRI,male,1990-08-23,1.93,94.0,fencing,0,0,0 -89809268,Ali Riley,NZL,female,1987-10-30,1.63,57.0,football,0,0,0 -472145214,Ali Suljic,SWE,male,1997-09-18,1.89,80.0,football,0,0,0 -429169523,Ali Yousef Al Rumaihi,QAT,male,1981-08-26,1.77,86.0,equestrian,0,0,0 -220820586,Ali Zein Mohamed,EGY,male,1990-12-14,1.9,83.0,handball,0,0,0 -76451177,Alia Atkinson,JAM,female,1988-12-11,1.73,71.0,aquatics,0,0,0 -432850961,Alia Saeed Mohammed,UAE,female,1993-11-13,1.58,54.0,athletics,0,0,0 -502227727,Aliaksandr Bersanau,BLR,male,1992-09-01,1.76,94.0,weightlifting,0,0,0 -23998076,Aliaksandr Buikevich,BLR,male,1984-11-19,1.91,80.0,fencing,0,0,0 -564017885,Aliaksandr Liakhovich,BLR,male,1989-07-04,1.72,65.0,athletics,0,0,0 -68967384,Aliaksandra Herasimenia,BLR,female,1985-12-31,1.74,58.0,aquatics,0,0,1 -775336377,Aliaksandra Tarasava,BLR,female,1988-06-23,1.7,64.0,basketball,0,0,0 -185532375,Aliaksei Mzhachyk,BLR,male,1996-06-30,1.9,136.0,weightlifting,0,0,0 -481292461,Alican Kaynar,TUR,male,1988-10-30,1.91,98.0,sailing,0,0,0 -198660870,Alice Aprot Nawowuna,KEN,female,1994-01-02,1.52,54.0,athletics,0,0,0 -824189087,Alice Ingley,AUS,female,1993-01-13,1.72,80.0,archery,0,0,0 -200278263,Alice Mizzau,ITA,female,1993-03-18,1.8,65.0,aquatics,0,0,0 -273156241,Alice Naber-Lozeman,NED,female,1971-05-07,1.68,62.0,equestrian,0,0,0 -713167631,Alice Richardson,GBR,female,1987-05-14,1.72,69.0,rugby sevens,0,0,0 -965421454,Alice Schlesinger,GBR,female,1988-05-26,1.65,65.0,judo,0,0,0 -693106463,Alice Sinno,ITA,female,1992-09-08,1.75,69.0,sailing,0,0,0 -350838880,Alice Sotero,ITA,female,1991-05-28,1.66,53.0,modern pentathlon,0,0,0 -598475958,Alicia Blagg,GBR,female,1996-10-21,1.65,65.0,aquatics,0,0,0 -537043954,Alicia Brown,CAN,female,1990-01-21,1.65,57.0,athletics,0,0,0 -247476216,Alicia Cebrian Martinez de Lagos,ESP,female,1983-02-03,1.68,68.0,sailing,0,0,0 -556923374,Alicia Coutts,AUS,female,1987-09-14,1.76,69.0,aquatics,0,0,0 -906544891,Alicia Magaz,ESP,female,1994-05-24,1.61,60.0,hockey,0,0,0 -404345231,Alicia Quirk,AUS,female,1992-03-28,1.73,64.0,rugby sevens,1,0,0 -284199636,Alicja Tchorz,POL,female,1992-08-13,1.76,68.0,aquatics,0,0,0 -297498164,Alin Alexuc Ciurariu,ROU,male,1990-02-03,1.91,105.0,wrestling,0,0,0 -667093236,Alin Coste,ROU,male,1992-02-17,2.01,95.0,aquatics,0,0,0 -991471809,Alin George Moldoveanu,ROU,male,1983-05-03,1.73,73.0,shooting,0,0,0 -146849551,Alina Armas,NAM,female,1983-12-10,1.66,53.0,athletics,0,0,0 -9436047,Alina Fodorova,UKR,female,1989-07-31,1.75,65.0,athletics,0,0,0 -452472549,Alina Komashchuk,UKR,female,1993-04-24,1.69,75.0,fencing,0,1,0 -26321098,Alina Logvynenko,UKR,female,1990-07-18,1.8,67.0,athletics,0,0,0 -564738938,Alina Rotaru,ROU,female,1993-06-05,1.75,57.0,athletics,0,0,0 -130594149,Alina Stadnik Makhynia,UKR,female,1991-01-03,1.65,69.0,wrestling,0,0,0 -137031539,Alina Talay,BLR,female,1989-05-14,1.64,57.0,athletics,0,0,0 -315643745,Aline,BRA,female,1989-04-15,1.62,60.0,football,0,0,0 -902987523,Aline Focken,GER,female,1991-05-10,1.77,73.0,wrestling,0,0,0 -215286232,Aline da Silva Ferreira,BRA,female,1986-10-18,1.78,80.0,wrestling,0,0,0 -833092832,Aliona Dubitskaya,BLR,female,1990-01-25,1.8,76.0,athletics,0,0,0 -790705612,Alireza Khojasteh,IRI,male,1997-03-28,1.82,66.0,judo,0,0,0 -891915962,Alireza Mohammad Karimimachiani,IRI,male,1994-03-21,1.75,86.0,wrestling,0,0,0 -473463517,Alisa Kano,USA,female,1994-11-07,1.63,47.0,gymnastics,0,0,0 -572752822,Alisa Kiriliuk,RUS,female,1990-07-09,1.65,57.0,sailing,0,0,0 -269057885,Alise Post,USA,female,1991-01-17,1.58,56.0,cycling,0,1,0 -893065758,Alisha Glass,USA,female,1988-04-05,1.84,72.0,volleyball,0,0,1 -409870387,Alison Cerutti,BRA,male,1985-12-07,2.03,102.0,volleyball,1,0,0 -376187965,Alison Young,GBR,female,1987-05-29,1.82,70.0,sailing,0,0,0 -164566610,Alistair Bond,NZL,male,1989-08-16,1.86,71.0,rowing,0,0,0 -198533399,Alistair Brownlee,GBR,male,1988-04-23,1.84,70.0,triathlon,1,0,0 -901422043,Aliya Mustafina,RUS,female,1994-09-30,1.61,48.0,gymnastics,1,1,1 -340019479,Aliyah Abrams,GUY,female,1997-04-03,1.63,53.0,athletics,0,0,0 -248018989,Alize Cornet,FRA,female,1990-01-22,1.73,63.0,tennis,0,0,0 -777919762,Alla Cherkasova,UKR,female,1989-05-05,1.65,75.0,wrestling,0,0,0 -848336898,Alla Shishkina,RUS,female,1989-08-02,1.7,56.0,aquatics,1,0,0 -511388917,Allan Banegas,HON,male,1993-10-04,1.8,76.0,football,0,0,0 -638093339,Allan Fa'alava'au,AUS,male,1993-11-15,1.7,87.0,rugby sevens,0,0,0 -146313505,Allan Gutierrez,HON,male,1993-08-12,1.78,79.0,aquatics,0,0,0 -32531728,Allan Julie,SEY,male,1977-03-23,1.81,91.0,sailing,0,0,0 -40527372,Allan Norregaard,DEN,male,1981-03-19,1.73,67.0,sailing,0,0,0 -846754382,Allan do carmo,BRA,male,1989-08-03,1.74,73.0,aquatics,0,0,0 -165223366,Allans Vargas,HON,male,1993-09-25,1.84,69.0,football,0,0,0 -823501763,Allar Raja,EST,male,1983-06-22,1.9,95.0,rowing,0,0,1 -531225990,Allie Long,USA,female,1987-08-13,1.72,59.0,football,0,0,0 -373002185,Allison Beveridge,CAN,female,1993-06-01,1.69,62.0,cycling,0,0,1 -606328661,Allison M. Brock,USA,female,1979-12-07,1.68,58.0,equestrian,0,0,1 -68050568,Allison Pineau,FRA,female,1989-05-02,1.81,66.0,handball,0,1,0 -944908522,Allison Schmitt,USA,female,1990-06-07,1.86,74.0,aquatics,1,1,0 -881130710,Allistar Clarke,SKN,male,1990-10-03,1.87,71.0,athletics,0,0,0 -686662012,Allysha Chapman,CAN,female,1989-01-25,1.6,58.0,football,0,0,1 -629649792,Allyson Felix,USA,female,1985-11-18,1.68,56.0,athletics,2,1,0 -742474119,Allyson Ponson,ARU,female,1995-12-04,1.65,60.0,aquatics,0,0,0 -830602816,Almat Kebispayev,KAZ,male,1987-12-12,1.66,59.0,wrestling,0,0,0 -9410967,Almaz Ayana,ETH,female,1991-11-21,1.66,47.0,athletics,1,0,1 -949130459,Almir Velagic,GER,male,1981-08-22,1.83,149.0,weightlifting,0,0,0 -712627786,Almuth Schult,GER,female,1991-02-09,1.8,71.0,football,1,0,0 -300655502,Alona Koshevatskiy,ISR,female,1997-10-08,1.7,53.0,gymnastics,0,0,0 -673430,Alona Ribakova,LAT,female,1991-02-07,1.76,63.0,aquatics,0,0,0 -506696121,Alonso Edward,PAN,male,1989-12-08,1.81,76.0,athletics,0,0,0 -396920712,Alonso Valdez Prado,PER,male,1978-01-23,1.7,68.0,equestrian,0,0,0 -791528062,Alonzo Russell,BAH,male,1992-02-08,,,athletics,0,0,1 -860469603,Alphas Leken Kishoyian,KEN,male,1994-01-01,1.67,59.0,athletics,0,0,0 -601227072,Alphonce Felix Simbu,TAN,male,1992-02-14,,55.0,athletics,0,0,0 -46528538,Altobeli da Silva,BRA,male,1990-12-03,1.81,60.0,athletics,0,0,0 -344062200,Alvaro Doda de Miranda,BRA,male,1973-02-05,1.86,86.0,equestrian,0,0,0 -940428888,Alvaro Iglesias,ESP,male,1993-03-01,1.78,79.0,hockey,0,0,0 -407705493,Alvaro Martin,ESP,male,1994-06-18,1.79,63.0,athletics,0,0,0 -349070925,Alvaro de Arriba,ESP,male,1994-06-02,1.77,69.0,athletics,0,0,0 -198544112,Alvin Singh,FIJ,male,1988-06-09,1.85,88.0,football,0,0,0 -350021262,Alyce Burnett,AUS,female,1992-08-11,1.82,71.0,canoe,0,0,0 -362885756,Alyn Camara,GER,male,1989-03-31,1.96,84.0,athletics,0,0,0 -317210453,Alysbeth Felix,PUR,female,1993-03-07,1.71,59.0,athletics,0,0,0 -746918674,Alysha Newman,CAN,female,1994-06-29,1.72,67.0,athletics,0,0,0 -299325832,Alyson Dixon,GBR,female,1978-09-24,1.55,43.0,athletics,0,0,0 -192794585,Alyssa Bull,AUS,female,1995-12-01,1.73,65.0,canoe,0,0,0 -479973349,Alyssa Conley,RSA,female,1991-04-27,1.76,63.0,athletics,0,0,0 -61804195,Alyssa Manley,USA,female,1994-05-27,1.58,53.0,hockey,0,0,0 -360098950,Alyssa Naeher,USA,female,1988-04-20,1.75,61.0,football,0,0,0 -431586792,Alyxandria Treasure,CAN,female,1992-05-15,1.55,68.0,athletics,0,0,0 -461802696,Alzbeta Dufkova,CZE,female,1990-04-19,1.72,65.0,aquatics,0,0,0 -401938001,Amadou Camara,GUI,male,1994-09-10,1.63,69.0,aquatics,0,0,0 -312519582,Amadou Ndiaye,SEN,male,1992-12-06,1.8,80.0,athletics,0,0,0 -974097069,Amaia Erbina,ESP,female,1997-03-13,1.71,68.0,rugby sevens,0,0,0 -595234401,Amaka Ogoegbunam,NGR,female,1990-03-03,1.64,61.0,athletics,0,0,0 -605176733,Amalie Dideriksen,DEN,female,1996-05-24,1.75,62.0,cycling,0,0,0 -398682051,Amalie Iuel,NOR,female,1994-04-17,,,athletics,0,0,0 -543039949,Amalie Thomsen,DEN,female,1994-09-12,1.66,60.0,canoe,0,0,0 -424274474,Amaliya Sharoyan,ARM,female,1988-06-19,1.7,56.0,athletics,0,0,0 -684370128,Aman Wote,ETH,male,1984-04-18,1.83,68.0,athletics,0,0,0 -991318461,Amanda Araujo,BRA,female,1990-02-23,1.62,54.0,rugby sevens,0,0,0 -574915810,Amanda Carr,THA,female,1990-06-24,1.65,60.0,cycling,0,0,0 -461754486,Amanda Dlamini,RSA,female,1988-07-22,1.64,61.0,football,0,0,0 -960382539,Amanda Elmore,USA,female,1991-03-13,1.81,79.0,rowing,1,0,0 -403367229,Amanda Ilestedt,SWE,female,1993-01-17,1.78,65.0,football,0,0,0 -557518345,Amanda Kurtovic,NOR,female,1991-07-25,1.75,,handball,0,0,1 -343711251,Amanda Ng,SIN,female,1994-05-03,1.7,68.0,sailing,0,0,0 -936271742,Amanda Oliveira,BRA,female,1987-01-06,1.69,58.0,aquatics,0,0,0 -839220577,Amanda Polk,USA,female,1986-08-02,1.81,83.0,rowing,1,0,0 -362158810,Amanda Simeao,BRA,female,1994-06-02,1.66,62.0,fencing,0,0,0 -340529563,Amanda Spratt,AUS,female,1987-09-17,1.61,55.0,cycling,0,0,0 -118871166,Amanda Weir,USA,female,1986-03-11,1.88,77.0,aquatics,0,1,0 -537662343,Amandine Henry,FRA,female,1989-09-28,1.71,64.0,football,0,0,0 -17350450,Amandine Leynaud,FRA,female,1986-05-02,1.78,64.0,handball,0,1,0 -582601760,Amandine Lhote,FRA,female,1986-12-22,1.68,64.0,canoe,0,0,0 -994010453,Amanmurad Hommadov,TKM,male,1989-01-28,1.9,117.0,athletics,0,0,0 -40874614,Amanuel Mesel,ERI,male,1990-12-29,1.77,59.0,athletics,0,0,0 -555654573,Amar Music,CRO,male,1987-03-21,1.7,85.0,weightlifting,0,0,0 -347334644,Amarhajy Mahamedau,BLR,male,1990-04-12,1.84,88.0,wrestling,0,0,0 -156297478,Amas Daniel,NGR,male,1990-04-26,1.65,65.0,wrestling,0,0,0 -235304532,Amber Campbell,USA,female,1981-06-05,1.71,90.0,athletics,0,0,0 -518337993,Amber Hearn,NZL,female,1984-11-28,1.73,66.0,football,0,0,0 -843671557,Amber Hill,GBR,female,1997-08-21,1.58,52.0,shooting,0,0,0 -193520300,Ambroise Uwiragiye,RWA,male,1980-12-31,,,athletics,0,0,0 -458169585,Ameen Zakkar,QAT,male,1994-06-15,1.95,100.0,handball,0,0,0 -147471231,Ameer Webb,USA,male,1991-03-19,1.81,82.0,athletics,0,0,0 -39468987,Amel Bouderra,FRA,female,1989-03-26,1.63,,basketball,0,0,0 -140465357,Amel Majri,FRA,female,1993-01-25,1.64,54.0,football,0,0,0 -250216413,Amel Tuka,BIH,male,1991-01-09,1.87,77.0,athletics,0,0,0 -577293191,Amela Terzic,SRB,female,1993-01-02,1.69,54.0,athletics,0,0,0 -255630772,Amelia Belotti,ARG,female,1988-11-17,1.8,73.0,handball,0,0,0 -36505645,Amelia Cozad,USA,female,1991-05-06,1.61,51.0,aquatics,0,0,0 -656221142,Amelia Gibson,NZL,female,1991-07-05,1.72,71.0,hockey,0,0,0 -335567750,Amelia Rosa Fournel,ARG,female,1977-02-20,1.6,50.0,shooting,0,0,0 -310265171,Amelie Kretz,CAN,female,1993-05-19,1.68,53.0,triathlon,0,0,0 -68574249,Amer Hrustanovic,AUT,male,1988-06-11,1.8,91.0,wrestling,0,0,0 -17841864,Ami Kondo,JPN,female,1995-05-09,1.56,48.0,judo,0,0,1 -607523494,Amidou Mir,FRA,male,1995-01-01,1.73,78.0,cycling,0,0,0 -678578041,Amie Thompson,AUS,female,1996-01-31,1.67,58.0,aquatics,0,0,0 -811727068,Amina Bettiche,ALG,female,1987-12-14,1.65,55.0,athletics,0,0,0 -689435497,Amina Kajtaz,BIH,female,1996-12-31,1.73,62.0,aquatics,0,0,0 -409262616,Amina Rouba,ALG,female,1986-01-09,1.73,60.0,rowing,0,0,0 -895684177,Aminat Oluwafunmilayo Adeniyi,NGR,female,1993-04-21,1.65,58.0,wrestling,0,0,0 -509681869,Aminath Shajan,MDV,female,1993-10-29,,,aquatics,0,0,0 -378210672,Amine Bannour,TUN,male,1990-02-21,1.96,102.0,handball,0,0,0 -121680559,Amine Belferar,ALG,male,1991-02-16,1.75,65.0,athletics,0,0,0 -435929879,Amini Tuitavake Fonua,TGA,male,1989-12-14,1.86,80.0,aquatics,0,0,0 -389896499,Aminu Umar,NGR,male,1995-03-06,1.72,,football,0,0,1 -846949924,Amir Ghafour,IRI,male,1991-06-06,2.02,90.0,volleyball,0,0,0 -410626392,Amiran Papinashvili,GEO,male,1988-06-17,1.62,64.0,judo,0,0,0 -364715226,Amit Ivry,ISR,female,1989-09-02,1.7,65.0,aquatics,0,0,0 -529647636,Amjed Attwan,IRQ,male,1997-03-12,1.8,72.0,football,0,0,0 -945479307,Ammar Abdulhussein,IRQ,male,1993-02-13,1.8,76.0,football,0,0,0 -238039408,Ammara Pinto,MAW,female,1997-09-14,1.63,61.0,aquatics,0,0,0 -740490618,Amna Bakhit,SUD,female,1990-11-14,1.75,59.0,athletics,0,0,0 -657073926,Amnat Ruenroeng,THA,male,1979-12-18,1.64,,boxing,0,0,0 -761085260,Amor Ben Yahia,TUN,male,1985-07-01,1.76,63.0,athletics,0,0,0 -942970698,Amro Elgeziry,EGY,male,1986-11-29,1.85,75.0,modern pentathlon,0,0,0 -318291811,Amy Cragg,USA,female,1984-01-21,1.63,45.0,athletics,0,0,0 -872045656,Amy Cure,AUS,female,1992-12-31,1.72,63.0,cycling,0,0,0 -912480643,Amy Millar,CAN,female,1977-02-14,1.83,59.0,equestrian,0,0,0 -5024454,Amy Sene,SEN,female,1986-04-06,1.75,80.0,athletics,0,0,0 -460892006,Amy Tinkler,GBR,female,1999-10-27,1.52,47.0,gymnastics,0,0,1 -99920757,Amy Turner,AUS,female,1984-03-25,1.68,64.0,rugby sevens,1,0,0 -380050996,Amy Wilson Hardy,GBR,female,1991-09-13,1.67,69.0,rugby sevens,0,0,0 -491417402,An-Li Kachelhoffer,RSA,female,1987-08-16,1.6,50.0,cycling,0,0,0 -829962369,Ana Beatriz Bulcao,BRA,female,1993-12-04,1.67,58.0,fencing,0,0,0 -914515820,Ana Cabecinha,POR,female,1984-04-29,1.63,48.0,athletics,0,0,0 -714771450,Ana Claudia Silva,BRA,female,1988-11-06,1.58,56.0,athletics,0,0,0 -627491334,Ana Dabovic,SRB,female,1989-08-18,1.83,70.0,basketball,0,0,1 -697466343,Ana Derek,CRO,female,1998-09-04,1.64,58.0,gymnastics,0,0,0 -196047650,Ana Dulce Felix,POR,female,1982-10-23,1.66,53.0,athletics,0,0,0 -111502894,Ana Gallay,ARG,female,1986-01-16,1.73,66.0,volleyball,0,0,0 -209671126,Ana Iulia Dascal,ROU,female,2002-09-12,1.83,60.0,aquatics,0,0,0 -71309722,Ana Ivanovic,SRB,female,1987-11-06,1.77,63.0,tennis,0,0,0 -685105407,Ana Jose Tima,DOM,female,1989-10-10,1.68,56.0,athletics,0,0,0 -981171195,Ana Konjuh,CRO,female,1997-12-27,1.74,73.0,tennis,0,0,0 -575479562,Ana Luiza Barbachan,BRA,female,1989-08-15,1.71,68.0,sailing,0,0,0 -596603092,Ana Luiza Filiorianu,ROU,female,1999-07-10,1.64,42.0,gymnastics,0,0,0 -69147633,Ana Marcela Cunha,BRA,female,1992-03-23,1.65,66.0,aquatics,0,0,0 -865510243,Ana Maria Popescu,ROU,female,1984-11-26,1.75,64.0,fencing,1,0,0 -350672001,Ana Maria Rendon,COL,female,1986-03-10,1.6,63.0,archery,0,0,0 -453790004,Ana Paula Belo,BRA,female,1987-10-18,1.72,67.0,handball,0,0,0 -724211622,Ana Paula Vergutz,BRA,female,1989-04-20,1.76,71.0,canoe,0,0,0 -808863847,Ana Perez,ESP,female,1997-12-14,1.51,45.0,gymnastics,0,0,0 -272949970,Ana Ramirez,COL,female,1991-12-06,1.68,69.0,rugby sevens,0,0,0 -307991682,Ana Rente,POR,female,1988-04-27,1.58,53.0,gymnastics,0,0,0 -224508833,Ana Roqica,FIJ,female,1988-02-02,1.62,55.0,rugby sevens,0,0,0 -543833436,Ana Sanabria,COL,female,1990-05-02,1.56,51.0,cycling,0,0,0 -337538051,Ana Satila,BRA,female,1996-03-13,1.63,58.0,canoe,0,0,0 -953050325,Ana Simic,CRO,female,1990-05-05,1.78,57.0,athletics,0,0,0 -902638396,Ana Sofia Gomez,GUA,female,1995-11-24,1.56,46.0,gymnastics,0,0,0 -872791807,Ana Sofia Nobrega,ANG,female,1990-12-20,1.74,70.0,aquatics,0,0,0 -644940241,Ana Veronica Rodean,ROU,female,1984-06-23,1.7,55.0,athletics,0,0,0 -153868094,Ana Zaninovic,CRO,female,1987-06-26,1.72,55.0,taekwondo,0,0,0 -557108863,Ana-Roxana Lehaci,AUT,female,1990-08-11,1.72,64.0,canoe,0,0,0 -310379918,Anabel Medina Garrigues,ESP,female,1982-07-31,1.69,59.0,tennis,0,0,0 -241768985,Anabelle Smith,AUS,female,1993-02-03,1.68,55.0,aquatics,0,0,1 -867924792,Anamari Velensek,SLO,female,1991-05-15,1.78,78.0,judo,0,0,1 -575717728,Anamaria Ionita,ROU,female,1988-07-07,1.75,60.0,athletics,0,0,0 -711141982,Anas Beshr,EGY,male,1993-07-19,,,athletics,0,0,0 -922322829,Anaso Jobodwana,RSA,male,1992-07-30,1.87,71.0,athletics,0,0,0 -129887602,Anass Ait El Abdia,MAR,male,1993-03-21,1.8,66.0,cycling,0,0,0 -445010579,Anass Houssein,DJI,male,1995-01-10,1.75,66.0,judo,0,0,0 -320992856,Anastasia Abrosimova,RUS,female,1990-07-17,1.64,51.0,triathlon,0,0,0 -395443232,Anastasia Bliznyuk,RUS,female,1994-06-28,1.73,51.0,gymnastics,1,0,0 -630467842,Anastasia Bogdanovski,MKD,female,1993-07-30,1.74,57.0,aquatics,0,0,0 -301110204,Anastasia Gloushkov Leventhal,ISR,female,1985-05-24,1.65,53.0,aquatics,0,0,0 -823187249,Anastasia Pavlova,UKR,female,1995-02-09,1.72,53.0,archery,0,0,0 -42235167,Anastasia Pavlyuchenkova,RUS,female,1991-07-03,1.77,75.0,tennis,0,0,0 -971263231,Anastasia Rodionova,AUS,female,1982-05-12,,,tennis,0,0,0 -407491531,Anastasia Shlyakhovaya,RUS,female,1990-10-05,1.92,69.0,volleyball,0,0,0 -329483647,Anastasia Simanovich,RUS,female,1995-01-23,1.74,69.0,aquatics,0,0,1 -35258396,Anastasiia Baryshnikova,RUS,female,1990-12-19,1.73,67.0,taekwondo,0,0,0 -901391372,Anastasiia Beliakova,RUS,female,1993-05-01,1.73,,boxing,0,0,1 -102993308,Anastasiia Fesikova,RUS,female,1990-05-08,1.82,71.0,aquatics,0,0,0 -797491738,Anastasiia Hotfrid,GEO,female,1996-04-25,1.69,87.0,weightlifting,0,0,0 -787891097,Anastasiia Kozhenkova,UKR,female,1986-01-19,1.86,75.0,rowing,0,0,0 -572715750,Anastasiia Krapivina,RUS,female,1994-11-12,1.7,56.0,aquatics,0,0,0 -715543829,Anastasiia Lysenko,UKR,female,1995-12-02,1.76,101.0,weightlifting,0,0,0 -273869635,Anastasiia Maksimova,RUS,female,1991-06-27,1.7,50.0,gymnastics,1,0,0 -766355560,Anastasiia Nedobiga,UKR,female,1994-04-20,1.62,50.0,aquatics,0,0,0 -725232541,Anastasiia Tatareva,RUS,female,1997-07-19,1.65,44.0,gymnastics,1,0,0 -913288591,Anastasiia Todorova,UKR,female,1993-12-10,1.68,69.0,canoe,0,0,0 -874606295,Anastasiia Voinova,RUS,female,1993-02-05,1.62,62.0,cycling,0,1,0 -467136839,Anastasija Grigorjeva,LAT,female,1990-05-12,1.69,65.0,wrestling,0,0,0 -85844393,Anastasija Khmelnytska,GER,female,1997-12-31,1.71,56.0,gymnastics,0,0,0 -429085507,Anastasiya Mikhalenka,BLR,female,1995-12-08,1.62,67.0,weightlifting,0,0,0 -477742641,Anastasiya Prokopenko,BLR,female,1985-09-20,1.63,57.0,modern pentathlon,0,0,0 -204362655,Anastasiya Puzakova,BLR,female,1993-12-12,1.61,45.0,athletics,0,0,0 -830248205,Anastasiya Savchuk,UKR,female,1996-03-02,1.77,60.0,aquatics,0,0,0 -369555302,Anastasiya Serdyukova,UZB,female,1997-05-29,1.7,49.0,gymnastics,0,0,0 -610974773,Anastasiya Spas,UKR,female,1993-08-06,1.78,68.0,modern pentathlon,0,0,0 -27612186,Anastasiya Tulapina,KAZ,female,1990-03-05,1.67,54.0,athletics,0,0,0 -711528333,Anastasiya Tyurina,TJK,female,2001-09-27,1.65,50.0,aquatics,0,0,0 -422580925,Anastasiya Verameyenka,BLR,female,1987-07-10,1.92,82.0,basketball,0,0,0 -357399509,Anastasiya Voznyak,UKR,female,1998-12-09,1.69,49.0,gymnastics,0,0,0 -673911488,Anastassiya Pilipenko,KAZ,female,1986-09-13,1.74,55.0,athletics,0,0,0 -347049681,Anastassya Kudinova,KAZ,female,1988-02-27,1.76,60.0,athletics,0,0,0 -623313333,Anatolii Herey,UKR,male,1989-03-31,1.86,75.0,fencing,0,0,0 -234780868,Ancuta Bobocel,ROU,female,1987-10-03,1.67,49.0,athletics,0,0,0 -964678292,Andela Bulatovic,MNE,female,1987-01-15,1.75,67.0,handball,0,0,0 -775627135,Andelo Setka,CRO,male,1985-09-14,1.86,87.0,aquatics,0,1,0 -949150339,Ander Elosegi,ESP,male,1987-11-14,1.86,80.0,canoe,0,0,0 -955892799,Anders Dahl,DEN,male,1976-03-11,1.8,80.0,equestrian,0,0,0 -449230343,Anders Lie Nielsen,DEN,male,1991-04-11,1.86,74.0,aquatics,0,0,0 -289946138,Anders Pedersen,NOR,male,1992-05-04,,,sailing,0,0,0 -130198005,Anders Weiss,USA,male,1992-11-05,1.96,92.0,rowing,0,0,0 -248819461,Anderson Oliveira,BRA,male,1992-01-10,1.69,64.0,canoe,0,0,0 -292858869,Andile Dlamini,RSA,female,1992-09-02,1.69,55.0,football,0,0,0 -375239282,Andile Fikizolo,RSA,male,1994-05-12,1.75,69.0,football,0,0,0 -7192762,Andjelko Risticevic,SRB,male,1985-12-23,1.91,78.0,athletics,0,0,0 -995131091,Andranik Karapetyan,ARM,male,1995-12-15,1.8,77.0,weightlifting,0,0,0 -222880699,Andras Parti,HUN,male,1982-09-18,1.74,67.0,cycling,0,0,0 -257770574,Andras Redli,HUN,male,1983-10-21,1.93,82.0,fencing,0,0,1 -140531805,Andre,POR,male,1990-01-21,1.71,68.0,football,0,0,0 -511065132,Andre Breitbarth,GER,male,1990-04-06,1.91,125.0,judo,0,0,0 -662859051,Andre Fernando S. Martins Cardoso,POR,male,1984-09-03,1.68,57.0,cycling,0,0,0 -954547244,Andre Link,GER,male,1994-12-13,1.74,80.0,shooting,0,0,0 -580669644,Andre Matias,ANG,male,1989-06-22,1.8,76.0,rowing,0,0,0 -134393254,Andre Patrocinio,BRA,male,1990-02-20,1.73,74.0,hockey,0,0,0 -321939680,Andre Pereira,BRA,male,1993-12-07,1.85,84.0,aquatics,0,0,0 -890648404,Andre Sa,BRA,male,1977-05-06,1.8,75.0,tennis,0,0,0 -976716272,Andre Silva,BRA,male,1988-03-22,1.7,80.0,rugby sevens,0,0,0 -755645799,Andre Soares,BRA,male,1984-02-13,1.94,92.0,handball,0,0,0 -857846421,Andre de Grasse,CAN,male,1994-11-10,1.76,70.0,athletics,0,1,2 -174436666,Andrea Arsovic,SRB,female,1987-02-05,1.65,61.0,shooting,0,0,0 -974131096,Andrea Baldini,ITA,male,1985-12-19,1.75,70.0,fencing,0,0,0 -932784458,Andrea Brewster,IRL,female,1982-10-10,1.63,62.0,sailing,0,0,0 -949156252,Andrea Carolina Olaya Gutierrez,COL,female,1994-12-09,1.76,75.0,wrestling,0,0,0 -676115258,Andrea Cassara,ITA,male,1984-01-03,1.93,93.0,fencing,0,0,0 -161123035,Andrea Cedron,PER,female,1993-12-24,1.69,62.0,aquatics,0,0,0 -626748734,Andrea Chiarabini,ITA,male,1995-03-12,1.79,79.0,aquatics,0,0,0 -575091525,Andrea D'Arrigo,ITA,male,1995-04-28,1.94,85.0,aquatics,0,0,0 -400345706,Andrea Deelstra,NED,female,1985-03-06,1.64,46.0,athletics,0,0,0 -419373605,Andrea Fondelli,ITA,male,1994-02-27,1.9,96.0,aquatics,0,0,1 -478977690,Andrea Geubelle,USA,female,1991-06-26,1.63,58.0,athletics,0,0,0 -226707215,Andrea Hewitt,NZL,female,1982-04-04,1.6,50.0,triathlon,0,0,0 -429133485,Andrea Hlavackova,CZE,female,1986-08-10,1.74,63.0,tennis,0,0,0 -504132188,Andrea Ivancevic,CRO,female,1984-08-21,1.68,62.0,athletics,0,0,0 -158226977,Andrea Kilday,NZL,female,1982-08-05,1.61,48.0,taekwondo,0,0,0 -565831572,Andrea Klikovac,MNE,female,1991-05-05,1.75,73.0,handball,0,0,0 -65085149,Andrea Kneppers,NED,female,1993-02-24,1.75,67.0,aquatics,0,0,0 -187085633,Andrea Mayr,AUT,female,1979-10-15,1.74,53.0,athletics,0,0,0 -187152270,Andrea Micheletti,ITA,male,1991-06-22,1.87,70.0,rowing,0,0,0 -931620156,Andrea Miklos,ROU,female,1999-04-17,1.65,51.0,athletics,0,0,0 -448392462,Andrea Murez,ISR,female,1992-01-29,1.84,77.0,aquatics,0,0,0 -244862813,Andrea Perez Pena,ECU,female,1990-04-07,1.61,62.0,shooting,0,0,0 -926139240,Andrea Petkovic,GER,female,1987-09-09,1.8,70.0,tennis,0,0,0 -339790739,Andrea Salvisberg,SUI,male,1989-02-01,1.8,73.0,triathlon,0,0,0 -583417630,Andrea Santarelli,ITA,male,1993-06-03,1.84,76.0,fencing,0,1,0 -976796859,Andrea Seccafien,CAN,female,1990-08-27,1.52,46.0,athletics,0,0,0 -36880136,Andrea Tiberi,ITA,male,1985-11-15,1.83,71.0,cycling,0,0,0 -234036323,Andrea Toniato,ITA,male,1991-02-27,1.82,82.0,aquatics,0,0,0 -321087951,Andreanne Langlois,CAN,female,1993-04-01,1.58,59.0,canoe,0,0,0 -726050696,Andreas Bretschneider,GER,male,1989-08-04,1.67,60.0,gymnastics,0,0,0 -706697738,Andreas Bube,DEN,male,1987-07-13,1.78,65.0,athletics,0,0,0 -566684785,Andreas Chasikos,CYP,male,1984-06-07,1.75,70.0,shooting,0,0,0 -951348078,Andreas Kuffner,GER,male,1987-03-11,1.96,94.0,rowing,0,1,0 -153952805,Andreas Linde,SWE,male,1993-07-24,1.96,88.0,football,0,0,0 -411586865,Andreas Loew,GER,male,1982-01-19,1.77,81.0,shooting,0,0,0 -39605435,Andreas Maxso,DEN,male,1994-03-18,1.9,80.0,football,0,0,0 -435243866,Andreas Nilsson,SWE,male,1990-04-12,1.97,114.0,handball,0,0,0 -31739693,Andreas Pheobus Cariolou,CYP,male,1982-11-24,1.81,74.0,sailing,0,0,0 -713434315,Andreas Schilling,DEN,male,1991-05-25,1.85,70.0,triathlon,0,0,0 -773973841,Andreas Seppi,ITA,male,1984-02-21,1.9,75.0,tennis,0,0,0 -819478867,Andreas Toba,GER,male,1990-10-07,1.72,65.0,gymnastics,0,0,0 -908623609,Andreas Vazaios,GRE,male,1994-05-09,1.9,85.0,aquatics,0,0,0 -103646463,Andreas Wolff,GER,male,1991-03-03,1.98,110.0,handball,0,0,1 -294664221,Andreea Aanei,ROU,female,1993-11-18,1.7,120.0,weightlifting,0,0,0 -945918484,Andreea Arsine,ROU,female,1988-09-14,1.59,55.0,athletics,0,0,0 -755303582,Andreea Boghian,ROU,female,1991-11-29,1.86,78.0,rowing,0,0,1 -966630668,Andreea Chitu,ROU,female,1988-05-07,1.57,52.0,judo,0,0,0 -7713126,Andreea Mitu,ROU,female,1991-09-22,1.75,60.0,tennis,0,0,0 -882676679,Andrei Churyla,BLR,male,1993-05-19,1.89,74.0,athletics,0,0,0 -604822032,Andrei Gag,ROU,male,1991-04-27,1.91,120.0,athletics,0,0,0 -444763711,Andrei Jamsa,EST,male,1982-02-14,1.84,90.0,rowing,0,0,1 -494617052,Andrei Shabasov,RUS,male,1994-06-20,1.8,73.0,aquatics,0,0,0 -355389879,Andrei Vasile Muntean,ROU,male,1993-01-30,1.7,63.0,gymnastics,0,0,0 -153735693,Andrei Zamkovoi,RUS,male,1987-07-04,1.82,,boxing,0,0,0 -957911430,Andreia Bandeira,BRA,female,1987-05-03,1.69,,boxing,0,0,0 -264432420,Andreina Pinto,VEN,female,1991-09-10,1.76,68.0,aquatics,0,0,0 -305139050,Andrej Gacina,CRO,male,1986-05-21,1.85,85.0,table tennis,0,0,0 -10874144,Andrej Martin,SVK,male,1989-09-20,1.8,72.0,tennis,0,0,0 -681704491,Andrej Olijnik,LTU,male,1987-10-16,1.85,87.0,canoe,0,0,0 -448316510,Andres Arroyo,PUR,male,1995-06-07,1.77,64.0,athletics,0,0,0 -723895342,Andres Chocho,ECU,male,1983-11-04,1.7,66.0,athletics,0,0,0 -771905591,Andres Ducasse,CHI,male,1992-06-24,1.71,66.0,sailing,0,0,0 -669378368,Andres Eduardo Mata Perez,ESP,male,1992-11-11,1.74,76.0,weightlifting,0,0,0 -349842092,Andres Mauricio Caicedo Piedrahita,COL,male,1997-08-15,1.74,76.0,weightlifting,0,0,0 -686783587,Andres Mir,ESP,male,1987-01-25,1.8,75.0,hockey,0,0,0 -922616500,Andres Nocioni,ARG,male,1979-11-30,2.01,102.0,basketball,0,0,0 -700618156,Andres Pila,COL,male,1991-05-11,1.74,75.0,archery,0,0,0 -164503062,Andres Renteria,COL,male,1993-03-06,1.81,81.0,football,0,0,0 -446162748,Andres Roa,COL,male,1993-05-25,1.75,68.0,football,0,0,0 -157804987,Andres Roberto Montano Arroyo,ECU,male,1990-04-06,1.66,59.0,wrestling,0,0,0 -841462894,Andres Ruiz,COL,male,1988-07-16,1.64,64.0,athletics,0,0,0 -551708998,Andres Silva,URU,male,1986-03-27,1.78,78.0,athletics,0,0,0 -979721356,Andressa,BRA,female,1995-05-01,1.6,60.0,football,0,0,0 -715702096,Andressa Alves,BRA,female,1992-11-10,1.68,56.0,football,0,0,0 -721349876,Andressa de Morais,BRA,female,1990-12-21,1.78,97.0,athletics,0,0,0 -140014329,Andrew Amonde,KEN,male,1983-12-25,1.9,104.0,rugby sevens,0,0,0 -308408059,Andrew Bogut,AUS,male,1984-11-28,2.07,122.0,basketball,0,0,0 -169560751,Andrew Butchart,GBR,male,1991-10-14,1.75,64.0,athletics,0,0,0 -777045922,Andrew Campbell Jr,USA,male,1992-02-02,1.78,70.0,rowing,0,0,0 -871500671,Andrew Charter,AUS,male,1987-03-30,1.82,87.0,hockey,0,0,0 -164276381,Andrew Chetcuti,MLT,male,1992-11-19,1.77,72.0,aquatics,0,0,0 -207851406,Andrew Durutalo,USA,male,1987-10-25,1.88,107.0,rugby sevens,0,0,0 -2538424,Andrew Evans,USA,male,1991-01-25,1.99,113.0,athletics,0,0,0 -149520623,Andrew Fisher,BRN,male,1991-12-15,,,athletics,0,0,0 -351340396,Andrew Graham Peebles,ZIM,male,1989-01-09,1.91,87.0,rowing,0,0,0 -99309663,Andrew Lewis,TTO,male,1989-11-30,1.77,79.0,sailing,0,0,0 -165292505,Andrew Pozzi,GBR,male,1992-05-15,1.9,84.0,athletics,0,0,0 -926287704,Andrew Riley,JAM,male,1988-09-06,1.85,82.0,athletics,0,0,0 -530085605,Andrew T Hodge,GBR,male,1979-03-03,1.92,97.0,rowing,1,0,0 -191993260,Andrew Thomas Bisek,USA,male,1986-08-18,1.78,81.0,wrestling,0,0,0 -384767370,Andrew Thomas Mlugu,TAN,male,1995-11-12,1.58,73.0,judo,0,0,0 -665587816,Andrew Vernon,GBR,male,1986-01-07,1.82,71.0,athletics,0,0,0 -584794145,Andrew Willis,GBR,male,1990-12-03,1.89,88.0,aquatics,0,0,0 -559300154,Andrew Yorke,CAN,male,1988-12-20,1.9,75.0,triathlon,0,0,0 -930021019,Andrey Amador Bikkazakova,CRC,male,1986-08-29,1.83,73.0,cycling,0,0,0 -642024679,Andrey Ashchev,RUS,male,1983-05-10,2.02,105.0,volleyball,0,0,0 -213371438,Andrey Fonseca,CRC,male,1993-04-08,1.68,56.0,cycling,0,0,0 -915732512,Andrey Grechin,RUS,male,1987-10-21,1.99,99.0,aquatics,0,0,0 -967358166,Andrey Kraitor,RUS,male,1992-11-05,1.79,90.0,canoe,0,0,0 -927974669,Andrey Kuznetsov,RUS,male,1991-02-22,1.85,72.0,tennis,0,0,0 -132173574,Andrey Likhovitskiy,BLR,male,1986-06-23,1.72,66.0,gymnastics,0,0,0 -54828663,Andrey Mitin,RUS,male,1970-04-05,1.74,80.0,equestrian,0,0,0 -142867058,Andrey Petrov,UZB,male,1986-10-13,1.69,62.0,athletics,0,0,0 -434890755,Andrey Yerguchyov,KAZ,male,1995-04-23,1.88,100.0,canoe,0,0,0 -102165738,Andrey Yudin,RUS,male,1996-06-06,1.75,70.0,gymnastics,0,0,0 -295536761,Andrey Zeits,KAZ,male,1986-12-14,,,cycling,0,0,0 -317735498,Andri Eleftheriou,CYP,female,1984-06-19,1.62,50.0,shooting,0,0,0 -619323217,Andrii Govorov,UKR,male,1992-04-10,1.9,89.0,aquatics,0,0,0 -730965977,Andrii Khripta,UKR,male,1986-11-29,,,cycling,0,0,0 -709643676,Andrii Sienichkin,UKR,male,1991-05-01,1.75,62.0,gymnastics,0,0,0 -789218383,Andrija Prlainovic,SRB,male,1987-04-28,1.87,93.0,aquatics,1,0,0 -397768337,Andrija Sljukic,SRB,male,1995-09-08,1.96,92.0,rowing,0,0,0 -506743542,Andrique Allisop,SEY,male,1993-06-02,1.75,,boxing,0,0,0 -180553214,Andrius Gudzius,LTU,male,1991-02-14,2.0,130.0,athletics,0,0,0 -109066206,Andrius Sidlauskas,LTU,male,1997-04-06,1.87,77.0,aquatics,0,0,0 -910064394,Andriy Fedechko,UKR,male,1990-12-04,1.78,72.0,modern pentathlon,0,0,0 -856444352,Andriy Grivko,UKR,male,1983-08-07,1.8,69.0,cycling,0,0,0 -777498041,Andriy Kvyatkovskyy,UKR,male,1990-02-02,1.75,65.0,wrestling,0,0,0 -129967030,Andriy Protsenko,UKR,male,1988-05-20,1.94,80.0,athletics,0,0,0 -572732712,Andriy Yagodka,UKR,male,1988-07-06,1.95,85.0,fencing,0,0,0 -277394115,Andro Buslje,CRO,male,1986-01-04,2.0,115.0,aquatics,0,1,0 -526943972,Andy Murray,GBR,male,1987-05-15,1.88,85.0,tennis,1,0,0 -551671372,Andy Ogide,NGR,male,1987-10-01,2.04,107.0,basketball,0,0,0 -918724681,Andy Pereira,CUB,male,1989-08-31,1.66,73.0,table tennis,0,0,0 -573932079,Ane Marcelle dos Santos,BRA,female,1994-01-12,1.53,53.0,archery,0,0,0 -259399361,Ane Santesteban Gonzalez,ESP,female,1990-12-12,1.6,48.0,cycling,0,0,0 -855774717,Anel Oosthuizen,RSA,female,1995-04-22,1.67,55.0,athletics,0,0,0 -282925578,Anette Viborg,DEN,female,1990-09-17,1.72,68.0,sailing,0,0,0 -868296400,Anezka Drahotova,CZE,female,1995-07-22,1.83,58.0,athletics,0,0,0 -26642064,Anfisa Pochkalova,UKR,female,1990-03-01,1.78,70.0,fencing,0,0,0 -404311165,Angel Correa,ARG,male,1995-03-09,1.74,80.0,football,0,0,0 -618761201,Angel Fournier Rodriguez,CUB,male,1987-12-31,1.98,108.0,rowing,0,0,0 -435819850,Angel Kodinov,BUL,male,1997-09-04,1.88,88.0,canoe,0,0,0 -303559145,Angel Lopez,ESP,male,1992-01-16,1.72,83.0,rugby sevens,0,0,0 -663091466,Angel McCoughtry,USA,female,1986-09-10,1.85,70.0,basketball,1,0,0 -283823153,Angel Pulgar,VEN,male,1989-02-07,1.74,79.0,cycling,0,0,0 -820102676,Angela Castro,BOL,female,1993-02-21,1.6,54.0,athletics,0,0,0 -916809801,Angela Clavijo,COL,female,1993-09-01,1.63,62.0,football,0,0,0 -287231198,Angela Hannah,GBR,female,1986-03-24,1.74,72.0,canoe,0,0,0 -948174500,Angela Malestein,NED,female,1993-01-31,1.73,66.0,handball,0,0,0 -859256652,Angela Petty,NZL,female,1991-08-16,1.68,58.0,athletics,0,0,0 -772558236,Angela Tenorio,ECU,female,1996-01-27,1.63,56.0,athletics,0,0,0 -789985846,Angela Whyte,CAN,female,1980-05-22,1.7,62.0,athletics,0,0,0 -14266301,Angela del Pan,ESP,female,1985-04-19,1.73,68.0,rugby sevens,0,0,0 -424933321,Angelica Bengtsson,SWE,female,1993-07-08,1.63,52.0,athletics,0,0,0 -518674471,Angelica Delgado,USA,female,1990-12-14,1.61,52.0,judo,0,0,0 -327887923,Angelica Moser,SUI,female,1997-10-09,1.69,65.0,athletics,0,0,0 -610826770,Angelica Roos,SWE,female,1989-04-15,1.58,58.0,weightlifting,0,0,0 -812402263,Angelica Wallen,SWE,female,1986-04-11,1.72,70.0,handball,0,0,0 -499427026,Angelika Cichocka,POL,female,1988-03-15,1.7,56.0,athletics,0,0,0 -647265868,Angelika Sita Ouedraogo,BUR,female,1993-12-04,1.72,63.0,aquatics,0,0,0 -24258423,Angelina Kysla,UKR,female,1991-02-15,1.58,49.0,gymnastics,0,0,0 -806788576,Angelina Melnikova,RUS,female,2000-07-18,1.51,44.0,gymnastics,0,1,0 -175332035,Angelique Kerber,GER,female,1988-01-18,1.73,68.0,tennis,0,1,0 -493430225,Angelos Vlachopoulos,GRE,male,1991-09-28,1.79,75.0,aquatics,0,0,0 -457358368,Angie Orjuela,COL,female,1989-05-09,1.58,46.0,athletics,0,0,0 -697735361,Angie Sabrina Gonzalez,VEN,female,1981-01-03,1.6,57.0,cycling,0,0,0 -618528044,Angus Groom,GBR,male,1992-06-16,1.95,94.0,rowing,0,0,0 -482234536,Anicka Newell,CAN,female,1993-08-05,1.75,64.0,athletics,0,0,0 -143427231,Anicka van Emden,NED,female,1986-12-10,1.69,63.0,judo,0,0,1 -441101021,Anika Lorenz,GER,female,1990-12-09,1.72,70.0,sailing,0,0,0 -54089758,Anilda Thomas,IND,female,1993-05-06,,,athletics,0,0,0 -393115111,Anirban Lahiri,IND,male,1987-06-29,1.72,80.0,golf,0,0,0 -52111806,Anish Khem,FIJ,male,1993-08-27,1.75,67.0,football,0,0,0 -795806548,Anisha Vekemans,BEL,female,1991-08-17,1.6,52.0,cycling,0,0,0 -998460252,Anissa Khelfaoui,ALG,female,1991-08-29,1.68,62.0,fencing,0,0,0 -145066330,Anita Alvarez,USA,female,1996-12-02,1.71,51.0,aquatics,0,0,0 -790724196,Anita Hinriksdottir,ISL,female,1996-01-13,1.72,49.0,athletics,0,0,0 -709319591,Anita Marton,HUN,female,1989-01-15,1.72,95.0,athletics,0,0,1 -79802394,Anita McLAREN,NZL,female,1987-10-02,1.63,56.0,hockey,0,0,0 -175586177,Anita Wlodarczyk,POL,female,1985-08-08,1.78,95.0,athletics,1,0,0 -865947696,Aniuar Geduev,RUS,male,1987-01-26,1.73,74.0,wrestling,0,1,0 -358118028,Aniya Necol Louissaint,HAI,female,1998-09-09,1.73,67.0,taekwondo,0,0,0 -639948235,Anja Crevar,SRB,female,2000-05-24,1.64,49.0,aquatics,0,0,0 -623213060,Anja Klinar,SLO,female,1988-04-03,1.7,62.0,aquatics,0,0,0 -699323942,Anja Mittag,GER,female,1985-05-16,1.68,58.0,football,1,0,0 -616847626,Anja Scherl,GER,female,1986-04-12,1.6,48.0,athletics,0,0,0 -109335235,Anjelina Nadai Lohalith,ROT,female,1993-01-01,1.63,50.0,athletics,0,0,0 -571260050,Anju Takamizawa,JPN,female,1996-03-06,1.65,50.0,athletics,0,0,0 -642447313,Ankhtsetseg Munkhjantsan,MGL,female,1997-12-25,1.63,69.0,weightlifting,0,0,0 -307535936,Ankit Sharma,IND,male,1992-07-20,1.77,75.0,athletics,0,0,0 -266461639,Ann-Sophie Duyck,BEL,female,1987-07-23,1.72,60.0,cycling,0,0,0 -327178595,Anna Boada Peiro,ESP,female,1992-12-30,1.65,60.0,rowing,0,0,0 -85532849,Anna Cruz,ESP,female,1986-10-27,1.76,60.0,basketball,0,1,0 -921750536,Anna Danesi,ITA,female,1996-04-20,1.95,75.0,volleyball,0,0,0 -110782111,Anna Dowgiert,POL,female,1990-07-15,1.7,58.0,aquatics,0,0,0 -636501122,Anna Emilie Moller,DEN,female,1997-07-28,1.66,52.0,athletics,0,0,0 -800527374,Anna Espar Llaquet,ESP,female,1993-01-08,1.8,66.0,aquatics,0,0,0 -592806648,Anna Flanagan,AUS,female,1992-01-08,1.8,66.0,hockey,0,0,0 -315491322,Anna Green,NZL,female,1990-08-20,1.67,57.0,football,0,0,0 -739353909,Anna Greta Olasz,HUN,female,1993-09-19,1.68,55.0,aquatics,0,0,0 -721775367,Anna Grineva,RUS,female,1988-01-31,1.85,87.0,aquatics,0,0,1 -471756502,Anna Hahner,GER,female,1989-11-20,1.65,48.0,athletics,0,0,0 -128450991,Anna Illes,HUN,female,1994-02-21,1.8,73.0,aquatics,0,0,0 -165448816,Anna Incerti,ITA,female,1980-01-19,1.68,44.0,athletics,0,0,0 -672606405,Anna Jagaciak,POL,female,1990-02-10,1.77,59.0,athletics,0,0,0 -570157500,Anna Jenny Fransson,SWE,female,1987-07-18,1.69,73.0,wrestling,0,0,1 -218793925,Anna Karnaukh,RUS,female,1993-08-31,1.73,61.0,aquatics,0,0,1 -144902061,Anna Karolina Schmiedlova,SVK,female,1994-09-13,1.76,63.0,tennis,0,0,0 -959541631,Anna Kasprzak,DEN,female,1989-12-08,1.73,66.0,equestrian,0,0,0 -112286651,Anna Kielbasinska,POL,female,1990-06-26,1.7,59.0,athletics,0,0,0 -573321803,Anna Knauer,GER,female,1995-02-20,1.7,60.0,cycling,0,0,0 -711366566,Anna Korakaki,GRE,female,1996-04-08,1.75,65.0,shooting,1,0,1 -839118437,Anna Kornuta,UKR,female,1988-11-10,1.68,57.0,athletics,0,0,0 -550413879,Anna Laurell Nash,SWE,female,1980-02-12,1.84,,boxing,0,0,0 -759876501,Anna Lunyova,UKR,female,1991-10-01,1.76,60.0,athletics,0,0,0 -688177663,Anna Maliszewska,POL,female,1993-07-04,1.7,52.0,modern pentathlon,0,0,0 -818693717,Anna Malova,RUS,female,1990-04-16,1.75,59.0,volleyball,0,0,0 -953320535,Anna Malvina Svennung,SWE,female,1984-10-24,1.78,74.0,rowing,0,0,0 -621267862,Anna Maria Mazzetti,ITA,female,1988-08-25,1.61,50.0,triathlon,0,0,0 -334806416,Anna Maria Sepp,EST,female,1996-02-02,1.72,64.0,sailing,0,0,0 -988042479,Anna Marton,HUN,female,1995-03-31,1.8,70.0,fencing,0,0,0 -211067010,Anna Meares,AUS,female,1983-09-21,1.65,70.0,cycling,0,0,1 -47625127,Anna Nordqvist,SWE,female,1987-06-10,1.83,75.0,golf,0,0,0 -613249321,Anna Ntountounaki,GRE,female,1995-09-09,1.77,66.0,aquatics,0,0,0 -68194105,Anna Plichta,POL,female,1992-02-10,1.76,60.0,cycling,0,0,0 -602398132,Anna Santamans,FRA,female,1993-04-25,1.77,61.0,aquatics,0,0,0 -799918043,Anna Sedoykina,RUS,female,1984-08-01,1.84,74.0,handball,1,0,0 -480514013,Anna Sen,RUS,female,1990-12-03,1.86,81.0,handball,1,0,0 -320661487,Anna Sztankovics,HUN,female,1996-01-10,1.77,63.0,aquatics,0,0,0 -475900147,Anna Timofeeva,RUS,female,1987-07-18,1.78,86.0,aquatics,0,0,1 -553165489,Anna Titimets,UKR,female,1989-03-05,1.73,63.0,athletics,0,0,0 -760246597,Anna Ustyukhina,RUS,female,1989-03-18,1.77,70.0,aquatics,0,0,1 -628102440,Anna Voloshyna,UKR,female,1991-09-26,1.68,53.0,aquatics,0,0,0 -363091224,Anna Vyakhireva,RUS,female,1995-03-13,1.68,63.0,handball,1,0,0 -984260519,Anna Wierzbowska,POL,female,1990-12-08,1.84,80.0,rowing,0,0,0 -232686773,Anna van der Breggen,NED,female,1990-04-18,1.67,56.0,cycling,1,0,1 -173475309,Anna-Lena Groenefeld,GER,female,1985-06-04,1.8,73.0,tennis,0,0,0 -878372430,Anna-Maria Alexandri,AUT,female,1997-09-15,1.7,48.0,aquatics,0,0,0 -25318407,Annabel Laure Ali,CMR,female,1985-03-04,1.76,75.0,wrestling,0,0,0 -849907578,Annalie Longo,NZL,female,1991-07-01,1.56,54.0,football,0,0,0 -36119786,Annalise Murphy,IRL,female,1990-02-01,1.84,72.0,sailing,0,1,0 -892128901,Anne Andersen,DEN,female,1992-11-10,1.83,86.0,rowing,0,0,1 -618276677,Anne Buijs,NED,female,1991-12-02,1.9,73.0,volleyball,0,0,0 -8185560,Anne Cairns,SAM,female,1981-01-11,,,canoe,0,0,0 -979365404,Anne Haug,GER,female,1983-01-20,1.64,51.0,triathlon,0,0,0 -862170739,Anne Holm Baumeister,DEN,female,1987-12-29,1.68,54.0,athletics,0,0,0 -470667048,Anne Lolk Thomsen,DEN,female,1983-05-15,1.75,60.0,rowing,0,0,0 -554467437,Anne Schroder,GER,female,1994-09-11,1.7,58.0,hockey,0,0,1 -676612958,Anne Terpstra,NED,female,1991-01-05,1.66,57.0,cycling,0,0,0 -663634916,Anne Zagre,BEL,female,1990-03-13,1.76,68.0,athletics,0,0,0 -723096716,Anne-Mari Hyrylainen,FIN,female,1978-08-15,1.68,50.0,athletics,0,0,0 -800780979,Anne-Marie Rindom,DEN,female,1991-06-14,1.7,68.0,sailing,0,0,1 -869195887,Anneisha McLaughlin-Whilby,JAM,female,1986-01-06,1.7,66.0,athletics,0,1,0 -455588224,Annekatrin Thiele,GER,female,1984-10-18,1.73,68.0,rowing,1,0,0 -428641250,Anneliese Rubie,AUS,female,1992-04-22,1.71,58.0,athletics,0,0,0 -392790304,Anneloes van Veen,NED,female,1990-08-07,1.77,67.0,sailing,0,0,0 -389902510,Annemiek Bekkering,NED,female,1991-08-05,1.6,54.0,sailing,0,0,0 -706092659,Annemiek van Vleuten,NED,female,1982-10-08,1.68,59.0,cycling,0,0,0 -279678648,Annette Duetz,NED,female,1993-06-29,1.8,74.0,sailing,0,0,0 -297653287,Annette Edmondson,AUS,female,1991-12-12,1.71,65.0,cycling,0,0,0 -790807668,Anni Teija Orvokki Vuohijoki,FIN,female,1988-05-24,1.62,62.0,weightlifting,0,0,0 -925256825,Annie Haeger,USA,female,1990-02-05,1.68,58.0,sailing,0,0,0 -960982811,Annika Beck,GER,female,1994-02-16,1.67,59.0,tennis,0,0,0 -986477773,Annika Bochmann,GER,female,1991-07-16,1.67,58.0,sailing,0,0,0 -724113769,Annika Bruhn,GER,female,1992-10-05,1.83,69.0,aquatics,0,0,0 -614874748,Annika Langvad,DEN,female,1984-03-22,1.74,63.0,cycling,0,0,0 -196922673,Annika Roloff,GER,female,1991-03-10,1.66,58.0,athletics,0,0,0 -595641112,Annika Schleu,GER,female,1990-04-03,1.75,63.0,modern pentathlon,0,0,0 -799645889,Annika Sprink,GER,female,1995-10-20,1.73,61.0,hockey,0,0,1 -156381580,Annike Krahn,GER,female,1985-07-01,1.73,61.0,football,1,0,0 -521298946,Annsert Whyte,JAM,male,1987-10-04,1.88,86.0,athletics,0,0,0 -403056126,Ano Kuwai,JPN,female,1989-10-20,1.72,70.0,rugby sevens,0,0,0 -618542850,Anouk Verge-Depre,SUI,female,1992-02-11,1.85,70.0,volleyball,0,0,0 -57200072,Anouk Vetter,NED,female,1993-02-04,1.77,62.0,athletics,0,0,0 -976455975,Anqi Xu,CHN,female,1992-01-23,1.82,76.0,fencing,0,1,0 -576815287,Antanas Kavaliauskas,LTU,male,1984-09-19,2.08,114.0,basketball,0,0,0 -224127843,Anthonique Strachan,BAH,female,1993-08-22,1.68,57.0,athletics,0,0,0 -293695659,Anthonny Sitraka Ralefy,MAD,male,1995-07-10,1.82,79.0,aquatics,0,0,0 -547860838,Anthony Barbar,LIB,male,1992-11-18,,,aquatics,0,0,0 -76732813,Anthony Dean,AUS,male,1991-04-22,1.75,87.0,cycling,0,0,0 -261223419,Anthony Ervin,USA,male,1981-05-26,1.91,80.0,aquatics,2,0,0 -179926166,Anthony Fahden,USA,male,1986-02-27,1.81,71.0,rowing,0,0,0 -335737888,Anthony Mylann Obame,GAB,male,1988-09-10,1.9,97.0,taekwondo,0,0,0 -63461595,Anthony Perez,VEN,male,1993-09-29,2.05,93.0,basketball,0,0,0 -818993615,Anthony Romaniw,CAN,male,1991-09-15,1.8,80.0,athletics,0,0,0 -368458137,Anthony Terras,FRA,male,1985-06-21,1.7,69.0,shooting,0,0,0 -575174171,Anthony Zambrano,COL,male,1998-01-17,1.84,72.0,athletics,0,0,0 -947380759,Antigoni Drisbioti,GRE,female,1984-03-21,1.61,50.0,athletics,0,0,0 -851486993,Antje von Seydlitz-Kurzbach,CAN,female,1990-09-16,1.79,76.0,rowing,0,0,0 -627845913,Antoaneta Boneva,BUL,female,1986-01-17,1.68,70.0,shooting,0,0,0 -969463454,Antoine Adams,SKN,male,1988-08-31,1.8,79.0,athletics,0,0,0 -110778822,Antoine Bouchard,CAN,male,1994-08-24,1.8,66.0,judo,0,0,0 -352830774,Antoine Diot,FRA,male,1989-01-17,1.93,86.0,basketball,0,0,0 -778856814,Antoine Duchesne,CAN,male,1991-09-12,1.89,73.0,cycling,0,0,0 -638759707,Antoine Gakeme,BDI,male,1991-12-24,1.69,60.0,athletics,0,0,0 -265482075,Antoine Gillet,BEL,male,1988-03-22,1.85,78.0,athletics,0,0,0 -418069781,Antoine Valois-Fortier,CAN,male,1990-03-13,1.9,81.0,judo,0,0,0 -124031196,Antoinette Gasongo,BDI,female,1994-04-24,1.7,51.0,judo,0,0,0 -67909068,Antoinette Nana Djimou Ida,FRA,female,1985-08-02,1.74,69.0,athletics,0,0,0 -939122275,Anton Astakhov,RUS,male,1987-04-30,1.76,85.0,shooting,0,0,0 -866446784,Anton Avdeev,RUS,male,1986-09-08,1.74,85.0,fencing,0,0,0 -300749546,Anton Braun,GER,male,1990-04-28,2.02,104.0,rowing,0,0,0 -989516794,Anton Chupkov,RUS,male,1997-02-22,1.88,71.0,aquatics,0,0,1 -55365103,Anton Dahlberg,SWE,male,1985-05-10,1.82,71.0,sailing,0,0,0 -727981250,Anton Fokin,UZB,male,1982-11-13,1.68,57.0,gymnastics,0,0,0 -393253446,Anton Ipsen,DEN,male,1994-09-04,1.86,74.0,aquatics,0,0,0 -620488948,Anton Kosmac,SLO,male,1976-12-14,1.83,66.0,athletics,0,0,0 -469779027,Anton Kucmin,SVK,male,1984-06-07,1.8,64.0,athletics,0,0,0 -108256011,Anton McKee,ISL,male,1993-12-18,1.83,84.0,aquatics,0,0,0 -835942400,Anton Prilepov,BLR,male,1984-02-05,1.86,96.0,archery,0,0,0 -463095413,Anton Rizov,BUL,male,1987-12-29,1.7,75.0,shooting,0,0,0 -299113520,Anton Sintsov,RUS,male,1985-02-03,1.7,62.0,cycling,0,0,0 -75967084,Anton Sudesh Peiris Kurukulasooriyage,SRI,male,1985-02-03,1.65,62.0,weightlifting,0,0,0 -877558321,Anton Zarutskiy,RUS,male,1986-04-27,1.95,94.0,rowing,0,0,0 -723171334,Antonela Mena,ARG,female,1988-02-28,1.8,84.0,handball,0,0,0 -972925193,Antonella Palmisano,ITA,female,1991-08-06,1.65,45.0,athletics,0,0,0 -96294708,Antonella del Core,ITA,female,1980-11-05,1.8,75.0,volleyball,0,0,0 -281632549,Antoni Kindler,CAN,male,1988-05-16,1.88,85.0,hockey,0,0,0 -881359443,Antonia Moreira,ANG,female,1982-04-26,1.72,70.0,judo,0,0,0 -773591831,Antonin Rouzier,FRA,male,1986-08-18,2.0,102.0,volleyball,0,0,0 -945091038,Antonino Barilla,ITA,male,1987-11-28,1.87,96.0,shooting,0,0,0 -952687673,Antonio Abadia,ESP,male,1990-07-02,1.7,65.0,athletics,0,0,0 -946006998,Antonio Alkana,RSA,male,1990-04-12,1.83,76.0,athletics,0,0,0 -438649023,Antonio Arroyo Perez,ESP,male,1994-05-09,1.7,68.0,aquatics,0,0,0 -198987455,Antonio Fernandez,ESP,male,1991-06-12,1.84,76.0,archery,0,0,0 -778264975,Antonio J. Leal,VEN,male,1987-06-25,1.65,60.0,fencing,0,0,0 -53317288,Antonio PETROVIC,MNE,male,1982-09-24,1.93,98.0,aquatics,0,0,0 -151724741,Antonio Petkovic,CRO,male,1986-01-11,1.9,90.0,aquatics,0,1,0 -824387423,Antonio Vargas,USA,male,1996-08-15,1.68,,boxing,0,0,0 -268280424,Antonis Martasidis,CYP,male,1992-06-14,1.78,85.0,weightlifting,0,0,0 -565509368,Antony Fowler,GBR,male,1991-03-10,1.79,,boxing,0,0,0 -801230201,Antony Lozano,HON,male,1993-04-25,1.82,81.0,football,0,0,0 -500105232,Antri Christoforou,CYP,female,1992-04-02,1.66,53.0,cycling,0,0,0 -470808417,Antti Ruuskanen,FIN,male,1984-02-21,1.89,86.0,athletics,0,0,0 -329333328,Antwon Hicks,NGR,male,1983-03-12,1.88,80.0,athletics,0,0,0 -196778355,Anuradha Indrajith Cooray,SRI,male,1978-03-24,1.74,58.0,athletics,0,0,0 -807714880,Anuradha Thokchom,IND,female,1989-02-02,1.62,54.0,hockey,0,0,0 -479087750,Anvar Yunusov,TJK,male,1987-02-01,1.69,,boxing,0,0,0 -500334706,Anyika Onuora,GBR,female,1984-10-28,1.78,76.0,athletics,0,0,1 -503893240,Anze Tavcar,SLO,male,1994-12-02,1.87,79.0,aquatics,0,0,0 -585429109,Anzor Boltukaev,RUS,male,1986-04-05,1.8,97.0,wrestling,0,0,0 -903085335,Apisai Domolailai,FIJ,male,1989-04-16,1.92,98.0,rugby sevens,1,0,0 -399850299,Apolonia Vaivai,FIJ,female,1991-02-05,1.37,69.0,weightlifting,0,0,0 -746896443,Apostolos Christou,GRE,male,1996-11-01,1.98,88.0,aquatics,0,0,0 -23572147,Apostolos Parellis,CYP,male,1985-07-24,1.86,110.0,athletics,0,0,0 -9514544,April Ross,USA,female,1982-06-20,1.86,74.0,volleyball,0,0,1 -728939478,Apurvi Chandela,IND,female,1993-01-04,1.57,54.0,shooting,0,0,0 -706967900,Arajik Marutjan,GER,male,1992-08-15,1.8,,boxing,0,0,0 -450196345,Arakel Mirzoyan,ARM,male,1989-10-21,1.7,84.0,weightlifting,0,0,0 -481716571,Aram Avagyan,ARM,male,1991-01-18,1.73,,boxing,0,0,0 -69028117,Aran Zalewski,AUS,male,1991-03-21,1.86,80.0,hockey,0,0,0 -391027633,Arantxa Parra-Santonja,ESP,female,1982-11-09,1.76,61.0,tennis,0,0,0 -982181588,Arantza Gumucio,CHI,female,1989-10-04,1.65,61.0,sailing,0,0,0 -319236400,Aras Kaya,TUR,male,1994-04-04,1.81,60.0,athletics,0,0,0 -756028808,Arashi Morisaka,JPN,male,1996-07-02,1.76,,boxing,0,0,0 -174361869,Arcangeline Fouodji Sonkbou,CMR,female,1987-08-26,1.58,68.0,weightlifting,0,0,0 -765868860,Ardo Arusaar,EST,male,1988-06-24,1.81,102.0,wrestling,0,0,0 -554149372,Are Hansen,NOR,male,1982-01-16,,,shooting,0,0,0 -269857952,Are Strandli,NOR,male,1988-08-18,,,rowing,0,0,1 -488754594,Areneo David,MAW,male,1995-06-06,1.64,58.0,archery,0,0,0 -67773543,Ari Mannio,FIN,male,1987-07-23,1.85,100.0,athletics,0,0,0 -381423797,Ari-Pekka Liukkonen,FIN,male,1989-02-09,2.08,92.0,aquatics,0,0,0 -952365137,Aria Fischer,USA,female,1999-03-02,1.83,78.0,aquatics,1,0,0 -76956627,Arialis J. Gandulla,CUB,female,1995-06-22,1.7,75.0,athletics,0,0,0 -68245783,Ariana Kira Hilborna,LAT,female,1980-09-19,1.67,52.0,athletics,0,0,0 -69546573,Ariana Orrego,PER,female,1998-09-25,1.57,49.0,gymnastics,0,0,0 -124325348,Ariana Washington,USA,female,1996-08-27,1.76,61.0,athletics,0,0,0 -978867868,Ariane Fortin,CAN,female,1984-11-20,1.75,,boxing,0,0,0 -177132328,Arianna Castiglioni,ITA,female,1997-08-15,1.67,55.0,aquatics,0,0,0 -571388778,Arianna Errigo,ITA,female,1988-06-06,1.8,68.0,fencing,0,0,0 -712016882,Arianna Garibotti,ITA,female,1989-12-09,1.69,64.0,aquatics,0,1,0 -807270955,Arianna Perilli,SMR,female,1978-05-01,1.61,65.0,shooting,0,0,0 -705250725,Arianna Schivo,ITA,female,1986-09-16,1.58,47.0,equestrian,0,0,0 -656130098,Arianna Vanderpool-Wallace,BAH,female,1990-03-04,1.68,61.0,aquatics,0,0,0 -197129425,Arina Openysheva,RUS,female,1999-03-24,1.68,59.0,aquatics,0,0,0 -520698565,Arina Rodionova,AUS,female,1989-12-15,,,tennis,0,0,0 -906864947,Arina Tsitsilina,BLR,female,1998-10-09,1.73,50.0,gymnastics,0,0,0 -713644170,Arisa Sato,JPN,female,1989-07-18,1.64,52.0,volleyball,0,0,0 -159588097,Ariya Jutanugarn,THA,female,1995-11-23,1.74,73.0,golf,0,0,0 -30042829,Ariya Phounsavath,LAO,male,1991-03-02,1.82,58.0,cycling,0,0,0 -388943,Arkadiusz Michalski,POL,male,1990-01-07,1.8,105.0,weightlifting,0,0,0 -720999336,Arlen Lopez,CUB,male,1993-02-21,1.78,,boxing,1,0,0 -292905261,Arlenis Sierra Canadilla,CUB,female,1992-12-07,1.62,57.0,cycling,0,0,0 -991852219,Arleta Podolak,POL,female,1993-10-20,1.6,57.0,judo,0,0,0 -207170334,Arley Rodriguez,COL,male,1993-02-13,1.76,67.0,football,0,0,0 -467565690,Arli Chontey,KAZ,male,1992-07-01,1.5,56.0,weightlifting,0,0,0 -708613279,Arman Hall,USA,male,1994-02-12,1.83,74.0,athletics,1,0,0 -653569053,Arman-Marshall Silla,BLR,male,1994-07-13,2.03,105.0,taekwondo,0,0,0 -583809753,Armandas Kelmelis,LTU,male,1998-03-22,1.93,86.0,rowing,0,0,0 -166236142,Arnaud Hybois,FRA,male,1982-01-26,1.8,74.0,canoe,0,0,0 -974000570,Arnis Rumbenieks,LAT,male,1988-04-04,1.75,63.0,athletics,0,0,0 -1436864,Arokia Rajiv,IND,male,1991-05-22,1.77,64.0,athletics,0,0,0 -459345576,Aron Baynes,AUS,male,1986-12-09,2.07,115.0,basketball,0,0,0 -858784469,Aron Gadorfalvi,HUN,male,1977-12-05,1.84,73.0,sailing,0,0,0 -725424114,Aron Kifle,ERI,male,1998-02-20,,,athletics,0,0,0 -754963695,Aron Szilagyi,HUN,male,1990-01-14,1.8,78.0,fencing,1,0,0 -279584048,Arsen Eraliev,KGZ,male,1990-05-15,1.65,59.0,wrestling,0,0,0 -505546970,Arsen Julfalakyan,ARM,male,1987-05-08,1.66,76.0,wrestling,0,0,0 -223079860,Arseth Heather,MRI,female,1991-11-30,1.71,61.0,aquatics,0,0,0 -361362188,Arslanbek Achilov,TKM,male,1993-07-01,1.77,,boxing,0,0,0 -75218682,Artem Bloshenko,UKR,male,1985-02-01,1.87,100.0,judo,0,0,0 -552816016,Artem Chebotarev,RUS,male,1988-10-26,1.84,,boxing,0,0,0 -996041766,Artem Ermakov,RUS,male,1982-03-16,1.88,80.0,volleyball,0,0,0 -172069479,Artem Harutyunyan,GER,male,1990-08-13,1.72,,boxing,0,0,1 -914185536,Artem Kosov,RUS,male,1986-08-04,1.93,96.0,rowing,0,0,0 -102564991,Artem Morozov,UKR,male,1980-02-29,1.95,100.0,rowing,0,0,0 -307289001,Artem Pochtarov,UKR,male,1993-07-24,1.83,77.0,badminton,0,0,0 -67482757,Artem Volvich,RUS,male,1990-01-22,2.08,96.0,volleyball,0,0,0 -770170821,Artemi Gavezou,ESP,female,1994-06-19,1.69,55.0,gymnastics,0,1,0 -268835792,Arthur Abele,GER,male,1986-07-30,1.84,85.0,athletics,0,0,0 -33769282,Arthur Bergo,BRA,male,1994-03-07,1.83,83.0,rugby sevens,0,0,0 -216948866,Arthur Biyarslanov,CAN,male,1995-04-22,1.74,,boxing,0,0,0 -306653489,Arthur Lanigan-O'Keeffe,IRL,male,1991-09-13,1.82,76.0,modern pentathlon,0,0,0 -938345533,Arthur Mariano,BRA,male,1993-09-18,1.69,65.0,gymnastics,0,0,1 -11470529,Arthur Zanetti,BRA,male,1990-04-15,1.56,64.0,gymnastics,0,1,0 -353946547,Arthur van Doren,BEL,male,1994-10-01,1.78,74.0,hockey,0,1,0 -749009956,Artsem Bandarenka,BLR,male,1991-06-19,1.87,78.0,athletics,0,0,0 -270627032,Artur Akhmatkhuzin,RUS,male,1988-05-21,1.87,79.0,fencing,1,0,0 -206524686,Artur Aleksanyan,ARM,male,1991-10-21,1.9,98.0,wrestling,1,0,0 -80806141,Artur Brzozowski,POL,male,1985-03-29,1.74,67.0,athletics,0,0,0 -746970689,Artur Davtyan,ARM,male,1992-08-08,1.6,55.0,gymnastics,0,0,0 -311001055,Artur Hovhannisyan,ARM,male,1996-03-23,1.6,,boxing,0,0,0 -46547339,Artur Kozlowski,POL,male,1985-01-19,1.69,54.0,athletics,0,0,0 -802555089,Artur Mastianica,LTU,male,1992-07-30,1.87,73.0,athletics,0,0,0 -936737122,Artur Mikolajczewski,POL,male,1990-06-27,1.8,73.0,rowing,0,0,0 -74899025,Arturo Chavez,PER,male,1990-01-12,1.9,76.0,athletics,0,0,0 -729366221,Arturo Gonzalez,MEX,male,1994-09-05,1.73,70.0,football,0,0,0 -512554925,Arturo Ramirez,VEN,male,1991-09-14,1.7,65.0,athletics,0,0,0 -318342628,Arturo Rivarola Trappe,PAR,male,1989-11-02,1.83,80.0,rowing,0,0,0 -32858315,Arturs Nikiforenko,LAT,male,1992-05-03,1.85,110.0,judo,0,0,0 -512734462,Arturs Plesnieks,LAT,male,1992-01-21,1.8,104.0,weightlifting,0,0,0 -334665837,Artuur Peters,BEL,male,1996-10-26,1.93,95.0,canoe,0,0,0 -638975983,Artyom Zakharov,KAZ,male,1991-10-27,1.77,70.0,cycling,0,0,0 -231595890,Arun Panchia,NZL,male,1989-04-22,1.8,73.0,hockey,0,0,0 -531231218,Arvin Moazami Godarzi,IRI,male,1990-03-26,1.85,73.0,cycling,0,0,0 -574180353,Arya Nasimi Shad,IRI,male,1999-11-07,1.78,68.0,aquatics,0,0,0 -717411449,Asadulla Lachinau,BLR,male,1986-04-17,1.58,60.0,wrestling,0,0,0 -508304618,Asafa Powell,JAM,male,1982-11-23,1.91,93.0,athletics,1,0,0 -108415368,Asako O,JPN,female,1987-12-16,1.89,85.0,basketball,0,0,0 -454303485,Asami Yoshida,JPN,female,1987-10-09,1.65,62.0,basketball,0,0,0 -900715474,Asaramanitra Ratiarison,MAD,female,1988-01-07,1.55,48.0,judo,0,0,0 -335612059,Asbel Kiprop,KEN,male,1989-06-30,1.9,63.0,athletics,0,0,0 -481165955,Asdis Hjalmsdottir,ISL,female,1985-10-28,1.78,70.0,athletics,0,0,0 -718103063,Asena Rokomarama,FIJ,female,1996-05-02,1.6,58.0,rugby sevens,0,0,0 -436712955,Asenathi Jim,RSA,male,1992-01-26,1.76,65.0,sailing,0,0,0 -423360573,Asger Stromgaard Sorensen,DEN,male,1996-06-05,1.92,89.0,football,0,0,0 -687479557,Ash Southern,AUS,female,1992-10-22,1.88,82.0,aquatics,0,0,0 -648671470,Asha Philip,GBR,female,1990-10-25,1.64,67.0,athletics,0,0,1 -464180251,Ashlee Ankudinoff,AUS,female,1990-08-20,1.74,67.0,cycling,0,0,0 -397806865,Ashleigh Gentle,AUS,female,1991-02-25,1.71,52.0,triathlon,0,0,0 -143278150,Ashleigh Johnson,USA,female,1994-09-12,1.86,81.0,aquatics,1,0,0 -193259308,Ashleigh Moolman-Pasio,RSA,female,1985-12-09,1.63,52.0,cycling,0,0,0 -70434826,Ashleigh Nelson,GBR,female,1991-02-20,1.75,69.0,athletics,0,0,0 -667381951,Ashleigh Simon,RSA,female,1989-05-11,1.58,,golf,0,0,0 -341434045,Ashley Jackson,GBR,male,1987-08-27,1.7,73.0,hockey,0,0,0 -742039431,Ashley Kelly,IVB,female,1991-03-25,1.73,75.0,athletics,0,0,0 -790221508,Ashley Lawrence,CAN,female,1995-06-11,1.64,60.0,football,0,0,1 -896644128,Ashley McKenzie,GBR,male,1989-07-17,1.68,60.0,judo,0,0,0 -810246164,Ashley Nee,USA,female,1989-06-15,1.63,54.0,canoe,0,0,0 -889563611,Ashley Spencer,USA,female,1993-06-08,1.78,58.0,athletics,0,0,1 -405218283,Ashley Steacy,CAN,female,1987-06-28,1.58,64.0,rugby sevens,0,0,1 -151634524,Ashley Stoddart,AUS,female,1993-06-10,1.72,70.0,sailing,0,0,0 -241360203,Ashlyn Harris,USA,female,1985-10-19,1.73,64.0,football,0,0,0 -40755680,Ashraf Abouelhassan,EGY,male,1975-05-17,1.86,86.0,volleyball,0,0,0 -617579036,Ashraf Amgad Elseify,QAT,male,1995-02-20,1.85,105.0,athletics,0,0,0 -902296774,Ashton Baumann,CAN,male,1993-01-05,1.91,74.0,aquatics,0,0,0 -629254109,Ashton Eaton,USA,male,1988-01-21,1.86,81.0,athletics,1,0,0 -388101012,Ashun Wu,CHN,male,1985-06-22,1.81,81.0,golf,0,0,0 -415694006,Ashwini Chidananda Akkunji,IND,female,1987-10-07,1.75,58.0,athletics,0,0,0 -126172872,Ashwini Ponnappa,IND,female,1989-09-18,1.65,59.0,badminton,0,0,0 -95516264,Aska Cambridge,JPN,male,1993-05-31,1.79,74.0,athletics,0,1,0 -41712943,Askale Tiksa,ETH,female,1994-07-21,1.65,52.0,athletics,0,0,0 -568130066,Aslan Kakhidze,KAZ,male,1988-10-28,1.85,39.0,wrestling,0,0,0 -645540187,Asley Gonzalez,CUB,male,1989-09-05,1.79,90.0,judo,0,0,0 -95150337,Asmir Kolasinac,SRB,male,1984-10-15,1.87,140.0,athletics,0,0,0 -532768073,Asnage Castelly,HAI,male,1978-03-29,1.82,74.0,wrestling,0,0,0 -560710110,Assiya Ipek,TUR,female,1993-12-05,1.68,70.0,weightlifting,0,0,0 -750446286,Assmaa Niang,MAR,female,1983-01-04,1.68,70.0,judo,0,0,0 -713040991,Astier Nicolas,FRA,male,1989-01-19,1.8,70.0,equestrian,1,1,0 -124475429,Astou Ndour,ESP,female,1994-08-22,1.95,68.0,basketball,0,1,0 -131094271,Astou Traore,SEN,female,1981-04-30,1.85,75.0,basketball,0,0,0 -230678922,Astrid Guyart,FRA,female,1983-03-17,1.74,59.0,fencing,0,0,0 -899652187,Astrit Ajdarevic,SWE,male,1990-04-17,1.88,80.0,football,0,0,0 -137582033,Asuka Teramoto,JPN,female,1995-11-19,1.45,37.0,gymnastics,0,0,0 -6712714,Atallah Alanazi,KSA,male,1988-02-22,1.74,74.0,shooting,0,0,0 -60539950,Atanu Das,IND,male,1992-04-05,1.75,79.0,archery,0,0,0 -59630450,Atef Saad,TUN,male,1988-03-20,1.76,57.0,athletics,0,0,0 -646350766,Ates Cinar,TUR,male,1986-05-16,1.72,72.0,sailing,0,0,0 -915895832,Atheyna Bylon,PAN,female,1989-04-06,1.75,,boxing,0,0,0 -665581158,Athos Schwantes,BRA,male,1985-02-13,1.9,85.0,fencing,0,0,0 -877684883,Atsushi Arai,JPN,male,1994-02-03,1.69,62.0,aquatics,0,0,0 -50738602,Atsuto Iida,JPN,male,1993-12-24,1.81,82.0,aquatics,0,0,0 -550829050,Attapon Uea-Aree,THA,male,1989-11-18,1.75,78.0,shooting,0,0,0 -731428841,Attila Decker,HUN,male,1987-08-25,1.97,94.0,aquatics,0,0,0 -913131099,Attila Kugler,HUN,male,1986-09-16,1.86,89.0,canoe,0,0,0 -390188051,Aubrey Modiba,RSA,male,1995-07-22,1.72,64.0,football,0,0,0 -283853104,Aubrey Smith,JAM,male,1988-06-30,1.8,75.0,athletics,0,0,0 -974052589,Aude Compan,FRA,female,1993-03-03,1.73,67.0,sailing,0,0,0 -44895631,Audrey Amiel,FRA,female,1987-03-03,1.64,65.0,rugby sevens,0,0,0 -754931470,Audrey Cordon,FRA,female,1989-09-22,1.7,60.0,cycling,0,0,0 -330818489,Audrey Lacroix,CAN,female,1983-11-17,1.63,54.0,aquatics,0,0,0 -596852328,Audrey Merle,FRA,female,1995-05-19,1.53,45.0,triathlon,0,0,0 -213434791,Audrey Tcheumeo,FRA,female,1990-04-20,1.77,78.0,judo,0,1,0 -869065556,Audrey Yong,SIN,female,1994-10-02,1.56,50.0,sailing,0,0,0 -913854740,Augustin Maillefer,SUI,male,1993-04-29,1.94,98.0,rowing,0,0,0 -904782814,Augustine Lugonzo,KEN,male,1992-07-29,1.83,86.0,rugby sevens,0,0,0 -145801140,Augustine Pulu,NZL,male,1990-01-04,1.8,89.0,rugby sevens,0,0,0 -507418985,Augusto Dutra de Oliveira,BRA,male,1990-07-16,1.8,70.0,athletics,0,0,0 -818866481,Augusto Lima,BRA,male,1991-09-17,2.06,118.0,basketball,0,0,0 -551777924,Augusto Midana,GBS,male,1984-05-20,1.67,74.0,wrestling,0,0,0 -571398392,Augusto Soares,TLS,male,1986-08-22,1.65,,athletics,0,0,0 -875934579,Augusto de Paula,BRA,male,1988-06-20,1.82,79.0,hockey,0,0,0 -189592697,Aurea Cruz,PUR,female,1982-01-10,1.8,63.0,volleyball,0,0,0 -863650191,Aurelia Bradeanu,ROU,female,1979-05-05,1.8,75.0,handball,0,0,0 -757280840,Aurelie Alcindor,MRI,female,1994-03-20,1.69,47.0,athletics,0,0,0 -364491097,Aurelie Muller,FRA,female,1990-06-07,1.69,57.0,aquatics,0,0,0 -166390906,Auriane Mallo,FRA,female,1993-10-11,1.8,63.0,fencing,0,0,0 -11624617,Aurimas Adomavicius,LTU,male,1993-09-23,2.04,100.0,rowing,0,0,0 -525803886,Aurimas Didzbalis,LTU,male,1991-06-13,1.72,92.0,weightlifting,0,0,1 -741095776,Aurimas Lankas,LTU,male,1985-09-07,1.78,89.0,canoe,0,0,1 -157040817,Auriole Dongmo,CMR,female,1990-08-03,1.73,95.0,athletics,0,0,0 -957513695,Austin Hack,USA,male,1992-05-17,2.04,99.0,rowing,0,0,0 -134543473,Automne Pavia,FRA,female,1989-01-03,1.71,57.0,judo,0,0,0 -300863169,Avtandili Tchrikishvili,GEO,male,1991-03-18,1.82,80.0,judo,0,0,0 -905229347,Avtar Singh,IND,male,1992-04-03,1.8,90.0,judo,0,0,0 -932761050,Awa Ly Ndiaye,SEN,female,2000-01-15,1.69,53.0,aquatics,0,0,0 -254855388,Axel Augis,FRA,male,1990-12-06,1.72,71.0,gymnastics,0,0,0 -663484224,Axel Harstedt,SWE,male,1987-02-28,1.97,135.0,athletics,0,0,0 -454328324,Axel Muller,ARG,male,1993-11-25,1.83,84.0,rugby sevens,0,0,0 -874568110,Axel Werner,ARG,male,1996-02-28,1.81,82.0,football,0,0,0 -182938039,Axelle Dauwens,BEL,female,1990-12-01,1.71,62.0,athletics,0,0,0 -950658256,Aya Takeuchi,JPN,female,1986-08-05,,,rugby sevens,0,0,0 -491035500,Aya Traore,SEN,female,1983-07-27,1.83,75.0,basketball,0,0,0 -427700587,Ayaka Nishimura,JPN,female,1989-05-10,1.65,58.0,hockey,0,0,0 -555668646,Ayaka Suzuki,JPN,female,1989-09-30,1.68,65.0,rugby sevens,0,0,0 -40493277,Ayaka Takahashi,JPN,female,1990-04-19,1.65,60.0,badminton,1,0,0 -335371986,Ayami Oishi,JPN,female,1991-04-09,1.69,57.0,rowing,0,0,0 -647256767,Ayane Kurihara,JPN,female,1989-09-27,1.72,59.0,badminton,0,0,0 -136502040,Ayanleh Souleiman,DJI,male,1992-12-03,1.9,70.0,athletics,0,0,0 -691452618,Ayesha Shahriyar Mohammed Albalooshi,UAE,female,1992-01-23,1.6,57.0,weightlifting,0,0,0 -899389595,Ayman Fayez,EGY,male,1991-03-03,1.81,72.0,fencing,0,0,0 -102121811,Aymen Hammed,TUN,male,1983-07-26,1.96,100.0,handball,0,0,0 -691236,Aymen Toumi,TUN,male,1990-07-11,1.83,77.0,handball,0,0,0 -232025157,Ayomide Folorunso,ITA,female,1996-10-17,1.7,55.0,athletics,0,0,0 -585835557,Ayonika Paul,IND,female,1992-09-23,1.74,74.0,shooting,0,0,0 -375178687,Ayoub Abdellaoui,ALG,male,1993-02-16,1.75,68.0,football,0,0,0 -296010311,Ayouba Traore,MLI,male,1982-08-09,1.8,,judo,0,0,0 -702811118,Ayse Cora,TUR,female,1993-03-03,1.75,69.0,basketball,0,0,0 -256843630,Ayuko Suzuki,JPN,female,1991-10-08,1.54,39.0,athletics,0,0,0 -57499245,Ayyasamy Dharun,IND,male,1996-12-31,1.77,64.0,athletics,0,0,0 -603312305,Azad Albarzi,SYR,male,1988-01-04,1.95,85.0,aquatics,0,0,0 -121737407,Azahara Munoz,ESP,female,1987-11-19,1.67,56.0,golf,0,0,0 -284565638,Azenaide Daniela Carlos,ANG,female,1990-06-14,1.8,69.0,handball,0,0,0 -682854309,Aziz Ouhadi,MAR,male,1984-07-24,1.68,72.0,athletics,0,0,0 -295847383,Azizulhasni Awang,MAS,male,1988-01-05,1.66,69.0,cycling,0,0,1 -572495754,Azmy Mehelba,EGY,male,1991-03-26,1.72,77.0,shooting,0,0,0 -959511873,Azucena Diaz,ESP,female,1982-12-19,1.63,55.0,athletics,0,0,0 -941256298,Azza Besbes,TUN,female,1990-11-28,1.75,62.0,fencing,0,0,0 -117554316,Baard Magnus Nesteng,NOR,male,1979-05-14,1.83,80.0,archery,0,0,0 -652126944,Babett Peter,GER,female,1988-05-12,1.71,64.0,football,1,0,0 -316544316,Baboloki Thebe,BOT,male,1997-03-18,,,athletics,0,0,0 -879393745,Bachana Khorava,GEO,male,1993-03-15,1.71,67.0,athletics,0,0,0 -167699785,Bachir Mahamat,CHA,male,1996-12-01,1.86,59.0,athletics,0,0,0 -345025003,Badawy Mohamed Moneim,EGY,male,1986-01-11,1.95,91.0,volleyball,0,0,0 -21166109,Baean Jouma,SYR,female,1994-04-13,1.82,76.0,aquatics,0,0,0 -574430988,Baghdad Bounedjah,ALG,male,1991-11-24,1.89,75.0,football,0,0,0 -57983858,Bahar Caglar,TUR,female,1988-09-28,1.9,76.0,basketball,0,0,0 -417882039,Bakhodir Jalolov,UZB,male,1994-07-08,1.98,,boxing,0,0,0 -803535676,Bakhtiyar Kozhatayev,KAZ,male,1992-03-28,1.77,70.0,cycling,0,0,0 -302183046,Balasz Sziranyi Somogyi,ESP,male,1983-01-10,1.96,106.0,aquatics,0,0,0 -798097157,Balazs Baji,HUN,male,1989-06-09,1.92,85.0,athletics,0,0,0 -682683760,Balazs Erdelyi,HUN,male,1990-02-16,1.96,94.0,aquatics,0,0,0 -958780251,Balazs Harai,HUN,male,1987-04-05,2.02,110.0,aquatics,0,0,0 -458728105,Balazs Kiss,HUN,male,1983-01-27,1.78,105.0,wrestling,0,0,0 -959413498,Balint Kopasz,HUN,male,1997-01-01,1.81,72.0,canoe,0,0,0 -881638132,Balla Dieye,SEN,male,1980-11-13,1.88,68.0,taekwondo,0,0,0 -684206677,Bambanani Mbane,RSA,female,1990-03-12,1.62,59.0,football,0,0,0 -368675991,Baofang Zhao,CHN,female,1993-08-12,1.7,64.0,cycling,0,0,0 -918929048,Barakat Mubarak Al-Harthi,OMA,male,1988-06-15,1.73,67.0,athletics,0,0,0 -227683804,Barbara,BRA,female,1988-07-04,1.71,75.0,football,0,0,0 -599919416,Barbara Arenhart,BRA,female,1986-10-04,1.82,73.0,handball,0,0,0 -628540930,Barbara Bujka,HUN,female,1986-09-05,1.72,82.0,aquatics,0,0,0 -798796089,Barbara Cornudella Ravetllat,ESP,female,1992-09-06,1.6,50.0,sailing,0,0,0 -756739224,Barbara Engleder,GER,female,1982-09-16,1.62,72.0,shooting,1,0,0 -941704507,Barbara Kovacs,HUN,female,1993-07-26,1.67,52.0,athletics,0,0,0 -160245017,Barbara Matic,CRO,female,1994-12-03,1.71,70.0,judo,0,0,0 -143281351,Barbara Nwaba,USA,female,1989-01-18,1.76,66.0,athletics,0,0,0 -476278288,Barbara Pla,ESP,female,1983-07-17,1.62,61.0,rugby sevens,0,0,0 -573831491,Barbara Riveros,CHI,female,1987-08-03,1.57,46.0,triathlon,0,0,0 -19020354,Barbara Seixas de Freitas,BRA,female,1987-08-03,1.77,66.0,volleyball,0,1,0 -591676186,Barbara Szabo,HUN,female,1990-02-17,1.73,58.0,athletics,0,0,0 -121734732,Barbora Balazova,SVK,female,1992-03-18,1.69,73.0,table tennis,0,0,0 -610741199,Barbora Hermannova,CZE,female,1990-11-07,1.8,79.0,volleyball,0,0,0 -958022952,Barbora Kodedova,CZE,female,1990-02-27,1.65,54.0,modern pentathlon,0,0,0 -646823652,Barbora Mokosova,SVK,female,1997-03-10,1.68,62.0,gymnastics,0,0,0 -233978154,Barbora Seemanova,CZE,female,2000-04-01,1.75,56.0,aquatics,0,0,0 -804524103,Barbora Spotakova,CZE,female,1981-06-30,1.82,80.0,athletics,0,0,1 -203332956,Barbora Strycova,CZE,female,1986-03-28,1.65,62.0,tennis,0,0,1 -759587471,Barbora Zavadova,CZE,female,1993-01-23,1.77,68.0,aquatics,0,0,0 -467627104,Barna Bor,HUN,male,1986-12-12,1.91,130.0,judo,0,0,0 -509608912,Barnabe Delarze,SUI,male,1994-06-30,1.93,100.0,rowing,0,0,0 -444827470,Barrett Laursen,DEN,male,1994-11-17,1.84,75.0,football,0,0,0 -394220896,Barry Middleton,GBR,male,1984-01-12,1.76,70.0,hockey,0,0,0 -112086322,Bart Deurloo,NED,male,1991-02-23,1.7,60.0,gymnastics,0,0,0 -999333930,Bartlomiej Wojciech Bonk,POL,male,1984-10-11,1.81,104.0,weightlifting,0,0,0 -402969291,Bartosz Bednorz,POL,male,1994-07-25,2.01,84.0,volleyball,0,0,0 -250887268,Bartosz Jurecki,POL,male,1979-01-31,1.92,107.0,handball,0,0,0 -594052376,Bartosz Kurek,POL,male,1988-08-29,2.05,87.0,volleyball,0,0,0 -8007833,Bartosz Losiak,POL,male,1992-05-14,1.9,88.0,volleyball,0,0,0 -678195803,Bas Verwijlen,NED,male,1983-10-01,1.9,85.0,fencing,0,0,0 -902813031,Bashar Resan,IRQ,male,1996-12-22,1.75,69.0,football,0,0,0 -495486399,Bashir Abdi,BEL,male,1989-02-10,1.76,56.0,athletics,0,0,0 -785539303,Bashir Asgari Babajanzadeh Darzi,IRI,male,1989-08-20,1.88,130.0,wrestling,0,0,0 -418800406,Bassel Alrayes,QAT,male,1979-03-04,1.8,95.0,handball,0,0,0 -366413893,Bassem Hassan Mohammed,QAT,male,1987-05-31,1.77,78.0,equestrian,0,0,0 -670680423,Basten Caerts,BEL,male,1997-10-27,1.85,85.0,aquatics,0,0,0 -735742491,Bastian Steger,GER,male,1981-03-19,1.7,65.0,table tennis,0,0,1 -231798489,Bastien Auzeil,FRA,male,1989-10-22,1.95,89.0,athletics,0,0,0 -795525665,Battsetseg Soronzonbold,MGL,female,1990-05-03,1.7,67.0,wrestling,0,0,0 -409808283,Batuhan Gozgec,TUR,male,1990-12-20,1.72,,boxing,0,0,0 -38294792,Bauke Mollema,NED,male,1986-11-26,1.84,68.0,cycling,0,0,0 -931107334,Baul An,KOR,male,1994-03-25,1.69,66.0,judo,0,1,0 -726557644,Bautista Ezcurra,ARG,male,1995-04-21,1.8,82.0,rugby sevens,0,0,0 -887354934,Bautista Saubidet Birkner,ARG,male,1995-11-28,1.79,72.0,sailing,0,0,0 -350429572,Bayron Guama de la Cruz,ECU,male,1985-06-14,1.65,61.0,cycling,0,0,0 -298210804,Bayron Piedra,ECU,male,1982-08-19,1.75,68.0,athletics,0,0,0 -534612447,Beata Mikolajczyk,POL,female,1985-10-15,1.7,68.0,canoe,0,0,1 -663483429,Beata Naigambo,NAM,female,1980-03-11,1.67,48.0,athletics,0,0,0 -98378488,Beate Schrott,AUT,female,1988-04-15,1.77,71.0,athletics,0,0,0 -909285894,Beatrice Bartelloni,ITA,female,1993-02-05,1.65,50.0,cycling,0,0,0 -864630818,Beatrice Callegari,ITA,female,1991-12-20,1.75,60.0,aquatics,0,0,0 -496142981,Beatrice Chepkoech,KEN,female,1991-07-06,1.7,54.0,athletics,0,0,0 -30019986,Beatrice Edwige,FRA,female,1988-10-03,1.82,76.0,handball,0,1,0 -687126240,Beatrice Gyaman,GHA,female,1987-02-17,,53.0,athletics,0,0,0 -33337656,Beatrice Kamuchanga Alice,COD,female,1997-11-20,,,athletics,0,0,0 -870483785,Beatriz,BRA,female,1993-12-17,1.76,69.0,football,0,0,0 -247018721,Beatriz Elizabeth Piron Candelario,DOM,female,1995-02-27,1.5,48.0,weightlifting,0,0,0 -483770449,Beatriz Feres,BRA,female,1988-02-22,1.63,56.0,aquatics,0,0,0 -128263534,Beatriz Ferrer-Salat,ESP,female,1966-03-11,1.76,58.0,equestrian,0,0,0 -870056502,Beatriz Muhlbauer,BRA,female,1986-02-26,1.72,67.0,rugby sevens,0,0,0 -871879403,Beatriz Ortiz Munoz,ESP,female,1995-06-21,1.76,64.0,aquatics,0,0,0 -102300427,Beatriz Pascual,ESP,female,1982-05-09,1.63,53.0,athletics,0,0,0 -237614757,Beatriz Perez,ESP,female,1991-05-04,1.67,60.0,hockey,0,0,0 -844171101,Becky Sauerbrunn,USA,female,1985-06-06,1.7,61.0,football,0,0,0 -229820052,Bedan Karoki Muchiri,KEN,male,1990-08-21,1.7,54.0,athletics,0,0,0 -72183566,Bediha Gun,TUR,female,1994-10-26,1.67,53.0,wrestling,0,0,0 -389909627,Bedopassa Buassat Djonde,GBS,male,1992-09-20,1.72,97.0,wrestling,0,0,0 -618056949,Begona Garcia,ESP,female,1995-07-19,1.64,54.0,hockey,0,0,0 -471766284,Begona Gumucio,CHI,female,1992-01-14,1.69,66.0,sailing,0,0,0 -57339699,Behdad Salimikordasiabi,IRI,male,1989-12-08,1.92,170.0,weightlifting,0,0,0 -302808648,Beka Gviniashvili,GEO,male,1995-10-26,1.75,95.0,judo,0,0,0 -683307277,Bekhbayar Erdenebat,MGL,male,1992-08-13,1.61,62.0,wrestling,0,0,0 -133958272,Bekir Karayel,TUR,male,1982-05-10,1.7,62.0,athletics,0,0,0 -922060137,Bekir Ozlu,TUR,male,1988-08-30,1.7,60.0,judo,0,0,0 -252644554,Bektemir Melikuziev,UZB,male,1996-04-08,1.77,,boxing,0,1,0 -312706182,Bekzod Abdurakhmonov,UZB,male,1990-03-15,1.72,74.0,wrestling,0,0,0 -234823649,Bela Simon,HUN,male,1988-08-04,1.86,85.0,rowing,0,0,0 -25375270,Belen Casetta,ARG,female,1994-09-26,1.63,52.0,athletics,0,0,0 -126816152,Belen Succi,ARG,female,1985-10-16,1.77,72.0,hockey,0,0,0 -782850902,Belinda Hocking,AUS,female,1990-09-14,1.67,57.0,aquatics,0,0,0 -152287521,Belinda Trussell,CAN,female,1971-08-27,1.6,50.0,equestrian,0,0,0 -925936432,Ben Blankenship,USA,male,1988-12-15,1.78,63.0,athletics,0,0,0 -8906492,Ben Kanute,USA,male,1992-12-14,1.83,70.0,triathlon,0,0,0 -614521259,Ben Maher,GBR,male,1983-01-30,1.64,50.0,equestrian,0,0,0 -249786185,Ben Pinkelman,USA,male,1994-06-13,1.94,99.0,rugby sevens,0,0,0 -905247284,Ben Proud,GBR,male,1994-09-21,1.89,92.0,aquatics,0,0,0 -193268614,Ben Saxton,GBR,male,1990-06-14,1.75,73.0,sailing,0,0,0 -499087119,Ben Saxton,CAN,male,1988-11-21,2.0,92.0,volleyball,0,0,0 -764834942,Ben Schwietert,NED,male,1997-02-16,1.92,83.0,aquatics,0,0,0 -922248947,Ben St Lawrence,AUS,male,1981-11-07,1.79,65.0,athletics,0,0,0 -43362179,Ben Uzoh,NGR,male,1988-03-18,1.91,92.0,basketball,0,0,0 -113110709,Ben Vogg,SUI,male,1992-09-07,1.8,73.0,equestrian,0,0,0 -727557746,Ben Youssef Meite,CIV,male,1986-11-11,1.8,75.0,athletics,0,0,0 -719296944,Bence Demeter,HUN,male,1990-03-20,1.8,72.0,modern pentathlon,0,0,0 -795193546,Bence Pulai,HUN,male,1991-10-27,1.93,89.0,aquatics,0,0,0 -282673343,Bence Venyercsan,HUN,male,1996-01-08,1.73,56.0,athletics,0,0,0 -197443251,Bendeguz Petervari-Molnar,HUN,male,1993-03-14,1.9,95.0,rowing,0,0,0 -890462649,Benedek Olah,FIN,male,1991-03-29,1.91,87.0,table tennis,0,0,0 -139635489,Benik Abrahamyan,GEO,male,1985-07-31,1.86,115.0,athletics,0,0,0 -181551295,Benjamin Auffret,FRA,male,1995-03-15,1.66,54.0,aquatics,0,0,0 -544916259,Benjamin Ceiner,HUN,male,1992-04-24,1.97,94.0,canoe,0,0,0 -899077018,Benjamin Compaore,FRA,male,1987-08-05,1.89,83.0,athletics,0,0,0 -301130953,Benjamin Didier Hennequin,FRA,male,1984-08-24,1.74,84.0,weightlifting,0,0,0 -857144847,Benjamin Enzema,GEQ,male,1989-03-25,1.7,63.0,athletics,0,0,0 -824789786,Benjamin Errol Provisor,USA,male,1990-06-26,1.73,88.0,wrestling,0,0,0 -811228409,Benjamin Fletcher,GBR,male,1992-03-13,1.85,100.0,judo,0,0,0 -192357893,Benjamin Gischard,SUI,male,1995-11-17,1.62,62.0,gymnastics,0,0,0 -202636824,Benjamin Gratz,HUN,male,1996-02-16,1.85,76.0,aquatics,0,0,0 -65135786,Benjamin Grez Ahrens,CHI,male,1992-12-03,1.81,76.0,sailing,0,0,0 -429748988,Benjamin Hallock,USA,male,1997-11-22,1.99,108.0,aquatics,0,0,0 -138745925,Benjamin Hockin Brusquetti,PAR,male,1986-09-27,1.95,90.0,aquatics,0,0,0 -678983494,Benjamin Kiplagat,UGA,male,1989-03-04,,,athletics,0,0,0 -594397202,Benjamin Lang,FRA,male,1987-02-04,1.86,86.0,rowing,0,0,0 -735684995,Benjamin Martin,CAN,male,1987-04-18,1.82,75.0,hockey,0,0,0 -917375467,Benjamin Savsek,SLO,male,1987-03-24,1.77,74.0,canoe,0,0,0 -279378478,Benjamin Schulte,GUM,male,1995-12-22,1.93,83.0,aquatics,0,0,0 -466190490,Benjamin Steffen,SUI,male,1982-03-08,1.89,78.0,fencing,0,0,0 -54447153,Benjamin Thorne,CAN,male,1993-03-19,1.8,56.0,athletics,0,0,0 -64578005,Benjamin Toniutti,FRA,male,1989-10-30,1.83,73.0,volleyball,0,0,0 -674024954,Benjamin Vadnai,HUN,male,1995-12-30,1.83,82.0,sailing,0,0,0 -121967304,Benjamin Waterhouse,ASA,male,1985-06-11,1.72,71.0,judo,0,0,0 -12228881,Benn Harradine,AUS,male,1982-10-14,1.98,115.0,athletics,0,0,0 -381218659,Benny Muziyo Muziyo,ZAM,male,1992-11-08,,,boxing,0,0,0 -580939747,Benoit Paire,FRA,male,1989-05-08,1.94,80.0,tennis,0,0,0 -544056432,Benson Gicharu Njangiru,KEN,male,1985-05-03,1.68,,boxing,0,0,0 -141851746,Benson Kiplagat Seurei,BRN,male,1984-03-27,1.75,60.0,athletics,0,0,0 -574621304,Berik Abdrakhmanov,KAZ,male,1986-06-20,1.65,,boxing,0,0,0 -662027088,Bernadette Graf,AUT,female,1992-06-25,1.75,70.0,judo,0,0,0 -951599589,Bernadette Pujals,MEX,female,1968-06-08,1.58,55.0,equestrian,0,0,0 -155963598,Bernadette Szocs,ROU,female,1995-03-05,1.59,48.0,table tennis,0,0,0 -347604292,Bernard Lagat,USA,male,1974-12-12,1.73,58.0,athletics,0,0,0 -78415215,Bernardin Ledoux Kingue Matam,FRA,male,1990-05-20,1.63,69.0,weightlifting,0,0,0 -839460124,Bernardo Baloyes,COL,male,1994-01-06,1.68,66.0,athletics,0,0,0 -833677171,Bernardo Guerrero Diaz,CHI,male,1986-06-10,1.9,75.0,rowing,0,0,0 -564965643,Bernardo Oliveira,BRA,male,1993-06-08,1.73,70.0,archery,0,0,0 -351550766,Bernardo Oneto Gomes,BRA,male,1993-11-12,1.88,90.0,aquatics,0,0,0 -44038366,Bernardo Rocha,BRA,male,1989-07-03,1.81,95.0,aquatics,0,0,0 -619849300,Bernd Wiesberger,AUT,male,1985-10-08,1.89,89.0,golf,0,0,0 -997731920,Bernhard Sieber,AUT,male,1990-08-06,1.8,72.0,rowing,0,0,0 -684096917,Berta Betanzos Moro,ESP,female,1988-01-15,1.79,71.0,sailing,0,0,0 -134339876,Berta Bonastre,ESP,female,1992-06-03,1.57,50.0,hockey,0,0,0 -98117610,Berta Garcia,ESP,female,1982-04-12,1.73,73.0,rugby sevens,0,0,0 -390927427,Berthrade Simone Flore Bikatal,CMR,female,1992-07-23,1.83,76.0,volleyball,0,0,0 -347904621,Bertrand Roine,QAT,male,1981-02-17,1.98,99.0,handball,0,0,0 -634276383,Beryl Gastaldello,FRA,female,1995-02-16,1.76,66.0,aquatics,0,0,0 -613088812,Beslan Mudranov,RUS,male,1986-07-07,1.66,60.0,judo,1,0,0 -822286344,Besu Sado,ETH,female,1996-06-12,1.72,56.0,athletics,0,0,0 -943971426,Beth Potter,GBR,female,1991-12-27,1.7,51.0,athletics,0,0,0 -552255079,Bethanie Mattek-Sands,USA,female,1985-03-23,1.68,65.0,tennis,1,0,0 -63368470,Betlhem Desalegn,UAE,female,1991-11-11,1.6,55.0,athletics,0,0,0 -325783858,Betsy Hassett,NZL,female,1990-08-04,1.58,56.0,football,0,0,0 -392303714,Betsy Saina,KEN,female,1988-06-30,1.52,47.0,athletics,0,0,0 -79046621,Betty Heidler,GER,female,1983-10-14,1.75,85.0,athletics,0,0,0 -690348095,Betzabeth Angelica Arguello Villegas,VEN,female,1991-01-28,1.64,53.0,wrestling,0,0,0 -523896033,Beverly Ramos,PUR,female,1987-08-24,1.68,52.0,athletics,0,0,0 -644567979,Bianca Farella,CAN,female,1992-04-10,1.73,73.0,rugby sevens,0,0,1 -826009653,Bianca Hammett,AUS,female,1990-09-12,1.72,55.0,aquatics,0,0,0 -427195390,Bianca Razor,ROU,female,1994-08-08,1.7,59.0,athletics,0,0,0 -579106443,Bianca Stuart,BAH,female,1988-05-17,,,athletics,0,0,0 -245553516,Bianca Walkden,GBR,female,1991-09-29,1.82,74.0,taekwondo,0,0,1 -179256116,Bianca Williams,GBR,female,1993-12-18,1.69,56.0,athletics,0,0,0 -164136445,Bianka Busa,SRB,female,1994-07-25,1.87,74.0,volleyball,0,1,0 -107444997,Biao Chai,CHN,male,1990-10-10,1.86,80.0,badminton,0,0,0 -589789761,Bibiro Ali Taher,CHA,female,1988-04-24,1.6,44.0,athletics,0,0,0 -440136772,Biko Adema,KEN,male,1987-09-01,1.77,85.0,rugby sevens,0,0,0 -583607934,Bilal Tabti,ALG,male,1993-06-07,1.75,62.0,athletics,0,0,0 -543026073,Bilel Mhamdi,TUN,male,1992-01-27,1.76,,boxing,0,0,0 -815957774,Biljana Pavicevic,MNE,female,1988-05-12,1.69,63.0,handball,0,0,0 -484484990,Billy Bakker,NED,male,1988-11-23,1.88,82.0,hockey,0,0,0 -585423464,Billy Besson,FRA,male,1981-03-08,1.69,69.0,sailing,0,0,0 -594152540,Billy Odhiambo,KEN,male,1993-11-07,1.84,95.0,rugby sevens,0,0,0 -787821587,Billy Scott Irakoze,BDI,male,1996-10-30,1.96,74.0,aquatics,0,0,0 -426790116,Bilyal Makhov,RUS,male,1987-09-20,2.0,125.0,wrestling,0,0,0 -613452490,Bin Dong,CHN,male,1988-11-22,1.8,74.0,athletics,0,0,1 -525898651,Bin Feng,CHN,female,1994-04-03,1.84,95.0,athletics,0,0,0 -877888215,Bin Lv,CHN,male,1994-10-18,1.65,,boxing,0,0,0 -420088639,Bin Yang,CHN,male,1989-07-10,1.8,80.0,wrestling,0,0,0 -774637226,Binbin Zhang,CHN,female,1989-02-23,1.64,55.0,shooting,0,1,0 -597092136,Bingtian Su,CHN,male,1989-08-29,1.73,70.0,athletics,0,0,0 -661948747,Bintou Dieme,SEN,female,1984-02-01,1.67,58.0,basketball,0,0,0 -442225974,Binyuan Hu,CHN,male,1977-11-07,1.8,75.0,shooting,0,0,0 -944420337,Birgit Koschischek,AUT,female,1987-05-22,1.69,61.0,aquatics,0,0,0 -271713930,Birgit Michels,GER,female,1984-09-28,1.78,70.0,badminton,0,0,0 -131536621,Birhanu Balew,BRN,male,1996-02-27,,,athletics,0,0,0 -774582149,Birsel Vardarli Demirmen,TUR,female,1984-07-12,1.75,60.0,basketball,0,0,0 -112486635,Birzhan Zhakypov,KAZ,male,1984-07-07,1.63,,boxing,0,0,0 -522639871,Bjorn Hornikel,GER,male,1992-05-06,1.92,91.0,aquatics,0,0,0 -470613425,Bjorn van den Ende,NED,male,1986-01-10,1.9,70.0,rowing,0,0,0 -221212634,Blabjerg Mathiasen,DEN,male,1995-01-11,1.85,78.0,football,0,0,0 -735422828,Blai Mallarach Guell,ESP,male,1987-08-21,1.87,87.0,aquatics,0,0,0 -395509377,Blair Cameron Bann,CAN,male,1988-02-26,1.84,84.0,volleyball,0,0,0 -304290646,Blair Evans,AUS,female,1991-04-03,1.75,65.0,aquatics,0,0,0 -157315163,Blair Hilton,NZL,male,1989-08-28,1.81,78.0,hockey,0,0,0 -930133339,Blair Tarrant,NZL,male,1990-05-11,1.85,83.0,hockey,0,0,0 -842741490,Blair Tuke,NZL,male,1989-07-25,1.81,78.0,sailing,1,0,0 -435079767,Blake Blackburn,AUS,male,1992-08-03,1.81,82.0,shooting,0,0,0 -993776091,Blake Gaudry,AUS,male,1991-11-29,1.79,72.0,gymnastics,0,0,0 -950950151,Blake Govers,AUS,male,1996-07-06,1.87,85.0,hockey,0,0,0 -570608473,Blake Pieroni,USA,male,1995-11-15,1.88,86.0,aquatics,1,0,0 -214905854,Blandine Dancette,FRA,female,1988-02-14,1.69,60.0,handball,0,0,0 -690400835,Blanka Vlasic,CRO,female,1983-11-08,1.93,71.0,athletics,0,0,1 -855954658,Blaz Blagotinsek,SLO,male,1994-01-17,2.02,108.0,handball,0,0,0 -21924133,Blaz Janc,SLO,male,1996-11-20,1.86,88.0,handball,0,0,0 -473644468,Blessing Oborududu,NGR,female,1989-03-12,1.63,63.0,wrestling,0,0,0 -95183266,Blessing Okagbare,NGR,female,1988-10-09,1.81,71.0,athletics,0,0,0 -306720792,Bo Qiu,CHN,male,1993-01-31,1.65,62.0,aquatics,0,0,0 -891887866,Boaz Meylink,NED,male,1984-03-22,1.95,93.0,rowing,0,0,1 -502149585,Bob de Voogd,NED,male,1988-09-16,1.83,80.0,hockey,0,0,0 -491078381,Bobae Ki,KOR,female,1988-02-20,1.67,57.0,archery,1,0,1 -650906817,Bobana Velickovic,SRB,female,1990-01-25,1.7,59.0,shooting,0,0,0 -112585422,Bobby Lea,USA,male,1983-10-17,1.88,77.0,cycling,0,0,0 -130126334,Bobur Shokirjonov,UZB,male,1990-12-05,1.95,105.0,athletics,0,0,0 -495066893,Bode Abiodun,NGR,male,1980-09-10,1.7,68.0,table tennis,0,0,0 -903668874,Bodi Turner,AUS,male,1994-09-18,1.8,81.0,cycling,0,0,0 -915515161,Bodin Isara,THA,male,1990-12-12,1.75,78.0,badminton,0,0,0 -215144146,Bodo Essissima Madeleine Samantha,CMR,female,1992-04-29,1.82,75.0,volleyball,0,0,0 -813532025,Boe Warawara,VAN,male,1995-01-26,,,boxing,0,0,0 -4071248,Bogdan Bogdanovic,SRB,male,1992-08-18,1.97,99.0,basketball,0,1,0 -68724456,Bogdan Nikishin,UKR,male,1980-05-29,1.88,85.0,fencing,0,0,0 -23204063,Boglarka Kapas,HUN,female,1993-04-22,1.68,54.0,aquatics,0,0,1 -49967537,Bogna Jozwiak,POL,female,1983-04-25,1.82,80.0,fencing,0,0,0 -585709776,Bohdan Bondarenko,UKR,male,1989-08-30,1.98,77.0,athletics,0,0,1 -309321530,Boitumelo Masilo,BOT,male,1995-08-05,,,athletics,0,0,0 -56310662,Bojan Bogdanovic,CRO,male,1989-04-18,2.0,103.0,basketball,0,0,0 -371663534,Bojan Tokic,SLO,male,1981-01-13,1.78,76.0,table tennis,0,0,0 -597510808,Bojana Popovic,MNE,female,1979-11-20,1.88,86.0,handball,0,0,0 -189764365,Bojana Zivkovic,SRB,female,1988-03-29,1.86,72.0,volleyball,0,1,0 -599338352,Bokai Huang,CHN,male,1996-09-26,1.9,78.0,athletics,0,0,0 -633981325,Bokyeong Jeong,KOR,female,1991-04-17,1.53,51.0,judo,0,1,0 -37603597,Bombayla Devi Laishram,IND,female,1985-02-22,1.64,60.0,archery,0,0,0 -969273805,Bomi Kim,KOR,female,1985-10-07,1.57,54.0,hockey,0,0,0 -841861773,Bonchan Ku,KOR,male,1993-01-31,1.81,84.0,archery,2,0,0 -593350909,Bongil Gu,KOR,male,1989-04-27,1.82,70.0,fencing,0,0,0 -947726,Boniface Mucheru Tumuti,KEN,male,1992-05-02,1.75,72.0,athletics,0,1,0 -25616888,Boonsak Ponsana,THA,male,1982-02-22,1.79,75.0,badminton,0,0,0 -678784901,Boonthung Srisung,THA,male,1981-05-30,1.71,59.0,athletics,0,0,0 -993211347,Bora Gulari,USA,male,1975-10-22,1.81,74.0,sailing,0,0,0 -310122376,Boris Balaz,SVK,male,1997-11-20,1.82,72.0,archery,0,0,0 -404999388,Boris Berian,USA,male,1992-12-19,1.83,69.0,athletics,0,0,0 -241752566,Boris Diaw,FRA,male,1982-04-16,2.03,115.0,basketball,0,0,0 -861405399,Boris Kirillov,AZE,male,1992-08-04,1.81,75.0,aquatics,0,0,0 -703703338,Boris Yotov,AZE,male,1996-02-25,1.93,93.0,rowing,0,0,0 -206019414,Borislav Stefanov Novachkov,BUL,male,1989-11-29,1.7,71.0,wrestling,0,0,0 -888969887,Borja Carrascosa,ESP,male,1982-02-05,1.82,71.0,equestrian,0,0,0 -142258251,Borja Fernandez,QAT,male,1981-12-25,2.06,110.0,handball,0,0,0 -200431710,Borja Vivas,ESP,male,1984-05-26,2.04,139.0,athletics,0,0,0 -139684134,Borna Coric,CRO,male,1996-11-14,1.85,78.0,tennis,0,0,0 -720390128,Borys Shvets,UKR,male,1991-08-20,1.75,65.0,sailing,0,0,0 -895703195,Bosco Perez-Pla,ESP,male,1987-09-26,1.8,78.0,hockey,0,0,0 -103791379,Bostjan Macek,SLO,male,1972-06-17,1.74,118.0,shooting,0,0,0 -876174352,Bouchra Fatima Zohra Hirech,ALG,female,2000-08-22,1.7,80.0,weightlifting,0,0,0 -142434686,Boudewijn Roell,NED,male,1989-05-12,1.95,100.0,rowing,0,0,1 -797423057,Bourhan Abro,DJI,male,1995-05-30,1.8,70.0,aquatics,0,0,0 -819043889,Boyd Martin,USA,male,1979-08-20,1.88,79.0,equestrian,0,0,0 -449397409,Bozo Starcevic,CRO,male,1988-12-11,1.72,78.0,wrestling,0,0,0 -573991365,Bradlee Ashby,NZL,male,1995-11-23,2.0,92.0,aquatics,0,0,0 -804733660,Bradley Adkins,USA,male,1993-12-30,1.89,79.0,athletics,0,0,0 -220375842,Bradley Edward Tandy,RSA,male,1991-05-02,1.58,86.0,aquatics,0,0,0 -901307783,Bradley Shaw,NZL,male,1983-02-13,1.81,92.0,hockey,0,0,0 -943842758,Bradley Vincent,MRI,male,1991-11-30,1.95,89.0,aquatics,0,0,0 -499035410,Bradley Wiggins,GBR,male,1980-04-28,1.9,82.0,cycling,1,0,0 -139075859,Brady Ellison,USA,male,1988-10-27,1.81,86.0,archery,0,1,1 -140387635,Brahim Kaazouzi,MAR,male,1990-06-15,1.79,62.0,athletics,0,0,0 -85379844,Braian Toledo,ARG,male,1993-09-08,1.87,100.0,athletics,0,0,0 -327920403,Bralon Taplin,GRN,male,1992-05-08,,,athletics,0,0,0 -919979883,Branca Feres,BRA,female,1988-02-22,1.64,56.0,aquatics,0,0,0 -738096310,Brandon Jones,BIZ,male,1987-07-19,1.99,86.0,athletics,0,0,0 -995088210,Brandon McBride,CAN,male,1994-06-15,1.93,74.0,athletics,0,0,0 -148847003,Brandon Schuster,SAM,male,1998-04-23,1.88,75.0,aquatics,0,0,0 -152917319,Brandon Starc,AUS,male,1993-11-24,1.88,71.0,athletics,0,0,0 -873969989,Brandon Stone,RSA,male,1993-04-20,1.8,65.0,golf,0,0,0 -990046579,Brandon Valentine-Parris,VIN,male,1995-04-17,1.73,55.0,athletics,0,0,0 -128091825,Brandonn Almeida,BRA,male,1997-03-16,1.86,73.0,aquatics,0,0,0 -349293339,Branislav Mitrovic,SRB,male,1985-01-30,2.01,100.0,aquatics,1,0,0 -890726080,Brankica Mihajlovic,SRB,female,1991-04-13,1.9,83.0,volleyball,0,1,0 -826864352,Brave Lifa,MAW,male,1995-09-05,1.75,70.0,aquatics,0,0,0 -741657080,Brayan Garcia,HON,male,1993-05-26,1.75,69.0,football,0,0,0 -734779763,Brayan Ramirez,HON,male,1994-06-16,1.77,66.0,football,0,0,0 -193606583,Breanna Stewart,USA,female,1994-08-27,1.93,79.0,basketball,1,0,0 -630721644,Bredni Roque Mendoza,MEX,male,1987-11-11,1.6,69.0,weightlifting,0,0,0 -845586759,Breege Connolly,IRL,female,1978-02-01,1.63,54.0,athletics,0,0,0 -383824981,Brenda Bowskill,CAN,female,1992-04-21,1.7,68.0,sailing,0,0,0 -911119710,Brenda Flores,MEX,female,1991-09-04,1.63,50.0,athletics,0,0,0 -477118293,Brenda Martinez,USA,female,1987-09-08,1.71,56.0,athletics,0,0,0 -340440422,Brenda Rojas,ARG,female,1995-10-15,1.66,64.0,canoe,0,0,0 -293582359,Brenda Yamyleth Bailey Gomez,HON,female,1994-09-11,1.59,55.0,wrestling,0,0,0 -695503192,Brendan Boyce,IRL,male,1986-10-08,1.83,76.0,athletics,0,0,0 -262561474,Brendan Emmet Irvine,IRL,male,1996-05-17,1.67,,boxing,0,0,0 -170273040,Brendan Hodge,CAN,male,1984-12-31,1.8,72.0,rowing,0,0,0 -911726861,Brenden Bissett,CAN,male,1993-01-28,1.78,73.0,hockey,0,0,0 -42739871,Brendon Reading,AUS,male,1989-01-26,1.83,62.0,athletics,0,0,0 -321655820,Brendon Rodney,CAN,male,1992-04-09,1.95,80.0,athletics,0,0,1 -406829138,Brenessa Thompson,GUY,female,1996-07-22,1.63,62.0,athletics,0,0,0 -125216390,Brent Bookwalter,USA,male,1984-02-16,1.81,68.0,cycling,0,0,0 -998710520,Bret Bonanni,USA,male,1994-01-20,1.94,92.0,aquatics,0,0,0 -430001444,Brett Robinson,AUS,male,1991-05-08,1.76,60.0,athletics,0,0,0 -883824307,Brian Afanador,PUR,male,1997-03-06,1.75,68.0,table tennis,0,0,0 -234656577,Brian Babilonia,PUR,male,1994-09-16,1.8,66.0,cycling,0,0,0 -98906595,Brian Baker,USA,male,1985-04-30,1.91,77.0,tennis,0,0,0 -652345352,Brian Pintado,ECU,male,1995-07-29,1.68,57.0,athletics,0,0,0 -870923074,Brian Rosso,ARG,male,1987-08-16,1.84,84.0,rowing,0,0,0 -353066862,Briana Provancha,USA,female,1989-04-25,1.71,66.0,sailing,0,0,0 -861484261,Brianna Rollins,USA,female,1991-08-18,1.66,58.0,athletics,1,0,0 -123998646,Brianna Throssell,AUS,female,1996-02-10,1.75,61.0,aquatics,0,0,0 -542571086,Brianne Theisen Eaton,CAN,female,1988-12-18,1.75,64.0,athletics,0,0,1 -509052821,Brice Etes,MON,male,1984-04-11,1.85,73.0,athletics,0,0,0 -478313255,Brice Leverdez,FRA,male,1986-04-09,1.8,75.0,badminton,0,0,0 -237845996,Bridgitte Ellen Hartley,RSA,female,1983-07-14,1.74,65.0,canoe,0,0,0 -856612683,Brigita Virbalyte-Dimsiene,LTU,female,1985-02-01,1.63,48.0,athletics,0,0,0 -211902340,Brigitte Merlano,COL,female,1982-04-29,1.74,65.0,athletics,0,0,0 -44753775,Brigitte Ntiamoah,FRA,female,1994-03-05,1.72,66.0,athletics,0,0,0 -308919050,Brijesh Lawrence,SKN,male,1989-12-27,1.8,93.0,athletics,0,0,0 -345441615,Briken Calja,ALB,male,1990-02-19,1.7,69.0,weightlifting,0,0,0 -128651141,Brimin Kiprop Kipruto,KEN,male,1985-07-31,1.75,55.0,athletics,0,0,0 -349753082,Brinn Bevan,GBR,male,1997-06-16,1.65,62.0,gymnastics,0,0,0 -893795627,Britt Eerland,NED,female,1994-02-22,1.68,62.0,table tennis,0,0,0 -395081312,Britta Buthe,GER,female,1988-05-25,1.86,78.0,volleyball,0,0,0 -524776452,Brittany Benn,CAN,female,1989-04-23,1.65,68.0,rugby sevens,0,0,1 -837634473,Brittany Borman,USA,female,1989-07-01,1.83,77.0,athletics,0,0,0 -136154437,Brittany Crew,CAN,female,1994-03-06,1.78,112.0,athletics,0,0,0 -974255098,Brittany Elmslie,AUS,female,1994-06-19,1.8,69.0,aquatics,1,1,0 -975241751,Brittany Maclean,CAN,female,1994-03-03,1.68,59.0,aquatics,0,0,1 -667985741,Brittany O'Brien,AUS,female,1998-05-27,1.68,55.0,aquatics,0,0,0 -601613381,Brittany Rogers,CAN,female,1993-06-08,1.65,60.0,gymnastics,0,0,0 -387060457,Brittney Griner,USA,female,1990-10-18,2.03,94.0,basketball,1,0,0 -772781845,Brittney Reese,USA,female,1986-09-09,1.73,61.0,athletics,0,1,0 -476644551,Brock Motum,AUS,male,1990-10-16,2.08,107.0,basketball,0,0,0 -942791136,Bronte Barratt,AUS,female,1989-02-08,1.71,58.0,aquatics,0,1,0 -936338083,Bronte Campbell,AUS,female,1994-05-14,1.79,58.0,aquatics,1,0,0 -339065127,Bronwen Knox,AUS,female,1986-04-16,1.82,88.0,aquatics,0,0,0 -625465432,Brook Robertson,NZL,male,1994-02-19,1.94,95.0,rowing,0,0,0 -229593375,Brooke Crain,USA,female,1993-04-29,1.63,55.0,cycling,0,0,0 -198522539,Brooke Henderson,CAN,female,1997-09-10,1.63,50.0,golf,0,0,0 -723701996,Brooke Neal,NZL,female,1992-07-04,1.87,71.0,hockey,0,0,0 -176282194,Brooke Peris,AUS,female,1993-01-16,1.72,57.0,hockey,0,0,0 -290572119,Brooke Stratton,AUS,female,1993-07-12,,,athletics,0,0,0 -586492695,Brooke Sweat,USA,female,1986-03-27,1.73,69.0,volleyball,0,0,0 -873916818,Bruna,BRA,female,1985-10-16,1.78,65.0,football,0,0,0 -877478692,Bruna Farias,BRA,female,1992-05-19,1.56,51.0,athletics,0,0,0 -171915543,Bruna Takahashi,BRA,female,2000-07-19,1.7,54.0,table tennis,0,0,0 -641508892,Bruno Bethlem,BRA,male,1975-10-22,1.81,72.0,sailing,0,0,0 -462138517,Bruno Fernandes,POR,male,1994-09-08,1.82,80.0,football,0,0,0 -934893676,Bruno Fratus,BRA,male,1989-06-30,1.87,80.0,aquatics,0,0,0 -715319246,Bruno Hortelano,ESP,male,1991-09-18,1.8,70.0,athletics,0,0,0 -44169801,Bruno Lima,ARG,male,1996-02-04,1.98,87.0,volleyball,0,0,0 -436846514,Bruno Mendonca,BRA,male,1984-01-07,1.83,93.0,hockey,0,0,0 -696736168,Bruno Mossa Rezende,BRA,male,1986-07-02,1.9,76.0,volleyball,1,0,0 -836716137,Bruno Ortiz Canavate Ozeki,ESP,male,1993-02-15,1.94,88.0,aquatics,0,0,0 -68618209,Bruno Oscar Schmidt,BRA,male,1986-10-06,1.85,85.0,volleyball,1,0,0 -671022008,Bruno Paes,BRA,male,1993-06-24,1.77,76.0,hockey,0,0,0 -248706880,Bruno Passaro,ARG,male,1989-02-10,1.75,72.0,equestrian,0,0,0 -365680500,Bruno Soares,BRA,male,1982-02-27,1.8,75.0,tennis,0,0,0 -313463896,Bruno Varela,POR,male,1994-11-04,1.9,80.0,football,0,0,0 -118251415,Bruno de Barros,BRA,male,1987-01-07,1.82,85.0,athletics,0,0,0 -526513149,Bryan Acosta,HON,male,1993-11-24,1.75,74.0,football,0,0,0 -442636270,Bryan Gabriel Sola Zambrano,ECU,male,1992-04-03,1.78,75.0,rowing,0,0,0 -682193857,Bryan Keane,IRL,male,1980-08-20,1.75,65.0,triathlon,0,0,0 -692740020,Bryden Nicholas,COK,male,1989-03-10,1.7,70.0,canoe,0,0,0 -159693755,Bryony Page,GBR,female,1990-12-10,1.72,62.0,gymnastics,0,1,0 -358642208,Bryony Shaw,GBR,female,1983-04-28,1.66,60.0,sailing,0,0,0 -257258199,Bubba Watson,USA,male,1978-11-05,1.91,81.0,golf,0,0,0 -833335595,Buly da Conceicao Triste,STP,male,1991-07-04,1.64,58.0,canoe,0,0,0 -326008552,Bunturabie Jalloh,SLE,female,1998-05-10,,79.0,aquatics,0,0,0 -581220953,Burkheart Ellis Jr,BAR,male,1992-09-18,1.91,85.0,athletics,0,0,0 -613127539,Buse Tosun,TUR,female,1995-12-05,1.73,69.0,wrestling,0,0,0 -436450943,Bush Mwale,KEN,male,1993-11-14,1.85,92.0,rugby sevens,0,0,0 -510153828,Busra Katipoglu,TUR,female,1992-01-17,1.65,63.0,judo,0,0,0 -812259982,Byambajav Tseveenravdan,MGL,male,1990-07-07,1.69,58.0,athletics,0,0,0 -942162925,Byeonghun An,KOR,male,1991-09-17,1.87,87.0,golf,0,0,0 -888329699,Byeongkwang Choe,KOR,male,1991-04-07,1.85,73.0,athletics,0,0,0 -920028907,Byron Robinson,USA,male,1995-05-10,1.76,74.0,athletics,0,0,0 -252432878,C.T. Pan,TPE,male,1991-11-12,1.68,65.0,golf,0,0,0 -598623977,Caba Siladji,SRB,male,1990-08-23,1.85,77.0,aquatics,0,0,0 -247346852,Caeleb Dressel,USA,male,1996-08-16,1.91,86.0,aquatics,2,0,0 -914044399,Cagla Buyukakcay,TUR,female,1989-09-28,1.72,58.0,tennis,0,0,0 -406549874,Caia van Maasakker,NED,female,1989-04-05,1.8,69.0,hockey,0,1,0 -18622820,Caileigh Filmer,CAN,female,1996-12-18,1.69,76.0,rowing,0,0,0 -196015602,Caio Bonfim,BRA,male,1991-03-19,1.74,60.0,athletics,0,0,0 -959903896,Caitlin Cooper,AUS,female,1988-02-12,1.71,66.0,football,0,0,0 -181162100,Caitlin Foord,AUS,female,1994-11-11,1.65,58.0,football,0,0,0 -233739460,Caitlin Ryan,NZL,female,1992-02-09,1.78,95.0,canoe,0,0,0 -637321391,Caitlin Sargent-Jones,AUS,female,1992-06-14,1.71,60.0,athletics,0,0,0 -147956765,Caitlin van Sickle,USA,female,1990-01-26,1.66,58.0,hockey,0,0,0 -100675394,Cale Simmons,USA,male,1991-02-05,,,athletics,0,0,0 -715671042,Caleb Mwangangi Ndiku,KEN,male,1992-10-09,1.67,65.0,athletics,0,0,0 -521652208,Caleb Paine,USA,male,1990-11-15,1.91,97.0,sailing,0,0,1 -47877217,Caleb Shepherd,NZL,male,1993-06-29,1.68,55.0,rowing,0,0,0 -7468287,Callum Hawkins,GBR,male,1992-06-22,1.79,62.0,athletics,0,0,0 -205286149,Callum Scotson,AUS,male,1996-08-10,1.84,77.0,cycling,0,1,0 -598986059,Callum Skinner,GBR,male,1992-08-20,1.87,93.0,cycling,1,1,0 -227626203,Calvyn Justus,RSA,male,1995-12-14,1.95,70.0,aquatics,0,0,0 -638140243,Cam Kurle,GBR,male,1997-07-19,1.86,66.0,aquatics,0,0,0 -665917259,Camelia Hotea,ROU,female,1984-10-27,1.75,64.0,handball,0,0,0 -379834078,Cameron Bairstow,AUS,male,1990-12-07,2.06,118.0,basketball,0,0,0 -673317793,Cameron Clark,AUS,male,1993-03-20,1.85,84.0,rugby sevens,0,0,0 -115794046,Cameron Girdlestone,AUS,male,1988-04-29,1.9,92.0,rowing,0,1,0 -464109574,Cameron McEvoy,AUS,male,1994-05-13,1.85,75.0,aquatics,0,0,2 -744574832,Cameron Pimentel,BER,male,1991-04-13,1.83,80.0,sailing,0,0,0 -87311280,Cameron Smedley,CAN,male,1990-10-09,1.78,75.0,canoe,0,0,0 -59463747,Cameron van der Burgh,RSA,male,1988-05-25,1.85,85.0,aquatics,0,1,0 -62078309,Camila,BRA,female,1994-10-10,1.59,60.0,football,0,0,0 -761225267,Camila Pedrosa,BRA,female,1975-03-12,1.72,68.0,aquatics,0,0,0 -403141016,Camila Valle Granados,PER,female,1995-07-07,1.6,60.0,rowing,0,0,0 -814870853,Camilla Cattaneo,ITA,female,1990-02-12,1.73,54.0,aquatics,0,0,0 -711276110,Camilla Cedercreutz,FIN,female,1993-01-31,1.67,66.0,sailing,0,0,0 -338343277,Camilla Hattersley,GBR,female,1995-02-24,1.74,59.0,aquatics,0,0,0 -384002345,Camilla Herrem,NOR,female,1986-10-08,1.67,,handball,0,0,1 -439378306,Camilla Kruger,ZIM,female,1986-09-19,1.61,51.0,equestrian,0,0,0 -118087738,Camilla Patriarca,ITA,female,1994-11-04,1.7,50.0,gymnastics,0,0,0 -766408669,Camilla Speirs,IRL,female,1989-08-23,1.54,57.0,equestrian,0,0,0 -187290528,Camille Abily,FRA,female,1984-12-05,1.68,60.0,football,0,0,0 -373069016,Camille Ayglon Saurina,FRA,female,1985-05-21,1.8,66.0,handball,0,1,0 -788191192,Camille Cheng,HKG,female,1993-05-09,1.78,65.0,aquatics,0,0,0 -919018525,Camille Grassineau,FRA,female,1990-09-10,1.65,58.0,rugby sevens,0,0,0 -614590923,Camille Lacourt,FRA,male,1985-04-22,2.0,85.0,aquatics,0,0,0 -510528142,Camille Lecointre,FRA,female,1985-02-25,1.59,56.0,sailing,0,0,1 -241013969,Camilyne Oyuayo,KEN,female,1982-04-16,1.67,72.0,rugby sevens,0,0,0 -94450987,Cammile Adams,USA,female,1991-09-11,1.73,65.0,aquatics,0,0,0 -495694072,Cancan Ren,CHN,female,1988-01-26,1.68,,boxing,0,0,1 -595425335,Candie Kung,TPE,female,1981-08-08,1.7,70.0,golf,0,0,0 -873362411,Cansel Deniz,KAZ,female,1991-08-26,1.75,67.0,taekwondo,0,0,0 -705883507,Caridad Jerez,ESP,female,1991-01-23,1.66,58.0,athletics,0,0,0 -978280243,Carin Stromberg,SWE,female,1993-07-10,1.84,83.0,handball,0,0,0 -725855648,Carina Ana Garcia Kradolfer,BOL,female,1984-01-03,1.6,58.0,shooting,0,0,0 -448095596,Carina Baer,GER,female,1990-01-23,1.85,75.0,rowing,1,0,0 -840008522,Carina Horn,RSA,female,1989-03-09,1.68,62.0,athletics,0,0,0 -337197215,Carl Dohmann,GER,male,1990-05-18,1.83,62.0,athletics,0,0,0 -570448421,Carl Fredrik Stefan Schoen,SWE,male,1987-07-11,1.87,102.0,wrestling,0,0,0 -48374531,Carl Hester,GBR,male,1967-06-29,1.82,86.0,equestrian,0,1,0 -123412011,Carla Nelte,GER,female,1990-09-21,1.71,60.0,badminton,0,0,0 -415538486,Carla Rebecchi,ARG,female,1984-09-07,1.63,55.0,hockey,0,0,0 -728630028,Carla Salome Rocha,POR,female,1990-04-25,1.57,46.0,athletics,0,0,0 -873188308,Carla Suarez Navarro,ESP,female,1988-09-03,1.62,61.0,tennis,0,0,0 -226631924,Carles Castillejo,ESP,male,1978-08-18,1.65,61.0,athletics,0,0,0 -714231073,Carli Lloyd,USA,female,1989-08-06,1.8,75.0,volleyball,0,0,1 -228340991,Carli Lloyd,USA,female,1982-07-16,1.72,61.0,football,0,0,0 -323715305,Carlien Dirkse van den Heuvel,NED,female,1987-04-16,1.7,56.0,hockey,0,1,0 -215241067,Carlin Isles,USA,male,1989-11-21,1.73,74.0,rugby sevens,0,0,0 -549956425,Carline Bouw,NED,female,1984-12-14,1.84,72.0,rowing,0,1,0 -807476315,Carline Muir,CAN,female,1987-10-01,1.7,65.0,athletics,0,0,0 -233428453,Carling Zeeman,CAN,female,1991-05-27,1.87,85.0,rowing,0,0,0 -924818266,Carlo Tacchini,ITA,male,1995-01-25,1.76,73.0,canoe,0,0,0 -132849150,Carlos Alberto Ramirez Yepes,COL,male,1994-03-12,1.78,65.0,cycling,0,0,1 -639279380,Carlos Andres Mina,ECU,male,1992-04-30,1.87,,boxing,0,0,0 -654897957,Carlos Andres Munoz Jaramillo,COL,male,1992-08-03,1.8,75.0,wrestling,0,0,0 -929589986,Carlos Arturo Izquierdo Mendez,COL,male,1997-10-02,1.82,74.0,wrestling,0,0,0 -875748101,Carlos Cisneros,MEX,male,1993-08-30,1.75,72.0,football,0,0,0 -992315197,Carlos Claverie,VEN,male,1996-09-19,1.95,85.0,aquatics,0,0,0 -664891338,Carlos Coloma Nicolas,ESP,male,1981-09-28,1.71,65.0,cycling,0,0,1 -562138964,Carlos Delfino,ARG,male,1982-08-29,2.0,95.0,basketball,0,0,0 -955217464,Carlos Eduardo Quipo Pilataxi,ECU,male,1990-05-17,1.56,,boxing,0,0,0 -520489478,Carlos Fierro,MEX,male,1994-07-23,1.75,69.0,football,0,0,0 -487944267,Carlos Guerra,MEX,male,1981-08-03,1.96,95.0,volleyball,0,0,0 -770819591,Carlos Lemos,COL,male,1988-06-03,1.83,76.0,athletics,0,0,0 -666394255,Carlos Lobos Munoz,CHI,male,1980-12-21,1.75,73.0,equestrian,0,0,0 -120477759,Carlos Mario Oquendo Zabala,COL,male,1987-11-16,1.86,85.0,cycling,0,0,0 -744295667,Carlos Parro,BRA,male,1979-06-05,1.79,76.0,equestrian,0,0,0 -983424219,Carlos Peralta Gallego,ESP,male,1994-01-30,1.65,60.0,aquatics,0,0,0 -572124752,Carlos Ruben Navarro Valdez,MEX,male,1996-05-08,1.77,58.0,taekwondo,0,0,0 -279620317,Carlos Salcedo,MEX,male,1993-09-29,1.84,82.0,football,0,0,0 -561704538,Carlos Tobalina,ESP,male,1985-08-02,1.88,120.0,athletics,0,0,0 -318016892,Carlos Zenon Balderas Jr.,USA,male,1996-08-24,1.76,,boxing,0,0,0 -848682435,Carlota Ciganda,ESP,female,1990-06-01,1.74,68.0,golf,0,0,0 -707042640,Carlota Petchame,ESP,female,1990-06-25,1.6,53.0,hockey,0,0,0 -637147877,Carlotta Ferlito,ITA,female,1995-02-15,1.6,50.0,gymnastics,0,0,0 -383488560,Carlotta Zofkova,ITA,female,1993-02-22,1.83,74.0,aquatics,0,0,0 -11238404,Carmelo Anthony,USA,male,1984-05-29,2.03,109.0,basketball,1,0,0 -477040413,Carmen Farmer,USA,female,1980-12-04,1.86,81.0,rugby sevens,0,0,0 -440033203,Carmen Martin,ESP,female,1988-05-29,1.72,72.0,handball,0,0,0 -638974451,Carmen Marton,AUS,female,1986-06-30,1.72,67.0,taekwondo,0,0,0 -529017724,Carmen Patricia Martinez,PAR,female,1982-12-26,1.6,55.0,athletics,0,0,0 -692509182,Carmiesha Cox,BAH,female,1995-05-16,,,athletics,0,0,0 -386843805,Carmine Tommasone,ITA,male,1984-03-30,1.67,,boxing,0,0,0 -179760844,Carola Salvatella,ESP,female,1994-07-08,1.71,58.0,hockey,0,0,0 -331103388,Carolena Carstens,PAN,female,1996-01-18,1.68,57.0,taekwondo,0,0,0 -622673655,Carolin Golubytskyi,GER,female,1985-12-19,1.67,57.0,fencing,0,0,0 -751199209,Carolin Schafer,GER,female,1991-12-05,1.78,65.0,athletics,0,0,0 -999509819,Carolina Aguirre,COL,female,1996-01-29,1.6,59.0,archery,0,0,0 -809071082,Carolina Arbelaez,COL,female,1995-03-08,1.61,55.0,football,0,0,0 -467587531,Carolina Arias,COL,female,1990-09-02,1.59,52.0,football,0,0,0 -552675291,Carolina Castillo Hidalgo,COL,female,1990-11-04,1.57,48.0,wrestling,0,0,0 -905750537,Carolina Marin,ESP,female,1993-06-15,1.72,65.0,badminton,1,0,0 -362193279,Carolina Rodriguez,ESP,female,1986-05-24,1.64,48.0,gymnastics,0,0,0 -275280990,Carolina Rodriguez Gutierrez,MEX,female,1993-09-30,1.63,80.0,cycling,0,0,0 -488698668,Carolina Routier,ESP,female,1990-04-23,1.72,60.0,triathlon,0,0,0 -763290090,Carolina Werner,GER,female,1994-03-02,1.68,58.0,sailing,0,0,0 -237276170,Caroline Buchanan,AUS,female,1990-10-24,1.65,68.0,cycling,0,0,0 -618435469,Caroline Garcia,FRA,female,1993-10-16,1.77,61.0,tennis,0,0,0 -8177230,Caroline Kumahara,BRA,female,1995-07-27,1.66,58.0,table tennis,0,0,0 -965494911,Caroline Ladagnous,FRA,female,1988-09-22,1.72,65.0,rugby sevens,0,0,0 -454726580,Caroline Marton,AUS,female,1984-04-14,1.68,56.0,taekwondo,0,0,0 -378248537,Caroline Masson,GER,female,1989-05-14,1.73,72.0,golf,0,0,0 -479238224,Caroline Seger,SWE,female,1985-03-19,1.73,62.0,football,0,1,0 -53417800,Caroline Wozniacki,DEN,female,1990-07-11,1.79,65.0,tennis,0,0,0 -396948755,Carolle Zahi,FRA,female,1994-06-12,1.7,66.0,athletics,0,0,0 -633400313,Carrie Smith,AUS,female,1995-01-28,1.65,55.0,sailing,0,0,0 -37516553,Carsten Mogensen,DEN,male,1983-07-24,1.88,75.0,badminton,0,0,0 -944589858,Carvin Nkanata,KEN,male,1991-05-06,,,athletics,0,0,0 -666382963,Casey Dumont,AUS,female,1992-01-25,1.8,82.0,football,0,0,0 -899383164,Casey Eichfeld,USA,male,1989-11-15,1.78,77.0,canoe,0,0,0 -472505034,Casey Patterson,USA,male,1980-04-20,1.99,88.0,volleyball,0,0,0 -503788455,Casey Sablowski,AUS,female,1989-03-19,1.7,62.0,hockey,0,0,0 -450608241,Casper Mortensen,DEN,male,1989-12-14,1.9,88.0,handball,1,0,0 -452251425,Casper Nielsen,DEN,male,1994-04-29,1.8,70.0,football,0,0,0 -583629384,Casper Pedersen,DEN,male,1996-03-15,1.86,74.0,cycling,0,0,0 -579676651,Casper von Folsach,DEN,male,1993-03-30,1.91,82.0,cycling,0,0,1 -289009980,Cassandre Beaugrand,FRA,female,1997-05-23,1.77,54.0,triathlon,0,0,0 -105404448,Cassio Cesar Rippel,BRA,male,1978-05-02,1.93,95.0,shooting,0,0,0 -858551569,Cassio Rivetti,UKR,male,1980-02-20,1.75,65.0,equestrian,0,0,0 -190873405,Caster Semenya,RSA,female,1991-01-07,1.78,70.0,athletics,1,0,0 -654622452,Catalina Elena Escobar Gomez,COL,female,1990-09-21,1.56,50.0,gymnastics,0,0,0 -768142063,Catalina Perez,COL,female,1994-11-08,1.74,60.0,football,0,0,0 -943865464,Catalina Ponor,ROU,female,1987-08-20,1.56,47.0,gymnastics,0,0,0 -885026394,Catalina Usme,COL,female,1989-12-25,1.68,67.0,football,0,0,0 -468505846,Cate Campbell,AUS,female,1992-05-20,1.86,74.0,aquatics,1,1,0 -576401005,Caterine Ibarguen,COL,female,1984-02-12,1.85,70.0,athletics,1,0,0 -985557149,Catharine Pendrel,CAN,female,1980-09-30,1.66,50.0,cycling,0,0,1 -638981587,Catherine Abilla,KEN,female,1989-04-01,1.62,56.0,rugby sevens,0,0,0 -974386617,Catherine Beauchemin-Pinard,CAN,female,1994-06-26,1.61,57.0,judo,0,0,0 -315097608,Catherine Bertone,ITA,female,1972-05-06,1.6,45.0,athletics,0,0,0 -578087972,Catherine Bott,NZL,female,1995-04-22,1.65,62.0,football,0,0,0 -62565482,Catherine Meili,USA,female,1991-04-16,1.71,61.0,aquatics,1,0,1 -567465355,Catherine Skinner,AUS,female,1990-02-11,1.72,80.0,shooting,1,0,0 -761809056,Cathrine Dufour,DEN,female,1992-01-02,1.7,68.0,equestrian,0,0,0 -980333381,Catia Azevedo,POR,female,1994-03-09,1.7,50.0,athletics,0,0,0 -187632862,Catriel Andres Soto,ARG,male,1987-04-29,1.75,68.0,cycling,0,0,0 -255503629,Catriona Matthew,GBR,female,1969-08-25,1.63,60.0,golf,0,0,0 -694774919,Cayla George,AUS,female,1989-05-01,1.92,90.0,basketball,0,0,0 -71279109,Caylee Watson,ISV,female,1994-10-10,,,aquatics,0,0,0 -999104659,Cazuo Matsumoto,BRA,male,1985-08-02,1.8,88.0,table tennis,0,0,0 -869798237,Cecil Afrika,RSA,male,1988-03-03,1.75,75.0,rugby sevens,0,0,1 -558867540,Cecile Pieper,GER,female,1994-08-31,1.66,56.0,hockey,0,0,1 -369221148,Cecilia Berder,FRA,female,1989-12-13,1.74,65.0,fencing,0,0,0 -728202401,Cecilia Bouele,CGO,female,1993-01-07,1.66,60.0,athletics,0,0,0 -721352055,Cecilia Carranza Saroli,ARG,female,1986-12-29,1.64,63.0,sailing,1,0,0 -333612989,Cecilia Perez,MEX,female,1991-11-01,1.65,53.0,triathlon,0,0,0 -958457739,Cecilia Wollmann,BER,female,1998-01-23,1.64,60.0,sailing,0,0,0 -947360474,Cedric Charlier,BEL,male,1987-11-27,1.81,81.0,hockey,0,1,0 -82592097,Cedric Dubler,AUS,male,1995-01-13,,,athletics,0,0,0 -408751160,Cedric Sorhaindo,FRA,male,1984-06-07,1.92,110.0,handball,0,1,0 -437255555,Ceiber David Avila,COL,male,1989-05-26,1.63,,boxing,0,0,0 -245970037,Cejhae Greene,ANT,male,1995-10-06,1.74,72.0,athletics,0,0,0 -205420967,Celeste Plak,NED,female,1995-10-26,1.9,90.0,volleyball,0,0,0 -388140867,Celestin Nihorimbere,BDI,male,1993-01-11,1.67,55.0,athletics,0,0,0 -537701944,Celestine Masinde,KEN,female,1987-01-12,1.62,60.0,rugby sevens,0,0,0 -636512936,Celiangeli Morales,PUR,female,1985-11-02,1.65,63.0,athletics,0,0,0 -978104747,Celine Distel-Bonnet,FRA,female,1987-05-25,1.7,59.0,athletics,0,0,0 -582673345,Celine Goberville,FRA,female,1986-09-19,1.56,53.0,shooting,0,0,0 -290030374,Celio Dias,POR,male,1993-02-08,1.88,90.0,judo,0,0,0 -206341910,Celma Bonfim da Graca,STP,female,1977-12-23,1.65,58.0,athletics,0,0,0 -291597305,Celso Oliveira,BRA,male,1988-10-28,1.88,88.0,canoe,0,0,0 -991308199,Celtus Williams Abiola Dossou Yovo,BEN,male,1986-04-01,1.75,89.0,judo,0,0,0 -69938071,Cem Yilmaz,TUR,male,1982-06-03,1.8,70.0,rowing,0,0,0 -300985690,Cenk Ildem,TUR,male,1986-01-05,1.8,98.0,wrestling,0,0,1 -435408046,Cesar Augusto Almeida,BRA,male,1989-01-06,1.88,98.0,handball,0,0,0 -518609220,Cesar Castro,BRA,male,1982-09-02,1.75,73.0,aquatics,0,0,0 -454137543,Cesar Ernesto de Cesare,ECU,male,1980-07-12,1.9,92.0,canoe,0,0,0 -15259050,Cesar Marcano,VEN,male,1987-10-22,1.77,76.0,cycling,0,0,0 -427211622,Cesar Montes,MEX,male,1997-02-24,1.91,70.0,football,0,0,0 -794568410,Cesar Sempere,ESP,male,1984-05-26,1.82,86.0,rugby sevens,0,0,0 -844330987,Cesar Y. Ruiz,CUB,male,1995-01-18,1.84,77.0,athletics,0,0,0 -51787706,Chad Guy Bertrand le Clos,RSA,male,1992-04-12,1.9,83.0,aquatics,0,2,0 -797308674,Chad Ho,RSA,male,1990-06-21,1.72,75.0,aquatics,0,0,0 -406780652,Chaebin Im,KOR,male,1991-10-29,1.69,75.0,cycling,0,0,0 -300475041,Chafik Bouaoud,ALG,male,1999-02-12,1.77,74.0,shooting,0,0,0 -388718541,Chagnaadorj Usukhbayar,MGL,male,1997-05-06,1.55,56.0,weightlifting,0,0,0 -465407360,Chahinez Nasri,TUN,female,1996-06-03,1.68,51.0,athletics,0,0,0 -355057478,Chaim Schalk,CAN,male,1986-04-23,1.95,88.0,volleyball,0,0,0 -143002811,Chain Singh,IND,male,1989-04-05,1.72,68.0,shooting,0,0,0 -845845123,Chakir Ansari,MAR,male,1991-06-22,1.68,57.0,wrestling,0,0,0 -738060846,Chala Beyo,ETH,male,1996-01-18,1.76,58.0,athletics,0,0,0 -175009938,Chamara Repiyallage,SRI,male,1992-05-10,1.6,73.0,judo,0,0,0 -278008849,Chamberlain Oguchi,NGR,male,1986-04-28,1.98,90.0,basketball,0,0,0 -723338672,Chandanda Thimmaiah,IND,male,1991-01-18,1.71,61.0,hockey,0,0,0 -974332557,Chandong Lee,KOR,male,1993-01-10,1.83,83.0,football,0,0,0 -523414424,Changgeun Lee,KOR,male,1993-08-30,,,football,0,0,0 -328876180,Changhoon Kwon,KOR,male,1994-06-30,1.74,66.0,football,0,0,0 -981134521,Changjin Moon,KOR,male,1993-07-12,1.7,63.0,football,0,0,0 -988404471,Changju Kim,KOR,male,1985-09-20,1.78,69.0,sailing,0,0,0 -134774857,Changmin Lee,KOR,male,1994-01-20,1.78,74.0,football,0,0,0 -200603322,Changning Zhang,CHN,female,1995-11-06,1.93,79.0,volleyball,1,0,0 -965944116,Changrim An,KOR,male,1994-03-02,1.7,73.0,judo,0,0,0 -428792415,Changrui Xue,CHN,male,1991-05-31,1.88,75.0,athletics,0,0,0 -278225437,Changzhou Huang,CHN,male,1994-08-20,1.86,73.0,athletics,0,0,0 -227590205,Chanice Chase,CAN,female,1993-08-06,1.73,61.0,athletics,0,0,0 -66906563,Chantal Achterberg,NED,female,1985-04-16,1.72,72.0,rowing,0,1,0 -25695000,Chantal Hoffmann,LUX,female,1987-10-30,1.67,62.0,cycling,0,0,0 -543504980,Chantal Van Landeghem,CAN,female,1994-03-05,1.8,77.0,aquatics,0,0,1 -797864870,Chantelle Esau,RSA,female,1990-12-14,1.63,52.0,football,0,0,0 -327647564,Chanu Saikhom Mirabai,IND,female,1994-08-08,1.45,48.0,weightlifting,0,0,0 -912660957,Chao He,CHN,male,1992-02-11,1.68,67.0,aquatics,0,0,0 -89640785,Chao Xu,CHN,male,1994-11-05,1.85,82.0,cycling,0,0,0 -248093384,Chao Yue,CHN,female,1991-01-05,1.65,50.0,athletics,0,0,0 -176787590,Chao Zhou,CHN,female,1987-01-12,1.7,70.0,judo,0,0,0 -516647126,Chaopan Lin,CHN,male,1995-08-27,1.63,60.0,gymnastics,0,0,1 -569192989,Charity Williams,CAN,female,1996-10-20,1.62,68.0,rugby sevens,0,0,1 -957327519,Charlene Woitha,GER,female,1993-08-21,1.78,77.0,athletics,0,0,0 -792508512,Charles Albert Shone Conwell,USA,male,1997-11-02,1.76,,boxing,0,0,0 -624227669,Charles Chibana,BRA,male,1989-09-11,1.63,66.0,judo,0,0,0 -32540693,Charles Cole,USA,male,1986-06-21,1.94,90.0,rowing,0,0,0 -607494288,Charles Correa,BRA,male,1992-10-09,1.59,58.0,canoe,0,0,0 -91062898,Charles Fernandez,GUA,male,1995-12-28,1.81,74.0,modern pentathlon,0,0,0 -557871221,Charles Grethen,LUX,male,1992-06-02,1.8,68.0,athletics,0,0,0 -15332817,Charles Jock,USA,male,1989-11-23,1.91,74.0,athletics,0,0,0 -262046958,Charles Kahudi,FRA,male,1986-07-19,1.97,104.0,basketball,0,0,0 -935795662,Charles Philibert-Thiboutot,CAN,male,1990-12-31,1.82,63.0,athletics,0,0,0 -763413652,Charles Yosei Muneria,KEN,male,1996-02-10,1.67,55.0,athletics,0,0,0 -762626712,Charley Hull,GBR,female,1996-03-20,1.7,70.0,golf,0,0,0 -373271527,Charlie Buckingham,USA,male,1989-01-16,1.88,81.0,sailing,0,0,0 -617780689,Charlie Grice,GBR,male,1993-11-07,1.82,70.0,athletics,0,0,0 -932285565,Charline Mathias,LUX,female,1992-05-23,1.73,60.0,athletics,0,0,0 -889819769,Charline Picon,FRA,female,1984-12-23,1.69,57.0,sailing,1,0,0 -477185472,Charline van Snick,BEL,female,1990-09-02,1.57,48.0,judo,0,0,0 -647849033,Charlotta Fougberg,SWE,female,1985-06-19,1.65,51.0,athletics,0,0,0 -445362383,Charlotte Becker,GER,female,1983-05-19,1.73,64.0,cycling,0,0,0 -721017208,Charlotte Bonin,ITA,female,1987-02-10,1.73,60.0,triathlon,0,0,0 -403574731,Charlotte Bonnet,FRA,female,1995-02-14,1.75,64.0,aquatics,0,0,0 -865933496,Charlotte Caslick,AUS,female,1995-03-09,1.72,65.0,rugby sevens,1,0,0 -172842725,Charlotte Dobson,GBR,female,1986-06-05,1.68,62.0,sailing,0,0,0 -118964304,Charlotte Dujardin,GBR,female,1985-07-12,1.7,57.0,equestrian,1,1,0 -833774216,Charlotte Harrison,NZL,female,1989-07-31,1.67,55.0,hockey,0,0,0 -841791715,Charlotte Lembach,FRA,female,1988-04-01,1.64,57.0,fencing,0,0,0 -634284739,Charlotte Mordasini,SWE,female,1988-12-31,1.71,60.0,equestrian,0,0,0 -996536701,Charlotte Stapenhorst,GER,female,1995-06-15,1.68,68.0,hockey,0,0,1 -837449921,Charlotte Sutherland,AUS,female,1991-06-26,1.8,76.0,rowing,0,0,0 -892102101,Charlotte Taylor,GBR,female,1985-08-14,1.65,57.0,rowing,0,0,0 -660698958,Charlotte Wingfield,MLT,female,1994-11-30,1.73,69.0,athletics,0,0,0 -534915497,Charly Coronel Suarez,PHI,male,1988-08-14,1.68,,boxing,0,0,0 -280839325,Chase Kalisz,USA,male,1994-03-07,1.94,86.0,aquatics,0,1,0 -172605040,Chatchai Butdee,THA,male,1985-03-26,1.66,,boxing,0,0,0 -851008982,Chatuphum Chinnawong,THA,male,1993-07-19,1.67,77.0,weightlifting,0,0,0 -714871025,Chaunte Lowe,USA,female,1984-01-12,1.76,59.0,athletics,0,0,0 -680189509,Chavaughn Walsh,ANT,male,1987-12-29,1.8,72.0,athletics,0,0,0 -284105289,Cheick Sallah Junior Cisse,CIV,male,1993-09-19,1.9,,taekwondo,1,0,0 -105081370,Chelsea Jaensch,AUS,female,1985-01-06,1.63,56.0,athletics,0,0,0 -638380672,Chelsea Lea Gubecka,AUS,female,1998-09-08,1.62,62.0,aquatics,0,0,0 -774700015,Chen Gao,CHN,female,1992-08-11,1.7,58.0,football,0,0,0 -355354758,Chen Shen,CHN,female,1990-07-28,1.71,62.0,fencing,0,0,0 -332886320,Chen Xu,CHN,male,1984-11-29,1.88,82.0,badminton,0,0,0 -886188106,Chen-Ling Lien,TPE,female,1988-01-31,1.68,57.0,judo,0,0,0 -247619979,Chenggang Yu,CHN,male,1984-02-23,1.81,72.0,rowing,0,0,0 -220688472,Chenglong Zhang,CHN,male,1989-05-12,1.73,65.0,gymnastics,0,0,1 -831305339,Chengxin Yin,CHN,female,1995-02-05,1.7,55.0,aquatics,0,1,0 -397297354,Chenlu Qin,CHN,male,1992-10-24,1.75,70.0,cycling,0,0,0 -98995708,Cherif Younousse Samba,QAT,male,1995-05-22,1.94,77.0,volleyball,0,0,0 -543666131,Cheslin Kolbe,RSA,male,1993-10-28,1.79,89.0,rugby sevens,0,0,1 -717003685,Chi-Chung Tan,TPE,male,1990-02-24,1.55,56.0,weightlifting,0,0,0 -116299624,Chia Hsin Tsai,TPE,male,1982-07-25,1.82,82.0,badminton,0,0,0 -36584251,Chia Ying Wu,TPE,female,1992-10-25,1.55,47.0,shooting,0,0,0 -469947705,Chia-Chia Chuang,TPE,female,1989-05-14,1.79,65.0,taekwondo,0,0,0 -480858629,Chiaki Tomita,JPN,female,1993-10-18,1.65,55.0,rowing,0,0,0 -148995739,Chiara Bazzoni,ITA,female,1984-07-05,1.72,58.0,athletics,0,0,0 -454523212,Chiara Cainero,ITA,female,1978-03-24,1.71,81.0,shooting,0,1,0 -875043196,Chiara Masini Luccetti,ITA,female,1993-03-26,1.71,63.0,aquatics,0,0,0 -781396990,Chiara Tabani,ITA,female,1994-08-27,1.76,72.0,aquatics,0,1,0 -430952782,Chico Ramos,POR,male,1995-04-10,1.85,80.0,football,0,0,0 -464650816,Chido Dzingirai,ZIM,female,1991-10-25,1.72,69.0,football,0,0,0 -294878524,Chieh Chen,TPE,male,1992-05-08,1.82,73.0,athletics,0,0,0 -930498029,Chien-An Chen,TPE,male,1991-06-16,1.7,72.0,table tennis,0,0,0 -769049333,Chien-Ho Hsieh,TPE,female,1987-11-25,1.64,48.0,athletics,0,0,0 -296026753,Chien-Hung Pan,TPE,male,1988-08-07,1.69,69.0,weightlifting,0,0,0 -846139203,Chien-Ying Le,TPE,female,1990-04-17,1.65,69.0,archery,0,0,1 -404278296,Chierika Ukogu,NGR,female,1992-10-02,1.8,67.0,rowing,0,0,0 -558527294,Chih Kai Lee,TPE,male,1996-04-03,1.7,65.0,gymnastics,0,0,0 -141719705,Chih-Yuan Chuang,TPE,male,1981-04-02,1.68,60.0,table tennis,0,0,0 -251378331,Chiharu Nakamura,JPN,female,1988-04-25,1.63,63.0,rugby sevens,0,0,0 -32395502,Chihiro Igarashi,JPN,female,1995-05-24,1.7,63.0,aquatics,0,0,0 -802100153,Chijindu Ujah,GBR,male,1994-03-05,1.82,81.0,athletics,0,0,0 -2657574,Chika Aoki,JPN,female,1990-02-21,1.58,54.0,fencing,0,0,0 -489705846,Chilsung Park,KOR,male,1982-07-08,1.73,67.0,athletics,0,0,0 -520588728,Chin-Ping Ho,TPE,male,1983-10-23,1.73,60.0,athletics,0,0,0 -475891314,Chinglensana Kangujam,IND,male,1991-12-02,1.69,72.0,hockey,0,0,0 -697417425,Chinwe Okoro,NGR,female,1989-06-20,1.78,102.0,athletics,0,0,0 -885083820,Chinzorig Baatarsukh,MGL,male,1991-09-21,1.74,,boxing,0,0,0 -775422570,Chirine Njeim,LIB,female,1984-10-04,,,athletics,0,0,0 -781340794,Chisato Fukushima,JPN,female,1988-06-27,1.65,52.0,athletics,0,0,0 -798175500,Chisato Yokoo,JPN,female,1992-05-22,1.64,60.0,rugby sevens,0,0,0 -912156686,Chiu Mang Tang,HKG,male,1990-07-24,1.8,72.0,rowing,0,0,0 -347216262,Chloe Bulleux,FRA,female,1991-11-18,1.72,65.0,handball,0,1,0 -247836901,Chloe Dalton,AUS,female,1993-07-11,1.8,72.0,rugby sevens,1,0,0 -908812309,Chloe Dygert,USA,female,1997-01-01,1.76,66.0,cycling,0,1,0 -66098527,Chloe Esposito,AUS,female,1991-09-19,1.68,55.0,modern pentathlon,1,0,0 -792650052,Chloe Leurquin,BEL,female,1990-08-09,1.69,57.0,golf,0,0,0 -315954176,Chloe Logarzo,AUS,female,1994-12-22,1.65,55.0,football,0,0,0 -819853212,Chloe Magee,IRL,female,1988-11-29,1.65,61.0,badminton,0,0,0 -622470385,Chloe Marie Helene Sauvourel,CAF,female,1999-06-18,1.66,68.0,aquatics,0,0,0 -838794586,Chloe Rayner,AUS,female,1996-09-18,1.55,48.0,judo,0,0,0 -308484063,Chloe Tipple,NZL,female,1991-06-05,1.78,80.0,shooting,0,0,0 -150543887,Chloe Tutton,GBR,female,1996-07-17,1.68,62.0,aquatics,0,0,0 -87537613,Chloe Woodruff,USA,female,1987-07-21,1.58,51.0,cycling,0,0,0 -993806329,Choaib Belhaj Salah,TUN,male,1987-06-04,1.94,93.0,volleyball,0,0,0 -310773041,Chol Pak,PRK,male,1990-11-08,1.65,53.0,athletics,0,0,0 -609981962,Chong Wei Lee,MAS,male,1982-10-21,1.7,68.0,badminton,0,1,0 -82546289,Chouaib Bouloudinats,ALG,male,1987-01-08,1.82,,boxing,0,0,0 -93555495,Chris Adcock,GBR,male,1989-04-27,1.83,80.0,badminton,0,0,0 -518947875,Chris Anker Sorensen,DEN,male,1984-09-05,1.84,65.0,cycling,0,0,0 -889760541,Chris Baker,GBR,male,1991-02-02,1.94,80.0,athletics,0,0,0 -123795777,Chris Bartley,GBR,male,1984-02-02,1.78,72.0,rowing,0,0,0 -381231123,Chris Benard,USA,male,1990-04-09,1.91,83.0,athletics,0,0,0 -629312899,Chris Bennett,GBR,male,1989-12-17,1.88,115.0,athletics,0,0,0 -148030859,Chris Brown,BAH,male,1978-10-15,1.78,75.0,athletics,0,0,1 -719858003,Chris Ciriello,AUS,male,1985-10-01,1.82,83.0,hockey,0,0,0 -784067568,Chris Erickson,AUS,male,1981-12-01,1.75,60.0,athletics,0,0,0 -572725066,Chris Goulding,AUS,male,1988-10-24,1.92,93.0,basketball,0,0,0 -277029308,Chris Grube,GBR,male,1985-01-22,1.94,72.0,sailing,0,0,0 -110660329,Chris Langridge,GBR,male,1985-05-02,1.8,,badminton,0,0,1 -628001010,Chris Mears,GBR,male,1993-02-07,1.73,73.0,aquatics,1,0,0 -182303154,Chris O'Hare,GBR,male,1990-11-23,1.78,63.0,athletics,0,0,0 -150373801,Chris Walker-Hebborn,GBR,male,1990-07-01,1.84,84.0,aquatics,0,1,0 -261887027,Chris Winter,CAN,male,1986-07-22,1.88,75.0,athletics,0,0,0 -491144467,Chris Wyles,USA,male,1983-09-13,1.83,95.0,rugby sevens,0,0,0 -187059251,Chrisann Gordon,JAM,female,1994-09-18,1.68,65.0,athletics,0,1,0 -123893495,Chrishuna Williams,USA,female,1993-03-31,1.61,54.0,athletics,0,0,0 -261434157,Christa Harmotto Dietzen,USA,female,1986-10-12,1.88,79.0,volleyball,0,0,1 -961185789,Christabel Nettey,CAN,female,1991-06-02,1.62,57.0,athletics,0,0,0 -112339974,Christania Williams,JAM,female,1994-10-17,1.65,63.0,athletics,0,1,0 -114831351,Christelle Daunay,FRA,female,1974-12-05,1.62,43.0,athletics,0,0,0 -572557268,Christelle Tchoudjang Nana,CMR,female,1989-07-07,1.84,80.0,volleyball,0,0,0 -900988313,Christen Press,USA,female,1988-12-29,1.7,60.0,football,0,0,0 -783674289,Christiaan Varenhorst,NED,male,1990-05-06,2.11,104.0,volleyball,0,0,0 -983312756,Christian Ahlmann,GER,male,1974-12-17,1.89,80.0,equestrian,0,0,1 -101327235,Christian Amoah,GHA,male,1999-07-25,1.84,84.0,weightlifting,0,0,0 -390828908,Christian Baumann,SUI,male,1995-02-25,1.63,60.0,gymnastics,0,0,0 -871551515,Christian Coleman,USA,male,1996-03-06,1.76,72.0,athletics,0,0,0 -798416693,Christian Diener,GER,male,1993-06-03,1.82,82.0,aquatics,0,0,0 -869931216,Christian Dissinger,GER,male,1991-11-15,2.03,105.0,handball,0,0,1 -429253838,Christian Guenter,GER,male,1993-02-28,1.84,82.0,football,0,0,0 -621658753,Christian Kreienbuhl,SUI,male,1981-06-06,1.86,68.0,athletics,0,0,0 -461859304,Christian Mbilli,FRA,male,1995-04-26,1.75,,boxing,0,0,0 -530803618,Christian Nassif Djidagui,CAF,male,1994-01-01,,,aquatics,0,0,0 -49854896,Christian Peter Lubeck,DEN,male,1991-04-23,1.86,81.0,sailing,0,0,0 -839986218,Christian Presciutti,ITA,male,1982-11-27,1.84,87.0,aquatics,0,0,1 -150989629,Christian Reichert,GER,male,1985-02-07,1.88,83.0,aquatics,0,0,0 -513022644,Christian Reitz,GER,male,1987-04-29,1.84,90.0,shooting,1,0,0 -446986047,Christian Taylor,USA,male,1990-06-18,1.88,81.0,athletics,1,0,0 -607156497,Christian Vom Lehn,GER,male,1992-04-14,1.9,78.0,aquatics,0,0,0 -45955981,Christian Zillekens,GER,male,1995-12-29,1.79,68.0,modern pentathlon,0,0,0 -511915390,Christian Zimmermann,PLE,male,1961-12-12,,,equestrian,0,0,0 -309587083,Christianne Legentil,MRI,female,1992-05-27,1.53,52.0,judo,0,0,0 -23725637,Christin Hussong,GER,female,1994-03-17,1.86,84.0,athletics,0,0,0 -748125644,Christina Epps,USA,female,1991-06-20,1.76,65.0,athletics,0,0,0 -646217322,Christina Hering,GER,female,1994-10-09,1.85,63.0,athletics,0,0,0 -532991563,Christina Obergfoll,GER,female,1981-08-22,1.75,79.0,athletics,0,0,0 -802053321,Christina Schwanitz,GER,female,1985-12-24,1.8,115.0,athletics,0,0,0 -544811537,Christine Amertil,BAH,female,1979-08-18,1.68,54.0,athletics,0,0,0 -304380235,Christine Bjerendal,SWE,female,1987-02-03,1.61,59.0,archery,0,0,0 -524363491,Christine Botlogetswe,BOT,female,1995-10-01,,,athletics,0,0,0 -45076354,Christine Day,JAM,female,1986-08-23,1.68,51.0,athletics,0,1,0 -774219408,Christine Kalmer,RSA,female,1986-02-10,1.72,55.0,athletics,0,0,0 -348981852,Christine Majerus,LUX,female,1987-02-25,1.74,57.0,cycling,0,0,0 -600192107,Christine Ohuruogu,GBR,female,1984-05-17,1.72,70.0,athletics,0,0,1 -141698796,Christine Roper,CAN,female,1990-05-15,1.88,90.0,rowing,0,0,0 -250723812,Christine Sinclair,CAN,female,1983-06-12,1.76,68.0,football,0,0,1 -514854270,Christine Wenzel,GER,female,1981-07-10,1.71,63.0,shooting,0,0,0 -996180184,Christine Wolf,AUT,female,1989-03-05,1.72,63.0,golf,0,0,0 -121437333,Christinna Pedersen,DEN,female,1986-05-12,1.78,68.0,badminton,0,1,0 -971332873,Christodoulos Kolomvos,GRE,male,1988-10-26,1.86,103.0,aquatics,0,0,0 -85448954,Christoph Fildebrandt,GER,male,1989-05-27,1.93,80.0,aquatics,0,0,0 -501861079,Christoph Harting,GER,male,1990-04-10,2.07,123.0,athletics,1,0,0 -731592178,Christoph Martin Meier,LIE,male,1993-01-03,1.97,95.0,aquatics,0,0,0 -134449536,Christophe Lemaitre,FRA,male,1990-06-11,1.9,74.0,athletics,0,0,1 -447803085,Christophen McPHERSON,BRA,male,1984-06-19,1.85,77.0,hockey,0,0,0 -822832512,Christopher Brooks,USA,male,1986-12-19,1.73,74.0,gymnastics,0,0,0 -628857615,Christopher Burton,AUS,male,1981-11-22,1.8,70.0,equestrian,0,0,1 -401021506,Christopher Cargo,IRL,male,1986-02-18,1.82,79.0,hockey,0,0,0 -795060269,Christopher Froome,GBR,male,1985-05-20,1.85,69.0,cycling,0,0,1 -804679484,Christopher George,TTO,male,1983-12-25,,,judo,0,0,0 -489215473,Christopher Guccione,AUS,male,1985-07-30,2.0,91.0,tennis,0,0,0 -777119491,Christopher Harris,NZL,male,1985-10-19,1.87,89.0,rowing,0,0,0 -488320135,Christopher Juul Jensen,DEN,male,1989-07-06,1.85,75.0,cycling,0,0,0 -515467110,Christopher Linke,GER,male,1988-10-24,1.91,66.0,athletics,0,0,0 -375356120,Christopher Morgan,AUS,male,1982-12-15,1.91,90.0,rowing,0,0,0 -893971715,Christopher Patrick Reid,RSA,male,1996-01-10,1.98,98.0,aquatics,0,0,0 -390068721,Christopher Ruhr,GER,male,1993-12-19,1.8,77.0,hockey,0,0,1 -672777082,Christopher Valdez,DOM,male,1994-11-01,1.7,63.0,athletics,0,0,0 -741375117,Christopher Wesley,GER,male,1987-06-23,1.92,88.0,hockey,0,0,1 -491621394,Christos Afroudakis,GRE,male,1984-05-23,1.88,88.0,aquatics,0,0,0 -178446035,Christos Katrantzis,GRE,male,1992-03-30,1.88,78.0,aquatics,0,0,0 -416304981,Christos Volikakis,GRE,male,1988-03-25,1.7,85.0,cycling,0,0,0 -141489782,Chu-En Lai,TPE,male,1996-07-23,1.68,,boxing,0,0,0 -82062785,Chuluunbat Jargalsaikhan,MGL,male,1984-12-03,1.84,125.0,wrestling,0,0,0 -136590128,Chun Hei Reginald Lee,HKG,male,1994-01-25,1.7,72.0,badminton,0,0,0 -160814814,Chun Hing Chan,HKG,male,1981-04-24,1.7,70.0,cycling,0,0,0 -546606814,Chun Leung Michael Cheng,HKG,male,1994-04-30,1.82,74.0,sailing,0,0,0 -890198247,Chun Ting Wong,HKG,male,1991-09-07,1.7,70.0,table tennis,0,0,0 -932296367,Chun Wing Leung,HKG,male,1994-01-20,1.76,73.0,cycling,0,0,0 -361473378,Chun-Heng Wei,TPE,male,1994-07-06,1.8,74.0,archery,0,0,0 -972398061,Chun-Hsien Hsiang,TPE,male,1993-09-04,1.86,70.0,athletics,0,0,0 -74882200,Chunsong Shang,CHN,female,1996-03-18,1.43,34.0,gymnastics,0,0,1 -184720791,Chunxin Wang,CHN,male,1997-11-25,1.8,70.0,rowing,0,0,0 -748411041,Chunyu Wang,CHN,female,1995-01-17,1.75,55.0,athletics,0,0,0 -434268598,Churandy Martina,NED,male,1984-07-03,1.8,76.0,athletics,0,0,0 -364006539,Ciara Everard,IRL,female,1990-07-10,1.69,54.0,athletics,0,0,0 -784773877,Ciara Horne,GBR,female,1989-09-17,1.79,63.0,cycling,0,0,0 -425071947,Ciara Mageean,IRL,female,1992-03-12,1.7,55.0,athletics,0,0,0 -786574595,Cierra Runge,USA,female,1996-03-07,1.94,84.0,aquatics,1,0,0 -269551949,Cindy Billaud,FRA,female,1986-03-11,1.67,59.0,athletics,0,0,0 -808281174,Cindy Ofili,GBR,female,1994-08-05,1.78,68.0,athletics,0,0,0 -348165944,Cindy Roleder,GER,female,1989-08-21,1.78,70.0,athletics,0,0,0 -810690969,Ciril Grossklaus,SUI,male,1991-04-17,1.85,90.0,judo,0,0,0 -768959560,Cisiane Lopes,BRA,female,1983-02-17,1.59,49.0,athletics,0,0,0 -848614623,Claire Allan,GBR,female,1985-05-07,1.7,65.0,rugby sevens,0,0,0 -511358309,Claire Lambe,IRL,female,1990-05-16,1.78,57.0,rowing,0,0,0 -815034554,Claire Lavogez,FRA,female,1994-06-18,1.73,63.0,football,0,0,0 -516245173,Claire Michel,BEL,female,1988-10-13,1.68,54.0,triathlon,0,0,0 -716197496,Clara Espar Llaquet,ESP,female,1994-09-29,1.78,68.0,aquatics,0,0,0 -52347584,Clare Abbott,IRL,female,1986-07-28,1.67,58.0,equestrian,0,0,0 -317879815,Clare Polkinghorne,AUS,female,1989-02-01,1.73,67.0,football,0,0,0 -805523212,Clarence Munyai,RSA,male,1998-02-20,1.7,65.0,athletics,0,0,0 -175558091,Claressa Maria Shields,USA,female,1995-03-17,1.76,,boxing,1,0,0 -161104873,Clarisa Sagardia,ARG,female,1989-06-29,1.74,67.0,volleyball,0,0,0 -722629452,Clarissa Santos,BRA,female,1988-03-10,1.83,89.0,basketball,0,0,0 -610018581,Clarisse Agbegnenou,FRA,female,1992-10-25,1.64,66.0,judo,0,1,0 -989657937,Clarisse le Bihan,FRA,female,1994-12-14,1.72,64.0,football,0,0,0 -292197619,Clark Montgomery,USA,male,1981-05-20,1.83,70.0,equestrian,0,0,0 -736895804,Clark Smith,USA,male,1995-04-17,2.06,89.0,aquatics,1,0,0 -447342515,Clarke Johnstone,NZL,male,1987-04-26,1.94,80.0,equestrian,0,0,0 -792920244,Claudette Mukasakindi,RWA,female,1982-12-25,1.6,68.0,athletics,0,0,0 -772469777,Claudia Belderbos,NED,female,1985-01-23,1.75,72.0,rowing,0,0,0 -425434912,Claudia Bobocea,ROU,female,1992-06-11,1.76,53.0,athletics,0,0,0 -950213745,Claudia Cesarini,ITA,female,1986-08-04,1.77,60.0,modern pentathlon,0,0,0 -351914680,Claudia Fragapane,GBR,female,1997-10-24,1.37,43.0,gymnastics,0,0,0 -262947031,Claudia Jaqueline Teles,BRA,female,1992-01-02,1.66,57.0,rugby sevens,0,0,0 -130234491,Claudia Lau,HKG,female,1992-11-11,1.6,53.0,aquatics,0,0,0 -695148064,Claudia Lichtenberg,GER,female,1985-11-17,1.7,51.0,cycling,0,0,0 -688060472,Claudia Mandia,ITA,female,1992-10-21,1.7,74.0,archery,0,0,0 -132539493,Claudia Rath,GER,female,1986-04-25,1.75,65.0,athletics,0,0,0 -108261189,Claudia Rivas,MEX,female,1989-06-15,1.71,56.0,triathlon,0,0,0 -462976229,Claudia Stef,ROU,female,1978-02-25,1.7,57.0,athletics,0,0,0 -286903708,Claudio Castilla Ruiz,ESP,male,1983-05-30,1.73,66.0,equestrian,0,0,0 -222024929,Claudio Villanueva,ECU,male,1988-08-03,1.75,68.0,athletics,0,0,0 -952767996,Clayton Murphy,USA,male,1995-02-26,1.81,68.0,athletics,0,0,1 -692043872,Clelia Reuse-Rard,SUI,female,1988-08-01,1.7,57.0,athletics,0,0,0 -622017902,Clemens Doppler,AUT,male,1980-09-06,1.99,85.0,volleyball,0,0,0 -469894756,Clemens Rapp,GER,male,1989-07-14,1.93,85.0,aquatics,0,0,0 -112490441,Clement Mignon,FRA,male,1993-01-21,1.87,75.0,aquatics,0,1,0 -212851704,Clemente Russo,ITA,male,1982-07-27,1.81,,boxing,0,0,0 -526600784,Clemilda Fernandes Silva,BRA,female,1979-06-25,1.63,54.0,cycling,0,0,0 -406253452,Cleopatra Borel,TTO,female,1979-03-10,1.72,89.0,athletics,0,0,0 -62395737,Clive Pullen,JAM,male,1994-10-18,1.83,83.0,athletics,0,0,0 -81383299,Cloe Hache,FRA,female,1997-12-11,1.71,62.0,aquatics,0,0,0 -687327234,Coco Vandeweghe,USA,female,1991-12-06,1.86,70.0,tennis,0,0,0 -710695405,Cody Miller,USA,male,1992-01-09,1.81,79.0,aquatics,1,0,1 -844245742,Coen de Koning,NED,male,1983-04-05,1.83,74.0,sailing,0,0,0 -663469791,Colin Cheng,SIN,male,1989-09-10,1.75,80.0,sailing,0,0,0 -232134278,Colin Fleming,GBR,male,1984-08-13,1.88,78.0,tennis,0,0,0 -702982870,Colin Oates,GBR,male,1983-06-07,1.7,71.0,judo,0,0,0 -758562583,Colleen Furgeson,MHL,female,1998-11-21,1.76,65.0,aquatics,0,0,0 -989356382,Colleen Loach,CAN,female,1983-04-10,1.79,61.0,equestrian,0,0,0 -531594504,Colleen Quigley,USA,female,1992-11-20,1.76,61.0,athletics,0,0,0 -914233463,Collins Injera,KEN,male,1986-10-18,1.82,90.0,rugby sevens,0,0,0 -13487026,Colton Brown,USA,male,1991-10-08,1.83,90.0,judo,0,0,0 -600130363,Con Foley,AUS,male,1992-09-19,1.88,90.0,rugby sevens,0,0,0 -891831765,Concepcion Montaner,ESP,female,1981-01-14,1.7,59.0,athletics,0,0,0 -6156543,Cong Zhang,CHN,female,1990-05-03,1.76,62.0,aquatics,0,0,0 -669712048,Conlin McCABE,CAN,male,1990-08-20,2.05,100.0,rowing,0,0,0 -868434625,Connor Fields,USA,male,1992-09-14,1.83,88.0,cycling,1,0,0 -420887334,Connor Jaeger,USA,male,1991-04-30,1.86,77.0,aquatics,0,1,0 -988931818,Conny Wassmuth,GER,female,1983-04-13,1.67,64.0,canoe,0,0,0 -453971347,Conor Dwyer,USA,male,1989-01-10,1.96,88.0,aquatics,1,0,1 -893225332,Conor Harte,IRL,male,1988-04-03,1.96,93.0,hockey,0,0,0 -579847713,Conor McCullough,USA,male,1991-01-31,1.96,106.0,athletics,0,0,0 -766006270,Conseslus Kipruto,KEN,male,1994-12-08,1.67,58.0,athletics,1,0,0 -752876946,Constantijn Jonker,NED,male,1987-09-20,1.82,78.0,hockey,0,0,0 -861389806,Constantin Adam,ROU,male,1996-07-12,2.02,105.0,rowing,0,0,0 -299370363,Constantin Blaha,AUT,male,1987-12-01,1.78,77.0,aquatics,0,0,0 -779629172,Constantine Louloudis,GBR,male,1991-09-15,1.9,92.0,rowing,1,0,0 -606804046,Coralie Balmy,FRA,female,1987-06-02,1.8,67.0,aquatics,0,0,0 -752996196,Corben Sharrah,USA,male,1992-04-20,1.83,85.0,cycling,0,0,0 -37278485,Corey Cogdell,USA,female,1986-09-02,1.73,70.0,shooting,0,0,1 -473676473,Corey Main,NZL,male,1995-02-27,1.92,85.0,aquatics,0,0,0 -362762819,Corey Ollivierre,GRN,male,1997-03-16,,,aquatics,0,0,0 -267386705,Corina Caprioriu,ROU,female,1986-07-18,1.61,57.0,judo,0,0,0 -83666929,Corinna Kuhnle,AUT,female,1987-07-04,1.74,65.0,canoe,0,0,0 -931635380,Costanza Ferro,ITA,female,1993-07-05,1.69,56.0,aquatics,0,0,0 -567635337,Courtney Frerichs,USA,female,1993-01-18,1.71,53.0,athletics,0,0,0 -64284064,Courtney Hurley,USA,female,1990-09-30,1.73,79.0,fencing,0,0,0 -760942208,Courtney Mathewson,USA,female,1986-09-14,1.71,69.0,aquatics,1,0,0 -495348801,Courtney McGregor,NZL,female,1998-11-17,1.59,47.0,gymnastics,0,0,0 -771725452,Courtney Okolo,USA,female,1994-03-15,1.73,58.0,athletics,1,0,0 -650068927,Courtney Thompson,USA,female,1984-11-04,1.7,66.0,volleyball,0,0,1 -100145266,Craig Benson,GBR,male,1994-04-30,1.83,80.0,aquatics,0,0,0 -135156587,Craig Miller,NZL,male,1985-06-10,1.73,66.0,wrestling,0,0,0 -58627680,Crisanto Grajales,MEX,male,1987-05-06,1.66,60.0,triathlon,0,0,0 -592844746,Crispin Duenas,CAN,male,1986-01-05,1.7,81.0,archery,0,0,0 -710589299,Crista Cullen,GBR,female,1985-08-20,1.82,74.0,hockey,1,0,0 -662170808,Cristhian Pacheco,PER,male,1993-05-26,1.62,50.0,athletics,0,0,0 -227681295,Cristi-Ilie Pirghie,ROU,male,1992-07-20,2.02,108.0,rowing,0,0,0 -70420112,Cristian Bonilla,COL,male,1993-06-02,1.88,85.0,football,0,0,0 -243091497,Cristian Borja,COL,male,1993-02-18,1.79,72.0,football,0,0,0 -378249166,Cristian Espinoza,ARG,male,1995-04-03,1.67,70.0,football,0,0,0 -67716085,Cristian Pavon,ARG,male,1996-01-21,1.72,69.0,football,0,0,0 -781407492,Cristian Poglajen,ARG,male,1989-07-14,1.95,94.0,volleyball,0,0,0 -367878750,Cristian Quintero,VEN,male,1992-10-14,1.95,90.0,aquatics,0,0,0 -708503886,Cristian Toro,ESP,male,1992-04-29,1.88,90.0,canoe,1,0,0 -931912582,Cristiane,BRA,female,1985-05-15,1.76,69.0,football,0,0,0 -879488777,Cristiane Silva,BRA,female,1988-04-04,1.62,54.0,athletics,0,0,0 -999131085,Cristiano Felicio,BRA,male,1992-07-07,2.08,125.0,basketball,0,0,0 -900778069,Cristina Bujin,ROU,female,1988-04-12,1.72,56.0,athletics,0,0,0 -687865041,Cristina Chirichella,ITA,female,1994-02-10,1.95,73.0,volleyball,0,0,0 -487060100,Cristina Direito Branco,ANG,female,1985-03-15,1.72,68.0,handball,0,0,0 -733246969,Cristina Guinea,ESP,female,1992-07-31,1.66,61.0,hockey,0,0,0 -580737195,Cristina Neagu,ROU,female,1988-08-26,1.8,69.0,handball,0,0,0 -788552666,Cristina Sheehan,AUS,female,1998-09-26,1.63,49.0,aquatics,0,0,0 -301673145,Cristobal Grez Ahrens,CHI,male,1987-12-17,1.79,81.0,sailing,0,0,0 -611619985,Cristopher Joel Pavon Funes,HON,male,1993-04-18,1.73,93.0,weightlifting,0,0,0 -564187866,Cristy Nurse,CAN,female,1986-12-05,1.82,74.0,rowing,0,0,0 -607270987,Crystal Brittany Weekes,PUR,female,1998-01-14,1.78,73.0,taekwondo,0,0,0 -343383925,Crystal Dunn,USA,female,1992-07-03,1.57,54.0,football,0,0,0 -242394914,Crystal Emmanuel,CAN,female,1991-11-27,1.7,59.0,athletics,0,0,0 -679997450,Cuthbert Nyasango,ZIM,male,1982-09-17,1.63,56.0,athletics,0,0,0 -492543946,Cy Thompson,ISV,male,1988-07-01,,,sailing,0,0,0 -377141753,Cynthia Bolingo,BEL,female,1993-01-12,1.65,53.0,athletics,0,0,0 -778561493,Cynthia Meyer,CAN,female,1965-10-06,1.63,51.0,shooting,0,0,0 -354553687,Cynthia Vanessa Vescan,FRA,female,1992-02-07,1.7,74.0,wrestling,0,0,0 -884034589,Cyril Graff,FRA,male,1980-09-11,1.7,64.0,shooting,0,0,0 -733143674,Cyril Tommasone,FRA,male,1987-07-04,1.71,62.0,gymnastics,0,0,0 -13038806,Cyrille Carre,FRA,male,1984-04-11,1.84,75.0,canoe,0,0,0 -243473518,Cyrille Maret,FRA,male,1987-08-11,1.89,108.0,judo,0,0,1 -601293149,Cyrille Thiery,SUI,male,1990-09-27,1.79,67.0,cycling,0,0,0 -77303549,Cyrus Hostetler,USA,male,1986-08-08,1.88,95.0,athletics,0,0,0 -697656751,Céline van Gerner,NED,female,1994-12-01,1.58,51.0,gymnastics,0,0,0 -781080188,D J Forbes,NZL,male,1982-12-15,1.89,103.0,rugby sevens,0,0,0 -12021988,Daehoon Lee,KOR,male,1992-02-05,1.83,70.0,taekwondo,0,0,1 -392205384,Daemyung Lee,KOR,male,1988-09-14,1.82,78.0,shooting,0,0,0 -83363661,Dafne Schippers,NED,female,1992-06-15,1.79,70.0,athletics,0,1,0 -128148287,Dagmara Wozniak,USA,female,1988-07-01,1.73,81.0,fencing,0,0,1 -667178764,Dagnis Iljins,LAT,male,1992-08-20,1.78,82.0,canoe,0,0,0 -102532767,Daichi Sawano,JPN,male,1980-09-16,1.83,74.0,athletics,0,0,0 -519978075,Daichi Sugimoto,JPN,male,1993-07-15,1.86,79.0,football,0,0,0 -679515187,Daiene Marcal,BRA,female,1989-05-16,1.59,55.0,aquatics,0,0,0 -212523902,Daigo Hasegawa,JPN,male,1990-02-27,1.73,58.0,athletics,0,0,0 -567351741,Daigoro Timoncini,ITA,male,1985-12-13,1.8,98.0,wrestling,0,0,0 -836156960,Dailin Belmonte,CUB,female,1985-10-15,1.58,52.0,athletics,0,0,0 -648027000,Daina Levy,JAM,female,1993-05-27,1.65,98.0,athletics,0,0,0 -100107881,Dainis Upelnieks,LAT,male,1982-10-01,1.93,103.0,shooting,0,0,0 -268106399,Daisuke Fukushima,JPN,male,1977-09-20,1.78,68.0,equestrian,0,0,0 -46762119,Daisuke Matsunaga,JPN,male,1995-03-24,1.74,60.0,athletics,0,0,0 -429516855,Daisuke Narimatsu,JPN,male,1989-12-14,1.72,,boxing,0,0,0 -798836985,Daisurami Bonne,CUB,female,1988-03-09,1.71,60.0,athletics,0,0,0 -989560488,Daisy Cleverley,NZL,female,1997-04-30,1.7,59.0,football,0,0,0 -693678730,Daisy Kaitano,ZIM,female,1993-09-20,1.71,61.0,football,0,0,0 -242973427,Daiva Tuslaite,LTU,female,1986-06-18,1.72,58.0,cycling,0,0,0 -192954208,Daiya Seto,JPN,male,1994-05-24,1.74,73.0,aquatics,0,0,1 -902505168,Dajana Butulija,SRB,female,1986-02-23,1.75,65.0,basketball,0,0,1 -205886057,Dalal Mesfer Al Harith,QAT,female,1999-11-28,1.6,55.0,athletics,0,0,0 -576218781,Dalia Torrez,NCA,female,1990-03-29,1.74,70.0,aquatics,0,0,0 -441998277,Dalila Abdulkadir,BRN,female,1998-06-27,1.56,46.0,athletics,0,0,0 -209724463,Dalilah Muhammad,USA,female,1990-02-07,1.73,55.0,athletics,1,0,0 -360953664,Dalma Ruzicic Benedek,SRB,female,1982-02-21,1.65,65.0,canoe,0,0,0 -381413110,Dalma Sebestyen,HUN,female,1997-01-23,1.8,68.0,aquatics,0,0,0 -975197213,Daly Santana,PUR,female,1995-02-19,1.85,65.0,volleyball,0,0,0 -610645827,Damar Forbes,JAM,male,1990-09-11,1.88,82.0,athletics,0,0,0 -785182328,Damian Czykier,POL,male,1992-08-10,1.91,78.0,athletics,0,0,0 -969246730,Damian Martin,AUS,male,1984-09-05,1.86,90.0,basketball,0,0,0 -445781696,Damian Warner,CAN,male,1989-11-04,1.85,83.0,athletics,0,0,1 -227000230,Damian Wierling,GER,male,1996-02-13,1.96,74.0,aquatics,0,0,0 -112793044,Damian Zielinski,POL,male,1981-12-02,1.85,92.0,cycling,0,0,0 -315107389,Damiano Caruso,ITA,male,1987-10-12,1.79,65.0,cycling,0,0,0 -4074919,Damien Birkinhead,AUS,male,1993-04-08,1.9,140.0,athletics,0,0,0 -642505944,Damien Cler,FRA,male,1983-10-02,1.85,95.0,rugby sevens,0,0,0 -534791286,Damien Joly,FRA,male,1992-06-04,1.89,72.0,aquatics,0,0,0 -486111896,Damir Buric,CRO,male,1980-12-02,2.05,115.0,aquatics,0,1,0 -675408199,Damir Dugonjic,SLO,male,1988-02-21,2.02,105.0,aquatics,0,0,0 -901528927,Damir Dzumhur,BIH,male,1992-05-20,1.75,65.0,tennis,0,0,0 -971510831,Damir Martin,CRO,male,1988-07-14,1.89,97.0,rowing,0,1,0 -594844632,Damir Mikec,SRB,male,1984-03-31,1.79,79.0,shooting,0,0,0 -546700394,Damiris Dantas,BRA,female,1992-11-17,1.9,80.0,basketball,0,0,0 -751391017,Dan Bibby,GBR,male,1991-02-06,1.76,86.0,rugby sevens,0,1,0 -715044035,Dan Craven,NAM,male,1983-02-01,1.83,76.0,cycling,0,0,0 -619597624,Dan Froyliche,ISR,male,1992-11-18,1.82,73.0,sailing,0,0,0 -614482218,Dan Li,CHN,female,1988-09-18,1.55,48.0,gymnastics,0,0,1 -96353968,Dan Lin,CHN,male,1983-10-14,1.77,70.0,badminton,0,0,0 -721862825,Dan Norton,GBR,male,1988-03-22,1.8,85.0,rugby sevens,0,1,0 -765792716,Dan Wallace,GBR,male,1993-04-14,1.88,80.0,aquatics,0,1,0 -134936135,Dana Veldakova,SVK,female,1981-06-03,1.79,61.0,athletics,0,0,0 -622909202,Dana Vollmer,USA,female,1987-11-13,1.86,68.0,aquatics,1,1,1 -55407824,Danai Bhobho,ZIM,female,1992-12-01,1.63,59.0,football,0,0,0 -211024970,Danas Rapsys,LTU,male,1995-05-21,1.9,84.0,aquatics,0,0,0 -665814461,Dane Bird-Smith,AUS,male,1992-07-15,1.87,72.0,athletics,0,0,1 -772450203,Dane Sampson,AUS,male,1986-08-20,1.83,89.0,shooting,0,0,0 -453079347,Daneja Grandovec,SLO,female,1984-07-02,1.75,58.0,athletics,0,0,0 -527822094,Danell Leyva,USA,male,1991-10-30,1.73,72.0,gymnastics,0,2,0 -218424864,Dani Samuels,AUS,female,1988-05-26,1.82,82.0,athletics,0,0,0 -119961114,Daniah Hagul,LBA,female,1999-02-07,,,aquatics,0,0,0 -585194205,Danick Snelder,NED,female,1990-05-22,1.78,75.0,handball,0,0,0 -161929163,Daniel Akpeyi,NGR,male,1986-03-08,1.87,,football,0,0,1 -579693569,Daniel Allerstorfer,AUT,male,1992-12-04,1.83,130.0,judo,0,0,0 -574774102,Daniel Andujar,ESP,male,1994-05-14,1.82,78.0,athletics,0,0,0 -2865880,Daniel Asenov,BUL,male,1997-05-17,1.63,,boxing,0,0,0 -183503173,Daniel Bailey,ANT,male,1986-09-09,1.79,68.0,athletics,0,0,0 -189421989,Daniel Beale,AUS,male,1993-02-12,1.84,74.0,hockey,0,0,0 -568936910,Daniel Bluman,COL,male,1990-03-15,1.82,72.0,equestrian,0,0,0 -442179948,Daniel Bowker,AUS,male,1987-09-21,1.91,89.0,canoe,0,0,0 -719186892,Daniel Brodmeier,GER,male,1987-09-02,1.8,100.0,shooting,0,0,0 -436335387,Daniel Cornelius Jansen Vandoorn,CAN,male,1990-03-21,2.07,98.0,volleyball,0,0,0 -719022816,Daniel Corral,MEX,male,1990-01-25,1.75,64.0,gymnastics,0,0,0 -10083714,Daniel Dal Bo,ARG,male,1987-09-08,1.85,78.0,canoe,0,0,0 -16964420,Daniel Deusser,GER,male,1981-08-13,1.9,76.0,equestrian,0,0,1 -93209165,Daniel Diaz,ARG,male,1989-07-07,1.68,63.0,cycling,0,0,0 -254552114,Daniel Estrada,CHI,male,1990-02-27,1.73,61.0,athletics,0,0,0 -258029864,Daniel Flores,VEN,male,1981-10-17,1.8,73.0,sailing,0,0,0 -55281398,Daniel Fox,GBR,male,1983-03-03,1.83,78.0,hockey,0,0,0 -387284782,Daniel Gomez,MEX,male,1990-05-06,1.78,78.0,fencing,0,0,0 -542045752,Daniel Goodfellow,GBR,male,1996-10-19,1.67,58.0,aquatics,0,0,1 -140752728,Daniel Gorak,POL,male,1983-10-09,1.78,77.0,table tennis,0,0,0 -654450748,Daniel Gyurta,HUN,male,1989-05-04,1.85,76.0,aquatics,0,0,0 -582252675,Daniel Habesohn,AUT,male,1986-07-22,1.85,78.0,table tennis,0,0,0 -270915290,Daniel Havel,CZE,male,1991-08-10,1.78,79.0,canoe,0,0,1 -988381105,Daniel Jasinski,GER,male,1989-08-05,2.07,120.0,athletics,0,0,1 -738563409,Daniel Jason Lewis,AUS,male,1993-12-18,1.78,,boxing,0,0,0 -642681406,Daniel Jerent,FRA,male,1991-06-04,1.89,84.0,fencing,1,0,0 -679369077,Daniel Ligeti,HUN,male,1989-07-31,1.9,117.0,wrestling,0,0,0 -686181990,Daniel Lopez Pinedo,ESP,male,1980-07-16,1.9,88.0,aquatics,0,0,0 -337337344,Daniel Lowe,USA,male,1992-11-18,1.83,81.0,shooting,0,0,0 -173884124,Daniel Macovei,ROU,male,1992-09-15,1.85,71.0,aquatics,0,0,0 -635773855,Daniel Martin,IRL,male,1986-08-20,1.76,63.0,cycling,0,0,0 -108357874,Daniel McConnell,AUS,male,1985-08-09,1.8,70.0,cycling,0,0,0 -702422699,Daniel Narcisse,FRA,male,1979-12-16,1.89,93.0,handball,0,1,0 -306635640,Daniel Natea,ROU,male,1992-04-21,2.03,170.0,judo,0,0,0 -747184552,Daniel Nestor,CAN,male,1972-09-04,1.91,87.0,tennis,0,0,0 -287487601,Daniel Paul Dennis,USA,male,1986-09-24,1.66,56.0,wrestling,0,0,0 -12736710,Daniel Repacholi,AUS,male,1982-05-15,2.02,128.0,shooting,0,0,0 -469677612,Daniel Rezende Xavier,BRA,male,1982-08-31,1.91,81.0,archery,0,0,0 -165866962,Daniel Sancery,BRA,male,1994-05-27,1.82,90.0,rugby sevens,0,0,0 -10072667,Daniel Shingles,GBR,male,1986-07-05,1.84,84.0,hockey,0,0,0 -149524585,Daniel Skaaning,DEN,male,1993-06-22,1.8,79.0,aquatics,0,0,0 -463354597,Daniel Smith,AUS,male,1991-05-28,1.9,83.0,aquatics,0,0,0 -285374253,Daniel Stahl,SWE,male,1992-08-27,2.0,155.0,athletics,0,0,0 -937921024,Daniel Talbot,GBR,male,1991-05-01,1.84,73.0,athletics,0,0,0 -815557568,Daniel Teklehaimanot,ERI,male,1988-11-10,,,cycling,0,0,0 -689191404,Daniel Tihomirov Aleksandrov,BUL,male,1991-09-13,1.82,81.0,wrestling,0,0,0 -278950598,Daniel Trojanowski,POL,male,1982-07-24,1.7,55.0,rowing,0,0,0 -797414950,Daniel Varga,HUN,male,1983-09-25,2.01,96.0,aquatics,0,0,0 -275083561,Daniel Vargas,MEX,male,1986-09-01,1.97,94.0,volleyball,0,0,0 -986523075,Daniel Vargas,MEX,male,1984-03-06,1.62,53.0,athletics,0,0,0 -317345417,Daniel Wiederkehr,SUI,male,1989-05-15,1.83,73.0,rowing,0,0,0 -493335766,Daniel Willcox,NZL,male,1990-06-08,1.79,72.0,sailing,0,0,0 -490419163,Daniela Campuzano Chavez Peon,MEX,female,1986-10-21,1.73,56.0,cycling,0,0,0 -111341393,Daniela Cardoso,POR,female,1991-12-15,1.57,48.0,athletics,0,0,0 -893449687,Daniela Carlan,ROU,female,1980-09-18,1.64,47.0,athletics,0,0,0 -735809811,Daniela Druncea,ROU,female,1990-11-02,1.5,50.0,rowing,0,0,1 -540393824,Daniela Ferenz,GER,female,1990-08-03,1.71,61.0,athletics,0,0,0 -466134584,Daniela Matarazzo Carraro,BRA,female,1985-03-25,1.65,67.0,shooting,0,0,0 -793252386,Daniela Monteiro Dodean,ROU,female,1988-01-13,1.7,55.0,table tennis,0,0,0 -816970958,Daniela Piedade,BRA,female,1979-03-02,1.74,70.0,handball,0,0,0 -215890909,Daniela Potapova,GER,female,1996-01-17,1.66,48.0,gymnastics,0,0,0 -783504559,Daniele Garozzo,ITA,male,1992-08-04,1.77,65.0,fencing,1,0,0 -821159021,Daniele Hypolito,BRA,female,1984-09-08,1.47,40.0,gymnastics,0,0,0 -438701799,Daniele Lupo,ITA,male,1991-05-06,1.93,83.0,volleyball,0,1,0 -590118305,Daniele Meucci,ITA,male,1985-10-07,1.78,64.0,athletics,0,0,0 -207450764,Danielle Kettlewell,AUS,female,1992-11-17,1.75,65.0,aquatics,0,0,0 -699029368,Danielle Lins,BRA,female,1985-01-05,1.83,71.0,volleyball,0,0,0 -534901017,Danielle Page,SRB,female,1986-11-14,1.88,77.0,basketball,0,0,1 -193943106,Danielle Prince,AUS,female,1992-06-12,1.66,52.0,gymnastics,0,0,0 -426724791,Danielle Suzanne Lappage,CAN,female,1990-09-24,1.65,63.0,wrestling,0,0,0 -554312456,Danielle Villars,SUI,female,1993-03-06,1.78,62.0,aquatics,0,0,0 -655184576,Danielle Waterman,GBR,female,1985-01-20,1.65,64.0,rugby sevens,0,0,0 -726533168,Daniil Pakhomov,RUS,male,1998-08-05,1.89,77.0,aquatics,0,0,0 -932783327,Danijel Furtula,MNE,male,1992-07-31,1.93,118.0,athletics,0,0,0 -761545111,Danijel Saric,QAT,male,1977-06-27,1.95,92.0,handball,0,0,0 -153868407,Danila Izotov,RUS,male,1991-10-02,1.92,90.0,aquatics,0,0,0 -937365507,Danilo Caro Guarnieri,COL,male,1965-09-06,1.7,58.0,shooting,0,0,0 -782501864,Danish Mujtaba,IND,male,1988-12-20,1.68,66.0,hockey,0,0,0 -128511976,Daniyar Ismayilov,TUR,male,1992-02-03,1.73,69.0,weightlifting,0,1,0 -76405574,Daniyar Yeleussinov,KAZ,male,1991-03-13,1.78,,boxing,1,0,0 -692417877,Danka Bartekova,SVK,female,1984-10-19,1.7,55.0,shooting,0,0,0 -787754025,Danka Kovinic,MNE,female,1994-11-18,1.7,67.0,tennis,0,0,0 -828679930,Dannie Boyd,CAN,female,1990-05-23,1.78,71.0,sailing,0,0,0 -101678493,Danniel Thomas,JAM,female,1992-11-11,1.68,91.0,athletics,0,0,0 -502713645,Danny Barrett,USA,male,1990-03-23,1.88,102.0,rugby sevens,0,0,0 -210284579,Danny Chia,MAS,male,1972-11-29,1.7,75.0,golf,0,0,0 -540892576,Danny Lee,NZL,male,1990-07-24,1.8,79.0,golf,0,0,0 -879435329,Danny Pinheiro Rodrigues,FRA,male,1985-04-16,1.61,57.0,gymnastics,0,0,0 -12537963,Danny Willett,GBR,male,1987-10-03,1.8,79.0,golf,0,0,0 -552666305,Danuta Kozak,HUN,female,1987-01-11,1.68,63.0,canoe,3,0,0 -221668114,Danuta Urbanik,POL,female,1989-12-24,1.67,49.0,athletics,0,0,0 -729797574,Dapeng Wang,CHN,male,1996-12-03,1.84,95.0,archery,0,0,0 -828313980,Dara Hassanien,EGY,female,1996-04-01,1.69,59.0,aquatics,0,0,0 -479014574,Darcina Manuel,NZL,female,1992-09-24,1.62,57.0,judo,0,0,0 -490330541,Daria Chikunova,RUS,female,1999-04-12,1.77,59.0,aquatics,0,0,0 -358425644,Daria Dmitrieva,RUS,female,1995-08-09,1.78,74.0,handball,1,0,0 -592811889,Daria Gavrilova,AUS,female,1994-03-05,1.66,61.0,tennis,0,0,0 -971063935,Daria Iushko,UKR,female,1985-02-05,1.74,57.0,aquatics,0,0,0 -918679234,Daria Kasatkina,RUS,female,1997-05-07,1.7,62.0,tennis,0,0,0 -976263519,Daria Malygina,RUS,female,1994-04-04,2.02,82.0,volleyball,0,0,0 -201671999,Daria Mullakaeva,RUS,female,1998-06-18,1.72,61.0,aquatics,0,0,0 -183631297,Daria Pikulik,POL,female,1997-01-06,1.65,54.0,cycling,0,0,0 -981886723,Daria Pogorzelec,POL,female,1990-07-20,1.72,78.0,judo,0,0,0 -399441834,Daria Shmeleva,RUS,female,1994-10-26,1.64,64.0,cycling,0,1,0 -809722266,Daria Spiridonova,RUS,female,1998-07-08,1.56,45.0,gymnastics,0,1,0 -345015361,Daria Talanova,KGZ,female,1995-12-08,1.68,56.0,aquatics,0,0,0 -967665587,Daria Ustinova,RUS,female,1998-08-29,,,aquatics,0,0,0 -991531099,Daria Vdovina,RUS,female,1989-12-15,1.56,49.0,shooting,0,0,0 -881563866,Darian King,BAR,male,1992-04-26,1.72,70.0,tennis,0,0,0 -375255529,Darienn Ferrer Delis,CUB,male,1982-10-31,2.02,90.0,volleyball,0,0,0 -977866181,Dariga Shakimova,KAZ,female,1988-11-20,1.72,,boxing,0,0,1 -408213856,Dario Saric,CRO,male,1994-04-08,2.07,110.0,basketball,0,0,0 -113247488,Dariusz Radosz,POL,male,1986-08-13,1.99,91.0,rowing,0,0,0 -878416762,Dariya Derkach,ITA,female,1993-03-27,1.7,50.0,athletics,0,0,0 -689516934,Darko Brguljan,MNE,male,1990-11-05,1.8,97.0,aquatics,0,0,0 -670032549,Darko Cingesar,SLO,male,1990-07-25,1.87,93.0,handball,0,0,0 -756775265,Darko Planinic,CRO,male,1990-11-22,2.11,120.0,basketball,0,0,0 -996641471,Darlan Romani,BRA,male,1991-04-09,1.87,90.0,athletics,0,0,0 -177985963,Darlene,BRA,female,1990-01-11,1.73,59.0,football,0,0,0 -734837766,Darly Zoqbi,ESP,female,1982-08-25,1.78,70.0,handball,0,0,0 -549879032,Darrell Hill,USA,male,1993-08-17,1.91,145.0,athletics,0,0,0 -933764156,Darrell Wesh,HAI,male,1992-01-21,1.83,160.0,athletics,0,0,0 -366274936,Darwin Espinal,HON,male,1995-01-16,1.78,76.0,football,0,0,0 -369500376,Darya Klishina,RUS,female,1991-01-15,1.8,58.0,athletics,0,0,0 -373657197,Darya Maslova,KGZ,female,1995-05-06,1.65,44.0,athletics,0,0,0 -823394699,Darya Naumava,BLR,female,1995-08-26,1.65,75.0,weightlifting,0,1,0 -913687738,Darya Pachabut,BLR,female,1994-12-31,1.63,67.0,weightlifting,0,0,0 -380938305,Darya Semyonova,TKM,female,2002-05-28,1.7,50.0,aquatics,0,0,0 -444977271,Darya Skrypnik,BLR,female,1987-12-12,1.62,52.0,judo,0,0,0 -903300990,Darya Stepanyuk,UKR,female,1990-05-22,1.74,62.0,aquatics,0,0,0 -274289648,Daryl Homer,USA,male,1990-07-16,1.73,74.0,fencing,0,1,0 -590695708,Daryl Impey,RSA,male,1984-12-06,1.83,70.0,cycling,0,0,0 -849289031,Daryll Neita,GBR,female,1996-08-29,1.72,61.0,athletics,0,0,1 -793163437,Daryna Verkhogliad,UKR,female,1992-02-22,1.8,80.0,rowing,0,0,0 -164963140,Daryna Zevina,UKR,female,1994-09-01,1.78,67.0,aquatics,0,0,0 -916140092,Daseul Lee,KOR,female,1996-11-08,1.59,47.0,athletics,0,0,0 -771946742,Dattu Baban Bhokanal,IND,male,1991-04-05,1.89,81.0,rowing,0,0,0 -841861816,Daulet Shabanbay,KAZ,male,1983-08-09,1.9,125.0,wrestling,0,0,0 -769652662,Dave Hughes,USA,male,1978-01-22,1.86,71.0,sailing,0,0,0 -59605223,David Adley Smith Ii,PUR,male,1992-05-02,1.92,82.0,athletics,0,0,0 -301471859,David Alegre,ESP,male,1984-09-06,1.84,75.0,hockey,0,0,0 -606979268,David Ames,GBR,male,1989-06-25,1.88,82.0,hockey,0,0,0 -83570795,David Andersen,AUS,male,1980-06-23,2.1,102.0,basketball,0,0,0 -849872895,David Belyavskiy,RUS,male,1992-02-23,1.63,55.0,gymnastics,0,1,1 -643787184,David Boudia,USA,male,1989-04-24,1.76,72.0,aquatics,0,1,1 -52887085,David Brandl,AUT,male,1987-04-19,1.88,85.0,aquatics,0,0,0 -721958244,David Bustos,ESP,male,1990-08-25,1.82,64.0,athletics,0,0,0 -135006716,David Carter,CAN,male,1981-11-04,1.75,79.0,hockey,0,0,0 -529354305,David Carver,MRI,male,1987-09-05,1.83,68.0,athletics,0,0,0 -640388256,David Chapman,AUS,male,1965-03-22,1.67,72.0,shooting,0,0,0 -89844900,David Condon,GBR,male,1991-07-06,1.8,79.0,hockey,0,0,0 -806548008,David Cubillan,VEN,male,1987-07-27,1.83,79.0,basketball,0,0,0 -557960426,David Fernandes,POR,male,1983-09-08,1.81,82.0,canoe,0,0,0 -570007062,David Ferrer,ESP,male,1982-04-02,1.75,73.0,tennis,0,0,0 -926634435,David Florence,GBR,male,1982-08-08,1.88,76.0,canoe,0,1,0 -502550042,David Foldhazi,HUN,male,1995-01-06,1.89,84.0,aquatics,0,0,0 -971955364,David Goffin,BEL,male,1990-12-07,1.8,69.0,tennis,0,0,0 -231429156,David Graf,GER,male,1989-01-12,1.91,,boxing,0,0,0 -146589026,David Graf,SUI,male,1989-09-08,1.8,79.0,cycling,0,0,0 -584460736,David Harte,IRL,male,1988-04-03,1.95,94.0,hockey,0,0,0 -748526567,David Hearn,CAN,male,1979-06-17,1.85,77.0,golf,0,0,0 -487593687,David Higgins,USA,male,1994-06-27,1.76,68.0,shooting,0,0,0 -98040137,David Horvath,HUN,male,1996-05-16,1.75,73.0,aquatics,0,0,0 -695436665,David Hunt,RSA,male,1991-02-01,1.97,90.0,rowing,0,0,0 -733541995,David Jessen,CZE,male,1996-12-05,1.75,68.0,gymnastics,0,0,0 -440645107,David Joao Serralheiro Rosa,POR,male,1986-11-12,1.65,52.0,cycling,0,0,0 -553564024,David Katoatau,KIR,male,1984-07-17,1.7,105.0,weightlifting,0,0,0 -823262201,David Kostelecky,CZE,male,1975-05-12,1.9,93.0,shooting,0,0,0 -336599329,David Lee,USA,male,1982-03-08,2.03,105.0,volleyball,0,0,1 -807043500,David Lekuta Rudisha,KEN,male,1988-12-17,1.9,76.0,athletics,1,0,0 -125537512,David Lingmerth,SWE,male,1987-07-22,1.7,80.0,golf,0,0,0 -206952063,David Mauricio Mier Y Teran Cuevas,MEX,male,1978-08-07,1.72,68.0,sailing,0,0,0 -906932951,David McKeon,AUS,male,1992-07-25,1.95,85.0,aquatics,0,0,0 -186269723,David McNeill,AUS,male,1986-10-06,1.75,53.0,athletics,0,0,0 -916000056,David Miklavcic,SLO,male,1983-01-29,1.96,100.0,handball,0,0,0 -881131530,David Morgan,AUS,male,1994-01-01,1.84,82.0,aquatics,0,0,1 -26934524,David Munoz Hidalgo,PAN,male,1964-09-29,1.7,70.0,shooting,0,0,0 -764731011,David Obernosterer,AUT,male,1989-05-30,1.83,80.0,badminton,0,0,0 -845122813,David Oliver Joyce,IRL,male,1987-02-12,1.71,,boxing,0,0,0 -679505903,David Pasqualucci,ITA,male,1996-06-27,1.81,81.0,archery,0,0,0 -971131011,David Plummer,USA,male,1985-10-09,1.91,95.0,aquatics,1,0,1 -387925121,David Powell,AUS,male,1991-04-08,1.75,67.0,table tennis,0,0,0 -735843682,David Sanchez Lopez,ESP,male,1994-07-20,1.66,69.0,weightlifting,0,0,0 -440461124,David Smith,USA,male,1985-05-15,2.01,86.0,volleyball,0,0,1 -665678036,David Soderberg,FIN,male,1979-08-11,1.85,96.0,athletics,0,0,0 -517039410,David Storl,GER,male,1990-07-27,1.98,117.0,athletics,0,0,0 -582202703,David Svoboda,CZE,male,1985-03-19,1.83,76.0,modern pentathlon,0,0,0 -9174337,David Sylvere Patrick Boui,CAF,male,1988-06-28,1.87,68.0,taekwondo,0,0,0 -63423995,David Torrence,PER,male,1985-11-26,1.9,65.0,athletics,0,0,0 -643201191,David Valero Serrano,ESP,male,1988-12-27,1.89,76.0,cycling,0,0,0 -507639455,David Verburg,USA,male,1991-05-14,1.73,70.0,athletics,1,0,0 -277572925,David Verraszto,HUN,male,1988-08-22,1.8,76.0,aquatics,0,0,0 -301376496,David Watts,AUS,male,1992-02-05,1.91,96.0,rowing,0,0,0 -661068918,David van der Colff,BOT,male,1997-04-29,,,aquatics,0,0,0 -919210003,Davide Manenti,ITA,male,1989-04-16,1.77,80.0,athletics,0,0,0 -244933358,Davide Uccellari,ITA,male,1991-10-11,1.85,64.0,triathlon,0,0,0 -636525680,Davie Selke,GER,male,1995-01-20,1.92,82.0,football,0,1,0 -382116248,Davilson dos Santos Morais,CPV,male,1989-02-03,1.88,,boxing,0,0,0 -397002318,Davit Chakvetadze,RUS,male,1992-10-18,1.74,85.0,wrestling,1,0,0 -259093930,Daviti Kharazishvili,GEO,male,1992-04-24,1.71,68.0,athletics,0,0,0 -688799432,Davor Stefanek,SRB,male,1985-09-12,1.7,66.0,wrestling,1,0,0 -409683971,Dawid Konarski,POL,male,1989-08-31,1.98,93.0,volleyball,0,0,0 -92392185,Dawit Seyaum,ETH,female,1996-07-27,1.61,49.0,athletics,0,0,0 -145653962,Dawit Wolde,ETH,male,1991-05-19,1.8,64.0,athletics,0,0,0 -337539240,Dayaris Mestre Alvarez,CUB,female,1986-11-20,1.5,48.0,judo,0,0,0 -625400298,Daynara de Paula,BRA,female,1989-07-25,1.63,55.0,aquatics,0,0,0 -777458812,DeAndre Jordan,USA,male,1988-07-21,2.11,120.0,basketball,1,0,0 -170161629,DeMarcus Cousins,USA,male,1990-08-13,2.1,122.0,basketball,1,0,0 -996704082,Deajah Stevens,USA,female,1995-05-19,,,athletics,0,0,0 -491112299,Dean Bombac,SLO,male,1989-04-04,1.89,94.0,handball,0,0,0 -275797773,Deanna Price,USA,female,1993-06-08,1.73,99.0,athletics,0,0,0 -612473315,Deanne Rose,CAN,female,1999-03-03,1.63,62.0,football,0,0,1 -378684511,Debashree Mazumdar,IND,female,1991-04-06,1.64,53.0,athletics,0,0,0 -119019224,Debby Stam-Pilon,NED,female,1984-07-24,1.84,68.0,volleyball,0,0,0 -254113146,Debby Susanto,INA,female,1989-05-03,1.61,51.0,badminton,0,0,0 -428138281,Debinha,BRA,female,1991-10-20,1.57,55.0,football,0,0,0 -844929047,Debora Seilhamer,PUR,female,1985-10-04,1.66,61.0,volleyball,0,0,0 -127202687,Deborah Rodriguez,URU,female,1992-12-02,1.75,61.0,athletics,0,0,0 -871793969,Deborah Tsai,AUS,female,1994-12-18,1.62,52.0,aquatics,0,0,0 -930773141,Debra Daniel,FSM,female,1991-03-04,1.53,68.0,aquatics,0,0,0 -679759459,Deep Ekka,IND,female,1994-06-03,1.58,63.0,hockey,0,0,0 -947558770,Deepika Deepika,IND,female,1987-02-07,1.59,61.0,hockey,0,0,0 -326907106,Deepika Kumari,IND,female,1994-06-13,1.63,61.0,archery,0,0,0 -892176470,Deiver Machado,COL,male,1993-09-02,1.79,71.0,football,0,0,0 -532865663,Deividas Margevicius,LTU,male,1995-04-26,1.87,80.0,aquatics,0,0,0 -859863879,Deivy Balanta,COL,male,1993-02-09,1.84,77.0,football,0,0,0 -295848758,Dejan Pajic,SRB,male,1989-08-15,1.78,78.0,canoe,0,0,0 -884920098,Dejen Gebremeskel,ETH,male,1989-11-24,1.8,58.0,athletics,0,0,0 -750143193,Delanno Williams,GBR,male,1993-12-23,1.8,73.0,athletics,0,0,0 -797004979,Delfina Merino,ARG,female,1989-10-15,1.69,59.0,hockey,0,0,0 -86795736,Delphine Lansac,FRA,female,1995-07-18,1.69,60.0,badminton,0,0,0 -174042478,Demar DeRozan,USA,male,1989-08-07,2.01,99.0,basketball,1,0,0 -306671782,Demetrius Pinder,BAH,male,1989-02-13,1.78,70.0,athletics,0,0,0 -224926689,Demian Gonzalez,ARG,male,1983-02-21,1.92,82.0,volleyball,0,0,0 -675018716,Demita Vega de Lille,MEX,female,1983-07-21,1.72,60.0,sailing,0,0,0 -493263577,Denes Varga,HUN,male,1987-03-29,1.93,96.0,aquatics,0,0,0 -398783638,Deni,INA,male,1989-07-26,1.65,69.0,weightlifting,0,0,0 -13630067,Denia Caballero,CUB,female,1990-01-13,1.75,70.0,athletics,0,0,1 -95013242,Denika Kassim,COM,female,1997-08-08,1.57,44.0,athletics,0,0,0 -634903913,Denis Abliazin,RUS,male,1992-08-03,1.6,62.0,gymnastics,0,2,1 -503917240,Denis Dmitriev,RUS,male,1986-03-23,1.77,90.0,cycling,0,0,1 -384593486,Denis Gargaud Chanut,FRA,male,1987-07-22,1.81,76.0,canoe,1,0,0 -245021648,Denis Gribanov,RUS,male,1986-06-03,1.9,74.0,sailing,0,0,0 -69215365,Denis Iartcev,RUS,male,1990-09-18,1.76,73.0,judo,0,0,0 -286228746,Denis Istomin,UZB,male,1986-09-07,1.87,85.0,tennis,0,0,0 -873793608,Denis Koulakov,RUS,male,1982-11-21,1.74,80.0,shooting,0,0,0 -521906110,Denis Kudla,USA,male,1992-08-17,1.81,79.0,tennis,0,0,0 -509497804,Denis Maksymilian Kudla,GER,male,1994-12-24,1.84,90.0,wrestling,0,0,1 -46394870,Denis Mysak,SVK,male,1995-11-30,1.89,90.0,canoe,0,1,0 -598284598,Denis Petrashov,KGZ,male,2000-02-01,,,aquatics,0,0,0 -168293636,Denis Ulanov,KAZ,male,1993-10-28,1.75,85.0,weightlifting,0,0,0 -63343858,Denisa Dedu,ROU,female,1994-09-27,1.82,73.0,handball,0,0,0 -913453330,Denisa Rosolova,CZE,female,1986-08-21,1.75,63.0,athletics,0,0,0 -4129853,Denise Lim,SIN,female,1991-09-14,1.55,57.0,sailing,0,0,0 -692229320,Deniss Karpak,EST,male,1986-07-18,2.0,100.0,sailing,0,0,0 -378680975,Deniz Cinar,TUR,male,1984-12-08,1.72,65.0,sailing,0,0,0 -33695982,Dennis Goossens,BEL,male,1993-12-16,1.6,65.0,gymnastics,0,0,0 -844014981,Dennis Ombachi,KEN,male,1994-12-14,1.85,98.0,rugby sevens,0,0,0 -432632544,Denys Kostyuk,UKR,male,1982-03-13,1.75,62.0,cycling,0,0,0 -107760935,Denys Molchanov,UKR,male,1987-05-16,1.9,82.0,tennis,0,0,0 -556851081,Denys Solonenko,UKR,male,1992-10-25,1.79,,boxing,0,0,0 -343364504,Deo Gracia Ngokaba,CGO,male,1997-05-17,1.9,140.0,judo,0,0,0 -510782872,Deokhyeon Kim,KOR,male,1985-12-08,1.8,71.0,athletics,0,0,0 -278528807,Deolin Mekoa,RSA,male,1993-08-10,1.75,67.0,football,0,0,0 -682281793,Deon Lendore,TTO,male,1992-10-28,1.79,75.0,athletics,0,0,0 -2593240,Deonise Fachinello,BRA,female,1983-06-20,1.8,73.0,handball,0,0,0 -849646461,Derek Drouin,CAN,male,1990-03-06,1.96,83.0,athletics,1,0,0 -789423999,Derek Hawkins,GBR,male,1989-04-29,1.8,68.0,athletics,0,0,0 -368262898,Derek Sua,SAM,male,1987-12-29,,,judo,0,0,0 -970701386,Derlys Ayala,PAR,male,1990-01-07,1.78,75.0,athletics,0,0,0 -484914459,Desiree Henry,GBR,female,1995-08-26,1.71,64.0,athletics,0,0,1 -525844968,Desiree Linden,USA,female,1983-07-26,1.55,43.0,athletics,0,0,0 -781892650,Desiree Rossit,ITA,female,1994-03-19,1.79,51.0,athletics,0,0,0 -535106472,Desiree Scott,CAN,female,1987-07-31,1.6,63.0,football,0,0,1 -639727915,Desler Puggaard,DEN,male,1995-02-19,1.87,71.0,football,0,0,0 -670754445,Deuce Carter,JAM,male,1990-09-28,1.83,82.0,athletics,0,0,0 -640447595,Devery Karz,USA,female,1988-02-18,1.73,58.0,rowing,0,0,0 -360434724,Devid Safaryan,ARM,male,1989-08-01,1.7,65.0,wrestling,0,0,0 -831917950,Devin McEwan,USA,male,1984-10-11,1.78,77.0,canoe,0,0,0 -211396920,Devindar Walmiki,IND,male,1992-05-28,1.78,69.0,hockey,0,0,0 -94495645,Devohn Teixeira,CAN,male,1989-02-09,1.65,61.0,hockey,0,0,0 -355897271,Devon Allen,USA,male,1994-12-12,1.86,83.0,athletics,0,0,0 -974219288,Devon Manchester,NZL,male,1989-11-11,1.78,78.0,hockey,0,0,0 -92529957,Devon Myles William Brown,RSA,male,1992-05-21,1.88,80.0,aquatics,0,0,0 -799132600,Dewi Safitri,INA,female,1993-02-10,1.51,53.0,weightlifting,0,0,0 -921638208,Dewi Yuliawati,INA,female,1997-06-02,1.66,65.0,rowing,0,0,0 -438551437,Dex Elmont,NED,male,1984-01-10,1.75,73.0,judo,0,0,0 -912033914,Dhurgham Ismael,IRQ,male,1994-05-23,1.77,70.0,football,0,0,0 -203504788,Di Wu,CHN,female,1993-10-27,1.82,75.0,basketball,0,0,0 -10438447,Diaaeldin Kamal Gouda Abdelmottaleb,EGY,male,1993-05-02,1.77,125.0,wrestling,0,0,0 -856659914,Diamara Planell,PUR,female,1993-02-16,1.8,67.0,athletics,0,0,0 -877009812,Diana Abla,BRA,female,1995-07-29,1.75,75.0,aquatics,0,0,0 -723783485,Diana Aydosova,KAZ,female,1995-09-05,1.58,50.0,athletics,0,0,0 -681626502,Diana Bacosi,ITA,female,1983-07-13,1.75,85.0,shooting,1,0,0 -266313114,Diana Khubeseryan,ARM,female,1994-05-05,1.7,60.0,athletics,0,0,0 -767005117,Diana Lobacevske,LTU,female,1980-08-07,1.74,57.0,athletics,0,0,0 -572629331,Diana Martin,ESP,female,1981-04-01,1.63,50.0,athletics,0,0,0 -48306282,Diana Matheson,CAN,female,1984-04-06,1.53,53.0,football,0,0,1 -812031749,Diana Ospina,COL,female,1989-03-03,1.57,58.0,football,0,0,0 -392473268,Diana Pineda,COL,female,1984-09-06,1.67,55.0,aquatics,0,0,0 -77686741,Diana Reyes,PUR,female,1993-04-29,1.91,80.0,volleyball,0,0,0 -910190523,Diana Sujew,GER,female,1990-11-02,1.66,53.0,athletics,0,0,0 -352310155,Diana Taurasi,USA,female,1982-06-11,1.82,70.0,basketball,1,0,0 -423391587,Diane Nukuri,BDI,female,1984-12-01,1.83,59.0,athletics,0,0,0 -123911422,Dianelys Perez,CUB,female,1988-06-28,1.49,59.0,shooting,0,0,0 -987878989,Didar Khamza,KAZ,male,1997-02-15,1.75,73.0,judo,0,0,0 -629941187,Didier Kiki,BEN,male,1995-11-30,1.85,84.0,athletics,0,0,0 -355496444,Diederik van Silfhout,NED,male,1988-04-20,1.9,87.0,equestrian,0,0,0 -109933404,Diego Botin Le Chever,ESP,male,1993-12-25,1.83,81.0,sailing,0,0,0 -210454399,Diego Colorado,COL,male,1973-08-31,1.69,62.0,athletics,0,0,0 -796700277,Diego Hypolito,BRA,male,1986-06-19,1.7,68.0,gymnastics,0,1,0 -39686227,Diego Milan Jimenez,DOM,male,1985-07-10,1.79,67.0,cycling,0,0,0 -5063397,Diego Occhiuzzi,ITA,male,1981-04-30,1.8,76.0,fencing,0,0,0 -578628315,Diego Palomeque,COL,male,1993-12-05,1.78,67.0,athletics,0,0,0 -820045789,Diego Rosa,ITA,male,1989-03-27,1.78,65.0,cycling,0,0,0 -309429588,Diego del Real,MEX,male,1994-03-06,1.85,100.0,athletics,0,0,0 -689489031,Dienov Andres Koka,CGO,male,1996-08-02,1.73,68.0,aquatics,0,0,0 -119737320,Dieter Dekoninck,BEL,male,1991-01-28,1.9,85.0,aquatics,0,0,0 -316835810,Dieudonne Wilfred Seyi Ntsengue,CMR,male,1998-01-23,1.83,,boxing,0,0,0 -249259020,Dilara Lokmanhekim,TUR,female,1994-04-18,1.65,48.0,judo,0,0,0 -549822679,Dilara Uralp,TUR,female,1995-11-16,1.63,54.0,sailing,0,0,0 -227184360,Diletta Carli,ITA,female,1996-05-07,1.7,61.0,aquatics,0,0,0 -847147736,Dilshod Nazarov,TJK,male,1982-05-06,1.87,120.0,athletics,1,0,0 -146607194,Dilshodjon Turdiev,UZB,male,1991-10-19,1.72,75.0,wrestling,0,0,0 -776618424,Dimitar Angelov Kumchev,BUL,male,1980-04-20,1.8,125.0,wrestling,0,0,0 -119683900,Dimitar Krastanov,BUL,male,1994-01-31,1.81,71.0,modern pentathlon,0,0,0 -536351159,Dimitri Bascou,FRA,male,1987-07-20,1.81,80.0,athletics,0,0,1 -913943115,Dimitri Juliet,NED,male,1996-03-28,1.81,80.0,athletics,0,0,0 -173674343,Dimitriana Surdu,MDA,female,1994-04-12,1.74,93.0,athletics,0,0,0 -158604912,Dimitrij Ovtcharov,GER,male,1988-09-02,1.86,78.0,table tennis,0,0,1 -391014162,Dimitrije Grgic,SRB,male,1984-06-22,1.91,82.0,shooting,0,0,0 -173609909,Dimitrios Antoniadis,GRE,male,1992-07-29,1.8,69.0,cycling,0,0,0 -791397203,Dimitrios Chondrokoukis,CYP,male,1988-01-26,1.94,74.0,athletics,0,0,0 -989537292,Dimitrios Dimitriou,GRE,male,1997-07-31,1.79,72.0,aquatics,0,0,0 -575914740,Dimitrios Koulouris,GRE,male,1991-04-22,1.83,79.0,aquatics,0,0,0 -761663615,Dimitriy Timchenko,UKR,male,1983-04-01,1.9,98.0,wrestling,0,0,0 -894060489,Dimitry Volkov,RUS,male,1995-05-25,2.01,88.0,volleyball,0,0,0 -871164091,Dina Asher-Smith,GBR,female,1995-12-04,1.64,55.0,athletics,0,0,1 -265627311,Dina Lebo Phalula,RSA,female,1983-12-09,1.65,46.0,athletics,0,0,0 -705775098,Dina Meshref,EGY,female,1994-03-10,1.66,59.0,table tennis,0,0,0 -717089687,Ding Chen,CHN,male,1992-08-05,1.75,62.0,athletics,0,0,0 -350064004,Diodio Diouf,SEN,female,1984-12-15,1.7,70.0,basketball,0,0,0 -176134705,Diogo Abreu,POR,male,1993-09-05,1.84,75.0,gymnastics,0,0,0 -989520284,Diogo Carvalho,POR,male,1988-03-26,1.84,75.0,aquatics,0,0,0 -709072877,Diogo Kent Hubner,BRA,male,1983-01-30,1.83,93.0,handball,0,0,0 -202401166,Diogo Sclebin,BRA,male,1982-05-06,1.9,80.0,triathlon,0,0,0 -778633221,Dion Dreesens,NED,male,1993-04-30,1.95,88.0,aquatics,0,0,0 -521343807,Dionisio Augustine Ii,FSM,male,1992-06-16,1.53,65.0,aquatics,0,0,0 -215603505,Dionysios Angelopoulos,GRE,male,1992-08-05,1.89,91.0,rowing,0,0,0 -727060365,Dipa Karmakar,IND,female,1993-08-09,1.51,47.0,gymnastics,0,0,0 -984475243,Dirk Uittenbogaard,NED,male,1990-05-08,1.99,93.0,rowing,0,0,1 -460186785,Dirk van Tichelt,BEL,male,1984-06-10,1.73,73.0,judo,0,0,1 -276444388,Dirngulbai Misech,PLW,female,1997-09-27,1.65,51.0,aquatics,0,0,0 -158299289,Dival Forele Malonga Dzalamou,CGO,male,1995-04-18,,,boxing,0,0,0 -410843536,Diyorbek Urozboev,UZB,male,1993-08-17,1.72,60.0,judo,0,0,1 -640654202,Djenebou Dante,MLI,female,1989-08-07,1.76,73.0,athletics,0,0,0 -208714960,Dmitri Barsuk,RUS,male,1980-01-20,1.94,96.0,volleyball,0,0,0 -486721254,Dmitrii Ushakov,RUS,male,1988-08-15,1.77,65.0,gymnastics,0,0,0 -980454993,Dmitrij Prokopcov,CZE,male,1980-01-05,1.85,78.0,table tennis,0,0,0 -217286137,Dmitriy Balandin,KAZ,male,1995-04-04,1.95,90.0,aquatics,1,0,0 -291341996,Dmitriy Koblov,KAZ,male,1992-11-30,1.83,82.0,athletics,0,0,0 -625508487,Dmitriy Shokin,UZB,male,1992-05-30,1.93,97.0,taekwondo,0,0,0 -19397250,Dmitry Kroyter,ISR,male,1993-02-18,1.87,73.0,athletics,0,0,0 -130360259,Dmitry Larionov,RUS,male,1985-12-22,1.78,84.0,canoe,0,0,0 -735957750,Dmitry Polyanskiy,RUS,male,1986-11-19,1.82,69.0,triathlon,0,0,0 -213236578,Dmitry Zherebchenko,RUS,male,1989-06-27,1.85,78.0,fencing,0,0,0 -130401664,Dmytro Chumak,UKR,male,1990-07-11,1.71,94.0,weightlifting,0,0,0 -168429293,Dmytro Ianchuk,UKR,male,1992-11-14,1.84,75.0,canoe,0,0,1 -834111099,Dmytro Karyuchenko,UKR,male,1980-01-15,1.79,79.0,fencing,0,0,0 -271182574,Dmytro Kosynskyy,UKR,male,1989-03-31,1.98,105.0,athletics,0,0,0 -229107456,Dmytro Mikhay,UKR,male,1990-02-27,1.95,96.0,rowing,0,0,0 -744288493,Dmytro Mytrofanov,UKR,male,1989-11-08,1.73,,boxing,0,0,0 -860594469,Dmytro Oseledets,UKR,male,1994-11-23,1.87,82.0,aquatics,0,0,0 -460602290,Dmytro Yakovenko,UKR,male,1992-09-17,1.92,70.0,athletics,0,0,0 -608020695,Doaa Elghobashy,EGY,female,1996-11-08,,,volleyball,0,0,0 -838189137,Dolores Hernandez,MEX,female,1997-05-21,1.62,62.0,aquatics,0,0,0 -932071837,Dolores Moreira Fraschini,URU,female,1999-02-16,1.68,63.0,sailing,0,0,0 -657952342,Domagoj Duvnjak,CRO,male,1988-06-01,1.98,100.0,handball,0,0,0 -733397080,Domantas Sabonis,LTU,male,1996-05-03,2.08,109.0,basketball,0,0,0 -451025767,Domenic Weinstein,GER,male,1994-08-27,1.88,83.0,cycling,0,0,0 -840838621,Domenico Montrone,ITA,male,1986-05-01,1.89,97.0,rowing,0,0,1 -209270839,Dominic Dugasse,SEY,male,1985-04-19,1.8,99.0,judo,0,0,0 -263640327,Dominic Inglot,GBR,male,1986-03-06,1.98,95.0,tennis,0,0,0 -840913101,Dominic King,GBR,male,1983-05-30,1.78,69.0,athletics,0,0,0 -342699829,Dominik Distelberger,AUT,male,1990-03-16,1.86,81.0,athletics,0,0,0 -330603205,Dominik Kozma,HUN,male,1991-04-10,1.91,90.0,aquatics,0,0,0 -726300964,Dominique Bouchard,CAN,female,1991-05-29,1.74,61.0,aquatics,0,0,0 -70068464,Dominique Scott,RSA,female,1992-06-24,1.66,52.0,athletics,0,0,0 -152688631,Dominykas Jancionis,LTU,male,1993-02-28,1.92,95.0,rowing,0,0,0 -960157104,Domonic Bedggood,AUS,male,1994-09-18,1.63,55.0,aquatics,0,0,0 -671503207,Donald Blair-Sanford,ISR,male,1987-02-05,1.96,81.0,athletics,0,0,0 -93583120,Donald Cabral,USA,male,1989-12-12,1.78,68.0,athletics,0,0,0 -714613268,Donald Thomas,BAH,male,1984-07-10,1.91,81.0,athletics,0,0,0 -971791407,Donata Rimshaite,RUS,female,1988-01-29,1.76,62.0,modern pentathlon,0,0,0 -215897620,Donata Vistartaite,LTU,female,1989-06-11,1.7,62.0,rowing,0,0,1 -658816074,Dong Dong,CHN,male,1989-04-13,1.68,56.0,gymnastics,0,1,0 -825718298,Dong Keun Lee,KOR,male,1990-11-20,1.83,78.0,badminton,0,0,0 -200290928,Donghan Gwak,KOR,male,1992-04-20,1.83,90.0,judo,0,0,1 -531161609,Donghyen Shin,KOR,male,1989-09-23,1.66,,gymnastics,0,0,0 -78993724,Dongjin Kang,KOR,male,1987-12-23,1.68,76.0,cycling,0,0,0 -929646844,Dongjin Park,KOR,male,1994-12-10,1.82,73.0,football,0,0,0 -282895929,Dongju Yu,KOR,male,1993-08-19,1.75,84.0,weightlifting,0,0,0 -580113738,Dongjun Kim,KOR,male,1994-12-19,1.88,84.0,football,0,0,0 -48515460,Donglun Song,CHN,female,1991-04-28,1.78,83.0,aquatics,0,0,0 -375732071,Dongmin Cha,KOR,male,1986-08-24,1.9,91.0,taekwondo,0,0,1 -896828538,Dongna Li,CHN,female,1988-12-06,1.7,58.0,football,0,0,0 -321880190,Dongseon Kim,KOR,male,1989-05-30,1.89,80.0,equestrian,0,0,0 -709580436,Dongxiao Li,CHN,female,1987-11-26,1.75,60.0,hockey,0,0,0 -259066180,Dongyan Huang,CHN,female,1993-12-14,1.72,63.0,cycling,0,0,0 -108660563,Dongyong Kim,KOR,male,1990-12-12,1.89,91.0,rowing,0,0,0 -328804448,Donis Escober,HON,male,1981-02-03,1.8,85.0,football,0,0,0 -87257453,Donna Vakalis,CAN,female,1979-12-30,1.64,53.0,modern pentathlon,0,0,0 -798030855,Dora Antal,HUN,female,1993-09-09,1.69,62.0,aquatics,0,0,0 -963025022,Dora Csabai,HUN,female,1989-04-20,1.75,63.0,aquatics,0,0,0 -702170084,Dora Czigany,HUN,female,1992-10-23,1.73,60.0,aquatics,0,0,0 -690232757,Dorcas Gyimah,GHA,female,1992-02-02,,,athletics,0,0,0 -853951269,Doreen Amata,NGR,female,1988-05-06,1.91,63.0,athletics,0,0,0 -669652246,Doreen Nziwa,KEN,female,1982-07-04,1.57,70.0,rugby sevens,0,0,0 -772686625,Dorian Coninx,FRA,male,1994-01-28,1.81,70.0,triathlon,0,0,0 -810821583,Dorian McMenemy Taylor,DOM,female,1996-10-28,1.86,55.0,aquatics,0,0,0 -151172719,Dorian Mortelette,FRA,male,1983-11-24,1.95,90.0,rowing,0,0,0 -863768656,Dorian van Rijsselberghe,NED,male,1988-11-24,1.89,75.0,sailing,1,0,0 -803889541,Doris Esmid Patino Marin,COL,female,1986-05-01,1.65,56.0,taekwondo,0,0,0 -606690650,Dorlan Pabon,COL,male,1988-01-24,1.68,68.0,football,0,0,0 -705883917,Dorothea Brandt,GER,female,1984-03-05,1.79,67.0,aquatics,0,0,0 -307716893,Dorothee Schneider,GER,female,1969-02-17,1.69,63.0,equestrian,1,0,0 -632435029,Dorothy Erzsebet Yeats,CAN,female,1993-07-29,1.6,71.0,wrestling,0,0,0 -494719089,Doston Yokubov,UZB,male,1995-04-05,1.58,69.0,weightlifting,0,0,0 -673086205,Doszhan Kartikov,KAZ,male,1989-05-24,1.73,75.0,wrestling,0,0,0 -723331849,Douglas Correia de Souza,BRA,male,1995-08-20,1.99,75.0,volleyball,1,0,0 -281803950,Douglas John Erasmus,RSA,male,1990-04-04,1.82,78.0,aquatics,0,0,0 -456548285,Douglas Santos,BRA,male,1994-03-22,1.73,69.0,football,1,0,0 -825814008,Dovydas Nemeravicius,LTU,male,1996-12-11,1.93,98.0,rowing,0,0,0 -285011612,Dragana Stankovic,SRB,female,1995-01-18,1.95,73.0,basketball,0,0,1 -225958644,Dragana Tomasevic,SRB,female,1982-06-04,1.75,80.0,athletics,0,0,0 -402567927,Drasko Brguljan,MNE,male,1984-12-27,1.94,92.0,aquatics,0,0,0 -66675675,Draymond Green,USA,male,1990-03-04,2.0,104.0,basketball,1,0,0 -86318895,Driss Lahrichi,MAR,male,1997-12-02,1.9,83.0,aquatics,0,0,0 -388102468,Drita Islami,MKD,female,1996-08-01,1.66,56.0,athletics,0,0,0 -226875071,Duanbin Ma,CHN,male,1990-03-28,1.74,66.0,judo,0,0,0 -236093323,Duane da Rocha Marce,ESP,female,1988-01-07,1.8,59.0,aquatics,0,0,0 -421676120,Dudi Sela,ISR,male,1985-04-04,1.75,67.0,tennis,0,0,0 -754252198,Dulguun Batsaikhan,MGL,male,1986-10-26,1.79,72.0,aquatics,0,0,0 -219999872,Dumitru Captari,ROU,male,1989-07-12,1.68,77.0,weightlifting,0,0,0 -327966166,Duncan Scott,GBR,male,1997-05-06,1.91,74.0,aquatics,0,2,0 -643802255,Dunhan Xiong,CHN,female,1998-11-11,1.81,83.0,aquatics,0,0,0 -154604483,Duo Shen,CHN,female,1997-06-09,1.81,74.0,aquatics,0,0,0 -3901892,Duobujie,CHN,male,1994-02-16,1.75,55.0,athletics,0,0,0 -131271973,Durdina Jaukovic,MNE,female,1997-02-24,1.86,86.0,handball,0,0,0 -596370468,Dusan Majdan,SVK,male,1987-09-08,1.8,67.0,athletics,0,0,0 -265536386,Dusan Mandic,SRB,male,1994-06-16,2.02,105.0,aquatics,1,0,0 -386288896,Dusko Pijetlovic,SRB,male,1985-04-25,1.97,97.0,aquatics,1,0,0 -521744837,Dustin Brown,GER,male,1984-12-08,1.96,78.0,tennis,0,0,0 -417996132,Dustin Tynes,BAH,male,1996-03-07,1.85,75.0,aquatics,0,0,0 -737107607,Dutee Chand,IND,female,1996-02-03,1.6,50.0,athletics,0,0,0 -47572256,Duygu Aynaci,TUR,female,1996-06-26,1.7,69.0,weightlifting,0,0,0 -578322269,Dwight Lewis,VEN,male,1987-10-07,1.98,,basketball,0,0,0 -870355208,Dylan Borlee,BEL,male,1992-09-20,1.9,78.0,athletics,0,0,0 -806170062,Dylan Bosch,RSA,male,1993-07-17,1.78,75.0,aquatics,0,0,0 -348929342,Dylan Carter,TTO,male,1996-01-30,,,aquatics,0,0,0 -829969108,Dylan Fletcher-Scott,GBR,male,1988-04-03,1.76,78.0,sailing,0,0,0 -965509678,Dylan Kennett,NZL,male,1994-12-08,1.78,75.0,cycling,0,0,0 -168131726,Dylan Sage,RSA,male,1992-01-24,1.88,96.0,rugby sevens,0,0,1 -5064348,Dylan Schmidt,NZL,male,1997-01-07,1.69,69.0,gymnastics,0,0,0 -140395363,Dzianis Mihal,BLR,male,1985-10-05,1.97,102.0,rowing,0,0,0 -186360775,Dzianis Simanovich,BLR,male,1987-04-20,1.78,64.0,athletics,0,0,0 -733134503,Dzmitry Asanau,BLR,male,1996-05-18,1.76,,boxing,0,0,0 -165309696,Dzmitry Nabokau,BLR,male,1996-01-20,1.86,69.0,athletics,0,0,0 -811378549,Dzmitry Platnitski,BLR,male,1988-08-26,1.91,83.0,athletics,0,0,0 -890120852,Dzmitry Shershan,BLR,male,1988-12-28,1.7,66.0,judo,0,0,0 -259130059,Dzsenifer Marozsan,GER,female,1992-04-18,1.71,55.0,football,1,0,0 -557320685,Earvin Ngapeth,FRA,male,1991-02-12,1.94,101.0,volleyball,0,0,0 -340813269,Ebi Ere,NGR,male,1981-08-03,1.96,97.0,basketball,0,0,0 -559696143,Ebtissam Mohamed,EGY,female,1996-09-25,1.63,54.0,cycling,0,0,0 -609618131,Ecaterina Guica,CAN,female,1993-10-09,1.65,52.0,judo,0,0,0 -507856515,Ed Jenkins,AUS,male,1986-05-26,1.84,96.0,rugby sevens,0,0,0 -250017195,Eddie Lovett,ISV,male,1992-06-25,1.8,73.0,athletics,0,0,0 -532630723,Eddy Yusof,SUI,male,1994-10-02,1.65,63.0,gymnastics,0,0,0 -159991654,Edel R. Amores,CUB,male,1998-10-05,1.81,72.0,athletics,0,0,0 -207619796,Eder Antonio Souza,BRA,male,1986-10-15,1.89,89.0,athletics,0,0,0 -87070724,Eder Carbonera,BRA,male,1983-10-19,2.05,107.0,volleyball,1,0,0 -605245129,Edgar Contreras,VEN,male,1992-07-16,1.78,67.0,taekwondo,0,0,0 -659584369,Edgar Crespo,PAN,male,1989-05-11,1.78,83.0,aquatics,0,0,0 -870599137,Edgar Ie,POR,male,1994-05-01,1.88,80.0,football,0,0,0 -487798358,Edgar Pineda Zeta,GUA,male,1997-08-17,1.62,56.0,weightlifting,0,0,0 -684979118,Edgar Ramon Munoz,VEN,male,1983-12-22,1.84,,boxing,0,0,0 -795195154,Edgar Rivera,MEX,male,1991-02-13,1.98,84.0,athletics,0,0,0 -709871920,Edgaras Venckaitis,LTU,male,1985-12-12,1.71,70.0,wrestling,0,0,0 -334864528,Edidiong Ofonime Odiong,BRN,female,1997-03-13,1.67,58.0,athletics,0,0,0 -285211262,Edigerson Gomes,DEN,male,1988-11-17,1.92,91.0,football,0,0,0 -32938884,Edina Gangl,HUN,female,1990-06-25,1.81,64.0,aquatics,0,0,0 -889715438,Edina Knapek,HUN,female,1977-10-05,1.66,53.0,fencing,0,0,0 -937748261,Edna Carrillo,MEX,female,1991-11-12,1.52,48.0,judo,0,0,0 -36037343,Edna Santini,BRA,female,1992-07-15,1.53,54.0,rugby sevens,0,0,0 -82126746,Edouard Joseph,HAI,male,1989-12-24,1.52,60.0,weightlifting,0,0,0 -34157460,Edson Isaias Freitas da Silva,BRA,male,1982-03-25,1.7,83.0,canoe,0,0,0 -906489293,Eduard Popp,GER,male,1991-06-16,1.9,128.0,wrestling,0,0,0 -475508680,Eduard Soghomonyan,BRA,male,1990-02-19,1.9,120.0,wrestling,0,0,0 -129556229,Eduarda Taleska,BRA,female,1986-09-23,1.86,84.0,handball,0,0,0 -757748599,Eduardo Alvarez Aznar,ESP,male,1984-01-01,1.73,67.0,equestrian,0,0,0 -454899916,Eduardo Jose Lorenzo,DOM,male,1966-08-31,1.71,84.0,shooting,0,0,0 -543622278,Eduardo Menezes,BRA,male,1980-05-01,1.93,84.0,equestrian,0,0,0 -495156314,Eduardo Rubio Rodriguez,CUB,male,1986-11-13,1.87,88.0,rowing,0,0,0 -367849834,Eduardo Sepulveda,ARG,male,1991-06-13,1.73,63.0,cycling,0,0,0 -943462468,Eduardo Solaeche Gomez,ESP,male,1993-11-22,1.83,79.0,aquatics,0,0,0 -706338154,Edvald Boasson Hagen,NOR,male,1987-05-17,,,cycling,0,0,0 -490010499,Edvinas Ramanauskas,LTU,male,1985-08-18,1.84,90.0,canoe,0,0,1 -687926847,Edward Araya,CHI,male,1986-02-14,1.76,62.0,athletics,0,0,0 -128111311,Edward Clancy,GBR,male,1985-03-12,1.85,79.0,cycling,1,0,0 -461207068,Edward Dawkins,NZL,male,1989-07-11,1.85,93.0,cycling,0,1,0 -430473716,Edward Gal,NED,male,1970-03-04,1.82,72.0,equestrian,0,0,0 -906594925,Edward King,USA,male,1989-06-14,1.94,77.0,rowing,0,0,0 -773652223,Edward Ling,GBR,male,1983-03-07,1.8,80.0,shooting,0,0,1 -596469056,Edward Ockenden,AUS,male,1987-04-03,1.8,73.0,hockey,0,0,0 -466051917,Edwige Gwend,ITA,female,1990-03-11,1.63,63.0,judo,0,0,0 -148140488,Edwin Orlando Mosquera Roa,COL,male,1985-07-26,1.65,69.0,weightlifting,0,0,0 -40681851,Edwina Bone,AUS,female,1988-04-29,1.7,70.0,hockey,0,0,0 -776649642,Edwina Tops-Alexander,AUS,female,1974-03-29,1.64,50.0,equestrian,0,0,0 -103003016,Edyta Dzieniszewska-Kierkla,POL,female,1986-05-05,1.7,72.0,canoe,0,0,0 -32569642,Edyta Jasinska,POL,female,1986-11-28,1.77,68.0,cycling,0,0,0 -594266311,Edzus Treimanis,LAT,male,1988-04-21,1.83,82.0,cycling,0,0,0 -249357704,Eefje Muskens,NED,female,1989-06-17,1.64,60.0,badminton,0,0,0 -416257556,Eelco Sintnicolaas,NED,male,1987-04-07,1.86,80.0,athletics,0,0,0 -583999455,Eeseul Baek,KOR,female,1994-10-04,1.75,72.0,hockey,0,0,0 -293548179,Efe Ajagba,NGR,male,1994-04-22,1.9,,boxing,0,0,0 -850581667,Efthimios Mitas,GRE,male,1985-05-15,1.9,105.0,shooting,0,0,0 -647057378,Egle Balciunaite,LTU,female,1988-10-31,1.76,63.0,athletics,0,0,0 -798534608,Eglys Yahima de la Cruz,CUB,female,1980-04-12,1.59,63.0,shooting,0,0,0 -238009548,Egor Kliuka,RUS,male,1995-06-15,2.08,93.0,volleyball,0,0,0 -878921230,Ehsan Hadadi,IRI,male,1985-01-20,1.92,120.0,athletics,0,0,0 -184575330,Ehsan Rouzbahani,IRI,male,1988-06-23,1.84,,boxing,0,0,0 -181030927,Ei Ei Thet,MYA,female,1992-12-13,,,aquatics,0,0,0 -797663283,Eider Arevalo,COL,male,1993-03-09,1.65,60.0,athletics,0,0,0 -966174315,Eike Onnen,GER,male,1982-08-03,1.97,92.0,athletics,0,0,0 -407225209,Eiki Takahashi,JPN,male,1992-11-19,1.76,58.0,athletics,0,0,0 -246556488,Eileen Grench,PAN,female,1986-08-05,1.52,59.0,fencing,0,0,0 -787671034,Eilidh Doyle,GBR,female,1987-02-20,1.7,60.0,athletics,0,0,1 -449582675,Eilish McColgan,GBR,female,1990-11-25,1.76,53.0,athletics,0,0,0 -974051662,Eimantas Stanionis,LTU,male,1994-08-17,1.73,,boxing,0,0,0 -58235529,Eirini-Marina Alexandri,AUT,female,1997-09-15,1.71,50.0,aquatics,0,0,0 -395251162,Eita Mori,JPN,male,1983-04-13,1.73,76.0,shooting,0,0,0 -381623095,Ejowvokoghene Oduduru,NGR,male,1996-10-07,,70.0,athletics,0,0,0 -786450061,Ekaterina Birlova,RUS,female,1987-08-11,1.8,62.0,volleyball,0,0,0 -882206907,Ekaterina Bukina,RUS,female,1987-05-05,1.74,75.0,wrestling,0,0,1 -358786472,Ekaterina Dyachenko,RUS,female,1987-08-31,1.67,53.0,fencing,1,0,0 -409581513,Ekaterina Ilina,RUS,female,1991-03-07,1.74,60.0,handball,1,0,0 -323828574,Ekaterina Ivanova Avramova,TUR,female,1991-11-12,1.8,69.0,aquatics,0,0,0 -516714653,Ekaterina Karsten,BLR,female,1972-06-02,1.85,81.0,rowing,0,0,0 -121281813,Ekaterina Khilko,UZB,female,1982-03-25,1.63,50.0,gymnastics,0,0,0 -905380582,Ekaterina Korshunova,RUS,female,1988-05-24,1.61,69.0,shooting,0,0,0 -335759270,Ekaterina Kosianenko,RUS,female,1990-02-02,1.78,64.0,volleyball,0,0,0 -392249714,Ekaterina Levina,ISR,female,1997-02-01,1.68,52.0,gymnastics,0,0,0 -443958002,Ekaterina Lisunova,RUS,female,1989-10-06,1.75,64.0,aquatics,0,0,1 -257253481,Ekaterina Makarova,RUS,female,1988-06-07,1.8,67.0,tennis,1,0,0 -472046862,Ekaterina Marennikova,RUS,female,1982-04-29,1.76,70.0,handball,1,0,0 -892190184,Ekaterina Petukhova,RUS,female,1996-06-16,1.63,48.0,aquatics,0,0,0 -121727222,Ekaterina Poplavskaya,BLR,female,1987-05-07,1.69,61.0,athletics,0,0,0 -814297240,Ekaterina Prokofyeva,RUS,female,1991-03-13,1.76,70.0,aquatics,0,0,1 -894255038,Ekaterina Rabaya,RUS,female,1993-11-06,1.58,60.0,shooting,0,0,0 -271247492,Ekaterina Tunguskova,UZB,female,1988-05-10,,,athletics,0,0,0 -11854539,Ekaterina Valkova,RUS,female,1991-05-17,1.67,63.0,judo,0,0,0 -366635571,Ekaterina Volkova,FIN,female,1997-07-02,1.68,48.0,gymnastics,0,0,0 -881845310,Ekaterina Voronina,UZB,female,1992-02-16,1.73,65.0,athletics,0,0,0 -226774163,Ekaterini Stefanidi,GRE,female,1990-02-04,1.73,59.0,athletics,1,0,0 -359490730,Ekenechukwu Ibekwe,NGR,male,1985-07-19,2.1,100.0,basketball,0,0,0 -967379890,Eko Yuli Irawan,INA,male,1989-07-24,1.54,62.0,weightlifting,0,1,0 -45507177,El Hadi Laameche,ALG,male,1990-03-05,1.65,60.0,athletics,0,0,0 -964251417,El Hassan Elabbassi,BRN,male,1984-04-13,1.71,61.0,athletics,0,0,0 -55190469,El Mahadi Messaoudi,MAR,male,1990-02-12,1.68,59.0,wrestling,0,0,0 -153066900,Elaheh Ahmadi,IRI,female,1982-05-31,1.6,62.0,shooting,0,0,0 -715359899,Elaine Thompson,JAM,female,1992-06-28,1.67,57.0,athletics,2,1,0 -320218359,Eldar Memisevic,QAT,male,1992-06-21,1.78,77.0,handball,0,0,0 -673973096,Elder Torres,HON,male,1995-04-14,1.76,69.0,football,0,0,0 -969535461,Eldred Henry,IVB,male,1994-09-18,,95.0,athletics,0,0,0 -777815800,Elea Mariama Diarra,FRA,female,1990-03-08,1.76,56.0,athletics,0,0,0 -205100723,Eleanor Bezzina,MLT,female,1977-03-25,1.54,,shooting,0,0,0 -513927497,Eleanor Harvey,CAN,female,1995-01-14,1.72,56.0,fencing,0,0,0 -518148894,Eleanor Logan,USA,female,1987-12-27,1.88,86.0,rowing,1,0,0 -473616854,Eleanor Patterson,AUS,female,1996-05-22,1.82,65.0,athletics,0,0,0 -846855602,Eleanor Watton,GBR,female,1989-06-10,1.67,64.0,hockey,0,0,0 -686764746,Eleftherios Petrounias,GRE,male,1990-11-30,1.64,62.0,gymnastics,1,0,0 -82665159,Elena Allen,GBR,female,1972-07-12,1.69,68.0,shooting,0,0,0 -222839663,Elena Aniushina,RUS,female,1993-12-08,,,canoe,0,0,0 -365519305,Elena Berta,ITA,female,1992-07-15,1.71,58.0,sailing,0,0,0 -869725095,Elena Cecchini,ITA,female,1992-05-25,1.68,55.0,cycling,0,0,0 -648308415,Elena Delle Donne,USA,female,1989-09-05,1.95,86.0,basketball,1,0,0 -13567083,Elena Ezhova,RUS,female,1977-08-14,1.78,69.0,volleyball,0,0,0 -137876590,Elena Galiabovitch,AUS,female,1989-11-13,1.77,,shooting,0,0,0 -240603445,Elena Lopez,ESP,female,1994-10-04,1.69,51.0,gymnastics,0,1,0 -971991593,Elena Maria Bonfanti,ITA,female,1988-07-09,1.72,52.0,athletics,0,0,0 -338111433,Elena Panturoiu,ROU,female,1995-02-24,1.7,57.0,athletics,0,0,0 -806464803,Elena Potapenko,KAZ,female,1993-04-20,1.65,53.0,modern pentathlon,0,0,0 -38343268,Elena Prokofyeva,RUS,female,1994-08-02,1.69,54.0,aquatics,1,0,0 -763314251,Elena Sergey Pirozhkova,USA,female,1986-10-13,1.68,71.0,wrestling,0,0,0 -160971394,Elena Vesnina,RUS,female,1986-08-01,1.76,66.0,tennis,1,0,0 -290451814,Elena Wassen,GER,female,2000-11-01,1.74,63.0,aquatics,0,0,0 -347167586,Elena-Lavinia Tarlea,ROU,female,1993-05-11,1.82,76.0,rowing,0,0,0 -173424444,Eleni Artymata,CYP,female,1986-05-16,1.77,62.0,athletics,0,0,0 -820277604,Eleni Doika,GRE,female,1995-11-15,1.7,55.0,gymnastics,0,0,0 -178710310,Eleonora Giorgi,ITA,female,1989-09-14,1.62,52.0,athletics,0,0,0 -541439110,Eleonora Lo Bianco,ITA,female,1979-12-22,1.71,67.0,volleyball,0,0,0 -985507855,Eli Dershwitz,USA,male,1995-09-23,1.86,77.0,fencing,0,0,0 -307747512,Elia Viviani,ITA,male,1989-02-07,1.77,70.0,cycling,1,0,0 -471696699,Eliane Martins,BRA,female,1986-05-26,1.6,49.0,athletics,0,0,0 -28171198,Eliane Saholinirina,MAD,female,1982-03-20,1.54,46.0,athletics,0,0,0 -15776102,Elias Eliseo Emigdio Abarca,MEX,male,1991-06-13,1.65,,boxing,0,0,0 -141627848,Elias Malave,VEN,male,1989-10-26,1.8,87.0,archery,0,0,0 -592765424,Elie Konki,FRA,male,1992-04-06,1.7,,boxing,0,0,0 -92990093,Eliecith Palacios,COL,female,1987-09-15,1.7,64.0,athletics,0,0,0 -789410278,Elif Jale Yesilirmak,TUR,female,1986-07-30,1.64,58.0,wrestling,0,0,0 -301067341,Elijah Motonei Manangoi,KEN,male,1993-01-05,1.85,62.0,athletics,0,0,0 -678119617,Elin Johansson,SWE,female,1990-08-05,1.76,67.0,taekwondo,0,0,0 -875252627,Elin Rubensson,SWE,female,1993-05-11,1.66,59.0,football,0,1,0 -172321951,Elina Mikhina,KAZ,female,1994-07-16,1.7,55.0,athletics,0,0,0 -198751525,Elina Svitolina,UKR,female,1994-09-12,1.74,60.0,tennis,0,0,0 -731624234,Elinah Phillip,IVB,female,2000-04-03,1.64,50.0,aquatics,0,0,0 -460751397,Elinor Barker,GBR,female,1994-09-07,1.68,56.0,cycling,1,0,0 -287409075,Elios Manzi,ITA,male,1996-03-28,1.55,60.0,judo,0,0,0 -768759366,Elis Guri,BUL,male,1983-07-06,1.89,100.0,wrestling,0,0,0 -613098347,Elis Ligtlee,NED,female,1994-06-28,1.85,90.0,cycling,1,0,0 -564832940,Elisa Bozzo,ITA,female,1987-05-08,1.7,59.0,aquatics,0,0,0 -757900456,Elisa Longo Borghini,ITA,female,1991-12-10,1.7,59.0,cycling,0,0,1 -12802833,Elisa Meneghini,ITA,female,1997-07-24,1.5,42.0,gymnastics,0,0,0 -732211683,Elisa Queirolo,ITA,female,1991-03-06,1.68,61.0,aquatics,0,1,0 -322088639,Elisa Rigaudo,ITA,female,1980-06-17,1.68,53.0,athletics,0,0,0 -7294908,Elisa Vania Ravololoniaina,MAD,female,1992-02-24,1.65,62.0,weightlifting,0,0,0 -668488790,Elisa di Francisca,ITA,female,1982-12-12,1.77,65.0,fencing,0,1,0 -299509346,Elisabet Martinez,ESP,female,1988-06-13,1.67,73.0,rugby sevens,0,0,0 -587801561,Elisabeth Baldauf,AUT,female,1990-08-03,1.75,62.0,badminton,0,0,0 -695086866,Elisabeth Mandaba,CAF,female,1989-06-07,1.33,53.0,athletics,0,0,0 -4144486,Elisabeth Seitz,GER,female,1993-11-04,1.61,57.0,gymnastics,0,0,0 -880954077,Elisavet Pesiridou,GRE,female,1992-02-12,1.75,58.0,athletics,0,0,0 -608164942,Elisbet Games,CUB,female,1997-01-17,1.63,57.0,aquatics,0,0,0 -855475470,Elise Bussaglia,FRA,female,1985-09-24,1.63,54.0,football,0,0,0 -721445990,Elise Kellond-Knight,AUS,female,1990-08-10,1.65,60.0,football,0,0,0 -606790581,Eliska Klucinova,CZE,female,1988-04-14,1.78,70.0,athletics,0,0,0 -626906176,Elissa Downie,GBR,female,1999-07-20,1.58,58.0,gymnastics,0,0,0 -163054373,Elitsa Atanasova Yankova,BUL,female,1994-09-18,1.51,48.0,wrestling,0,0,1 -348703893,Eliud Kipchoge,KEN,male,1984-11-05,1.67,57.0,athletics,1,0,0 -900146374,Eliza Buceschi,ROU,female,1993-08-01,1.78,70.0,handball,0,0,0 -388879004,Eliza McCartney,NZL,female,1996-12-11,1.79,66.0,athletics,0,0,1 -826192606,Elizabet Chavez,ESP,female,1990-11-17,1.92,81.0,handball,0,0,0 -148313722,Elizabeta Samara,ROU,female,1989-04-15,1.71,56.0,table tennis,0,0,0 -56829234,Elizabeth Armitstead,GBR,female,1988-12-18,1.68,55.0,cycling,0,0,0 -993687711,Elizabeth Beisel,USA,female,1992-08-18,1.68,63.0,aquatics,0,0,0 -602061131,Elizabeth Bravo,ECU,female,1987-01-30,1.6,49.0,triathlon,0,0,0 -972005688,Elizabeth Cambage,AUS,female,1991-08-18,2.03,98.0,basketball,0,0,0 -50104802,Elizabeth Cui,NZL,female,1997-08-12,1.59,58.0,aquatics,0,0,0 -218669819,Elizabeth Gleadle,CAN,female,1988-12-05,1.85,79.0,athletics,0,0,0 -800526632,Elizabeth Gunson,NZL,female,1989-07-09,1.62,62.0,hockey,0,0,0 -180787419,Elizabeth Keddell,NZL,female,1994-01-31,1.69,67.0,hockey,0,0,0 -33326551,Elizabeth Madden,USA,female,1963-11-20,1.68,63.0,equestrian,0,1,0 -942647059,Elizabeth Pinedo,ESP,female,1981-05-13,1.75,68.0,handball,0,0,0 -819052934,Elizabeth Thompson,NZL,female,1994-12-08,1.75,71.0,hockey,0,0,0 -340978439,Elizabeth Yin,SIN,female,1991-08-08,1.67,70.0,sailing,0,0,0 -87758456,Elizbar Odikadze,GEO,male,1989-06-14,1.87,105.0,wrestling,0,0,0 -442945772,Elke Karsten,ARG,female,1995-05-15,1.75,65.0,handball,0,0,0 -184528790,Elke Vanhoof,BEL,female,1991-12-16,1.63,60.0,cycling,0,0,0 -1009342,Ella Nelson,AUS,female,1994-05-10,1.69,58.0,athletics,0,0,0 -657233215,Ella Nicholas,COK,female,1990-12-15,1.6,62.0,canoe,0,0,0 -312672556,Ellen Hogerwerf,NED,female,1989-02-10,1.83,72.0,rowing,0,0,0 -769513585,Ellen Hoog,NED,female,1986-03-25,1.64,54.0,hockey,0,1,0 -970232379,Ellen Sprunger,SUI,female,1986-08-05,1.72,62.0,athletics,0,0,0 -667380122,Ellen Tomek,USA,female,1984-05-01,1.78,72.0,rowing,0,0,0 -322522581,Ellen van Dijk,NED,female,1987-02-11,1.82,71.0,cycling,0,0,0 -579116180,Ellia Green,AUS,female,1993-02-20,1.72,75.0,rugby sevens,1,0,0 -163208975,Ellie Carpenter,AUS,female,2000-04-28,1.65,60.0,football,0,0,0 -191092318,Ellie Faulkner,GBR,female,1993-01-05,1.65,68.0,aquatics,0,0,0 -164454907,Elliot Giles,GBR,male,1994-05-26,1.83,77.0,athletics,0,0,0 -986117521,Elliot van Strydonck,BEL,male,1988-07-21,1.85,75.0,hockey,0,1,0 -933444753,Ellis Oreilly,IRL,female,1998-02-23,1.64,63.0,gymnastics,0,0,0 -579582876,Elmar Gasimov,AZE,male,1990-11-02,1.88,100.0,judo,0,1,0 -803655195,Elmira Syzdykova,KAZ,female,1992-02-05,1.72,69.0,wrestling,0,0,1 -434777707,Elmo Jankari,FIN,male,1992-10-13,,,equestrian,0,0,0 -285578745,Elmurat Tasmuradov,UZB,male,1991-12-12,1.6,59.0,wrestling,0,0,1 -699007358,Elodie Clouvel,FRA,female,1989-01-14,1.82,69.0,modern pentathlon,0,1,0 -557773110,Elodie Guiglion,FRA,female,1990-01-28,1.66,63.0,rugby sevens,0,0,0 -839282607,Elodie Ravera-Scaramozzino,FRA,female,1995-09-19,1.77,70.0,rowing,0,0,0 -310110976,Elodie Thomis,FRA,female,1986-08-13,1.68,60.0,football,0,0,0 -786667098,Eloi Imaniraguha,RWA,male,1995-01-01,,,aquatics,0,0,0 -366176086,Eloise Wellings,AUS,female,1982-11-09,1.72,52.0,athletics,0,0,0 -339293257,Elroy Gelant,RSA,male,1986-08-25,1.75,61.0,athletics,0,0,0 -95400560,Els Rens,BEL,female,1983-02-19,1.6,51.0,athletics,0,0,0 -584020714,Elsa Baquerizo McMillan,ESP,female,1987-06-25,1.81,68.0,volleyball,0,0,0 -746327154,Elsabeth Black,CAN,female,1995-09-08,1.55,56.0,gymnastics,0,0,0 -31920396,Elshod Rasulov,UZB,male,1986-03-07,1.84,,boxing,0,0,0 -388539796,Elsie Uwamahoro,BDI,female,1988-10-23,1.65,54.0,aquatics,0,0,0 -396471467,Elson Brechtefeld,NRU,male,1994-03-02,1.55,56.0,weightlifting,0,0,0 -821149858,Elvin Mamishzada,AZE,male,1991-12-17,1.65,,boxing,0,0,0 -405623057,Elvin Mursaliyev,AZE,male,1988-08-17,1.78,75.0,wrestling,0,0,0 -357059083,Elvina Karimova,RUS,female,1994-03-25,1.66,62.0,aquatics,0,0,1 -95609795,Elvismar Rodriguez,VEN,female,1997-02-14,1.78,70.0,judo,0,0,0 -584799839,Elyane Boal,CPV,female,1998-04-26,1.7,58.0,gymnastics,0,0,0 -228262342,Ema Ramusovic,MNE,female,1996-11-28,1.83,78.0,handball,0,0,0 -772515939,Emanuel Andrade,VEN,male,1996-09-11,1.89,76.0,equestrian,0,0,0 -829728385,Emanuel Buchmann,GER,male,1992-11-18,1.81,61.0,cycling,0,0,0 -655933510,Emanuel Silva,POR,male,1985-12-04,1.86,87.0,canoe,0,0,0 -937016443,Emanuele Birarelli,ITA,male,1981-02-08,2.02,95.0,volleyball,0,1,0 -728574987,Emanuele Gaudiano,ITA,male,1986-06-30,1.75,70.0,equestrian,0,0,0 -268422927,Emanuele Liuzzi,ITA,male,1990-12-22,1.91,85.0,rowing,0,0,0 -677858337,Emanuelle Lima,BRA,female,1996-05-03,1.67,55.0,gymnastics,0,0,0 -865724111,Emel Dereli,TUR,female,1996-02-25,1.81,110.0,athletics,0,0,0 -987023518,Emelda Piata Zessi,CMR,female,1997-04-08,1.9,65.0,volleyball,0,0,0 -588334076,Emelie Lundberg,SWE,female,1993-03-10,1.73,74.0,football,0,0,0 -468726382,Emerric Kpegba,TOG,male,1999-05-29,,,aquatics,0,0,0 -174328356,Emerson Duarte,BRA,male,1971-10-18,1.82,80.0,shooting,0,0,0 -414726536,Emese Szasz,HUN,female,1982-09-07,1.76,71.0,fencing,1,0,0 -852099973,Emi Nishikori,JPN,female,1993-01-09,1.6,53.0,hockey,0,0,0 -87680964,Emil Larsen,DEN,male,1991-06-22,1.83,79.0,football,0,0,0 -514462575,Emil Milev,USA,male,1968-05-02,1.78,83.0,shooting,0,0,0 -974556928,Emilce Sosa,ARG,female,1987-09-11,1.77,72.0,volleyball,0,0,0 -782571227,Emilee Cherry,AUS,female,1992-11-02,1.68,70.0,rugby sevens,1,0,0 -126099613,Emilia Alina Vuc,ROU,female,1993-10-04,1.54,50.0,wrestling,0,0,0 -348572893,Emilia Ankiewicz,POL,female,1990-11-22,1.78,64.0,athletics,0,0,0 -202538392,Emilia Appelqvist,SWE,female,1990-02-11,1.68,65.0,football,0,1,0 -43289045,Emilia Fahlin,SWE,female,1988-10-24,1.76,62.0,cycling,0,0,0 -136493766,Emilia Pikkarainen,FIN,female,1992-10-11,1.73,56.0,aquatics,0,0,0 -743555148,Emiliano Grillo,ARG,male,1992-09-14,1.78,78.0,golf,0,0,0 -699500168,Emiliano Lasa,URU,male,1990-01-25,1.8,75.0,athletics,0,0,0 -561775789,Emilie Andeol,FRA,female,1987-10-30,1.7,97.0,judo,1,0,0 -339081349,Emilie Fournel,CAN,female,1986-10-26,1.55,59.0,canoe,0,0,0 -542195691,Emilie Hegh Arntzen,NOR,female,1994-01-01,1.83,,handball,0,0,1 -466069449,Emilie Menuet,FRA,female,1991-09-27,1.55,44.0,athletics,0,0,0 -702824407,Emily Batty,CAN,female,1988-06-16,1.61,48.0,cycling,0,0,0 -146940230,Emily Diamond,GBR,female,1991-06-11,1.73,58.0,athletics,0,0,1 -838354626,Emily Gielnik,AUS,female,1992-05-13,,,football,0,0,0 -265521340,Emily Infeld,USA,female,1990-03-21,1.63,49.0,athletics,0,0,0 -746574483,Emily Morley,BAH,female,1993-12-06,1.53,70.0,rowing,0,0,0 -736663132,Emily Overholt,CAN,female,1997-10-04,1.7,60.0,aquatics,0,0,1 -345975199,Emily Regan,USA,female,1988-06-10,1.88,80.0,rowing,1,0,0 -905464042,Emily Rogers,AUS,female,1998-03-25,1.73,52.0,aquatics,0,0,0 -651596941,Emily Scarratt,GBR,female,1990-02-08,1.81,79.0,rugby sevens,0,0,0 -817845839,Emily Scott,GBR,female,1992-06-30,1.65,60.0,rugby sevens,0,0,0 -75025673,Emily Seebohm,AUS,female,1992-06-05,1.8,70.0,aquatics,0,1,0 -763142277,Emily Smith,AUS,female,1992-07-28,1.59,55.0,hockey,0,0,0 -688367620,Emily Sonnett,USA,female,1993-11-25,1.68,60.0,football,0,0,0 -914565471,Emily van Egmond,AUS,female,1993-07-12,1.79,70.0,football,0,0,0 -297385649,Emma Berglund,SWE,female,1988-12-19,1.72,63.0,football,0,1,0 -469541944,Emma Coburn,USA,female,1990-10-19,1.73,54.0,athletics,0,0,1 -325186756,Emma Dyke,NZL,female,1995-06-30,1.81,68.0,rowing,0,0,0 -763495268,Emma Hinze,GER,female,1997-09-17,1.68,63.0,cycling,0,0,0 -87473289,Emma Johansson,SWE,female,1983-09-23,1.68,54.0,cycling,0,1,0 -322314005,Emma Jorgensen,DEN,female,1996-01-30,1.69,70.0,canoe,0,1,0 -717137601,Emma Larsson,SWE,female,1998-11-15,1.47,40.0,gymnastics,0,0,0 -661638106,Emma McKeon,AUS,female,1994-05-24,1.8,60.0,aquatics,1,2,1 -833886353,Emma Moffatt,AUS,female,1984-09-07,1.71,57.0,triathlon,0,0,0 -493087174,Emma Pooley,GBR,female,1982-10-03,1.57,50.0,cycling,0,0,0 -79453290,Emma Robinson,NZL,female,1994-09-26,1.8,72.0,aquatics,0,0,0 -327389917,Emma Tonegato,AUS,female,1995-03-20,1.65,63.0,rugby sevens,1,0,0 -831117796,Emma Twigg,NZL,female,1987-03-01,1.82,76.0,rowing,0,0,0 -737526128,Emmaculate Msipa,ZIM,female,1992-06-07,1.68,59.0,football,0,0,0 -867271718,Emmanouil Mylonakis,GRE,male,1985-04-09,1.85,75.0,aquatics,0,0,0 -796025213,Emmanuel Callender,TTO,male,1984-05-10,1.89,86.0,athletics,0,0,0 -102727571,Emmanuel Daniel,NGR,male,1993-12-17,1.74,,football,0,0,1 -545212161,Emmanuel Dasor,GHA,male,1995-09-14,,,athletics,0,0,0 -585502953,Emmanuel Lebesson,FRA,male,1988-04-24,1.8,75.0,table tennis,0,0,0 -904221545,Emmanuel Lucenti,ARG,male,1984-11-23,1.73,81.0,judo,0,0,0 -364575203,Emmanuel Matadi,LBR,male,1991-04-15,,,athletics,0,0,0 -686447847,Emmanuel Stockbroekx,BEL,male,1993-12-23,1.89,88.0,hockey,0,1,0 -291735162,Emmanuel Vanluchene,BEL,male,1992-12-09,1.8,75.0,aquatics,0,0,0 -578388383,Emmanuel Zapata,ARG,male,1986-10-07,1.8,80.0,modern pentathlon,0,0,0 -238544524,Emre Zafer Barnes,TUR,male,1988-11-07,1.78,73.0,athletics,0,0,0 -333123827,Enas Mostafa Youssef Ahmed,EGY,female,1989-01-01,1.65,69.0,wrestling,0,0,0 -450857033,Endry Jose Saavedra,VEN,male,1991-05-14,1.8,,boxing,0,0,0 -282037284,Endy Miyem,FRA,female,1988-05-15,1.88,87.0,basketball,0,0,0 -166163342,English Gardner,USA,female,1992-04-22,1.68,54.0,athletics,1,0,0 -786298586,Enkelejda Shehaj Bekurti,USA,female,1969-01-23,1.63,57.0,shooting,0,0,0 -957160839,Enkh-Amar Kharkhuu,MGL,male,1992-08-05,1.7,,boxing,0,0,0 -62584278,Enrico D'Aniello,ITA,male,1995-12-06,1.52,53.0,rowing,0,0,0 -686586839,Enrico Garozzo,ITA,male,1989-06-21,1.9,70.0,fencing,0,1,0 -3678441,Enrico Lacruz,NED,male,1993-08-31,1.81,,boxing,0,0,0 -561159124,Enrique Brol,GUA,male,1978-10-09,1.81,73.0,shooting,0,0,0 -445189278,Enrique Jose Arathoon Pacas,ESA,male,1992-01-18,1.8,78.0,sailing,0,0,0 -968294058,Enzo Khasz,FRA,male,1993-08-13,2.03,105.0,aquatics,0,0,0 -484934440,Enzo Lefort,FRA,male,1991-09-29,1.91,80.0,fencing,0,1,0 -533594099,Enzo Yanez,CHI,male,1985-09-13,1.74,63.0,athletics,0,0,0 -57332594,Eoin Coughlan,AUS,male,1992-03-31,1.86,81.0,judo,0,0,0 -246404947,Epke Zonderland,NED,male,1986-04-16,1.73,69.0,gymnastics,0,0,0 -628232189,Epp Mae,EST,female,1992-04-02,1.7,76.0,wrestling,0,0,0 -800797383,Ercan Muslu,TUR,male,1988-12-01,1.6,52.0,athletics,0,0,0 -577556820,Erdinc Kebapci,TUR,male,1993-06-27,1.91,77.0,shooting,0,0,0 -897791102,Eri Hozumi,JPN,female,1994-02-17,1.67,60.0,tennis,0,0,0 -41617234,Eri Tosaka,JPN,female,1993-08-30,1.52,53.0,wrestling,1,0,0 -370045491,Eri Yonamine,JPN,female,1991-04-25,1.6,51.0,cycling,0,0,0 -121824937,Eric Alejandro,PUR,male,1986-04-15,1.8,81.0,athletics,0,0,0 -365293202,Eric Cray,PHI,male,1988-11-06,1.76,70.0,athletics,0,0,0 -250274348,Eric Delaunay,FRA,male,1987-12-04,1.78,83.0,shooting,0,0,0 -569855647,Eric Gillis,CAN,male,1980-03-08,1.72,58.0,athletics,0,0,0 -952826532,Eric Johannesen,GER,male,1988-07-16,1.93,100.0,rowing,0,1,0 -317561671,Eric Lamaze,CAN,male,1968-04-17,1.7,65.0,equestrian,0,0,1 -281183141,Eric Murray,NZL,male,1982-05-06,1.95,98.0,rowing,1,0,0 -92531992,Eric Oelschlaegel,GER,male,1995-09-19,1.93,87.0,football,0,1,0 -720596790,Eric Woelfl,CAN,male,1989-07-18,1.93,69.0,rowing,0,0,0 -289444580,Erica Elizabeth Wiebe,CAN,female,1989-06-13,1.75,75.0,wrestling,1,0,0 -43783175,Erica de Sena,BRA,female,1985-05-03,1.68,55.0,athletics,0,0,0 -431001912,Erick Aguirre,MEX,male,1997-02-23,1.7,60.0,football,0,0,0 -703944277,Erick Barrondo,GUA,male,1991-06-14,1.78,60.0,athletics,0,0,0 -239360706,Erick Gutierrez,MEX,male,1995-06-15,1.76,70.0,football,0,0,0 -493508166,Erick Rodriguez,NCA,male,1990-06-01,1.73,59.0,athletics,0,0,0 -577570329,Erick Torres,MEX,male,1993-01-19,1.83,79.0,football,0,0,0 -438356215,Erik Heil,GER,male,1989-08-10,1.85,80.0,sailing,0,0,1 -571952374,Erik Kynard,USA,male,1991-02-03,1.94,89.0,athletics,0,0,0 -421842394,Erik Persson,SWE,male,1994-01-12,1.81,75.0,aquatics,0,0,0 -184812086,Erik Pfeifer,GER,male,1987-01-22,1.91,,boxing,0,0,0 -474166352,Erik Shoji,USA,male,1989-08-24,1.84,83.0,volleyball,0,0,1 -476898873,Erik Tysse,NOR,male,1980-12-04,,,athletics,0,0,0 -296441839,Erik Varga,SVK,male,1976-06-09,1.84,90.0,shooting,0,0,0 -939093162,Erik Vlcek,SVK,male,1981-12-29,1.89,89.0,canoe,0,1,0 -898845676,Erika,BRA,female,1988-02-04,1.72,60.0,football,0,0,0 -594663400,Erika Abril,COL,female,1978-03-29,1.64,52.0,athletics,0,0,0 -938043431,Erika Araki,JPN,female,1984-08-03,1.86,78.0,volleyball,0,0,0 -876370845,Erika Fasana,ITA,female,1996-02-17,1.49,44.0,gymnastics,0,0,0 -699027822,Erika Ferraioli,ITA,female,1986-03-23,1.8,65.0,aquatics,0,0,0 -574116085,Erika Kinsey,SWE,female,1988-03-10,1.85,68.0,athletics,0,0,0 -907121538,Erika Kirpu,EST,female,1992-06-22,1.74,61.0,fencing,0,0,0 -136448459,Erika Miranda,BRA,female,1987-06-04,1.62,52.0,judo,0,0,0 -630444522,Erika Olivera,CHI,female,1976-01-04,1.63,55.0,athletics,0,0,0 -121922663,Erika Seltenreich-Hodgson,CAN,female,1995-04-24,1.7,65.0,aquatics,0,0,0 -923211927,Erika Souza,BRA,female,1982-03-09,1.97,92.0,basketball,0,0,0 -854947298,Erika Villaecija garcia,ESP,female,1984-06-02,1.77,61.0,aquatics,0,0,0 -861627176,Erin Densham,AUS,female,1985-05-03,1.65,52.0,triathlon,0,0,0 -988480190,Erin Nayler,NZL,female,1992-04-17,1.77,68.0,football,0,0,0 -582093558,Erin Phillips,AUS,female,1985-05-19,1.73,70.0,basketball,0,0,0 -940555509,Erin Rafuse,CAN,female,1988-12-02,1.73,60.0,sailing,0,0,0 -468726001,Erin Teschuk,CAN,female,1994-10-25,1.63,52.0,athletics,0,0,0 -654439782,Erina Jeke,ZIM,female,1990-09-16,1.63,53.0,football,0,0,0 -738743977,Erislandy Savon,CUB,male,1990-07-21,1.92,,boxing,0,0,1 -626115327,Erkin Adylbek Uulu,KGZ,male,1991-02-14,1.9,,boxing,0,0,0 -591654381,Erlon de Souza Silva,BRA,male,1991-06-23,1.75,78.0,canoe,0,1,0 -92210230,Ernesto Andres Zamora,URU,male,1983-04-13,1.8,63.0,athletics,0,0,0 -996057548,Ernesto Boardman,MEX,male,1993-02-23,1.75,92.0,archery,0,0,0 -301160522,Ernesto Reve,CUB,male,1992-02-26,1.82,79.0,athletics,0,0,0 -964710866,Ernst Rost-Onnes,BRA,male,1985-12-05,1.84,76.0,hockey,0,0,0 -840577893,Ersin Tacir,TUR,male,1985-04-01,1.7,61.0,athletics,0,0,0 -585533638,Erwan le Pechoux,FRA,male,1982-01-13,1.71,65.0,fencing,0,1,0 -794735118,Erwin Jose Caraballo Cabrera,VEN,male,1981-07-21,1.85,130.0,wrestling,0,0,0 -200848465,Erwin Maldonado,VEN,male,1983-07-25,1.7,70.0,aquatics,0,0,0 -138493384,Ese Brume,NGR,female,1996-01-20,1.67,58.0,athletics,0,0,0 -78109140,Eseosa Desalu,ITA,male,1994-02-19,1.8,67.0,athletics,0,0,0 -812990220,Eslam Eissa,EGY,male,1988-07-02,1.85,80.0,handball,0,0,0 -140388998,Esma Aydemir,TUR,female,1992-01-01,1.6,48.0,athletics,0,0,0 -276263740,Esmee Vermeulen,NED,female,1996-04-21,1.79,64.0,aquatics,0,0,0 -11916654,Espen Kofstad,NOR,male,1987-08-11,,,golf,0,0,0 -240797974,Esra Ural,TUR,female,1991-08-18,1.98,100.0,basketball,0,0,0 -535348868,Esraa Ahmed,EGY,female,1998-11-21,1.5,62.0,weightlifting,0,0,0 -54624746,Esref Apak,TUR,male,1982-01-03,1.84,120.0,athletics,0,0,0 -243334151,Estavana Polman,NED,female,1992-08-05,1.73,65.0,handball,0,0,0 -246336777,Esteban Enderica,ECU,male,1990-10-30,1.77,71.0,aquatics,0,0,0 -969516375,Esteban Grimalt,CHI,male,1991-01-09,1.9,88.0,volleyball,0,0,0 -962423324,Estefania Alvarez Piedrahita,COL,female,1994-08-25,1.62,60.0,aquatics,0,0,0 -318230176,Estefania Garcia,ECU,female,1988-05-13,1.65,63.0,judo,0,0,0 -61187111,Estefania Ramirez,COL,female,1991-09-10,1.68,69.0,rugby sevens,0,0,0 -776130602,Estela Garcia,ESP,female,1989-03-20,1.7,56.0,athletics,0,0,0 -438033327,Estela Navascues,ESP,female,1981-02-03,1.63,50.0,athletics,0,0,0 -208192255,Estellah Fils Rabetsara,MAD,female,1994-05-29,1.67,59.0,aquatics,0,0,0 -317848923,Estelle Mossely,FRA,female,1992-08-19,1.68,,boxing,1,0,0 -38750795,Estelle Nze-Minko,FRA,female,1991-08-11,1.78,67.0,handball,0,1,0 -789081554,Esther Barrugues Alvina,AND,female,1980-05-16,1.64,60.0,shooting,0,0,0 -982554606,Esther Guerrero,ESP,female,1990-02-07,1.68,60.0,athletics,0,0,0 -411235848,Esther Qin,AUS,female,1991-11-18,1.68,58.0,aquatics,0,0,0 -29928369,Esther Stam,GEO,female,1987-03-11,1.74,75.0,judo,0,0,0 -928379539,Etel Sanchez,ARG,female,1989-08-23,1.71,59.0,aquatics,0,0,0 -572871860,Etenesh Diro,ETH,female,1991-05-10,1.68,49.0,athletics,0,0,0 -711536725,Ethan Mitchell,NZL,male,1991-02-19,1.8,83.0,cycling,0,1,0 -724574659,Etiene Medeiros,BRA,female,1991-05-24,1.69,60.0,aquatics,0,0,0 -182669270,Etienne Hubert,FRA,male,1988-01-27,1.85,86.0,canoe,0,0,0 -17751725,Etimoni Timuani,TUV,male,1991-10-14,1.84,72.0,athletics,0,0,0 -777342251,Eugene Magee,IRL,male,1986-04-01,1.77,83.0,hockey,0,0,0 -855597933,Eugene Wang,CAN,male,1985-11-13,1.74,80.0,table tennis,0,0,0 -479811363,Eugenie Bouchard,CAN,female,1994-02-25,1.78,58.0,tennis,0,0,0 -446528894,Eugenie le Sommer,FRA,female,1989-05-18,1.61,58.0,football,0,0,0 -182815845,Eugenio Rossi,SMR,male,1992-03-06,1.92,75.0,athletics,0,0,0 -841004916,Eun Hee Ryu,KOR,female,1990-02-24,1.8,76.0,handball,0,0,0 -910783696,Eun Ju Lee,KOR,female,1999-03-05,1.48,,gymnastics,0,0,0 -465103196,Eunbi Cheon,KOR,female,1992-02-07,1.65,59.0,hockey,0,0,0 -879574989,Eunbi Lee,KOR,female,1990-10-23,1.63,58.0,handball,0,0,0 -53526732,Eunhye Kim,KOR,female,1987-05-08,1.61,50.0,shooting,0,0,0 -11561844,Eunice Chibanda,ZIM,female,1993-03-26,1.63,61.0,football,0,0,0 -289758508,Eunice Jepkirui Kirwa,BRN,female,1984-05-20,1.55,49.0,athletics,0,1,0 -1089850,Eunice Jepkoech Sum,KEN,female,1988-04-10,1.7,54.0,athletics,0,0,0 -847401073,Eunsook Choi,KOR,female,1986-02-28,1.69,59.0,fencing,0,0,0 -126463635,Eva Alicia Gurrola Ortiz,MEX,female,1994-05-17,1.55,63.0,weightlifting,0,0,0 -779677104,Eva Calvo Gomez,ESP,female,1991-07-29,1.76,57.0,taekwondo,0,1,0 -18347,Eva Csernoviczki,HUN,female,1986-10-16,1.6,51.0,judo,0,0,0 -133712250,Eva Hovenkamp,NED,female,1996-07-19,1.73,65.0,athletics,0,0,0 -810831172,Eva Lechner,ITA,female,1985-07-01,1.65,50.0,cycling,0,0,0 -239566230,Eva Lee,USA,female,1986-08-07,1.68,58.0,badminton,0,0,0 -876737211,Eva Odorova,SVK,female,1979-11-22,1.75,60.0,table tennis,0,0,0 -797157508,Eva Risztov,HUN,female,1985-08-30,1.73,64.0,aquatics,0,0,0 -934827181,Eva Roesken,GER,female,1984-07-05,1.65,70.0,shooting,0,0,0 -565124998,Eva Vrabcova Nyvltova,CZE,female,1986-02-06,1.62,48.0,athletics,0,0,0 -832639547,Eva de Goede,NED,female,1989-03-23,1.7,61.0,hockey,0,1,0 -103773001,Evagjelia Veli,ALB,female,1991-07-16,1.6,52.0,weightlifting,0,0,0 -509893044,Evaldas Petrauskas,LTU,male,1992-03-19,1.64,,boxing,0,0,0 -270191422,Evan Dunfee,CAN,male,1990-09-28,1.86,65.0,athletics,0,0,0 -707333933,Evan Jager,USA,male,1989-03-08,1.88,65.0,athletics,0,1,0 -355432500,Evan Van Moerkerke,CAN,male,1993-08-16,2.05,110.0,aquatics,0,0,0 -854422751,Evandro Goncalves Oliveira Junior,BRA,male,1990-07-17,2.1,105.0,volleyball,0,0,0 -861327414,Evandro M. Guerra,BRA,male,1981-12-27,2.07,103.0,volleyball,1,0,0 -842357019,Evangelia Papazoglou,GRE,female,1995-01-14,1.72,60.0,aquatics,0,0,0 -171585760,Evangelia Platanioti,GRE,female,1994-08-09,1.7,52.0,aquatics,0,0,0 -714691544,Evangelia Psarra,GRE,female,1974-06-17,1.72,63.0,archery,0,0,0 -135668596,Evangelos Ioannis Delakas,GRE,male,1985-02-08,1.89,90.0,aquatics,0,0,0 -507584476,Evania Pelite,AUS,female,1995-07-12,1.69,67.0,rugby sevens,1,0,0 -302915787,Evans Kiplagat Barkowet,AZE,male,1988-03-05,1.7,60.0,athletics,0,0,0 -91128162,Eve Macfarlane,NZL,female,1992-09-27,1.86,75.0,rowing,0,0,0 -132983811,Evelina Afoa,SAM,female,1998-09-13,1.62,60.0,aquatics,0,0,0 -700402174,Evelis Aguilar,COL,female,1993-01-03,1.73,64.0,athletics,0,0,0 -94836813,Evelyn Cipriano,CUB,female,1995-12-24,,,athletics,0,0,0 -241380224,Evelyn Rivera,COL,female,1997-12-03,1.57,54.0,athletics,0,0,0 -176808861,Evelyn Stevens,USA,female,1983-05-09,1.66,55.0,cycling,0,0,0 -508215341,Evelyn Verraszto,HUN,female,1989-07-17,1.73,62.0,aquatics,0,0,0 -822616386,Evelyne Tschopp,SUI,female,1991-06-19,1.62,55.0,judo,0,0,0 -924396982,Ever Palma,MEX,male,1992-03-18,1.66,62.0,athletics,0,0,0 -447422012,Evgenia Ukolova,RUS,female,1989-05-17,1.81,66.0,volleyball,0,0,0 -674582235,Evgenii Drattcev,RUS,male,1983-01-24,1.8,74.0,aquatics,0,0,0 -491370876,Evgenii Kuznetsov,RUS,male,1990-04-12,1.73,65.0,aquatics,0,0,0 -355775573,Evgenii Lukantsov,RUS,male,1991-12-05,1.87,91.0,canoe,0,0,0 -863520431,Evgeniia Soboleva,RUS,female,1988-08-26,1.8,75.0,aquatics,0,0,1 -277821751,Evgeniya Ivanova,RUS,female,1987-07-26,1.76,67.0,aquatics,0,0,1 -475190404,Evgeniya Ovchinnikova,RUS,female,1985-04-07,1.7,49.0,equestrian,0,0,0 -222720821,Evgeny Donskoy,RUS,male,1990-05-09,1.84,76.0,tennis,0,0,0 -474060754,Evgeny Komarov,RUS,male,1988-11-08,1.75,78.0,cycling,0,0,0 -475233950,Evgeny Koptelov,RUS,male,1993-11-24,1.91,74.0,aquatics,0,0,0 -968996509,Evgeny Rylov,RUS,male,1996-09-23,1.84,73.0,aquatics,0,0,1 -93776802,Evgeny Tishchenko,RUS,male,1991-07-15,1.96,,boxing,1,0,0 -569106125,Evgheni Nedealco,MDA,male,1990-01-03,1.79,79.0,wrestling,0,0,0 -449788118,Evi van Acker,BEL,female,1985-09-23,1.72,70.0,sailing,0,0,0 -664096617,Evita Leter,SUR,female,1995-07-05,,,aquatics,0,0,0 -224043471,Ewa Swoboda,POL,female,1997-07-26,1.67,60.0,athletics,0,0,0 -671544226,Ewelina Ptak,POL,female,1987-03-20,1.65,57.0,athletics,0,0,0 -644393700,Ewelina Wojnarowska,POL,female,1986-12-13,1.71,72.0,canoe,0,0,0 -524481891,Eyal Levine,ISR,male,1986-08-27,1.7,60.0,sailing,0,0,0 -317494421,Eyglo Gustafsdottir,ISL,female,1995-02-01,1.87,82.0,aquatics,0,0,0 -483053147,Eythora Thorsdottir,NED,female,1998-08-10,1.6,47.0,gymnastics,0,0,0 -455154602,Ezekiel Kemboi,KEN,male,1982-05-25,1.67,52.0,athletics,0,0,0 -724615961,Ezequiel Palacios,ARG,male,1992-10-02,1.98,95.0,volleyball,0,0,0 -560065840,Ezequiel Unsain,ARG,male,1995-03-09,1.76,75.0,football,0,0,0 -340239700,Ezinne Okparaebo,NOR,female,1988-03-03,,,athletics,0,0,0 -390665654,Fa Quan Bai,CHN,male,1986-03-18,1.73,66.0,triathlon,0,0,0 -940097096,Fabian Cancellara,SUI,male,1981-03-18,1.86,81.0,cycling,1,0,0 -315207567,Fabian Drzyzga,POL,male,1990-01-03,1.96,90.0,volleyball,0,0,0 -986859469,Fabian Florant,NED,male,1983-02-01,1.8,74.0,athletics,0,0,0 -136342210,Fabian Gomez,ARG,male,1978-10-27,1.73,80.0,golf,0,0,0 -630689816,Fabian Hambuechen,GER,male,1987-10-25,1.64,68.0,gymnastics,1,0,0 -893322663,Fabian Heinle,GER,male,1994-05-14,1.87,72.0,athletics,0,0,0 -3921925,Fabian Hernando Puerta Zapata,COL,male,1991-07-12,1.82,90.0,cycling,0,0,0 -646375341,Fabian Kauter,SUI,male,1985-09-22,1.81,83.0,fencing,0,0,0 -357914952,Fabian Wiede,GER,male,1994-02-08,1.94,94.0,handball,0,0,1 -463895086,Fabiana,BRA,female,1989-08-04,1.61,57.0,football,0,0,0 -978433851,Fabiana Claudino,BRA,female,1985-01-24,1.93,76.0,volleyball,0,0,0 -708498437,Fabiana Diniz,BRA,female,1981-05-13,1.83,71.0,handball,0,0,0 -716396610,Fabiana Moraes,BRA,female,1986-06-05,1.7,55.0,athletics,0,0,0 -415759115,Fabiana Murer,BRA,female,1981-03-16,1.72,58.0,athletics,0,0,0 -391451002,Fabiano Joseph,TAN,male,1985-12-24,,50.0,athletics,0,0,0 -146876427,Fabien Gilot,FRA,male,1984-04-27,1.92,87.0,aquatics,0,1,0 -377151461,Fabienne In-Albon,SUI,female,1986-09-05,1.64,63.0,golf,0,0,0 -903291591,Fabienne Kohlmann,GER,female,1989-11-06,1.7,57.0,athletics,0,0,0 -218223862,Fabienne Schlumpf,SUI,female,1990-11-17,1.83,63.0,athletics,0,0,0 -586833716,Fabienne St Louis,MRI,female,1988-03-22,1.71,55.0,triathlon,0,0,0 -748389052,Fabio Aru,ITA,male,1990-07-03,1.83,65.0,cycling,0,0,0 -425939081,Fabio Basile,ITA,male,1994-10-07,1.6,66.0,judo,1,0,0 -606133637,Fabio Chiuffa,BRA,male,1989-03-10,1.85,85.0,handball,0,0,0 -578637850,Fabio Fognini,ITA,male,1987-05-24,1.8,74.0,tennis,0,0,0 -902180423,Fabio Infimo,ITA,male,1988-07-18,1.94,86.0,rowing,0,0,0 -33201075,Fabio Wyss,SUI,male,1989-06-09,1.85,85.0,canoe,0,0,0 -683014073,Fabrice Dabla,TOG,male,1992-11-20,,,athletics,0,0,0 -124241338,Fabrice Lapierre,AUS,male,1983-10-17,1.79,69.0,athletics,0,0,0 -96784555,Fabrice Zango Hugues,BUR,male,1993-06-25,1.8,78.0,athletics,0,0,0 -797399696,Fabrizio Donato,ITA,male,1976-08-14,1.89,83.0,athletics,0,0,0 -244377433,Fabrizio Zanotti,PAR,male,1983-05-21,1.69,70.0,golf,0,0,0 -549448963,Facundo Callioni,ARG,male,1985-10-09,1.83,77.0,hockey,1,0,0 -933200790,Facundo Campazzo,ARG,male,1991-03-23,1.81,85.0,basketball,0,0,0 -121940121,Facundo Conte,ARG,male,1989-08-25,1.97,88.0,volleyball,0,0,0 -866117672,Facundo Olezza Bazan,ARG,male,1994-08-30,1.87,97.0,sailing,0,0,0 -951494220,Fadwa Sidi Madane,MAR,female,1994-11-20,1.75,56.0,athletics,0,0,0 -252487063,Fahad Talib,IRQ,male,1994-10-21,1.9,84.0,football,0,0,0 -203217392,Fahem Hammachi,ALG,male,1992-03-07,1.78,,boxing,0,0,0 -442721,Faicel Jaballah,TUN,male,1988-05-01,1.96,,judo,0,0,0 -932376029,Faith Chepngetich Kipyegon,KEN,female,1994-01-10,1.57,43.0,athletics,1,0,0 -511266323,Faleh Suwead Al Ajami,QAT,male,1986-06-05,1.65,60.0,equestrian,0,0,0 -80472413,Fan Wang,CHN,female,1994-01-27,1.88,72.0,volleyball,0,0,0 -667913216,Fang Chen,CHN,female,1983-10-19,1.71,60.0,shooting,0,0,0 -129560075,Fangxu Yang,CHN,female,1994-10-06,1.9,71.0,volleyball,1,0,0 -775503680,Fanny Deberghes,FRA,female,1994-02-21,1.7,65.0,aquatics,0,0,0 -816581601,Fanny Horta,FRA,female,1986-01-22,1.66,63.0,rugby sevens,0,0,0 -337880291,Fanny Lecluyse,BEL,female,1992-03-11,1.77,64.0,aquatics,0,0,0 -742843800,Fantine Lesaffre,FRA,female,1994-11-10,1.8,57.0,aquatics,0,0,0 -465963657,Farah Boufadene,ALG,female,1999-03-11,1.55,55.0,gymnastics,0,0,0 -140298788,Farah Jacques,CAN,female,1990-02-08,1.74,59.0,athletics,0,0,0 -112237470,Fares Ferjani,TUN,male,1997-07-22,1.75,60.0,fencing,0,0,0 -924635327,Fares Ibrahim E. H. Elbakh,QAT,male,1998-06-04,1.75,85.0,weightlifting,0,0,0 -351843996,Farhad Ghaemi,IRI,male,1989-08-28,1.97,73.0,volleyball,0,0,0 -261146293,Farhan Farhan,BRN,male,1996-10-24,1.79,67.0,aquatics,0,0,0 -591480442,Farid Chaal,ALG,male,1994-07-03,1.9,80.0,football,0,0,0 -892804755,Farida Azizova,AZE,female,1995-06-06,1.73,67.0,taekwondo,0,0,0 -382788770,Farida Osman,EGY,female,1995-01-18,1.73,63.0,aquatics,0,0,0 -738027974,Farkhad Kharki,KAZ,male,1991-04-20,1.6,62.0,weightlifting,0,0,1 -848404130,Farzan Ashourzadeh Fallah,IRI,male,1996-11-25,1.85,58.0,taekwondo,0,0,0 -335487444,Fatehah Mustapa,MAS,female,1989-03-12,1.63,64.0,cycling,0,0,0 -283411647,Fatema Almahmeed,BRN,female,1999-06-14,1.67,60.0,aquatics,0,0,0 -91359398,Fatima Alkaramova,AZE,female,2002-06-26,1.75,60.0,aquatics,0,0,0 -300063217,Fatima Gallardo Carapeto,ESP,female,1997-05-24,1.8,60.0,aquatics,0,0,0 -577411448,Fatima Galvez,ESP,female,1987-01-19,1.66,60.0,shooting,0,0,0 -457192080,Fatma El Sharnouby,EGY,female,1997-11-18,,,athletics,0,0,0 -158999852,Fatou Dieng,SEN,female,1983-08-18,1.67,60.0,basketball,0,0,0 -708809781,Fatoumata Samassekou,MLI,female,1987-12-31,1.68,74.0,aquatics,0,0,0 -930422859,Faye Husain,IOA,female,1994-10-20,,,aquatics,0,0,0 -471409647,Faye Njie,GAM,male,1993-11-23,,,judo,0,0,0 -454377713,Fazliddin Gaibnazarov,UZB,male,1991-06-16,1.69,,boxing,1,0,0 -156730444,Federica Pellegrini,ITA,female,1988-08-05,1.79,65.0,aquatics,0,0,0 -131020655,Federica Radicchi,ITA,female,1988-12-21,1.7,70.0,aquatics,0,1,0 -536316359,Federico Bocchia,ITA,male,1986-10-24,1.97,93.0,aquatics,0,0,0 -384768641,Federico Bruno,ARG,male,1993-06-18,1.85,66.0,athletics,0,0,0 -735031995,Federico Delbonis,ARG,male,1990-10-05,1.93,89.0,tennis,0,0,0 -856887683,Federico Fernandez,ARG,male,1989-10-17,1.91,88.0,handball,0,0,0 -429655510,Federico Gil,ARG,male,1988-04-29,1.75,78.0,shooting,0,0,0 -959504694,Federico Grabich,ARG,male,1990-03-26,1.93,92.0,aquatics,0,0,0 -589818101,Federico Pizarro,ARG,male,1986-09-07,1.83,84.0,handball,0,0,0 -51952214,Federico Turrini,ITA,male,1987-07-21,1.93,87.0,aquatics,0,0,0 -695896806,Federico Vanelli,ITA,male,1991-03-09,1.8,75.0,aquatics,0,0,0 -38463047,Federico Vieyra,ARG,male,1988-07-21,1.92,90.0,handball,0,0,0 -742848038,Fedor Vlasov,RUS,male,1984-03-28,1.79,93.0,shooting,0,0,0 -388453546,Fedrick Dacres,JAM,male,1994-02-28,1.91,104.0,athletics,0,0,0 -238428792,Fehaid Aldeehani,IOA,male,1966-10-11,1.76,95.0,shooting,1,0,0 -302682488,Fei Peng,CHN,male,1992-03-06,1.84,89.0,wrestling,0,0,0 -759792291,Feihong Pan,CHN,female,1989-07-17,1.73,57.0,rowing,0,0,1 -54244371,Feilian Mao,CHN,male,1993-07-30,1.85,74.0,aquatics,0,0,0 -600249643,Felice Chow,TTO,female,1977-06-15,1.75,70.0,rowing,0,0,0 -184330822,Felice Mueller,USA,female,1989-10-15,1.86,72.0,rowing,0,0,0 -426841600,Felipe AMARAL,BRA,male,1990-10-09,,,equestrian,0,0,0 -932918802,Felipe Aguilar,COL,male,1993-01-20,1.91,80.0,football,0,0,0 -715303809,Felipe Aguilar,CHI,male,1974-11-07,1.7,72.0,golf,0,0,0 -671103389,Felipe Almeida Wu,BRA,male,1992-06-11,1.69,69.0,shooting,0,1,0 -390089818,Felipe Anderson,BRA,male,1993-04-15,1.75,69.0,football,1,0,0 -854679340,Felipe Borges,BRA,male,1994-11-16,1.85,72.0,canoe,0,0,0 -959719489,Felipe Cardenas Morales,CHI,male,1991-07-22,1.83,75.0,rowing,0,0,0 -619195032,Felipe Carmo,BRA,male,1997-03-12,,,football,0,0,0 -279016707,Felipe Claro,BRA,male,1986-02-28,1.72,83.0,rugby sevens,0,0,0 -549441884,Felipe Franca,BRA,male,1987-05-14,1.85,95.0,aquatics,0,0,0 -476489532,Felipe Kitadai,BRA,male,1989-07-28,1.64,60.0,judo,0,0,0 -245089124,Felipe Nascimento,BRA,male,1993-07-05,1.72,68.0,modern pentathlon,0,0,0 -452820051,Felipe Perrone,BRA,male,1986-02-27,1.83,95.0,aquatics,0,0,0 -420641230,Felipe Reyes,ESP,male,1980-03-16,2.04,109.0,basketball,0,0,1 -518637481,Felipe Sancery,BRA,male,1994-05-27,1.82,90.0,rugby sevens,0,0,0 -921036132,Felipe Tapia,CHI,male,1995-04-25,1.76,70.0,aquatics,0,0,0 -581423407,Felipe da Costa E Silva,BRA,male,1984-08-08,1.96,103.0,aquatics,0,0,0 -709441023,Felisha Johnson,USA,female,1989-07-24,1.86,127.0,athletics,0,0,0 -556954247,Felistas Muzongondi,ZIM,female,1986-03-22,1.67,53.0,football,0,0,0 -773046456,Felix Auboeck,AUT,male,1996-12-19,1.98,85.0,aquatics,0,0,0 -576762169,Felix Denayer,BEL,male,1990-01-31,1.9,85.0,hockey,0,1,0 -52397385,Felix Drahotta,GER,male,1989-01-01,2.0,102.0,rowing,0,1,0 -303731329,Felix Vogg,SUI,male,1990-06-19,1.8,68.0,equestrian,0,0,0 -641453872,Felix Wimberger,GER,male,1990-02-28,1.9,92.0,rowing,0,0,0 -534846589,Femi Ogunode,QAT,male,1991-05-15,1.85,85.0,athletics,0,0,0 -13738320,Femke Heemskerk,NED,female,1987-09-21,1.8,68.0,aquatics,0,0,0 -474653253,Femke Pluim,NED,female,1994-05-10,1.8,61.0,athletics,0,0,0 -281630482,Femke Stoltenborg,NED,female,1991-07-30,1.89,82.0,volleyball,0,0,0 -679334702,Fen Li,SWE,female,1976-08-25,1.64,60.0,table tennis,0,0,0 -934739694,Feng Chen,SIN,male,1994-03-24,1.7,65.0,table tennis,0,0,0 -887907683,Feng Zhou,CHN,female,1993-09-12,1.75,71.0,wrestling,0,0,0 -481744691,Fengkai Yu,CHN,male,1995-03-13,1.93,,boxing,0,0,0 -991490353,Fengliu Zhang,CHN,female,1989-11-15,1.72,77.0,wrestling,0,0,1 -870522604,Fengyue Pang,CHN,female,1989-01-19,1.65,59.0,football,0,0,0 -65705163,Ferdinand Gerz,GER,male,1988-11-17,1.76,62.0,sailing,0,0,0 -256517204,Ferenc Szekszardi,AUS,male,1979-09-22,1.78,79.0,canoe,0,0,0 -451152705,Ferenc Szentirmai,UKR,male,1983-11-29,1.8,75.0,equestrian,0,0,0 -562337692,Fergus Kavanagh,AUS,male,1985-05-21,1.82,75.0,hockey,0,0,0 -794973951,Ferguson Cheruiyot Rotich,KEN,male,1989-11-30,1.85,74.0,athletics,0,0,0 -352965099,Ferhat Arican,TUR,male,1993-07-28,1.78,68.0,gymnastics,0,0,0 -596003773,Fernanda Decnop,BRA,female,1987-06-19,1.72,67.0,sailing,0,0,0 -828133435,Fernanda Ferreira,BRA,female,1985-01-25,1.63,58.0,rowing,0,0,0 -269045350,Fernanda Franca da Silva,BRA,female,1989-09-25,1.76,68.0,handball,0,0,0 -114303596,Fernanda Martins,BRA,female,1988-07-26,1.75,85.0,athletics,0,0,0 -529630572,Fernanda Oliveira,BRA,female,1980-12-19,1.61,54.0,sailing,0,0,0 -999389505,Fernanda Rodrigues,BRA,female,1986-05-10,1.81,75.0,volleyball,0,0,0 -649243319,Fernanda Russo,ARG,female,1999-10-02,1.66,60.0,shooting,0,0,0 -404382736,Fernando,POR,male,1997-03-14,1.82,75.0,football,0,0,0 -813873984,Fernando Alarza,ESP,male,1991-03-23,1.78,67.0,triathlon,0,0,0 -52514011,Fernando Borello,ARG,male,1980-02-12,1.88,92.0,shooting,0,0,0 -288552617,Fernando Carro,ESP,male,1992-04-01,1.7,60.0,athletics,0,0,0 -175585720,Fernando Daniel Martinez,ARG,male,1991-07-18,1.65,,boxing,0,0,0 -713904003,Fernando Dayan Jorge,CUB,male,1998-12-03,1.73,70.0,canoe,0,0,0 -812666692,Fernando Echavarri Erasun,ESP,male,1972-08-13,1.8,76.0,sailing,0,0,0 -611572399,Fernando Garcia,ARG,male,1981-08-31,1.9,91.0,handball,0,0,0 -392897095,Fernando Gaviria Rendon,COL,male,1994-08-19,1.8,70.0,cycling,0,0,0 -724928421,Fernando Luna,ARG,male,1990-05-12,1.82,80.0,rugby sevens,0,0,0 -976575378,Fernando Pimenta,POR,male,1989-08-13,1.78,81.0,canoe,0,0,0 -201491381,Fernando Prass,BRA,male,1978-07-09,,,football,0,0,0 -344465413,Fernando Salas Manguis,ECU,male,1988-02-10,1.86,163.0,weightlifting,0,0,0 -427314005,Fernando Saraiva Reis,BRA,male,1990-03-10,1.85,155.0,weightlifting,0,0,0 -108222132,Fernando Scavasin,BRA,male,1984-11-24,1.84,80.0,fencing,0,0,0 -559608161,Ferry Weertman,NED,male,1992-06-27,1.89,86.0,aquatics,1,0,0 -282237207,Feyisa Lilesa,ETH,male,1990-02-01,1.75,67.0,athletics,0,1,0 -397905004,Fidel Antonio Vargas,CUB,male,1992-07-28,1.86,91.0,canoe,0,0,0 -263607639,Fie Udby Erichsen,DEN,female,1985-04-23,1.84,79.0,rowing,0,0,0 -990339292,Filip Dvorak,CZE,male,1988-07-30,1.89,89.0,canoe,0,0,0 -198261943,Filip Filipovic,SRB,male,1987-05-01,1.96,101.0,aquatics,1,0,0 -95290064,Filip Grgic,CRO,male,1989-10-25,1.73,70.0,taekwondo,0,0,0 -155085294,Filip Hrgovic,CRO,male,1992-06-04,1.97,,boxing,0,0,1 -797627457,Filip Ingebrigtsen,NOR,male,1993-04-20,,,athletics,0,0,0 -838040702,Filip KLIKOVAC,MNE,male,1989-02-07,1.9,118.0,aquatics,0,0,0 -296668459,Filip Kruslin,CRO,male,1989-03-18,1.99,93.0,basketball,0,0,0 -591154202,Filip Mihaljevic,CRO,male,1994-07-31,2.01,114.0,athletics,0,0,0 -426939907,Filip Nepejchal,CZE,male,1999-07-08,1.77,70.0,shooting,0,0,0 -818684530,Filip Svab,CZE,male,1983-04-28,1.73,78.0,canoe,0,0,0 -607425902,Filip Ude,CRO,male,1986-06-03,1.7,68.0,gymnastics,0,0,0 -789252320,Filip Wypych,POL,male,1991-04-20,1.83,75.0,aquatics,0,0,0 -877016251,Filip Zaborowski,POL,male,1994-07-25,1.88,77.0,aquatics,0,0,0 -351078300,Filipa Martins,POR,female,1996-01-09,1.63,55.0,gymnastics,0,0,0 -52190306,Filipe Baravilala,FIJ,male,1994-11-25,1.7,72.0,football,0,0,0 -760757270,Filippa Idehn,SWE,female,1990-08-15,1.83,80.0,handball,0,0,0 -14229029,Filippo Ganna,ITA,male,1996-07-25,1.95,75.0,cycling,0,0,0 -70452508,Filippo Lanza,ITA,male,1991-03-03,1.98,98.0,volleyball,0,1,0 -659248254,Filippo Magnini,ITA,male,1982-02-02,1.87,80.0,aquatics,0,0,0 -773729376,Finn Lemke,GER,male,1992-04-30,2.1,115.0,handball,0,0,1 -613119800,Finn Lynch,IRL,male,1996-04-23,1.82,82.0,sailing,0,0,0 -562480751,Fiona Albert,AUS,female,1990-12-12,1.75,75.0,rowing,0,0,0 -62874382,Fiona Bigwood,GBR,female,1976-04-24,1.73,75.0,equestrian,0,1,0 -571267730,Fiona Doyle,IRL,female,1991-10-04,1.72,63.0,aquatics,0,0,0 -239478517,Fiona Pennie,GBR,female,1982-11-09,1.69,70.0,canoe,0,0,0 -263535671,Fionnuala McCormack,IRL,female,1984-09-24,1.59,46.0,athletics,0,0,0 -858638156,Fiorella Francesca Cueva Uribe,PER,female,1998-02-04,1.5,48.0,weightlifting,0,0,0 -432731417,Fitzroy Dunkley,JAM,male,1993-05-20,1.96,80.0,athletics,0,1,0 -933661571,Flavia Oliveira,BRA,female,1981-10-27,1.56,46.0,cycling,0,0,0 -777180519,Flavia Saraiva,BRA,female,1999-09-30,1.33,31.0,gymnastics,0,0,0 -3922992,Flavia Tartaglini,ITA,female,1985-02-02,1.71,59.0,sailing,0,0,0 -545887341,Flavia de Lima,BRA,female,1993-07-01,1.76,65.0,athletics,0,0,0 -166844486,Flings Owusu-Agyapong,GHA,female,1988-10-16,,,athletics,0,0,0 -8505611,Flor Ruiz,COL,female,1991-01-29,1.72,59.0,athletics,0,0,0 -692948530,Flora Duffy,BER,female,1987-09-30,1.63,57.0,triathlon,0,0,0 -798849737,Flora Molnar,HUN,female,1998-03-02,1.75,65.0,aquatics,0,0,0 -191528927,Florence Allan,CAY,female,1998-05-26,1.68,57.0,sailing,0,0,0 -54068929,Florencia Habif,ARG,female,1993-08-22,1.65,55.0,hockey,0,0,0 -724902915,Florencia Natasha Busquets Reyes,ARG,female,1989-06-27,1.92,68.0,volleyball,0,0,0 -352775267,Florent Caelen,BEL,male,1989-03-01,1.75,54.0,athletics,0,0,0 -28413973,Florent Manaudou,FRA,male,1990-11-12,1.99,99.0,aquatics,0,2,0 -838021254,Florent Pietrus,FRA,male,1981-01-19,2.01,103.0,basketball,0,0,0 -396808426,Florent Van Aubel,BEL,male,1991-10-25,1.78,73.0,hockey,0,1,0 -686164081,Floria Guei,FRA,female,1990-05-02,1.66,53.0,athletics,0,0,0 -819262216,Florian Carvalho,FRA,male,1989-03-09,1.83,70.0,athletics,0,0,0 -725121470,Florian Floto,GER,male,1988-04-12,1.88,105.0,archery,0,0,0 -112934359,Florian Fuchs,GER,male,1991-11-10,1.85,74.0,hockey,0,0,1 -479481012,Florian Orth,GER,male,1989-07-24,1.81,63.0,athletics,0,0,0 -399561932,Florian Reichstaedter,AUT,male,1980-07-03,1.8,71.0,sailing,0,0,0 -950445859,Florian Skilang Temengil,PLW,male,1986-11-04,1.53,125.0,wrestling,0,0,0 -526727141,Florian Vogel,GER,male,1994-09-02,1.8,70.0,aquatics,0,0,0 -628381035,Florian Wellbrock,GER,male,1997-08-19,1.85,70.0,aquatics,0,0,0 -463142259,Floriane Gnafoua,FRA,female,1996-01-30,1.58,60.0,athletics,0,0,0 -287019022,Florin Mergea,ROU,male,1985-01-26,1.82,79.0,tennis,0,1,0 -765345310,Florina Chintoan,ROU,female,1985-12-06,1.78,67.0,handball,0,0,0 -929035723,Florina Pierdevara,ROU,female,1990-03-29,1.72,53.0,athletics,0,0,0 -605847359,Florina-Sorina Hulpan,ROU,female,1997-03-07,1.58,68.0,weightlifting,0,0,0 -429153076,Folau Niua,USA,male,1985-01-27,1.83,88.0,rugby sevens,0,0,0 -241899445,Foluke Akinradewo,USA,female,1987-10-05,1.91,79.0,volleyball,0,0,1 -312586740,Formiga,BRA,female,1978-03-03,1.62,57.0,football,0,0,0 -371445769,Fouad Elkaam,MAR,male,1988-05-27,1.88,70.0,athletics,0,0,0 -861278504,Francelina Cabral,TLS,female,1985-03-23,1.65,,cycling,0,0,0 -407138612,Francena McCorory,USA,female,1988-10-20,1.71,68.0,athletics,1,0,0 -513279514,Frances Houghton,GBR,female,1980-09-19,1.93,80.0,rowing,0,1,0 -23123206,Francesca Clapcich,ITA,female,1988-01-28,1.77,68.0,sailing,0,0,0 -278586505,Francesca Dallape',ITA,female,1986-06-24,1.64,58.0,aquatics,0,1,0 -421533477,Francesca Deidda,ITA,female,1992-01-16,1.64,52.0,aquatics,0,0,0 -870034029,Francesca Halsall,GBR,female,1990-04-12,1.71,64.0,aquatics,0,0,0 -535720666,Francesca Pattaro,ITA,female,1995-03-12,1.7,58.0,cycling,0,0,0 -136274448,Francesca Pomeri,ITA,female,1993-02-18,1.74,76.0,aquatics,0,1,0 -328463358,Francesco Fossi,ITA,male,1988-04-15,1.99,98.0,rowing,0,0,0 -720788958,Francesco Lamon,ITA,male,1994-02-05,1.73,60.0,cycling,0,0,0 -960345798,Francesco Marrai,ITA,male,1993-02-04,1.87,82.0,sailing,0,0,0 -564896831,Francesco di Fulvio,ITA,male,1993-08-15,1.9,88.0,aquatics,0,0,1 -162383071,Francie Turner,NZL,female,1992-04-06,1.59,50.0,rowing,0,0,0 -270335453,Franciela Krasucki,BRA,female,1988-04-26,1.68,63.0,athletics,0,0,0 -827083171,Francielle Rocha,BRA,female,1992-06-10,1.66,58.0,handball,0,0,0 -919748247,Francielly Pereira,BRA,female,1995-11-10,1.66,47.0,gymnastics,0,0,0 -129990979,Francine Niyonsaba,BDI,female,1993-05-05,1.66,60.0,athletics,0,1,0 -425631423,Francisca Crovetto Chadid,CHI,female,1990-04-27,1.6,54.0,shooting,0,0,0 -444157559,Francisca Laia,POR,female,1994-05-31,1.63,58.0,canoe,0,0,0 -576262342,Francisco Arcilla,ESP,male,1984-01-14,1.71,58.0,athletics,0,0,0 -300060819,Francisco Barretto Junior,BRA,male,1989-10-31,1.75,72.0,gymnastics,0,0,0 -955682483,Francisco Boza,PER,male,1964-09-19,1.8,96.0,shooting,0,0,0 -550687254,Francisco Cortes,ESP,male,1983-03-29,1.81,80.0,hockey,0,0,0 -478446820,Francisco Ducasse,CHI,male,1996-12-03,1.75,68.0,sailing,0,0,0 -896116528,Francisco Fernandez Miranda,ESP,male,1986-06-21,1.85,83.0,aquatics,0,0,0 -235643467,Francisco Garrigos,ESP,male,1994-12-09,1.6,60.0,judo,0,0,0 -679536913,Francisco Hernandez,ESP,male,1988-10-28,1.73,78.0,rugby sevens,0,0,0 -28575944,Francisco Limardo,VEN,male,1987-03-27,1.8,75.0,fencing,0,0,0 -246262074,Franck Elemba,CGO,male,1990-07-21,1.98,130.0,athletics,0,0,0 -76848119,Franck Lafitte,FRA,male,1989-03-08,2.03,94.0,volleyball,0,0,0 -101987317,Franck Solforosi,FRA,male,1984-09-10,1.84,70.0,rowing,0,0,1 -470889706,Francky Mbotto,CAF,male,1997-09-02,1.81,68.0,athletics,0,0,0 -62538812,Franco Donato,EGY,male,1981-09-08,1.65,64.0,shooting,0,0,0 -116672628,Franco Sabato,ARG,male,1990-01-13,1.86,81.0,rugby sevens,0,0,0 -547550475,Francois Heersbrandt,BEL,male,1989-12-12,1.79,76.0,aquatics,0,0,0 -794323734,Francois Hougaard,RSA,male,1988-04-06,1.79,93.0,rugby sevens,0,0,1 -410698560,Francois Pervis,FRA,male,1984-10-16,1.8,88.0,cycling,0,0,1 -81861765,Frank Aniello Molinaro,USA,male,1988-12-27,1.68,68.0,wrestling,0,0,0 -570873065,Frank Chamizo Marquez,ITA,male,1992-07-10,1.72,65.0,wrestling,0,0,1 -226825899,Frank Rijken,NED,male,1996-11-24,1.69,67.0,gymnastics,0,0,0 -715378085,Frank Schleck,LUX,male,1980-04-15,1.85,63.0,cycling,0,0,0 -266716820,Frank Staebler,GER,male,1989-06-27,1.74,74.0,wrestling,0,0,0 -226195365,Frank Thompson,USA,male,1988-03-11,1.81,79.0,shooting,0,0,0 -388800940,Frank de Wit,NED,male,1996-02-13,1.84,81.0,judo,0,0,0 -240687498,Franklin Gomez,PUR,male,1986-08-05,1.77,65.0,wrestling,0,0,0 -883176756,Frantz Dorsainvil,HAI,male,1991-07-02,1.7,59.0,aquatics,0,0,0 -324206155,Franz Anton,GER,male,1989-10-23,1.73,70.0,canoe,0,0,0 -887418902,Franzisca Hauke,GER,female,1989-09-10,1.72,63.0,hockey,0,0,1 -271428664,Franziska Hentke,GER,female,1989-06-04,1.72,62.0,aquatics,0,0,0 -688191947,Franziska Weber,GER,female,1989-05-24,1.76,70.0,canoe,0,2,0 -481935974,Freddie Woodward,GBR,male,1995-06-23,1.78,75.0,aquatics,0,0,0 -464256317,Freddy Figueroa,ECU,male,1994-11-26,1.92,,judo,0,0,0 -720635670,Freddy Mezones,VEN,male,1987-09-24,1.7,68.0,athletics,0,0,0 -676653591,Frederic Winters,CAN,male,1982-09-25,1.95,98.0,volleyball,0,0,0 -870194844,Frederick Bousquet,FRA,male,1981-04-08,1.88,84.0,aquatics,0,0,0 -82901717,Frederico Venancio,POR,male,1993-02-04,1.86,77.0,football,0,0,0 -491481795,Frederik Borsting,DEN,male,1995-02-13,1.84,78.0,football,0,0,0 -675256468,Frederik Madsen,DEN,male,1998-01-22,1.87,73.0,cycling,0,0,1 -760097709,Fredrik Bergstrom,SWE,male,1990-07-09,1.76,64.0,sailing,0,0,0 -276164244,Fredrik Petersen,SWE,male,1983-08-27,1.88,80.0,handball,0,0,0 -895184846,Frida Andersen,SWE,female,1990-06-09,1.64,67.0,equestrian,0,0,0 -732593711,Frida Tegstedt,SWE,female,1987-07-17,1.8,80.0,handball,0,0,0 -426661879,Fridolina Rolfo,SWE,female,1993-11-24,1.78,74.0,football,0,0,0 -156371008,Friederike Mohlenkamp,GER,female,1992-11-19,1.76,63.0,athletics,0,0,0 -438695638,Fu Yu,POR,female,1978-11-29,1.73,60.0,table tennis,0,0,0 -422530035,Furkan Sen,TUR,male,1994-02-08,1.75,74.0,athletics,0,0,0 -719720246,Fusheng Zhang,CHN,male,1993-09-20,1.84,68.0,shooting,0,0,0 -549844503,Gaber Mohamed,EGY,male,1985-09-01,1.8,105.0,weightlifting,0,0,0 -483544931,Gabor Balog,HUN,male,1990-09-02,1.86,83.0,aquatics,0,0,0 -450662056,Gabor Boczko,HUN,male,1977-04-01,1.92,90.0,fencing,0,0,1 -349248644,Gabor Faldum,HUN,male,1988-06-24,1.72,64.0,triathlon,0,0,0 -391312706,Gabor Jozsa,HUN,male,1983-08-18,1.7,59.0,athletics,0,0,0 -680668744,Gabor Kis,HUN,male,1982-09-27,1.94,115.0,aquatics,0,0,0 -14191210,Gabriel Barbosa,BRA,male,1996-08-30,1.76,68.0,football,1,0,0 -662078869,Gabriel Borges,BRA,male,1992-02-24,1.8,73.0,sailing,0,0,0 -630061946,Gabriel Deck,ARG,male,1995-02-08,1.97,107.0,basketball,0,0,0 -72582764,Gabriel Ho-Garcia,CAN,male,1993-05-19,1.7,70.0,hockey,0,0,0 -250938129,Gabriel Jesus,BRA,male,1997-04-03,1.75,68.0,football,1,0,0 -590308057,Gabriel Maestre,VEN,male,1986-09-22,1.79,,boxing,0,0,0 -948998710,Gabriel Mvumvure,ZIM,male,1988-02-23,1.77,70.0,athletics,0,0,0 -243636258,Gabriel Santos,BRA,male,1996-05-04,1.84,83.0,aquatics,0,0,0 -563040295,Gabriel Sincraian,ROU,male,1988-12-21,1.74,84.0,weightlifting,0,0,1 -836852876,Gabriela Aguirre,ARG,female,1986-02-19,1.64,58.0,hockey,0,0,0 -472170307,Gabriela Bayardo,MEX,female,1994-02-18,1.68,73.0,archery,0,0,0 -297118288,Gabriela Braga Guimaraes,BRA,female,1994-05-19,1.76,59.0,volleyball,0,0,0 -848116325,Gabriela Dabrowski,CAN,female,1992-04-01,1.8,84.0,tennis,0,0,0 -930649410,Gabriela Mantellato,BRA,female,1991-10-28,1.75,76.0,aquatics,0,0,0 -556512285,Gabriela Mosqueira,PAR,female,1990-04-05,1.63,60.0,rowing,0,0,0 -563204393,Gabriela Perianu,ROU,female,1994-06-20,1.87,80.0,handball,0,0,0 -101409692,Gabriela Petrova,BUL,female,1992-06-29,1.67,58.0,athletics,0,0,0 -901521061,Gabriela Stafford,CAN,female,1995-09-13,1.63,53.0,athletics,0,0,0 -951509811,Gabriela Stoeva,BUL,female,1994-07-15,1.69,63.0,badminton,0,0,0 -188364932,Gabriele Detti,ITA,male,1994-08-29,1.84,79.0,aquatics,0,0,2 -208944185,Gabriele Rossetti,ITA,male,1995-03-07,1.76,65.0,shooting,1,0,0 -697532444,Gabriella Doueihy,LIB,female,1999-04-30,,,aquatics,0,0,0 -99788705,Gabriella Szabo,HUN,female,1986-08-14,1.7,62.0,canoe,2,0,0 -754381040,Gabriella Szucs,HUN,female,1988-03-07,1.83,74.0,aquatics,0,0,0 -787338951,Gabriella Szucs,ROU,female,1984-08-31,1.84,78.0,handball,0,0,0 -463517978,Gabrielle Adcock,GBR,female,1990-09-30,1.67,,badminton,0,0,0 -862130996,Gabrielle Carle,CAN,female,1998-10-12,1.67,55.0,football,0,0,0 -995739090,Gabrielle Douglas,USA,female,1995-12-31,1.5,49.0,gymnastics,1,0,0 -596713145,Gabrielle Moraes da Silva,BRA,female,1997-03-04,1.64,50.0,gymnastics,0,0,0 -509202637,Gabrielle Nance,AUS,female,1994-07-29,1.69,55.0,hockey,0,0,0 -993305509,Gabrielle Roncatto,BRA,female,1998-07-19,1.65,60.0,aquatics,0,0,0 -243788789,Gaby Diana Ahrens,NAM,female,1981-03-15,1.69,60.0,shooting,0,0,0 -589149765,Gaby Lopez,MEX,female,1993-11-09,1.66,58.0,golf,0,0,0 -116766804,Gael Monfils,FRA,male,1986-09-01,1.93,84.0,tennis,0,0,0 -902039181,Gael Suter,SUI,male,1992-03-23,1.76,70.0,cycling,0,0,0 -329610435,Gaelle Mys,BEL,female,1991-11-16,1.44,57.0,gymnastics,0,0,0 -767593736,Gaelle Skrela,FRA,female,1983-01-24,1.77,70.0,basketball,0,0,0 -941626270,Gaelle Verlaine Nayo Ketchanke,FRA,female,1988-04-20,1.74,74.0,weightlifting,0,0,0 -341647204,Gagan Narang,IND,male,1983-05-06,1.8,115.0,shooting,0,0,0 -629247598,Gakuto Notsuda,JPN,male,1994-06-06,1.75,70.0,football,0,0,0 -324536211,Gal Nevo,ISR,male,1987-06-29,1.8,80.0,aquatics,0,0,0 -866485713,Galal Yafai,GBR,male,1992-12-11,1.58,,boxing,0,0,0 -106376682,Galen Rupp,USA,male,1986-05-08,1.81,61.0,athletics,0,0,1 -711261984,Galia Dvorak,ESP,female,1988-04-01,,,table tennis,0,0,0 -915389920,Galina Voskoboeva,KAZ,female,1984-12-18,1.83,67.0,tennis,0,0,0 -802472247,Galymzhan Usserbayev,KAZ,male,1988-12-19,1.73,74.0,wrestling,0,0,0 -272456931,Galyna Obleshchuk,UKR,female,1989-02-23,1.77,94.0,athletics,0,0,0 -781481729,Gan-Erdene Gankhuyag,MGL,male,1993-03-29,1.62,,boxing,0,0,0 -897822303,Ganapathi Krishnan,IND,male,1989-06-29,,,athletics,0,0,0 -343445816,Ganna Krasnoshlyk,UKR,female,1996-03-06,1.71,59.0,aquatics,0,0,0 -995606281,Ganna Rizatdinova,UKR,female,1993-07-16,1.73,47.0,gymnastics,0,0,1 -656968895,Ganna Solovei,UKR,female,1992-01-31,1.67,56.0,cycling,0,0,0 -526876218,Gantugs Jantsan,MGL,male,1972-04-12,1.75,73.0,archery,0,0,0 -298278410,Gantulga Dambadarjaa,MGL,male,1989-02-03,1.7,58.0,athletics,0,0,0 -538703926,Gaone Leaname Maotoanong,BOT,male,1991-05-07,,,athletics,0,0,0 -745281987,Garbine Muguruza,ESP,female,1993-10-08,1.84,72.0,tennis,0,0,0 -892862270,Garnik Mnatsakanyan,ARM,male,1989-11-07,1.61,57.0,wrestling,0,0,0 -622386960,Garrett Bender,USA,male,1991-12-02,1.94,104.0,rugby sevens,0,0,0 -800177354,Gary O'Donovan,IRL,male,1992-12-30,1.72,70.0,rowing,0,1,0 -249661772,Gary Russell,USA,male,1996-06-14,1.73,,boxing,0,0,0 -830687385,Gaspar Csere,HUN,male,1991-08-12,1.71,55.0,athletics,0,0,0 -12459891,Gastao Elias,POR,male,1990-11-24,1.82,75.0,tennis,0,0,0 -456762500,Gaston Revol,ARG,male,1986-11-26,1.7,76.0,rugby sevens,0,0,0 -32924852,Gaurika Singh,NEP,female,2002-11-26,1.55,45.0,aquatics,0,0,0 -996740873,Gauthier Boccard,BEL,male,1991-08-26,1.86,79.0,hockey,0,1,0 -918357805,Gauthier Grumier,FRA,male,1984-05-29,1.91,83.0,fencing,1,0,1 -694977579,Gauthier Klauss,FRA,male,1987-12-17,1.71,65.0,canoe,0,0,1 -956777430,Gavin Ben Sutherland,ZIM,male,1979-06-26,1.86,78.0,archery,0,0,0 -811772770,Gavin Kyle Green,MAS,male,1993-12-28,1.87,91.0,golf,0,0,0 -213614173,Gavin Mogopa,BOT,male,1996-04-02,1.79,60.0,judo,0,0,0 -71978236,Gavin Schmitt,CAN,male,1986-01-27,2.08,106.0,volleyball,0,0,0 -620621814,Gayane Chiloyan,ARM,female,2000-09-27,1.64,54.0,athletics,0,0,0 -91833372,Gayle Broughton,NZL,female,1996-06-05,1.74,70.0,rugby sevens,0,1,0 -608678057,Gbahi Gwladys Sakoa,CIV,female,1992-12-03,1.71,64.0,fencing,0,0,0 -248516313,Geisa Aparecida Coutinho,BRA,female,1980-06-01,1.61,55.0,athletics,0,0,0 -117544722,Geisa Arcanjo,BRA,female,1991-09-19,1.6,60.0,athletics,0,0,0 -286940521,Gelena Topilina,RUS,female,1994-01-11,1.75,56.0,aquatics,1,0,0 -809586183,Gelete Burka,ETH,female,1986-01-23,1.6,43.0,athletics,0,0,0 -12235602,Gelly Skarlatou,GRE,female,1976-01-28,1.65,57.0,sailing,0,0,0 -671357684,Gemma Acheampong,GHA,female,1993-02-13,1.63,54.0,athletics,0,0,0 -566383744,Gemma Beadsworth,AUS,female,1987-07-17,1.8,78.0,aquatics,0,0,0 -141739381,Gemma Etheridge,AUS,female,1986-12-01,1.69,66.0,rugby sevens,1,0,0 -893302726,Gemma Flynn,NZL,female,1990-05-02,1.68,60.0,hockey,0,0,0 -528547946,Gemma Jones,NZL,female,1994-01-07,1.65,59.0,sailing,0,0,0 -836429010,Gemma Mengual,ESP,female,1977-04-12,1.73,56.0,aquatics,0,0,0 -447374604,Gemma Tattersall,GBR,female,1985-03-12,1.65,69.0,equestrian,0,0,0 -533972369,Gen Li,CHN,male,1988-08-15,1.96,110.0,basketball,0,0,0 -974257669,Genevieve Behrent,NZL,female,1990-09-25,1.83,73.0,rowing,0,1,0 -966530207,Genevieve Horton,AUS,female,1995-01-06,1.79,72.0,rowing,0,0,0 -316560437,Genevieve Lacaze,AUS,female,1989-08-04,1.64,53.0,athletics,0,0,0 -564185674,Genevieve Lalonde,CAN,female,1991-09-05,1.7,58.0,athletics,0,0,0 -476981341,Genevieve Orton,CAN,female,1984-05-13,1.7,62.0,canoe,0,0,0 -682915910,Genevra Stone,USA,female,1985-07-11,1.83,71.0,rowing,0,1,0 -586682679,Geno Petriashvili,GEO,male,1994-04-01,1.98,125.0,wrestling,0,0,1 -557935891,Genzebe Dibaba,ETH,female,1991-02-08,1.68,52.0,athletics,0,1,0 -289855181,Geoffrey Butler,CAY,male,1995-12-07,1.88,84.0,aquatics,0,0,0 -211177901,Geoffrey Cheah,HKG,male,1990-11-10,1.85,77.0,aquatics,0,0,0 -242198158,Geoffrey Kipsang Kamworor,KEN,male,1992-11-22,1.72,58.0,athletics,0,0,0 -962442780,Georcy Thiffeault Picard,CAN,female,1991-02-08,1.76,78.0,archery,0,0,0 -814234541,Georg Preidler,AUT,male,1990-06-17,1.89,70.0,cycling,0,0,0 -378090753,George Bennett,NZL,male,1990-04-07,1.81,58.0,cycling,0,0,0 -373349430,George Bovell Iii,TTO,male,1983-07-18,1.96,74.0,aquatics,0,0,0 -853409022,George Bridgewater,NZL,male,1983-01-18,2.0,97.0,rowing,0,0,0 -529194033,George Ford,AUS,male,1993-02-24,1.92,95.0,aquatics,0,0,0 -962074065,George Nash,GBR,male,1989-10-02,1.95,96.0,rowing,1,0,0 -146249662,George Palamariu,ROU,male,1991-03-17,1.97,106.0,rowing,0,0,0 -422133225,George Pinner,GBR,male,1987-01-18,1.92,92.0,hockey,0,0,0 -94884308,Georgi Bozhilov,BUL,male,1989-04-09,2.01,107.0,rowing,0,0,0 -867155948,Georgi Ivanov,BUL,male,1985-03-13,1.88,138.0,athletics,0,0,0 -872775850,Georgi Ivanov Ivanov,BUL,male,1989-11-11,1.7,78.0,wrestling,0,0,0 -513877606,Georgi Tsonov,BUL,male,1993-05-02,1.76,70.0,athletics,0,0,0 -974930725,Georgia Baker,AUS,female,1994-09-21,1.79,66.0,cycling,0,0,0 -730944195,Georgia Bohl,AUS,female,1997-04-11,1.67,54.0,aquatics,0,0,0 -55412300,Georgia Coates,GBR,female,1999-02-19,1.74,63.0,aquatics,0,0,0 -129677889,Georgia Davies,GBR,female,1990-10-11,1.75,64.0,aquatics,0,0,0 -661775435,Georgia Nanscawen,AUS,female,1992-05-27,1.6,59.0,hockey,0,0,0 -405138190,Georgia Simmerling,CAN,female,1989-03-11,1.72,67.0,cycling,0,0,1 -304591948,Georgia Williams,NZL,female,1993-08-25,1.7,60.0,cycling,0,0,0 -289207914,Georgii Ketoev,ARM,male,1985-11-19,1.9,100.0,wrestling,0,0,0 -932124601,Georgii Zantaraia,UKR,male,1987-10-21,1.71,66.0,judo,0,0,0 -827810713,Georgina Klug,ARG,female,1984-06-11,1.72,64.0,volleyball,0,0,0 -13264832,Georgina Morgan,AUS,female,1993-05-15,1.79,70.0,hockey,0,0,0 -218184673,Georgina Oliva,ESP,female,1990-07-18,1.6,53.0,hockey,0,0,0 -308752334,Georgina Parker,AUS,female,1989-04-26,1.59,68.0,hockey,0,0,0 -325691946,Georgina Pota,HUN,female,1985-01-13,1.73,63.0,table tennis,0,0,0 -559477577,Georgina Twigg,GBR,female,1990-11-21,1.6,62.0,hockey,1,0,0 -87130611,Georgios Dervisis,GRE,male,1994-10-30,1.95,92.0,aquatics,0,0,0 -749506704,Georgios Tziallas,GRE,male,1987-07-14,1.89,91.0,rowing,0,0,0 -217536800,Georgiy Sheiko,KAZ,male,1989-08-24,1.84,68.0,athletics,0,0,0 -679229547,Geraint Thomas,GBR,male,1986-05-25,1.83,70.0,cycling,0,0,0 -895148675,Gerald Giraldo,COL,male,1989-03-21,1.75,60.0,athletics,0,0,0 -473977731,Gerald Phiri,ZAM,male,1988-10-06,1.78,79.0,athletics,0,0,0 -301656142,Gerardo Menendez Mieres,ESP,male,1976-09-11,1.85,80.0,equestrian,0,0,0 -913327626,Gerasim Kochnev,UZB,male,1987-03-20,1.78,85.0,canoe,0,0,0 -426364755,Gerco Schroder,NED,male,1978-07-28,1.65,72.0,equestrian,0,0,0 -807429022,Gerd Kanter,EST,male,1979-05-06,1.96,125.0,athletics,0,0,0 -859175581,Gerek Meinhardt,USA,male,1990-07-27,1.83,79.0,fencing,0,0,1 -145487888,Gergely Gyurta,HUN,male,1991-09-12,1.75,70.0,aquatics,0,0,0 -293724411,Gergo Kis,HUN,male,1988-01-19,1.83,80.0,aquatics,0,0,0 -996218071,Gergo Zalanki,HUN,male,1995-02-26,1.92,85.0,aquatics,0,0,0 -60549448,Gerina Piller,USA,female,1985-03-29,1.71,64.0,golf,0,0,0 -285564872,Germain Chardin,FRA,male,1983-05-15,1.95,90.0,rowing,0,0,0 -140439112,German Chiaraviglio,ARG,male,1987-04-16,1.95,84.0,athletics,0,0,0 -588470797,German Lauro,ARG,male,1984-04-02,1.86,127.0,athletics,0,0,0 -995047699,German Sanchez,MEX,male,1992-06-24,1.65,60.0,aquatics,0,1,0 -151532302,German Schulz,ARG,male,1994-02-05,1.88,95.0,rugby sevens,0,0,0 -482136504,Gernot Rumpler,AUT,male,1994-02-21,1.89,86.0,shooting,0,0,0 -423925127,Geronimo Rulli,ARG,male,1992-05-20,1.75,74.0,football,0,0,0 -377536681,Gesa Felicitas Krause,GER,female,1992-08-03,1.67,51.0,athletics,0,0,0 -477754355,Geumyoung Jang,KOR,female,1980-05-04,1.63,51.0,shooting,0,0,0 -947906397,Gevrise Emane,FRA,female,1982-07-27,1.62,70.0,judo,0,0,0 -882847570,Geza Imre,HUN,male,1974-12-23,1.84,75.0,fencing,0,1,1 -962431612,Ghader Mizbani Iranagh,IRI,male,1975-12-06,1.75,67.0,cycling,0,0,0 -331492734,Ghasem Gholamreza Rezaei,IRI,male,1985-08-18,1.85,100.0,wrestling,0,0,1 -827807718,Ghirmay Ghebreslassie,ERI,male,1995-11-14,,,athletics,0,0,0 -173887489,Ghislain Perrier,BRA,male,1987-05-17,1.79,75.0,fencing,0,0,0 -195640295,Ghislaine Landry,CAN,female,1988-04-27,1.63,65.0,rugby sevens,0,0,1 -545908968,Ghofran Ahmed,EGY,male,1992-09-30,1.92,68.0,taekwondo,0,0,0 -76147159,Ghofrane Mohamed,SYR,female,1989-06-06,1.68,60.0,athletics,0,0,0 -49318551,Ghulam Mustafa Bashir,PAK,male,1987-07-04,1.8,74.0,shooting,0,0,0 -810499490,Gi Jung Kim,KOR,male,1990-08-14,1.79,83.0,badminton,0,0,0 -966812060,Gianina Beleaga,ROU,female,1995-05-21,1.78,57.0,rowing,0,0,0 -425384574,Gideoni Monteiro,BRA,male,1989-09-02,1.8,77.0,cycling,0,0,0 -442076859,Giedrius Titenis,LTU,male,1989-07-21,1.93,95.0,aquatics,0,0,0 -826096399,Gift Motupa,RSA,male,1994-09-23,1.76,76.0,football,0,0,0 -684871850,Gil Cohen,ISR,female,1992-07-07,1.7,62.0,sailing,0,0,0 -802471466,Gil Roberts,USA,male,1989-03-15,1.88,81.0,athletics,1,0,0 -515485007,Gilda Casanova,CUB,female,1995-12-19,1.65,54.0,athletics,0,0,0 -63834716,Gilda Maria de Oliveira,BRA,female,1983-08-06,1.69,69.0,wrestling,0,0,0 -48092287,Giles Scott,GBR,male,1987-06-23,1.97,95.0,sailing,1,0,0 -275098717,Gili Cohen,ISR,female,1991-06-19,1.6,52.0,judo,0,0,0 -462314692,Gilles Muller,LUX,male,1983-05-09,1.93,90.0,tennis,0,0,0 -991427076,Gilles Simon,FRA,male,1984-12-27,1.83,70.0,tennis,0,0,0 -156004551,Gillian Sanders,RSA,female,1981-10-15,1.68,53.0,triathlon,0,0,0 -266372600,Gillies Kaka,NZL,male,1990-05-28,1.85,90.0,rugby sevens,0,0,0 -802381327,Gilvan Bitencourt Ribeiro,BRA,male,1989-05-08,1.8,83.0,canoe,0,0,0 -784102100,Gina Bass,GAM,female,1995-05-03,,,athletics,0,0,0 -326826084,Gina Luckenkemper,GER,female,1996-11-21,1.7,56.0,athletics,0,0,0 -64983596,Ginga Munetomo,JPN,male,1994-04-07,1.65,55.0,gymnastics,0,0,0 -436375736,Gintare Scheidt,LTU,female,1982-11-12,1.72,63.0,sailing,0,0,0 -859779804,Giordan Harris,MHL,male,1993-04-19,1.85,99.0,aquatics,0,0,0 -663457782,Giordano Benedetti,ITA,male,1989-05-22,1.89,68.0,athletics,0,0,0 -836669361,Giorgi Chkheidze,GEO,male,1997-10-30,1.78,105.0,weightlifting,0,0,0 -976881370,Giorgia Bordignon,ITA,female,1987-05-24,1.61,63.0,weightlifting,0,0,0 -980482855,Giorgia Bronzini,ITA,female,1983-08-03,1.6,54.0,cycling,0,0,0 -298556273,Giorgio Avola,ITA,male,1989-05-08,1.78,72.0,fencing,0,0,0 -450155404,Giorgio Poggi,ITA,male,1981-08-26,1.86,100.0,sailing,0,0,0 -590407470,Giovana Prado Pass,BRA,female,1998-03-30,1.67,59.0,equestrian,0,0,0 -42773874,Giovani Lo Celso,ARG,male,1996-04-09,1.69,72.0,football,0,0,0 -979844393,Giovanna Pedroso,BRA,female,1998-10-15,1.62,57.0,aquatics,0,0,0 -276844108,Giovanni Abagnale,ITA,male,1995-01-11,1.98,90.0,rowing,0,0,1 -870019483,Giovanni Battista Bardis,FRA,male,1987-05-21,1.77,85.0,weightlifting,0,0,0 -135611970,Giovanni Cernogoraz,CRO,male,1982-12-27,1.86,90.0,shooting,0,0,0 -890980773,Giovanni Codrington,NED,male,1988-07-17,1.77,84.0,athletics,0,0,0 -117303436,Giovanni Pellielo,ITA,male,1970-01-11,1.73,96.0,shooting,0,1,0 -453426505,Giovanni Simeone,ARG,male,1995-07-05,1.68,76.0,football,0,0,0 -611012468,Giovanni Tocci,ITA,male,1994-08-31,1.75,68.0,aquatics,0,0,0 -20576077,Giovanni de Gennaro,ITA,male,1992-07-21,1.85,80.0,canoe,0,0,0 -258007826,Giselle Ansley,GBR,female,1992-03-31,1.76,73.0,hockey,1,0,0 -994296683,Githa Michiels,BEL,female,1983-03-28,1.66,60.0,cycling,0,0,0 -69404061,Giulia Conti,ITA,female,1985-11-04,1.73,62.0,sailing,0,0,0 -820456660,Giulia Emmolo,ITA,female,1991-10-16,1.71,67.0,aquatics,0,1,0 -435542404,Giulia Gorlero,ITA,female,1990-09-26,1.8,73.0,aquatics,0,1,0 -335874891,Giulia Molinaro,ITA,female,1990-07-23,1.78,72.0,golf,0,0,0 -358923417,Giulia Sergas,ITA,female,1979-12-26,1.77,64.0,golf,0,0,0 -475800155,Giulia Steingruber,SUI,female,1994-03-24,1.6,56.0,gymnastics,0,0,1 -446145894,Giulio Dressino,ITA,male,1992-11-05,1.83,75.0,canoe,0,0,0 -231324548,Giuseppe Giordano,ITA,male,1974-07-16,1.7,73.0,shooting,0,0,0 -825126068,Giuseppe Vicino,ITA,male,1993-02-26,1.95,95.0,rowing,0,0,1 -453710519,Gladys Tejeda,PER,female,1985-09-30,1.56,47.0,athletics,0,0,0 -261518671,Glencora McGhie,AUS,female,1988-08-08,1.78,68.0,aquatics,0,0,0 -820466247,Glenn Kable,FIJ,male,1963-05-04,1.86,92.0,shooting,0,0,0 -344080952,Glenn O'Shea,AUS,male,1989-06-14,1.8,76.0,cycling,0,0,0 -801742919,Glenn Ochal,USA,male,1986-03-01,1.94,95.0,rowing,0,0,0 -36388952,Glenn Schuurman,NED,male,1991-04-16,1.83,79.0,hockey,0,0,0 -679206973,Glenn Snyders,NZL,male,1987-04-07,1.79,83.0,aquatics,0,0,0 -585626028,Glenn Surgeloose,BEL,male,1989-09-04,1.82,80.0,aquatics,0,0,0 -914132578,Glenn Sutanto,INA,male,1989-11-07,1.83,74.0,aquatics,0,0,0 -355204683,Glenn Turner,AUS,male,1984-05-01,1.79,82.0,hockey,0,0,0 -482085423,Gloria Asumnu,NGR,female,1985-05-22,1.68,64.0,athletics,0,0,0 -366511914,Gloria Comerma,ESP,female,1987-04-18,1.68,64.0,hockey,0,0,0 -95564568,Gloria Hooper,ITA,female,1992-03-03,1.74,63.0,athletics,0,0,0 -848853741,Gnonsiane Niombla,FRA,female,1990-07-09,1.72,69.0,handball,0,1,0 -138570390,Godfrey Khotso Mokoena,RSA,male,1985-03-06,1.9,76.0,athletics,0,0,0 -56023329,Goitom Kifle,ERI,male,1993-12-03,,,athletics,0,0,0 -599927900,Gojko Pijetlovic,SRB,male,1983-08-07,1.94,92.0,aquatics,1,0,0 -142292684,Golan Pollack,ISR,male,1991-09-10,1.75,66.0,judo,0,0,0 -679226224,Golnoush Sebghatollahi,IRI,female,1990-12-20,1.58,61.0,shooting,0,0,0 -69505234,Gonzalo Carou,ARG,male,1979-08-15,1.9,100.0,handball,0,0,0 -854221966,Gonzalo Carreras,ARG,male,1989-10-26,1.86,88.0,canoe,0,0,0 -532947055,Gonzalo Echenique Saglietti,ESP,male,1990-04-27,1.9,94.0,aquatics,0,0,0 -124979010,Gonzalo Molina,ARG,male,1995-05-05,1.78,83.0,cycling,0,0,0 -67406936,Gonzalo Peillat,ARG,male,1992-08-12,1.77,82.0,hockey,1,0,0 -579541939,Gonzalo Raul Tellechea,ARG,male,1985-07-11,1.74,61.0,triathlon,0,0,0 -897428173,Gonzalo Ruiz de la Cruz,MEX,male,1988-04-28,1.86,87.0,volleyball,0,0,0 -607191429,Gor Minasyan,ARM,male,1994-10-25,1.8,144.0,weightlifting,0,1,0 -612779114,Goran Stojanovic,QAT,male,1977-02-24,1.91,90.0,handball,0,0,0 -667077682,Gorazd Skof,SLO,male,1977-07-11,1.88,90.0,handball,0,0,0 -908126279,Gordon Benson,GBR,male,1994-05-12,1.91,78.0,triathlon,0,0,0 -192247711,Gordon Johnston,CAN,male,1993-01-30,1.87,88.0,hockey,0,0,0 -329155440,Goretti Alejandra Zumaya Flores,MEX,female,1997-05-31,1.65,65.0,shooting,0,0,0 -607509598,Govert Viergever,NED,male,1989-07-29,1.84,85.0,rowing,0,0,0 -702595268,Grace Claxton,PUR,female,1993-08-19,,,athletics,0,0,0 -705783753,Grace Latz,USA,female,1988-02-21,1.83,79.0,rowing,0,0,0 -552672529,Grace Luczak,USA,female,1989-05-24,1.91,77.0,rowing,0,0,0 -313174514,Grace Prendergast,NZL,female,1992-06-30,1.83,73.0,rowing,0,0,0 -555289430,Grace Reid,GBR,female,1996-05-09,1.69,67.0,aquatics,0,0,0 -120616586,Grace Stewart,AUS,female,1997-04-28,1.75,68.0,hockey,0,0,0 -304397961,Grace Wanjiru Njue,KEN,female,1979-01-10,1.62,43.0,athletics,0,0,0 -537810856,Grace Zaadi Deuna,FRA,female,1993-07-07,1.71,66.0,handball,0,1,0 -893023802,Gracie Elvin,AUS,female,1988-10-31,1.75,65.0,cycling,0,0,0 -933428907,Graciele Herrmann,BRA,female,1992-01-01,1.8,64.0,aquatics,0,0,0 -639691475,Graciete Santana,BRA,female,1980-10-12,1.55,43.0,athletics,0,0,0 -792601678,Graeme Saunders,CAN,male,1990-07-19,1.78,75.0,sailing,0,0,0 -929889629,Graham DeLaet,CAN,male,1982-01-22,1.8,75.0,golf,0,0,0 -407795026,Graham Vigrass,CAN,male,1989-06-17,2.05,97.0,volleyball,0,0,0 -104640408,Grant Ferguson,GBR,male,1993-11-15,1.86,64.0,cycling,0,0,0 -636322182,Grant Irvine,AUS,male,1991-03-17,1.87,80.0,aquatics,0,0,0 -298928947,Grant Nel,AUS,male,1988-04-07,1.73,69.0,aquatics,0,0,0 -423041181,Greg Billington,USA,male,1989-05-30,1.76,65.0,triathlon,0,0,0 -267820041,Greg Patrick Broderick,IRL,male,1985-09-21,1.8,50.0,equestrian,0,0,0 -310167929,Greg Rutherford,GBR,male,1986-11-17,1.88,92.0,athletics,0,0,1 -503615176,Greg van Avermaet,BEL,male,1985-05-17,1.81,74.0,cycling,1,0,0 -615982348,Gregor Traber,GER,male,1992-12-02,1.9,80.0,athletics,0,0,0 -127715970,Gregorio Paltrinieri,ITA,male,1994-09-05,1.91,72.0,aquatics,1,0,0 -160584680,Gregory Bauge,FRA,male,1985-01-31,1.81,100.0,cycling,0,0,1 -517601975,Gregory Bourdy,FRA,male,1982-04-25,1.8,70.0,golf,0,0,0 -146969359,Gregory Echenique,VEN,male,1990-11-23,2.06,137.0,basketball,0,0,0 -266128648,Gregory Mallet,FRA,male,1984-03-21,1.96,84.0,aquatics,0,0,0 -389701340,Gregory Vargas,VEN,male,1986-02-18,1.82,90.0,basketball,0,0,0 -342622397,Gremlis Arvelo,VEN,female,1996-08-21,1.67,62.0,table tennis,0,0,0 -695131532,Greysia Polii,INA,female,1987-08-11,1.63,56.0,badminton,0,0,0 -282490475,Griedge Mbock Bathy,FRA,female,1995-02-26,1.72,64.0,football,0,0,0 -952560452,Grigor Dimitrov,BUL,male,1991-05-16,1.91,80.0,tennis,0,0,0 -457130620,Grigori Minaskin,EST,male,1991-02-01,1.78,100.0,judo,0,0,0 -383336831,Grigory Tarasevich,RUS,male,1995-08-01,1.91,75.0,aquatics,0,0,0 -96493170,Grischa Proemel,GER,male,1995-01-09,1.82,78.0,football,0,1,0 -572471810,Griselda Khng,SIN,female,1991-07-31,1.55,60.0,sailing,0,0,0 -326722499,Grit Sadeiko,EST,female,1989-07-29,1.72,59.0,athletics,0,0,0 -96345357,Grzegorz Fijalek,POL,male,1987-05-11,1.85,99.0,volleyball,0,0,0 -491637727,Grzegorz Hedwig,POL,male,1988-07-17,1.79,82.0,canoe,0,0,0 -844475495,Grzegorz Lomacz,POL,male,1987-10-01,1.87,80.0,volleyball,0,0,0 -282268874,Guadalupe Lopez,COL,female,1988-01-12,1.65,58.0,rugby sevens,0,0,0 -466700626,Guan-Lin Yu,TPE,male,1993-11-29,1.71,58.0,archery,0,0,0 -85090026,Guangyuan Li,CHN,male,1997-02-27,1.87,81.0,aquatics,0,0,0 -613886806,Guanjie Johnathan Wong,MAS,male,1992-08-23,1.72,67.0,shooting,0,0,0 -78601659,Guannan Niu,CHN,female,1992-05-10,1.77,68.0,aquatics,0,0,0 -331829339,Gudaf Tsegay,ETH,female,1997-11-23,1.63,50.0,athletics,0,0,0 -576749129,Gudni Valur Gudnason,ISL,male,1995-10-11,1.99,120.0,athletics,0,0,0 -511096047,Gudrun Stock,GER,female,1995-05-23,1.68,62.0,cycling,0,0,0 -233933004,Guendalina Sartori,ITA,female,1988-08-08,1.69,90.0,archery,0,0,0 -100452924,Guham Cho,KOR,male,1992-07-30,1.78,100.0,judo,0,0,0 -220835497,Guido Pella,ARG,male,1990-05-17,1.83,80.0,tennis,0,0,0 -905148205,Guido Vianello,ITA,male,1994-05-09,1.98,,boxing,0,0,0 -405955663,Guilherme Giovannoni,BRA,male,1980-06-02,2.04,100.0,basketball,0,0,0 -196836126,Guilherme Guido,BRA,male,1987-02-12,1.94,90.0,aquatics,0,0,0 -256859725,Guilherme Melaragno,BRA,male,1993-08-09,1.84,88.0,fencing,0,0,0 -304528456,Guilherme Toldo,BRA,male,1992-09-01,1.76,70.0,fencing,0,0,0 -428363139,Guillaume Raineau,FRA,male,1986-06-29,1.87,71.0,rowing,0,0,1 -9637437,Guillermo Duran,ARG,male,1988-06-06,1.78,82.0,tennis,0,0,0 -107880382,Guillermo Molina Rios,ESP,male,1984-03-16,1.95,105.0,aquatics,0,0,0 -70220465,Gulbadam Babamuratova,TKM,female,1991-08-24,1.56,52.0,judo,0,0,0 -699962258,Gulnabat Kadyrova,TKM,female,1994-06-14,1.65,69.0,weightlifting,0,0,0 -192705392,Gulnaz Gubaydullina,RUS,female,1992-02-14,1.64,51.0,modern pentathlon,0,0,0 -15083082,Gulnoza Matniyazova,UZB,female,1994-08-10,1.68,70.0,judo,0,0,0 -126810270,Gulzhanat Zhanatbek,KAZ,female,1991-11-30,1.7,55.0,athletics,0,0,0 -696433108,Gundegmaa Otryad,MGL,female,1978-05-23,1.68,63.0,shooting,0,0,0 -504342645,Gunn-Rita Dahle Flesjaa,NOR,female,1973-02-10,,,cycling,0,0,0 -732208032,Gunnar Bentz,USA,male,1996-01-03,1.96,83.0,aquatics,1,0,0 -151055874,Gunta Latiseva-Cudare,LAT,female,1995-03-09,1.79,68.0,athletics,0,0,0 -970528741,Guojian Dong,CHN,male,1987-03-16,1.7,55.0,athletics,0,0,0 -849428562,Guor Marial,SSD,male,1984-04-15,1.8,60.0,athletics,0,0,0 -174463586,Guowei Zhang,CHN,male,1991-06-04,2.02,77.0,athletics,0,0,0 -695858631,Gurmeet Singh,IND,male,1985-07-01,1.72,60.0,athletics,0,0,0 -773668294,Gurpreet Singh,IND,male,1987-12-19,1.76,81.0,shooting,0,0,0 -335760688,Gustavo Albuquerque,BRA,male,1991-06-28,1.72,85.0,rugby sevens,0,0,0 -905869826,Gustavo Cuesta,DOM,male,1988-11-14,1.73,66.0,athletics,0,0,0 -587811250,Gustavo Guimaraes,BRA,male,1994-01-24,1.8,90.0,aquatics,0,0,0 -17989231,Gustavo Lima,POR,male,1977-07-13,1.85,82.0,sailing,0,0,0 -743751961,Gustavo Tsuboi,BRA,male,1985-05-31,1.7,65.0,table tennis,0,0,0 -833430291,Gustavo Vernes,BRA,male,1993-03-24,,,football,0,0,0 -125360707,Guy-Elphege Anouman,FRA,male,1994-06-13,1.77,75.0,athletics,0,0,0 -369581493,Guzel Manyurova,KAZ,female,1978-01-24,1.74,75.0,wrestling,0,1,0 -904653083,Gwanghee Cho,KOR,male,1993-12-24,1.82,92.0,canoe,0,0,0 -796100413,Gwanghyeok Lee,KOR,male,1995-09-11,,,football,0,0,0 -459485655,Gwanuk Kim,KOR,male,1990-07-22,1.77,90.0,wrestling,0,0,0 -874914826,Gwen Berry,USA,female,1989-06-29,1.76,88.0,athletics,0,0,0 -292122842,Gwen Jorgensen,USA,female,1986-04-25,1.78,58.0,triathlon,1,0,0 -3322965,Gwladys Epangue,FRA,female,1983-08-15,1.78,88.0,taekwondo,0,0,0 -302633574,Gwladys Nocera Pucet,FRA,female,1975-05-22,1.68,62.0,golf,0,0,0 -42510155,Gyorgyi Zsivoczky-Farkas,HUN,female,1985-02-13,1.7,60.0,athletics,0,0,0 -301226095,Ha Na Kim,KOR,female,1989-12-27,1.72,55.0,badminton,0,0,0 -553897082,Habib de Las Salas de la Rosa,COL,male,1987-04-19,1.59,56.0,weightlifting,0,0,0 -962588204,Habiba Ghribi,TUN,female,1984-04-09,1.74,51.0,athletics,0,0,0 -585034068,Habibollah Jomeh Akhlaghi,IRI,male,1985-08-03,1.75,90.0,wrestling,0,0,0 -204254643,Habitam Alemu,ETH,female,1997-07-09,1.71,52.0,athletics,0,0,0 -753076822,Haby Niare,FRA,female,1993-06-26,1.76,66.0,taekwondo,0,1,0 -755601006,Hadir Mekhimar,EGY,female,1997-11-25,1.65,62.0,shooting,0,0,0 -472316019,Hae Mi Park,KOR,female,1990-01-31,1.68,55.0,shooting,0,0,0 -402157963,Hae Ran Kim,KOR,female,1984-03-16,1.68,57.0,volleyball,0,0,0 -188491847,Haein Sim,KOR,female,1987-10-31,1.78,66.0,handball,0,0,0 -16804644,Haeun Yang,KOR,female,1994-02-25,1.71,58.0,table tennis,0,0,0 -861637149,Hafifi Bin Mansor Mohd,MAS,male,1990-10-28,1.66,69.0,weightlifting,0,0,0 -718811090,Hafize Sahin,TUR,female,1992-01-01,1.7,63.0,wrestling,0,0,0 -177699282,Hafsatu Kamara,SLE,female,1991-12-07,,,athletics,0,0,0 -825962890,Hagen Pohle,GER,male,1992-03-05,1.78,64.0,athletics,0,0,0 -461373663,Hagos Gebrhiwet,ETH,male,1994-05-11,1.71,56.0,athletics,0,0,1 -321494163,Haido Alexouli,GRE,female,1991-03-29,1.8,60.0,athletics,0,0,0 -754025410,Haifeng Fu,CHN,male,1984-01-02,1.81,78.0,badminton,1,0,0 -148299848,Hailemariyam Amare,ETH,male,1997-02-22,1.75,64.0,athletics,0,0,0 -48011673,Haiping Liu,CHN,female,1988-06-03,1.73,69.0,canoe,0,0,0 -428133887,Hairim Song,KOR,female,1985-01-12,1.67,67.0,handball,0,0,0 -189517234,Haislan Antonio Veranes Garcia,CAN,male,1983-03-04,1.75,66.0,wrestling,0,0,0 -788703039,Haithem Fahmy Mahmoud,EGY,male,1991-09-23,1.54,59.0,wrestling,0,0,0 -997215061,Haiwei Chen,CHN,male,1994-12-30,1.88,78.0,fencing,0,0,0 -800071001,Haiyan Wu,CHN,female,1993-02-26,1.66,58.0,football,0,0,0 -354275948,Hajar Alkhaldi,BRN,female,1995-03-17,1.6,45.0,athletics,0,0,0 -934255578,Haji Aliyev,AZE,male,1991-04-21,1.68,65.0,wrestling,0,0,1 -931847337,Hakan Dahlby,SWE,male,1965-09-15,1.85,95.0,shooting,0,0,0 -9093283,Hakan Eresker,QAT,male,1994-07-05,1.71,,boxing,0,0,0 -983579784,Hakim Sadi,ALG,male,1992-11-14,1.76,56.0,athletics,0,0,0 -329066484,Haley Anderson,USA,female,1991-11-20,1.78,68.0,aquatics,0,0,0 -587562061,Haley Ruth Augello,USA,female,1994-10-17,1.61,54.0,wrestling,0,0,0 -853405739,Hali Flickinger,USA,female,1994-07-07,1.66,52.0,aquatics,0,0,0 -427032354,Halil Akkas,TUR,male,1983-07-01,1.75,58.0,athletics,0,0,0 -779373345,Halimah Nakaayi,UGA,female,1994-10-16,,,athletics,0,0,0 -556391321,Haline Scatrut,BRA,female,1992-08-09,1.69,64.0,rugby sevens,0,0,0 -911111392,Hamad Ali Mohamed A Al Attiyah,QAT,male,1995-06-23,1.93,89.0,equestrian,0,0,0 -1664652,Hamada Mohamed,EGY,male,1992-10-22,1.75,65.0,athletics,0,0,0 -513005380,Hamada Talat,EGY,male,1981-03-01,1.76,77.0,shooting,0,0,0 -323154002,Hamdan Bayusuf,KEN,male,1994-09-29,1.82,64.0,aquatics,0,0,0 -443393856,Hamdy Moustafa Elsaid Abdelwahab,EGY,male,1993-01-22,1.71,96.0,wrestling,0,0,0 -550868905,Hamed Said Alkhatri,OMA,male,1985-05-24,1.68,90.0,shooting,0,0,0 -531580523,Hamid Ezzine,MAR,male,1983-10-05,1.74,62.0,athletics,0,0,0 -541385072,Hamid Mohammad Soryan,IRI,male,1985-08-24,1.67,64.0,wrestling,0,0,0 -614655928,Hamid Sintes,ALG,male,1980-08-08,1.69,67.0,fencing,0,0,0 -392547032,Hamidreza Zooravand,IRI,male,1990-01-13,1.76,66.0,athletics,0,0,0 -296637442,Hamish Bond,NZL,male,1986-02-13,1.89,89.0,rowing,1,0,0 -661625599,Hamish Carson,NZL,male,1988-11-01,1.81,66.0,athletics,0,0,0 -738803068,Hamish Peacock,AUS,male,1990-10-15,1.85,98.0,athletics,0,0,0 -927364164,Hammadi Ahmed,IRQ,male,1989-10-18,1.77,76.0,football,0,0,0 -589649660,Hamza Alic,BIH,male,1979-01-20,1.86,130.0,athletics,0,0,0 -668979909,Hamza Bouras,ALG,male,1987-12-16,1.7,73.0,sailing,0,0,0 -672961939,Hamza Touba,GER,male,1991-11-06,1.7,,boxing,0,0,0 -857979045,Hamzeh Zarini,IRI,male,1985-10-18,1.98,98.0,volleyball,0,0,0 -360154059,Han Na Gwon,KOR,female,1989-11-22,1.73,65.0,handball,0,0,0 -474085303,Hana Matelova,CZE,female,1990-06-08,1.6,53.0,table tennis,0,0,0 -103924089,Hanami Sekine,JPN,female,1996-02-26,1.56,43.0,athletics,0,0,0 -98339799,Haneen Ibrahim,SUD,female,2000-06-29,1.54,47.0,aquatics,0,0,0 -987592128,Hang Yu Sze,HKG,female,1988-03-05,1.68,63.0,aquatics,0,0,0 -56781844,Haniel Langaro,BRA,male,1995-03-07,1.97,104.0,handball,0,0,0 -281021453,Hanna Blomstrand,SWE,female,1996-08-25,1.73,72.0,handball,0,0,0 -868683543,Hanna Dudzenkova,BLR,female,1994-05-07,1.67,51.0,gymnastics,0,0,0 -648984551,Hanna Harchonak,BLR,female,1992-02-11,1.62,51.0,gymnastics,0,0,0 -302310091,Hanna Hatsko-Fedusova,UKR,female,1990-10-03,1.75,75.0,athletics,0,0,0 -731032288,Hanna Kasyanova,UKR,female,1983-04-24,1.78,67.0,athletics,0,0,0 -865953961,Hanna Kisteleki,HUN,female,1991-03-10,1.72,63.0,aquatics,0,0,0 -846150699,Hanna Klinga,SWE,female,1989-11-13,1.65,65.0,sailing,0,0,0 -750989988,Hanna Knyazyeva-Minenko,ISR,female,1989-09-25,1.79,62.0,athletics,0,0,0 -296210121,Hanna Lyczbinska,POL,female,1990-04-20,1.78,64.0,fencing,0,0,0 -318275998,Hanna Malyshik,BLR,female,1994-02-04,1.75,90.0,athletics,0,0,0 -593771185,Hanna Plotitsyna,UKR,female,1987-01-01,1.82,73.0,athletics,0,0,0 -805368469,Hanna Skydan,AZE,female,1992-05-14,1.83,101.0,athletics,0,0,0 -550222523,Hanna-Maria Seppala,FIN,female,1984-12-13,1.74,60.0,aquatics,0,0,0 -980247583,Hannah Amuchechi Rueben,NGR,female,1994-02-14,1.65,69.0,wrestling,0,0,0 -113266724,Hannah Buckling,AUS,female,1992-06-03,1.77,75.0,aquatics,0,0,0 -679066155,Hannah Cross,AUS,female,1997-01-29,1.69,57.0,aquatics,0,0,0 -503850224,Hannah Darling,CAN,female,1996-05-30,1.74,72.0,rugby sevens,0,0,1 -650100624,Hannah Kruger,GER,female,1988-09-04,1.73,67.0,hockey,0,0,1 -512806453,Hannah Macleod,GBR,female,1984-06-09,1.72,67.0,hockey,1,0,0 -278564208,Hannah Miley,GBR,female,1989-08-08,1.65,53.0,aquatics,0,0,0 -931174391,Hannah Mills,GBR,female,1988-02-29,1.57,50.0,sailing,1,0,0 -888831505,Hannah Wilkinson,NZL,female,1992-05-28,1.77,72.0,football,0,0,0 -467874431,Hanne Grahns,SWE,female,1992-08-29,1.67,64.0,football,0,0,0 -588728248,Hannes Aigner,GER,male,1989-03-19,1.83,75.0,canoe,0,0,0 -633655102,Hannes Obreno,BEL,male,1991-03-08,1.87,83.0,rowing,0,0,0 -828126181,Hannes Ocik,GER,male,1991-06-08,1.91,93.0,rowing,0,1,0 -707380480,Hannibal Gaskin,GUY,male,1997-08-30,1.73,68.0,aquatics,0,0,0 -759916596,Hans Arne Jensen,TGA,male,1998-02-25,1.81,95.0,archery,0,0,0 -887983421,Hans Gruhne,GER,male,1988-08-05,1.93,92.0,rowing,1,0,0 -157732723,Hans Lindberg,DEN,male,1981-08-01,1.88,88.0,handball,0,0,0 -191768973,Hans Peter Minderhoud,NED,male,1973-10-07,1.9,75.0,equestrian,0,0,0 -14222550,Hans Podlipnik-Castillo,CHI,male,1988-01-09,1.84,79.0,tennis,0,0,0 -35658013,Hans Struzyna,USA,male,1989-03-31,1.88,90.0,rowing,0,0,0 -326027910,Hansol Kim,KOR,male,1995-12-29,1.65,,gymnastics,0,0,0 -710838348,Hansu Ryu,KOR,male,1988-02-01,1.68,70.0,wrestling,0,0,0 -400204739,Hanwoong Park,KOR,male,1995-01-15,1.74,92.0,weightlifting,0,0,0 -462031803,Hao Chang,TPE,male,1990-11-14,1.73,72.0,sailing,0,0,0 -955199694,Hao Liu,CHN,male,1988-11-07,1.89,79.0,cycling,0,0,0 -688410388,Hao You,CHN,male,1992-04-26,1.62,60.0,gymnastics,0,0,1 -5582422,Hao-Ching Chan,TPE,female,1993-09-19,1.8,65.0,tennis,0,0,0 -584970001,Hao-Wen Kao,TPE,male,1995-03-17,1.8,82.0,archery,0,0,0 -784558254,Haoran Yang,CHN,male,1996-02-22,1.76,64.0,shooting,0,0,0 -92737551,Haotong Li,CHN,male,1995-08-03,1.88,75.0,golf,0,0,0 -7926077,Haram Woo,KOR,male,1998-03-21,1.68,58.0,aquatics,0,0,0 -904216148,Hardeep Hardeep,IND,male,1990-12-20,1.63,98.0,wrestling,0,0,0 -498857610,Hari Kumar Rimal,NEP,male,1987-06-13,1.66,59.0,athletics,0,0,0 -119602517,Haris Bandey,PAK,male,1999-02-14,1.67,79.0,aquatics,0,0,0 -218421111,Haris Belkebla,ALG,male,1994-01-28,1.78,70.0,football,0,0,0 -599462011,Harmanpreet Singh,IND,male,1996-01-06,1.77,70.0,hockey,0,0,0 -112459852,Harold Correa,FRA,male,1988-06-26,1.9,81.0,athletics,0,0,0 -907600917,Harold Fonseca,HON,male,1993-10-08,1.86,87.0,football,0,0,0 -370604205,Harold Houston,BER,male,1990-03-23,1.82,82.0,athletics,0,0,0 -98959856,Harold Langen,NED,male,1986-10-27,1.88,90.0,rowing,0,0,0 -782948245,Harold Preciado,COL,male,1994-06-01,1.85,73.0,football,0,0,0 -331514167,Haron Koech,KEN,male,1990-01-27,1.9,76.0,athletics,0,0,0 -213592688,Harrie Smolders,NED,male,1980-05-10,1.83,75.0,equestrian,0,0,0 -98629225,Harrison Barnes,USA,male,1992-05-30,2.03,102.0,basketball,1,0,0 -883054500,Harry Aikines-Aryeetey,GBR,male,1988-08-29,1.78,87.0,athletics,0,0,0 -666553660,Harry Martin,GBR,male,1992-10-23,1.84,81.0,hockey,0,0,0 -588715133,Haruka Miyashita,JPN,female,1994-09-01,1.77,61.0,volleyball,0,0,0 -437669454,Haruka Tachimoto,JPN,female,1990-08-03,1.68,70.0,judo,1,0,0 -946440750,Harukyo Nomura,JPN,female,1992-11-25,1.65,60.0,golf,0,0,0 -772429717,Harutyun Merdinyan,ARM,male,1984-08-16,1.65,58.0,gymnastics,0,0,0 -702338556,Haruyo Shimamura,JPN,female,1992-03-04,1.82,79.0,volleyball,0,0,0 -542430668,Hasanboy Dusmatov,UZB,male,1993-06-24,1.56,,boxing,1,0,0 -741535794,Hasnaa Lachgar,MAR,female,1989-09-27,1.64,,boxing,0,0,0 -36162949,Hassan Aliazam Yazdanicharati,IRI,male,1994-12-26,1.81,74.0,wrestling,1,0,0 -101286340,Hassan Amzile,FRA,male,1988-06-05,1.83,,boxing,0,0,0 -312704439,Hassan Chani,BRN,male,1988-05-05,1.7,60.0,athletics,0,0,0 -456522076,Hassan Mabrouk,QAT,male,1982-07-29,1.9,100.0,handball,0,0,0 -175315541,Hassan Mead,USA,male,1991-06-28,1.88,65.0,athletics,0,0,0 -97563452,Hassan Mohamed Mahmoud,EGY,male,1984-02-10,,,athletics,0,0,0 -173152080,Hassan Ndam Njikam,CMR,male,1984-02-18,1.82,,boxing,0,0,0 -147777095,Hassan Saada,MAR,male,1994-01-02,1.83,,boxing,0,0,0 -644229404,Hassan Saaid,MDV,male,1992-03-04,,,athletics,0,0,0 -659504471,Hassan Sabzali Rahimi,IRI,male,1989-06-15,1.65,62.0,wrestling,0,0,1 -109499078,Hassan Taftian,IRI,male,1993-05-04,1.87,68.0,athletics,0,0,0 -240509151,Hassanine Sebei,TUN,male,1984-01-21,1.77,60.0,athletics,0,0,0 -796467757,Hassen Chaktami,TUN,male,1988-12-14,1.8,,boxing,0,0,0 -101394753,Havard Haukenes,NOR,male,1990-04-22,,,athletics,0,0,0 -554006309,Hawbir Khasro,IRQ,male,1993-09-24,1.75,70.0,football,0,0,0 -631521529,Hayat Lambarki,MAR,female,1988-05-18,1.72,57.0,athletics,0,0,0 -346469460,Hayden Phillips,NZL,male,1998-02-06,1.8,72.0,hockey,0,0,0 -927855997,Hayden Roulston,NZL,male,1981-01-10,1.86,78.0,cycling,0,0,0 -662093898,Hayder Shkara,AUS,male,1990-05-21,1.84,80.0,taekwondo,0,0,0 -400928274,Haydy Morsy,EGY,female,1999-09-20,1.68,58.0,modern pentathlon,0,0,0 -267258552,Hayle Ibrahimov,AZE,male,1990-01-18,1.71,58.0,athletics,0,0,0 -842681952,Haziq Kamaruddin,MAS,male,1993-07-04,1.78,75.0,archery,0,0,0 -935038843,Hazuki Nagai,JPN,female,1994-08-15,1.52,53.0,hockey,0,0,0 -420841500,Hazuki Yuda,JPN,female,1989-07-11,1.67,54.0,hockey,0,0,0 -490580796,Heabin Jung,KOR,female,1994-01-20,1.69,64.0,hockey,0,0,0 -348445577,Heather Bansley,CAN,female,1987-09-13,1.71,65.0,volleyball,0,0,0 -530012228,Heather Fisher,GBR,female,1984-06-13,1.68,71.0,rugby sevens,0,0,0 -865048976,Heather Miller-Koch,USA,female,1987-03-30,1.76,63.0,athletics,0,0,0 -782975512,Heather O Reilly,USA,female,1985-01-02,1.66,59.0,football,0,0,0 -136391039,Heather Olver,GBR,female,1986-03-15,1.7,,badminton,0,0,0 -605175756,Heather Stanning,GBR,female,1985-01-26,1.81,72.0,rowing,1,0,0 -388913953,Heather Steacy,CAN,female,1988-04-14,1.75,80.0,athletics,0,0,0 -378577718,Heather Watson,GBR,female,1992-05-19,1.68,63.0,tennis,0,0,0 -677773211,Heba Allejji,SYR,female,1997-01-20,,,table tennis,0,0,0 -847163019,Hebert Brol,GUA,male,1980-01-10,1.81,135.0,shooting,0,0,0 -335558674,Hector Luis Garcia Mora,DOM,male,1991-11-01,1.73,,boxing,0,0,0 -788560912,Hedaya Wahba,EGY,female,1993-04-21,1.74,57.0,taekwondo,0,0,1 -869886406,Hedda Hynne,NOR,female,1990-03-13,,,athletics,0,0,0 -923891732,Hederson Estefani,BRA,male,1991-09-11,1.83,65.0,athletics,0,0,0 -303803370,Hedi Gharbi,TUN,male,1969-08-05,1.69,70.0,sailing,0,0,0 -307748741,Hedvig Karakas,HUN,female,1990-02-21,1.67,61.0,judo,0,0,0 -941808202,Hedvig Lindahl,SWE,female,1983-04-29,1.79,74.0,football,0,1,0 -134790267,Hedvig Rasmussen,DEN,female,1993-12-22,1.87,79.0,rowing,0,0,1 -388831240,Hee Sook Jeon,KOR,female,1984-06-16,1.69,60.0,fencing,0,0,0 -456268808,Hee Young Yang,KOR,female,1989-07-28,1.73,77.0,golf,0,0,0 -393939547,Heechan Hwang,KOR,male,1996-01-26,1.77,70.0,football,0,0,0 -812515999,Heejin Kim,KOR,female,1991-04-29,1.85,78.0,volleyball,0,0,0 -505168885,Heena Sidhu,IND,female,1989-08-29,1.58,51.0,shooting,0,0,0 -769324470,Heesun Jang,KOR,female,1986-05-31,1.64,60.0,hockey,0,0,0 -76022675,Heidi Diethelm Gerber,SUI,female,1969-03-20,1.68,93.0,shooting,0,0,1 -563435764,Heidi Gan,MAS,female,1988-10-08,1.62,57.0,aquatics,0,0,0 -528568211,Heidi Loke,NOR,female,1982-12-12,1.73,,handball,0,0,1 -279097439,Heiki Nabi,EST,male,1985-06-06,1.93,116.0,wrestling,0,0,0 -942170112,Heissler Guillent,VEN,male,1986-12-17,1.83,79.0,basketball,0,0,0 -42902988,Hela Ayari,TUN,female,1994-08-26,,52.0,judo,0,0,0 -419568025,Hela Riabi,TUN,female,1987-02-18,1.65,63.0,wrestling,0,0,0 -927679644,Helah Jelagat Kiprop,KEN,female,1985-04-07,1.6,50.0,athletics,0,0,0 -823760024,Helalia Johannes,NAM,female,1980-08-13,1.65,46.0,athletics,0,0,0 -231174935,Helder Silva,POR,male,1987-08-02,1.76,73.0,canoe,0,0,0 -820626440,Helen Glover,GBR,female,1986-06-17,1.77,67.0,rowing,1,0,0 -77008314,Helen Grobert,GER,female,1992-04-11,1.75,58.0,cycling,0,0,0 -879616037,Helen Jenkins,GBR,female,1984-03-08,1.69,55.0,triathlon,0,0,0 -992478807,Helen Louise Maroulis,USA,female,1991-09-19,1.63,56.0,wrestling,1,0,0 -826011682,Helen Richardson-Walsh,GBR,female,1981-09-23,1.65,55.0,hockey,1,0,0 -707272550,Helena Casas Roige,ESP,female,1988-07-24,1.63,63.0,cycling,0,0,0 -833977823,Helena Ciak,FRA,female,1989-12-15,1.97,89.0,basketball,0,0,0 -659637294,Helena Gasson,NZL,female,1994-12-08,1.72,76.0,aquatics,0,0,0 -914156027,Helena Scutt,USA,female,1992-06-15,1.71,65.0,sailing,0,0,0 -382923791,Helene Defrance,FRA,female,1986-08-11,1.79,66.0,sailing,0,0,1 -189823124,Helene Lefebvre,FRA,female,1991-02-26,1.7,69.0,rowing,0,0,0 -76511268,Helibelton Palacios,COL,male,1993-06-11,1.8,77.0,football,0,0,0 -447903618,Hellen Onsando Obiri,KEN,female,1989-12-13,1.6,50.0,athletics,0,1,0 -177603663,Heming Hu,AUS,male,1994-03-21,1.79,76.0,table tennis,0,0,0 -634678225,Hemza Haloui,ALG,male,1994-07-10,1.8,96.0,wrestling,0,0,0 -686631480,Hendra Purnama,INA,male,1997-01-12,1.69,64.0,archery,0,0,0 -339509053,Hendra Setiawan,INA,male,1984-08-25,1.83,82.0,badminton,0,0,0 -637196931,Hendrik Pekeler,GER,male,1991-07-02,2.03,103.0,handball,0,0,1 -623376345,Henk Grol,NED,male,1985-04-14,1.9,100.0,judo,0,0,0 -431941649,Henna Katarina Johansson,SWE,female,1991-05-01,1.64,67.0,wrestling,0,0,0 -280401602,Henning Bommel,GER,male,1983-02-23,1.83,79.0,cycling,0,0,0 -200432555,Henri Hurskainen,SWE,male,1986-09-13,1.84,80.0,badminton,0,0,0 -777353303,Henri Junghaenel,GER,male,1988-02-05,1.79,80.0,shooting,1,0,0 -257515881,Henri Schoeman,RSA,male,1991-10-03,1.7,59.0,triathlon,0,0,1 -814312572,Henricho Bruintjies,RSA,male,1993-07-16,1.79,72.0,athletics,0,0,0 -761427990,Henriette Hansen,DEN,female,1982-04-15,1.7,66.0,canoe,0,0,0 -530692898,Henriette Nadege Koulla,CMR,female,1992-09-14,1.69,67.0,volleyball,0,0,0 -136465545,Henrik Christiansen,NOR,male,1996-10-09,,,aquatics,0,0,0 -706752580,Henrik Ingebrigtsen,NOR,male,1991-02-24,,,athletics,0,0,0 -808654438,Henrik Mollgaard Jensen,DEN,male,1985-01-02,1.97,102.0,handball,1,0,0 -471800036,Henrik Rummel,USA,male,1987-09-26,1.96,97.0,rowing,0,0,0 -278653669,Henrik Stenson,SWE,male,1976-04-05,1.87,90.0,golf,0,1,0 -89814850,Henrik Toft Hansen,DEN,male,1986-12-18,2.0,105.0,handball,1,0,0 -225165978,Henrik Vasbanyai,HUN,male,1991-07-16,1.87,84.0,canoe,0,0,0 -683861433,Henrik von Eckermann,SWE,male,1981-05-25,1.86,77.0,equestrian,0,0,0 -142941975,Henrikas Zustautas,LTU,male,1994-07-13,1.92,96.0,canoe,0,0,0 -683131991,Henrique Avancini,BRA,male,1989-03-30,1.76,67.0,cycling,0,0,0 -66716324,Henrique Haddad,BRA,male,1987-05-28,1.65,63.0,sailing,0,0,0 -473340391,Henrique Marques,BRA,male,1996-09-24,1.78,71.0,fencing,0,0,0 -715314680,Henrique Martins,BRA,male,1991-11-14,1.8,73.0,aquatics,0,0,0 -991563365,Henrique Rodrigues,BRA,male,1991-02-04,1.94,86.0,aquatics,0,0,0 -484566672,Henrique Teixeira,BRA,male,1989-02-27,1.92,100.0,handball,0,0,0 -378817615,Henry Frayne,AUS,male,1990-04-14,1.88,83.0,athletics,0,0,0 -771439495,Henry Hutchison,AUS,male,1997-02-12,1.76,86.0,rugby sevens,0,0,0 -656087164,Henry Weir,GBR,male,1990-02-13,1.76,75.0,hockey,0,0,0 -196907702,Henryk Szost,POL,male,1982-01-20,1.86,70.0,athletics,0,0,0 -672188106,Hensley Paulina,NED,male,1993-06-26,1.82,77.0,athletics,0,0,0 -674181723,Hermenegildo Leite,ANG,male,2000-05-17,1.71,63.0,athletics,0,0,0 -474532217,Hernan Moises Viera Espinoza,PER,male,1993-01-16,1.76,104.0,weightlifting,0,0,0 -875801164,Hersony Canelon,VEN,male,1988-12-08,1.76,73.0,cycling,0,0,0 -682402469,Heungmin Son,KOR,male,1992-07-08,1.83,67.0,football,0,0,0 -761606260,Hexin Yu,CHN,male,1996-01-01,1.94,87.0,aquatics,0,0,0 -11002844,Hicham Bouchicha,ALG,male,1989-05-19,1.82,64.0,athletics,0,0,0 -730005244,Hicham Sigueni,MAR,male,1993-01-30,1.72,61.0,athletics,0,0,0 -811166663,Hidde Turkstra,NED,male,1988-03-05,1.94,81.0,hockey,0,0,0 -412609068,Hideki Omoto,JPN,male,1984-08-12,1.79,70.0,rowing,0,0,0 -251596711,Hidilyn Diaz,PHI,female,1991-02-20,1.49,53.0,weightlifting,0,1,0 -35937798,Higor Alves,BRA,male,1994-02-23,1.83,64.0,athletics,0,0,0 -708328857,Hilal Hemed Hilal,TAN,male,1994-07-12,1.76,63.0,aquatics,0,0,0 -144358597,Hilary Caldwell,CAN,female,1991-03-13,1.73,61.0,aquatics,0,0,1 -718411923,Hilary Stellingwerff,CAN,female,1981-08-07,1.6,47.0,athletics,0,0,0 -689390939,Hilda Carlen,SWE,female,1991-08-13,1.73,75.0,football,0,1,0 -668140506,Hillary Bor,USA,male,1989-11-22,1.71,52.0,athletics,0,0,0 -256534193,Hin Chun Chiu,HKG,male,1994-08-20,1.76,73.0,rowing,0,0,0 -309810148,Hind Jamili,MAR,female,1998-12-11,1.56,50.0,canoe,0,0,0 -895035478,Hiroaki Takao,JPN,male,1992-01-02,1.56,56.0,weightlifting,0,0,0 -884615594,Hirokatsu Tayama,JPN,male,1981-11-12,1.67,62.0,triathlon,0,0,0 -378183689,Hiroki Fujiharu,JPN,male,1988-11-28,1.75,60.0,football,0,0,0 -361521049,Hiroki Ogita,JPN,male,1987-12-30,1.86,80.0,athletics,0,0,0 -198161931,Hiromasa Fujimori,JPN,male,1991-08-07,1.76,72.0,aquatics,0,0,0 -441329153,Hiromi Miyake,JPN,female,1985-11-18,1.45,48.0,weightlifting,0,0,1 -361129434,Hirooki Arai,JPN,male,1988-05-18,1.8,62.0,athletics,0,0,1 -569753343,Hiroshi Nakano,JPN,male,1987-12-01,1.76,72.0,rowing,0,0,0 -689852563,Hiroyuki Endo,JPN,male,1986-12-16,1.71,72.0,badminton,0,0,0 -182022040,Hirving Lozano,MEX,male,1995-07-30,1.74,63.0,football,0,0,0 -327247777,Hisanori Kitajima,JPN,male,1984-10-16,1.71,55.0,athletics,0,0,0 -26054325,Hisayoshi Harasawa,JPN,male,1992-07-03,1.91,125.0,judo,0,1,0 -83035378,Hiskel Tewelde,ERI,male,1986-09-15,,,athletics,0,0,0 -924061459,Hiwot Ayalew,ETH,female,1990-03-06,1.73,53.0,athletics,0,0,0 -504200446,Hnialum Ruat Feli,IND,female,1996-07-15,1.62,54.0,hockey,0,0,0 -719133572,Ho Ching Lee,HKG,female,1992-11-24,1.6,53.0,table tennis,0,0,0 -757948146,Hoi Kem Doo,HKG,female,1996-11-27,1.66,60.0,table tennis,0,0,0 -289609999,Hoi Wah Chau,HKG,female,1986-06-05,1.65,61.0,badminton,0,0,0 -508366658,Hojamuhammet Toychyyev,TKM,male,1992-01-16,1.86,145.0,weightlifting,0,0,0 -789088022,Holder da Silva,GBS,male,1988-01-12,1.82,80.0,athletics,0,0,0 -261349975,Hollie Webb,GBR,female,1990-09-19,1.65,65.0,hockey,1,0,0 -859525144,Holly Bradshaw,GBR,female,1991-11-02,1.75,67.0,athletics,0,0,0 -923396311,Holly Lincoln-Smith,AUS,female,1988-03-26,1.83,82.0,aquatics,0,0,0 -196810717,Homiyu Tesfaye,GER,male,1993-06-23,1.84,64.0,athletics,0,0,0 -958706021,Hong Liu,CHN,female,1987-05-12,1.6,50.0,athletics,1,0,0 -353716042,Hongpin Huang,CHN,female,1989-04-23,1.95,98.0,basketball,0,0,0 -90017888,Hongxia Li,CHN,female,1986-09-10,1.68,63.0,hockey,0,0,0 -653150622,Hope Solo,USA,female,1981-07-30,1.75,67.0,football,0,0,0 -172023688,Horacio Nava,MEX,male,1982-01-20,1.81,65.0,athletics,0,0,0 -619522770,Horia Tecau,ROU,male,1985-01-19,1.92,90.0,tennis,0,1,0 -707205572,Hortance Diedhiou,SEN,female,1983-08-19,1.65,57.0,judo,0,0,0 -782647147,Hortence Vanessa Mballa Atangana,CMR,female,1992-01-05,1.71,78.0,judo,0,0,0 -816766723,Hosam Hussein Bakr Abdin,EGY,male,1985-10-26,1.8,,boxing,0,0,0 -635210027,Hossam Abdalla,EGY,male,1988-02-16,2.03,97.0,volleyball,0,0,0 -452412504,Houari Ferhani,ALG,male,1993-02-11,1.68,60.0,football,0,0,0 -14950030,Houd Zourdani,ALG,male,1993-10-17,1.65,66.0,judo,0,0,0 -468309568,Houda Miled,TUN,female,1987-02-08,1.71,70.0,judo,0,0,0 -281360452,Houleye Ba,MTN,female,1992-07-17,1.7,55.0,athletics,0,0,0 -111077944,Houry Gebeshian,ARM,female,1989-07-27,1.52,48.0,gymnastics,0,0,0 -61502,Hovhannes Bachkov,ARM,male,1992-12-02,1.73,,boxing,0,0,0 -374222882,Hovhannes Davtyan,ARM,male,1983-11-25,1.73,60.0,judo,0,0,0 -426998976,Howard Grotts,USA,male,1993-01-12,1.71,58.0,cycling,0,0,0 -532364177,Howard Shu,USA,male,1990-11-28,1.86,74.0,badminton,0,0,0 -474611032,Hrachik Babayan,ARM,male,1996-08-01,1.75,75.0,shooting,0,0,0 -578319115,Hrafnhildur Luthersdottir,ISL,female,1991-08-02,1.78,65.0,aquatics,0,0,0 -893777759,Hrisoula Anagnostopoulou,GRE,female,1991-08-27,1.75,85.0,athletics,0,0,0 -751452389,Hristiana Todorova,BUL,female,1994-11-28,1.75,57.0,gymnastics,0,0,1 -834856987,Hristoforos Merousis,GRE,male,1982-03-22,1.78,72.0,athletics,0,0,0 -170401459,Hrvoje Sep,CRO,male,1986-02-26,1.75,,boxing,0,0,0 -529837353,Hsing-Chun Kuo,TPE,female,1993-11-26,1.57,58.0,weightlifting,0,0,1 -207495575,Hsuan-Yen Lee,TPE,male,1993-05-13,1.73,63.0,aquatics,0,0,0 -744184028,Hsuan-Yu Wendy Chen,AUS,female,1993-06-01,1.67,56.0,badminton,0,0,0 -312441381,Hua Wilfried Koffi,CIV,male,1987-10-12,1.89,76.0,athletics,0,0,0 -830965009,Huai-Hsuan Huang,TPE,female,1997-07-07,1.68,53.0,taekwondo,0,0,0 -567560651,Huanhuan Ma,CHN,female,1990-01-13,1.78,66.0,aquatics,0,0,0 -424934520,Hubertus Schmidt,GER,male,1959-10-08,1.83,80.0,equestrian,0,0,0 -743741137,Hugo Barrette,CAN,male,1991-07-04,1.75,90.0,cycling,0,0,0 -402716810,Hugo Boucheron,FRA,male,1993-05-30,1.95,90.0,rowing,0,0,0 -626936383,Hugo Calderano,BRA,male,1996-06-22,1.82,74.0,table tennis,0,0,0 -551778014,Hugo Gonzalez de Oliveira,ESP,male,1999-02-19,1.92,82.0,aquatics,0,0,0 -823618365,Hugo Houle,CAN,male,1990-09-27,1.83,69.0,cycling,0,0,0 -931957390,Hugo Inglis,NZL,male,1991-01-18,1.78,74.0,hockey,0,0,0 -365733362,Hugo Parisi,BRA,male,1984-08-01,1.72,69.0,aquatics,0,0,0 -362810248,Hugo de Sousa,BRA,male,1987-03-05,1.87,74.0,athletics,0,0,0 -20467543,Hugues Fournel,CAN,male,1988-08-05,1.7,73.0,canoe,0,0,0 -874312122,Hui Cao,CHN,female,1991-09-07,1.75,70.0,archery,0,0,0 -825117534,Huihui Lyu,CHN,female,1989-06-26,1.71,70.0,athletics,0,0,0 -552569008,Huijun Lin,CHN,female,1993-02-01,1.7,59.0,athletics,0,0,0 -628637344,Huilin Le,CHN,female,1989-04-01,1.72,62.0,fencing,0,0,0 -595115702,Huisol Lee,KOR,female,1989-08-27,1.74,119.0,weightlifting,0,0,0 -203027250,Huixia Liu,CHN,female,1997-11-30,1.57,48.0,aquatics,1,0,0 -396732861,Humam Tareq,IRQ,male,1996-02-10,1.7,67.0,football,0,0,0 -135011760,Humphrey Kayange,KEN,male,1982-07-20,1.93,106.0,rugby sevens,0,0,0 -733102728,Hung-Chieh Chiang,TPE,male,1989-02-22,1.8,70.0,table tennis,0,0,0 -601326293,Huriana Manuel,NZL,female,1986-08-08,1.66,65.0,rugby sevens,0,1,0 -66237669,Hurshid Tojibaev,UZB,male,1989-11-13,1.72,,boxing,0,0,0 -509019365,Huseyin Kandemir,TUR,male,1986-09-09,1.76,70.0,rowing,0,0,0 -703246010,Hussain Shah Shah,PAK,male,1993-06-08,1.9,100.0,judo,0,0,0 -730071504,Hussein Al-Aameri,IRQ,male,1990-11-24,1.77,80.0,judo,0,0,0 -2983955,Hussein Iashaish,JOR,male,1995-08-06,1.8,,boxing,0,0,0 -573701625,Huyen Ta Thanh,VIE,female,1994-05-03,1.7,58.0,rowing,0,0,0 -531592086,Hye Lyoung Han,KOR,female,1986-01-15,1.63,56.0,hockey,0,0,0 -288648218,Hye Seon Yeum,KOR,female,1991-02-03,1.76,65.0,volleyball,0,0,0 -739082177,Hye-Gyong Kim,PRK,female,1993-03-09,1.53,42.0,athletics,0,0,0 -398649308,Hye-Song Kim,PRK,female,1993-03-09,1.53,42.0,athletics,0,0,0 -887795017,Hyejin Chang,KOR,female,1987-05-13,1.58,50.0,archery,2,0,0 -152186180,Hyejin Cho,KOR,female,1995-01-16,1.59,56.0,hockey,0,0,0 -328642843,Hyejin Lee,KOR,female,1992-01-23,1.65,61.0,cycling,0,0,0 -68832418,Hyeonjun Kim,KOR,male,1992-10-18,1.75,59.0,shooting,0,0,0 -861437248,Hyeonwoo Kim,KOR,male,1988-11-06,1.73,80.0,wrestling,0,0,1 -733898810,Hyeri Oh,KOR,female,1988-04-30,1.82,69.0,taekwondo,1,0,0 -242202885,Hyo Hee Lee,KOR,female,1980-09-09,1.73,57.0,volleyball,0,0,0 -294430163,Hyo Jin Yang,KOR,female,1989-12-14,1.9,72.0,volleyball,0,0,0 -641596822,Hyo Sim Choe,PRK,female,1993-12-05,1.59,62.0,weightlifting,0,1,0 -641299632,Hyoju An,KOR,female,1987-11-25,1.68,54.0,hockey,0,0,0 -871219266,Hyon Gyong Kim,PRK,female,1995-04-17,1.53,48.0,wrestling,0,0,0 -146721591,Hyowon Suh,KOR,female,1987-05-10,1.59,54.0,table tennis,0,0,0 -163022401,Hyunhee Nam,KOR,female,1981-09-29,1.55,46.0,fencing,0,0,0 -996028848,Hyunji Kim,KOR,female,1993-11-04,1.7,52.0,hockey,0,0,0 -925362927,Hyunji Yoo,KOR,female,1984-07-16,1.75,67.0,handball,0,0,0 -99215460,Hyunjun Suk,KOR,male,1991-06-29,1.9,82.0,football,0,0,0 -526973620,Hyunsoo Jang,KOR,male,1991-09-28,1.87,77.0,football,0,0,0 -667171291,Hyunsub Kim,KOR,male,1985-05-31,1.77,61.0,athletics,0,0,0 -502834861,Hyvin Kiyeng Jepkemoi,KEN,female,1992-01-13,1.62,42.0,athletics,0,1,0 -794514120,I Ketut Ariana,INA,male,1989-09-06,1.67,69.0,weightlifting,0,0,0 -710339664,I-Ching Cheng,TPE,female,1992-02-15,1.62,52.0,table tennis,0,0,0 -113806395,Iacovos Hadjiconstantinou,CYP,male,1994-11-17,1.94,90.0,aquatics,0,0,0 -74843032,Iago Lopez Marra,ESP,male,1990-04-07,1.81,81.0,sailing,0,0,0 -45266900,Iain Jensen,AUS,male,1988-05-23,1.86,80.0,sailing,0,1,0 -471378978,Iain Lewers,GBR,male,1984-01-05,1.83,79.0,hockey,0,0,0 -364965310,Iain Smythe,CAN,male,1985-06-02,1.8,77.0,hockey,0,0,0 -909245021,Iakiv Khammo,UKR,male,1994-06-11,1.88,,judo,0,0,0 -879442986,Iakobi Kajaia,GEO,male,1993-09-28,1.87,130.0,wrestling,0,0,0 -158469592,Ian Borrows,AUS,male,1989-11-26,1.86,78.0,canoe,0,0,0 -737845937,Ian Lariba,PHI,female,1994-10-13,1.62,56.0,table tennis,0,0,0 -408716601,Ian Matos,BRA,male,1989-04-24,1.71,72.0,aquatics,0,0,0 -712859551,Ian Sloan,GBR,male,1993-11-19,1.75,76.0,hockey,0,0,0 -224119413,Ian Stannard,GBR,male,1987-05-25,1.91,80.0,cycling,0,0,0 -681120192,Iaroslav Potapov,RUS,male,1999-07-01,1.88,72.0,aquatics,0,0,0 -372106126,Iaroslava Iakushina,RUS,female,1993-06-24,1.7,,boxing,0,0,0 -884378619,Ibragim Labazanov,RUS,male,1987-09-15,1.64,64.0,wrestling,0,0,0 -971860435,Ibrahim Bolukbasi,TUR,male,1990-12-01,1.87,97.0,wrestling,0,0,0 -921428771,Ibrahim Elmasry,EGY,male,1989-03-11,1.91,82.0,handball,0,0,0 -580680998,Ibrahim Khalaf,JOR,male,1986-07-09,1.8,90.0,judo,0,0,0 -564969731,Ibrahim Nishwan,MDV,male,1997-06-12,,,aquatics,0,0,0 -350168886,Ibrahim Ramadan Ibrahim Abdelbaki,EGY,male,1988-02-06,1.73,77.0,weightlifting,0,0,0 -488321463,Ibrahim Saidau,BLR,male,1985-03-09,1.8,125.0,wrestling,0,0,1 -399888791,Ibtihaj Muhammad,USA,female,1985-12-04,1.71,68.0,fencing,0,0,1 -59350988,Ida Alstad,NOR,female,1985-06-13,1.72,,handball,0,0,1 -304264901,Ida Lindborg,SWE,female,1994-06-13,1.67,60.0,aquatics,0,0,0 -705937798,Ida Marko-Varga,SWE,female,1985-03-10,1.7,65.0,aquatics,0,0,0 -412225321,Ida Mayrin,ISR,female,1997-10-30,1.72,52.0,gymnastics,0,0,0 -130996491,Ida Villumsen,DEN,female,1994-11-30,1.76,70.0,canoe,0,0,0 -445744437,Idalys Ortiz,CUB,female,1989-09-27,1.8,82.0,judo,0,1,0 -664747134,Iera Echebarria,ESP,female,1992-10-20,1.6,63.0,rugby sevens,0,0,0 -953620490,Ieuan Lloyd,GBR,male,1993-07-09,1.94,91.0,aquatics,0,0,0 -262282271,Ieva Serapinaite,LTU,female,1995-02-04,1.75,62.0,modern pentathlon,0,0,0 -693361470,Ievegeniia Tetelbaum,ISR,female,1991-07-31,1.58,48.0,aquatics,0,0,0 -914405287,Ievgeniia Nimchenko,UKR,female,1992-09-29,1.8,68.0,rowing,0,0,0 -49708578,Iga Baumgart,POL,female,1989-04-11,1.78,58.0,athletics,0,0,0 -841939942,Ignacio Martin,ESP,male,1983-10-15,1.88,90.0,rugby sevens,0,0,0 -911577483,Ignacio Morales,CHI,male,1995-08-12,1.79,62.0,taekwondo,0,0,0 -632290179,Ignacio Ortiz,ARG,male,1987-07-26,1.8,76.0,hockey,1,0,0 -877477413,Ignacio Perrin,ARG,male,1985-01-20,1.72,,boxing,0,0,0 -212081217,Ignacio Prado,MEX,male,1993-09-21,1.78,65.0,cycling,0,0,0 -407328082,Ignas Navakauskas,LTU,male,1989-09-22,1.8,90.0,canoe,0,0,0 -317258255,Ignatas Konovalovas,LTU,male,1985-12-08,1.9,75.0,cycling,0,0,0 -746541982,Igor Genua,ESP,male,1988-06-05,1.77,78.0,rugby sevens,0,0,0 -877954587,Igor Glavan,UKR,male,1990-09-25,1.68,61.0,athletics,0,0,0 -207860786,Igor Karacic,CRO,male,1988-11-02,1.91,91.0,handball,0,0,0 -101294964,Igor Kobzar,RUS,male,1991-04-13,1.98,86.0,volleyball,0,0,0 -701378766,Igor Kovacevic,FRA,male,1988-11-03,1.9,85.0,aquatics,0,0,0 -647906398,Igor Marenic,CRO,male,1986-01-02,1.73,70.0,sailing,1,0,0 -292473740,Igor Mogne,MOZ,male,1996-08-01,1.75,66.0,aquatics,0,0,0 -882236724,Igor Olshanetskyi,ISR,male,1986-02-16,1.84,130.0,weightlifting,0,0,0 -295973567,Igor Pawel Jakubowski,POL,male,1992-08-06,1.84,,boxing,0,0,0 -343249944,Igor Polyanskiy,RUS,male,1990-01-16,1.91,72.0,triathlon,0,0,0 -42372934,Igor Radivilov,UKR,male,1992-10-19,1.67,67.0,gymnastics,0,0,0 -118939589,Igor Wandtke,GER,male,1990-11-03,1.76,76.0,judo,0,0,0 -510520768,Igor Zelenay,SVK,male,1982-10-02,1.98,88.0,tennis,0,0,0 -207987261,Ihar Pashevich,BLR,male,1991-12-08,1.95,101.0,rowing,0,0,0 -358053477,Ihor Bodrov,UKR,male,1987-07-09,1.84,77.0,athletics,0,0,0 -644497938,Ihor Olefirenko,UKR,male,1990-03-14,1.86,70.0,athletics,0,0,0 -804961388,Ihor Russ,UKR,male,1988-09-08,1.74,62.0,athletics,0,0,0 -606865842,Ihor Shymechko,UKR,male,1986-05-27,1.97,130.0,weightlifting,0,0,0 -976629954,Ika Rochmawati,INA,female,1989-07-02,1.65,52.0,archery,0,0,0 -552884668,Ike Diogu,NGR,male,1983-09-11,2.04,115.0,basketball,0,0,0 -3146070,Ikhtiyor Navruzov,UZB,male,1989-07-05,1.65,65.0,wrestling,0,0,1 -14214437,Ilana Kratysh,ISR,female,1990-07-06,1.69,69.0,wrestling,0,0,0 -259115271,Ilaria Bianchi,ITA,female,1990-01-06,1.7,65.0,aquatics,0,0,0 -976676407,Ilaria Bianco,ITA,female,1980-05-29,1.65,55.0,fencing,0,0,0 -91346833,Ildiko Toth,HUN,female,1987-04-23,1.75,72.0,aquatics,0,0,0 -853990592,Ilham Tanui Ozbilen,TUR,male,1990-03-05,1.77,60.0,athletics,0,0,0 -351709088,Ilia Druzhinin,RUS,male,1998-04-23,1.73,63.0,aquatics,0,0,0 -165852340,Ilia Shtokalov,RUS,male,1986-09-01,1.85,95.0,canoe,0,0,0 -50995857,Ilia Zakharov,RUS,male,1991-05-02,1.75,69.0,aquatics,0,0,0 -905071434,Ilias Iliadis,GRE,male,1986-11-10,1.79,90.0,judo,0,0,0 -448835262,Ilija Brozovic,CRO,male,1991-05-26,1.96,109.0,handball,0,0,0 -70065609,Ilke Ozyuksel,TUR,female,1997-02-26,1.67,53.0,modern pentathlon,0,0,0 -80054566,Illia Charheika,BLR,male,1993-04-15,1.79,81.0,shooting,0,0,0 -647841374,Illias Fifa,ESP,male,1989-05-16,1.73,68.0,athletics,0,0,0 -768750395,Illya Kvasha,UKR,male,1988-03-05,1.76,73.0,aquatics,0,0,0 -189313001,Illya Marchenko,UKR,male,1987-09-08,1.85,84.0,tennis,0,0,0 -169762981,Ilona Marhele,LAT,female,1986-04-05,1.64,50.0,athletics,0,0,0 -446700589,Ilse Paulis,NED,female,1993-07-30,1.74,57.0,rowing,1,0,0 -304002901,Ilya Golendov,KAZ,male,1994-10-02,1.85,87.0,canoe,0,0,0 -507272052,Ilya Khomenko,RUS,male,1995-10-14,1.81,75.0,aquatics,0,0,0 -755684703,Ilya Mokretcov,KAZ,male,1984-04-17,1.77,74.0,fencing,0,0,0 -971438297,Ilya Pervukhin,RUS,male,1991-07-06,1.83,82.0,canoe,0,0,0 -456650881,Ilya Tiapkin,KGZ,male,1991-08-02,1.6,65.0,athletics,0,0,0 -695779236,Ilyas Abbadi,ALG,male,1992-10-21,1.85,,boxing,0,0,0 -57892115,Imad Bassou,MAR,male,1993-07-04,1.73,66.0,judo,0,0,0 -587168078,Iman Essa Jasim,BRN,female,1997-07-09,,,athletics,0,0,0 -186497946,Imanol Erviti Ollo,ESP,male,1983-11-15,1.9,80.0,cycling,0,0,0 -303543728,Imene Ouneyssa Cherif Sahraoui,ALG,female,1995-09-14,1.65,64.0,sailing,0,0,0 -712856100,Imoh Ezekiel,NGR,male,1993-10-24,1.71,,football,0,0,1 -229646007,Imre Balazs Bacskai,HUN,male,1988-01-29,1.77,,boxing,0,0,0 -92960172,In Gee Chun,KOR,female,1994-08-10,1.76,70.0,golf,0,0,0 -158102208,Ina Nikulina,BLR,female,1995-02-23,1.72,66.0,rowing,0,0,0 -142973725,Inaki Aguilar Vicente,ESP,male,1983-09-09,1.89,82.0,aquatics,0,0,0 -952258564,Inaki Gomez,CAN,male,1988-01-16,1.72,59.0,athletics,0,0,0 -22566156,Inaki Villanueva,ESP,male,1991-02-10,1.98,103.0,rugby sevens,0,0,0 -349411929,Inbee Park,KOR,female,1988-07-12,1.68,60.0,golf,1,0,0 -471014946,Ines Boubakri,TUN,female,1988-12-28,1.67,56.0,fencing,0,0,1 -933685256,Ines Gmati,TUN,female,1997-04-05,1.65,70.0,sailing,0,0,0 -601743503,Ines Henriques,POR,female,1980-05-01,1.56,45.0,athletics,0,0,0 -26427576,Ines Melchor,PER,female,1986-08-30,1.52,45.0,athletics,0,0,0 -6720592,Ines Remersaro,URU,female,1992-12-02,1.67,55.0,aquatics,0,0,0 -71569433,Inessa Merkulova,RUS,female,1964-11-09,1.7,65.0,equestrian,0,0,0 -701169086,Inge Dekker,NED,female,1985-08-18,1.83,67.0,aquatics,0,0,0 -121871269,Inge Janssen,NED,female,1989-04-20,1.82,74.0,rowing,0,1,0 -771770373,Ingeborg Lovnes,NOR,female,1992-09-05,,,athletics,0,0,0 -569222306,Ingrid Klimke,GER,female,1968-04-01,1.72,58.0,equestrian,0,1,0 -778347841,Ingrid Oliveira,BRA,female,1996-05-07,1.6,58.0,aquatics,0,0,0 -449860583,Ingrid Puusta,EST,female,1990-11-08,1.63,57.0,sailing,0,0,0 -803332684,Ingrid Vidal,COL,female,1991-04-22,1.66,53.0,football,0,0,0 -464022421,Ingrit Lorena Valencia Victoria,COL,female,1988-09-03,1.6,,boxing,0,0,1 -454151024,Inigo Pena,ESP,male,1990-09-07,1.94,92.0,canoe,0,0,0 -22127464,Inika McPherson,USA,female,1986-09-29,,,athletics,0,0,0 -989454733,Injeong Choi,KOR,female,1990-05-21,1.74,59.0,fencing,0,0,0 -846310345,Inkululeko Suntele,LES,male,1994-04-30,,,boxing,0,0,0 -983898565,Inna Deriglazova,RUS,female,1990-03-10,1.73,61.0,fencing,1,0,0 -595647629,Inna Hryshchun,UKR,female,1994-09-29,1.72,72.0,canoe,0,0,0 -927315526,Inna Kashyna,UKR,female,1991-09-27,,,athletics,0,0,0 -204865458,Inna Klinova,KAZ,female,1986-05-13,1.73,78.0,canoe,0,0,0 -135745730,Inna Logutenkova,UKR,female,1986-10-19,1.72,63.0,equestrian,0,0,0 -980208758,Inna Osipenko-Rodomska,AZE,female,1982-09-20,1.66,63.0,canoe,0,0,1 -188617365,Inna Stepanova,RUS,female,1990-04-17,1.76,63.0,archery,0,1,0 -167916854,Inna Trazhukova,RUS,female,1990-09-11,1.7,63.0,wrestling,0,0,0 -163668674,Ioana Strungaru,ROU,female,1989-01-04,1.8,77.0,rowing,0,0,1 -562041099,Ioanna Anagnostopoulou,GRE,female,1997-06-12,1.81,58.0,gymnastics,0,0,0 -850374991,Ioannis Christou,GRE,male,1983-06-23,1.9,92.0,rowing,0,0,0 -617416112,Ioannis Fountoulis,GRE,male,1988-05-25,1.86,90.0,aquatics,0,0,0 -580426427,Ioannis Mitakis,GRE,male,1989-11-08,1.86,96.0,sailing,0,0,0 -115317084,Ioannis Petrou,GRE,male,1996-08-10,1.86,73.0,rowing,0,0,0 -557528943,Ioannis Tamouridis,GRE,male,1980-06-03,1.8,73.0,cycling,0,0,0 -576485074,Ioannis Tsilis,GRE,male,1986-07-15,1.83,86.0,rowing,0,0,0 -33869783,Ion Iulian Panait,ROU,male,1981-05-05,1.69,70.0,wrestling,0,0,0 -914048344,Ionela-Livia Lehaci,ROU,female,1995-01-03,1.78,57.0,rowing,0,0,0 -936581108,Ionica Munteanu,ROU,female,1979-01-07,1.75,68.0,handball,0,0,0 -113789263,Iosefo Verevou,FIJ,male,1996-01-05,1.9,96.0,football,0,0,0 -855720243,Ippei Watanabe,JPN,male,1997-03-18,1.93,76.0,aquatics,0,0,0 -442968220,Irakli Revishvili,GEO,male,1989-11-03,1.78,77.0,aquatics,0,0,0 -938066786,Irakli Turmanidze,GEO,male,1984-12-13,1.82,136.0,weightlifting,0,0,1 -513788347,Irem Karamete,TUR,female,1993-06-20,1.67,60.0,fencing,0,0,0 -508732843,Irene Otieno,KEN,female,1986-03-26,1.62,58.0,rugby sevens,0,0,0 -84886032,Irene Prescott,TGA,female,1994-06-21,1.74,74.0,aquatics,0,0,0 -182591826,Irene Vecchi,ITA,female,1989-06-10,1.7,56.0,fencing,0,0,0 -417651899,Irina Bliznova,RUS,female,1986-10-06,1.82,68.0,handball,1,0,0 -283851540,Irina Dolgova,RUS,female,1995-09-26,1.53,48.0,judo,0,0,0 -296869693,Irina Ektova,KAZ,female,1987-01-08,1.73,61.0,athletics,0,0,0 -804181328,Irina Embrich,EST,female,1980-07-12,1.7,54.0,fencing,0,0,0 -739855069,Irina Fetisova,RUS,female,1994-09-07,1.9,76.0,volleyball,0,0,0 -557552346,Irina Kalentyeva,RUS,female,1977-11-10,1.55,45.0,cycling,0,0,0 -917681217,Irina Podoinikova,KAZ,female,1988-06-28,1.66,65.0,canoe,0,0,0 -219669436,Irina Sazonova,ISL,female,1991-09-02,1.6,55.0,gymnastics,0,0,0 -696538108,Irina Smolnikova,KAZ,female,1980-07-21,1.63,55.0,athletics,0,0,0 -83837014,Irina Voronkova,RUS,female,1995-10-20,1.9,84.0,volleyball,0,0,0 -431895427,Irina Zabludina,RUS,female,1987-02-24,1.6,57.0,judo,0,0,0 -101444757,Irina Zaryazhko,RUS,female,1991-10-04,1.96,78.0,volleyball,0,0,0 -172876009,Irina-Camelia Begu,ROU,female,1990-08-26,1.81,70.0,tennis,0,0,0 -201635466,Irini Vasiliou,GRE,female,1990-03-18,1.69,58.0,athletics,0,0,0 -795911754,Iris Sing,BRA,female,1990-08-21,1.67,51.0,taekwondo,0,0,0 -642164387,Iris Wang,USA,female,1994-09-02,1.61,52.0,badminton,0,0,0 -587220722,Irma Testa,ITA,female,1997-12-28,1.74,,boxing,0,0,0 -784228861,Irmina Mrozek-Gliszczynska,POL,female,1992-02-09,1.76,70.0,sailing,0,0,0 -858423285,Irvette van Zyl,RSA,female,1987-07-05,1.69,53.0,athletics,0,0,0 -229536037,Irving Perez,MEX,male,1986-05-16,1.75,64.0,triathlon,0,0,0 -544870247,Iryna Dekha,UKR,female,1996-05-14,1.74,75.0,weightlifting,0,0,0 -448533729,Iryna Gerashchenko,UKR,female,1995-03-10,1.81,61.0,athletics,0,0,0 -851400427,Iryna Khokhlova,ARG,female,1990-01-29,1.67,60.0,modern pentathlon,0,0,0 -712655795,Iryna Klymets,UKR,female,1994-10-04,1.68,78.0,athletics,0,0,0 -123129605,Iryna Limanouskaya,BLR,female,1994-05-18,1.66,54.0,aquatics,0,0,0 -586982382,Iryna Novozhylova,UKR,female,1986-01-07,1.75,90.0,athletics,0,0,0 -413999687,Iryna Popova,UKR,female,1991-05-27,1.64,53.0,cycling,0,0,0 -312836609,Iryna Vaskouskaya,BLR,female,1991-04-02,1.79,65.0,athletics,0,0,0 -25232668,Iryna Yakaltsevich,BLR,female,1993-01-26,1.66,60.0,athletics,0,0,0 -862541606,Isaac Grainger,NZL,male,1992-05-26,1.96,95.0,rowing,0,0,0 -686113562,Isaac Korir,BRN,male,1990-08-26,1.88,59.0,athletics,0,0,0 -427843232,Isaac Makwala,BOT,male,1985-09-24,1.85,78.0,athletics,0,0,0 -231426919,Isaac Silafau,ASA,male,1990-10-05,1.75,68.0,athletics,0,0,0 -245903701,Isabel Brand,GUA,female,1996-06-23,1.69,53.0,modern pentathlon,0,0,0 -840841199,Isabel Cristina Romero Benitez,COL,female,1996-07-27,1.61,62.0,rugby sevens,0,0,0 -196950194,Isabel Evelize W. Guialo,ANG,female,1990-04-08,1.8,73.0,handball,0,0,0 -338940609,Isabel Kerschowski,GER,female,1988-01-22,1.67,57.0,football,1,0,0 -519820661,Isabel Swan,BRA,female,1983-11-18,1.81,69.0,sailing,0,0,0 -809661932,Isabela Macedo,BRA,female,1994-01-23,1.79,76.0,basketball,0,0,0 -210703897,Isabela Onyshko,CAN,female,1998-06-23,1.57,50.0,gymnastics,0,0,0 -630931206,Isabell Werth,GER,female,1969-07-21,1.69,66.0,equestrian,1,1,0 -526667108,Isabella Amado,PAN,female,1996-08-09,1.55,59.0,gymnastics,0,0,0 -610732042,Isabella Arcila Hurtado,COL,female,1994-03-11,1.68,64.0,aquatics,0,0,0 -435115822,Isabella Echeverri,COL,female,1994-06-16,1.72,66.0,football,0,0,0 -465840905,Isabella Isaksen,USA,female,1993-11-22,1.73,63.0,modern pentathlon,0,0,0 -978854513,Isabelle Forrer,SUI,female,1982-03-28,1.78,67.0,volleyball,0,0,0 -844071383,Isabelle Gullden,SWE,female,1989-06-29,1.77,76.0,handball,0,0,0 -729625063,Isabelle Haerle,GER,female,1988-01-10,1.75,64.0,aquatics,0,0,0 -846218313,Isabelle Pedersen,NOR,female,1992-01-27,,,athletics,0,0,0 -441669814,Isabelle Sambou,SEN,female,1980-10-20,1.55,53.0,wrestling,0,0,0 -61576654,Isabelle Yacoubou,FRA,female,1986-04-21,1.9,104.0,basketball,0,0,0 -684603129,Isadora Cerullo,BRA,female,1991-03-24,1.58,58.0,rugby sevens,0,0,0 -99018195,Isak Ohrstrom,SWE,male,1990-11-26,1.77,72.0,canoe,0,0,0 -624395952,Isamu Fujisawa,JPN,male,1987-10-12,1.65,54.0,athletics,0,0,0 -121190622,Isaquias Queiroz dos Santos,BRA,male,1994-01-03,1.75,85.0,canoe,0,2,1 -141207459,Isheau Wong,TPE,female,1989-02-12,1.79,70.0,equestrian,0,0,0 -887945521,Isiah Kiplangat Koech,KEN,male,1993-12-19,1.72,65.0,athletics,0,0,0 -181441933,Isidora Jimenez,CHI,female,1993-08-10,1.7,56.0,athletics,0,0,0 -874295706,Isidoro Ibarra,ARG,male,1992-10-02,1.75,75.0,hockey,1,0,0 -211473631,Isil Alben,TUR,female,1986-02-22,1.72,62.0,basketball,0,0,0 -218012478,Isis Gimenez,VEN,female,1990-07-30,1.7,68.0,fencing,0,0,0 -444343903,Islam El Shehaby,EGY,male,1982-08-01,1.95,105.0,judo,0,0,0 -642911122,Islam Magomedov,RUS,male,1991-02-08,1.82,98.0,wrestling,0,0,0 -318856332,Islam-Beka Albiev,RUS,male,1988-12-28,1.65,66.0,wrestling,0,0,0 -426130402,Ismael Borrero Molina,CUB,male,1992-01-06,1.6,59.0,wrestling,1,0,0 -17997174,Ismael Coulibaly,MLI,male,1992-11-20,1.91,78.0,taekwondo,0,0,0 -168084351,Ismael Marcelo Hernandez Uscanga,MEX,male,1990-01-23,1.78,64.0,modern pentathlon,0,0,1 -938396110,Ismail Kamara,SLE,male,1997-02-14,,,athletics,0,0,0 -183143122,Ismail Keles,TUR,male,1988-03-05,1.68,70.0,shooting,0,0,0 -843284700,Isobel Bishop,AUS,female,1991-09-08,1.8,72.0,aquatics,0,0,0 -997954972,Issam Tej,TUN,male,1979-07-29,1.87,110.0,handball,0,0,0 -133506247,Istvan Peni,HUN,male,1997-02-14,1.76,64.0,shooting,0,0,0 -347433647,Istvan Vereb,HUN,male,1987-10-08,1.81,90.0,wrestling,0,0,0 -521044712,Iszlam Monier Suliman,SUD,male,1990-12-17,1.82,90.0,judo,0,0,0 -177843995,Italo Duarte,BRA,male,1992-03-13,1.8,73.0,aquatics,0,0,0 -413617317,Itumeleng Khune,RSA,male,1987-06-20,1.84,75.0,football,0,0,0 -85278686,Itzel Adilene Manjarrez Bastidas,MEX,female,1990-04-10,1.71,49.0,taekwondo,0,0,0 -490237088,Iuliana Popa,ROU,female,1996-07-05,1.85,72.0,rowing,0,0,1 -886931188,Iuliia Andreeva,KGZ,female,1984-03-07,1.68,51.0,athletics,0,0,0 -734306362,Iuliia Olishevska,UKR,female,1989-02-02,1.67,60.0,athletics,0,0,0 -36280393,Iuliia Paratova,UKR,female,1986-11-07,1.55,48.0,weightlifting,0,0,0 -143130668,Iuliia Prokopchuk,UKR,female,1986-10-23,1.6,50.0,aquatics,0,0,0 -967646151,Iurii Cheban,UKR,male,1986-07-05,1.85,93.0,canoe,1,0,0 -689497328,Iurii Krakovetskii,KGZ,male,1992-08-27,1.8,130.0,judo,0,0,0 -898570375,Ivan Banzeruk,UKR,male,1990-02-09,1.8,70.0,athletics,0,0,0 -69692265,Ivan Cupic,CRO,male,1986-03-27,1.78,78.0,handball,0,0,0 -360210187,Ivan Dovhodko,UKR,male,1989-01-15,1.96,100.0,rowing,0,0,0 -666382432,Ivan Dychko,KAZ,male,1990-08-11,2.06,,boxing,0,0,1 -470445982,Ivan Efremov,UZB,male,1986-03-09,1.84,105.0,weightlifting,0,0,0 -784382414,Ivan Emilianov,MDA,male,1977-02-19,2.02,165.0,athletics,0,0,0 -77481096,Ivan Endericao,ECU,male,1991-10-28,1.78,80.0,aquatics,0,0,0 -725755440,Ivan Garcia,MEX,male,1993-10-25,1.6,55.0,aquatics,0,0,0 -435489428,Ivan Guidea,ROU,male,1988-05-12,1.63,60.0,wrestling,0,0,0 -98196983,Ivan Horvat,CRO,male,1993-08-17,1.83,73.0,athletics,0,0,0 -21185636,Ivan Ivanov,UKR,male,1989-01-08,1.83,67.0,triathlon,0,0,0 -731072777,Ivan Ivanov,KAZ,male,1992-01-03,2.02,144.0,athletics,0,0,0 -515991313,Ivan Kljakovic Gaspic,CRO,male,1984-05-24,1.89,95.0,sailing,0,0,0 -469953081,Ivan Krapic,CRO,male,1989-02-14,1.94,103.0,aquatics,0,1,0 -217049507,Ivan Pastor Lafuente,ESP,male,1980-02-18,1.77,73.0,sailing,0,0,0 -983627857,Ivan Pesic,CRO,male,1989-03-17,1.94,112.0,handball,0,0,0 -172346281,Ivan Popov,AUS,male,1986-05-25,2.03,106.0,wrestling,0,0,0 -363273561,Ivan Remarenco,UAE,male,1988-08-07,1.86,100.0,judo,0,0,0 -195192329,Ivan Sliskovic,CRO,male,1991-10-23,1.97,100.0,handball,0,0,0 -744721123,Ivan Sozonov,RUS,male,1989-07-06,1.8,78.0,badminton,0,0,0 -432949673,Ivan Stevanovic,CRO,male,1982-05-18,1.93,105.0,handball,0,0,0 -150785655,Ivan Stevic,SRB,male,1980-03-12,1.72,68.0,cycling,0,0,0 -858324078,Ivan Stretovich,RUS,male,1996-10-06,1.7,59.0,gymnastics,0,1,0 -337752893,Ivan Trotski,BLR,male,1976-05-27,1.72,62.0,athletics,0,0,0 -617539408,Ivan Tsikhan,BLR,male,1976-07-24,1.86,110.0,athletics,0,1,0 -33123082,Ivan Zaytsev,ITA,male,1988-10-02,2.04,100.0,volleyball,0,1,0 -177114501,Ivan Zaytsev,UZB,male,1988-11-07,1.92,95.0,athletics,0,0,0 -296305491,Ivana Andusic Maksimovic,SRB,female,1990-05-02,1.61,51.0,shooting,0,0,0 -313918380,Ivana Spanovic,SRB,female,1990-05-10,1.76,65.0,athletics,0,0,1 -666265585,Ivaylo Ivanov,BUL,male,1994-07-20,1.8,81.0,judo,0,0,0 -144103259,Ives Alonso,BRA,male,1980-10-12,1.91,102.0,aquatics,0,0,0 -621283199,Ivet Lalova-Collio,BUL,female,1984-05-18,1.68,56.0,athletics,0,0,0 -440079091,Iveta Putalova,SVK,female,1988-03-24,1.73,60.0,athletics,0,0,0 -45693208,Iveta Vacenovska,CZE,female,1986-03-22,1.68,58.0,table tennis,0,0,0 -237977103,Ivo Rodrigues,POR,male,1995-03-30,1.8,70.0,football,0,0,0 -447718633,Ivona Dadic,AUT,female,1993-12-29,1.79,65.0,athletics,0,0,0 -958847456,Iwona Lewandowska,POL,female,1985-02-19,1.61,43.0,athletics,0,0,0 -909695929,Iwona Nina Matkowska,POL,female,1982-05-28,1.6,48.0,wrestling,0,0,0 -951915327,Izabella Chiappini,BRA,female,1995-09-28,1.7,59.0,aquatics,0,0,0 -645206665,Iziane Castro,BRA,female,1982-03-13,1.81,69.0,basketball,0,0,0 -324317073,Izmir Smajlaj,ALB,male,1993-03-29,1.95,86.0,athletics,0,0,0 -269077637,Izzat Artykov,KGZ,male,1993-09-08,1.6,69.0,weightlifting,0,0,0 -963470653,Izzet Safer,TUR,male,1990-07-10,1.78,74.0,athletics,0,0,0 -860885364,Izzy Joachim,VIN,female,2000-05-11,,,aquatics,0,0,0 -478575859,J'den Michael Tbory Cox,USA,male,1995-03-03,1.81,85.0,wrestling,0,0,1 -411708041,Jaak-Heinrich Jagor,EST,male,1990-05-11,1.9,80.0,athletics,0,0,0 -108953366,Jabrayil Hasanov,AZE,male,1990-02-24,1.7,74.0,wrestling,0,0,1 -299391231,Jacco Arends,NED,male,1991-01-28,1.86,72.0,badminton,0,0,0 -788110686,Jack Beaumont,GBR,male,1993-11-21,1.88,88.0,rowing,0,0,0 -579353978,Jack Bobridge,AUS,male,1989-07-13,1.8,65.0,cycling,0,1,0 -760496010,Jack Burnell,GBR,male,1993-06-13,1.85,72.0,aquatics,0,0,0 -762346507,Jack Conger,USA,male,1994-09-26,1.94,79.0,aquatics,1,0,0 -603033705,Jack Green,GBR,male,1991-10-06,1.93,78.0,athletics,0,0,0 -123646851,Jack Laugher,GBR,male,1995-01-30,1.68,72.0,aquatics,1,1,0 -438635106,Jack McLoughlin,AUS,male,1995-02-01,1.83,75.0,aquatics,0,0,0 -485335601,Jack Rossiter,AUS,male,1997-06-13,1.71,70.0,shooting,0,0,0 -466400637,Jack Sock,USA,male,1992-09-24,1.91,83.0,tennis,1,0,1 -88575304,Jackeline Renteria Castillo,COL,female,1986-02-23,1.67,58.0,wrestling,0,0,0 -818815252,Jackie Baumann,GER,female,1995-08-24,1.73,58.0,athletics,0,0,0 -570931875,Jackie Galloway,USA,female,1995-12-27,1.78,79.0,taekwondo,0,0,1 -305555615,Jacko Gill,NZL,male,1994-12-20,1.89,120.0,athletics,0,0,0 -637078881,Jackson Kiprop,UGA,male,1986-10-20,,,athletics,0,0,0 -547359586,Jackson Rondinelli,BRA,male,1994-05-20,1.63,62.0,aquatics,0,0,0 -181043384,Jaclyn Briggs,USA,female,1988-05-23,1.68,61.0,hockey,0,0,0 -390353746,Jaco van Zyl,RSA,male,1979-02-23,1.84,74.0,golf,0,0,0 -144248521,Jacob Araptany,UGA,male,1994-02-11,,,athletics,0,0,0 -28259305,Jacob Barsoe,DEN,male,1988-09-21,1.88,73.0,rowing,0,1,0 -135293995,Jacob Bruun Larsen,DEN,male,1998-09-19,1.83,74.0,football,0,0,0 -521943829,Jacob Clear,AUS,male,1985-01-18,1.85,86.0,canoe,0,0,0 -775250732,Jacob Dalton,USA,male,1991-08-19,1.52,65.0,gymnastics,0,0,0 -260432807,Jacob Gibb,USA,male,1976-02-06,2.01,95.0,volleyball,0,0,0 -682128898,Jacob Hansford,AUS,male,1995-09-28,1.82,77.0,aquatics,0,0,0 -6706851,Jacob Heidtmann,GER,male,1994-11-06,1.95,83.0,aquatics,0,0,0 -194290880,Jacob Kiplimo,UGA,male,2000-11-14,,,athletics,0,0,0 -561768430,Jacob Larsen,DEN,male,1988-06-13,1.82,73.0,rowing,0,1,0 -199313141,Jacob Maliekal,RSA,male,1991-01-01,1.72,72.0,badminton,0,0,0 -888054041,Jacob Pebley,USA,male,1993-09-17,1.94,86.0,aquatics,0,0,0 -807399236,Jacob Rozani,RSA,male,1988-01-24,,,athletics,0,0,0 -934183083,Jacob Saunders,CAN,male,1992-04-15,1.76,64.0,sailing,0,0,0 -24055098,Jacob Stockmann,NED,male,1984-07-24,1.93,80.0,hockey,0,0,0 -176550067,Jacob Une Larsson,SWE,male,1994-04-08,1.78,70.0,football,0,0,0 -65437843,Jacob Whetton,AUS,male,1991-06-15,1.72,64.0,hockey,0,0,0 -412344813,Jacqueline Simoneau,CAN,female,1996-09-29,1.65,51.0,aquatics,0,0,0 -761781098,Jade Barbosa,BRA,female,1991-07-01,1.51,45.0,gymnastics,0,0,0 -401122423,Jade Howard,ZAM,female,1995-04-03,1.82,68.0,aquatics,0,0,0 -789368570,Jade Jones,GBR,female,1993-03-21,1.67,57.0,taekwondo,1,0,0 -899823544,Jade Lally,GBR,female,1987-03-30,1.82,88.0,athletics,0,0,0 -506534023,Jade Uru,NZL,male,1987-10-20,1.89,88.0,rowing,0,0,0 -142475326,Jade le Pesq,FRA,female,1992-10-12,1.63,63.0,rugby sevens,0,0,0 -609790430,Jaeyeong Lee,KOR,female,1996-10-15,1.78,66.0,volleyball,0,0,0 -732777985,Jagdish Gill,CAN,male,1984-12-05,1.75,77.0,hockey,0,0,0 -452242951,Jaheel Hyde,JAM,male,1997-02-02,1.8,74.0,athletics,0,0,0 -355490411,Jahir Ocampo,MEX,male,1990-01-12,1.78,80.0,aquatics,0,0,0 -519260746,Jahvid Best,LCA,male,1989-01-30,,,athletics,0,0,0 -300681433,Jailma de Lima,BRA,female,1986-12-31,1.74,65.0,athletics,0,0,0 -863481965,Jaime Nielsen,NZL,female,1985-09-03,1.77,70.0,cycling,0,0,0 -859145173,Jaime Quiyuch,GUA,male,1988-04-24,1.78,63.0,athletics,0,0,0 -200267269,Jaime Ryan,AUS,female,1994-05-08,1.75,68.0,sailing,0,0,0 -524949052,Jaime Yusept Espinal,PUR,male,1984-10-14,1.78,86.0,wrestling,0,0,0 -467840408,Jaimee Lovett,NZL,female,1988-05-05,1.67,83.0,canoe,0,0,0 -93687880,Jaisha Orchatteri,IND,female,1983-05-23,1.54,43.0,athletics,0,0,0 -47754234,Jak Ali Harvey,TUR,male,1989-05-04,1.83,74.0,athletics,0,0,0 -280957264,Jake Bensted,AUS,male,1994-03-04,1.73,73.0,judo,0,0,0 -507019886,Jake Kaminski,USA,male,1988-08-11,1.78,70.0,archery,0,1,0 -191443309,Jake Lilley,AUS,male,1993-07-20,2.04,98.0,sailing,0,0,0 -742672786,Jake Milton Green,RSA,male,1994-03-30,1.92,90.0,rowing,0,0,0 -919219233,Jake Packard,AUS,male,1994-06-20,1.95,68.0,aquatics,0,0,1 -833814609,Jakob Fuglsang,DEN,male,1985-03-22,1.83,69.0,cycling,0,1,0 -248905348,Jakob Makarashvili,GEO,male,1985-12-28,1.74,80.0,wrestling,0,0,0 -391045084,Jakov Gojun,CRO,male,1986-04-18,2.03,112.0,handball,0,0,0 -654667926,Jakson Vicent Monasterio,VEN,male,1991-12-31,,,rowing,0,0,0 -673012015,Jakub Dyjas,POL,male,1995-10-09,1.83,54.0,table tennis,0,0,0 -215360776,Jakub Grigar,SVK,male,1997-04-27,1.83,81.0,canoe,0,0,0 -63505242,Jakub Holusa,CZE,male,1988-02-20,1.83,72.0,athletics,0,0,0 -711962459,Jakub Jelonek,POL,male,1985-07-07,1.85,67.0,athletics,0,0,0 -566482718,Jakub Krzewina,POL,male,1989-10-10,1.82,79.0,athletics,0,0,0 -384653943,Jakub Podrazil,CZE,male,1992-01-09,1.99,100.0,rowing,0,0,0 -141908387,Jakub Vadlejch,CZE,male,1990-10-10,1.91,93.0,athletics,0,0,0 -719778285,Jale Dreloa,FIJ,male,1995-04-21,1.7,88.0,football,0,0,0 -118360942,Jamal Wilson,BAH,male,1988-09-01,,,athletics,0,0,0 -741666206,Jamaladdin Magomedov,AZE,male,1989-03-14,1.86,125.0,wrestling,0,0,0 -190769127,James Adede,KEN,male,1986-10-31,1.62,93.0,weightlifting,0,0,0 -476158406,James Connor,AUS,male,1995-05-05,1.83,70.0,aquatics,0,0,0 -384973651,James Cooke,GBR,male,1991-03-03,1.85,74.0,modern pentathlon,0,0,0 -805860316,James Coughlan,NZL,male,1990-08-28,1.83,78.0,hockey,0,0,0 -595946076,James Dasaolu,GBR,male,1987-09-05,1.87,88.0,athletics,0,0,0 -425329772,James Davies,GBR,male,1990-10-25,1.81,98.0,rugby sevens,0,1,0 -871780908,James Ellington,GBR,male,1985-09-06,1.79,81.0,athletics,0,0,0 -927707277,James Feigen,USA,male,1989-09-26,1.96,97.0,aquatics,1,0,0 -924475457,James Guy,GBR,male,1995-11-26,1.88,84.0,aquatics,0,2,0 -884248663,James Hunter,NZL,male,1992-08-24,1.85,70.0,rowing,0,0,0 -835838469,James Lassche,NZL,male,1989-08-31,1.91,71.0,rowing,0,0,0 -311569529,James Magnussen,AUS,male,1991-04-11,1.97,95.0,aquatics,0,0,1 -966013251,James McRAE,AUS,male,1987-06-27,1.93,93.0,rowing,0,1,0 -487094967,James Nyang Chiengjiek,ROT,male,1992-03-02,1.79,59.0,athletics,0,0,0 -451338958,James Paterson-Robinson,AUS,male,1978-09-29,1.7,72.0,equestrian,0,0,0 -964836144,James Reid,RSA,male,1992-08-01,1.8,70.0,cycling,0,0,0 -252455377,James Rendon,COL,male,1985-04-07,1.7,64.0,athletics,0,0,0 -950874222,James Roberts,AUS,male,1991-04-11,1.94,90.0,aquatics,0,0,1 -942584385,James Rodwell,GBR,male,1984-08-23,1.95,105.0,rugby sevens,0,1,0 -690378941,James Stannard,AUS,male,1983-02-21,1.73,82.0,rugby sevens,0,0,0 -538679620,James Stanton-French,AUS,male,1983-07-21,2.0,93.0,aquatics,0,0,0 -844650938,James Thompson,RSA,male,1986-11-18,1.82,70.0,rowing,0,0,0 -291252183,James Willett,AUS,male,1995-12-23,1.86,88.0,shooting,0,0,0 -139948765,James-Andrew Davis,GBR,male,1991-07-03,1.95,98.0,fencing,0,0,0 -745045178,Jamial Rolle,BAH,male,1980-08-16,1.74,70.0,athletics,0,0,0 -219901271,Jamie Broder,CAN,female,1985-06-08,1.72,64.0,volleyball,0,0,0 -690805480,Jamie Dwyer,AUS,male,1979-03-12,1.72,68.0,hockey,0,0,0 -116149715,Jamie Murray,GBR,male,1986-02-13,1.9,84.0,tennis,0,0,0 -742530788,Jamie Subandhi,USA,female,1989-12-15,1.63,58.0,badminton,0,0,0 -531741106,Jamila Lunkuse,UGA,female,1997-06-01,,,aquatics,0,0,0 -892658314,Jamila Sanmoogan,GUY,female,1997-03-20,1.43,58.0,aquatics,0,0,0 -153070028,Jamile Samuel,NED,female,1992-04-24,1.68,59.0,athletics,0,0,0 -48596156,Jamina Roberts,SWE,female,1990-05-28,1.76,67.0,handball,0,0,0 -621534555,Jan Barta,CZE,male,1984-12-07,1.84,75.0,cycling,0,0,0 -551500091,Jan Benzien,GER,male,1982-07-22,1.8,75.0,canoe,0,0,0 -44393712,Jan Kudlicka,CZE,male,1988-04-29,1.84,82.0,athletics,0,0,0 -143054304,Jan Kuf,CZE,male,1991-05-11,1.86,78.0,modern pentathlon,0,0,0 -192330093,Jan Lochbihler,SUI,male,1992-03-03,1.87,92.0,shooting,0,0,0 -958304454,Jan Micka,CZE,male,1995-01-15,1.83,76.0,aquatics,0,0,0 -809864436,Jan O Jorgensen,DEN,male,1987-12-31,1.84,76.0,badminton,0,0,0 -33776196,Jan Polanc,SLO,male,1992-05-06,1.72,60.0,cycling,0,0,0 -860104103,Jan Skarnitzl,CZE,male,1986-07-11,1.79,68.0,cycling,0,0,0 -973675297,Jan Sterba,CZE,male,1981-06-01,1.83,85.0,canoe,0,0,1 -798223501,Jan Switkowski,POL,male,1994-01-23,1.93,82.0,aquatics,0,0,0 -810723660,Jan Vandrey,GER,male,1991-12-11,1.88,88.0,canoe,1,0,0 -283291174,Jan Vetesnik,CZE,male,1984-03-05,1.82,70.0,rowing,0,0,0 -283817717,Jan-Lennard Struff,GER,male,1990-04-25,1.96,91.0,tennis,0,0,0 -591169958,Jan-Philip Glania,GER,male,1988-11-08,1.94,90.0,aquatics,0,0,0 -726313430,Jan-Willem van Schip,NED,male,1994-08-20,1.94,83.0,cycling,0,0,0 -918569259,Jana Beckmann,GER,female,1983-05-02,1.7,60.0,shooting,0,0,0 -87919102,Jana Berezko-Marggrander,GER,female,1995-10-17,1.69,55.0,gymnastics,0,0,0 -378489397,Jana Dukatova,SVK,female,1983-06-13,1.8,64.0,canoe,0,0,0 -625488850,Jana Labathova,SVK,female,1988-09-27,1.62,50.0,aquatics,0,0,0 -117098951,Jana Pechanova,CZE,female,1981-03-03,1.7,62.0,aquatics,0,0,0 -839957321,Jana Teschke,GER,female,1990-09-22,1.68,56.0,hockey,0,0,1 -957642024,Jana Veldakova,SVK,female,1981-06-03,1.78,60.0,athletics,0,0,0 -947261546,Janay Deloach,USA,female,1985-10-12,1.66,58.0,athletics,0,0,0 -481441857,Jandi Kim,KOR,female,1991-06-15,1.63,57.0,judo,0,0,0 -40347261,Jane Claxton,AUS,female,1992-10-26,1.69,60.0,hockey,0,0,0 -748137388,Jane Vongvorachoti,THA,female,1984-01-07,1.66,53.0,athletics,0,0,0 -896595402,Janeil Bellille,TTO,female,1989-06-18,1.63,59.0,athletics,0,0,0 -71008427,Janet Amponsah,GHA,female,1993-04-12,1.71,,athletics,0,0,0 -910286492,Janet Okelo,KEN,female,1992-05-05,1.72,60.0,rugby sevens,0,0,0 -900614005,Janet Owino,KEN,female,1985-08-08,1.65,65.0,rugby sevens,0,0,0 -229768260,Janete Viegas dos Santos,ANG,female,1991-06-10,1.75,68.0,handball,0,0,0 -817731370,Jangmi Kim,KOR,female,1992-09-25,1.6,53.0,shooting,0,0,0 -629610747,Janice Teixeira,BRA,female,1962-05-20,1.7,73.0,shooting,0,0,0 -633346217,Janieve Russell,JAM,female,1993-11-14,1.75,64.0,athletics,0,0,0 -192489040,Janika Sprunger,SUI,female,1987-05-29,1.68,54.0,equestrian,0,0,0 -497079797,Janine Beckie,CAN,female,1994-08-20,1.73,63.0,football,0,0,1 -20326038,Janine van Wyk,RSA,female,1987-04-17,1.63,61.0,football,0,0,0 -882695911,Janis Smedins,LAT,male,1987-07-31,1.91,89.0,volleyball,0,0,0 -523195798,Janja Segel,SLO,female,2001-06-17,1.77,60.0,aquatics,0,0,0 -974901356,Jannah Sonnenschein,MOZ,female,1996-04-24,1.68,60.0,aquatics,0,0,0 -141611680,Janne Muller-Wieland,GER,female,1986-10-28,1.75,69.0,hockey,0,0,1 -513737062,Jannick Green Krejberg,DEN,male,1988-09-29,1.95,95.0,handball,1,0,0 -18696294,Jannik Huth,GER,male,1994-04-15,1.85,80.0,football,0,1,0 -900686372,Jantine van der Vlist,NED,female,1985-10-30,1.82,74.0,volleyball,0,0,0 -742091391,Jaouad Achab,BEL,male,1992-08-20,1.75,64.0,taekwondo,0,0,0 -930205655,Jaqueline Antonia Ferreira,BRA,female,1987-03-05,1.65,75.0,weightlifting,0,0,0 -802446612,Jaqueline Endres,BRA,female,1983-12-31,1.86,71.0,volleyball,0,0,0 -565862528,Jared Jarvis,ANT,male,1994-08-29,,,athletics,0,0,0 -541393183,Jared Tallent,AUS,male,1984-10-17,1.78,58.0,athletics,0,1,0 -586477204,Jared Ward,USA,male,1988-09-09,1.78,65.0,athletics,0,0,0 -258997468,Jarimit Leonor Weffer Guanipa,VEN,female,1985-11-03,1.58,75.0,wrestling,0,0,0 -35220711,Jarkko Kinnunen,FIN,male,1984-01-19,1.88,69.0,athletics,0,0,0 -148216352,Jarlan Junior Barrera Escalona,COL,male,1995-09-16,1.71,68.0,football,0,0,0 -797374623,Jarlinson Pantano Gomez,COL,male,1988-11-19,,,cycling,0,0,0 -100552265,Jaromir Jezek,CZE,male,1986-11-13,1.8,78.0,judo,0,0,0 -598101856,Jaroslav Baba,CZE,male,1984-09-02,1.99,86.0,athletics,0,0,0 -167236182,Jaroslav Kulhavy,CZE,male,1985-01-08,1.88,77.0,cycling,0,1,0 -727556594,Jaroslav Radon,CZE,male,1986-09-03,1.85,85.0,canoe,0,0,0 -226767205,Jarred Crous,RSA,male,1996-06-27,1.87,84.0,aquatics,0,0,0 -573245976,Jarrin Solomon,TTO,male,1986-01-11,1.65,73.0,athletics,0,0,0 -357249315,Jarrion Lawson,USA,male,1994-05-06,1.88,78.0,athletics,0,0,0 -649163218,Jarrod Gilchrist,AUS,male,1990-06-13,1.89,90.0,aquatics,0,0,0 -935549019,Jarrod Poort,AUS,male,1994-10-31,1.85,85.0,aquatics,0,0,0 -977628785,Jarryd Dunn,GBR,male,1992-01-30,1.84,74.0,athletics,0,0,0 -891780988,Jaruwat Saensuk,THA,male,1996-05-21,1.85,76.0,rowing,0,0,0 -164713165,Jasa Veremalua,FIJ,male,1988-05-29,1.95,98.0,rugby sevens,1,0,0 -489559768,Jasmin Glaesser,CAN,female,1992-07-08,1.67,58.0,cycling,0,0,1 -63237381,Jasmin Kuelbs,GER,female,1991-11-07,1.78,127.0,judo,0,0,0 -899306265,Jasmina Jankovic,NED,female,1986-12-06,1.7,77.0,handball,0,0,0 -742296215,Jasmine Alkhaldi,PHI,female,1993-06-20,1.8,60.0,aquatics,0,0,0 -245188087,Jasmine Camacho-Quinn,PUR,female,1996-09-21,1.8,73.0,athletics,0,0,0 -851518120,Jasmine Joyce,GBR,female,1995-10-09,1.63,55.0,rugby sevens,0,0,0 -481452678,Jasmine Mian,CAN,female,1989-12-31,1.55,48.0,wrestling,0,0,0 -690689063,Jasmine Pereira,NZL,female,1996-07-20,1.68,66.0,football,0,0,0 -963694537,Jason Block,CAN,male,1989-12-28,1.82,82.0,aquatics,0,0,0 -883244567,Jason Burnett,CAN,male,1986-12-16,1.65,60.0,gymnastics,0,0,0 -42049937,Jason Eric Whateley,AUS,male,1990-11-18,1.96,,boxing,0,0,0 -441111357,Jason Kenny,GBR,male,1988-03-23,1.78,81.0,cycling,3,0,0 -316427261,Jason Osborne,GER,male,1994-03-20,1.78,72.0,rowing,0,0,0 -452497047,Jason Pryor,USA,male,1987-09-26,1.76,79.0,fencing,0,0,0 -744419570,Jason Rogers,SKN,male,1991-08-31,1.73,69.0,athletics,0,0,0 -789226204,Jason Saunders,NZL,male,1990-11-22,1.88,78.0,sailing,0,0,0 -572050627,Jason Waterhouse,AUS,male,1991-11-08,1.85,75.0,sailing,0,1,0 -687929140,Jason Wilson,BAR,male,1990-10-31,1.8,68.0,triathlon,0,0,0 -242349264,Jaspar Woon Chai Yu,BRU,male,1988-11-14,1.67,60.0,badminton,0,0,0 -430283478,Jasper Aerents,BEL,male,1992-12-18,1.91,86.0,aquatics,0,0,0 -662058490,Jasper De Buyst,BEL,male,1993-11-24,1.78,69.0,cycling,0,0,0 -340877377,Jasper Lefevere,BEL,male,1988-07-13,1.71,66.0,judo,0,0,0 -19724524,Javad Mahjoub,IRI,male,1991-05-26,1.86,100.0,judo,0,0,0 -850918376,Javere Bell,JAM,male,1992-09-20,1.83,77.0,athletics,0,0,0 -532207877,Javid Chalabiyev,AZE,male,1992-05-17,1.7,,boxing,0,0,0 -228472408,Javid Hamzatau,BLR,male,1989-12-27,1.76,91.0,wrestling,0,0,1 -896286523,Javier Acevedo,CAN,male,1998-01-28,1.82,68.0,aquatics,0,0,0 -581496209,Javier Carrion,ESP,male,1990-11-09,1.88,100.0,rugby sevens,0,0,0 -389108533,Javier Cienfuegos,ESP,male,1990-07-15,1.87,110.0,athletics,0,0,0 -439713366,Javier Cortina Lacerra,CUB,male,1987-04-12,1.85,97.0,wrestling,0,0,0 -942940677,Javier Culson,PUR,male,1984-07-25,2.0,82.0,athletics,0,0,0 -340352113,Javier Garcia Gadea,CRO,male,1984-01-05,1.98,92.0,aquatics,0,1,0 -760029563,Javier Hernanz Agueria,ESP,male,1983-02-01,1.86,83.0,canoe,0,0,0 -904572193,Javier Jimenez Scull,CUB,male,1989-11-16,1.98,89.0,volleyball,0,0,0 -728027225,Javier Octavio Concepcion Rojas,CUB,male,1997-12-27,2.0,84.0,volleyball,0,0,0 -834026891,Javier Rojas,ARG,male,1991-04-15,1.88,81.0,rugby sevens,0,0,0 -23901411,Javon Francis,JAM,male,1994-12-04,1.83,68.0,athletics,0,1,0 -553955864,Jay Blankenau,CAN,male,1989-09-27,1.94,94.0,volleyball,0,0,0 -570894983,Jay Litherland,USA,male,1995-08-24,1.83,79.0,aquatics,0,0,0 -61075691,Jay Shi,USA,male,1979-02-23,1.73,61.0,shooting,0,0,0 -395224823,Jayme Mata,ARU,male,1982-12-17,1.72,67.0,judo,0,0,0 -25728763,Jaysuma Saidy Ndure,NOR,male,1984-01-01,,,athletics,0,0,0 -350157840,Jazmin Sawyers,GBR,female,1994-05-21,1.6,61.0,athletics,0,0,0 -217440009,Jazz Carlin,GBR,female,1990-09-17,1.76,62.0,aquatics,0,2,0 -23042514,Jean Baptiste Bernaz,FRA,male,1987-07-18,1.9,80.0,sailing,0,0,0 -604309234,Jean Marie Okutu,ESP,male,1988-12-17,1.78,70.0,athletics,0,0,0 -344886355,Jean Paulo Fernandes Filho,BRA,male,1995-10-26,,,football,0,0,0 -82070854,Jean Pierre Renan Bourhis,SEN,male,1995-03-29,1.78,73.0,canoe,0,0,0 -472715886,Jean Quiquampoix,FRA,male,1995-11-03,1.89,85.0,shooting,0,1,0 -601724690,Jean-Charles Valladont,FRA,male,1989-03-20,1.8,83.0,archery,0,1,0 -250421057,Jean-Julien Rojer,NED,male,1981-08-25,1.84,81.0,tennis,0,0,0 -83700650,Jean-Luc Rasamoelina,ANG,male,1989-10-04,1.8,77.0,rowing,0,0,0 -464354011,Jean-Marc Gardette,SEY,male,1984-07-04,1.69,68.0,sailing,0,0,0 -858350003,Jean-Michel Lucenay,FRA,male,1978-04-25,1.86,78.0,fencing,1,0,0 -984646645,Jean-Paul Tony Helissey,FRA,male,1990-03-28,1.77,77.0,fencing,0,1,0 -376385376,Jeanelle Scheper,LCA,female,1994-11-21,1.78,42.0,athletics,0,0,0 -714090699,Jeanette Ottesen,DEN,female,1987-12-30,1.8,72.0,aquatics,0,0,1 -317188820,Jeanine Assani Issouf,FRA,female,1992-08-17,1.7,53.0,athletics,0,0,0 -39856517,Jeanine Cicognini,ITA,female,1986-11-14,1.7,73.0,badminton,0,0,0 -437241883,Jeannine Gmelin,SUI,female,1990-06-20,1.7,72.0,rowing,0,0,0 -953949869,Jeemin Ha,KOR,male,1989-03-21,1.86,83.0,sailing,0,0,0 -555512079,Jeff Henderson,USA,male,1989-02-19,1.83,85.0,athletics,1,0,0 -553883529,Jeff Porter,USA,male,1985-11-27,1.83,86.0,athletics,0,0,0 -861092041,Jefferson Lerma,COL,male,1994-10-25,1.82,76.0,football,0,0,0 -989207170,Jefferson Milano,VEN,male,1995-11-21,1.85,85.0,cycling,0,0,0 -488880132,Jefferson Santos Pereira,QAT,male,1989-06-08,1.8,86.0,volleyball,0,0,0 -246975227,Jeffery Gibson,BAH,male,1990-08-15,,,athletics,0,0,0 -470772822,Jeffrey Hoogland,NED,male,1993-03-16,1.85,97.0,cycling,0,0,0 -936447868,Jeffrey Julmis,HAI,male,1987-09-30,1.85,79.0,athletics,0,0,0 -984151393,Jeffrey Riseley,AUS,male,1986-11-11,1.92,74.0,athletics,0,0,0 -189507792,Jeffrey Wammes,NED,male,1987-04-24,1.68,66.0,gymnastics,0,0,0 -870523852,Jehue Gordon,TTO,male,1991-12-15,1.88,81.0,athletics,0,0,0 -71774163,Jelena Jankovic,SRB,female,1985-02-28,1.75,65.0,tennis,0,0,0 -264088273,Jelena Milovanovic,SRB,female,1989-04-28,1.9,84.0,basketball,0,0,1 -225359768,Jelena Nikolic,SRB,female,1982-04-13,1.94,79.0,volleyball,0,1,0 -893813052,Jelena Ostapenko,LAT,female,1997-06-08,1.78,68.0,tennis,0,0,0 -987915621,Jelena Prokopcuka,LAT,female,1976-09-21,1.68,52.0,athletics,0,0,0 -42938484,Jelle Geens,BEL,male,1993-03-26,1.72,61.0,triathlon,0,0,0 -763826075,Jelle van Gorkom,NED,male,1991-01-05,1.87,93.0,cycling,0,1,0 -990787231,Jemima Jelagat Sumgong,KEN,female,1984-12-21,1.6,45.0,athletics,1,0,0 -784252790,Jena Hansen,DEN,female,1988-12-10,1.66,60.0,sailing,0,0,1 -488021170,Jenia Grebennikov,FRA,male,1990-08-13,1.88,85.0,volleyball,0,0,0 -247726114,Jenly Wini,SOL,female,1983-06-09,1.65,58.0,weightlifting,0,0,0 -617821916,Jenna Laukkanen,FIN,female,1995-03-02,1.82,80.0,aquatics,0,0,0 -898091953,Jenna Prandini,USA,female,1992-11-20,1.73,59.0,athletics,0,0,0 -499225934,Jennie Johansson,SWE,female,1988-06-15,1.88,71.0,aquatics,0,0,0 -970609954,Jennifer Abel,CAN,female,1991-08-23,1.6,59.0,aquatics,0,0,0 -385452766,Jennifer Cesar,VEN,female,1989-05-26,1.59,57.0,cycling,0,0,0 -188078227,Jennifer Chieng,FSM,female,1986-04-29,1.61,,boxing,0,0,0 -622375220,Jennifer Cleary,AUS,female,1993-06-22,1.75,71.0,rowing,0,0,0 -657843784,Jennifer Dahlgren,ARG,female,1984-04-21,1.8,110.0,athletics,0,0,0 -117886185,Jennifer Frank Casanas,ESP,male,1978-10-18,1.87,117.0,athletics,0,0,0 -393564226,Jennifer Galais,FRA,female,1992-03-07,1.69,59.0,athletics,0,0,0 -335752581,Jennifer Hens,AUS,female,1986-08-01,1.74,60.0,shooting,0,0,0 -74441554,Jennifer Kish,CAN,female,1988-07-07,1.72,73.0,rugby sevens,0,0,1 -225406139,Jennifer Madu,NGR,female,1994-09-23,1.68,65.0,athletics,0,0,0 -729488450,Jennifer Martins,CAN,female,1989-01-31,1.79,76.0,rowing,0,0,0 -220670322,Jennifer McIntosh,GBR,female,1991-06-17,1.75,80.0,shooting,0,0,0 -408612404,Jennifer Oeser,GER,female,1983-11-29,1.75,68.0,athletics,0,0,0 -500359548,Jennifer Simpson,USA,female,1986-08-23,1.66,53.0,athletics,0,0,1 -626745836,Jennifer Suhr,USA,female,1982-02-05,1.83,65.0,athletics,0,0,0 -626532715,Jennifer Troncy,FRA,female,1986-01-26,1.57,58.0,rugby sevens,0,0,0 -871842382,Jennifer Valente,USA,female,1994-12-24,1.76,74.0,cycling,0,1,0 -868014010,Jennifer Wenth,AUT,female,1991-07-24,1.66,47.0,athletics,0,0,0 -331294014,Jenny Alm,SWE,female,1989-04-10,1.84,80.0,handball,0,0,0 -159950160,Jenny Blundell,AUS,female,1994-05-09,1.63,49.0,athletics,0,0,0 -597803357,Jenny Elbe,GER,female,1990-04-18,1.8,64.0,athletics,0,0,0 -596979059,Jenny Lyvette Arthur,USA,female,1993-12-11,1.66,75.0,weightlifting,0,0,0 -624049012,Jenny Mensing,GER,female,1986-02-26,1.83,70.0,aquatics,0,0,0 -87849675,Jenny Rissveds,SWE,female,1994-06-06,1.65,55.0,cycling,1,0,0 -754902821,Jens Jonsson,DEN,male,1993-01-10,1.84,78.0,football,0,0,0 -229792766,Jens Schuermans,BEL,male,1993-02-13,1.75,64.0,cycling,0,0,0 -953566525,Jeong Eun Lee,KOR,female,1994-09-13,1.53,40.0,athletics,0,0,0 -188621072,Jeongah Park,KOR,female,1993-03-26,1.86,75.0,volleyball,0,0,0 -23908007,Jeongsik Won,KOR,male,1990-12-09,1.63,69.0,weightlifting,0,0,0 -981837262,Jeppe Hojbjerg,DEN,male,1995-04-30,1.95,95.0,football,0,0,0 -974287219,Jereem Richards,TTO,male,1994-01-13,1.89,,athletics,0,0,0 -787131282,Jeremie Azou,FRA,male,1989-04-02,1.78,71.0,rowing,1,0,0 -464988921,Jeremie Mion,FRA,male,1989-07-05,1.87,74.0,sailing,0,0,0 -841582256,Jeremy Aicardi,FRA,male,1988-11-26,1.78,83.0,rugby sevens,0,0,0 -862582190,Jeremy Cadot,FRA,male,1986-11-07,1.85,78.0,fencing,0,1,0 -240137595,Jeremy Desplanches,SUI,male,1994-08-07,1.89,73.0,aquatics,0,0,0 -357577386,Jeremy Dodson,SAM,male,1987-08-30,,,athletics,0,0,0 -612661000,Jeremy Hayward,AUS,male,1993-03-03,1.81,82.0,hockey,0,0,0 -867045332,Jeremy Monnier,FRA,male,1989-05-05,1.75,65.0,shooting,0,0,0 -222564871,Jeremy Rencurel,FRA,male,1995-04-13,1.81,83.0,cycling,0,0,0 -528202320,Jeremy Stravius,FRA,male,1988-07-14,1.9,87.0,aquatics,0,1,0 -414345502,Jeremy Taiwo,USA,male,1990-01-15,1.94,90.0,athletics,0,0,0 -231926753,Jeremy Toljan,GER,male,1994-08-08,1.82,77.0,football,0,1,0 -995701112,Jermaine Seoposenwe,RSA,female,1993-10-12,1.67,62.0,football,0,0,0 -882400057,Jeroen D'Hoedt,BEL,male,1990-01-10,1.83,63.0,athletics,0,0,0 -426243229,Jeroen Dubbeldam,NED,male,1973-04-15,1.85,85.0,equestrian,0,0,0 -306559370,Jeroen Hertzberger,NED,male,1986-02-24,1.74,76.0,hockey,0,0,0 -389822683,Jeroen Mooren,NED,male,1985-07-30,1.68,60.0,judo,0,0,0 -244522313,Jerome Guery,BEL,male,1980-07-24,1.84,69.0,equestrian,0,0,0 -701894934,Jerome Truyens,BEL,male,1987-08-04,1.78,70.0,hockey,0,1,0 -244166013,Jerry Tollbring,SWE,male,1995-09-13,1.82,82.0,handball,0,0,0 -790674817,Jerry Tuwai,FIJ,male,1989-03-23,1.74,81.0,rugby sevens,1,0,0 -688754355,Jerzy Janowicz,POL,male,1990-11-13,2.04,95.0,tennis,0,0,0 -455392993,Jesper Hansen,DEN,male,1980-11-19,1.8,95.0,shooting,0,0,0 -527946979,Jesper Johansson,SWE,male,1994-05-30,1.95,85.0,football,0,0,0 -73811144,Jesper Nielsen,SWE,male,1989-09-30,2.0,110.0,handball,0,0,0 -562280742,Jesper Noddesbo,DEN,male,1980-10-23,1.99,100.0,handball,1,0,0 -109939258,Jesper Stalheim,SWE,male,1988-03-23,1.84,82.0,sailing,0,0,0 -911273581,Jess Walker,GBR,female,1990-06-24,1.77,70.0,canoe,0,0,0 -691246438,Jesse David Thielke,USA,male,1992-06-09,1.71,68.0,wrestling,0,0,0 -475795038,Jesse Parahi,AUS,male,1989-07-29,1.89,104.0,rugby sevens,0,0,0 -619652365,Jesse Smith,USA,male,1983-04-27,1.94,105.0,aquatics,0,0,0 -428646755,Jessica Andrews,GBR,female,1992-10-01,1.68,52.0,athletics,0,0,0 -245831479,Jessica Ashwood,AUS,female,1993-04-28,1.73,64.0,aquatics,0,1,0 -551853296,Jessica Augusto,POR,female,1981-11-08,1.62,44.0,athletics,0,0,0 -353712682,Jessica Blaszka,NED,female,1992-08-05,1.6,52.0,wrestling,0,0,0 -172113299,Jessica Brizeida Lopez Arocha,VEN,female,1986-01-22,1.53,47.0,gymnastics,0,0,0 -429571808,Jessica Cavalheiro,BRA,female,1991-08-01,1.64,60.0,aquatics,0,0,0 -154587352,Jessica Draskau-Petersson,DEN,female,1977-09-08,1.7,62.0,athletics,0,0,0 -651225769,Jessica Eddie,GBR,female,1984-10-07,1.78,75.0,rowing,0,1,0 -668056593,Jessica Ennis-Hill,GBR,female,1986-01-28,1.65,57.0,athletics,0,1,0 -499672936,Jessica Fox,AUS,male,1994-06-10,1.66,60.0,canoe,0,0,1 -243350396,Jessica Hall,AUS,female,1992-07-13,1.83,75.0,rowing,0,0,0 -742356145,Jessica Hancco,PER,female,1995-09-10,1.53,44.0,athletics,0,0,0 -844470576,Jessica Houara,FRA,female,1987-09-29,1.61,53.0,football,0,0,0 -481042981,Jessica Inchude,GBS,female,1996-03-25,1.75,81.0,athletics,0,0,0 -629770332,Jessica Javelet,USA,female,1985-06-25,1.68,63.0,rugby sevens,0,0,0 -116285055,Jessica Maier,BRA,female,1994-08-21,1.67,52.0,gymnastics,0,0,0 -832460083,Jessica Mendoza,GBR,female,1996-04-09,1.72,62.0,equestrian,0,0,0 -803585591,Jessica Morrison,AUS,female,1992-05-18,,,rowing,0,0,0 -147271899,Jessica O'Connell,CAN,female,1989-02-10,1.58,48.0,athletics,0,0,0 -223516819,Jessica Parratto,USA,female,1994-06-26,1.58,50.0,aquatics,0,0,0 -463897901,Jessica Phoenix,CAN,female,1983-10-16,1.57,57.0,equestrian,0,0,0 -679145498,Jessica Quintino,BRA,female,1991-04-17,1.72,67.0,handball,0,0,0 -790042843,Jessica Rossi,ITA,female,1992-01-07,1.68,59.0,shooting,0,0,0 -279018477,Jessica Samuelsson,SWE,female,1992-01-30,1.66,60.0,football,0,1,0 -273050989,Jessica Thornton,AUS,female,1998-04-12,1.7,59.0,athletics,0,0,0 -210017406,Jessica Trengove,AUS,female,1987-08-15,1.66,52.0,athletics,0,0,0 -47922395,Jessica Vall Montero,ESP,female,1988-11-22,1.64,51.0,aquatics,0,0,0 -304882581,Jessie Fleming,CAN,female,1998-03-11,1.64,55.0,football,0,0,1 -343382074,Jessie Khing Lacuna,PHI,male,1993-12-23,1.7,70.0,aquatics,0,0,0 -918777342,Jessy Kramer,NED,female,1990-02-16,1.78,77.0,handball,0,0,0 -16153353,Jessy Tremouliere,FRA,female,1992-07-29,1.8,73.0,rugby sevens,0,0,0 -55862203,Jesus Alberto Perales,MEX,male,1993-12-22,1.97,88.0,volleyball,0,0,0 -957663890,Jesus Antonio Lopez Sanchez,VEN,male,1984-12-17,1.61,62.0,weightlifting,0,0,0 -340837468,Jesus Espana,ESP,male,1978-08-21,1.68,59.0,athletics,0,0,0 -673714012,Jesus Liranzo,VEN,male,1995-11-02,1.74,60.0,aquatics,0,0,0 -589547436,Jesus Rangel,MEX,male,1980-09-20,1.9,82.0,volleyball,0,0,0 -990831505,Jesus Tortosa Cabrera,ESP,male,1997-12-21,1.85,58.0,taekwondo,0,0,0 -117602961,Jeunghun Wang,KOR,male,1995-09-07,1.8,72.0,golf,0,0,0 -407205407,Jevaughn Minzie,JAM,male,1995-07-20,1.78,85.0,athletics,1,0,0 -370569700,Jevgenijs Borodavko,LAT,male,1986-11-04,1.9,100.0,judo,0,0,0 -897539865,Jeyong Son,KOR,male,1994-01-12,1.77,70.0,cycling,0,0,0 -427460731,Jeyvier Jesus Cintron,PUR,male,1995-02-08,1.71,,boxing,0,0,0 -82066790,Jhennifer Conceicao,BRA,female,1997-06-13,1.62,52.0,aquatics,0,0,0 -87944431,Jhoan Esteban Chaves Rubio,COL,male,1990-01-17,1.64,54.0,cycling,0,0,0 -507432041,Jhoanis Portilla,CUB,male,1990-07-24,1.82,76.0,athletics,0,0,0 -677554524,Jhon Perlaza,COL,male,1994-08-26,1.8,62.0,athletics,0,0,0 -183172056,Jhonatan Esquivel,URU,male,1988-10-13,1.83,86.0,rowing,0,0,0 -78371823,Jhonathan Paz,HON,male,1995-06-18,1.83,81.0,football,0,0,0 -996212053,Jhonattan Vegas,VEN,male,1984-08-19,1.91,100.0,golf,0,0,0 -518155505,Jhonnatan Botero Villegas,COL,male,1992-04-27,1.67,58.0,cycling,0,0,0 -432678731,Jhonny Perez Urena,DOM,male,1997-09-16,1.73,50.0,aquatics,0,0,0 -687736543,Jhow Benavidez,HON,male,1995-12-26,1.79,76.0,football,0,0,0 -829490625,Ji Hyun Sung,KOR,female,1991-07-29,1.75,64.0,badminton,0,0,0 -30421879,Jia Liu,AUT,female,1982-02-16,1.6,46.0,table tennis,0,0,0 -290373539,Jiahui Lou,CHN,female,1991-05-26,1.67,55.0,football,0,0,0 -249355001,Jiajia Guo,CHN,female,1994-06-06,1.71,65.0,hockey,0,0,0 -404900556,Jialu Hao,CHN,female,1987-08-20,1.76,66.0,fencing,0,1,0 -643778716,Jialuo Shi,CHN,male,1993-01-25,1.84,71.0,fencing,0,0,0 -542874859,Jian Fang Lay,AUS,female,1973-03-06,1.63,58.0,table tennis,0,0,0 -246757519,Jianan Wang,CGO,male,1983-01-20,1.77,77.0,table tennis,0,0,0 -801219490,Jianan Wang,CHN,male,1996-08-27,1.85,72.0,athletics,0,0,0 -2310622,Jianbin He,CHN,male,1993-02-18,1.88,83.0,aquatics,0,0,0 -546426458,Jianfei Ma,CHN,male,1984-07-29,1.86,78.0,fencing,0,0,0 -715962035,Jianguan Hu,CHN,male,1993-05-11,1.68,,boxing,0,0,1 -44701367,Jianli Guo,CHN,male,1988-03-06,1.78,73.0,modern pentathlon,0,0,0 -735180620,Jianlian Yi,CHN,male,1987-10-27,2.13,113.0,basketball,0,0,0 -561632085,Jianming Shu,CHN,male,1990-01-26,1.8,75.0,canoe,0,0,0 -323548303,Jiao Li,NED,female,1973-01-15,1.67,60.0,table tennis,0,0,0 -606768935,Jiao Xue,CHN,female,1993-01-30,1.71,59.0,football,0,0,0 -446754999,Jiaojiao De,CHN,female,1990-01-05,1.67,57.0,hockey,0,0,0 -964498000,Jiaqi Li,CHN,female,1995-07-02,1.68,63.0,hockey,0,0,0 -254128139,Jiaqi Zheng,USA,female,1988-01-13,1.66,42.0,table tennis,0,0,0 -24639304,Jiawei Zhang,CHN,male,1989-01-08,1.72,,boxing,0,0,0 -497442355,Jiaxin Tan,CHN,female,1996-12-03,1.48,36.0,gymnastics,0,0,1 -534753096,Jiaxin Wu,CHN,female,1997-02-28,1.64,72.0,archery,0,0,0 -72458951,Jiayu Xu,CHN,male,1995-08-19,1.87,78.0,aquatics,0,1,0 -167827568,Jidou El Moctar,MTN,male,1985-07-08,1.71,72.0,athletics,0,0,0 -628163232,Jie Chen,CHN,female,1995-02-28,1.77,65.0,aquatics,0,0,0 -121538011,Jie Dong,CHN,female,1998-10-31,1.7,62.0,aquatics,0,0,0 -928430214,Jie Li,NED,female,1984-03-06,1.65,52.0,table tennis,0,0,0 -155657317,Jie Shi Neo,SIN,female,1985-05-20,1.68,50.0,athletics,0,0,0 -900705990,Jie Yao,CHN,male,1990-09-21,1.88,85.0,athletics,0,0,0 -113342748,Jie Youn Nam,KOR,female,1983-05-25,1.71,63.0,volleyball,0,0,0 -60881505,Jieni Shao,POR,female,1994-01-25,1.69,63.0,table tennis,0,0,0 -200297041,Jigeun Jeong,KOR,male,1990-01-10,1.77,79.0,shooting,0,0,0 -934549463,Jihee Jeon,KOR,female,1992-10-28,1.59,56.0,table tennis,0,0,0 -523127994,Jihoon Kim,KOR,male,1985-06-27,1.79,75.0,sailing,0,0,0 -669978803,Jike Zhang,CHN,male,1988-02-14,1.78,70.0,table tennis,1,1,0 -359354716,Jill Witmer,USA,female,1991-10-01,1.58,52.0,hockey,0,0,0 -167215235,Jillian Alice Gallays,CAN,female,1986-10-20,1.65,53.0,wrestling,0,0,0 -102526440,Jillion Potter,USA,female,1986-07-05,1.78,79.0,rugby sevens,0,0,0 -790998306,Jim Gottfridsson,SWE,male,1992-09-02,1.91,93.0,handball,0,0,0 -980188208,Jimmy Butler,USA,male,1989-09-14,2.01,99.0,basketball,1,0,0 -930912011,Jimmy Vicaut,FRA,male,1992-02-27,1.88,83.0,athletics,0,0,0 -48636955,Jin Hee Yoon,KOR,female,1986-08-04,1.58,53.0,weightlifting,0,0,1 -585498699,Jin Ma,CHN,female,1988-05-07,1.67,58.0,badminton,0,0,0 -526447222,Jin Wei Timothee Yap,SIN,male,1994-11-05,1.78,66.0,athletics,0,0,0 -514671382,Jing Yi Tee,MAS,female,1991-02-08,1.67,58.0,badminton,0,0,0 -617397429,Jing Zhang,CHN,female,1996-06-16,1.66,62.0,aquatics,0,0,0 -197574532,Jingbin Zhao,CHN,male,1990-04-18,1.85,72.0,rowing,0,0,0 -535068479,Jingjing Zhang,CHN,female,1988-12-03,1.64,65.0,shooting,0,0,0 -800643493,Jingli Duan,CHN,female,1989-03-08,1.8,76.0,rowing,0,0,1 -890471066,Jinglin Shi,CHN,female,1993-01-03,1.75,69.0,aquatics,0,0,1 -663047032,Jingnan Zhao,CHN,female,1995-03-07,1.68,51.0,gymnastics,0,0,0 -822617830,Jingyao Yu,CHN,female,1999-02-13,1.78,63.0,aquatics,0,0,0 -343852409,Jingyu Wu,CHN,female,1987-02-01,1.67,51.0,taekwondo,0,0,0 -618968829,Jinhwa Jung,KOR,male,1989-05-25,1.83,75.0,modern pentathlon,0,0,0 -262158592,Jinjie Gong,CHN,female,1986-11-12,1.65,65.0,cycling,1,0,0 -307605969,Jinq En Phee,MAS,female,1997-11-29,1.66,51.0,aquatics,0,0,0 -316863678,Jinrong Zhang,CHN,female,1997-03-24,1.63,58.0,hockey,0,0,0 -350253517,Jinson Johnson,IND,male,1991-03-15,,,athletics,0,0,0 -763898907,Jinsun Jung,KOR,male,1984-01-24,1.85,83.0,fencing,0,0,0 -187824275,Jinyi Kim,KOR,female,1993-06-20,1.79,82.0,handball,0,0,0 -417847231,Jinyoung Park,KOR,female,1997-04-14,1.62,58.0,aquatics,0,0,0 -303862843,Jiowana Sauto,FIJ,female,1998-03-13,1.7,69.0,rugby sevens,0,0,0 -715756785,Jip Vastenburg,NED,female,1994-03-21,1.81,57.0,athletics,0,0,0 -446797398,Jiri Beran,CZE,male,1982-01-18,1.92,80.0,fencing,0,0,0 -610244706,Jiri Kopac,CZE,male,1982-02-23,1.75,73.0,rowing,0,0,0 -678435777,Jiri Orsag,CZE,male,1989-01-05,1.81,127.0,weightlifting,0,0,0 -280267428,Jiri Prskavec,CZE,male,1993-05-18,1.73,69.0,canoe,0,0,1 -482638625,Jiri Sykora,CZE,male,1995-01-20,1.9,91.0,athletics,0,0,0 -514339084,Jirina Ptacnikova,CZE,female,1986-05-20,1.73,68.0,athletics,0,0,0 -931051373,Jisna Mathew,IND,female,1999-01-07,1.56,45.0,athletics,0,0,0 -824138324,Jisu Yoon,KOR,female,1993-01-24,1.7,60.0,fencing,0,0,0 -191271695,Jitbahadur Muktan,NEP,male,1979-08-31,1.68,64.0,archery,0,0,0 -323638966,Jitu Rai,IND,male,1987-08-26,1.6,64.0,shooting,0,0,0 -426963180,Jiwei Zhao,CHN,male,1995-08-25,1.85,80.0,basketball,0,0,0 -617915347,Jiyeon Kim,KOR,female,1988-03-12,1.65,56.0,fencing,0,0,0 -59062825,Jiyeon Seo,KOR,female,1993-03-03,1.68,56.0,fencing,0,0,0 -609901100,Jiyun Bak,KOR,female,1992-09-21,1.68,63.0,judo,0,0,0 -450037475,Jo Aleh,NZL,female,1986-05-15,1.71,58.0,sailing,0,1,0 -476728230,Jo-Wilfried Tsonga,FRA,male,1985-04-17,1.88,93.0,tennis,0,0,0 -666014603,Joachim Bottieau,BEL,male,1989-03-20,1.8,81.0,judo,0,0,0 -472743592,Joachim Eilers,GER,male,1990-04-02,1.85,90.0,cycling,0,0,0 -845052105,Joachim Fischer nielsen,DEN,male,1978-11-23,1.88,78.0,badminton,0,0,0 -818759516,Joahnys Argilagos,CUB,male,1997-01-11,1.52,,boxing,0,0,1 -629037192,Joakim Nilsson,SWE,male,1994-02-06,1.83,72.0,football,0,0,0 -99502290,Joan Herp Morell,ESP,male,1993-10-18,1.86,70.0,sailing,0,0,0 -861221421,Joan Lluis Pons Ramon,ESP,male,1996-12-09,1.7,62.0,aquatics,0,0,0 -20182796,Joan Losada,ESP,male,1992-06-20,1.82,86.0,rugby sevens,0,0,0 -727390459,Joana Costa,BRA,female,1981-05-15,1.73,60.0,athletics,0,0,0 -827210210,Joana Heidrich,SUI,female,1991-10-02,1.9,72.0,volleyball,0,0,0 -676801349,Joana Palacios,ARG,female,1996-11-08,1.6,63.0,weightlifting,0,0,0 -278025815,Joana Ramos,POR,female,1982-01-16,1.59,52.0,judo,0,0,0 -736604724,Joanna Evans,BAH,female,1997-07-25,1.8,66.0,aquatics,0,0,0 -951232651,Joanna Fiodorow,POL,female,1989-03-04,1.69,94.0,athletics,0,0,0 -215850400,Joanna Jozwik,POL,female,1991-01-30,1.69,53.0,athletics,0,0,0 -941360584,Joanna Leigh,GBR,female,1993-02-22,1.65,61.0,hockey,0,0,0 -489677377,Joanna Leszczynska,POL,female,1988-12-18,1.83,75.0,rowing,0,0,1 -189833153,Joanna Linkiewicz,POL,female,1990-05-02,1.68,55.0,athletics,0,0,0 -487036929,Joanna Maranhao,BRA,female,1987-04-29,1.75,70.0,aquatics,0,0,0 -929833418,Joanna Rowsell-Shand,GBR,female,1988-12-05,1.8,69.0,cycling,1,0,0 -943408954,Joanna Zachoszcz,POL,female,1993-04-17,1.77,66.0,aquatics,0,0,0 -984524568,Joanne Faavesi,USA,female,1992-02-05,1.68,73.0,rugby sevens,0,0,0 -279099654,Joanne Pavey,GBR,female,1973-09-20,1.63,50.0,athletics,0,0,0 -357940683,Joanne Watmore,GBR,female,1986-09-25,1.79,74.0,rugby sevens,0,0,0 -964624583,Joao Costa,POR,male,1964-10-28,1.82,100.0,shooting,0,0,0 -544379806,Joao Gomes,BRA,male,1986-01-21,1.9,88.0,aquatics,0,0,0 -612164029,Joao Monteiro,POR,male,1983-08-29,1.8,71.0,table tennis,0,0,0 -224259489,Joao Paulo de Leiria E Silva,ANG,male,1964-11-13,1.76,90.0,shooting,0,0,0 -259002081,Joao Pereira,POR,male,1987-12-28,1.86,72.0,triathlon,0,0,0 -345046292,Joao Ribeiro,POR,male,1989-08-19,1.84,87.0,canoe,0,0,0 -238238213,Joao Rodrigues,POR,male,1971-11-02,1.79,73.0,sailing,0,0,0 -52128128,Joao Silva,POR,male,1989-05-15,1.71,60.0,triathlon,0,0,0 -523514105,Joao Sousa,POR,male,1989-03-30,1.85,73.0,tennis,0,0,0 -385773930,Joao Victor Marcari Oliva,BRA,male,1996-02-02,1.82,65.0,equestrian,0,0,0 -891766253,Joao Vieira,POR,male,1976-02-20,1.75,59.0,athletics,0,0,0 -62478596,Joao Virginia,POR,male,1999-10-10,1.82,72.0,football,0,0,0 -343594006,Joao Vitor de Oliveira,BRA,male,1992-05-15,1.9,87.0,athletics,0,0,0 -924207908,Joao da Silva,BRA,male,1994-01-29,1.9,93.0,handball,0,0,0 -949399778,Joao de Lucca,BRA,male,1990-01-06,1.93,95.0,aquatics,0,0,0 -874040358,Joaquim Lobo,MOZ,male,1995-01-06,1.72,66.0,canoe,0,0,0 -548003782,Joaquim Rodriguez Oliver,ESP,male,1979-05-12,1.69,59.0,cycling,0,0,0 -779626305,Joaquin Arzura,ARG,male,1993-05-18,1.7,71.0,football,0,0,0 -572622269,Joaquin Blanco Albalat,ESP,male,1989-06-25,1.81,80.0,sailing,0,0,0 -443476953,Joaquin Lopez,BRA,male,1990-02-12,1.7,76.0,hockey,0,0,0 -202078151,Joaquin Menini,ARG,male,1991-08-18,1.82,76.0,hockey,1,0,0 -981125983,Jodie Kenny,AUS,female,1987-08-18,1.83,74.0,hockey,0,0,0 -525649911,Jodie Williams,GBR,female,1993-09-28,1.73,65.0,athletics,0,0,0 -854286799,Jody February,RSA,male,1996-05-12,1.82,72.0,football,0,0,0 -874371123,Joe Ingles,AUS,male,1987-10-02,2.04,91.0,basketball,0,0,0 -921707760,Joe Joyce,GBR,male,1985-09-19,1.97,,boxing,0,1,0 -21878416,Joe Kayes,AUS,male,1991-01-03,1.98,125.0,aquatics,0,0,0 -251331480,Joe Kovacs,USA,male,1989-06-28,1.83,133.0,athletics,0,1,0 -475553078,Joe Mahit,VAN,male,1992-07-17,1.7,66.0,judo,0,0,0 -166825342,Joe Maloy,USA,male,1985-12-20,1.76,64.0,triathlon,0,0,0 -886636468,Joe Morris,USA,male,1989-08-17,1.78,79.0,sailing,0,0,0 -650947541,Joe Webber,NZL,male,1993-08-27,1.85,95.0,rugby sevens,0,0,0 -751008649,Joedison Teixeira,BRA,male,1994-01-28,1.72,,boxing,0,0,0 -772292752,Joel Baden,AUS,male,1996-02-01,1.9,70.0,athletics,0,0,0 -64143047,Joel Dennerley,AUS,male,1987-06-25,1.95,91.0,aquatics,0,0,0 -545645224,Joel Gonzalez Bonilla,ESP,male,1989-09-30,1.85,68.0,taekwondo,0,0,1 -551792957,Joel Pereira,POR,male,1996-06-28,1.91,80.0,football,0,0,0 -666790332,Joel Swift,AUS,male,1990-06-14,1.9,103.0,aquatics,0,0,0 -603523767,Joelle Sandrine Mbumi Nkouindjin,CMR,female,1986-05-25,1.7,63.0,athletics,0,0,0 -324305623,Joelma Sousa,BRA,female,1984-07-13,1.72,49.0,athletics,0,0,0 -808443365,Joerdis Steinegger,AUT,female,1983-02-08,1.72,59.0,aquatics,0,0,0 -418059967,Joeri Verlinden,NED,male,1988-01-22,1.81,75.0,aquatics,0,0,0 -363167392,Joffrey Lauvergne,FRA,male,1991-09-30,2.09,115.0,basketball,0,0,0 -11290157,Johan Jakobsson,SWE,male,1987-02-12,1.95,98.0,handball,0,0,0 -203049800,Johan Magnus Euren,SWE,male,1985-05-18,1.92,120.0,wrestling,0,0,0 -303272993,Johanna Bundsen,SWE,female,1991-06-03,1.85,72.0,handball,0,0,0 -980564711,Johanna Goliszewski,GER,female,1986-05-09,1.72,64.0,badminton,0,0,0 -624185811,Johanna Konta,GBR,female,1991-05-17,1.8,69.0,tennis,0,0,0 -886841889,Johanna Larsson,SWE,female,1988-08-17,1.74,65.0,tennis,0,0,0 -25172268,Johanna Umurungi,RWA,female,1996-04-07,,,aquatics,0,0,0 -824255240,Johannes Hintze,GER,male,1999-07-05,1.93,82.0,aquatics,0,0,0 -735194395,Johannes Schoettler,GER,male,1984-08-27,1.92,84.0,badminton,0,0,0 -292388497,Johannes Vetter,GER,male,1993-03-26,1.88,103.0,athletics,0,0,0 -764645021,John Ampomah,GHA,male,1990-07-11,1.91,100.0,athletics,0,0,0 -327081877,John Collins,GBR,male,1989-01-24,1.92,95.0,rowing,0,0,0 -112263685,John Cotterill,AUS,male,1987-10-27,1.93,88.0,aquatics,0,0,0 -912933755,John Cox,VEN,male,1981-07-06,1.96,95.0,basketball,0,0,0 -151077400,John Edison Rodriguez,COL,male,1991-01-24,2.05,102.0,fencing,0,0,0 -165939913,John Gordon Perrin,CAN,male,1989-08-17,2.01,95.0,volleyball,0,0,0 -827895855,John Jackson,IRL,male,1986-02-21,1.7,73.0,hockey,0,0,0 -821941821,John Jermyn,IRL,male,1982-03-30,1.86,80.0,hockey,0,0,0 -190324143,John Kibet Koech,BRN,male,1995-08-23,1.68,53.0,athletics,0,0,0 -914738719,John Mann,USA,male,1985-06-27,1.99,113.0,aquatics,0,0,0 -774717983,John Millman,AUS,male,1989-06-14,1.83,79.0,tennis,0,0,0 -592750184,John Murillo,COL,male,1984-07-13,1.86,85.0,athletics,0,0,0 -444015390,John Nunn,USA,male,1978-02-03,1.88,78.0,athletics,0,0,0 -299026310,John Obi Mikel,NGR,male,1987-04-22,1.73,,football,0,0,1 -699155379,John Peers,AUS,male,1988-07-25,1.91,83.0,tennis,0,0,0 -925467068,John Porch,AUS,male,1994-03-04,1.85,82.0,rugby sevens,0,0,0 -373274768,John Ruuka,KIR,male,1995-08-13,1.64,64.0,athletics,0,0,0 -821790736,John Smith,RSA,male,1990-01-12,1.92,72.0,rowing,0,0,0 -965077119,John Storey,NZL,male,1987-07-19,1.86,85.0,rowing,0,0,0 -229427449,John Whitaker,GBR,male,1955-08-05,1.61,70.0,equestrian,0,0,0 -110489298,John-John Dohmen,BEL,male,1988-01-24,1.74,69.0,hockey,0,1,0 -737599393,Johnathan Akinyemi,NGR,male,1988-11-22,1.88,85.0,canoe,0,0,0 -881559990,Johnathan Cabral,CAN,male,1992-12-31,1.9,84.0,athletics,0,0,0 -734388097,Johnny Palacios,HON,male,1986-12-20,1.83,84.0,football,0,0,0 -556532302,Joice Rodrigues,BRA,female,1986-09-06,1.68,65.0,basketball,0,0,0 -238860234,Joice Souza da Silva,BRA,female,1983-07-20,1.67,59.0,wrestling,0,0,0 -396780204,Jolanda Annen,SUI,female,1992-09-11,1.66,56.0,triathlon,0,0,0 -22338705,Jolanda Neff,SUI,female,1993-01-05,1.68,53.0,cycling,0,0,0 -317825722,Jolanta Ogar,AUT,female,1982-04-28,1.78,68.0,sailing,0,0,0 -808313337,Jolien D'hoore,BEL,female,1990-03-14,1.76,64.0,cycling,0,0,1 -774577987,Jomana Elmaghrabi,EGY,female,1995-06-21,1.62,51.0,aquatics,0,0,0 -911513755,Jon Izaguirre Insausti,ESP,male,1989-02-04,1.72,61.0,cycling,0,0,0 -793991394,Jon Schofield,GBR,male,1985-05-10,1.8,80.0,canoe,0,1,0 -995512721,Jon Wi Choe,PRK,male,1993-06-29,1.7,77.0,weightlifting,0,0,0 -640178074,Jonas Crivella,BRA,male,1988-04-30,1.81,82.0,aquatics,0,0,0 -709330716,Jonas Hogh-Christensen,DEN,male,1981-05-21,1.86,102.0,sailing,0,0,0 -197342499,Jonas Junias Jonas,NAM,male,1993-11-24,1.81,,boxing,0,0,0 -413205965,Jonas Kaspar,CZE,male,1991-10-08,1.82,82.0,canoe,0,0,0 -510673064,Jonas Maciulis,LTU,male,1985-02-10,1.98,103.0,basketball,0,0,0 -510906933,Jonas Valanciunas,LTU,male,1992-05-06,2.11,120.0,basketball,0,0,0 -993012758,Jonas Warrer,DEN,male,1979-03-22,1.81,77.0,sailing,0,0,0 -572841797,Jonatan Hajdu,HUN,male,1996-06-28,1.88,82.0,canoe,0,0,0 -621973877,Jonathan Alan Smith,RSA,male,1992-02-19,1.95,93.0,rowing,0,0,0 -65169876,Jonathan Bell,IRL,male,1987-06-19,1.78,77.0,hockey,0,0,0 -6885634,Jonathan Borlee,BEL,male,1988-02-22,1.8,69.0,athletics,0,0,0 -339303461,Jonathan Brownlee,GBR,male,1990-04-30,1.81,70.0,triathlon,0,1,0 -254041793,Jonathan Calleri,ARG,male,1993-09-23,1.73,78.0,football,0,0,0 -809086718,Jonathan Castroviejo Nicolas,ESP,male,1987-04-27,1.72,64.0,cycling,0,0,0 -507080639,Jonathan David Gomez Noriega,COL,male,1996-04-19,1.78,78.0,aquatics,0,0,0 -474793730,Jonathan Drack,MRI,male,1988-11-06,1.84,73.0,athletics,0,0,0 -620385089,Jonathan Groth,DEN,male,1992-11-09,1.84,75.0,table tennis,0,0,0 -803640740,Jonathan Koch,GER,male,1985-10-29,1.83,73.0,rowing,0,0,0 -637083466,Jonathan Laugel,FRA,male,1993-01-30,1.94,100.0,rugby sevens,0,0,0 -609847913,Jonathan Lobert,FRA,male,1985-04-30,1.95,100.0,sailing,0,0,0 -778006833,Jonathan Moriame,FRA,male,1984-06-19,2.03,100.0,aquatics,0,0,0 -664121704,Jonathan Rieckmann,BRA,male,1987-08-20,1.71,54.0,athletics,0,0,0 -280719029,Jonathan Stenbacken,SWE,male,1988-01-07,1.95,93.0,handball,0,0,0 -510827495,Jonathan Walton,GBR,male,1990-10-06,1.91,93.0,rowing,0,0,0 -412468662,Jonathan Wright,NZL,male,1992-03-14,2.01,97.0,rowing,0,0,0 -81546527,Jonelle Price,NZL,female,1980-10-14,1.62,57.0,equestrian,0,0,0 -724095045,Jong Sim Rim,PRK,female,1993-02-05,1.62,74.0,weightlifting,1,0,0 -867882464,Jong Su Kim,PRK,male,1977-01-01,1.66,67.0,shooting,0,0,0 -438574326,Jongeun Kim,KOR,female,1986-02-18,1.67,58.0,hockey,0,0,0 -342096767,Jonghyun Kim,KOR,male,1985-07-21,1.7,73.0,shooting,0,1,0 -326377611,Jongoh Jin,KOR,male,1979-09-24,1.75,78.0,shooting,1,0,0 -318221769,Jonna Andersson,SWE,female,1993-01-02,1.67,64.0,football,0,1,0 -160814323,Jono Clegg,GBR,male,1989-07-14,1.86,72.0,rowing,0,0,0 -497079798,Jonty Evans,IRL,male,1971-10-04,1.93,82.0,equestrian,0,0,0 -193398244,Joonas Lindgren,FIN,male,1986-05-31,1.7,65.0,sailing,0,0,0 -183836938,Joonyong Seo,KOR,male,1988-03-14,1.74,65.0,cycling,0,0,0 -80963554,Joost Luiten,NED,male,1986-01-07,1.77,78.0,golf,0,0,0 -964164116,Joost van der Burg,NED,male,1993-12-11,1.81,72.0,cycling,0,0,0 -604210309,Jordan Augier,LCA,male,1994-11-14,1.71,53.0,aquatics,0,0,0 -543762791,Jordan Chipangama,ZAM,male,1988-11-12,1.73,53.0,athletics,0,0,0 -151605048,Jordan Coelho,FRA,male,1992-04-02,1.83,75.0,aquatics,0,0,0 -204399496,Jordan Ernest Burroughs,USA,male,1988-07-08,1.71,79.0,wrestling,0,0,0 -277046821,Jordan Larson-Burbach,USA,female,1986-10-16,1.88,75.0,volleyball,0,0,1 -246372668,Jordan Larsson,SWE,male,1997-06-20,1.73,68.0,football,0,0,0 -402518838,Jordan Mageo,ASA,female,1997-01-06,1.72,68.0,athletics,0,0,0 -89037230,Jordan Pothain,FRA,male,1994-10-14,1.87,74.0,aquatics,0,0,0 -780854442,Jordan Silva,MEX,male,1994-07-30,1.86,75.0,football,0,0,0 -900671149,Jordan Thompson,AUS,male,1994-04-20,1.83,73.0,tennis,0,0,0 -710046367,Jordan Wilimovsky,USA,male,1994-04-22,1.78,68.0,aquatics,0,0,0 -221513683,Jordan Wood,AUS,male,1994-08-01,1.82,78.0,canoe,0,0,0 -821771282,Jordi Xammar Hernandez,ESP,male,1993-12-02,1.76,63.0,sailing,0,0,0 -339973873,Jordin Andrade,CPV,male,1992-05-05,1.82,77.0,athletics,0,0,0 -611217392,Joren Tromp,NED,male,1988-11-01,1.9,85.0,athletics,0,0,0 -968135549,Jorge Antonio Garcia,CUB,male,1988-01-14,1.8,78.0,canoe,0,0,0 -21141252,Jorge Armando Ruiz,COL,male,1989-05-17,1.68,58.0,athletics,0,0,0 -818827545,Jorge Barajas,MEX,male,1991-05-07,1.88,80.0,volleyball,0,0,0 -476081047,Jorge Campos,CUB,male,1991-09-19,1.84,77.0,table tennis,0,0,0 -272138135,Jorge Carrera,ESP,male,1982-06-12,1.8,83.0,hockey,0,0,0 -178939509,Jorge Castelblanco,PAN,male,1987-09-23,1.69,58.0,athletics,0,0,0 -761218329,Jorge Diaz,ESP,male,1985-11-26,1.73,75.0,shooting,0,0,0 -729677214,Jorge Fonseca,POR,male,1992-10-30,1.75,100.0,judo,0,0,0 -947023674,Jorge Grau Potrille,CUB,male,1987-02-15,1.86,78.0,shooting,0,0,0 -304222396,Jorge Lima,POR,male,1981-01-29,1.77,72.0,sailing,0,0,0 -822554462,Jorge Llames,ESP,male,1978-10-17,1.7,74.0,shooting,0,0,0 -728621076,Jorge Luis Vivas,COL,male,1988-01-22,1.72,,boxing,0,0,0 -811026477,Jorge Mario Murillo Valdes,COL,male,1991-09-07,1.86,77.0,aquatics,0,0,0 -344287763,Jorge Quinones,MEX,male,1981-11-13,1.86,80.0,volleyball,0,0,0 -465083316,Jorge Torres,MEX,male,1988-01-16,1.8,76.0,football,0,0,0 -323103504,Jorge Vides,BRA,male,1992-11-24,1.92,74.0,athletics,0,0,0 -942961104,Jorge Y. Fernandez,CUB,male,1987-10-02,1.9,100.0,athletics,0,0,0 -473715878,Jorge Zarif,BRA,male,1992-09-30,1.91,97.0,sailing,0,0,0 -696332075,Jorinde Verwimp,BEL,female,1994-11-10,1.85,65.0,equestrian,0,0,0 -692369210,Joris Daudet,FRA,male,1991-02-12,1.84,78.0,cycling,0,0,0 -544349833,Joris Pijs,NED,male,1987-04-02,1.86,70.0,rowing,0,0,0 -489958654,Joris Vanspringel,BEL,male,1963-02-08,1.71,69.0,equestrian,0,0,0 -680257041,Jorrit Croon,NED,male,1998-08-09,1.83,75.0,hockey,0,0,0 -436353228,Jort van Gennep,NED,male,1994-08-06,1.85,70.0,rowing,0,0,0 -119403428,Josateki Naulu,FIJ,male,1984-06-08,1.75,81.0,judo,0,0,0 -912647589,Jose Abella,MEX,male,1994-02-10,1.76,74.0,football,0,0,0 -742377387,Jose Alessandro Bagio,BRA,male,1981-04-16,1.72,63.0,athletics,0,0,0 -934177489,Jose Amado Garcia,GUA,male,1977-09-13,1.77,59.0,athletics,0,0,0 -914289728,Jose Antonio Hermida Ramos,ESP,male,1978-08-24,1.72,67.0,cycling,0,0,0 -175796769,Jose Armenteros,CUB,male,1992-12-13,1.89,100.0,judo,0,0,0 -96353822,Jose Barralaga,HON,male,1994-12-22,1.75,74.0,football,0,0,0 -44722554,Jose Carlos Herrera,MEX,male,1986-02-05,1.87,81.0,athletics,0,0,0 -733148726,Jose Carlos Moreira,BRA,male,1983-09-28,1.72,80.0,athletics,0,0,0 -432697799,Jose Carvalho,POR,male,1988-08-18,1.75,77.0,canoe,0,0,0 -646368101,Jose Costa,POR,male,1984-01-26,1.82,82.0,sailing,0,0,0 -583146817,Jose Daniel Diaz Robertti,VEN,male,1989-02-22,1.81,96.0,wrestling,0,0,0 -265525269,Jose Daniel Martin Dockx,ESP,male,1974-01-07,1.83,74.0,equestrian,0,0,0 -20513481,Jose Guilherme de Toledo,BRA,male,1994-01-11,1.93,97.0,handball,0,0,0 -710392751,Jose Gutierrez,VEN,male,1992-10-12,1.93,83.0,sailing,0,0,0 -515906781,Jose Ignacio Diaz,ESP,male,1979-11-22,1.68,67.0,athletics,0,0,0 -112540010,Jose Joao Pimenta Costa Mendes,POR,male,1985-04-24,1.81,65.0,cycling,0,0,0 -848550329,Jose Leonardo Montana,COL,male,1992-03-21,1.74,65.0,athletics,0,0,0 -64401943,Jose Leyver Ojeda,MEX,male,1985-11-12,1.64,60.0,athletics,0,0,0 -480752909,Jose Luis Gaspar,CUB,male,1995-08-25,1.88,72.0,athletics,0,0,0 -176573380,Jose Luis Gomez,ARG,male,1993-09-13,1.67,70.0,football,0,0,0 -314838135,Jose Luis Gonzalez,ARG,male,1984-12-27,2.06,97.0,volleyball,0,0,0 -767377720,Jose Luis Rodriguez,CHI,male,1994-06-01,1.8,75.0,cycling,0,0,0 -165713774,Jose Manuel Calderon,ESP,male,1981-09-28,1.91,90.0,basketball,0,0,1 -225565069,Jose Maria Larocca,ARG,male,1969-01-01,1.87,83.0,equestrian,0,0,0 -756729947,Jose Maria Raymundo,GUA,male,1993-09-01,1.56,49.0,athletics,0,0,0 -64114851,Jose Martinez,MEX,male,1993-01-23,2.0,100.0,volleyball,0,0,0 -674292992,Jose Melendez,VEN,male,1993-05-19,1.7,70.0,athletics,0,0,0 -77380631,Jose Pena,VEN,male,1987-01-12,1.6,52.0,athletics,0,0,0 -828985174,Jose Quintanilla,BOL,male,1997-01-01,2.0,89.0,aquatics,0,0,0 -599772179,Jose Ramos,GUA,male,1994-11-09,1.56,60.0,judo,0,0,0 -145726121,Jose Ricardo Figueroa,CUB,male,1991-01-10,1.84,64.0,modern pentathlon,0,0,0 -178619727,Jose Vargas,VEN,male,1982-01-23,1.96,109.0,basketball,0,0,0 -760060377,Jose van Veen,NED,female,1986-01-09,1.95,87.0,rowing,0,0,0 -546457869,Jose-Filipe Lima,POR,male,1981-11-26,1.77,75.0,golf,0,0,0 -537078452,Josee Belanger,CAN,female,1986-05-14,1.63,63.0,football,0,0,1 -168497661,Josef Dostal,CZE,male,1993-03-03,2.02,115.0,canoe,0,1,1 -351583225,Josefa Fabiola Almeida De Sousa Alves,BRA,female,1983-02-03,1.84,70.0,volleyball,0,0,0 -938961398,Josefa Vila Betancurt,CHI,female,1997-02-06,1.69,60.0,rowing,0,0,0 -921723264,Josefin Olsson,SWE,female,1989-08-23,1.72,67.0,sailing,0,0,0 -184806323,Josefina Fernandez,ARG,female,1991-08-17,1.75,72.0,volleyball,0,0,0 -384555082,Joselito Velazquez,MEX,male,1993-09-30,1.64,,boxing,0,0,0 -945703153,Josep Romeu,ESP,male,1990-05-22,1.75,77.0,hockey,0,0,0 -128111481,Joseph Choong,GBR,male,1995-05-23,1.86,78.0,modern pentathlon,0,0,0 -943343126,Joseph Clarke,GBR,male,1992-11-03,1.82,76.0,canoe,1,0,0 -872493079,Joseph Cordina,GBR,male,1991-12-01,1.75,,boxing,0,0,0 -722417692,Joseph Emilienne Essombe Tiako,CMR,female,1988-03-22,1.59,55.0,wrestling,0,0,0 -748279929,Joseph Polossifakis,CAN,male,1990-08-21,1.78,77.0,fencing,0,0,0 -193706829,Joseph Schooling,SIN,male,1995-06-16,1.84,78.0,aquatics,1,0,0 -626123517,Joseph Turagabeci,FIJ,male,1994-11-19,1.69,67.0,football,0,0,0 -610541912,Joseph Ward,IRL,male,1993-10-30,1.86,,boxing,0,0,0 -604939981,Josephine Henning,GER,female,1989-09-08,1.75,68.0,football,1,0,0 -491045243,Josephine Jacques Andre Coquin,FRA,female,1990-09-21,1.7,51.0,fencing,0,0,0 -208075373,Josh Akognon,NGR,male,1986-02-10,1.89,83.0,basketball,0,0,0 -990888036,Josh Binstock,CAN,male,1981-01-12,1.96,99.0,volleyball,0,0,0 -429283935,Josh Junior,NZL,male,1989-12-22,1.89,96.0,sailing,0,0,0 -213543405,Josh Kelly,GBR,male,1994-03-07,1.78,,boxing,0,0,0 -234184817,Josh Konieczny,USA,male,1991-05-26,1.81,74.0,rowing,0,0,0 -820424202,Josh Prenot,USA,male,1993-07-28,1.81,75.0,aquatics,0,1,0 -7139077,Joshua Beaver,AUS,male,1993-03-01,1.75,70.0,aquatics,0,0,0 -758033306,Joshua Booth,AUS,male,1990-10-09,1.9,93.0,rowing,0,1,0 -267338735,Joshua Buatsi,GBR,male,1993-03-14,1.85,,boxing,0,0,1 -357476242,Joshua Dunkley-Smith,AUS,male,1989-06-28,1.94,98.0,rowing,0,1,0 -27887256,Joshua E Tibatemwa,UGA,male,1996-09-10,,,aquatics,0,0,0 -846703092,Joshua Ilustre,GUM,male,1994-01-23,1.78,70.0,athletics,0,0,0 -858829009,Joshua Katz,AUS,male,1997-12-29,1.67,60.0,judo,0,0,0 -894182503,Joshua Kiprui Cheptegei,UGA,male,1996-09-12,,,athletics,0,0,0 -341433396,Joshua Palmer,AUS,male,1991-08-10,1.86,87.0,aquatics,0,0,0 -485505257,Joshua Richmond,USA,male,1985-12-19,1.88,90.0,shooting,0,0,0 -761016081,Joshua Robinson,AUS,male,1985-10-04,1.87,92.0,athletics,0,0,0 -299902345,Joshua Samuels,USA,male,1991-07-08,1.94,95.0,aquatics,0,0,0 -274974371,Josip Glasnovic,CRO,male,1983-05-07,1.78,82.0,shooting,1,0,0 -751292408,Josip Pavic,CRO,male,1982-01-15,1.95,90.0,aquatics,0,1,0 -981156093,Josip Vrlic,BRA,male,1986-04-25,1.96,120.0,aquatics,0,0,0 -937359847,Jossimar Orlando Calvo Moreno,COL,male,1994-07-22,1.6,54.0,gymnastics,0,0,0 -924692154,Josua Tuisova,FIJ,male,1994-02-04,1.8,108.0,rugby sevens,1,0,0 -73761098,Josue Brachi Garcia,ESP,male,1992-09-08,1.56,56.0,weightlifting,0,0,0 -910659584,Josue Deprez,HAI,male,1981-10-30,,,judo,0,0,0 -298393136,Joud Fahmy,KSA,female,1994-02-20,1.64,52.0,judo,0,0,0 -441296734,Jovana Brakocevic,SRB,female,1988-03-05,1.96,82.0,volleyball,0,1,0 -113412907,Jovana Crnogorac,SRB,female,1992-02-29,1.7,56.0,cycling,0,0,0 -383964072,Jovana Stevanovic,SRB,female,1992-06-30,1.92,72.0,volleyball,0,1,0 -862971259,Jovana Terzic,MNE,female,1999-05-15,1.65,54.0,aquatics,0,0,0 -123069531,Jovana de la Cruz,PER,female,1992-07-12,1.61,53.0,athletics,0,0,0 -434077737,Jovanka Radicevic,MNE,female,1986-10-23,1.7,68.0,handball,0,0,0 -724258615,Jovina Choo,SIN,female,1990-02-10,1.64,57.0,sailing,0,0,0 -433904148,Joyce Sombroek,NED,female,1990-09-10,1.79,64.0,hockey,0,1,0 -85512245,Jozef Repcik,SVK,male,1986-08-03,1.9,72.0,athletics,0,0,0 -144854938,Juan Carlos Cabrera,MEX,male,1991-11-09,1.94,105.0,rowing,0,0,0 -17067669,Juan Carlos Carrillo,COL,male,1992-10-10,1.84,,boxing,0,0,0 -735807847,Juan Carlos Trujillo,GUA,male,1985-07-17,1.45,58.0,athletics,0,0,0 -766482103,Juan Diego Turcios,ESA,male,1992-09-22,1.79,81.0,judo,0,0,0 -867791853,Juan Gilardi,ARG,male,1981-11-14,1.86,91.0,hockey,1,0,0 -95348169,Juan Ignacio Caceres,ARG,male,1992-01-31,1.68,75.0,canoe,0,0,0 -435791254,Juan Ignacio Maegli,GUA,male,1988-07-21,1.83,84.0,sailing,0,0,0 -773684014,Juan Ignacio Rodriguez Liebana,ESP,male,1992-04-19,1.85,83.0,archery,0,0,0 -565597273,Juan Imhoff,ARG,male,1988-05-11,1.78,79.0,rugby sevens,0,0,0 -172353646,Juan Lopez,ARG,male,1985-05-27,1.78,74.0,hockey,1,0,0 -322112942,Juan Manuel Cano,ARG,male,1987-12-12,1.68,60.0,athletics,0,0,0 -436803627,Juan Martin Del Potro,ARG,male,1988-09-23,1.98,97.0,tennis,0,1,0 -48480691,Juan Miguel Rodriguez Martinez,CUB,male,1967-05-26,1.83,86.0,shooting,0,0,0 -919263299,Juan Monaco,ARG,male,1984-03-29,1.85,77.0,tennis,0,0,0 -517352231,Juan Nogueira,BRA,male,1988-05-01,1.86,,boxing,0,0,0 -516208233,Juan Pablo Estelles,ARG,male,1988-05-05,1.85,90.0,rugby sevens,0,0,0 -92791561,Juan Pablo Fernandez,ARG,male,1988-09-30,1.92,86.0,handball,0,0,0 -585918319,Juan Pablo Romero,MEX,male,1990-01-30,1.8,,boxing,0,0,0 -59463707,Juan Peralta Gascon,ESP,male,1990-05-17,1.94,93.0,cycling,0,0,0 -388064286,Juan Postigos,PER,male,1989-05-13,1.6,60.0,judo,0,0,0 -118278910,Juan Quintero,COL,male,1995-03-23,1.83,76.0,football,0,0,0 -935796461,Juan Ramon Virgen Pulido,MEX,male,1987-04-09,1.97,96.0,volleyball,0,0,0 -335899694,Juan Saladino,ARG,male,1987-09-28,1.74,73.0,hockey,1,0,0 -566554621,Juan Vivaldi,ARG,male,1979-07-17,1.8,80.0,hockey,1,0,0 -808940866,Juan de Jongh,RSA,male,1988-04-15,1.75,87.0,rugby sevens,0,0,1 -819205568,Juan de la Fuente,ARG,male,1976-08-15,1.81,74.0,sailing,0,0,0 -394965054,Juan-Carlos Navarro,ESP,male,1980-06-13,1.93,82.0,basketball,0,0,1 -711645513,Juan-Sebastian Cabal,COL,male,1986-04-25,1.85,82.0,tennis,0,0,0 -232537338,Juander Santos,DOM,male,1995-05-07,1.71,58.0,athletics,0,0,0 -704786896,Juciely Cristina Barreto,BRA,female,1980-12-18,1.83,72.0,volleyball,0,0,0 -42046189,Judit Ignacio Sorribes,ESP,female,1994-03-18,1.65,58.0,aquatics,0,0,0 -581440046,Judith Forca Ariza,ESP,female,1996-06-07,1.73,70.0,aquatics,0,0,0 -264395591,Judith Mbougnade,CAF,female,1998-07-11,1.5,,boxing,0,0,0 -979044606,Judith Pietersen,NED,female,1989-07-03,1.87,73.0,volleyball,0,0,0 -888955559,Judy Reynolds,IRL,female,1981-06-11,1.58,58.0,equestrian,0,0,0 -381072761,Juho Reinvall,FIN,male,1988-08-24,1.66,60.0,judo,0,0,0 -498802525,Jules Bessan,BEN,male,1979-04-14,1.83,85.0,aquatics,0,0,0 -507759754,Julia Beljajeva,EST,female,1992-07-21,1.76,70.0,fencing,0,0,0 -78792839,Julia Catherine Vincent,RSA,female,1994-08-13,1.54,57.0,aquatics,0,0,0 -409510063,Julia Edward,NZL,female,1991-02-20,1.66,57.0,rowing,0,0,0 -373007150,Julia Figueroa,ESP,female,1991-04-07,1.5,48.0,judo,0,0,0 -851367696,Julia Fischer,GER,female,1990-04-01,1.92,98.0,athletics,0,0,0 -881992373,Julia Gomes,ARG,female,1992-04-30,1.65,60.0,hockey,0,0,0 -354743290,Julia Hassler,LIE,female,1993-02-27,1.77,73.0,aquatics,0,0,0 -195497456,Julia Hauser,AUT,female,1994-02-21,1.63,48.0,triathlon,0,0,0 -919533844,Julia Krajewski,GER,female,1988-10-22,1.68,65.0,equestrian,0,1,0 -94438177,Julia Lier,GER,female,1991-11-11,1.83,78.0,rowing,1,0,0 -843674273,Julia Muller,GER,female,1985-12-10,1.7,71.0,hockey,0,0,1 -814464830,Julia Pons,ESP,female,1994-07-27,1.65,61.0,hockey,0,0,0 -594049927,Julia Reinprecht,USA,female,1991-07-12,1.61,55.0,hockey,0,0,0 -257956193,Julia Sarda,BRA,female,1982-12-01,1.74,64.0,rugby sevens,0,0,0 -292662070,Julia Sebastian,ARG,female,1993-11-23,1.78,70.0,aquatics,0,0,0 -791900499,Julia Stavickaja,GER,female,1997-12-03,1.67,48.0,gymnastics,0,0,0 -716093130,Julia Takacs,ESP,female,1989-06-29,1.71,53.0,athletics,0,0,0 -22509268,Julia Vasconcelos dos Santos,BRA,female,1992-06-15,1.7,57.0,taekwondo,0,0,0 -396350226,Julian Alaphilippe,FRA,male,1992-06-11,1.73,62.0,cycling,0,0,0 -389816250,Julian Ayala,MEX,male,1992-03-06,1.71,80.0,fencing,0,0,0 -273158116,Julian Brandt,GER,male,1996-05-02,1.85,82.0,football,0,1,0 -288174300,Julian Fletcher,BER,male,1990-10-08,1.84,79.0,aquatics,0,0,0 -915650709,Julian Flugel,GER,male,1986-04-18,1.83,66.0,athletics,0,0,0 -118960924,Julian Jrummi Walsh,JPN,male,1996-09-18,1.75,75.0,athletics,0,0,0 -24583837,Julian Justus,GER,male,1988-01-29,1.77,76.0,shooting,0,0,0 -627630800,Julian Matthews,NZL,male,1988-07-21,1.84,70.0,athletics,0,0,0 -104075617,Julian Reus,GER,male,1988-04-29,1.76,76.0,athletics,0,0,0 -479350989,Julian Weber,GER,male,1994-08-29,1.91,98.0,athletics,0,0,0 -800712406,Juliana Esteves,BRA,female,1984-01-27,1.77,73.0,rugby sevens,0,0,0 -550164775,Juliana Gaviria Rendon,COL,female,1991-03-31,1.65,58.0,cycling,0,0,0 -633577633,Juliana Jose Machado,ANG,female,1994-11-06,1.75,60.0,handball,0,0,0 -562282904,Juliana Paula dos Santos,BRA,female,1983-07-12,1.65,50.0,athletics,0,0,0 -101862484,Juliana Veloso,BRA,female,1980-12-22,1.6,62.0,aquatics,0,0,0 -728944807,Juliane Rasmussen,DEN,female,1979-02-17,1.73,61.0,rowing,0,0,0 -966424858,Julianna Miskolczi,HUN,female,1983-11-22,1.56,49.0,shooting,0,0,0 -937877240,Juliano Fiori,BRA,male,1985-06-27,1.91,107.0,rugby sevens,0,0,0 -338982011,Juliao Neto,BRA,male,1981-08-16,1.65,,boxing,0,0,0 -271404469,Julie Brougham,NZL,female,1954-05-20,1.57,48.0,equestrian,0,0,0 -923461973,Julie Johnston,USA,female,1992-04-06,1.7,61.0,football,0,0,0 -433957819,Julie Kepp Jensen,DEN,female,2000-01-03,1.77,65.0,aquatics,0,0,0 -662203262,Julie Meynen,LUX,female,1997-08-15,1.7,63.0,aquatics,0,0,0 -303814544,Julien Absalon,FRA,male,1980-08-16,1.8,68.0,cycling,0,0,0 -60020354,Julien Bahain,CAN,male,1986-04-20,1.9,93.0,rowing,0,0,0 -712150971,Julien Candelon,FRA,male,1980-07-08,1.7,80.0,rugby sevens,0,0,0 -867157773,Julien Gobaux,FRA,male,1990-12-11,1.67,62.0,gymnastics,0,0,0 -774410191,Julien Quesne,FRA,male,1980-08-16,1.85,88.0,golf,0,0,0 -757315970,Julien Watrin,BEL,male,1992-06-27,1.89,83.0,athletics,0,0,0 -962879306,Julien d'Ortoli,FRA,male,1983-10-07,1.8,75.0,sailing,0,0,0 -950043572,Juliet Chekwel,UGA,female,1990-03-25,,,athletics,0,0,0 -307667762,Juliet Itoya,ESP,female,1986-08-17,1.69,58.0,athletics,0,0,0 -149975684,Julieta Constanza Lazcano,ARG,female,1989-06-25,1.9,74.0,volleyball,0,0,0 -569399978,Julieta Granada,PAR,female,1986-11-17,1.6,58.0,golf,0,0,0 -640084413,Julieta Toledo,MEX,female,1997-05-24,1.66,66.0,fencing,0,0,0 -799627712,Juliette Ramel,SWE,female,1987-04-12,1.71,55.0,equestrian,0,0,0 -376593072,Julio Almeida,BRA,male,1969-09-23,1.8,90.0,shooting,0,0,0 -578772600,Julio Alsogaray,ARG,male,1980-04-11,1.8,81.0,sailing,0,0,0 -747521379,Julio Cesar Acosta Gonzalez,CHI,male,1987-07-22,1.6,61.0,weightlifting,0,0,0 -333152040,Julio Cesar Castillo,ECU,male,1988-05-10,1.83,,boxing,0,0,0 -549178578,Julio Cesar Iemma Hernandez,VEN,male,1984-07-31,1.68,70.0,shooting,0,0,0 -158409385,Julio Cesar Salamanca Pineda,ESA,male,1989-07-15,1.59,62.0,weightlifting,0,0,0 -356214385,Julio Cesar Salazar,MEX,male,1993-07-08,1.76,60.0,athletics,0,0,0 -429794805,Julio Cesar de Oliveira,BRA,male,1986-02-04,1.85,95.0,athletics,0,0,0 -912637672,Julio Cesar la Cruz,CUB,male,1989-08-11,1.82,,boxing,1,0,0 -293911956,Julio Peralta,CHI,male,1981-09-09,1.89,80.0,tennis,0,0,0 -856955212,Julissa Diez Canseco,PER,female,1989-06-05,1.7,49.0,taekwondo,0,0,0 -52744143,Julius Kuhn,GER,male,1993-04-01,1.98,110.0,handball,0,0,1 -352796479,Julius Yego,KEN,male,1989-01-04,1.75,94.0,athletics,0,1,0 -833182511,Jun Heo,KOR,male,1988-05-31,1.68,64.0,fencing,0,0,0 -990108444,Jun Hoong Cheong,MAS,female,1990-04-16,1.53,46.0,aquatics,0,1,0 -971499639,Jun Mizutani,JPN,male,1989-06-09,1.72,63.0,table tennis,0,1,1 -837661821,Jun Shan,CHN,male,1994-08-07,1.72,,boxing,0,0,0 -328126879,Jun Yang,CHN,female,1988-04-28,1.8,69.0,aquatics,0,0,0 -898311944,Juncheol Kwon,KOR,male,1988-11-16,1.78,76.0,shooting,0,0,0 -13885387,Jungbaik Lee,KOR,male,1986-08-27,1.61,65.0,wrestling,0,0,0 -462538119,Jungeun Seo,KOR,female,1991-12-26,1.68,61.0,hockey,0,0,0 -603653372,Junghwan Kim,KOR,male,1983-09-02,1.78,66.0,fencing,0,0,1 -851472120,Junghye Kwak,KOR,female,1986-11-19,1.64,64.0,shooting,0,0,0 -540684742,Jungsub Shim,KOR,male,1991-02-21,1.68,58.0,athletics,0,0,0 -118478984,Junhong Kim,KOR,male,1990-10-28,1.77,68.0,shooting,0,0,0 -184749002,Junhua Yin,CHN,female,1990-08-27,1.67,,boxing,0,1,0 -239850180,Junsik Yun,KOR,male,1991-08-09,1.66,65.0,wrestling,0,0,0 -645739020,Junxia Yang,CHN,female,1989-05-02,1.69,63.0,judo,0,0,0 -543006659,Junya Hasegawa,JPN,male,1993-12-13,1.8,70.0,aquatics,0,0,0 -390371883,Junya Koga,JPN,male,1987-07-19,1.82,80.0,aquatics,0,0,0 -868084272,Juozas Bernotas,LTU,male,1989-04-23,1.86,80.0,sailing,0,0,0 -954911768,Jur Vrieling,NED,male,1969-07-31,1.86,81.0,equestrian,0,0,0 -546944322,Juraj Tarr,SVK,male,1979-02-18,1.86,88.0,canoe,0,1,0 -992216184,Juraj Tuzinsky,SVK,male,1984-08-24,1.84,73.0,shooting,0,0,0 -917333595,Jure Dolenec,SLO,male,1988-12-06,1.9,93.0,handball,0,0,0 -332222731,Jure Meglic,AZE,male,1984-10-18,1.82,80.0,canoe,0,0,0 -732395162,Jurgen Spiess,GER,male,1984-03-26,1.75,105.0,weightlifting,0,0,0 -957010520,Jurgen Themen,SUR,male,1985-10-26,,,athletics,0,0,0 -730050855,Justin Duff,CAN,male,1988-05-10,2.0,102.0,volleyball,0,0,0 -574761075,Justin Gatlin,USA,male,1982-02-10,1.86,80.0,athletics,0,1,0 -880505445,Justin Geduld,RSA,male,1993-10-01,1.75,78.0,rugby sevens,0,0,1 -440014013,Justin Liu,SIN,male,1991-05-28,1.67,78.0,sailing,0,0,0 -369577883,Justin Rose,GBR,male,1980-07-30,1.93,89.0,golf,1,0,0 -148873377,Justinas Kinderis,LTU,male,1987-05-24,1.84,82.0,modern pentathlon,0,0,0 -203006331,Justine Fedronic,FRA,female,1991-05-11,1.68,54.0,athletics,0,0,0 -768117731,Justine Palframan,RSA,female,1993-11-04,1.71,64.0,athletics,0,0,0 -769813502,Justyna Kaczkowska,POL,female,1997-10-07,1.74,71.0,cycling,0,0,0 -627015913,Justyna Swiety,POL,female,1992-12-03,1.65,57.0,athletics,0,0,0 -571537130,Jutatip Maneephan,THA,female,1988-07-08,1.57,57.0,cycling,0,0,0 -672417750,Jwala Gutta,IND,female,1983-09-07,1.78,85.0,badminton,0,0,0 -947906976,KK Clark,USA,female,1990-06-28,1.88,72.0,aquatics,1,0,0 -47855369,Ka Bian,CHN,female,1993-01-05,1.82,115.0,athletics,0,0,0 -457893226,Ka Long Angus Ng,HKG,male,1994-06-24,1.81,70.0,badminton,0,0,0 -593897941,Ka Long Cheung,HKG,male,1997-06-10,1.81,68.0,fencing,0,0,0 -680900592,Ka Man Lee,HKG,female,1986-11-28,1.68,59.0,rowing,0,0,0 -305478662,Kaan Kigen Ozbilen,TUR,male,1986-01-15,1.78,57.0,athletics,0,0,0 -715141748,Kaarle Tapper,FIN,male,1995-09-19,1.9,84.0,sailing,0,0,0 -256631076,Kabange Mupopo,ZAM,female,1992-09-21,1.7,62.0,athletics,0,0,0 -148757871,Kacper Klich,POL,male,1994-11-12,1.82,78.0,aquatics,0,0,0 -205302143,Kacper Kozlowski,POL,male,1986-12-07,1.77,72.0,athletics,0,0,0 -280331524,Kacper Majchrzak,POL,male,1992-09-22,1.9,87.0,aquatics,0,0,0 -284586329,Kacper Zieminski,POL,male,1990-11-04,1.83,82.0,sailing,0,0,0 -438808296,Kadeisha Buchanan,CAN,female,1995-11-05,1.7,65.0,football,0,0,1 -219399568,Kadidiatou Diani,FRA,female,1995-04-01,1.68,57.0,football,0,0,0 -357724648,Kadra Mohamed Dembil,DJI,female,1997-04-22,1.55,55.0,athletics,0,0,0 -730889224,Kaede Kondo,JPN,female,1991-10-06,1.73,62.0,basketball,0,0,0 -721642129,Kafetien Gomis,FRA,male,1980-03-23,1.85,70.0,athletics,0,0,0 -607051462,Kahena Kunze,BRA,female,1991-03-12,1.72,68.0,sailing,1,0,0 -796984995,Kaho Minagawa,JPN,female,1997-08-20,1.68,49.0,gymnastics,0,0,0 -738530112,Kai Hafner,GER,male,1989-07-10,1.92,95.0,handball,0,0,1 -740563078,Kai Kazmirek,GER,male,1991-01-28,1.9,88.0,athletics,0,0,0 -39749857,Kai Langerfeld,CAN,male,1987-07-05,1.97,100.0,rowing,0,0,0 -619887656,Kai Qin,CHN,male,1986-01-31,1.7,65.0,aquatics,0,0,1 -968160329,Kai Selvon,TTO,female,1992-04-13,1.65,59.0,athletics,0,0,0 -239319244,Kaidi Kivioja,EST,female,1993-02-23,1.76,61.0,triathlon,0,0,0 -924327192,Kailen Sheridan,CAN,female,1995-07-16,1.78,72.0,football,0,0,0 -880036778,Kaio Marcio,BRA,male,1984-10-19,1.77,75.0,aquatics,0,0,0 -319193694,Kairat Yeraliyev,KAZ,male,1990-11-08,1.65,,boxing,0,0,0 -55703816,Kaj Hendriks,NED,male,1987-08-19,1.97,95.0,rowing,0,0,1 -951014219,Kaleigh Gilchrist,USA,female,1992-05-16,1.76,77.0,aquatics,1,0,0 -462211738,Kamal Aldin Mallash,QAT,male,1992-01-01,1.8,80.0,handball,0,0,0 -943342389,Kame Ali,MAD,male,1984-05-21,1.85,84.0,athletics,0,0,0 -324865660,Kameli Soejima,JPN,male,1983-06-01,1.89,94.0,rugby sevens,0,0,0 -608037098,Kami Craig,USA,female,1987-07-21,1.81,88.0,aquatics,1,0,0 -103254143,Kamia Yousufi,AFG,female,1996-05-20,1.65,55.0,athletics,0,0,0 -743593230,Kamil Kuczynski,POL,male,1985-03-23,,,cycling,0,0,0 -981300465,Kamil Syprzak,POL,male,1991-07-23,2.07,118.0,handball,0,0,0 -838362564,Kamila Licwinko,POL,female,1986-03-22,1.84,66.0,athletics,0,0,0 -109033637,Kamilla Rytter juhl,DEN,female,1983-11-23,1.83,71.0,badminton,0,1,0 -123021523,Kamolwan Chanyim,THA,female,1996-01-03,1.75,65.0,sailing,0,0,0 -790596898,Kamongwa Salukombo Makorobondo,COD,male,1988-08-13,,,athletics,0,0,0 -372258149,Kamran Shakhsuvarly,AZE,male,1992-12-06,1.8,,boxing,0,0,1 -388605257,Kana Mitsugi,JPN,female,1992-06-28,1.72,72.0,rugby sevens,0,0,0 -994718425,Kana Nomura,JPN,female,1990-03-23,1.67,57.0,hockey,0,0,0 -346210070,Kanae Yagi,JPN,female,1992-07-16,1.54,52.0,weightlifting,0,0,0 -104327995,Kanae Yamabe,JPN,female,1990-09-22,1.72,108.0,judo,0,0,1 -386777560,Kanak Jha,USA,male,2000-06-19,1.66,51.0,table tennis,0,0,0 -274674975,Kanako Watanabe,JPN,female,1996-11-15,1.67,60.0,aquatics,0,0,0 -160704850,Kanami Nakamaki,JPN,female,1992-06-05,1.69,56.0,aquatics,0,0,1 -772973384,Kanami Tashiro,JPN,female,1991-03-25,1.73,66.0,volleyball,0,0,0 -27065279,Kane Radford,NZL,male,1990-11-02,1.75,79.0,aquatics,0,0,0 -234490151,Kane Russell,NZL,male,1992-04-22,1.76,82.0,hockey,0,0,0 -553259590,Kanika Beckles,GRN,female,1991-10-03,,,athletics,0,0,0 -743776991,Kano Omata,JPN,female,1996-07-24,1.61,48.0,aquatics,0,0,1 -141149492,Kanstantsin Barycheuski,BLR,male,1990-05-29,1.91,87.0,athletics,0,0,0 -791361517,Kanstantsin Siutsou,BLR,male,1982-08-09,1.84,70.0,cycling,0,0,0 -447034461,Kaori Icho,JPN,female,1984-06-13,1.66,61.0,wrestling,1,0,0 -316924793,Kaori Kawanaka,JPN,female,1991-08-03,1.59,51.0,archery,0,0,0 -351978454,Kaori Matsumoto,JPN,female,1987-09-11,1.63,57.0,judo,0,0,1 -429591068,Kapririel Kitson,FSM,male,1993-12-10,1.53,70.0,athletics,0,0,0 -717634951,Kara Chad,CAN,female,1996-01-09,,,equestrian,0,0,0 -30506524,Kara Winger,USA,female,1986-04-10,1.83,83.0,athletics,0,0,0 -788211955,Karabo Sibanda,BOT,male,1998-07-02,,,athletics,0,0,0 -765541612,Karar Ibrahim,IRQ,male,1994-09-19,1.82,74.0,football,0,0,0 -865191792,Karel Lavicky,CZE,male,1985-11-08,1.92,80.0,sailing,0,0,0 -62963470,Karem Achach,MEX,female,1991-02-25,1.69,60.0,aquatics,0,0,0 -786004687,Karem Ben Hnia,TUN,male,1994-11-13,1.65,69.0,weightlifting,0,0,0 -871511200,Karen Bennett,GBR,female,1989-02-05,1.79,75.0,rowing,0,1,0 -137070973,Karen Cope Charles,CRC,female,1985-11-06,1.73,59.0,volleyball,0,0,0 -263091246,Karen Gallardo,CHI,female,1984-03-06,1.75,96.0,athletics,0,0,0 -660233137,Karen Paquin,CAN,female,1987-08-03,1.72,70.0,rugby sevens,0,0,1 -582647371,Karen Riveros,PAR,female,1994-12-04,1.7,66.0,aquatics,0,0,0 -419664403,Karen Tebar,FRA,female,1964-09-19,1.59,57.0,equestrian,0,0,0 -141875290,Karen Torrez,BOL,female,1992-07-29,1.65,59.0,aquatics,0,0,0 -339808080,Kari Aalvik Grimsbo,NOR,female,1985-01-04,1.8,,handball,0,0,1 -550682162,Kariem Hussein,SUI,male,1989-01-04,1.91,76.0,athletics,0,0,0 -306135130,Karien Robbers,NED,female,1993-08-16,1.8,68.0,rowing,0,0,0 -617638592,Karim Elsayed,EGY,male,1995-02-16,1.83,87.0,canoe,0,0,0 -402272259,Karim Elzoghby,EGY,male,1977-02-15,1.78,70.0,equestrian,0,0,0 -282551125,Karim Gharbi,SMR,male,1992-01-05,1.82,100.0,judo,0,0,0 -78441979,Karim Hendawy,EGY,male,1988-05-01,1.88,90.0,handball,0,0,0 -423872774,Karim Laghouag,FRA,male,1975-08-04,1.77,70.0,equestrian,1,0,0 -960874866,Kariman Abuljadayel,KSA,female,1994-05-11,1.8,70.0,athletics,0,0,0 -825653693,Karin Donckers,BEL,female,1971-05-28,1.68,57.0,equestrian,0,0,0 -256420475,Karin Johansson,SWE,female,1986-10-04,1.69,77.0,canoe,0,0,0 -827466551,Karin Knapp,ITA,female,1987-06-28,1.8,72.0,tennis,0,0,0 -727101608,Karin Mey Melis,TUR,female,1983-05-31,1.71,55.0,athletics,0,0,0 -728372437,Karin Schnaase,GER,female,1985-02-14,1.64,56.0,badminton,0,0,0 -255926111,Karina Goricheva,KAZ,female,1993-04-08,1.6,63.0,weightlifting,0,0,1 -84056388,Karina Lipiarska-Palka,POL,female,1987-02-16,1.74,76.0,archery,0,0,0 -402338305,Karina Lykhvar,ISR,female,1998-12-11,1.7,53.0,gymnastics,0,0,0 -326279643,Karina Ocasio,PUR,female,1985-08-01,1.92,76.0,volleyball,0,0,0 -696191181,Karine Icher,FRA,female,1979-01-26,1.72,66.0,golf,0,0,0 -794384409,Karine Thomas,CAN,female,1989-01-14,1.72,53.0,aquatics,0,0,0 -504393481,Karitaake Tewaaki,KIR,female,1997-12-01,1.55,52.0,athletics,0,0,0 -206296331,Karl Robert Saluri,EST,male,1993-08-06,1.78,75.0,athletics,0,0,0 -630306564,Karl Schulze,GER,male,1988-03-05,1.9,100.0,rowing,1,0,0 -318067161,Karl-Martin Rammo,EST,male,1989-06-06,1.9,82.0,sailing,0,0,0 -773611309,Karl-Richard Frey,GER,male,1991-07-11,1.88,103.0,judo,0,0,0 -541116732,Karla Borger,GER,female,1988-11-22,1.79,66.0,volleyball,0,0,0 -510946610,Karma Karma,BHU,female,1990-06-06,1.63,51.0,archery,0,0,0 -736369747,Karol Bielecki,POL,male,1982-01-23,2.02,106.0,handball,0,0,0 -659495321,Karol Hoffmann,POL,male,1989-06-01,1.96,84.0,athletics,0,0,0 -999580644,Karol Klos,POL,male,1989-08-08,2.01,87.0,volleyball,0,0,0 -867135736,Karol Robak,POL,male,1997-08-24,1.86,68.0,taekwondo,0,0,0 -366245862,Karol Zalewski,POL,male,1993-08-07,1.89,86.0,athletics,0,0,0 -206688360,Karol-Ann Canuel,CAN,female,1988-04-18,1.63,51.0,cycling,0,0,0 -144492522,Karolina Koleczek,POL,female,1993-01-15,1.68,53.0,athletics,0,0,0 -855211189,Karolina Naja,POL,female,1990-02-05,1.65,63.0,canoe,0,0,1 -130728600,Karoline Bjerkeli Grovdal,NOR,female,1990-06-14,,,athletics,0,0,0 -387323294,Karoline Lusitania Tatafu,TGA,female,1998-02-20,1.76,70.0,archery,0,0,0 -380236044,Karri McMahon,AUS,female,1992-02-27,1.77,70.0,hockey,0,0,0 -406293602,Karsta Lowe,USA,female,1993-02-02,1.93,75.0,volleyball,0,0,1 -123017629,Karsten Dilla,GER,male,1989-07-17,1.88,82.0,athletics,0,0,0 -338139502,Karsten Forsterling,AUS,male,1980-01-21,1.91,88.0,rowing,0,1,0 -687827213,Karsten Warholm,NOR,male,1996-02-28,,,athletics,0,0,0 -45164432,Kasey Perry-Glass,USA,female,1987-10-12,1.63,58.0,equestrian,0,0,1 -824542494,Kaspar Taimsoo,EST,male,1987-04-30,1.94,95.0,rowing,0,0,1 -807443109,Kasper Joergensen,DEN,male,1985-03-21,1.85,75.0,rowing,0,1,0 -498991577,Kasper Larsen,DEN,male,1993-01-25,1.9,88.0,football,0,0,0 -821953802,Kasper Sondergaard,DEN,male,1981-06-09,1.95,95.0,handball,1,0,0 -375680192,Kassidy Cook,USA,female,1995-05-09,1.63,56.0,aquatics,0,0,0 -745894634,Kasumi Ishikawa,JPN,female,1993-02-23,1.58,51.0,table tennis,0,0,1 -372060903,Katai Yeerlanbieke,CHN,male,1990-07-16,1.69,77.0,wrestling,0,0,0 -621329519,Katarina Beresova,SVK,female,1987-10-10,1.62,49.0,athletics,0,0,0 -963217820,Katarina Bulatovic,MNE,female,1984-11-15,1.86,71.0,handball,0,0,0 -682459058,Katarina Johnson-Thompson,GBR,female,1993-01-09,1.83,68.0,athletics,0,0,0 -776863385,Katarina Listopadova,SVK,female,1993-03-22,1.69,60.0,aquatics,0,0,0 -448575637,Katarina Simonovic,SRB,female,1994-10-25,1.64,64.0,aquatics,0,0,0 -701050744,Katarzyna Baranowska,POL,female,1987-09-13,1.84,72.0,aquatics,0,0,0 -508525256,Katarzyna Grzybowska-Franc,POL,female,1989-04-30,1.7,58.0,table tennis,0,0,0 -821941106,Katarzyna Jurkowska-Kowalska,POL,female,1992-02-18,1.61,50.0,gymnastics,0,0,0 -133150742,Katarzyna Klys,POL,female,1986-04-23,1.74,70.0,judo,0,0,0 -779199386,Katarzyna Kowalska,POL,female,1985-04-07,1.78,55.0,athletics,0,0,0 -632636643,Katarzyna Krawczyk,POL,female,1990-09-06,1.58,53.0,wrestling,0,0,0 -952109931,Katarzyna Niewiadoma,POL,female,1994-09-29,,,cycling,0,0,0 -601530122,Katarzyna Sokolska,POL,female,1993-08-23,1.72,57.0,athletics,0,0,0 -291806865,Katarzyna Trzopek,USA,female,1981-05-06,1.76,74.0,fencing,0,0,0 -609219433,Katarzyna Wilk,POL,female,1992-03-22,1.78,64.0,aquatics,0,0,0 -103732523,Kate Christowitz,RSA,female,1991-03-05,1.84,76.0,rowing,0,0,0 -750498579,Kate Foo kune,MRI,female,1993-03-29,,,badminton,0,0,0 -659941173,Kate French,GBR,female,1991-02-11,1.75,65.0,modern pentathlon,0,0,0 -42745952,Kate Grace,USA,female,1988-10-24,1.73,55.0,athletics,0,0,0 -562453603,Kate O'Brien,CAN,female,1988-07-23,1.68,70.0,cycling,0,0,0 -669429758,Kate Richardson-Walsh,GBR,female,1980-05-09,1.61,66.0,hockey,1,0,0 -845437093,Katelin Snyder,USA,female,1987-08-16,1.63,49.0,rowing,1,0,0 -211784095,Katelyn Falgowski,USA,female,1988-10-23,1.68,62.0,hockey,0,0,0 -673565659,Katerina Cachova,CZE,female,1990-02-26,1.73,63.0,athletics,0,0,0 -425721150,Katerina Kudejova,CZE,female,1990-01-17,1.73,63.0,canoe,0,0,0 -455000082,Katerina Nash,CZE,female,1977-12-09,1.64,52.0,cycling,0,0,0 -823950105,Katerina Nikoloska,MKD,female,1990-12-30,1.63,63.0,judo,0,0,0 -11497887,Katerina Safrankova,CZE,female,1989-06-08,1.93,103.0,athletics,0,0,0 -495858343,Katerine Savard,CAN,female,1993-05-26,1.67,54.0,aquatics,0,0,1 -967587376,Kateryna Derun,UKR,female,1993-09-24,1.67,75.0,athletics,0,0,0 -478782814,Kateryna Sadurska,UKR,female,1992-07-19,1.78,58.0,aquatics,0,0,0 -132167666,Katharina Haecker,AUS,female,1992-07-31,1.72,63.0,judo,0,0,0 -798170261,Katharina Otte,GER,female,1987-05-29,1.7,61.0,hockey,0,0,1 -124647381,Katharine Holmes,USA,female,1993-07-15,1.81,79.0,fencing,0,0,0 -962942201,Katherine Copeland,GBR,female,1990-12-01,1.72,58.0,rowing,0,0,0 -342063929,Katherine Driscoll,GBR,female,1986-03-13,1.57,55.0,gymnastics,0,0,0 -799137715,Katherine Grainger,GBR,female,1975-11-12,1.83,78.0,rowing,0,1,0 -495646589,Katherine Julissa Rodriguez Peguero,DOM,female,1991-12-18,1.86,75.0,taekwondo,0,0,0 -812632627,Katherine Miller,BRA,female,1994-05-09,1.8,74.0,fencing,0,0,0 -110579331,Katherine Plouffe,CAN,female,1992-09-15,1.9,89.0,basketball,0,0,0 -864345352,Katherine Reinprecht,USA,female,1989-11-01,1.63,56.0,hockey,0,0,0 -36697871,Kathleen Baker,USA,female,1997-02-28,1.73,67.0,aquatics,1,1,0 -136505337,Kathleen Bam,USA,female,1988-12-06,1.55,54.0,hockey,0,0,0 -353620509,Kathleen Bertko,USA,female,1983-11-08,1.76,58.0,rowing,0,0,0 -280337491,Kathleen Sharkey,USA,female,1990-04-30,1.63,58.0,hockey,0,0,0 -530798213,Kathrin Hendrich,GER,female,1992-04-06,1.72,60.0,football,0,0,0 -257116773,Kathrin Klaas,GER,female,1984-02-06,1.68,72.0,athletics,0,0,0 -449245678,Kathrin Marchand,GER,female,1990-11-15,1.83,69.0,rowing,0,0,0 -490337534,Kathrin Unterwurzacher,AUT,female,1992-06-05,1.73,63.0,judo,0,0,0 -911364658,Kathryn Johnson,USA,female,1991-10-25,1.78,69.0,rugby sevens,0,0,0 -297106226,Kathryn Mitchell,AUS,female,1982-07-10,1.68,72.0,athletics,0,0,0 -126231469,Kathryn Robinson,CAN,female,1985-08-04,1.79,58.0,equestrian,0,0,0 -181906965,Kathryn Slattery,AUS,female,1993-07-30,1.73,68.0,hockey,0,0,0 -624672038,Kati Tolmoff,EST,female,1983-12-03,1.64,62.0,badminton,0,0,0 -529644435,Katia Belabbas,ALG,female,1996-02-01,1.7,65.0,sailing,0,0,0 -437866225,Katie Archibald,GBR,female,1994-03-12,1.78,70.0,cycling,1,0,0 -85586674,Katie Bowen,NZL,female,1994-04-15,1.72,56.0,football,0,0,0 -56946849,Katie Clark,GBR,female,1994-03-23,1.68,56.0,aquatics,0,0,0 -447673304,Katie Duncan,NZL,female,1988-02-01,1.61,56.0,football,0,0,0 -932382598,Katie Greves,GBR,female,1982-09-02,1.79,71.0,rowing,0,1,0 -960103057,Katie Ledecky,USA,female,1997-03-17,1.83,72.0,aquatics,4,1,0 -624052007,Katie Rae Ebzery,AUS,female,1990-01-08,1.77,70.0,basketball,0,0,0 -810072016,Katie Taylor,IRL,female,1986-07-01,1.62,,boxing,0,0,0 -204377038,Katie Zaferes,USA,female,1989-06-09,1.73,58.0,triathlon,0,0,0 -643664378,Katinka Hosszu,HUN,female,1989-05-03,1.75,68.0,aquatics,3,1,0 -353743276,Katja Steen Salskov-Iversen,DEN,female,1994-08-19,1.73,70.0,sailing,0,0,1 -925144551,Katlin Tammiste,EST,female,1996-04-06,1.69,63.0,sailing,0,0,0 -762051242,Katrien Verstuyft,BEL,female,1982-07-21,1.7,61.0,triathlon,0,0,0 -668148835,Katrin Garfoot,AUS,female,1981-10-08,1.66,56.0,cycling,0,0,0 -775998118,Katrina Gorry,AUS,female,1992-08-13,1.54,54.0,football,0,0,0 -842830190,Katrina Young,USA,female,1992-01-10,1.63,59.0,aquatics,0,0,0 -152567636,Katrine Lunde,NOR,female,1980-03-30,1.81,,handball,0,0,1 -67639427,Katsiaryna Belanovich,BLR,female,1991-10-14,1.73,64.0,athletics,0,0,0 -462750147,Katsiaryna Halkina,BLR,female,1997-02-25,1.67,47.0,gymnastics,0,0,0 -67434341,Katsiaryna Snytsina,BLR,female,1985-09-02,1.88,78.0,basketball,0,0,0 -291078282,Katsumi Nakamura,JPN,male,1994-02-21,1.83,79.0,aquatics,0,0,0 -902484579,Katsuyuki Sakai,JPN,male,1988-09-07,1.72,85.0,rugby sevens,0,0,0 -482962110,Katsuyuki Tanamura,JPN,male,1989-08-03,1.84,84.0,aquatics,0,0,0 -758751258,Katy Marchant,GBR,female,1993-01-30,1.7,72.0,cycling,0,0,1 -28894925,Katy McLean,GBR,female,1985-12-19,1.67,70.0,rugby sevens,0,0,0 -257631088,Katy Sealy,BIZ,female,1990-10-15,1.72,61.0,athletics,0,0,0 -108089223,Kauiza Venancio,BRA,female,1987-06-11,1.64,58.0,athletics,0,0,0 -686041899,Kaur Kivistik,EST,male,1991-04-29,1.92,76.0,athletics,0,0,0 -25466533,Kaveh Mousavi,IRI,male,1985-05-27,1.92,89.0,athletics,0,0,0 -306669405,Kavita Tungar,IND,female,1985-05-05,1.57,45.0,athletics,0,0,0 -706766581,Kawika Shoji,USA,male,1987-11-11,1.9,79.0,volleyball,0,0,1 -55365531,Kaya Adwoa Forson,GHA,female,2002-03-19,,,aquatics,0,0,0 -707077587,Kayla Banwarth,USA,female,1989-01-21,1.78,75.0,volleyball,0,0,1 -204954873,Kayla Harrison,USA,female,1990-07-02,1.73,74.0,judo,1,0,0 -852366261,Kayla Imrie,NZL,female,1992-02-04,1.82,80.0,canoe,0,0,0 -536942057,Kayla McAlister,NZL,female,1988-08-06,1.69,70.0,rugby sevens,0,1,0 -430232213,Kayla Moleschi,CAN,female,1990-10-25,1.59,65.0,rugby sevens,0,0,1 -445589182,Kayla Pratt,NZL,female,1991-05-27,1.79,73.0,rowing,0,0,0 -892601199,Kayla Whitelock,NZL,female,1985-10-30,1.74,72.0,hockey,0,0,0 -279377870,Kaylin Swart,RSA,female,1994-09-30,,,football,0,0,0 -581084844,Kaylyn Kyle,CAN,female,1988-10-06,1.73,62.0,football,0,0,0 -187283498,Kayoko Fukushi,JPN,female,1982-03-25,1.6,47.0,athletics,0,0,0 -250885863,Kayra Sayit,TUR,female,1988-02-13,1.65,90.0,judo,0,0,0 -522045258,Kazuhiro Goya,JPN,male,1993-04-21,1.7,77.0,rugby sevens,0,0,0 -79558057,Kazuki Yazawa,JPN,male,1989-03-04,1.67,65.0,canoe,0,0,0 -717693447,Kazunari Watanabe,JPN,male,1983-08-12,1.76,80.0,cycling,0,0,0 -974913515,Kazushi Hano,JPN,male,1991-06-21,1.85,87.0,rugby sevens,0,0,0 -609247354,Kazushige Kuboki,JPN,male,1989-06-06,1.72,65.0,cycling,0,0,0 -874759036,Kazuto Doi,JPN,male,1992-03-17,1.75,65.0,sailing,0,0,0 -575081974,Kazuya Shiojiri,JPN,male,1996-11-08,1.7,53.0,athletics,0,0,0 -701275596,Kazuyasu Minobe,JPN,male,1987-07-15,1.77,75.0,fencing,0,0,0 -543655093,Kc Fraser,CAN,female,1986-03-29,1.73,68.0,canoe,0,0,0 -391464185,Keagan Dolly,RSA,male,1993-01-22,1.73,67.0,football,0,0,0 -306652910,Keegan Pereira,CAN,male,1991-09-08,1.66,59.0,hockey,0,0,0 -123790061,Keerati Bualong,THA,male,1992-12-06,1.81,82.0,sailing,0,0,0 -779357330,Keesja Gofers,AUS,female,1990-03-16,1.76,64.0,aquatics,0,0,0 -427387220,Kefasi Chitsala,MAW,male,1994-06-24,1.7,63.0,athletics,0,0,0 -953524242,Kei Marumo,JPN,female,1992-03-06,1.6,50.0,aquatics,0,0,1 -330313227,Kei Nishikori,JPN,male,1989-12-29,1.78,70.0,tennis,0,0,1 -364955058,Kei Takase,JPN,male,1988-11-25,1.8,67.0,athletics,0,0,0 -53827184,Keigo Okawa,JPN,male,1990-03-11,1.83,96.0,aquatics,0,0,0 -437883325,Keiko Miyagawa,JPN,female,1986-05-17,1.52,53.0,sailing,0,0,0 -522124135,Keila Costa,BRA,female,1983-02-06,1.7,62.0,athletics,0,0,0 -13083999,Keisuke Nozawa,JPN,male,1991-06-07,1.75,62.0,athletics,0,0,0 -151980843,Keisuke Ushiro,JPN,male,1986-07-24,1.96,95.0,athletics,0,0,0 -127445268,Keith Ferguson,AUS,male,1979-09-07,1.76,78.0,shooting,0,0,0 -450005449,Keith Sanderson,USA,male,1975-02-02,1.83,95.0,shooting,0,0,0 -357855872,Kelita Zupancic,CAN,female,1990-05-09,1.69,70.0,judo,0,0,0 -564720756,Kelley Hurley,USA,female,1988-04-04,1.76,74.0,fencing,0,0,0 -623867004,Kelley O Hara,USA,female,1988-08-04,1.65,54.0,football,0,0,0 -444880457,Kellion Knibb,JAM,female,1993-12-25,1.83,86.0,athletics,0,0,0 -500380678,Kelly Araouzou,GRE,female,1991-03-06,1.69,55.0,aquatics,0,0,0 -230772998,Kelly Brazier,NZL,female,1989-10-28,1.71,70.0,rugby sevens,0,1,0 -828916384,Kelly Catlin,USA,female,1995-11-03,1.68,63.0,cycling,0,1,0 -766396208,Kelly Dulfer,NED,female,1994-03-21,1.85,78.0,handball,0,0,0 -963773248,Kelly Griffin,USA,female,1986-11-07,1.63,68.0,rugby sevens,0,0,0 -690756146,Kelly Jonker,NED,female,1990-05-23,1.59,59.0,hockey,0,1,0 -998437044,Kelly Massey,GBR,female,1985-01-11,1.67,58.0,athletics,0,0,1 -142742348,Kelly Murphy,USA,female,1989-10-20,1.88,79.0,volleyball,0,0,1 -768193146,Kelly Russell,CAN,female,1986-12-07,1.78,83.0,rugby sevens,0,0,1 -857131931,Kelly Santos,BRA,female,1979-11-10,1.92,92.0,basketball,0,0,0 -106147663,Kelly Tan,MAS,female,1993-10-26,1.65,61.0,golf,0,0,0 -715061380,Kelly-Ann Baptiste,TTO,female,1986-10-14,1.67,54.0,athletics,0,0,0 -576431902,Kellys Arias,COL,female,1989-07-03,,150.0,athletics,0,0,0 -257977443,Kelsey Bevan,NZL,female,1990-04-10,1.74,70.0,rowing,0,0,0 -667833997,Kelsey Card,USA,female,1992-08-20,1.78,115.0,athletics,0,0,0 -549733789,Kelsey Kolojejchick,USA,female,1991-10-02,1.61,61.0,hockey,0,0,0 -132170004,Kelsey Robinson,USA,female,1992-06-25,1.88,75.0,volleyball,0,0,1 -70574268,Kelsey Smith,NZL,female,1994-08-11,1.63,58.0,hockey,0,0,0 -963525573,Kelsey Wakefield,AUS,female,1991-06-01,1.78,64.0,aquatics,0,0,0 -149754220,Kelsey-Lee Roberts,AUS,female,1991-09-20,1.75,70.0,athletics,0,0,0 -596257734,Kelsi Worrell,USA,female,1994-07-15,1.81,74.0,aquatics,1,0,0 -355934349,Kelsie Ahbe,CAN,female,1991-07-06,1.7,63.0,athletics,0,0,0 -713350600,Kelvin Cana Infante,VEN,male,1987-08-06,1.73,72.0,fencing,0,0,0 -99564974,Kemal Mesic,BIH,male,1985-08-04,1.96,120.0,athletics,0,0,0 -216203916,Kemar Bailey-Cole,JAM,male,1992-01-10,1.93,84.0,athletics,1,0,0 -762215715,Kemar Hyman,CAY,male,1989-10-11,1.78,74.0,athletics,0,0,0 -336905285,Kemarley Brown,BRN,male,1992-07-20,1.82,85.0,athletics,0,0,0 -122476731,Kemoy Campbell,JAM,male,1991-01-14,1.68,57.0,athletics,0,0,0 -891361844,Ken Sema,SWE,male,1993-09-30,1.8,69.0,football,0,0,0 -217152230,Ken Terauchi,JPN,male,1980-08-07,1.7,70.0,aquatics,0,0,0 -653195457,Ken Wallace,AUS,male,1983-07-26,1.9,90.0,canoe,0,0,1 -410580066,Kendell Williams,USA,female,1995-06-14,1.78,67.0,athletics,0,0,0 -609984968,Kendra Clarke,CAN,female,1996-11-16,1.67,56.0,athletics,0,0,0 -799965606,Kendrick James Farris,USA,male,1986-07-02,1.68,93.0,weightlifting,0,0,0 -960809660,Kenia Lechuga Alanis,MEX,female,1994-06-26,1.62,59.0,rowing,0,0,0 -254007387,Kenia Sinclair,JAM,female,1980-07-14,1.7,58.0,athletics,0,0,0 -436752047,Kenichi Hayakawa,JPN,male,1986-04-05,1.77,80.0,badminton,0,0,0 -990014757,Kenji Fujimitsu,JPN,male,1986-05-01,1.82,69.0,athletics,0,0,0 -570694823,Kenji Kobase,JPN,male,1987-07-31,1.8,80.0,aquatics,0,0,0 -206392869,Kenji Takahashi,JPN,male,1982-08-21,1.86,77.0,sailing,0,0,0 -316685534,Kenki Fukuoka,JPN,male,1992-09-07,1.76,85.0,rugby sevens,0,0,0 -41041819,Kennedy Goss,CAN,female,1996-08-19,1.73,74.0,aquatics,0,0,1 -347348758,Kennedy Katende,UGA,male,1985-03-15,1.76,,boxing,0,0,0 -392095745,Kennedy St Pierre,MRI,male,1992-10-23,1.8,,boxing,0,0,0 -907808928,Kent Farrington,USA,male,1980-12-28,1.73,65.0,equestrian,0,1,0 -936887083,Kenta Kazuno,JPN,male,1985-11-25,1.71,68.0,badminton,0,0,0 -750688405,Kenta Tokunan,JPN,male,1987-08-17,1.83,83.0,fencing,0,0,0 -919960658,Kentaro Sato,JPN,male,1994-11-16,1.74,64.0,athletics,0,0,0 -478863771,Kentin Mahe,FRA,male,1991-05-22,1.86,83.0,handball,0,1,0 -50571429,Kenya Yasuda,JPN,male,1989-03-29,1.82,77.0,aquatics,0,0,0 -948018416,Kenza Dahmani Tifahi,ALG,female,1980-11-18,1.64,54.0,athletics,0,0,0 -206971699,Kenza Dali,FRA,female,1991-07-31,1.65,60.0,football,0,0,0 -694582399,Kenzo Shirai,JPN,male,1996-08-24,1.62,51.0,gymnastics,1,0,1 -519543861,Keren Siebner,ISR,female,1990-06-09,1.8,68.0,aquatics,0,0,0 -976260835,Keri-Anne Payne,GBR,female,1987-12-09,1.77,66.0,aquatics,0,0,0 -423484325,Kerri Gowler,NZL,female,1993-12-18,1.82,76.0,rowing,0,0,0 -499209508,Kerri Walsh Jennings,USA,female,1978-08-15,1.88,72.0,volleyball,0,0,1 -891867859,Kerron Clement,USA,male,1985-10-31,1.88,86.0,athletics,1,0,0 -233041375,Kerry Hore,AUS,female,1981-07-03,1.83,74.0,rowing,0,0,0 -281101041,Kerry O'Flaherty,IRL,female,1981-07-15,1.67,53.0,athletics,0,0,0 -419463510,Kerry Simmonds,USA,female,1989-04-03,1.83,81.0,rowing,1,0,0 -897407929,Kersten Thiele,GER,male,1992-09-29,1.79,75.0,cycling,0,0,0 -199341754,Kerstin Hartmann,GER,female,1988-06-14,1.77,70.0,rowing,0,0,0 -146173723,Keryn McMaster,AUS,female,1993-09-19,1.69,63.0,aquatics,0,0,0 -770832062,Keshorn Walcott,TTO,male,1993-04-02,1.83,90.0,athletics,0,0,1 -416635977,Keston Bledman,TTO,male,1998-03-08,1.8,88.0,athletics,0,0,0 -232848294,Ketija Birzule,LAT,female,1998-10-30,1.64,60.0,sailing,0,0,0 -197595753,Keturah Orji,USA,female,1996-03-05,1.66,61.0,athletics,0,0,0 -833124628,Kevin Alvarez,HON,male,1996-08-03,1.81,76.0,football,0,0,0 -746715808,Kevin Balanta,COL,male,1997-04-28,1.83,77.0,football,0,0,0 -623836898,Kevin Borlee,BEL,male,1988-02-22,1.8,67.0,athletics,0,0,0 -966461542,Kevin Bouly,FRA,male,1981-04-26,1.77,94.0,weightlifting,0,0,0 -262171881,Kevin Campion,FRA,male,1988-05-23,1.83,63.0,athletics,0,0,0 -772532077,Kevin Chavez Banda,AUS,male,1992-07-09,1.7,70.0,aquatics,0,0,0 -905417640,Kevin Cordes,USA,male,1993-08-13,1.96,88.0,aquatics,1,0,0 -665096571,Kevin Cordon,GUA,male,1986-11-28,1.8,80.0,badminton,0,0,0 -936447136,Kevin Crovetto,MON,male,1992-06-10,1.83,81.0,gymnastics,0,0,0 -887138863,Kevin Durant,USA,male,1988-09-29,2.05,104.0,basketball,1,0,0 -947055286,Kevin Lisch,AUS,male,1986-05-16,1.88,89.0,basketball,0,0,0 -985840182,Kevin Lopez,HON,male,1996-02-03,1.7,69.0,football,0,0,0 -631415010,Kevin Lopez,ESP,male,1990-06-12,1.71,56.0,athletics,0,0,0 -385550989,Kevin Mayer,FRA,male,1992-02-10,1.86,77.0,athletics,0,1,0 -73691099,Kevin Menaldo,FRA,male,1992-07-12,1.76,66.0,athletics,0,0,0 -251643521,Kevin Seaward,IRL,male,1983-10-03,1.75,59.0,athletics,0,0,0 -78313591,Kevin Staut,FRA,male,1980-11-15,1.82,70.0,equestrian,1,0,0 -958136860,Kevin Tillie,FRA,male,1990-11-02,2.0,85.0,volleyball,0,0,0 -30949158,Kevin le Roux,FRA,male,1989-05-11,2.09,98.0,volleyball,0,0,0 -650099766,Keyuan Shang,CHN,male,1995-02-04,1.83,79.0,aquatics,0,0,0 -897015482,Khaddi Sagnia,SWE,female,1994-04-20,1.73,64.0,athletics,0,0,0 -260431373,Khader Ghetrich Baqlah,JOR,male,1998-09-15,1.84,80.0,aquatics,0,0,0 -107338569,Khadija Krimi,TUN,female,1995-08-18,1.71,57.0,rowing,0,0,0 -828792898,Khadija Mardi,MAR,female,1991-02-01,1.83,,boxing,0,0,0 -328541816,Khairul Anuar Mohamad,MAS,male,1991-09-22,1.71,75.0,archery,0,0,0 -460049325,Khairulnizam Mohd Afendy,MAS,male,1993-05-27,1.82,81.0,sailing,0,0,0 -176645733,Khaled Alkaabi,UAE,male,1985-06-25,1.68,85.0,shooting,0,0,0 -238249359,Khaled Almudhaf,IOA,male,1978-06-12,1.63,105.0,shooting,0,0,0 -936049605,Khaled Haj Youssef,TUN,male,1989-01-12,1.89,92.0,handball,0,0,0 -594297353,Khaled Houcine,TUN,male,1990-07-19,1.87,90.0,canoe,0,0,0 -659967898,Khalid Assar,EGY,male,1992-12-10,1.98,99.0,table tennis,0,0,0 -436529232,Khalid El Aabidi,MAR,male,1995-09-14,1.78,81.0,weightlifting,0,0,0 -999784977,Khalifa St Fort,TTO,female,1998-02-13,1.65,50.0,athletics,0,0,0 -9175796,Khamica Bingham,CAN,female,1994-06-15,1.6,60.0,athletics,0,0,0 -182346893,Khasan Khalmurzaev,RUS,male,1993-10-09,1.82,81.0,judo,1,0,0 -1610209,Khaterinne Medina,COL,female,1992-10-31,1.62,60.0,rugby sevens,0,0,0 -282117681,Khatuna Narimanidze,GEO,female,1974-02-02,1.75,79.0,archery,0,0,0 -118156581,Khe Wei Woon,MAS,female,1989-03-18,1.74,63.0,badminton,0,0,0 -18654335,Kheira Hamraoui,FRA,female,1990-01-13,1.79,69.0,football,0,0,0 -870781056,Kheta Ram,IND,male,1986-09-20,1.69,53.0,athletics,0,0,0 -813748404,Khetag Goziumov,AZE,male,1983-04-24,1.8,97.0,wrestling,0,1,0 -345063300,Khrystyna Stuy,UKR,female,1988-02-03,1.68,60.0,athletics,0,0,0 -824851938,Khuderbulga Dorjkhand,MGL,male,1992-05-07,1.81,102.0,wrestling,0,0,0 -953232269,Khushbir Kaur,IND,female,1993-07-09,,,athletics,0,0,0 -285632383,Kia Nurse,CAN,female,1996-02-22,1.82,68.0,basketball,0,0,0 -841438155,Kiana Eide,USA,female,1998-09-25,1.61,53.0,gymnastics,0,0,0 -966322568,Kianoush Rostami,IRI,male,1991-07-23,1.77,84.0,weightlifting,1,0,0 -224527761,Kibwe Johnson,USA,male,1981-07-17,1.88,102.0,athletics,0,0,0 -355505466,Kieran Behan,IRL,male,1989-04-19,1.63,65.0,gymnastics,0,0,0 -135963530,Kierra Smith,CAN,female,1994-02-01,1.5,57.0,aquatics,0,0,0 -414269646,Kierre Beckles,BAR,female,1990-05-21,1.76,61.0,athletics,0,0,0 -403554973,Kiichi Harada,JPN,male,1972-11-30,1.75,73.0,equestrian,0,0,0 -795413338,Kiju Park,KOR,female,1990-02-14,1.67,69.0,hockey,0,0,0 -891148925,Kiki Bertens,NED,female,1991-12-10,1.82,78.0,tennis,0,0,0 -612003301,Kiko Yokota,JPN,female,1997-05-11,1.61,44.0,gymnastics,0,0,0 -654132840,Kiley Neushul,USA,female,1993-03-05,1.73,65.0,aquatics,1,0,0 -650765839,Kilian le Blouch,FRA,male,1989-10-07,1.71,70.0,judo,0,0,0 -746145303,Kim Amb,SWE,male,1990-07-31,1.8,87.0,athletics,0,0,0 -146402828,Kim Andersson,SWE,male,1982-08-21,2.0,105.0,handball,0,0,0 -434139197,Kim Bui,GER,female,1989-01-20,1.56,49.0,gymnastics,0,0,0 -245238655,Kim Collins,SKN,male,1976-04-05,1.8,77.0,athletics,0,0,0 -189393338,Kim Conley,USA,female,1986-03-14,1.61,49.0,athletics,0,0,0 -266914710,Kim Gaucher,CAN,female,1984-05-07,1.85,72.0,basketball,0,0,0 -854142388,Kim Mickle,AUS,female,1984-12-28,1.68,70.0,athletics,0,0,0 -759190706,Kim Polling,NED,female,1991-02-08,1.75,70.0,judo,0,0,0 -579217144,Kim Tillie,FRA,male,1988-07-15,2.11,105.0,basketball,0,0,0 -533153330,Kim Tuan Thach,VIE,male,1994-01-15,1.6,56.0,weightlifting,0,0,0 -20980045,Kimberley Brennan,AUS,female,1985-08-09,1.88,74.0,rowing,1,0,0 -403279900,Kimberly Buys,BEL,female,1989-04-23,1.87,75.0,aquatics,0,0,0 -991525559,Kimberly Garcia,PER,female,1993-10-19,1.64,51.0,athletics,0,0,0 -649635243,Kimberly Hill,USA,female,1989-11-30,1.93,72.0,volleyball,0,0,1 -904668387,Kimberly Hyacinthe,CAN,female,1989-03-28,1.79,65.0,athletics,0,0,0 -447699488,Kimberly Rhode,USA,female,1979-07-16,1.63,83.0,shooting,0,0,1 -195712246,Kimberly Williams,JAM,female,1988-11-03,1.78,62.0,athletics,0,0,0 -943752318,Kimia Alizadeh Zenoorin,IRI,female,1998-07-10,1.85,62.0,taekwondo,0,0,1 -145845453,Kimihiko Imamura,JPN,male,1984-02-03,1.8,78.0,sailing,0,0,0 -897050880,Kimiko Raheem,SRI,female,1999-01-28,1.65,51.0,aquatics,0,0,0 -960777579,Kineke Alexander,VIN,female,1986-02-21,1.78,65.0,athletics,0,0,0 -637755383,King Lok Cheung,HKG,male,1991-02-08,1.72,77.0,cycling,0,0,0 -688432611,Kinga Kolosinska,POL,female,1990-06-02,1.79,67.0,volleyball,0,0,0 -240927532,Kingsley Madu,NGR,male,1995-12-12,1.71,,football,0,0,1 -247889491,Kiplangat Sang,KEN,male,1981-04-14,1.75,90.0,judo,0,0,0 -656286014,Kira Stepanova,RUS,female,1993-11-12,,,canoe,0,0,0 -528363849,Kira Toussaint,NED,female,1994-05-22,1.74,72.0,aquatics,0,0,0 -234124358,Kira Walkenhorst,GER,female,1990-11-18,1.85,75.0,volleyball,1,0,0 -889456958,Kiradech Aphibarnrat,THA,male,1989-07-23,1.72,106.0,golf,0,0,0 -106579503,Kirani James,GRN,male,1992-09-01,,66.0,athletics,0,1,0 -288650137,Kirill Denisov,RUS,male,1988-01-25,1.82,90.0,judo,0,0,0 -785590368,Kirill Gerassimenko,KAZ,male,1996-12-18,1.75,64.0,table tennis,0,0,0 -2938886,Kirill Grigoryan,RUS,male,1992-04-02,1.79,88.0,shooting,0,0,1 -228483818,Kirill Lyapunov,RUS,male,1986-03-24,1.8,81.0,canoe,0,0,0 -388644612,Kirill Prigoda,RUS,male,1995-12-29,1.92,88.0,aquatics,0,0,0 -412500956,Kirk Shimmins,IRL,male,1994-06-01,1.75,68.0,hockey,0,0,0 -580208102,Kirsten Flipkens,BEL,female,1986-01-10,1.65,59.0,tennis,0,0,0 -807032440,Kirsten McCANN,RSA,female,1988-08-25,1.7,57.0,rowing,0,0,0 -248407953,Kirsten Pearce,NZL,female,1991-04-10,1.62,58.0,hockey,0,0,0 -704187599,Kirsten Sweetland,CAN,female,1988-09-24,1.63,49.0,triathlon,0,0,0 -907795948,Kirsten Wild,NED,female,1982-10-15,1.78,78.0,cycling,0,0,0 -917790149,Kirsti Lay,CAN,female,1988-04-07,1.73,65.0,cycling,0,0,1 -857038290,Kirstie Elaine Alora,PHI,female,1989-11-25,1.73,67.0,taekwondo,0,0,0 -801571682,Kirstin Dwyer,AUS,female,1989-03-15,1.73,66.0,hockey,0,0,0 -134565248,Kirsty Gilmour,GBR,female,1993-09-21,1.68,,badminton,0,0,0 -825202898,Kirsty Leigh Coventry,ZIM,female,1983-09-16,1.76,64.0,aquatics,0,0,0 -52180375,Kirsty Yallop,NZL,female,1986-11-04,1.65,58.0,football,0,0,0 -279849374,Kit-Ching Yiu,HKG,female,1988-02-20,1.55,45.0,athletics,0,0,0 -51995447,Kitione Taliga,FIJ,male,1993-04-21,1.86,87.0,rugby sevens,1,0,0 -449603562,Kitty King,GBR,female,1982-08-10,1.58,60.0,equestrian,0,0,0 -159029734,Kitty van Male,NED,female,1988-06-05,1.96,63.0,hockey,0,1,0 -308690997,Kivilcim Kaya Salman,TUR,female,1992-03-27,1.66,85.0,athletics,0,0,0 -187677131,Kjetil Borch,NOR,male,1990-02-14,,,rowing,0,0,1 -759388006,Klara Spilkova,CZE,female,1994-12-15,1.68,53.0,golf,0,0,0 -686436937,Klaudia Bres,POL,female,1994-06-22,1.58,52.0,shooting,0,0,0 -184949058,Klaudia Jans-Ignacik,POL,female,1984-09-24,,,tennis,0,0,0 -834172250,Klaudia Konopko,POL,female,1992-02-21,1.7,57.0,athletics,0,0,0 -560449526,Klaus Lange,ARG,male,1995-01-13,1.82,81.0,sailing,0,0,0 -748463150,Klay Thompson,USA,male,1990-02-08,2.0,97.0,basketball,1,0,0 -675747408,Kleber da Silva Ramos,BRA,male,1985-08-24,1.67,65.0,cycling,0,0,0 -952862687,Kleberson Davide,BRA,male,1985-07-20,1.75,69.0,athletics,0,0,0 -189267095,Kodo Nakano,PHI,male,1993-03-08,,81.0,judo,0,0,0 -332048858,Koen Naert,BEL,male,1989-09-03,1.82,66.0,athletics,0,0,0 -608163038,Kohei Uchima,JPN,male,1988-11-08,1.7,60.0,cycling,0,0,0 -199243053,Kohei Uchimura,JPN,male,1989-01-02,1.62,52.0,gymnastics,2,0,0 -86038956,Kohei Yamamoto,JPN,male,1985-08-20,1.82,69.0,cycling,0,0,0 -51425019,Kohei Yamashita,JPN,male,1994-09-06,1.79,69.0,athletics,0,0,0 -656874306,Koichiro Morioka,JPN,male,1985-04-02,1.85,69.0,athletics,0,0,0 -337056974,Koji Takei,JPN,male,1990-07-30,1.76,78.0,aquatics,0,0,0 -497335334,Koji Yamamuro,JPN,male,1989-01-17,1.59,58.0,gymnastics,1,0,0 -196041422,Koki Niwa,JPN,male,1994-10-10,1.62,51.0,table tennis,0,1,0 -355065846,Koki Saito,JPN,male,1989-09-16,1.76,65.0,equestrian,0,0,0 -682697811,Komeil Nemat Ghasemi,IRI,male,1988-02-27,1.86,115.0,wrestling,0,1,0 -974731965,Komronshokh Ustopiriyon,TJK,male,1993-01-07,1.82,90.0,judo,0,0,0 -514884067,Konomi Kai,JPN,female,1993-07-10,1.53,50.0,athletics,0,0,0 -386847658,Konrad Bukowiecki,POL,male,1997-03-17,1.91,138.0,athletics,0,0,0 -40414487,Konrad Czerniak,POL,male,1989-07-11,1.95,87.0,aquatics,0,0,0 -682481814,Konstadinos Baniotis,GRE,male,1986-11-06,2.01,80.0,athletics,0,0,0 -180022140,Konstadinos Douvalidis,GRE,male,1987-03-10,1.81,78.0,athletics,0,0,0 -996631093,Konstadinos Filippidis,GRE,male,1986-11-26,1.87,74.0,athletics,0,0,0 -725033682,Konstantin Semenov,RUS,male,1989-06-09,2.1,101.0,volleyball,0,0,0 -532161398,Konstantinos Flegkas,GRE,male,1988-07-17,1.92,88.0,aquatics,0,0,0 -808549144,Konstantinos Genidounias,GRE,male,1993-05-03,1.83,87.0,aquatics,0,0,0 -578912084,Konstantinos Mourikis,GRE,male,1988-07-11,1.97,109.0,aquatics,0,0,0 -419860088,Konstanze Klosterhalfen,GER,female,1997-02-18,1.74,48.0,athletics,0,0,0 -288100090,Korey Jarvis,CAN,male,1986-10-04,1.88,115.0,wrestling,0,0,0 -409930037,Kosovare Asllani,SWE,female,1989-07-29,1.66,54.0,football,0,1,0 -940864440,Kostyantyn Bakun,RUS,male,1985-03-15,2.04,96.0,volleyball,0,0,0 -794043609,Kosuke Hagino,JPN,male,1994-08-15,1.77,71.0,aquatics,1,1,1 -791705872,Kosuke Nakamura,JPN,male,1995-02-27,1.84,72.0,football,0,0,0 -18488153,Kota Murayama,JPN,male,1993-02-23,1.74,54.0,athletics,0,0,0 -422424765,Kothajit Khadangbam,IND,male,1992-08-17,1.7,63.0,hockey,0,0,0 -791359360,Kotoki Zayasu,JPN,female,1990-01-11,1.59,57.0,volleyball,0,0,0 -892925415,Kotuku Ngawati,AUS,female,1994-06-16,1.65,60.0,aquatics,0,0,0 -759873461,Koutar Boulaid,MAR,female,1989-10-10,1.59,45.0,athletics,0,0,0 -348937822,Kresimir Kozina,CRO,male,1990-06-25,1.97,105.0,handball,0,0,0 -461399217,Krishan Vikas,IND,male,1992-02-10,1.77,,boxing,0,0,0 -936707475,Krista Duchene,CAN,female,1977-01-09,1.67,54.0,athletics,0,0,0 -321162229,Kristel Kobrich,CHI,female,1985-08-09,1.7,60.0,aquatics,0,0,0 -449134352,Kristel Vourna,GRE,female,1992-02-11,1.74,61.0,aquatics,0,0,0 -737728576,Kristen Shaldybin,USA,female,1997-08-08,1.76,56.0,gymnastics,0,0,0 -34438087,Kristi Castlin,USA,female,1988-07-07,1.71,60.0,athletics,0,0,1 -7457125,Kristian Blummenfelt,NOR,male,1994-02-14,,,triathlon,0,0,0 -539326422,Kristian Fris,SRB,male,1984-04-21,1.7,59.0,wrestling,0,0,0 -582900403,Kristian Gkolomeev,GRE,male,1993-07-04,2.02,95.0,aquatics,0,0,0 -512973536,Kristian Ipsen,USA,male,1992-10-20,1.71,72.0,aquatics,0,0,0 -917018494,Kristian Karlsson,SWE,male,1991-08-06,1.83,82.0,table tennis,0,0,0 -978961185,Kristian Ruth,NOR,male,1985-07-23,,,sailing,0,0,0 -407221611,Kristian Thomas,GBR,male,1989-02-14,1.8,78.0,gymnastics,0,0,0 -368830372,Kristian Vasilev,BUL,male,1991-11-18,1.97,97.0,rowing,0,0,0 -213581372,Kristiina Makela,FIN,female,1992-11-20,1.85,68.0,athletics,0,0,0 -884195361,Kristijan Durasek,CRO,male,1987-07-26,1.7,57.0,cycling,0,0,0 -791417527,Kristin Armstrong,USA,female,1973-08-11,1.73,58.0,cycling,1,0,0 -664462472,Kristin Gierisch,GER,female,1990-08-20,1.78,61.0,athletics,0,0,0 -981663977,Kristina Broring-Sprehe,GER,female,1986-10-28,1.68,54.0,equestrian,1,0,1 -254900911,Kristina Cook,GBR,female,1970-08-31,1.78,68.0,equestrian,0,0,0 -654847993,Kristina Gavnholt,CZE,female,1988-09-12,1.77,73.0,badminton,0,0,0 -66901895,Kristina Ilinykh,RUS,female,1994-11-27,1.73,56.0,aquatics,0,0,0 -656658323,Kristina Kuusk,EST,female,1985-11-16,1.8,74.0,fencing,0,0,0 -819640840,Kristina Mladenovic,FRA,female,1993-05-14,1.84,66.0,tennis,0,0,0 -312030242,Kristina Pronzhenko,TJK,female,1988-12-10,1.72,60.0,athletics,0,0,0 -928141398,Kristina Reynolds,GER,female,1984-02-18,1.81,71.0,hockey,0,0,1 -992483692,Kristina Valjas,CAN,female,1987-06-02,1.88,68.0,volleyball,0,0,0 -108583641,Kristina Vogel,GER,female,1990-11-10,1.6,66.0,cycling,1,0,1 -763893829,Kristine Esebua,GEO,female,1985-03-19,1.62,69.0,archery,0,0,0 -576779994,Kristof Rasovszky,HUN,male,1997-03-27,1.9,84.0,aquatics,0,0,0 -957396077,Kristoffer Brun,NOR,male,1988-04-07,,,rowing,0,0,1 -34412448,Kristy Oatley,AUS,female,1978-07-18,1.7,56.0,equestrian,0,0,0 -353904175,Kristyna Fleissnerova,CZE,female,1992-08-18,1.73,64.0,rowing,0,0,0 -11420262,Krisztian Manhercz,HUN,male,1997-02-06,1.91,91.0,aquatics,0,0,0 -238991769,Krisztian Pars,HUN,male,1982-02-18,1.88,116.0,athletics,0,0,0 -123300327,Krisztian Takacs,HUN,male,1985-12-30,1.86,84.0,aquatics,0,0,0 -667329045,Krisztian Toth,HUN,male,1994-05-01,1.75,93.0,judo,0,0,0 -540029142,Krisztina Fazekas-Zur,HUN,female,1980-08-01,1.72,64.0,canoe,1,0,0 -401589716,Krisztina Garda,HUN,female,1994-07-16,1.7,76.0,aquatics,0,0,0 -211842063,Krisztina Papp,HUN,female,1982-12-17,1.73,53.0,athletics,0,0,0 -267615621,Krunoslav Simon,CRO,male,1985-06-24,1.97,100.0,basketball,0,0,0 -984489399,Krystian Aranowski,POL,male,1988-04-11,1.98,102.0,rowing,0,0,0 -792210881,Krystian Zalewski,POL,male,1989-04-11,1.85,68.0,athletics,0,0,0 -890413525,Krzysztof Lijewski,POL,male,1983-07-07,1.99,99.0,handball,0,0,0 -840441745,Krzysztof Maksel,POL,male,1991-07-04,1.81,80.0,cycling,0,0,0 -985218732,Ksenia Chibisova,RUS,female,1988-07-13,1.86,78.0,judo,0,0,0 -500616803,Ksenia Perova,RUS,female,1989-02-08,1.69,77.0,archery,0,1,0 -117683465,Ksenija Balta,EST,female,1986-11-01,1.69,51.0,athletics,0,0,0 -292420209,Kseniya Moustafaeva,FRA,female,1995-06-08,1.63,50.0,gymnastics,0,0,0 -401281343,Kseniya Pantelyeyeva,UKR,female,1994-05-11,1.68,75.0,fencing,0,0,0 -664487894,Kseniya Sydorenko,UKR,female,1986-07-02,1.78,57.0,aquatics,0,0,0 -81024511,Kudakwashe Basopo,ZIM,female,1990-07-18,1.62,60.0,football,0,0,0 -370696968,Kuk Hyang Kim,PRK,female,1993-04-20,1.7,100.0,weightlifting,0,1,0 -703248016,Kuk Hyang Kim,PRK,female,1999-04-04,1.49,39.0,aquatics,0,0,0 -358078214,Kuk Hyon Hong,PRK,male,1990-07-01,1.79,73.0,judo,0,0,0 -856229639,Kukyoung Kim,KOR,male,1991-04-19,1.76,73.0,athletics,0,0,0 -576883439,Kum-Ok Kim,PRK,female,1988-12-09,1.61,48.0,athletics,0,0,0 -405931977,Kumari Babita,IND,female,1989-11-20,1.65,52.0,wrestling,0,0,0 -179174658,Kumiko Okada,JPN,female,1991-10-17,1.58,47.0,athletics,0,0,0 -434716093,Kun-Pi Yang,TPE,male,1998-08-11,1.86,107.0,shooting,0,0,0 -331317766,Kunathip Yea-On,THA,male,1995-08-18,1.93,148.0,judo,0,0,0 -340840336,Kunhu Muhammed Puthanpurakkal,IND,male,1987-03-05,1.72,70.0,athletics,0,0,0 -13588611,Kuniaki Takizaki,CAM,male,1977-08-08,1.51,55.0,athletics,0,0,0 -886640811,Kurt Couto,MOZ,male,1985-05-14,1.8,74.0,athletics,0,0,0 -574563035,Kurt Felix,GRN,male,1988-07-04,1.82,76.0,athletics,0,0,0 -146480210,Kurtis Marschall,AUS,male,1997-04-25,1.87,78.0,athletics,0,0,0 -156130854,Kurumi Yoshida,JPN,female,1991-12-01,1.67,59.0,aquatics,0,0,1 -824038451,Kwagga Smith,RSA,male,1993-06-11,1.8,90.0,rugby sevens,0,0,1 -80433240,Kwan Kit Ho,HKG,male,1997-04-20,1.78,66.0,table tennis,0,0,0 -718483245,Kwandakwensizwa Mngonyama,RSA,male,1993-09-25,1.84,79.0,football,0,0,0 -152318195,Kyah Simon,AUS,female,1991-06-25,1.64,61.0,football,0,0,0 -887479109,Kyerim Lee,KOR,female,1990-08-31,1.58,50.0,shooting,0,0,0 -676973733,Kyle Brown,RSA,male,1987-02-06,1.82,92.0,rugby sevens,0,0,1 -885688636,Kyle Chalmers,AUS,male,1998-06-25,1.93,90.0,aquatics,1,0,2 -341835179,Kyle Clemons,USA,male,1990-12-27,1.81,72.0,athletics,1,0,0 -245877079,Kyle Dodd,RSA,male,1994-02-11,1.78,80.0,cycling,0,0,0 -897784869,Kyle Edmund,GBR,male,1995-01-08,1.89,81.0,tennis,0,0,0 -599766410,Kyle Evans,GBR,male,1993-09-26,1.8,81.0,cycling,0,0,0 -334173080,Kyle Frederick Snyder,USA,male,1995-11-20,1.81,102.0,wrestling,1,0,0 -244160480,Kyle Good,IRL,male,1991-12-10,1.83,88.0,hockey,0,0,0 -141935257,Kyle Greaux,TTO,male,1988-04-26,,,athletics,0,0,0 -57806527,Kyle Lowry,USA,male,1986-03-25,1.83,93.0,basketball,1,0,0 -367373878,Kyle Reyes,CAN,male,1993-10-10,1.83,99.0,judo,0,0,0 -188768661,Kyle Sean Micallef,MLT,male,1987-01-08,1.77,85.0,weightlifting,0,0,0 -78377242,Kyle Stolk,NED,male,1996-06-28,1.86,84.0,aquatics,0,0,0 -714395928,Kylie Masse,CAN,female,1996-01-18,1.7,61.0,aquatics,0,0,1 -107792319,Kylie Rei Dickson,BLR,female,1999-02-12,1.6,50.0,gymnastics,0,0,0 -654626226,Kynan Chenai,IND,male,1991-01-29,2.0,85.0,shooting,0,0,0 -997852630,Kyong Il Yang,PRK,male,1989-08-07,1.58,57.0,wrestling,0,0,0 -263910459,Kyong Sol,PRK,female,1990-06-08,1.63,78.0,judo,0,0,0 -417582763,Kyoungdoo Park,KOR,male,1984-08-03,1.77,77.0,fencing,0,0,0 -594770931,Kyriakos Ioannou,CYP,male,1984-07-26,1.96,74.0,athletics,0,0,0 -944821832,Kyriakos Pontikeas,GRE,male,1991-05-09,1.92,84.0,aquatics,0,0,0 -212656744,Kyrie Irving,USA,male,1992-03-23,1.9,87.0,basketball,1,0,0 -797859111,Kyubaek Choi,KOR,male,1994-01-23,1.88,77.0,football,0,0,0 -136817398,Kyung Eun Jung,KOR,female,1990-03-20,1.72,59.0,badminton,0,0,1 -461106431,Kyunghee Lim,KOR,female,1982-11-16,1.63,43.0,athletics,0,0,0 -819912962,Kyuwoong Choi,KOR,male,1990-05-28,1.81,75.0,aquatics,0,0,0 -42152477,L.j. van Zyl,RSA,male,1985-07-20,1.82,79.0,athletics,0,0,0 -397906990,Lachlan Tame,AUS,male,1988-11-14,1.76,80.0,canoe,0,0,1 -202060603,Ladislav Skantar,SVK,male,1983-02-11,1.89,80.0,canoe,1,0,0 -429703737,Lady Andrade,COL,female,1992-01-10,1.64,60.0,football,0,0,0 -380147709,Lady Ruano,COL,female,1981-03-05,1.57,52.0,table tennis,0,0,0 -788128970,Laenly Phoutthavong,LAO,female,1996-06-04,1.69,55.0,athletics,0,0,0 -145889655,Laerke Buhl-Hansen,DEN,female,1992-03-30,1.67,56.0,sailing,0,0,0 -713520170,Laetisha Scanlan,AUS,female,1990-04-13,1.63,61.0,shooting,0,0,0 -796815573,Laetitia Beck,ISR,female,1992-02-05,1.75,61.0,golf,0,0,0 -1610593,Laetitia Crescence Moma Bassoko,CMR,female,1993-10-09,1.84,80.0,volleyball,0,0,0 -556419347,Laetitia Kamba,FRA,female,1987-01-10,1.87,78.0,basketball,0,0,0 -624409158,Laetitia Payet,FRA,female,1985-10-02,1.5,48.0,judo,0,0,0 -283796525,Laetitia Philippe,FRA,female,1991-04-30,1.73,61.0,football,0,0,0 -451101103,Laia Palau,ESP,female,1979-09-10,1.81,69.0,basketball,0,1,0 -463504304,Lais Nunes de Oliveira,BRA,female,1992-11-03,1.65,65.0,wrestling,0,0,0 -707312914,Lala Wane,SEN,female,1989-07-15,1.79,78.0,basketball,0,0,0 -598281407,Lalit Mathur,IND,male,1994-12-18,,,athletics,0,0,0 -340454427,Lalita Shivaji Babar,IND,female,1989-06-02,1.66,50.0,athletics,0,0,0 -54471403,Lalita Yauhleuskaya,AUS,female,1963-12-31,1.58,64.0,shooting,0,0,0 -316330881,Lalonde Gordon,TTO,male,1988-11-25,1.79,83.0,athletics,0,0,0 -486290067,Lanece Clarke,BAH,female,1987-11-04,,,athletics,0,0,0 -307336565,Lani Belcher,GBR,female,1989-06-10,1.69,65.0,canoe,0,0,0 -789007378,Lani Cabrera,BAR,female,1993-04-22,1.75,66.0,aquatics,0,0,0 -688222254,Lanni Marchant,CAN,female,1984-04-11,1.55,48.0,athletics,0,0,0 -165918129,Lara Butler,CAY,female,1994-10-02,1.72,60.0,aquatics,0,0,0 -400916964,Lara Gonzalez,ESP,female,1992-02-22,1.84,74.0,handball,0,0,0 -329123221,Lara Grangeon,FRA,female,1991-09-21,1.73,60.0,aquatics,0,0,0 -303756997,Lara Griffith,GBR,female,1988-11-14,1.76,62.0,equestrian,0,0,0 -714521221,Lara Hoffmann,GER,female,1991-03-25,1.73,68.0,athletics,0,0,0 -268747617,Lara Sanders,TUR,female,1986-09-11,1.91,77.0,basketball,0,0,0 -485160577,Lara Teixeira,BRA,female,1987-11-26,1.67,59.0,aquatics,0,0,0 -251433937,Lara Vadlau,AUT,female,1994-03-29,1.65,56.0,sailing,0,0,0 -322415539,Laraiba Seibou,BEN,female,2000-12-06,1.73,63.0,aquatics,0,0,0 -16230111,Larbi Bourrada,ALG,male,1988-05-10,1.88,88.0,athletics,0,0,0 -609688727,Larisa Ceric,BIH,female,1991-01-26,1.76,110.0,judo,0,0,0 -838253467,Larissa Araujo,BRA,female,1992-07-01,1.67,62.0,handball,0,0,0 -842092433,Larissa Crummer,AUS,female,1996-01-10,1.78,70.0,football,0,0,0 -564844336,Larissa Franca Maestrini,BRA,female,1982-04-14,1.74,70.0,volleyball,0,0,0 -923732002,Larissa Oliveira,BRA,female,1993-02-16,1.69,57.0,aquatics,0,0,0 -768025423,Larrissa Miller,AUS,female,1992-07-12,1.59,50.0,gymnastics,0,0,0 -715498421,Lars Bender,GER,male,1989-04-27,1.84,77.0,football,0,1,0 -564584099,Lars Fluggen,GER,male,1990-05-24,1.92,83.0,volleyball,0,0,0 -791318566,Lars Forster,SUI,male,1993-08-01,1.77,68.0,cycling,0,0,0 -857905937,Lars Petter Nordhaug,NOR,male,1984-05-14,,,cycling,0,0,0 -639300643,Lars Wichert,GER,male,1986-11-28,1.86,73.0,rowing,0,0,0 -850256654,Lasha Shavdatuashvili,GEO,male,1992-01-31,1.7,75.0,judo,0,0,1 -592699944,Lasha Talakhadze,GEO,male,1993-10-02,1.97,157.0,weightlifting,1,0,0 -404444174,Lasha Torgvaidze,GEO,male,1993-05-26,1.84,73.0,athletics,0,0,0 -920627938,Lashawn Merritt,USA,male,1986-06-27,1.91,86.0,athletics,1,0,1 -798007695,Lasma Liepa,TUR,female,1988-07-04,1.8,77.0,canoe,0,0,0 -345588226,Lasse Norman Hansen,DEN,male,1992-02-11,1.8,73.0,cycling,0,0,2 -384124391,Lasse Svan,DEN,male,1983-08-31,1.85,85.0,handball,1,0,0 -533708221,Lasse Vibe,DEN,male,1987-02-22,1.84,75.0,football,0,0,0 -327942821,Laszlo Cseh,HUN,male,1985-12-03,1.88,84.0,aquatics,0,1,0 -27973136,Laszlo Csoknyai,HUN,male,1987-10-25,1.72,83.0,judo,0,0,0 -932218677,Latario Collie-Minns,BAH,male,1994-03-10,1.73,64.0,athletics,0,0,0 -486930749,Laura Alleway,AUS,female,1989-11-28,1.78,74.0,football,0,0,0 -70272751,Laura Asadauskaite,LTU,female,1984-02-28,1.6,49.0,modern pentathlon,0,0,0 -151499815,Laura Auge,FRA,female,1992-01-17,1.75,60.0,aquatics,0,0,0 -247206821,Laura Benkarth,GER,female,1992-10-14,1.73,68.0,football,1,0,0 -529217667,Laura Brown,CAN,female,1986-11-27,1.67,61.0,cycling,0,0,1 -284937844,Laura Chiper,ROU,female,1989-08-21,1.73,65.0,handball,0,0,0 -456601968,Laura Dijkema,NED,female,1990-02-18,1.84,70.0,volleyball,0,0,0 -880019885,Laura Ester Ramos,ESP,female,1990-01-22,1.7,58.0,aquatics,0,0,0 -652201714,Laura Gil,ESP,female,1992-04-24,1.91,78.0,basketball,0,1,0 -996823500,Laura Giombini,ITA,female,1989-01-04,1.83,,volleyball,0,0,0 -69085100,Laura Glauser,FRA,female,1993-08-20,1.78,65.0,handball,0,1,0 -829875287,Laura Gomez,ESP,female,1984-04-19,1.6,52.0,judo,0,0,0 -768401050,Laura Gonzalez,COL,female,1993-03-08,1.61,61.0,rugby sevens,0,0,0 -225614709,Laura Graves,USA,female,1987-07-22,1.73,54.0,equestrian,0,0,1 -50773758,Laura Hodges,AUS,female,1983-12-13,1.91,78.0,basketball,0,0,0 -77033753,Laura Ikauniece-Admidina,LAT,female,1992-05-31,1.79,63.0,athletics,0,0,0 -774958820,Laura Kraut,USA,female,1965-11-14,1.71,56.0,equestrian,0,0,0 -940578018,Laura Lindemann,GER,female,1996-06-26,1.68,57.0,triathlon,0,0,0 -148490223,Laura Lopez Ventosa,ESP,female,1988-01-13,1.71,65.0,aquatics,0,0,0 -363628190,Laura Ludwig,GER,female,1986-01-13,1.81,70.0,volleyball,1,0,0 -360874773,Laura Marino,FRA,female,1993-07-02,1.68,55.0,aquatics,0,0,0 -901305776,Laura Milani,ITA,female,1984-09-30,1.68,57.0,rowing,0,0,0 -624808656,Laura Muir,GBR,female,1993-05-09,1.61,49.0,athletics,0,0,0 -468145639,Laura Muller,GER,female,1995-12-11,1.72,58.0,athletics,0,0,0 -612731499,Laura Nicholls,ESP,female,1989-02-26,1.9,90.0,basketball,0,1,0 -837136545,Laura Nunnink,NED,female,1995-01-26,1.72,64.0,hockey,0,0,0 -979004062,Laura Nurmsalu,EST,female,1994-06-01,1.7,70.0,archery,0,0,0 -381041222,Laura Oprea,ROU,female,1994-02-19,1.86,75.0,rowing,0,0,1 -278075426,Laura Quevedo,ESP,female,1996-04-15,1.85,74.0,basketball,0,1,0 -885866639,Laura Salles Lopez,AND,female,1986-02-15,1.69,63.0,judo,0,0,0 -151961559,Laura Sarosi,HUN,female,1992-11-11,1.67,57.0,badminton,0,0,0 -949858669,Laura Siegemund,GER,female,1988-03-04,1.68,62.0,tennis,0,0,0 -250953403,Laura Smulders,NED,female,1993-12-09,1.7,73.0,cycling,0,0,0 -603343722,Laura Teani,ITA,female,1991-03-13,1.75,75.0,aquatics,0,1,0 -371337915,Laura Trott,GBR,female,1992-04-24,1.64,56.0,cycling,2,0,0 -192919301,Laura Unsworth,GBR,female,1988-03-08,1.52,55.0,hockey,1,0,0 -528746135,Laura Vargas Koch,GER,female,1990-06-29,1.73,70.0,judo,0,0,1 -776443567,Laura Waem,BEL,female,1997-08-05,1.6,54.0,gymnastics,0,0,0 -70958554,Laura Weightman,GBR,female,1991-07-01,1.72,56.0,athletics,0,0,0 -825506439,Laura Whittle,GBR,female,1985-06-27,1.75,59.0,athletics,0,0,0 -259253637,Laura Zeng,USA,female,1999-10-14,1.61,43.0,gymnastics,0,0,0 -435786461,Laura de Witte,NED,female,1995-08-07,1.73,61.0,athletics,0,0,0 -264136986,Laura van der Heijden,NED,female,1990-06-27,1.72,68.0,handball,0,0,0 -612897839,Lauren Billys,PUR,female,1988-05-14,1.61,59.0,equestrian,0,0,0 -829889004,Lauren Boyle,NZL,female,1987-12-14,1.83,67.0,aquatics,0,0,0 -792471719,Lauren Crandall,USA,female,1985-03-17,1.61,57.0,hockey,0,0,0 -695489909,Lauren Doyle,USA,female,1991-02-23,1.68,68.0,rugby sevens,0,0,0 -208831332,Lauren Ellis,NZL,female,1989-04-19,1.66,64.0,cycling,0,0,0 -933903933,Lauren Fendrick,USA,female,1982-03-20,1.88,75.0,volleyball,0,0,0 -766991740,Lauren Hernandez,USA,female,2000-06-09,1.53,48.0,gymnastics,1,1,0 -583498432,Lauren Kieffer,USA,female,1987-06-06,1.78,68.0,equestrian,0,0,0 -88108486,Lauren Rembi,FRA,female,1992-03-09,1.78,60.0,fencing,0,0,0 -766647760,Lauren Reynolds,AUS,female,1991-06-25,1.76,69.0,cycling,0,0,0 -169582119,Lauren Schmetterling,USA,female,1988-08-03,1.81,77.0,rowing,1,0,0 -272927492,Lauren Smith,GBR,female,1991-09-26,1.7,,badminton,0,0,0 -981950752,Lauren Wells,AUS,female,1988-08-03,1.78,66.0,athletics,0,0,0 -805070729,Lauren Wilkinson,CAN,female,1989-10-17,1.8,75.0,rowing,0,0,0 -638896430,Laurence Baldauff,AUT,female,1974-11-19,1.64,57.0,archery,0,0,0 -542188232,Laurence Brize,FRA,female,1976-07-12,1.58,55.0,shooting,0,0,0 -874551869,Laurence Halsted,GBR,male,1984-05-22,1.85,85.0,fencing,0,0,0 -935729210,Laurens de Plus,BEL,male,1995-09-04,1.88,67.0,cycling,0,0,0 -940301095,Laurent Carnol,LUX,male,1989-10-17,1.87,82.0,aquatics,0,0,0 -286702221,Laurent Couhet,BRA,male,1994-07-12,1.71,75.0,rugby sevens,0,0,0 -821849198,Laurent Jr. Clayton,ISV,male,1990-07-18,,,boxing,0,0,0 -410803236,Laurie Berthon,FRA,female,1991-08-26,1.69,69.0,cycling,0,0,0 -937639115,Laurien Leurink,NED,female,1994-11-13,1.73,67.0,hockey,0,1,0 -256435241,Laurine van Riessen,NED,female,1987-08-10,1.67,63.0,cycling,0,0,0 -822053837,Laurisa Landre,FRA,female,1985-10-27,1.74,67.0,handball,0,1,0 -110156979,Lauritz Schoof,GER,male,1990-10-07,1.95,98.0,rowing,1,0,0 -438898270,Lautaro Giannetti,ARG,male,1993-11-13,1.75,80.0,football,0,0,0 -408272109,Lavenia Tinai,FIJ,female,1990-09-07,1.65,57.0,rugby sevens,0,0,0 -6350689,Laverne Jones-Ferrette,ISV,female,1981-09-16,1.73,68.0,athletics,0,0,0 -735071398,Lawrence Brittain,RSA,male,1990-11-09,1.87,94.0,rowing,0,1,0 -680095587,Lawrence Clarke,GBR,male,1990-03-12,1.87,77.0,athletics,0,0,0 -295372543,Lawrence Fanous,JOR,male,1985-08-27,1.7,61.0,triathlon,0,0,0 -523134751,Lawrence Okolie,GBR,male,1992-12-16,1.95,,boxing,0,0,0 -29990303,Laxmirani Majhi,IND,female,1989-01-26,1.61,56.0,archery,0,0,0 -205316686,Lazaro Jorge Alvarez,CUB,male,1991-01-28,1.73,,boxing,0,0,1 -801084506,Lazaro Martinez,CUB,male,1997-11-03,1.91,83.0,athletics,0,0,0 -129629128,Lea Davison,USA,female,1983-05-19,1.68,55.0,cycling,0,0,0 -806871935,Lea Jamelot,FRA,female,1992-11-28,1.68,65.0,canoe,0,0,0 -909792265,Lea Sprunger,SUI,female,1990-03-05,1.83,69.0,athletics,0,0,0 -990477427,Lea Yanitsas,AUS,female,1989-03-15,1.73,77.0,aquatics,0,0,0 -49883014,Leah Kirchmann,CAN,female,1990-06-30,1.67,59.0,cycling,0,0,0 -275124572,Leah Neale,AUS,female,1995-08-01,1.73,77.0,aquatics,0,1,0 -436743075,Leah Nugent,JAM,female,1992-11-23,1.73,66.0,athletics,0,0,0 -735079950,Leah Smith,USA,female,1995-04-19,1.76,67.0,aquatics,1,0,1 -24067332,Leander Paes,IND,male,1973-06-17,1.75,82.0,tennis,0,0,0 -516387036,Leandra Smeda,RSA,female,1989-07-22,1.65,55.0,football,0,0,0 -793474789,Leandre Bouchard,CAN,male,1992-10-20,1.93,81.0,cycling,0,0,0 -925700994,Leandro Barbosa,BRA,male,1982-11-28,1.94,97.0,basketball,0,0,0 -495484356,Leandro Blanc,ARG,male,1993-05-02,1.65,,boxing,0,0,0 -737168697,Leandro Silva,POR,male,1994-05-04,1.8,70.0,football,0,0,0 -964889059,Leandro Vega,ARG,male,1996-05-27,1.66,70.0,football,0,0,0 -121652442,Leandro Zamora,CUB,male,1996-03-11,1.86,72.0,athletics,0,0,0 -969409512,Leanne Choo,AUS,female,1991-06-05,1.67,58.0,badminton,0,0,0 -327424646,Lebenya Nkoka,LES,male,1982-10-19,,,athletics,0,0,0 -262078438,Lebo Mothiba,RSA,male,1996-01-28,1.81,69.0,football,0,0,0 -895052770,Lebogang Shange,RSA,male,1990-08-01,1.6,56.0,athletics,0,0,0 -797864785,Lebohang Ramalepe,RSA,female,1991-12-03,1.55,48.0,football,0,0,0 -785631417,Lee Kiefer,USA,female,1994-06-15,1.63,48.0,fencing,0,0,0 -277445751,Lee Parkhill,CAN,male,1988-11-22,1.81,82.0,sailing,0,0,0 -101248331,Lee-Ann Persse,RSA,female,1988-11-20,1.81,74.0,rowing,0,0,0 -603020546,Leevan Sands,BAH,male,1981-08-16,1.91,82.0,athletics,0,0,0 -804034599,Lei Gao,CHN,male,1992-01-02,1.7,64.0,gymnastics,0,0,1 -101911346,Lei Gong,CHN,male,1983-03-26,1.85,88.0,sailing,0,0,0 -512537797,Lei Kou,UKR,male,1987-11-20,1.76,74.0,table tennis,0,0,0 -988926338,Leia da Silva Nicolosi,BRA,female,1985-03-01,1.69,58.0,volleyball,0,0,0 -749520759,Leicy Santos,COL,female,1996-05-16,1.54,56.0,football,0,0,0 -886789693,Leidy Asprilla,COL,female,1997-04-18,1.58,57.0,football,0,0,0 -772518490,Leidy Yessenia Solis Arboleda,COL,female,1990-02-17,1.68,69.0,weightlifting,0,0,0 -381090123,Leidys Brito,VEN,female,1984-07-05,1.69,52.0,archery,0,0,0 -30611869,Leila Abdelmoez,EGY,female,1996-09-30,1.6,46.0,aquatics,0,0,0 -122417468,Leila Luik,EST,female,1985-10-14,1.65,48.0,athletics,0,0,0 -715708025,Leilani Mitchell,AUS,female,1985-06-15,1.65,60.0,basketball,0,0,0 -308992513,Leinier Eunice Pero,CUB,male,1992-11-24,1.92,,boxing,0,0,0 -746238944,Lely Berlitt Burgos Ortiz,PUR,female,1985-06-06,1.53,50.0,weightlifting,0,0,0 -910081538,Lemi Berhanu,ETH,male,1994-09-13,1.68,53.0,athletics,0,0,0 -204521805,Lena Goessling,GER,female,1986-03-08,1.71,56.0,football,1,0,0 -505827943,Lena Kreundl,AUT,female,1997-09-19,1.74,69.0,aquatics,0,0,0 -320412912,Lena Schoneborn,GER,female,1986-04-11,1.79,60.0,modern pentathlon,0,0,0 -50309903,Lena Urbaniak,GER,female,1992-10-31,1.74,92.0,athletics,0,0,0 -949030090,Lenchu Kunzang,BHU,female,1992-02-10,1.65,59.0,shooting,0,0,0 -82742065,Lenin Preciado,ECU,male,1993-08-23,1.7,60.0,judo,0,0,0 -138499307,Lenka Antosova,CZE,female,1991-09-27,1.77,70.0,rowing,0,0,0 -903947461,Lennie Waite,GBR,female,1986-02-04,1.71,59.0,athletics,0,0,0 -483445056,Leo Mainoldi,ARG,male,1985-03-04,2.04,106.0,basketball,0,0,0 -442415993,Leon Goretzka,GER,male,1995-02-06,1.86,76.0,football,0,0,0 -200012588,Leona Maguire,IRL,female,1994-11-30,1.68,56.0,golf,0,0,0 -736914222,Leonard Essau Korir,USA,male,1986-12-10,1.71,59.0,athletics,0,0,0 -55261773,Leonard Ong,SIN,male,1992-12-09,1.7,68.0,sailing,0,0,0 -617980909,Leonardo Bittencourt,GER,male,1993-12-19,1.71,62.0,football,0,0,0 -168519114,Leonardo Chacon,CRC,male,1984-06-29,1.79,65.0,triathlon,0,0,0 -403277949,Leonardo Querin,ARG,male,1982-04-17,1.97,105.0,handball,0,0,0 -40283995,Leonardo Santos,BRA,male,1994-05-30,1.94,104.0,handball,0,0,0 -159048041,Leonardo de Deus,BRA,male,1991-01-18,1.75,70.0,aquatics,0,0,0 -639962139,Leone Nakarawa,FIJ,male,1988-04-02,1.98,109.0,rugby sevens,1,0,0 -649229119,Leonel Suarez,CUB,male,1987-09-01,1.81,68.0,athletics,0,0,0 -888575799,Leonel de los Santos Nunez,DOM,male,1994-12-14,1.7,,boxing,0,0,0 -655588517,Leonid Andreev,UZB,male,1983-10-06,1.98,93.0,athletics,0,0,0 -295139504,Leonie Adam,GER,female,1993-01-02,1.62,54.0,gymnastics,0,0,0 -953257950,Leonie Antonia Beck,GER,female,1997-05-27,1.84,62.0,aquatics,0,0,0 -812063503,Leonie Kullmann,GER,female,1999-08-26,1.75,62.0,aquatics,0,0,0 -503186709,Leonie Maier,GER,female,1992-09-29,1.63,62.0,football,1,0,0 -862102425,Leonor Rodriguez,ESP,female,1991-10-21,1.8,72.0,basketball,0,1,0 -399491333,Leonora Mackinnon,CAN,female,1994-05-30,1.8,77.0,fencing,0,0,0 -246122300,Leontia Kallenou,CYP,female,1994-10-05,1.8,64.0,athletics,0,0,0 -74708917,Leopold Konig,CZE,male,1987-11-15,1.78,62.0,cycling,0,0,0 -825004701,Lerissa Henry,FSM,female,1997-08-18,1.53,57.0,athletics,0,0,0 -669805740,Lesley Thompson-Willie,CAN,female,1959-09-20,1.6,50.0,rowing,0,0,0 -660063171,Leslie Copeland,FIJ,male,1988-04-23,1.83,102.0,athletics,0,0,0 -244021964,Lestrod Roland,SKN,male,1992-09-05,1.65,54.0,athletics,0,0,0 -792302802,Leticia Boscacci,ARG,female,1985-11-08,1.86,70.0,volleyball,0,0,0 -927194850,Leticia Romero,ESP,female,1995-05-28,1.77,62.0,basketball,0,1,0 -504480132,Leticia de Souza,BRA,female,1996-05-06,1.65,49.0,athletics,0,0,0 -53358242,Leuris Pupo,CUB,male,1977-04-09,1.68,78.0,shooting,0,0,0 -340107234,Levan Berianidze,ARM,male,1990-10-10,1.86,125.0,wrestling,0,0,0 -204502697,Levent Tuncat,GER,male,1988-07-29,1.73,61.0,taekwondo,0,0,0 -159745591,Levern Spencer,LCA,female,1984-06-23,1.79,48.0,athletics,0,0,0 -576128253,Levi Cadogan,BAR,male,1995-11-08,1.81,78.0,athletics,0,0,0 -228788380,Levon Aghasyan,ARM,male,1995-01-19,1.93,75.0,athletics,0,0,0 -600455405,Lewis Holland,AUS,male,1993-01-14,1.83,89.0,rugby sevens,0,0,0 -362932074,Lewis Ormond,NZL,male,1994-02-05,1.92,100.0,rugby sevens,0,0,0 -109119825,Lexi Thompson,USA,female,1995-02-10,1.81,72.0,golf,0,0,0 -237908464,Lexi Weeks,USA,female,1996-11-20,,,athletics,0,0,0 -544849480,Leydi Laura Moya,CUB,female,1992-04-16,1.7,68.0,modern pentathlon,0,0,0 -654502394,Leyla Rajabi,IRI,female,1983-04-18,1.87,100.0,athletics,0,0,0 -176154136,Li Du,CHN,female,1982-03-05,1.7,55.0,shooting,0,1,1 -447494695,Li Guo,CHN,female,1993-05-11,1.67,54.0,aquatics,0,1,0 -157385962,Li Lin,CHN,female,1992-07-05,1.71,70.0,volleyball,1,0,0 -394183572,Li Yang,CHN,female,1991-01-31,1.67,58.0,football,0,0,0 -462590793,Lia Neal,USA,female,1995-02-13,1.78,74.0,aquatics,0,1,0 -472892087,Liadagmis Povea,CUB,female,1996-02-06,1.66,52.0,athletics,0,0,0 -329731832,Liam Adams,AUS,male,1986-09-04,1.78,64.0,athletics,0,0,0 -865915642,Liam Bertazzo,ITA,male,1992-02-17,1.85,70.0,cycling,0,0,0 -131214220,Liam Heath,GBR,male,1984-08-17,1.82,81.0,canoe,1,1,0 -945401924,Liam Phillips,GBR,male,1989-03-11,1.81,85.0,cycling,0,0,0 -182272008,Liam Pitchford,GBR,male,1993-07-12,1.86,67.0,table tennis,0,0,0 -837742830,Lian Yuan Wang,CHN,female,1994-08-26,1.67,60.0,triathlon,0,0,0 -518240529,Liana Salazar,COL,female,1992-09-16,1.69,52.0,football,0,0,0 -169395175,Lianna Swan,PAK,female,1997-03-25,1.65,67.0,aquatics,0,0,0 -82404018,Lianne Tan,BEL,female,1990-11-20,1.6,54.0,badminton,0,0,0 -598538220,Libania Grenot,ITA,female,1983-07-12,1.75,60.0,athletics,0,0,0 -9859586,Libuse Jahodova,CZE,female,1992-05-31,1.63,52.0,shooting,0,0,0 -427854268,Licet Hernandez,CUB,female,1993-04-14,1.68,57.0,rowing,0,0,0 -641616840,Lidewij Welten,NED,female,1990-07-16,1.7,64.0,hockey,0,1,0 -860964222,Lidia Valentin Perez,ESP,female,1985-02-10,1.69,74.0,weightlifting,0,0,1 -790043158,Lidiane Lopes,CPV,female,1994-09-01,1.78,70.0,athletics,0,0,0 -513701226,Lidiia Sichenikova,UKR,female,1993-02-03,1.83,69.0,archery,0,0,0 -352163486,Lieke Wevers,NED,female,1991-09-17,1.67,54.0,gymnastics,0,0,0 -12425606,Liemarvin Bonevacia,NED,male,1989-04-05,1.85,74.0,athletics,0,0,0 -763919056,Lies Rustenburg,NED,female,1990-04-08,1.83,74.0,rowing,0,0,0 -390159530,Liina Laasma,EST,female,1992-01-13,1.74,67.0,athletics,0,0,0 -795063034,Liina Luik,EST,female,1985-10-14,1.64,48.0,athletics,0,0,0 -547595943,Lijia Xu,CHN,female,1987-08-30,1.76,60.0,sailing,0,0,0 -16471586,Lijiao Gong,CHN,female,1989-01-24,1.75,105.0,athletics,0,0,0 -202813499,Lijun Chen,CHN,male,1993-02-08,1.62,62.0,weightlifting,0,0,0 -653834235,Lijun Zu,CHN,male,1989-11-26,1.88,87.0,aquatics,0,0,0 -410869644,Likourgos-Stefanos Tsakonas,GRE,male,1990-03-08,1.85,80.0,athletics,0,0,0 -268704027,Lilia Fisikowici,MDA,female,1989-03-29,1.7,52.0,athletics,0,0,0 -150040443,Lilian Castro,ESA,female,1986-12-19,1.64,63.0,shooting,0,0,0 -736338812,Lilian de Geus,NED,female,1991-10-13,1.64,57.0,sailing,0,0,0 -832461074,Liliana Fernandez Steiner,ESP,female,1987-01-04,1.78,75.0,volleyball,0,0,0 -720106859,Liliana Ibanez Lopez,MEX,female,1991-01-30,1.8,70.0,aquatics,0,0,0 -42265124,Liliana Neto,ANG,female,1997-01-29,1.66,57.0,athletics,0,0,0 -93076735,Liliana Szilagyi,HUN,female,1996-11-19,1.75,62.0,aquatics,0,0,0 -92875421,Liliana da Silva Venancio,ANG,female,1995-09-19,1.8,93.0,handball,0,0,0 -277003612,Lilima Minz,IND,female,1994-04-10,1.58,52.0,hockey,0,0,0 -986623608,Lilit Harutyunyan,ARM,female,1993-04-04,1.64,55.0,athletics,0,0,0 -39304647,Liliyana Natsir,INA,female,1985-09-09,1.69,62.0,badminton,1,0,0 -461914120,Lilly King,USA,female,1997-02-10,1.76,70.0,aquatics,2,0,0 -80507918,Lily Luik,EST,female,1985-10-14,1.63,48.0,athletics,0,0,0 -877281953,Lily Owsley,GBR,female,1994-12-10,1.7,70.0,hockey,1,0,0 -919045571,Lily Zhang,USA,female,1996-06-16,1.66,58.0,table tennis,0,0,0 -474911998,Lin Gui,BRA,female,1993-10-01,1.68,52.0,table tennis,0,0,0 -64295130,Lin Peng,CHN,female,1995-04-04,1.83,73.0,aquatics,0,0,0 -821207198,Lina Guerin,FRA,female,1991-04-16,1.75,64.0,rugby sevens,0,0,0 -530731946,Lina Magull,GER,female,1994-08-15,1.64,59.0,football,0,0,0 -472444817,Lina Marcela Rivas Ordonez,COL,female,1990-04-24,1.59,58.0,weightlifting,0,0,0 -525260451,Lina Saltyte,LTU,female,1987-02-09,1.84,70.0,rowing,0,0,0 -449688745,Lina Zhao,CHN,female,1991-09-18,1.88,67.0,football,0,0,0 -932267400,Linda Algotsson,SWE,female,1972-03-22,1.62,50.0,equestrian,0,0,0 -489441345,Linda Bolder,ISR,female,1988-07-03,1.73,70.0,judo,0,0,0 -413014010,Linda Cerruti,ITA,female,1993-10-07,1.73,56.0,aquatics,0,0,0 -401236995,Linda Fahrni,SUI,female,1993-05-25,1.57,56.0,sailing,0,0,0 -849736805,Linda Indergand,SUI,female,1993-07-13,1.69,65.0,cycling,0,0,0 -236104816,Linda Motlhalo,RSA,female,1998-07-01,1.62,47.0,football,0,0,0 -351574736,Linda Sandblom,FIN,female,1989-10-18,1.76,62.0,athletics,0,0,0 -401452346,Linda Sembrant,SWE,female,1987-05-15,1.75,66.0,football,0,1,0 -843070999,Linda Stahl,GER,female,1985-10-02,1.76,79.0,athletics,0,0,0 -446754440,Linda Villumsen,NZL,female,1985-04-09,1.65,58.0,cycling,0,0,0 -793960001,Linda Zetchiri,BUL,female,1987-07-27,1.69,58.0,badminton,0,0,0 -351805810,Lindaweni Fanetri,INA,female,1990-01-18,1.67,60.0,badminton,0,0,0 -510445480,Linden Hall,AUS,female,1991-06-20,1.67,51.0,athletics,0,0,0 -470256290,Lindiwe Magwede,ZIM,female,1991-12-01,1.76,59.0,football,0,0,0 -644836357,Lindolfo Delgado,MEX,male,1994-12-31,1.74,,boxing,0,0,0 -934402077,Lindon Victor,GRN,male,1993-02-28,,,athletics,0,0,0 -408373995,Lindsay Hanekom,RSA,male,1993-05-15,1.78,66.0,athletics,0,0,0 -181124319,Lindsay Jennerich,CAN,female,1982-07-30,1.65,59.0,rowing,0,1,0 -116706289,Lindsay Whalen,USA,female,1982-05-09,1.75,72.0,basketball,1,0,0 -365794539,Lindsey Harding,BLR,female,1984-06-12,1.73,65.0,basketball,0,0,0 -830406160,Lindsey Horan,USA,female,1994-05-26,1.75,76.0,football,0,0,0 -727787093,Line Kjaersfeldt,DEN,female,1994-04-20,1.75,65.0,badminton,0,0,0 -925589540,Linet Arasa,KEN,female,1996-01-01,2.03,61.0,rugby sevens,0,0,0 -24311177,Ling Li,CHN,female,1989-07-06,1.85,63.0,athletics,0,0,0 -41586210,Ling Zhang,CHN,female,1997-02-27,1.82,75.0,rowing,0,0,0 -348322475,Ling Zhang,CHN,female,1992-09-18,1.72,51.0,gymnastics,0,0,0 -439546048,Lingwei Kong,CHN,female,1995-07-28,1.63,51.0,athletics,0,0,0 -399160547,Lingwei Li,CHN,female,1989-01-26,1.74,72.0,athletics,0,0,0 -745922840,Linn Blohm,SWE,female,1992-05-20,1.8,79.0,handball,0,0,0 -485795887,Linn-Kristin Riegelhuth Koren,NOR,female,1984-08-01,1.75,,handball,0,0,1 -502728742,Linnea Stensils,SWE,female,1994-03-08,1.78,69.0,canoe,0,0,0 -517447697,Linnea Torstensson,SWE,female,1983-03-30,1.86,82.0,handball,0,0,0 -514401054,Lino Munoz,MEX,male,1991-02-08,1.74,65.0,badminton,0,0,0 -542689552,Linus Butt,GER,male,1987-03-12,1.86,83.0,hockey,0,0,1 -983582126,Liosbel Hernandez,CUB,male,1983-12-17,1.9,70.0,rowing,0,0,0 -557752206,Lisa Altenburg,GER,female,1989-09-23,1.55,58.0,hockey,0,0,1 -416331629,Lisa Brennauer,GER,female,1988-06-08,1.68,63.0,cycling,0,0,0 -135005136,Lisa Carrington,NZL,female,1989-06-23,1.68,63.0,canoe,1,0,1 -922248644,Lisa Dahlkvist,SWE,female,1987-02-06,1.73,68.0,football,0,1,0 -191131636,Lisa Darmanin,AUS,female,1991-08-27,1.68,65.0,sailing,0,1,0 -954723577,Lisa Ecker,AUT,female,1992-09-19,1.57,55.0,gymnastics,0,0,0 -25397368,Lisa Ericson,SWE,female,1988-05-09,1.65,60.0,sailing,0,0,0 -128351056,Lisa Graf,GER,female,1992-11-13,1.83,69.0,aquatics,0,0,0 -221215315,Lisa Hahner,GER,female,1989-11-20,1.67,50.0,athletics,0,0,0 -211903668,Lisa Jane Weightman,AUS,female,1979-01-16,1.57,44.0,athletics,0,0,0 -18063764,Lisa Klein,GER,female,1996-07-15,1.7,62.0,cycling,0,0,0 -526656164,Lisa Mayer,GER,female,1996-05-02,1.71,57.0,athletics,0,0,0 -765502625,Lisa Norden,SWE,female,1984-11-24,1.76,60.0,triathlon,0,0,0 -620856226,Lisa Roman,CAN,female,1989-09-17,1.78,76.0,rowing,0,0,0 -298441762,Lisa Ryzih,GER,female,1988-09-27,1.79,62.0,athletics,0,0,0 -130489647,Lisa Schmidla,GER,female,1991-06-05,1.73,76.0,rowing,1,0,0 -467310646,Lisa Schutze,GER,female,1996-10-05,1.72,61.0,hockey,0,0,1 -241114049,Lisa Unruh,GER,female,1988-04-12,1.8,68.0,archery,0,1,0 -437677562,Lisa Weiss,GER,female,1987-10-29,1.71,67.0,football,0,0,0 -700918622,Lisa Zaiser,AUT,female,1994-08-23,1.74,63.0,aquatics,0,0,0 -713570964,Lisa de Vanna,AUS,female,1984-11-14,1.56,56.0,football,0,0,0 -531666136,Lisandra Guerra Rodriguez,CUB,female,1987-10-31,1.67,69.0,cycling,0,0,0 -268135411,Lisandro Magallan,ARG,male,1993-09-27,1.81,79.0,football,0,0,0 -398635028,Lisanne de Witte,NED,female,1992-09-10,1.75,65.0,athletics,0,0,0 -21753483,Lisbet Jakobsen,DEN,female,1987-01-21,1.79,71.0,rowing,0,0,0 -155823041,Lisneidy Veitia,CUB,female,1994-04-29,1.68,58.0,athletics,0,0,0 -13117642,Lissa Labiche,SEY,female,1993-02-18,1.72,55.0,athletics,0,0,0 -461845874,Lissette Alexandra Antes Castillo,ECU,female,1991-05-02,1.77,58.0,wrestling,0,0,0 -728085851,Litia Naiqato,FIJ,female,1987-03-25,1.8,76.0,rugby sevens,0,0,0 -380475095,Liu Ying Goh,MAS,female,1989-05-30,1.66,56.0,badminton,0,1,0 -82572587,Liubomyr Lemeshko,UKR,male,1992-07-19,1.86,86.0,aquatics,0,0,0 -307207034,Liubov Basova,UKR,female,1988-07-16,1.62,65.0,cycling,0,0,0 -737904041,Liudmila Dmitrieva,RUS,female,1989-05-02,1.8,70.0,sailing,0,0,0 -35679352,Liudmyla Kichenok,UKR,female,1992-07-20,1.76,65.0,tennis,0,0,0 -672950250,Livan Lopez Azcuy,CUB,male,1982-01-24,1.7,74.0,wrestling,0,0,0 -537422944,Livan Osoria Rodriguez,CUB,male,1994-02-05,2.01,96.0,volleyball,0,0,0 -345846661,Livio LA PADULA,ITA,male,1985-11-20,1.83,72.0,rowing,0,0,0 -836548598,Lizanne Murphy,CAN,female,1984-03-15,1.85,75.0,basketball,0,0,0 -463712046,Lizhu Huang,CHN,female,1987-10-09,1.74,71.0,sailing,0,0,0 -887425403,Lizzie Lee,IRL,female,1980-05-22,1.65,51.0,athletics,0,0,0 -225973698,Lkhamdegd Purevjargal,MGL,female,1986-09-18,1.8,80.0,judo,0,0,0 -546982242,Loan His,FRA,female,1999-04-10,1.6,51.0,gymnastics,0,0,0 -612340234,Logan Cunningham,USA,male,1991-05-30,1.76,72.0,athletics,0,0,0 -338570667,Logan Dooley,USA,male,1987-09-26,1.75,58.0,gymnastics,0,0,0 -92285054,Lohaynny Vicente,BRA,female,1996-05-02,1.68,70.0,badminton,0,0,0 -586219392,Loic Pietri,FRA,male,1990-08-27,1.77,81.0,judo,0,0,0 -999987786,Loick Luypaert,BEL,male,1991-08-19,1.81,78.0,hockey,0,1,0 -774306010,Lois Abbingh,NED,female,1992-08-13,1.78,72.0,handball,0,0,0 -508980654,Lois Maikel Martinez,ESP,male,1981-06-03,1.87,120.0,athletics,0,0,0 -667499984,Lois Toulson,GBR,female,1999-09-26,1.66,51.0,aquatics,0,0,0 -974884842,Lok Yan Poon,HKG,female,1991-08-22,1.69,56.0,badminton,0,0,0 -270039898,Lola Riera,ESP,female,1991-06-25,1.72,74.0,hockey,0,0,0 -993580824,Lolita Ananasova,UKR,female,1992-07-09,1.69,52.0,aquatics,0,0,0 -962247263,Lomano Lemeki,JPN,male,1989-01-20,1.77,92.0,rugby sevens,0,0,0 -366057032,Long Chen,CHN,male,1989-01-18,1.88,81.0,badminton,1,0,0 -865328770,Long Gutierrez Feng,MEX,male,1995-02-23,1.9,85.0,aquatics,0,0,0 -736738706,Long Ma,CHN,male,1988-10-20,1.75,72.0,table tennis,2,0,0 -399910648,Lonneke Sloetjes,NED,female,1990-11-15,1.92,77.0,volleyball,0,0,0 -779658344,Loredana Dinu,ROU,female,1984-04-02,1.68,60.0,fencing,1,0,0 -398479062,Lorena Molinos,BRA,female,1991-03-02,1.6,51.0,aquatics,0,0,0 -180299954,Lorene Dorcas Bazolo,POR,female,1983-05-04,1.7,60.0,athletics,0,0,0 -554615022,Lorenzo Sotomayor Collazo,AZE,male,1985-02-16,1.85,,boxing,0,1,0 -636450373,Loreta Gulotta,ITA,female,1987-05-08,1.74,63.0,fencing,0,0,0 -634263213,Lornah Chemtai Korlima,ISR,female,1988-12-12,1.65,52.0,athletics,0,0,0 -904651975,Lorraine Ugen,GBR,female,1991-08-22,1.79,65.0,athletics,0,0,0 -753835891,Lorrane Oliveira,BRA,female,1998-04-13,1.53,50.0,gymnastics,0,0,0 -399652811,Lorys Bourelly,FRA,male,1992-05-27,1.86,76.0,aquatics,0,0,0 -345563722,Lote Tuqiri,JPN,male,1987-11-12,1.89,99.0,rugby sevens,0,0,0 -809986793,Lotta Lepisto,FIN,female,1989-06-28,1.64,58.0,cycling,0,0,0 -97180847,Lotta Schelin,SWE,female,1984-02-27,1.79,66.0,football,0,1,0 -421793519,Lotte Friis,DEN,female,1988-02-09,1.83,75.0,aquatics,0,0,0 -290076256,Lotte Kopecky,BEL,female,1995-11-10,1.71,66.0,cycling,0,0,0 -224274265,Louis Croenen,BEL,male,1994-01-04,1.86,79.0,aquatics,0,0,0 -99752368,Louis Meintjes,RSA,male,1992-02-21,1.73,58.0,cycling,0,0,0 -84986974,Louis Smith,GBR,male,1989-04-22,1.8,78.0,gymnastics,0,1,0 -677916006,Louisa Cadamuro,FRA,female,1987-01-23,1.68,56.0,football,0,0,0 -23974217,Louisa Chafee,USA,female,1991-09-24,1.66,56.0,sailing,0,0,0 -22758388,Louisa Gurski,GBR,female,1988-05-26,1.72,70.0,canoe,0,0,0 -544547565,Louise Bawden,AUS,female,1981-08-07,1.83,72.0,volleyball,0,0,0 -347394915,Louise Bloor,GBR,female,1985-09-21,1.68,63.0,athletics,0,0,0 -59039148,Louise Carton,BEL,female,1994-04-16,1.81,60.0,athletics,0,0,0 -602283676,Louise Hansson,SWE,female,1996-11-24,1.87,72.0,aquatics,0,0,0 -809952135,Louise Sand,SWE,female,1992-12-27,1.64,62.0,handball,0,0,0 -394180888,Louise Vanhille,FRA,female,1998-11-06,1.67,55.0,gymnastics,0,0,0 -850074642,Lourdes Mohedano,ESP,female,1995-06-17,1.73,53.0,gymnastics,0,1,0 -911242137,Lovisa Lindh,SWE,female,1991-07-09,1.69,57.0,athletics,0,0,0 -105066319,Lu Li,CHN,female,1992-02-18,1.6,55.0,canoe,0,0,0 -276246857,Luan,BRA,male,1993-03-27,1.8,71.0,football,1,0,0 -642783989,Luan Garcia,BRA,male,1993-05-10,1.83,79.0,football,1,0,0 -156350082,Luba Golovina,GEO,female,1990-04-20,1.72,55.0,gymnastics,0,0,0 -682800627,Lubna Alomair,KSA,female,1987-04-14,1.52,45.0,fencing,0,0,0 -475847268,Lubomir Jancarik,CZE,male,1987-08-17,1.93,82.0,table tennis,0,0,0 -878070410,Luc Abalo,FRA,male,1984-09-06,1.82,86.0,handball,0,1,0 -642947259,Luca Agamennoni,ITA,male,1980-08-08,1.87,93.0,rowing,0,0,0 -338874266,Luca Braidot,ITA,male,1991-05-29,1.79,69.0,cycling,0,0,0 -554715039,Luca Cupido,USA,male,1995-11-09,1.88,95.0,aquatics,0,0,0 -741078160,Luca Dotto,ITA,male,1990-04-18,1.92,80.0,aquatics,0,0,0 -659816292,Luca Leonardi,ITA,male,1991-01-01,1.91,78.0,aquatics,0,0,0 -313498882,Luca Marin,ITA,male,1986-04-09,1.87,82.0,aquatics,0,0,0 -543136851,Luca Masso,ARG,male,1994-07-17,1.86,82.0,hockey,1,0,0 -129051185,Luca Pizzini,ITA,male,1989-04-08,1.85,76.0,aquatics,0,0,0 -537669111,Luca Roman,ITA,male,1985-12-10,1.74,69.0,equestrian,0,0,0 -141527506,Luca Vettori,ITA,male,1991-04-26,2.0,95.0,volleyball,0,1,0 -564323858,Lucas Bruchet,CAN,male,1991-02-23,1.83,69.0,athletics,0,0,0 -129309426,Lucas Calabrese,ARG,male,1986-12-12,1.68,60.0,sailing,0,0,0 -604160230,Lucas Candido,BRA,male,1989-03-19,1.85,88.0,handball,0,0,0 -711817435,Lucas Carvalho,BRA,male,1993-07-16,1.75,51.0,athletics,0,0,0 -243504044,Lucas Daniel,FRA,male,1995-01-01,1.8,80.0,archery,0,0,0 -599092094,Lucas Duque,BRA,male,1984-03-15,1.7,84.0,rugby sevens,0,0,0 -489045674,Lucas Jakubczyk,GER,male,1985-04-28,1.83,77.0,athletics,0,0,0 -79045868,Lucas Kozeniesky,USA,male,1995-05-31,1.81,79.0,shooting,0,0,0 -78252233,Lucas Paixao,BRA,male,1994-09-02,1.72,62.0,hockey,0,0,0 -199482882,Lucas Rey,ARG,male,1982-10-11,1.77,74.0,hockey,1,0,0 -517848380,Lucas Romero,ARG,male,1994-04-18,1.69,73.0,football,0,0,0 -988887897,Lucas Rossi,ARG,male,1985-06-02,1.88,88.0,hockey,1,0,0 -81328247,Lucas Saatkamp,BRA,male,1986-03-06,2.09,101.0,volleyball,1,0,0 -548331359,Lucas Schaefer,GER,male,1994-08-15,1.87,70.0,rowing,0,0,0 -505340328,Lucas Tramer,SUI,male,1989-09-01,1.83,75.0,rowing,1,0,0 -612347154,Lucas Vila,ARG,male,1986-08-23,1.72,75.0,hockey,1,0,0 -249567858,Lucia Falasca,ARG,female,1993-07-08,1.71,64.0,sailing,0,0,0 -668932185,Lucia Fresco,ARG,female,1991-05-14,1.95,92.0,volleyball,0,0,0 -546619067,Lucia Haro,ARG,female,1986-08-21,1.78,71.0,handball,0,0,0 -542002382,Lucia Hrivnak Klocova,SVK,female,1983-11-20,1.72,58.0,athletics,0,0,0 -752386508,Lucia Jimenez,ESP,female,1997-01-08,1.63,51.0,hockey,0,0,0 -480093608,Lucia Mwihaki Kimani,BIH,female,1981-06-21,1.66,48.0,athletics,0,0,0 -901297411,Lucia Palermo,ARG,female,1985-09-30,1.73,59.0,rowing,0,0,0 -299729150,Luciana,BRA,female,1987-07-24,1.71,74.0,football,0,0,0 -371222775,Luciana Diniz,POR,female,1970-10-11,1.75,55.0,equestrian,0,0,0 -45981048,Luciana Mendoza,ARG,female,1990-03-14,1.7,68.0,handball,0,0,0 -422969496,Luciana Salvado,ARG,female,1990-04-13,1.69,65.0,handball,0,0,0 -345497174,Lucianne Barroncas,BRA,female,1988-04-01,1.69,64.0,aquatics,0,0,0 -95393469,Luciano Taccone,ARG,male,1989-05-29,1.76,63.0,triathlon,0,0,0 -55174907,Luciano de Cecco,ARG,male,1988-06-02,1.91,98.0,volleyball,0,0,0 -678484438,Lucie Hradecka,CZE,female,1985-05-21,1.78,70.0,tennis,0,0,1 -801203222,Lucie Safarova,CZE,female,1987-02-04,1.77,67.0,tennis,0,0,1 -822537753,Lucie Svecena,CZE,female,1997-08-21,1.75,60.0,aquatics,0,0,0 -395171804,Lucien Cujean,SUI,male,1989-08-16,1.84,82.0,sailing,0,0,0 -894482944,Lucien Delfour,AUS,male,1988-12-22,1.77,70.0,canoe,0,0,0 -300937912,Lucija Zaninovic,CRO,female,1987-06-26,1.7,52.0,taekwondo,0,0,0 -829679838,Lucila Pascua,ESP,female,1983-03-21,1.96,93.0,basketball,0,1,0 -508413234,Lucilla Boari,ITA,female,1997-03-24,1.62,82.0,archery,0,0,0 -949015694,Lucina von der Heyde,ARG,female,1997-01-24,1.6,57.0,hockey,0,0,0 -61310516,Lucy Davis,USA,female,1992-10-22,1.66,55.0,equestrian,0,1,0 -158550880,Lucy Oliver,NZL,female,1988-11-18,1.68,53.0,athletics,0,0,0 -645035836,Lucy Stephan,AUS,female,1991-12-10,1.74,67.0,rowing,0,0,0 -803793188,Ludger Beerbaum,GER,male,1963-08-26,1.9,85.0,equestrian,0,0,1 -721221132,Ludovic Chammartin,SUI,male,1985-01-31,1.68,60.0,judo,0,0,0 -549211335,Ludovic Fabregas,FRA,male,1996-07-01,1.98,100.0,handball,0,1,0 -5384302,Ludovic Henry,FRA,male,1968-10-04,1.95,88.0,equestrian,0,0,0 -906835303,Ludovico Edalli,ITA,male,1993-12-18,1.65,57.0,gymnastics,0,0,0 -870285108,Ludvy Vaillant,FRA,male,1995-03-15,1.8,67.0,athletics,0,0,0 -551941271,Ludwig Paischer,AUT,male,1981-11-28,1.7,60.0,judo,0,0,0 -736364717,Ludwig Svennerstal,SWE,male,1990-08-24,1.84,72.0,equestrian,0,0,0 -708479059,Luguelin Santos,DOM,male,1993-11-12,1.63,55.0,athletics,0,0,0 -729320329,Luigi Lodde,ITA,male,1980-04-19,1.7,79.0,shooting,0,0,0 -498891159,Luigi Teilemb,VAN,male,1992-02-25,1.87,80.0,rowing,0,0,0 -354961149,Luillys Jose Perez Mora,VEN,male,1990-12-23,1.81,97.0,wrestling,0,0,0 -237111206,Luis Alberto Garcia Brito,DOM,male,1995-04-19,1.48,56.0,weightlifting,0,0,0 -725379575,Luis Alberto Orta,VEN,male,1989-01-15,1.6,50.0,athletics,0,0,0 -116880876,Luis Ariel Molina,ARG,male,1988-03-07,1.72,57.0,athletics,0,0,0 -23362328,Luis Brethauer,GER,male,1992-09-14,1.76,82.0,cycling,0,0,0 -138487719,Luis Cabrera,VEN,male,1995-05-20,1.76,,boxing,0,0,0 -975670610,Luis Charles,DOM,male,1998-12-03,1.83,65.0,athletics,0,0,0 -660174272,Luis Emigdio Vega,CUB,male,1998-11-02,1.79,69.0,aquatics,0,0,0 -133697198,Luis Enrique Lemus Davila,MEX,male,1992-04-21,1.73,61.0,cycling,0,0,0 -600419040,Luis Fernando Lopez,COL,male,1979-06-03,1.66,60.0,athletics,0,0,0 -873077126,Luis Henry Campos,PER,male,1995-10-11,1.66,61.0,athletics,0,0,0 -219480043,Luis Hurtado,COL,male,1994-01-24,1.86,81.0,football,0,0,0 -854498717,Luis Javier Mosquera Lozano,COL,male,1995-03-27,1.65,69.0,weightlifting,0,0,1 -339149887,Luis Joel Castro,PUR,male,1991-01-29,1.98,73.0,athletics,0,0,0 -717592446,Luis Lopez,HON,male,1993-09-13,1.83,84.0,football,0,0,0 -920379695,Luis Lopez,ESA,male,1994-01-18,,,athletics,0,0,0 -851144245,Luis Martin Arcon,VEN,male,1992-06-01,1.79,,boxing,0,0,0 -536738422,Luis Martinez,GUA,male,1995-12-11,1.82,74.0,aquatics,0,0,0 -141098484,Luis Ostos,PER,male,1992-08-09,1.6,50.0,athletics,0,0,0 -772996626,Luis Scola,ARG,male,1980-04-30,2.04,108.0,basketball,0,0,0 -854151517,Luis Vasquez,COL,male,1996-03-01,1.87,76.0,football,0,0,0 -530819042,Luisa Borges,BRA,female,1996-04-20,1.66,54.0,aquatics,0,0,0 -868186831,Luisa Fatiaki Taitapu Peters,COK,female,1993-06-27,1.65,100.0,weightlifting,0,0,0 -153439760,Luisa Helga Gerda Niemesch,GER,female,1995-09-07,1.65,63.0,wrestling,0,0,0 -22717911,Luisa Kiala,ANG,female,1982-01-25,1.8,62.0,handball,0,0,0 -505599669,Luisa Tisolo,FIJ,female,1991-09-20,1.75,63.0,rugby sevens,0,0,0 -52637843,Luisa Trombetti,ITA,female,1993-09-05,1.73,67.0,aquatics,0,0,0 -788404828,Luise Malzahn,GER,female,1990-06-09,1.77,78.0,judo,0,0,0 -706961920,Luisito Pie,DOM,male,1994-03-04,1.83,57.0,taekwondo,0,0,1 -976439894,Luiz Alberto de Araujo,BRA,male,1987-06-27,1.9,86.0,athletics,0,0,0 -705013077,Luiz Altamir,BRA,male,1996-05-09,1.74,69.0,aquatics,0,0,0 -524518675,Luiz Felipe Marques Fonteles,BRA,male,1984-06-19,1.96,89.0,volleyball,1,0,0 -713630406,Luiz Felipe Outerelo,BRA,male,1991-12-11,1.81,82.0,aquatics,0,0,0 -826163083,Luiza Campos,BRA,female,1990-07-30,1.65,64.0,rugby sevens,0,0,0 -396150268,Luiza Carvalho,BRA,female,1983-07-02,1.82,79.0,aquatics,0,0,0 -837407916,Luiza Ganieva,UZB,female,1995-11-11,1.66,53.0,gymnastics,0,0,0 -915002256,Luiza Gega,ALB,female,1988-11-05,1.59,45.0,athletics,0,0,0 -117132954,Luiza Saidiyeva,KAZ,female,1994-03-17,1.62,42.0,archery,0,0,0 -280621392,Luiza Tavares de Almeida,BRA,female,1991-09-07,1.68,58.0,equestrian,0,0,0 -623136878,Luka Babic,CRO,male,1991-09-29,2.02,94.0,basketball,0,0,0 -302739733,Luka Bozic,SLO,male,1991-01-09,1.73,72.0,canoe,0,0,0 -366132937,Luka Bukic,CRO,male,1994-04-30,1.95,90.0,aquatics,0,1,0 -17097553,Luka Cindric,CRO,male,1993-07-05,1.82,90.0,handball,0,0,0 -402639302,Luka Janezic,SLO,male,1995-11-14,1.92,83.0,athletics,0,0,0 -398703913,Luka Karabatic,FRA,male,1988-04-19,2.02,108.0,handball,0,1,0 -504359994,Luka Loncar,CRO,male,1987-06-26,1.95,106.0,aquatics,0,1,0 -504597254,Luka Mratovic,CRO,male,1987-04-07,1.9,78.0,sailing,0,0,0 -189960390,Luka Stepancic,CRO,male,1990-11-20,2.03,98.0,handball,0,0,0 -644882024,Lukas Dauser,GER,male,1993-06-15,1.72,64.0,gymnastics,0,0,0 -924122874,Lukas Fernandes,DEN,male,1993-03-01,1.87,81.0,football,0,0,0 -330673646,Lukas Gdula,CZE,male,1991-12-06,1.78,65.0,athletics,0,0,0 -608004854,Lukas Helesic,CZE,male,1996-01-29,1.89,89.0,rowing,0,0,0 -51396878,Lukas Klostermann,GER,male,1996-06-03,1.89,84.0,football,0,1,0 -921390591,Lukas Krpalek,CZE,male,1990-11-15,1.97,105.0,judo,1,0,0 -877299705,Lukas Melich,CZE,male,1980-09-16,1.86,110.0,athletics,0,0,0 -856483693,Lukas Nilsson,SWE,male,1996-11-16,1.94,97.0,handball,0,0,0 -13539214,Lukas Rosol,CZE,male,1985-07-24,1.95,82.0,tennis,0,0,0 -934798797,Lukas Trefil,CZE,male,1988-09-21,1.87,90.0,canoe,0,0,1 -347976859,Lukas Weisshaidinger,AUT,male,1992-02-20,1.96,136.0,athletics,0,0,0 -997459236,Lukas Werro,SUI,male,1991-06-30,1.75,72.0,canoe,0,0,0 -587024656,Lukasz Gierak,POL,male,1988-06-22,1.94,104.0,handball,0,0,0 -704816796,Lukasz Grzeszczuk,POL,male,1990-03-03,1.9,95.0,athletics,0,0,0 -578022674,Lukasz Krawczuk,POL,male,1989-06-15,1.84,75.0,athletics,0,0,0 -915253145,Lukasz Kubot,POL,male,1982-05-16,1.91,90.0,tennis,0,0,0 -91523255,Lukasz Nowak,POL,male,1988-12-18,1.94,76.0,athletics,0,0,0 -374551802,Lukasz Przybytek,POL,male,1989-05-20,1.78,73.0,sailing,0,0,0 -966057256,Luke Bezzina,MLT,male,1995-06-07,,,athletics,0,0,0 -347048162,Luke Cutts,GBR,male,1988-02-13,1.87,81.0,athletics,0,0,0 -978732566,Luke Mathews,AUS,male,1995-06-21,1.83,70.0,athletics,0,0,0 -251226899,Luke Patience,GBR,male,1986-08-04,1.67,59.0,sailing,0,0,0 -893167750,Luke Ramsay,CAN,male,1988-01-31,1.73,68.0,sailing,0,0,0 -42399683,Lum Zhaveli,KOS,male,1990-03-05,1.94,88.0,aquatics,0,0,0 -78006686,Lumin Wang,CHN,male,1990-12-07,1.7,67.0,wrestling,0,0,0 -537472547,Lungile Gongqa,RSA,male,1979-02-22,1.62,53.0,athletics,0,0,0 -278272710,Lurdes Marcelina Monteiro,ANG,female,1984-07-11,1.7,63.0,handball,0,0,0 -387196979,Lusapho April,RSA,male,1982-05-24,1.72,50.0,athletics,0,0,0 -488085087,Lutalo Muhammad,GBR,male,1991-06-03,1.91,80.0,taekwondo,0,1,0 -845474841,Lutimar Paes,BRA,male,1988-12-14,1.84,77.0,athletics,0,0,0 -14088740,Luuka Jones,NZL,female,1988-10-18,1.72,68.0,canoe,0,1,0 -905348917,Luvo Manyonga,RSA,male,1991-01-08,,,athletics,0,1,0 -859949812,Ly Ho Thi,VIE,female,1991-02-22,1.72,60.0,rowing,0,0,0 -817621896,Lydia Chebet Rotich,KEN,female,1988-08-08,1.57,45.0,athletics,0,0,0 -409442789,Lydia Jele,BOT,female,1990-06-22,,,athletics,0,0,0 -212107375,Lydia Ko,NZL,male,1997-04-23,1.67,65.0,golf,0,1,0 -365605339,Lydia Paterson,USA,female,1996-10-17,1.63,69.0,shooting,0,0,0 -928938439,Lydia Williams,AUS,female,1988-05-13,1.75,65.0,football,0,0,0 -893383982,Lyes Bouyacoub,ALG,male,1983-04-03,1.85,100.0,judo,0,0,0 -529259909,Lynda Kiejko,CAN,female,1980-09-13,1.57,51.0,shooting,0,0,0 -146583581,Lynda Morales,PUR,female,1988-05-20,1.88,74.0,volleyball,0,0,0 -356436591,Lyndal Oatley,AUS,female,1980-06-27,1.76,61.0,equestrian,0,0,0 -127921496,Lynett Mutokuto,ZIM,female,1988-09-01,1.61,56.0,football,0,0,0 -437144743,Lynique Prinsloo,RSA,female,1991-03-30,1.69,60.0,athletics,0,0,0 -69224048,Lynn Symansky,USA,female,1983-03-19,1.71,56.0,equestrian,0,0,0 -451602579,Lynsey Sharp,GBR,female,1990-07-11,1.74,58.0,athletics,0,0,0 -616838605,Lyubomira Kazanova,BUL,female,1996-05-23,1.77,56.0,gymnastics,0,0,1 -698011015,Lyubov Shutova,RUS,female,1983-06-25,1.77,64.0,fencing,0,0,1 -486040260,M Bar N Diaye,FRA,male,1983-06-15,1.93,84.0,taekwondo,0,0,0 -365973319,Maaike Head,NED,female,1983-09-11,1.73,59.0,rowing,1,0,0 -98846520,Maarten Brzoskowski,NED,male,1995-09-19,1.84,79.0,aquatics,0,0,0 -29701462,Maartje Paumen,NED,female,1985-09-19,1.76,66.0,hockey,0,1,0 -908862793,Maayan Davidovich,ISR,female,1988-05-21,1.67,57.0,sailing,0,0,0 -872823363,Macarena Aguilar,ESP,female,1985-03-12,1.7,67.0,handball,0,0,0 -308383815,Macarena Gandulfo,ARG,female,1993-11-03,1.74,73.0,handball,0,0,0 -985732268,Macarena Sans,ARG,female,1996-11-20,1.65,64.0,handball,0,0,0 -38791158,Machel Cedenio,TTO,male,1995-09-06,1.83,70.0,athletics,0,0,0 -280514109,Maciej Bodnar,POL,male,1985-03-07,1.86,78.0,cycling,0,0,0 -703301693,Maciej Okreglak,POL,male,1993-07-05,1.76,73.0,canoe,0,0,0 -595036490,Maciej Sarnacki,POL,male,1987-02-10,2.0,130.0,judo,0,0,0 -499556541,Mack Darragh,CAN,male,1993-12-08,1.85,79.0,aquatics,0,0,0 -164336979,Mack Horton,AUS,male,1996-04-25,1.9,88.0,aquatics,1,0,0 -831329094,Mackenzie Arnold,AUS,female,1994-02-25,1.79,70.0,football,0,0,0 -359535568,Mackenzie Brown,USA,female,1995-03-14,1.77,74.0,archery,0,0,0 -243963793,Madai Perez,MEX,female,1980-02-02,1.58,46.0,athletics,0,0,0 -161590850,Madalina Beres,ROU,female,1993-07-03,1.86,75.0,rowing,0,0,1 -36358065,Madara Palameika,LAT,female,1987-06-18,1.84,76.0,athletics,0,0,0 -287974720,Maddie Hinch,GBR,female,1988-10-08,1.68,62.0,hockey,1,0,0 -713460320,Maddison Keeney,AUS,female,1996-05-23,1.67,62.0,aquatics,0,0,1 -72981815,Madelein Meppelink,NED,female,1989-11-29,1.83,75.0,volleyball,0,0,0 -946141261,Madeleine Edmunds,AUS,female,1992-01-03,1.87,81.0,rowing,0,0,0 -37020908,Madeline Dirado,USA,female,1993-04-05,1.76,64.0,aquatics,2,1,1 -341947091,Madeline Groves,AUS,female,1995-05-25,1.79,66.0,aquatics,0,2,0 -891088066,Madeline Heiner Hills,AUS,female,1987-05-15,1.74,53.0,athletics,0,0,0 -473250088,Madeline Musselman,USA,female,1998-06-16,1.81,65.0,aquatics,1,0,0 -81058004,Madiea Ghafoor,NED,female,1992-09-09,1.69,55.0,athletics,0,0,0 -996222405,Madison Hughes,USA,male,1992-10-26,1.73,79.0,rugby sevens,0,0,0 -527332545,Madison Keys,USA,female,1995-02-17,1.78,68.0,tennis,0,0,0 -376474889,Madison Kocian,USA,female,1997-06-15,1.58,46.0,gymnastics,1,1,0 -540102843,Madison Wilson,AUS,female,1994-05-31,1.79,61.0,aquatics,1,1,0 -448658832,Madonna Blyth,AUS,female,1985-11-30,1.65,60.0,hockey,0,0,0 -877108411,Mads Christiansen,DEN,male,1986-05-03,1.97,93.0,handball,1,0,0 -397456210,Mads Glaesner,DEN,male,1988-10-18,1.91,81.0,aquatics,0,0,0 -13506887,Mads Hendeliowitz,SWE,male,1982-01-14,1.78,76.0,equestrian,0,0,0 -653799383,Mads Mensah Larsen,DEN,male,1991-08-12,1.88,106.0,handball,1,0,0 -74306261,Mads Rasmussen,DEN,male,1981-11-24,1.83,75.0,rowing,0,0,0 -585960313,Mael Ambonguilat,GAB,male,1997-11-09,1.7,65.0,aquatics,0,0,0 -431358529,Magaly Bonilla,ECU,female,1992-02-08,1.52,54.0,athletics,0,0,0 -76314566,Magda Alfredo Cazanga,ANG,female,1991-05-28,1.72,54.0,handball,0,0,0 -732221079,Magda Linette,POL,female,1992-02-12,1.71,59.0,tennis,0,0,0 -302906626,Magdalena Eriksson,SWE,female,1993-09-08,1.72,67.0,football,0,1,0 -635407788,Magdalena Fularczyk-Kozlowska,POL,female,1986-09-16,1.73,70.0,rowing,1,0,0 -587247307,Magdalena Garro,ARG,female,1989-02-18,1.6,60.0,canoe,0,0,0 -537197914,Magdalena Lobnig,AUT,female,1990-07-19,1.8,71.0,rowing,0,0,0 -91993578,Magdalena Ruth Alex Moshi,TAN,female,1990-11-30,1.69,65.0,aquatics,0,0,0 -296260449,Magdiel Estrada,CUB,male,1994-08-26,1.76,73.0,judo,0,0,0 -28493203,Maggie Hogan,USA,female,1979-01-01,1.71,61.0,canoe,0,0,0 -610096820,Maggie Malone,USA,female,1993-12-30,1.73,77.0,athletics,0,0,0 -151348032,Maggie Steffens,USA,female,1993-06-03,1.73,74.0,aquatics,1,0,0 -558981183,Magnus Kirt,EST,male,1990-04-10,1.92,90.0,athletics,0,0,0 -344707477,Magnus Westermann,DEN,male,1995-03-13,1.94,94.0,aquatics,0,0,0 -829849936,Magomed Idrisovitch Ibragimov,UZB,male,1985-06-02,1.83,97.0,wrestling,0,0,1 -122833062,Magomed Musaev,KGZ,male,1989-03-11,1.81,95.0,wrestling,0,0,0 -628176825,Magomedmurad Gadzhiev,POL,male,1988-02-15,1.65,65.0,wrestling,0,0,0 -218620523,Maha Abdel Salam,EGY,female,1998-06-08,1.72,61.0,aquatics,0,0,0 -366810881,Maha Amer,EGY,female,1999-03-27,1.65,54.0,aquatics,0,0,0 -479172585,Maha Haddioui,MAR,female,1988-05-15,1.68,67.0,golf,0,0,0 -40811723,Mahama Cho,GBR,male,1989-08-16,1.96,100.0,taekwondo,0,0,0 -514748025,Mahaman Smaila,CMR,male,1986-02-28,1.78,,boxing,0,0,0 -219888752,Mahammadrasul Majidov,AZE,male,1986-09-27,1.9,,boxing,0,0,0 -34377778,Maharu Yoshimura,JPN,male,1993-08-03,1.77,61.0,table tennis,0,1,0 -874841774,Mahau Suguimati,BRA,male,1984-11-13,1.84,78.0,athletics,0,0,0 -448445626,Mahdi Kamil,IRQ,male,1995-01-06,1.7,60.0,football,0,0,0 -452893279,Mahdi Khodabakhshi,IRI,male,1991-04-21,1.92,87.0,taekwondo,0,0,0 -167441839,Mahdi Marandi,IRI,male,1986-05-12,1.72,69.0,volleyball,0,0,0 -472129595,Mahe Drysdale,NZL,male,1978-11-19,2.0,102.0,rowing,1,0,0 -150879921,Mahiedine Mekhissi,FRA,male,1985-03-15,1.9,75.0,athletics,0,0,1 -526960763,Mahlagha Jambozorg,IRI,female,1991-08-15,1.69,80.0,shooting,0,0,0 -74259823,Mahmood Haji,BRN,male,1991-03-11,1.75,69.0,shooting,0,0,0 -782024861,Mahmoud Abdelaal,EGY,male,1992-01-01,1.76,,boxing,0,0,0 -905443127,Mahmoud Fawzy Rashad Sebie,EGY,male,1992-06-20,1.65,75.0,wrestling,0,0,0 -381110402,Mahmoud Khalil,EGY,male,1991-06-01,1.92,85.0,handball,0,0,0 -352998140,Mahmoud Samimi,IRI,male,1988-09-18,1.86,90.0,athletics,0,0,0 -940342444,Mahsa Javar,IRI,female,1994-05-12,1.73,62.0,rowing,0,0,0 -192746204,Mai Ito,JPN,female,1984-05-23,1.56,41.0,athletics,0,0,0 -859543886,Mai Murakami,JPN,female,1996-08-05,1.46,48.0,gymnastics,0,0,0 -217231294,Mai Nakamura,JPN,female,1989-01-13,1.63,50.0,aquatics,0,0,1 -197311311,Mai Yamaguchi,JPN,female,1983-07-03,1.76,62.0,volleyball,0,0,0 -284015405,Maia Agerup,NOR,female,1995-06-22,,,sailing,0,0,0 -699569335,Maialen Chourraut,ESP,female,1983-03-08,1.61,55.0,canoe,1,0,0 -358834161,Maica Garcia Godoy,ESP,female,1990-10-17,1.88,90.0,aquatics,0,0,0 -583991719,Maicel Uibo,EST,male,1992-12-27,1.88,84.0,athletics,0,0,0 -587074263,Maicol Verzotto,ITA,male,1988-05-24,1.72,68.0,aquatics,0,0,0 -202168250,Maicon Siqueira,BRA,male,1993-01-09,1.9,90.0,taekwondo,0,0,1 -219639057,Maik dos Santos,BRA,male,1980-09-06,1.8,88.0,handball,0,0,0 -323417214,Maikel van der Vleuten,NED,male,1988-02-10,1.7,60.0,equestrian,0,0,0 -288399104,Maila Machado,BRA,female,1981-01-22,1.67,67.0,athletics,0,0,0 -638173103,Maimouna Diarra,SEN,female,1991-01-30,1.98,90.0,basketball,0,0,0 -768555779,Mairaj Ahmad Khan,IND,male,1975-11-02,1.81,82.0,shooting,0,0,0 -572989050,Maizurah Abdul Rahim,BRU,female,1999-04-15,1.47,50.0,athletics,0,0,0 -448106253,Maja Mihalinec,SLO,female,1989-12-17,1.68,65.0,athletics,0,0,0 -713439185,Maja Neuenschwander,SUI,female,1980-02-13,1.68,53.0,athletics,0,0,0 -959018491,Maja Ognjenovic,SRB,female,1984-08-06,1.83,67.0,volleyball,0,1,0 -745686878,Maja Siegenthaler,SUI,female,1992-11-11,1.72,66.0,sailing,0,0,0 -793000755,Maja Wloszczowska,POL,female,1983-11-09,1.7,54.0,cycling,0,1,0 -435088187,Majd Eddin Ghazal,SYR,male,1987-04-21,2.05,72.0,athletics,0,0,0 -613581224,Majda Mehmedovic,MNE,female,1990-05-25,1.7,67.0,handball,0,0,0 -338727227,Majlinda Kelmendi,KOS,female,1991-05-09,1.62,52.0,judo,1,0,0 -925805828,Maka Unufe,USA,male,1991-09-28,1.88,92.0,rugby sevens,0,0,0 -565676183,Makenzie Fischer,USA,female,1997-03-29,1.86,74.0,aquatics,1,0,0 -8530170,Maki Sakaguchi,JPN,female,1989-06-08,1.58,56.0,hockey,0,0,0 -777674143,Maki Takada,JPN,female,1989-08-23,1.83,78.0,basketball,0,0,0 -870613136,Makiko Tomita,JPN,female,1991-08-02,1.7,68.0,rugby sevens,0,0,0 -548581122,Makoto Tomizawa,JPN,male,1984-07-19,1.81,73.0,sailing,0,0,0 -256394566,Makoura Keita,GUI,female,1994-11-01,1.75,71.0,athletics,0,0,0 -841352991,Makrem Missaoui,TUN,male,1981-02-14,1.88,98.0,handball,0,0,0 -501195133,Maksim Inic,MNE,male,1996-05-26,1.86,80.0,aquatics,0,0,0 -950293205,Maksim Manukyan,ARM,male,1987-12-10,1.77,86.0,wrestling,0,0,0 -545871127,Maksim Niastsiarenka,BLR,male,1992-09-01,1.93,82.0,athletics,0,0,0 -244208041,Maksim Oberemko,RUS,male,1978-01-25,1.86,73.0,sailing,0,0,0 -608604431,Maksym Averin,AZE,male,1985-11-28,1.89,75.0,cycling,0,0,0 -607942437,Maksym Dolgov,UKR,male,1996-06-16,1.76,71.0,aquatics,0,0,0 -204225713,Maksym Khvorost,UKR,male,1982-07-15,1.86,85.0,fencing,0,0,0 -563022056,Maksym Semiankiv,UKR,male,1992-01-20,1.72,63.0,gymnastics,0,0,0 -157150042,Malaika Mihambo,GER,female,1994-02-03,1.7,55.0,athletics,0,0,0 -394127915,Malek Jaziri,TUN,male,1984-01-20,1.85,82.0,tennis,0,0,0 -422468531,Malgorzata Bialecka,POL,female,1988-04-02,1.64,54.0,sailing,0,0,0 -205523142,Malgorzata Holub,POL,female,1992-10-30,1.68,57.0,athletics,0,0,0 -607442240,Malgorzata Kozaczuk,POL,female,1988-06-06,1.7,60.0,fencing,0,0,0 -159953794,Malgorzata Wojtyra,POL,female,1989-09-21,1.76,70.0,cycling,0,0,0 -185574911,Malgorzta Jasinska,POL,female,1984-01-18,1.69,57.0,cycling,0,0,0 -980102210,Malika Akkaoui,MAR,female,1987-12-25,1.6,49.0,athletics,0,0,0 -656054953,Malin Baryard-Johnsson,SWE,female,1975-04-10,1.72,52.0,equestrian,0,0,0 -819426524,Malin Johanna Mattsson,SWE,female,1988-05-02,1.69,63.0,wrestling,0,0,0 -258262021,Malin Westerheim,NOR,female,1993-11-10,,,shooting,0,0,0 -295829504,Malina Calugareanu,ROU,female,1996-09-15,1.76,66.0,fencing,0,0,0 -91778108,Mallory Pugh,USA,female,1998-04-29,1.62,54.0,football,0,0,0 -997297757,Malte Jakschik,GER,male,1993-08-03,1.94,93.0,rowing,0,1,0 -759848453,Malwina Kopron,POL,female,1994-11-16,,,athletics,0,0,0 -4025069,Mamadama Bangoura,GUI,female,1993-11-10,1.76,63.0,judo,0,0,0 -590513028,Mamadou Cherif Dia,MLI,male,1984-10-16,1.8,70.0,athletics,0,0,0 -744094711,Mamadou Kasse Hann,FRA,male,1986-10-10,1.89,79.0,athletics,0,0,0 -362133096,Mamdouh Abdelrehim,EGY,male,1989-08-05,2.07,90.0,volleyball,0,0,0 -771530809,Mamdouh Taha Abouebaid,EGY,male,1988-01-01,1.89,80.0,handball,0,0,0 -765515466,Mame Marie Sy,SEN,female,1985-03-25,1.85,82.0,basketball,0,0,0 -224743356,Mame-Ibra Anne,FRA,male,1989-11-07,1.84,70.0,athletics,0,0,0 -797336359,Mamed Ibragimov,KAZ,male,1992-06-09,1.71,97.0,wrestling,0,0,0 -782337187,Mamello Makhabane,RSA,female,1988-02-24,1.59,53.0,football,0,0,0 -693611627,Mami Umeki,JPN,female,1994-12-06,1.74,78.0,judo,0,0,0 -119339549,Mamina Kone,CIV,female,1988-12-27,1.73,,taekwondo,0,0,0 -214760754,Mammadali Mehdiyev,AZE,male,1993-04-09,1.88,90.0,judo,0,0,0 -795584159,Mamoudou Eliman Hanne,FRA,male,1988-03-06,1.86,72.0,athletics,0,0,0 -520226601,Man Asaad,SYR,male,1993-11-20,1.9,143.0,weightlifting,0,0,0 -684910206,Man Sun,CHN,male,1995-08-22,1.88,70.0,rowing,0,0,0 -443697349,Man Wai Vivian Kong,HKG,female,1994-02-08,1.78,66.0,fencing,0,0,0 -639340405,Man Yang,CHN,female,1995-11-02,1.86,73.0,football,0,0,0 -489273020,Manami Doi,JPN,female,1993-08-29,1.67,64.0,sailing,0,0,0 -919263114,Manavjit Singh Sandhu,IND,male,1976-11-03,1.92,90.0,shooting,0,0,0 -320003911,Mandakhnaran Ganzorig,MGL,male,1986-05-11,1.65,65.0,wrestling,0,0,0 -878393556,Mandy Bujold,CAN,female,1987-07-25,1.6,,boxing,0,0,0 -136508791,Mandy Islacker,GER,female,1988-08-08,1.64,55.0,football,1,0,0 -235018279,Mandy Mulder,NED,female,1987-08-03,1.7,61.0,sailing,0,0,0 -41706411,Mane,POR,male,1994-03-11,1.72,80.0,football,0,0,0 -977840087,Manel Terraza,ESP,male,1990-05-11,1.84,78.0,hockey,0,0,0 -804165037,Manfredi Rizza,ITA,male,1991-04-26,1.8,89.0,canoe,0,0,0 -974903059,Mangala Samarakoon,SRI,male,1980-08-26,1.62,60.0,shooting,0,0,0 -964160887,Manich Bech,DEN,male,1993-01-13,1.7,68.0,football,0,0,0 -12987305,Manika Batra,IND,female,1995-06-15,1.79,63.0,table tennis,0,0,0 -879168754,Manila Flamini,ITA,female,1987-09-18,1.63,57.0,aquatics,0,0,0 -643799158,Manish Singh,IND,male,1991-05-05,1.74,65.0,athletics,0,0,0 -408462176,Manoel Dall Igna,FRA,male,1985-03-12,1.83,92.0,rugby sevens,0,0,0 -761454606,Manoj Kumar,IND,male,1986-12-10,1.75,,boxing,0,0,0 -283175998,Manon Brunet,FRA,female,1996-02-07,1.65,55.0,fencing,0,0,0 -672441857,Manon Hostens,FRA,female,1994-06-07,1.69,62.0,canoe,0,0,0 -969062147,Manon Houette,FRA,female,1992-07-02,1.68,69.0,handball,0,1,0 -620704693,Manon Valentino,FRA,female,1990-08-25,1.72,64.0,cycling,0,0,0 -14769885,Manpreet Kaur,IND,female,1990-07-06,1.7,89.0,athletics,0,0,0 -479145600,Manpreet Singh,IND,male,1992-06-26,1.72,69.0,hockey,0,0,0 -748912024,Manqi Ge,CHN,female,1997-10-13,1.62,52.0,athletics,0,0,0 -857446492,Manrique Larduet,CUB,male,1996-07-10,1.6,63.0,gymnastics,0,0,0 -690679655,Mantas Kalnietis,LTU,male,1986-09-06,1.94,90.0,basketball,0,0,0 -737047784,Manu Attri,IND,male,1992-12-31,1.72,73.0,badminton,0,0,0 -949112523,Manu Ginobili,ARG,male,1977-07-28,1.98,91.0,basketball,0,0,0 -933012630,Manuel Alexander Torres,VEN,male,1987-01-20,1.76,66.0,wrestling,0,0,0 -653187190,Manuel Brunet,ARG,male,1985-11-16,1.79,79.0,hockey,1,0,0 -621320289,Manuel Cappai,ITA,male,1992-10-09,1.68,,boxing,0,0,0 -188149865,Manuel Esteban Soto,COL,male,1994-01-28,1.7,62.0,athletics,0,0,0 -454149473,Manuel Fernandez Saro,ESP,male,1975-01-27,1.78,67.0,equestrian,0,0,0 -896925712,Manuel Fumic,GER,male,1982-03-30,1.73,68.0,cycling,0,0,0 -53279336,Manuel Huerta,PUR,male,1984-03-22,1.68,56.0,triathlon,0,0,0 -715849692,Manuel Lajud,MEX,male,1993-12-25,1.88,85.0,football,0,0,0 -342632387,Manuel Lelo,ANG,male,1987-08-18,1.82,73.0,sailing,0,0,0 -91551077,Manuel Rodas Ochoa,GUA,male,1984-07-05,1.71,67.0,cycling,0,0,0 -484470226,Manuel Strlek,CRO,male,1988-12-01,1.82,82.0,handball,0,0,0 -16557121,Manuel Tavares de Almeida,BRA,male,1993-12-11,1.82,78.0,equestrian,0,0,0 -122886715,Manuela Pizzo,ARG,female,1991-11-13,1.77,73.0,handball,0,0,0 -869069541,Manuela Soccol,BEL,female,1988-06-16,1.57,42.0,athletics,0,0,0 -456553330,Manueli Tulo,FIJ,male,1990-03-25,1.51,56.0,weightlifting,0,0,0 -949340839,Manuella Lyrio,BRA,female,1989-07-27,1.63,57.0,aquatics,0,0,0 -990150557,Maor Tiyouri,ISR,female,1990-08-13,1.48,44.0,athletics,0,0,0 -947717856,Maoulida Daroueche,COM,male,1990-02-07,1.77,60.0,athletics,0,0,0 -547395563,Mara Abbott,USA,female,1985-11-14,1.63,52.0,cycling,0,0,0 -336448292,Marc Lopez,ESP,male,1982-07-31,1.74,70.0,tennis,1,0,0 -201149666,Marc Minguell Alferez,ESP,male,1985-01-14,1.85,94.0,aquatics,0,0,0 -591640221,Marc Mundell,RSA,male,1983-07-07,1.89,77.0,athletics,0,0,0 -317700233,Marc Odenthal,GER,male,1991-01-25,1.8,94.0,judo,0,0,0 -180431479,Marc Roca Barcelo,ESP,male,1988-01-21,1.88,92.0,aquatics,0,0,0 -471210431,Marc Salles,ESP,male,1987-05-06,1.7,64.0,hockey,0,0,0 -777668281,Marc Sanchez Torrens,ESP,male,1992-11-06,1.88,75.0,aquatics,0,0,0 -799451393,Marc Zwiebler,GER,male,1984-03-13,1.81,75.0,badminton,0,0,0 -970688075,Marc-Antoine Olivier,FRA,male,1996-06-18,1.83,64.0,aquatics,0,0,1 -237044090,Marcel Hacker,GER,male,1977-04-29,1.96,101.0,rowing,0,0,0 -706271089,Marcel Lomnicky,SVK,male,1987-07-06,1.77,106.0,athletics,0,0,0 -749012390,Marcel Nguyen,GER,male,1987-09-08,1.62,55.0,gymnastics,0,0,0 -380803494,Marcela Krinke Susmelj,SUI,female,1965-10-18,1.75,54.0,equestrian,0,0,0 -80452686,Marcela Maric,CRO,female,1996-10-18,1.58,55.0,aquatics,0,0,0 -474468976,Marcelinho Huertas,BRA,male,1983-05-25,1.91,90.0,basketball,0,0,0 -919986691,Marcello Miani,ITA,male,1984-03-05,1.83,72.0,rowing,0,0,0 -855138617,Marcelo Aguirre,PAR,male,1993-01-21,1.74,66.0,table tennis,0,0,0 -627766210,Marcelo Alberto Acosta Jimenez,ESA,male,1996-07-11,,,aquatics,0,0,0 -225061272,Marcelo Chierighini,BRA,male,1991-01-15,1.9,86.0,aquatics,0,0,0 -850637390,Marcelo Espinal,HON,male,1993-02-24,1.75,78.0,football,0,0,0 -118521548,Marcelo Melo,BRA,male,1983-09-23,2.0,87.0,tennis,0,0,0 -549105619,Marcelo Pereira,HON,male,1995-05-27,1.81,70.0,football,0,0,0 -279325237,Marcia Vidiaux,CUB,female,1999-07-21,1.43,41.0,gymnastics,0,0,0 -278352429,Marcin Brzezinski,POL,male,1984-01-06,1.94,96.0,rowing,0,0,0 -884298028,Marcin Krukowski,POL,male,1992-06-14,1.85,96.0,athletics,0,0,0 -838211917,Marcin Lewandowski,POL,male,1987-06-13,1.79,64.0,athletics,0,0,0 -8595112,Marcin Matkowski,POL,male,1981-01-15,1.85,90.0,tennis,0,0,0 -746849065,Marcin Pochwala,POL,male,1984-02-14,1.82,80.0,canoe,0,0,0 -382951256,Marcin Stolarski,POL,male,1996-01-04,1.87,79.0,aquatics,0,0,0 -166826094,Marcio Appel,BRA,male,1979-01-01,1.72,73.0,equestrian,0,0,0 -692236481,Marcio Carvalho Jorge,BRA,male,1975-01-28,1.86,80.0,equestrian,0,0,0 -432314163,Marcio Teles,BRA,male,1994-01-27,1.8,68.0,athletics,0,0,0 -995865749,Marco Antonio Rodriguez,BOL,male,1994-01-24,1.8,66.0,athletics,0,0,0 -271177180,Marco Aurelio Fontana,ITA,male,1984-10-12,1.72,68.0,cycling,0,0,0 -527776420,Marco Belotti,ITA,male,1988-11-29,1.84,70.0,aquatics,0,0,0 -171354772,Marco Bueno,MEX,male,1994-03-31,1.82,68.0,football,0,0,0 -406226635,Marco DI COSTANZO,ITA,male,1992-06-09,1.84,87.0,rowing,0,0,1 -483777206,Marco Fichera,ITA,male,1993-09-04,1.8,74.0,fencing,0,1,0 -156642960,Marco Galiazzo,ITA,male,1983-05-07,1.78,98.0,archery,0,0,0 -331908129,Marco Grael,BRA,male,1989-06-09,1.81,82.0,sailing,0,0,0 -886667539,Marco Grimalt,CHI,male,1989-07-11,1.96,92.0,volleyball,0,0,0 -975072988,Marco Innocenti,ITA,male,1978-08-16,1.78,97.0,shooting,0,1,0 -861351035,Marco Koch,GER,male,1990-01-25,1.85,83.0,aquatics,0,0,0 -379037954,Marco Lingua,ITA,male,1978-06-04,1.77,116.0,athletics,0,0,0 -225215794,Marco Orsi,ITA,male,1990-12-11,1.89,89.0,aquatics,0,0,0 -778682814,Marco de Luca,ITA,male,1981-05-12,1.88,70.0,athletics,0,0,0 -491996482,Marco de Nicolo,ITA,male,1976-09-30,1.8,85.0,shooting,0,0,0 -473758676,Marco del Lungo,ITA,male,1990-03-01,1.9,97.0,aquatics,0,0,1 -995047482,Marcos Delia,ARG,male,1992-04-08,2.09,105.0,basketball,0,0,0 -842606539,Marcos Freitas,POR,male,1988-04-08,1.8,75.0,table tennis,0,0,0 -634165369,Marcos Macedo,BRA,male,1990-09-09,1.89,85.0,aquatics,0,0,0 -408897211,Marcos Madrid,MEX,male,1986-09-06,1.8,68.0,table tennis,0,0,0 -23863163,Marcos Pasin,BRA,male,1993-05-27,1.73,69.0,hockey,0,0,0 -372806643,Marcos Poggi,ESP,male,1987-08-31,1.82,86.0,rugby sevens,0,0,0 -481791889,Marcos Pulido Rodriguez,MEX,male,1995-08-18,1.79,74.0,canoe,0,0,0 -414759597,Marcus Child,NZL,male,1991-03-02,1.82,81.0,hockey,0,0,0 -728513422,Marcus D'almeida,BRA,male,1998-01-30,1.83,90.0,archery,0,0,0 -84514689,Marcus Daniell,NZL,male,1989-11-09,1.9,76.0,tennis,0,0,0 -22207553,Marcus Duncan,TTO,male,1986-12-04,1.77,,athletics,0,0,0 -820182386,Marcus Ellis,GBR,male,1989-09-14,1.75,80.0,badminton,0,0,1 -456233177,Marcus Fraser,AUS,male,1978-07-26,1.83,89.0,golf,0,0,0 -282297654,Marcus Gross,GER,male,1989-09-28,1.82,85.0,canoe,2,0,0 -673529044,Marcus Mepstead,GBR,male,1990-05-11,1.83,78.0,fencing,0,0,0 -14800860,Marcus Nyman,SWE,male,1990-08-14,1.89,90.0,judo,0,0,0 -164432341,Marcus Svensson,SWE,male,1990-03-22,1.76,68.0,shooting,0,1,0 -799844777,Marcus Vinicius Marquinhos,BRA,male,1984-05-31,2.07,104.0,basketball,0,0,0 -855460068,Marcus Walz,ESP,male,1994-10-03,1.84,82.0,canoe,1,0,0 -372436745,Marcus Watson,GBR,male,1991-06-27,1.77,88.0,rugby sevens,0,1,0 -501561453,Mare Dibaba,ETH,female,1989-10-20,1.56,45.0,athletics,0,0,1 -655236481,Mareen Kraeh,GER,female,1984-01-28,1.61,54.0,judo,0,0,0 -377392612,Mareike Adams,GER,female,1990-02-27,1.74,73.0,rowing,0,0,0 -182348270,Marek Sindler,CZE,male,1992-07-21,1.86,74.0,canoe,0,0,0 -134225037,Mareks Arents,LAT,male,1986-08-06,1.9,85.0,athletics,0,0,0 -195571720,Marestella Sunang,PHI,female,1981-02-20,1.57,54.0,athletics,0,0,0 -188511447,Maret Balkestein-Grothues,NED,female,1988-09-16,1.8,68.0,volleyball,0,0,0 -919199035,Margaret Adeoye,GBR,female,1985-04-22,1.74,68.0,athletics,0,0,0 -978084317,Margaret Bamgbose,NGR,female,1993-10-19,1.71,63.0,athletics,0,0,0 -780545996,Margaret Nyairera Wambui,KEN,female,1995-09-15,,66.0,athletics,0,0,1 -644993560,Margarita Hernandez,MEX,female,1985-12-03,1.5,44.0,athletics,0,0,0 -592591211,Margarita Mamun,RUS,female,1995-10-31,1.7,50.0,gymnastics,1,0,0 -822811465,Margarita Mukasheva,KAZ,female,1986-01-04,1.65,50.0,athletics,0,0,0 -330489011,Margarita Yelisseyeva,KAZ,female,1992-07-20,1.5,48.0,weightlifting,0,0,0 -936647883,Margaux Chretien,FRA,female,1992-12-11,1.72,61.0,aquatics,0,0,0 -587959959,Margaux Fabre,FRA,female,1992-10-02,1.73,58.0,aquatics,0,0,0 -687712206,Margaux Isaksen,USA,female,1991-10-07,1.78,60.0,modern pentathlon,0,0,0 -16156775,Margherita Magnani,ITA,female,1987-02-26,1.6,45.0,athletics,0,0,0 -354533,Margherita Panziera,ITA,female,1995-08-12,1.8,65.0,aquatics,0,0,0 -618086900,Margit Vanek,HUN,female,1986-02-25,1.78,58.0,triathlon,0,0,0 -999465722,Margot van Geffen,NED,female,1989-11-23,1.72,63.0,hockey,0,1,0 -713835897,Margret Hassan,SSD,female,1997-08-12,1.6,55.0,athletics,0,0,0 -707146783,Marharyta Makhneva,BLR,female,1992-02-13,1.81,67.0,canoe,0,0,1 -188153732,Marhinde Verkerk,NED,female,1985-11-21,1.72,78.0,judo,0,0,0 -297444162,Mari Molid,NOR,female,1990-08-08,1.78,,handball,0,0,1 -207842990,Mari Rabie,RSA,female,1986-09-10,1.71,60.0,triathlon,0,0,0 -192881723,Maria Alexandra Escobar Guerrero,ECU,female,1980-07-17,1.61,57.0,weightlifting,0,0,0 -220995361,Maria Andrade,CPV,female,1993-03-19,1.69,49.0,taekwondo,0,0,0 -289043459,Maria Andrejczyk,POL,female,1996-03-09,1.74,77.0,athletics,0,0,0 -60248392,Maria Barrionuevo,ARG,female,1984-05-16,1.71,58.0,hockey,0,0,0 -437720766,Maria Belen Perez Maurice,ARG,female,1985-07-12,1.8,68.0,fencing,0,0,0 -581742825,Maria Belimpasaki,GRE,female,1991-06-19,1.75,64.0,athletics,0,0,0 -671806829,Maria Bernabeu,ESP,female,1988-02-15,1.7,70.0,judo,0,0,0 -225216980,Maria Bernard,CAN,female,1993-04-06,1.65,53.0,athletics,0,0,0 -849987723,Maria Borisova,RUS,female,1997-07-28,1.84,95.0,aquatics,0,0,1 -173396847,Maria Branz,ARG,female,1990-02-06,1.7,68.0,sailing,0,0,0 -227880733,Maria Bruno,BRA,female,1992-08-28,1.6,54.0,aquatics,0,0,0 -129176268,Maria Camila Lopera Valle,COL,female,1995-04-18,1.54,54.0,rugby sevens,0,0,0 -548878175,Maria Campoy,ARG,female,1990-10-06,1.58,48.0,hockey,0,0,0 -641169323,Maria Casado,ESP,female,1985-12-25,1.67,63.0,rugby sevens,0,0,0 -680445450,Maria Clara Lobo,BRA,female,1998-09-03,1.67,55.0,aquatics,0,0,0 -971274141,Maria Czakova,SVK,female,1988-10-02,1.66,56.0,athletics,0,0,0 -95646367,Maria Dolgikh,RUS,female,1987-07-24,1.76,62.0,table tennis,0,0,0 -639719665,Maria Eduarda Miccuci,BRA,female,1995-06-07,1.67,56.0,aquatics,0,0,0 -42602097,Maria Elena Calle,ECU,female,1975-07-25,1.62,54.0,athletics,0,0,0 -166969862,Maria Elisabetta Marconi,ITA,female,1984-08-28,1.59,55.0,aquatics,0,0,0 -71121254,Maria Enrica Spacca,ITA,female,1986-03-20,1.64,55.0,athletics,0,0,0 -274533767,Maria Erdi,HUN,female,1998-02-18,1.75,67.0,sailing,0,0,0 -242817329,Maria Far,PAN,female,1998-01-06,1.63,130.0,aquatics,0,0,0 -395263582,Maria Fernanda Valdes Paris,CHI,female,1992-03-17,1.61,75.0,weightlifting,0,0,0 -821892550,Maria Gabriela Diaz,ARG,female,1981-01-02,1.6,53.0,cycling,0,0,0 -781399998,Maria Galikova,SVK,female,1980-08-21,1.61,50.0,athletics,0,0,0 -526855097,Maria Granatto,ARG,female,1995-04-21,1.58,58.0,hockey,0,0,0 -950854584,Maria Guadalupe Gonzalez,MEX,female,1989-01-09,1.62,47.0,athletics,0,1,0 -453427265,Maria Guadalupe Sanchez,MEX,female,1995-08-04,1.65,48.0,athletics,0,0,0 -141566641,Maria Jose Acosta Acosta,VEN,female,1991-11-26,1.72,69.0,wrestling,0,0,0 -722414167,Maria Kadobina,BLR,female,1997-02-04,1.74,51.0,gymnastics,0,0,0 -686608090,Maria Kurjo,GER,female,1989-12-10,1.58,52.0,aquatics,0,0,0 -813578958,Maria Leonor Tavares,POR,female,1985-09-24,1.65,55.0,athletics,0,0,0 -323047298,Maria Lopez,ESP,female,1990-02-16,1.7,62.0,hockey,0,0,0 -937896884,Maria Lopez de Equilaz,ESP,female,1984-07-12,1.64,56.0,hockey,0,0,0 -766954463,Maria Michta-Coffey,USA,female,1986-06-23,1.66,49.0,athletics,0,0,0 -82454552,Maria Mollestad,NOR,female,1992-07-23,,,sailing,0,0,0 -949792080,Maria Mutio,ARG,female,1984-11-20,1.71,68.0,hockey,0,0,0 -359873953,Maria Natalia Londa,INA,female,1990-10-29,1.65,56.0,athletics,0,0,0 -397999900,Maria Ortiz,ARG,female,1997-04-16,1.62,50.0,hockey,0,0,0 -80802864,Maria Paseka,RUS,female,1995-07-19,1.61,48.0,gymnastics,0,2,0 -649684578,Maria Peralta,ARG,female,1977-11-30,1.67,49.0,athletics,0,0,0 -546111531,Maria Perez,PUR,female,1989-04-01,1.67,69.0,judo,0,0,0 -917128574,Maria Portela,BRA,female,1988-01-14,1.58,70.0,judo,0,0,0 -902674669,Maria Prevolaraki,GRE,female,1991-12-21,1.63,57.0,wrestling,0,0,0 -887573602,Maria Ribera,ESP,female,1986-07-08,1.72,76.0,rugby sevens,0,0,0 -206006000,Maria Romanjuk,EST,female,1996-08-15,1.69,65.0,aquatics,0,0,0 -520469214,Maria Ruiz,ESP,female,1990-03-18,1.69,73.0,hockey,0,0,0 -865389407,Maria Selmaier,GER,female,1991-12-12,1.75,79.0,wrestling,0,0,0 -861477967,Maria Springwald,POL,female,1991-07-30,1.74,69.0,rowing,0,0,1 -960192083,Maria Suelen Altheman,BRA,female,1988-08-12,1.75,110.0,judo,0,0,0 -336010126,Maria Tejerina Mackern,ARG,female,1994-06-15,1.69,63.0,sailing,0,0,0 -975534750,Maria Tolkacheva,RUS,female,1997-08-08,1.76,53.0,gymnastics,1,0,0 -5915355,Maria Ugolkova,SUI,female,1989-07-18,1.73,65.0,aquatics,0,0,0 -655249498,Maria Ulitina,UKR,female,1991-11-05,1.78,65.0,badminton,0,0,0 -164601802,Maria Verchenova,RUS,female,1986-03-27,1.74,64.0,golf,0,0,0 -609643734,Maria Verschoor,NED,female,1994-04-22,1.64,58.0,hockey,0,1,0 -330387161,Maria Vilas Vidal,ESP,female,1996-05-31,1.68,64.0,aquatics,0,0,0 -9029196,Maria Wierzbowska,POL,female,1995-02-13,1.74,68.0,rowing,0,0,0 -375141341,Maria del Mar Jover,ESP,female,1988-04-21,1.67,61.0,athletics,0,0,0 -626430359,Maria del Pilar Pena Carrasco,ESP,female,1986-04-04,1.74,63.0,aquatics,0,0,0 -215800330,Maria del Rosario Espinoza Espinoza,MEX,female,1987-11-29,1.73,70.0,taekwondo,0,1,0 -271492907,Mariabenedicta Chigbolu,ITA,female,1989-07-27,1.72,52.0,athletics,0,0,0 -414150168,Mariafe Artacho del Solar,AUS,female,1993-10-24,1.74,70.0,volleyball,0,0,0 -177261311,Mariah Williams,AUS,female,1995-05-31,1.68,66.0,hockey,0,0,0 -990925025,Mariajo Uribe,COL,female,1990-02-27,1.68,65.0,golf,0,0,0 -406892958,Mariam Kromah,LBR,female,1994-01-01,,,athletics,0,0,0 -408046749,Mariama Djoulde Sow,GUI,female,2000-05-19,1.65,65.0,aquatics,0,0,0 -477864609,Mariama Mamoudou,NIG,female,1997-07-23,1.69,64.0,athletics,0,0,0 -342716060,Marian Dragulescu,ROU,male,1980-12-18,1.63,64.0,gymnastics,0,0,0 -84245800,Marian Kovacocy,SVK,male,1984-09-17,1.8,87.0,shooting,0,0,0 -6690107,Marian Oprea,ROU,male,1982-06-06,1.91,85.0,athletics,0,0,0 -699157085,Marian Urdabayeva,KAZ,female,1988-04-03,1.7,63.0,judo,0,0,0 -336224210,Mariana Cherdivara Esanu,MDA,female,1992-09-15,1.6,62.0,wrestling,0,0,0 -219248034,Mariana Cress,MHL,female,1998-08-12,1.58,52.0,athletics,0,0,0 -114574006,Mariana Duarte,BRA,female,1996-10-05,1.7,67.0,aquatics,0,0,0 -939892477,Mariana Duque-Marino,COL,female,1989-08-12,1.69,61.0,tennis,0,0,0 -123852277,Mariana Foglia Costa,URU,female,1982-06-28,1.73,69.0,sailing,0,0,0 -441871483,Mariana Pajon,COL,female,1991-10-10,1.58,50.0,cycling,1,0,0 -267541302,Mariana Ramalho,BRA,female,1987-08-17,,,rugby sevens,0,0,0 -583952076,Mariana Sahakian,LIB,female,1977-09-02,1.55,52.0,table tennis,0,0,0 -354121976,Mariana Silva,BRA,female,1990-02-22,1.73,63.0,judo,0,0,0 -472526288,Mariangela Perrupato,ITA,female,1988-09-15,1.73,56.0,aquatics,0,0,0 -385694443,Marianna Sastin,HUN,female,1983-07-10,1.61,65.0,wrestling,0,0,0 -813833760,Marianna Tolo,AUS,female,1989-07-02,1.96,86.0,basketball,0,0,0 -321680601,Marianne Skarpnord,NOR,female,1986-02-11,,,golf,0,0,0 -913351794,Marianne Vos,NED,female,1987-05-13,1.69,59.0,cycling,0,0,0 -610975661,Mariano Canepa,ARG,male,1987-05-07,1.85,98.0,handball,0,0,0 -393287429,Mariano Mastromarino,ARG,male,1982-09-15,1.69,56.0,athletics,0,0,0 -285433516,Maricet Espinosa,CUB,female,1990-01-02,1.63,63.0,judo,0,0,0 -76777877,Marie Gayot,FRA,female,1989-12-18,1.71,58.0,athletics,0,0,0 -849507397,Marie Laura Meza,CRC,female,1990-11-20,1.63,58.0,aquatics,0,0,0 -192037640,Marie Laure Delie,FRA,female,1988-01-29,1.72,65.0,football,0,0,0 -974746450,Marie Le Nepvou,FRA,female,1985-01-25,1.81,72.0,rowing,0,0,0 -494678680,Marie Mavers,GER,female,1991-02-13,1.7,67.0,hockey,0,0,1 -372606340,Marie Prouvensier,FRA,female,1994-02-09,1.65,52.0,handball,0,1,0 -34447682,Marie Riou,FRA,female,1981-08-21,1.71,68.0,sailing,0,0,0 -953237807,Marie Wattel,FRA,female,1997-06-02,1.81,71.0,aquatics,0,0,0 -230737913,Marie Yamaguchi,JPN,female,1989-10-22,1.59,58.0,rugby sevens,0,0,0 -351230490,Marie-Catherine Arnold,GER,female,1991-11-07,1.75,69.0,rowing,0,0,0 -851180853,Marie-Eve Beauchemin-Nadeau,CAN,female,1988-10-13,1.66,69.0,weightlifting,0,0,0 -223948924,Marie-Eve Nault,CAN,female,1982-02-16,1.7,64.0,football,0,0,0 -554344364,Marie-Florence Candassamy,FRA,female,1991-02-26,1.85,74.0,fencing,0,0,0 -322081073,Marie-Josee Ta Lou,CIV,female,1988-11-18,1.59,50.0,athletics,0,0,0 -2419718,Marie-Laurence Jungfleisch,GER,female,1990-10-07,1.82,68.0,athletics,0,0,0 -68066682,Marie-Louise Drager,GER,female,1981-04-11,1.7,59.0,rowing,0,0,0 -877716234,Marie-Sadio Rosche,SEN,female,1987-08-10,1.9,80.0,basketball,0,0,0 -307272735,Marie-Zelia Lafont,FRA,female,1987-01-09,1.71,63.0,canoe,0,0,0 -669462744,Mariel Zagunis,USA,female,1985-03-03,1.73,72.0,fencing,0,0,1 -462879813,Marielle Amant,FRA,female,1989-12-09,1.9,84.0,basketball,0,0,0 -132988064,Marielle Hall,USA,female,1992-01-28,1.61,50.0,athletics,0,0,0 -778284527,Mariely Sanchez,DOM,female,1988-12-30,1.61,52.0,athletics,0,0,0 -273450205,Mariia Shorets,RUS,female,1990-08-09,1.66,55.0,triathlon,0,0,0 -258800663,Mariia Shurochkina,RUS,female,1995-06-30,1.64,50.0,aquatics,1,0,0 -639025149,Marija Jovanovic,MNE,female,1985-12-26,1.81,77.0,handball,0,0,0 -892226840,Marija Marovic,CRO,female,1983-09-16,1.75,72.0,shooting,0,0,0 -604000736,Marija Vrajic,CRO,female,1976-09-23,1.69,51.0,athletics,0,0,0 -948844936,Marije van Hunenstijn,NED,female,1995-03-02,1.74,61.0,athletics,0,0,0 -259349407,Marika Popowicz-Drapala,POL,female,1988-04-28,1.64,55.0,athletics,0,0,0 -333749017,Marilson dos Santos,BRA,male,1977-08-06,1.74,58.0,athletics,0,0,0 -970045887,Marily dos Santos,BRA,female,1978-02-05,1.58,46.0,athletics,0,0,0 -500168497,Marin Cilic,CRO,male,1988-09-28,1.98,89.0,tennis,0,0,0 -461854211,Marin Draganja,CRO,male,1991-05-13,1.86,80.0,tennis,0,0,0 -161253255,Marina Aframeeva,RUS,female,1991-03-04,1.71,62.0,equestrian,0,0,0 -521412968,Marina Alabau Neira,ESP,female,1985-08-31,1.64,55.0,sailing,0,0,0 -430360045,Marina Arzamasova,BLR,female,1987-12-17,1.73,58.0,athletics,0,0,0 -276990393,Marina Bravo,ESP,female,1989-07-02,1.73,68.0,rugby sevens,0,0,0 -190849137,Marina Canetta,BRA,female,1989-04-01,1.62,51.0,archery,0,0,0 -38754507,Marina Canetti,BRA,female,1983-01-24,1.69,63.0,aquatics,0,0,0 -653594093,Marina Durunda,AZE,female,1997-06-12,1.7,51.0,gymnastics,0,0,0 -823803768,Marina Hmelevskaya,UZB,female,1990-07-30,1.65,50.0,athletics,0,0,0 -864041951,Marina Marghieva-Nikisenko,MDA,female,1986-06-28,1.86,82.0,athletics,0,0,0 -787075445,Marina Rajcic,MNE,female,1993-08-24,1.75,70.0,handball,0,0,0 -95985131,Marina Sudakova,RUS,female,1989-02-17,1.65,66.0,handball,1,0,0 -175326336,Marina Toribiong,PLW,female,1994-06-13,1.53,69.0,canoe,0,0,0 -488705922,Marina Zablith,BRA,female,1987-03-04,1.8,77.0,aquatics,0,0,0 -887926099,Marina de la Caridad Rodriguez Mitjan,CUB,female,1995-03-02,1.55,62.0,weightlifting,0,0,0 -744691889,Marine Boyer,FRA,female,2000-05-22,1.6,50.0,gymnastics,0,0,0 -178736852,Marine Brevet,FRA,female,1994-11-23,1.6,52.0,gymnastics,0,0,0 -617653407,Marine Johannes,FRA,female,1995-01-21,1.77,61.0,basketball,0,0,0 -513001410,Marine Jurbert,FRA,female,1992-12-11,1.64,53.0,gymnastics,0,0,0 -19543044,Mario Alfonso Bran,GUA,male,1989-10-17,1.68,64.0,athletics,0,0,0 -368806729,Mario Fernandez,ESP,male,1992-04-26,1.8,80.0,hockey,0,0,0 -266700854,Mario Gyr,SUI,male,1985-05-02,1.87,76.0,rowing,1,0,0 -224028378,Mario Hezonja,CRO,male,1995-02-25,2.03,100.0,basketball,0,0,0 -430914854,Mario Jose dos Santos Jr,BRA,male,1979-09-10,1.71,60.0,athletics,0,0,0 -601460358,Mario Leitner,AUT,male,1997-02-02,1.77,75.0,canoe,0,0,0 -384009312,Mario Luis Rivera Sanchez,CUB,male,1982-10-26,1.8,92.0,volleyball,0,0,0 -242810977,Mario Mola,ESP,male,1990-02-23,1.78,63.0,triathlon,0,0,0 -605135800,Mario Paonessa,ITA,male,1990-12-09,1.9,85.0,rowing,0,0,0 -506325009,Mario Todorovic,CRO,male,1988-10-11,1.85,82.0,aquatics,0,0,0 -31095617,Marion Lepert,USA,female,1995-09-18,1.78,61.0,sailing,0,0,0 -653316415,Marios Georgiou,CYP,male,1997-11-10,1.67,60.0,gymnastics,0,0,0 -63803519,Maris Strombergs,LAT,male,1987-03-10,1.86,90.0,cycling,0,0,0 -476920635,Marisa Dick,TTO,female,1997-05-26,1.53,47.0,gymnastics,0,0,0 -935870296,Marisa Lavanchy,SUI,female,1990-01-04,1.7,58.0,athletics,0,0,0 -257657428,Marisol Carratu,ARG,female,1986-07-15,1.74,85.0,handball,0,0,0 -792010625,Marisol Romero,MEX,female,1983-01-26,1.55,46.0,athletics,0,0,0 -296517803,Marissa Kurtimah,CAN,female,1994-05-25,1.57,57.0,athletics,0,0,0 -625766463,Marit Bouwmeester,NED,female,1988-06-17,1.77,68.0,sailing,1,0,0 -780954637,Marit Malm Frafjord,NOR,female,1985-11-25,1.82,,handball,0,0,1 -668487554,Maritza Guaman,ECU,female,1988-01-15,1.55,47.0,athletics,0,0,0 -650610457,Maritza Poncio,GUA,female,1994-12-03,1.58,41.0,athletics,0,0,0 -628714452,Marius Cocioran,ROU,male,1983-07-10,1.73,64.0,athletics,0,0,0 -472041377,Marius Cozmiuc,ROU,male,1992-09-07,1.97,94.0,rowing,0,0,0 -585219962,Marius Grigonis,LTU,male,1994-04-26,1.98,92.0,basketball,0,0,0 -288653875,Marius Ionescu,ROU,male,1984-12-18,1.7,55.0,athletics,0,0,0 -231726077,Marius Radu,ROU,male,1992-06-18,1.94,85.0,aquatics,0,0,0 -161847988,Marius Savelskis,LTU,male,1994-07-30,1.79,70.0,athletics,0,0,0 -278897276,Marius Ziukas,LTU,male,1985-06-29,1.85,72.0,athletics,0,0,0 -40046360,Mariusz Jurkiewicz,POL,male,1982-02-03,1.99,103.0,handball,0,0,0 -744484721,Mariusz Prudel,POL,male,1986-01-21,1.92,83.0,volleyball,0,0,0 -979280840,Mariya Dmitriyenko,KAZ,female,1988-03-24,1.67,56.0,shooting,0,0,0 -249371752,Mariya Korobitskaya,KGZ,female,1990-05-10,1.55,50.0,athletics,0,0,0 -778874000,Mariya Koroleva,USA,female,1990-04-10,1.66,55.0,aquatics,0,0,0 -478444296,Mariya Povkh,UKR,female,1989-01-08,1.66,64.0,canoe,0,0,0 -954387962,Mariya Ryemyen,UKR,female,1987-08-02,1.71,61.0,athletics,0,0,0 -819994350,Mariya Shatalova,UKR,female,1989-03-01,1.69,56.0,athletics,0,0,0 -951698977,Mariya Stadnik,AZE,female,1988-06-03,1.57,48.0,wrestling,0,1,0 -477823690,Mariya Telushkina,KAZ,female,1994-04-03,1.78,90.0,athletics,0,0,0 -510987328,Marjorie Mayans,FRA,female,1990-11-17,1.71,68.0,rugby sevens,0,0,0 -549331807,Marjory Nyaumwe,ZIM,female,1987-07-10,1.58,57.0,football,0,0,0 -129571712,Mark Aldred,GBR,male,1987-04-18,1.88,71.0,rowing,0,0,0 -251655789,Mark Bennett,GBR,male,1993-02-03,1.83,89.0,rugby sevens,0,1,0 -261061286,Mark Cavendish,GBR,male,1985-05-21,1.75,70.0,cycling,0,1,0 -968767341,Mark Dry,GBR,male,1987-10-11,1.84,112.0,athletics,0,0,0 -718324705,Mark English,IRL,male,1993-03-18,1.87,76.0,athletics,0,0,0 -175225943,Mark Gleghorne,GBR,male,1985-05-19,1.8,82.0,hockey,0,0,0 -412389237,Mark Knowles,AUS,male,1984-03-10,1.83,74.0,hockey,0,0,0 -343466585,Mark Kyle,IRL,male,1973-06-05,1.83,80.0,equestrian,0,0,0 -53785702,Mark Oldershaw,CAN,male,1983-02-07,1.86,94.0,canoe,0,0,0 -44374926,Mark Overgaard Madsen,DEN,male,1984-09-23,1.77,80.0,wrestling,0,1,0 -324844405,Mark Papp,HUN,male,1994-01-08,1.85,78.0,aquatics,0,0,0 -855611571,Mark Pearson,CAN,male,1987-06-18,1.81,76.0,hockey,0,0,0 -746387093,Mark Robertson,GBR,male,1984-12-30,1.89,96.0,rugby sevens,0,1,0 -780309052,Mark Todd,NZL,male,1956-03-01,1.9,78.0,equestrian,0,0,0 -338059475,Mark de Jonge,CAN,male,1984-02-15,1.8,91.0,canoe,0,0,0 -947055071,Markel Alberdi Sarobe,ESP,male,1991-10-22,1.87,76.0,aquatics,0,0,0 -461844557,Marketa Slukova,CZE,female,1988-06-28,1.8,68.0,volleyball,0,0,0 -670673572,Marko Arapovic,CRO,male,1996-07-20,2.07,105.0,basketball,0,0,0 -587055200,Marko Bagaric,QAT,male,1985-12-31,2.01,100.0,handball,0,0,0 -136688597,Marko Bezjak,SLO,male,1986-06-26,1.84,87.0,handball,0,0,0 -442704681,Marko Bijac,CRO,male,1991-01-12,2.01,85.0,aquatics,0,1,0 -624346920,Marko Blazhevski,MKD,male,1992-11-10,1.81,69.0,aquatics,0,0,0 -61318903,Marko Carrillo,PER,male,1988-07-04,1.84,75.0,shooting,0,0,0 -177653630,Marko Kopljar,CRO,male,1986-02-12,2.1,112.0,handball,0,0,0 -279090752,Marko Macan,CRO,male,1993-04-26,1.96,109.0,aquatics,0,1,0 -478905853,Marko Mamic,CRO,male,1994-03-06,2.02,109.0,handball,0,0,0 -341559685,Marko Marjanovic,SRB,male,1985-11-24,1.93,93.0,rowing,0,0,0 -951327387,Marko Novakovic,SRB,male,1989-01-04,1.86,95.0,canoe,0,0,0 -638559155,Marko Simonovic,SRB,male,1986-05-30,2.03,96.0,basketball,0,1,0 -345574422,Marko Tomicevic,SRB,male,1990-04-19,1.74,80.0,canoe,0,1,0 -165894715,Markus Bockermann,GER,male,1986-01-14,1.99,97.0,volleyball,0,0,0 -842346983,Markus Thormeyer,CAN,male,1997-08-25,1.95,84.0,aquatics,0,0,0 -488345537,Marleen van Iersel,NED,female,1988-01-07,1.78,68.0,volleyball,0,0,0 -689557957,Marlene Steinherr,GER,female,1985-09-10,1.74,69.0,sailing,0,0,0 -349029560,Marlies Mejias Garcia,CUB,female,1992-12-29,1.68,60.0,cycling,0,0,0 -786699109,Marlo Javier Delgado,ECU,male,1993-05-06,1.84,,boxing,0,0,0 -527228323,Marloes Keetels,NED,female,1993-05-04,1.72,66.0,hockey,0,1,0 -484645032,Marlon Acacio,MOZ,male,1982-07-09,1.8,81.0,judo,0,0,0 -461251275,Maro Jokovic,CRO,male,1987-10-01,2.03,95.0,aquatics,0,1,0 -21035215,Marouan Chouiref,TUN,male,1990-05-27,1.95,109.0,handball,0,0,0 -867476170,Marouen Maggaiz,TUN,male,1983-07-28,1.92,110.0,handball,0,0,0 -983343139,Maroussia Pare,FRA,female,1996-07-18,1.63,52.0,athletics,0,0,0 -906005564,Marquinhos,BRA,male,1994-05-14,1.85,70.0,football,1,0,0 -709840432,Marrit Steenbergen,NED,female,2000-01-11,1.78,62.0,aquatics,0,0,0 -505440878,Mart Seim,EST,male,1990-10-24,1.85,149.0,weightlifting,0,0,0 -919289341,Marta,BRA,female,1986-02-19,1.62,56.0,football,0,0,0 -159109190,Marta Bach Pascual,ESP,female,1993-02-17,1.76,66.0,aquatics,0,0,0 -552371572,Marta Baeza Centurion,BRA,female,1992-03-02,1.64,52.0,fencing,0,0,0 -817886966,Marta Gonzalez Crivillers,ESP,female,1995-04-09,1.81,73.0,aquatics,0,0,0 -582411443,Marta Kharitonova,RUS,female,1984-09-26,1.67,62.0,canoe,0,0,0 -888086557,Marta Lopez,ESP,female,1990-02-04,1.68,64.0,handball,0,0,0 -740922098,Marta Mangue,ESP,female,1983-04-23,1.7,75.0,handball,0,0,0 -91738730,Marta Menegatti,ITA,female,1990-08-16,1.8,58.0,volleyball,0,0,0 -854942046,Marta Milani,ITA,female,1987-03-09,1.72,59.0,athletics,0,0,0 -876465611,Marta Onofre,POR,female,1991-01-28,1.7,64.0,athletics,0,0,0 -165484226,Marta Pagnini,ITA,female,1991-01-21,1.75,58.0,gymnastics,0,0,0 -759213345,Marta Pen Freitas,POR,female,1993-07-31,1.53,46.0,athletics,0,0,0 -885028719,Marta Puda,POL,female,1991-01-13,1.72,59.0,fencing,0,0,0 -500211600,Marta Rostoburova,UZB,female,1996-03-29,1.63,56.0,gymnastics,0,0,0 -166820643,Marta Walczykiewicz,POL,female,1987-08-01,1.65,63.0,canoe,0,1,0 -693968979,Marta Xargay,ESP,female,1990-12-20,1.8,71.0,basketball,0,1,0 -783066900,Marten van Riel,BEL,male,1992-12-15,1.83,64.0,triathlon,0,0,0 -820822830,Martha Bayona Pineda,COL,female,1995-08-12,1.55,60.0,cycling,0,0,0 -537064907,Martha McCabe,CAN,female,1989-08-04,1.68,57.0,aquatics,0,0,0 -186596657,Marthe Koala,BUR,female,1994-03-08,1.77,69.0,athletics,0,0,0 -913653914,Marti Malloy,USA,female,1986-06-23,1.61,58.0,judo,0,0,0 -237753405,Martin Allikvee,EST,male,1995-03-21,1.82,77.0,aquatics,0,0,0 -246553438,Martin Andres Melconian Alvez,URU,male,1990-01-02,1.83,77.0,aquatics,0,0,0 -693642928,Martin Bau,SLO,male,1994-10-08,1.82,74.0,aquatics,0,0,0 -305251897,Martin Benitez,ARG,male,1994-06-17,1.75,76.0,football,0,0,0 -39842194,Martin Esteban Cuestas,URU,male,1986-12-08,1.82,62.0,athletics,0,0,0 -759991813,Martin Fuchs,SUI,male,1992-07-13,1.84,71.0,equestrian,0,0,0 -659392236,Martin Fuksa,CZE,male,1993-04-30,1.8,83.0,canoe,0,0,0 -411643054,Martin Giuffre,CAN,male,1990-10-05,1.85,82.0,badminton,0,0,0 -358461011,Martin Haner,GER,male,1988-08-27,1.84,83.0,hockey,0,0,1 -742548457,Martin Iosefo,USA,male,1990-01-13,1.87,95.0,rugby sevens,0,0,0 -275759196,Martin Kaymer,GER,male,1984-12-28,1.84,76.0,golf,0,0,0 -898863862,Martin Kucera,SVK,male,1990-05-10,1.93,74.0,athletics,0,0,0 -121446595,Martin Kupper,EST,male,1989-05-31,1.98,119.0,athletics,0,0,0 -936041821,Martin Marinov,AUS,male,1967-10-25,1.78,88.0,canoe,0,0,0 -803793508,Martin Michel,BOL,male,1994-09-05,1.9,90.0,judo,0,0,0 -483044526,Martin Naidich,ARG,male,1990-12-17,1.85,74.0,aquatics,0,0,0 -27576453,Martin Pacek,SWE,male,1987-04-28,1.97,100.0,judo,0,0,0 -915011043,Martin Ramos,ARG,male,1991-08-26,1.97,94.0,volleyball,0,0,0 -842376118,Martin Sauer,GER,male,1982-12-17,1.69,55.0,rowing,0,1,0 -916498956,Martin Schaefer,BRA,male,1989-10-18,1.83,82.0,rugby sevens,0,0,0 -997372571,Martin Sinkovic,CRO,male,1989-11-10,1.88,95.0,rowing,1,0,0 -678966888,Martin Strobel,GER,male,1986-06-05,1.89,90.0,handball,0,0,1 -887718773,Martin Tistan,SVK,male,1992-11-12,1.73,65.0,athletics,0,0,0 -134099692,Martin Wolfram,GER,male,1992-01-29,1.64,58.0,aquatics,0,0,0 -969111501,Martin Zwicker,GER,male,1987-02-27,1.75,64.0,hockey,0,0,1 -907069049,Martina Carraro,ITA,female,1993-06-21,1.75,60.0,aquatics,0,0,0 -765683238,Martina Cavallero,ARG,female,1990-05-07,1.63,58.0,hockey,0,0,0 -642385203,Martina Centofanti,ITA,female,1998-05-19,1.7,47.0,gymnastics,0,0,0 -524633511,Martina Guiggi,ITA,female,1984-05-01,1.87,80.0,volleyball,0,0,0 -213466972,Martina Hingis,SUI,female,1980-09-30,1.7,59.0,tennis,0,1,0 -688040735,Martina Hrasnova,SVK,female,1983-03-21,1.77,80.0,athletics,0,0,0 -420210959,Martina Kohlova,SVK,female,1984-11-16,1.69,68.0,canoe,0,0,0 -77888504,Martina Moravcikova,CZE,female,1988-08-13,1.74,64.0,aquatics,0,0,0 -290254894,Martina Ratej,SLO,female,1981-11-02,1.78,80.0,athletics,0,0,0 -12278954,Martina Ritter,AUT,female,1982-09-23,1.74,59.0,cycling,0,0,0 -670614279,Martina Rizzelli,ITA,female,1998-03-24,1.53,47.0,gymnastics,0,0,0 -190010311,Martina Strutz,GER,female,1981-11-04,1.59,58.0,athletics,0,0,0 -761227644,Martina de Memme,ITA,female,1991-08-07,1.75,65.0,aquatics,0,0,0 -373707575,Martina van Berkel,SUI,female,1989-01-23,1.66,54.0,aquatics,0,0,0 -984490167,Martine Grael,BRA,female,1991-02-12,1.68,62.0,sailing,1,0,0 -395476042,Martine Smeets,NED,female,1990-05-05,1.72,69.0,handball,0,0,0 -917191537,Martino Goretti,ITA,male,1985-09-27,1.86,73.0,rowing,0,0,0 -483109753,Marton Szivos,HUN,male,1981-08-19,1.92,95.0,aquatics,0,0,0 -397414268,Marton Vamos,HUN,male,1992-06-24,2.02,105.0,aquatics,0,0,0 -410826022,Marty McDowell,NZL,male,1987-01-16,1.84,85.0,canoe,0,0,0 -732634662,Martyn Rooney,GBR,male,1987-04-03,1.98,81.0,athletics,0,0,0 -472349121,Martyna Dabrowska,POL,female,1994-04-05,1.76,56.0,athletics,0,0,0 -300217673,Martyna Mikolajczak,POL,female,1991-05-12,,,rowing,0,0,0 -568668037,Martyna Trajdos,GER,female,1989-04-05,1.71,66.0,judo,0,0,0 -255248240,Martynas Dziaugys,LTU,male,1986-11-08,1.89,95.0,rowing,0,0,0 -62434883,Maru Teferi,ISR,male,1992-08-17,1.64,52.0,athletics,0,0,0 -674506453,Marusa Cernjul,SLO,female,1992-06-30,1.77,56.0,athletics,0,0,0 -615165685,Marvin Bracy,USA,male,1993-12-15,1.76,77.0,athletics,0,0,0 -360462839,Marvin Rene,FRA,male,1995-04-11,1.77,60.0,athletics,0,0,0 -782811562,Marwa Amri,TUN,female,1989-01-08,1.6,58.0,wrestling,0,0,1 -897941970,Marwan Ahmed Aly Morsy Elamrawy,EGY,male,1995-04-14,1.94,93.0,aquatics,0,0,0 -203919226,Marwan Elkamash,EGY,male,1993-11-14,1.83,77.0,aquatics,0,0,0 -590552399,Mary Hanna,AUS,female,1954-12-01,1.73,63.0,equestrian,0,0,0 -699555088,Mary Joy Tabal,PHI,female,1989-07-13,1.49,45.0,athletics,0,0,0 -161117607,Mary Opeloge,SAM,female,1992-01-24,1.52,75.0,weightlifting,0,0,0 -62290445,Maryam Usman,NGR,female,1990-11-09,1.66,122.0,weightlifting,0,0,0 -104377411,Maryan Muse,SOM,female,1997-01-01,,,athletics,0,0,0 -387651976,Maryia Filonchyk,BLR,female,1992-01-10,1.89,74.0,basketball,0,0,0 -402117502,Maryia Katsiak,BLR,female,1997-03-02,1.67,45.0,gymnastics,0,0,0 -408549485,Maryia Mamashuk,BLR,female,1992-08-31,1.63,65.0,wrestling,0,1,0 -2923353,Maryia Papova,BLR,female,1994-07-13,1.89,84.0,basketball,0,0,0 -536189027,Maryna Bekh,UKR,female,1995-07-18,1.74,62.0,athletics,0,0,0 -401157026,Maryna Cherniak,UKR,female,1988-03-26,1.62,48.0,judo,0,0,0 -858452425,Maryna Damantsevich,BLR,female,1984-02-10,1.62,51.0,athletics,0,0,0 -884349889,Maryna Kylypko,UKR,female,1995-11-10,1.64,58.0,athletics,0,0,0 -951115413,Maryna Litvinchuk,BLR,female,1988-03-12,1.78,68.0,canoe,0,0,1 -870110736,Marzia Caravelli,ITA,female,1981-10-23,1.77,62.0,athletics,0,0,0 -162278204,Masakatsu Hikosaka,JPN,male,1991-01-18,1.77,90.0,rugby sevens,0,0,0 -535827746,Masaki Ito,JPN,male,1988-11-02,1.67,62.0,gymnastics,0,0,0 -976787167,Masaki Kaneko,JPN,male,1992-03-27,1.81,75.0,aquatics,0,0,0 -106215469,Masanao Takahashi,JPN,male,1982-01-18,1.7,65.0,equestrian,0,0,0 -219895211,Masashi Ebinuma,JPN,male,1990-02-15,1.7,66.0,judo,0,0,1 -418990510,Masashi Kamekawa,JPN,male,1993-05-28,1.77,68.0,football,0,0,0 -48986256,Masato Sakai,JPN,male,1995-06-06,1.81,77.0,aquatics,0,1,0 -801397124,Masatoshi Kushibiki,JPN,male,1993-01-29,1.86,82.0,football,0,0,0 -566847633,Masbah Ahmmed,BAN,male,1995-03-11,,,athletics,0,0,0 -143690875,Mashu Baker,JPN,male,1994-09-25,1.78,90.0,judo,1,0,0 -620850796,Mason Finley,USA,male,1990-10-07,2.04,157.0,athletics,0,0,0 -20695020,Massimo Colaci,ITA,male,1985-02-21,1.8,75.0,volleyball,0,1,0 -653938951,Massimo Fabbrizi,ITA,male,1977-08-27,1.77,110.0,shooting,0,0,0 -306036644,Mate Helebrandt,HUN,male,1989-01-12,1.74,59.0,athletics,0,0,0 -56718574,Matea Matosevic,CRO,female,1989-03-14,1.73,52.0,athletics,0,0,0 -48994654,Matea Samardzic,CRO,female,1995-01-17,1.77,61.0,aquatics,0,0,0 -886265349,Matej Benus,SVK,male,1987-11-02,1.96,83.0,canoe,0,1,0 -218621574,Matej Gaber,SLO,male,1991-07-22,1.97,114.0,handball,0,0,0 -798424406,Matej Mohoric,SLO,male,1994-10-19,1.85,67.0,cycling,0,0,0 -301324995,Matej Toth,SVK,male,1983-02-10,1.85,73.0,athletics,1,0,0 -217355877,Mateja Simic,SLO,female,1980-03-11,1.69,58.0,triathlon,0,0,0 -454434360,Matelita Buadromo,FIJ,female,1996-01-15,,,aquatics,0,0,0 -987983731,Mateo Sanz Lanz,SUI,male,1993-11-06,1.72,64.0,sailing,0,0,0 -254178473,Mateus Filipe Gregorio Machado,BRA,male,1993-07-05,1.85,104.0,weightlifting,0,0,0 -765197800,Mateusz Bieniek,POL,male,1994-04-05,2.1,98.0,volleyball,0,0,0 -186521340,Mateusz Biskup,POL,male,1994-02-08,1.9,91.0,rowing,0,0,0 -610688503,Mateusz Jachlewski,POL,male,1984-12-27,1.84,88.0,handball,0,0,0 -211225504,Mateusz Kaminski,POL,male,1991-05-03,1.89,83.0,canoe,0,0,0 -487122930,Mateusz Kus,POL,male,1987-07-14,2.0,112.0,handball,0,0,0 -652295351,Mateusz Mika,POL,male,1991-01-21,2.06,86.0,volleyball,0,0,0 -403394715,Mateusz Przybylko,GER,male,1992-03-09,1.95,78.0,athletics,0,0,0 -377872587,Mateusz Sawrymowicz,POL,male,1987-04-22,1.85,75.0,aquatics,0,0,0 -113410495,Mateusz Wilangowski,POL,male,1991-10-07,1.95,89.0,rowing,0,0,0 -164089137,Matevz Skok,SLO,male,1986-09-02,1.88,95.0,handball,0,0,0 -657155974,Matheus Borges,BRA,male,1993-07-20,1.76,78.0,hockey,0,0,0 -898031635,Matheus Santana,BRA,male,1996-04-02,1.91,90.0,aquatics,0,0,0 -370742926,Mathew Belcher,AUS,male,1982-09-20,1.73,62.0,sailing,0,1,0 -36282420,Mathews Punza,ZAM,male,1988-04-27,1.7,66.0,judo,0,0,0 -477624913,Mathias Boe,DEN,male,1980-07-11,1.85,75.0,badminton,0,0,0 -286373803,Mathias Fluckiger,SUI,male,1988-09-27,1.72,65.0,cycling,0,0,0 -883500515,Mathias Hebo Rasmussen,DEN,male,1995-08-02,1.9,84.0,football,0,0,0 -533908779,Mathias Muller,GER,male,1992-04-03,1.87,80.0,hockey,0,0,1 -152701098,Mathias Tulyoongeleni Hamunyela,NAM,male,1992-10-15,1.6,,boxing,0,0,0 -791421238,Mathieu Albert Daniel Bauderlique,FRA,male,1989-07-03,1.85,,boxing,0,0,1 -414004191,Mathieu Bilodeau,CAN,male,1983-11-27,1.85,72.0,athletics,0,0,0 -981983025,Mathieu Grebille,FRA,male,1991-10-06,1.98,100.0,handball,0,1,0 -484330084,Mathieu Lemoine,FRA,male,1984-04-17,1.76,70.0,equestrian,1,0,0 -774702640,Mathieu Peisson,FRA,male,1982-09-29,1.85,102.0,aquatics,0,0,0 -36826829,Mathilde Andraud,FRA,female,1989-04-28,1.73,70.0,athletics,0,0,0 -802971626,Mathilde Cini,FRA,female,1994-11-18,1.66,62.0,aquatics,0,0,0 -48760156,Mathilde Lamolle,FRA,female,1997-04-07,1.67,58.0,shooting,0,0,0 -652013285,Mathilde de Kerangat,FRA,female,1991-10-14,1.72,67.0,sailing,0,0,0 -746005417,Mathlynn Sasser,MHL,female,1996-12-25,1.58,57.0,weightlifting,0,0,0 -728437436,Matias Albarracin,ARG,male,1979-10-25,1.74,65.0,equestrian,0,0,0 -322320446,Matias Buhler,SUI,male,1983-01-15,1.76,77.0,sailing,0,0,0 -304306143,Matias Koski,FIN,male,1994-05-18,1.95,93.0,aquatics,0,0,0 -64937045,Matias Montinho,ANG,male,1990-07-15,1.67,63.0,sailing,0,0,0 -958190853,Matias Moroni,ARG,male,1991-03-29,1.85,84.0,rugby sevens,0,0,0 -482423754,Matias Paredes,ARG,male,1982-02-01,1.76,74.0,hockey,1,0,0 -478914190,Matias Rey,ARG,male,1984-12-01,1.78,72.0,hockey,1,0,0 -492966481,Matias Schulz,ARG,male,1982-02-12,1.9,88.0,handball,0,0,0 -120488238,Matias Tudela,ESP,male,1984-10-06,1.88,95.0,rugby sevens,0,0,0 -931233756,Matias del Solar,CHI,male,1975-11-29,1.84,87.0,sailing,0,0,0 -537360256,Matija Kvasina,CRO,male,1981-12-04,1.8,72.0,cycling,0,0,0 -706656825,Matilda Ekholm,SWE,female,1982-06-15,1.72,67.0,table tennis,0,0,0 -403290407,Matilde Ortiz Reyes,ESP,female,1990-09-16,1.74,67.0,aquatics,0,0,0 -21739330,Mats Grambusch,GER,male,1992-11-04,1.77,74.0,hockey,0,0,1 -298706269,Matt Gohdes,AUS,male,1990-05-08,1.8,80.0,hockey,0,0,0 -472009304,Matt Gotrel,GBR,male,1989-03-01,1.95,95.0,rowing,1,0,0 -935178102,Matt Hutchins,NZL,male,1994-09-19,1.9,75.0,aquatics,0,0,0 -153631965,Matt Kuchar,USA,male,1978-06-21,1.94,86.0,golf,0,0,1 -984564500,Matt Langridge,GBR,male,1983-05-20,1.94,93.0,rowing,1,0,0 -915798442,Matt Williams,AUS,male,1985-05-09,1.78,72.0,equestrian,0,0,0 -395178195,Matteo Aicardi,ITA,male,1986-04-19,1.92,102.0,aquatics,0,0,1 -690029131,Matteo Castaldo,ITA,male,1985-12-11,1.88,86.0,rowing,0,0,1 -427248664,Matteo Galvan,ITA,male,1988-08-24,1.82,78.0,athletics,0,0,0 -381850551,Matteo Giupponi,ITA,male,1988-10-08,1.89,70.0,athletics,0,0,0 -38214425,Matteo Lodo,ITA,male,1994-10-25,1.96,90.0,rowing,0,0,1 -289265001,Matteo Manassero,ITA,male,1993-04-19,1.83,79.0,golf,0,0,0 -872073653,Matteo Marconcini,ITA,male,1989-08-26,1.85,81.0,judo,0,0,0 -911422793,Matteo Piano,ITA,male,1990-10-24,2.08,102.0,volleyball,0,1,0 -171065867,Matteo Rivolta,ITA,male,1991-11-16,1.93,83.0,aquatics,0,0,0 -58032086,Matteo Stefanini,ITA,male,1984-04-29,1.9,91.0,rowing,0,0,0 -43202713,Matthew Abood,AUS,male,1986-06-28,1.97,92.0,aquatics,0,0,1 -99590760,Matthew Anderson,USA,male,1987-04-18,2.02,100.0,volleyball,0,0,1 -925341714,Matthew Baranoski,USA,male,1993-07-27,1.83,96.0,cycling,0,0,0 -730877927,Matthew Centrowitz,USA,male,1989-10-18,1.76,65.0,athletics,1,0,0 -71745896,Matthew Chau,AUS,male,1994-11-09,1.85,77.0,badminton,0,0,0 -335841832,Matthew Dawson,AUS,male,1994-04-27,1.76,66.0,hockey,0,0,0 -496386141,Matthew Dellavedova,AUS,male,1990-09-08,1.91,89.0,basketball,0,0,0 -566672226,Matthew Denny,AUS,male,1996-06-02,1.95,118.0,athletics,0,0,0 -425434844,Matthew Duncan Abeysinghe,SRI,male,1996-03-19,1.8,74.0,aquatics,0,0,0 -908655978,Matthew Emmons,USA,male,1981-04-05,1.76,83.0,shooting,0,0,0 -986397793,Matthew Glaetzer,AUS,male,1992-08-24,1.9,86.0,cycling,0,0,0 -101015451,Matthew Guest,CAN,male,1985-04-26,1.9,90.0,hockey,0,0,0 -550707976,Matthew Hudson-Smith,GBR,male,1994-10-26,1.94,78.0,athletics,0,0,0 -897031531,Matthew Hughes,CAN,male,1989-08-03,1.8,66.0,athletics,0,0,0 -766785466,Matthew Mark Meyer,RSA,male,1998-03-04,1.85,70.0,aquatics,0,0,0 -475158866,Matthew McGovern,IRL,male,1984-09-20,1.8,82.0,sailing,0,0,0 -874367808,Matthew Miller,USA,male,1989-01-13,1.96,98.0,rowing,0,0,0 -439268682,Matthew Sarmento,CAN,male,1991-06-23,1.74,76.0,hockey,0,0,0 -405824354,Matthew Stanley,NZL,male,1992-01-15,1.98,82.0,aquatics,0,0,0 -483679471,Matthew Swann,AUS,male,1989-05-16,1.7,64.0,hockey,0,0,0 -388169524,Matthias Buhler,GER,male,1986-09-02,1.89,78.0,athletics,0,0,0 -554191048,Matthias Ginter,GER,male,1994-01-19,1.9,88.0,football,0,1,0 -963881256,Matthias Schmid,AUT,male,1980-12-12,1.75,66.0,sailing,0,0,0 -719850911,Matthieu Androdias,FRA,male,1990-06-11,1.94,94.0,rowing,0,0,0 -74294229,Matthieu Peche,FRA,male,1987-10-07,1.75,75.0,canoe,0,0,1 -437683546,Matthieu Rosset,FRA,male,1990-05-26,1.7,68.0,aquatics,0,0,0 -103170142,Matthijs Buchli,NED,male,1992-12-13,1.88,90.0,cycling,0,1,0 -420949330,Matti Mattsson,FIN,male,1993-10-05,1.97,98.0,aquatics,0,0,0 -499246333,Mattia Camboni,ITA,male,1996-04-26,1.8,70.0,sailing,0,0,0 -280493573,Mattias Andersson,SWE,male,1978-03-29,1.86,95.0,handball,0,0,0 -515599241,Mattias Karlsson,SWE,male,1991-09-07,1.91,88.0,table tennis,0,0,0 -730518978,Mattias Zachrisson,SWE,male,1990-08-22,1.78,89.0,handball,0,0,0 -676985214,Matus Bubenik,SVK,male,1989-11-14,1.97,78.0,athletics,0,0,0 -896939838,Matyas Szabo,GER,male,1991-08-19,1.83,82.0,fencing,0,0,0 -178284851,Matylda Kowal,POL,female,1989-01-11,1.7,51.0,athletics,0,0,0 -431865511,Maud van der Meer,NED,female,1992-05-20,1.78,68.0,aquatics,0,0,0 -498567900,Maureen Jelagat Maiyo,KEN,female,1985-05-28,1.67,58.0,athletics,0,0,0 -322346494,Maureen Koster,NED,female,1992-07-03,1.76,56.0,athletics,0,0,0 -237676786,Mauricio Arteaga,ECU,male,1988-08-08,1.77,68.0,athletics,0,0,0 -756883817,Mauricio Borges Almeida Silva,BRA,male,1989-02-04,1.99,99.0,volleyball,1,0,0 -646748093,Mauricio Luiz de Souza,BRA,male,1988-09-29,2.09,93.0,volleyball,1,0,0 -293694228,Mauricio Martinez,ARG,male,1993-02-20,1.67,70.0,football,0,0,0 -76978968,Mauricio Ortega,COL,male,1994-08-04,1.8,90.0,athletics,0,0,0 -853068624,Mauro Crenna,ITA,male,1991-11-02,1.86,93.0,canoe,0,0,0 -574835225,Mauro Nespoli,ITA,male,1987-11-22,1.81,78.0,archery,0,0,0 -167844391,Mavis Chirandu,ZIM,female,1995-01-15,1.57,53.0,football,0,0,0 -384641451,Max Christiansen,GER,male,1996-09-25,1.85,84.0,football,0,1,0 -81864285,Max Esposito,AUS,male,1997-06-16,1.74,64.0,modern pentathlon,0,0,0 -210303328,Max Hartung,GER,male,1989-10-08,1.89,86.0,fencing,0,0,0 -89080288,Max Heinzer,SUI,male,1987-08-07,1.78,77.0,fencing,0,0,0 -508219874,Max Hess,GER,male,1996-07-13,1.85,80.0,athletics,0,0,0 -907301904,Max Hoff,GER,male,1982-09-12,1.97,95.0,canoe,1,0,0 -934682595,Max Litchfield,GBR,male,1995-03-04,1.68,78.0,aquatics,0,0,0 -832967843,Max Mirnyi,BLR,male,1977-07-06,1.96,99.0,tennis,0,0,0 -232790653,Max Niederlag,GER,male,1993-05-05,1.83,85.0,cycling,0,0,0 -733043738,Max Rendschmidt,GER,male,1993-12-12,1.86,90.0,canoe,2,0,0 -302494517,Max Salminen,SWE,male,1988-09-22,1.97,98.0,sailing,0,0,0 -93066253,Max Whitlock,GBR,male,1993-01-13,1.67,56.0,gymnastics,2,0,1 -386159479,Maxemillion Kassman,PNG,male,1998-07-17,1.75,64.0,taekwondo,0,0,0 -89475411,Maxim Bouchard,CAN,male,1990-09-18,1.8,71.0,aquatics,0,0,0 -2552703,Maxim Mikhaylov,RUS,male,1988-03-19,2.02,103.0,volleyball,0,0,0 -567764171,Maxim Rakov,KAZ,male,1986-02-07,1.81,100.0,judo,0,0,0 -429841022,Maxime Beaumont,FRA,male,1982-04-23,1.91,94.0,canoe,0,1,0 -690024255,Maxime Brinck-Croteau,CAN,male,1986-03-29,1.77,78.0,fencing,0,0,0 -232147471,Maxime Marotte,FRA,male,1986-12-05,1.72,62.0,cycling,0,0,0 -162317183,Maxime Mottet,BEL,male,1991-05-17,1.78,84.0,shooting,0,0,0 -844686899,Maximilian Korge,GER,male,1994-10-12,1.93,92.0,rowing,0,0,0 -887043487,Maximilian Levy,GER,male,1987-06-26,1.82,87.0,cycling,0,0,0 -91221039,Maximilian Meyer,GER,male,1995-09-18,1.73,69.0,football,0,1,0 -718400252,Maximilian Munski,GER,male,1988-01-10,1.95,96.0,rowing,0,1,0 -382717900,Maximilian Planer,GER,male,1991-01-28,1.98,94.0,rowing,0,0,0 -65092723,Maximilian Reinelt,GER,male,1988-08-24,1.95,98.0,rowing,0,1,0 -243609847,Maximiliano Ariel Richeze,ARG,male,1983-03-07,1.77,70.0,cycling,0,0,0 -488438622,Maximilien van Haaster,CAN,male,1992-06-19,1.85,88.0,fencing,0,0,0 -624320550,Maximo Gonzalez,ARG,male,1983-07-20,1.76,77.0,tennis,0,0,0 -781644314,Maximo Mercedes,DOM,male,1988-09-14,1.86,70.0,athletics,0,0,0 -812967807,Maxwell Holt,USA,male,1987-03-12,2.05,90.0,volleyball,0,0,1 -526196879,Maxwell Lattimer,CAN,male,1993-07-14,1.85,72.0,rowing,0,0,0 -967402790,Maya Moore,USA,female,1989-06-11,1.83,79.0,basketball,1,0,0 -500075689,Maya Rehberg,GER,female,1994-04-28,1.7,58.0,athletics,0,0,0 -919598411,Mayada Sayyad,PLE,female,1992-10-26,,,athletics,0,0,0 -297050524,Mayara Fier de Moura,BRA,female,1986-12-05,1.68,71.0,handball,0,0,0 -341245309,Maykel Masso,CUB,male,1999-05-08,1.74,61.0,athletics,0,0,0 -761032254,Mayobanex de Oleo,DOM,male,1993-05-26,1.71,61.0,athletics,0,0,0 -135012058,Mayra Aguiar,BRA,female,1991-08-03,1.77,78.0,judo,0,0,1 -750703136,Mayra Carolina Herrera,GUA,female,1988-12-20,1.63,54.0,athletics,0,0,0 -179987194,Mayssa Raquel Pessoa,BRA,female,1984-09-11,1.8,66.0,handball,0,0,0 -947011927,Mayu Hamada,JPN,female,1994-01-31,1.74,57.0,taekwondo,0,0,0 -466510848,Mayumi Ono,JPN,female,1984-08-14,1.7,62.0,hockey,0,0,0 -110852352,Mayya Petrova,RUS,female,1982-05-26,1.78,71.0,handball,1,0,0 -128985176,Mazoon Al-Alawi,OMA,female,1997-11-14,,,athletics,0,0,0 -409204459,McLain Ward,USA,male,1975-10-17,1.76,70.0,equestrian,0,1,0 -299427906,McQuin Baron,USA,male,1995-10-27,2.06,104.0,aquatics,0,0,0 -965246251,Md Fakhri Ismail,BRU,male,1991-03-06,1.6,62.0,athletics,0,0,0 -877915055,Meaghan Benfeito,CAN,female,1989-03-02,1.55,48.0,aquatics,0,0,2 -647839865,Meaghan Volker,AUS,female,1990-10-20,,,rowing,0,0,0 -968097436,Mebrahtom Keflezighi,USA,male,1975-05-05,1.66,56.0,athletics,0,0,0 -654095521,Mechiel Versluis,NED,male,1987-07-29,1.97,95.0,rowing,0,0,1 -702444425,Megan Guarnier,USA,female,1985-05-04,1.63,54.0,cycling,0,0,0 -248091988,Megan Kalmoe,USA,female,1983-08-21,1.78,72.0,rowing,0,0,0 -158155836,Megan Lane,CAN,female,1991-05-04,1.78,66.0,equestrian,0,0,0 -338613319,Megan Lukan,CAN,female,1992-02-14,1.7,58.0,rugby sevens,0,0,1 -156676980,Megan Rapinoe,USA,female,1985-07-05,1.67,59.0,football,0,0,0 -350561307,Megan Simmonds,JAM,female,1994-03-18,1.57,49.0,athletics,0,0,0 -618204486,Meghan Klingenberg,USA,female,1988-08-02,1.58,56.0,football,0,0,0 -26643473,Meghan Musnicki,USA,female,1983-02-05,1.83,73.0,rowing,1,0,0 -626601674,Meghan O'Leary,USA,female,1984-08-24,1.83,73.0,rowing,0,0,0 -86610737,Megumi Iseda,JPN,female,1987-06-30,1.57,56.0,sailing,0,0,0 -463812760,Mehboob Ali,PAK,male,1990-04-10,,,athletics,0,0,0 -44950691,Mehdi Mahdavi,IRI,male,1984-02-13,1.91,96.0,volleyball,0,0,0 -909022255,Mehdi Marzouki,FRA,male,1987-05-26,1.92,101.0,aquatics,0,0,0 -211496382,Mehdy Metella,FRA,male,1992-07-17,1.91,99.0,aquatics,0,1,0 -510649353,Mehmet Nadir Unal,TUR,male,1993-01-13,1.81,,boxing,0,0,0 -513851313,Mehtap Kurnaz,TUR,female,1995-05-01,1.6,62.0,weightlifting,0,0,0 -595667372,Mei Yu Hsiao,TPE,female,1985-01-07,1.62,58.0,cycling,0,0,0 -508723001,Meichen Sun,CHN,female,1998-11-01,1.75,63.0,aquatics,0,0,0 -786377606,Meikayla Moore,NZL,female,1996-06-04,1.75,67.0,football,0,0,0 -742356260,Meisam Abolfazl Nasiri,IRI,male,1989-06-01,1.69,71.0,wrestling,0,0,0 -531197956,Meiyu Liang,CHN,female,1994-01-08,1.66,63.0,hockey,0,0,0 -694559348,Mekonnen Gebremedhin,ETH,male,1988-10-11,1.81,61.0,athletics,0,0,0 -279948149,Melania Costa Schmid,ESP,female,1989-04-24,1.79,68.0,aquatics,0,0,0 -241238603,Melanie Behringer,GER,female,1985-11-18,1.72,71.0,football,1,0,0 -309505211,Melanie Henique,FRA,female,1992-12-22,1.72,60.0,aquatics,0,0,0 -234453586,Melanie Leupolz,GER,female,1994-04-14,1.73,52.0,football,1,0,0 -694013113,Melanie Margalis,USA,female,1991-12-30,1.73,65.0,aquatics,1,0,0 -142783294,Melanie McCann,CAN,female,1989-10-08,1.73,58.0,modern pentathlon,0,0,0 -832907922,Melanie Pfeifer,GER,female,1986-08-25,1.67,54.0,canoe,0,0,0 -643682523,Melanie Wilson,GBR,female,1984-06-25,1.84,75.0,rowing,0,1,0 -734867601,Melany Hernandez,MEX,female,1998-07-26,1.65,60.0,aquatics,0,0,0 -152354066,Melek Hu,TUR,female,1989-01-27,1.65,53.0,table tennis,0,0,0 -559761961,Meli Malani,FIJ,male,1996-11-17,,94.0,aquatics,0,0,0 -667446420,Melina Robert-Michon,FRA,female,1979-07-18,1.8,85.0,athletics,0,1,0 -227958831,Melinda Geiger,ROU,female,1987-03-28,1.77,69.0,handball,0,0,0 -395742388,Meline Gerard,FRA,female,1990-05-30,1.68,61.0,football,0,0,0 -638389336,Melisa Gil,ARG,female,1984-08-09,1.6,65.0,shooting,0,0,0 -314522649,Melissa Bishop,CAN,female,1988-08-05,1.73,56.0,athletics,0,0,0 -371776247,Melissa Boekelman,NED,female,1989-05-11,1.76,87.0,athletics,0,0,0 -351096848,Melissa Breen,AUS,female,1990-09-17,1.74,65.0,athletics,0,0,0 -357241098,Melissa Gonzalez,USA,female,1989-01-24,1.61,58.0,hockey,0,0,0 -910455517,Melissa Hoskins,AUS,female,1991-02-24,1.75,64.0,cycling,0,0,0 -37881707,Melissa Mojica,PUR,female,1983-12-29,1.78,82.0,judo,0,0,0 -31451946,Melissa Ortiz,COL,female,1990-01-24,1.72,52.0,football,0,0,0 -424629723,Melissa Pagnotta,CAN,female,1988-09-22,1.8,64.0,taekwondo,0,0,0 -92926686,Melissa Seidemann,USA,female,1990-06-26,1.83,104.0,aquatics,1,0,0 -283491400,Melissa Tancredi,CAN,female,1981-12-27,1.77,77.0,football,0,0,1 -388744533,Melissa Tapper,AUS,female,1990-03-01,1.66,65.0,table tennis,0,0,0 -853786282,Melissa Wu,AUS,female,1992-05-03,1.52,50.0,aquatics,0,0,0 -242511677,Melita Abraham,CHI,female,1997-07-07,1.7,62.0,rowing,0,0,0 -967171979,Melitina Staniouta,BLR,female,1993-11-14,1.73,53.0,gymnastics,0,0,0 -488010523,Melker Svard Jacobsson,SWE,male,1994-01-08,1.88,79.0,athletics,0,0,0 -114894232,Memo,INA,male,1995-01-08,1.92,88.0,rowing,0,0,0 -511927027,Menatalla Karim,EGY,female,1995-11-12,1.6,65.0,canoe,0,0,0 -958603253,Meng Wei,CHN,female,1989-06-14,1.69,57.0,shooting,0,0,0 -715981032,Menghui Zhu,CHN,female,1999-03-23,1.77,62.0,aquatics,0,0,0 -401470235,Menglu Ma,CHN,female,1997-09-24,1.67,61.0,cycling,0,0,0 -271606334,Mengni Tang,CHN,female,1994-04-08,1.69,59.0,aquatics,0,1,0 -658441949,Mengqian Ren,CHN,female,1993-10-04,1.75,66.0,athletics,0,0,0 -899791888,Mengran Sun,CHN,female,1992-07-16,1.95,83.0,basketball,0,0,0 -525021516,Mengxin Sun,CHN,female,1993-04-08,1.9,84.0,basketball,0,0,0 -304831992,Mengxue Zhang,CHN,female,1991-02-06,1.62,70.0,shooting,1,0,0 -566918843,Mengyu Wang,CHN,female,1992-05-25,1.7,71.0,hockey,0,0,0 -469860412,Mengyu Yu,SIN,female,1989-08-18,1.66,50.0,table tennis,0,0,0 -237464508,Menzi Masuku,RSA,male,1993-04-15,1.69,61.0,football,0,0,0 -273574012,Meraf Bahta,SWE,female,1989-06-24,1.76,52.0,athletics,0,0,0 -337904141,Mercedes Isabel Perez Tigrero,COL,female,1987-08-07,1.57,63.0,weightlifting,0,0,0 -726189235,Mercy Cherono,KEN,female,1991-05-07,,51.0,athletics,0,0,0 -7993281,Merdan Atayev,TKM,male,1995-05-08,1.96,80.0,aquatics,0,0,0 -12306725,Meredith Michaels-Beerbaum,GER,female,1969-12-26,1.62,51.0,equestrian,0,0,1 -712487973,Merel Blom,NED,female,1986-08-19,1.71,60.0,equestrian,0,0,0 -757366284,Merewai Cumu,FIJ,female,1997-08-31,1.74,73.0,rugby sevens,0,0,0 -905398230,Merle van Benthem,NED,female,1992-12-07,1.7,68.0,cycling,0,0,0 -571759273,Merrill Moses,USA,male,1977-08-13,1.91,97.0,aquatics,0,0,0 -228859028,Mert Atli,TUR,male,1993-07-23,1.91,70.0,athletics,0,0,0 -447162714,Merven Clair,MRI,male,1993-07-02,1.78,,boxing,0,0,0 -679179495,Meryem Akdag,TUR,female,1992-08-05,1.71,51.0,athletics,0,0,0 -746996056,Meryem Erdogan,TUR,female,1990-04-24,1.72,55.0,athletics,0,0,0 -795596801,Messala Merbah,ALG,male,1994-07-22,1.78,65.0,football,0,0,0 -428462407,Mesud Pezer,BIH,male,1994-08-27,1.96,120.0,athletics,0,0,0 -334554979,Mete Gazoz,TUR,male,1999-06-08,1.81,60.0,archery,0,0,0 -30835928,Methkal Abu Drais,JOR,male,1983-12-29,1.68,67.0,athletics,0,0,0 -478490266,Mi Gyong Ri,PRK,female,1990-09-30,1.65,56.0,table tennis,0,0,0 -309196317,Mi Rae Kim,PRK,female,2001-04-07,1.5,40.0,aquatics,0,0,0 -534654032,Mia Hermansson,SWE,female,1992-12-12,1.75,63.0,judo,0,0,0 -585217466,Miah-Marie Langlois,CAN,female,1991-09-21,1.72,63.0,basketball,0,0,0 -759154793,Micah Christenson,USA,male,1993-05-08,1.98,88.0,volleyball,0,0,1 -440955726,Micha Powell,CAN,female,1995-01-12,1.77,55.0,athletics,0,0,0 -909720625,Michael Albasini,SUI,male,1980-12-20,1.72,67.0,cycling,0,0,0 -828603866,Michael Alexandre Bodegas,ITA,male,1987-05-03,1.92,102.0,aquatics,0,0,1 -500190525,Michael Brake,NZL,male,1994-10-22,1.87,91.0,rowing,0,0,0 -814037531,Michael Bultheel,BEL,male,1986-06-30,1.89,81.0,athletics,0,0,0 -992884097,Michael D'Almeida,FRA,male,1987-09-03,1.76,80.0,cycling,0,0,1 -969061469,Michael Damgaard Nielsen,DEN,male,1990-03-18,1.92,92.0,handball,1,0,0 -386535330,Michael Darling,IRL,male,1988-07-03,1.7,65.0,hockey,0,0,0 -442019186,Michael Di Santo,USA,male,1989-12-10,1.86,90.0,rowing,0,0,0 -144352723,Michael Fuchs,GER,male,1982-04-22,1.81,86.0,badminton,0,0,0 -253286352,Michael Gbinije,NGR,male,1992-06-05,2.01,90.0,basketball,0,0,0 -128789851,Michael Guigou,FRA,male,1982-01-28,1.79,79.0,handball,0,1,0 -563835725,Michael Hansen,DEN,male,1990-02-14,1.82,82.0,sailing,0,0,0 -156951365,Michael Hepburn,AUS,male,1991-08-17,1.86,77.0,cycling,0,1,0 -746795729,Michael Hoare,GBR,male,1985-11-14,1.76,77.0,hockey,0,0,0 -46089311,Michael Janker,GER,male,1992-03-23,1.8,75.0,shooting,0,0,0 -360677958,Michael John Conlan,IRL,male,1991-11-19,1.7,,boxing,0,0,0 -245131295,Michael Julian Meyer,RSA,male,1992-09-01,1.84,76.0,aquatics,0,0,0 -878101089,Michael Jung,GER,male,1982-07-31,1.68,70.0,equestrian,1,1,0 -415356488,Michael Kalomiris,GRE,male,1986-10-09,1.81,65.0,athletics,0,0,0 -753189621,Michael Maskell,BAR,male,1966-11-24,1.75,114.0,shooting,0,0,0 -255856000,Michael Mason,CAN,male,1986-09-30,1.86,67.0,athletics,0,0,0 -882282575,Michael Mathieu,BAH,male,1984-06-24,1.78,76.0,athletics,0,0,1 -359582375,Michael McPhail,USA,male,1981-12-15,1.83,88.0,shooting,0,0,0 -876833914,"Michael O,Reilly",IRL,male,1993-04-30,1.8,,boxing,0,0,0 -672059782,Michael Perez,MEX,male,1993-02-14,1.69,75.0,football,0,0,0 -491565031,Michael Phelps,USA,male,1985-06-30,1.94,90.0,aquatics,5,1,0 -963798182,Michael Rimmer,GBR,male,1986-02-03,1.82,66.0,athletics,0,0,0 -212707556,Michael Robson,IRL,male,1995-04-18,1.75,70.0,hockey,0,0,0 -776809154,Michael Schmid,SUI,male,1988-01-02,1.79,73.0,rowing,0,0,0 -509141582,Michael Sean James Nicholson,ZIM,male,1973-11-09,1.82,105.0,shooting,0,0,0 -719475341,Michael Shelley,AUS,male,1983-10-10,1.83,60.0,athletics,0,0,0 -717870725,Michael Tayler,CAN,male,1992-02-06,1.75,69.0,canoe,0,0,0 -591796882,Michael Tinsley,USA,male,1984-04-21,1.86,74.0,athletics,0,0,0 -868365619,Michael Umeh,NGR,male,1984-09-18,1.87,88.0,basketball,0,0,0 -646681270,Michael Venus,NZL,male,1987-10-16,1.92,84.0,tennis,0,0,0 -247341718,Michael Watt,IRL,male,1987-04-13,1.78,79.0,hockey,0,0,0 -941406525,Michael Whitaker,GBR,male,1960-03-17,1.72,69.0,equestrian,0,0,0 -871224571,Michael Woods,CAN,male,1986-10-12,1.75,63.0,cycling,0,0,0 -542540504,Michaela Ek,SWE,female,1988-02-01,1.74,68.0,handball,0,0,0 -891750964,Michaela Hruba,CZE,female,1998-02-21,1.9,75.0,athletics,0,0,0 -504352027,Michaela Meijer,SWE,female,1993-07-30,1.72,60.0,athletics,0,0,0 -616439080,Michaela Metallidou,GRE,female,1993-01-23,1.63,46.0,gymnastics,0,0,0 -339385583,Michail Pateniotis,GRE,male,1984-02-05,1.8,74.0,sailing,0,0,0 -35167157,Michal Balner,CZE,male,1982-09-12,1.91,80.0,athletics,0,0,0 -479154630,Michal Daszek,POL,male,1992-06-27,1.82,88.0,handball,0,0,0 -513183631,Michal Golas,POL,male,1984-04-29,1.8,66.0,cycling,0,0,0 -715508816,Michal Haratyk,POL,male,1992-04-10,1.94,135.0,athletics,0,0,0 -831920477,Michal Izdinsky,FRA,male,1992-07-23,1.78,75.0,aquatics,0,0,0 -903235278,Michal Jurecki,POL,male,1984-10-27,1.98,111.0,handball,0,0,0 -441671788,Michal Kubiak,POL,male,1988-02-23,1.91,80.0,volleyball,0,0,0 -902138771,Michal Kudla,POL,male,1997-10-17,1.88,90.0,canoe,0,0,0 -223037038,Michal Kwiatkowski,POL,male,1990-06-02,1.76,66.0,cycling,0,0,0 -491450653,Michal Pietrzak,POL,male,1989-04-03,1.85,80.0,athletics,0,0,0 -921968213,Michal Smolen,USA,male,1993-09-13,1.81,70.0,canoe,0,0,0 -38283369,Michal Szpakowski,POL,male,1989-04-23,1.95,103.0,rowing,0,0,0 -360956359,Michal Szyba,POL,male,1988-03-18,1.96,97.0,handball,0,0,0 -663753553,Micheen Barbara Thornycroft,ZIM,female,1987-06-26,1.75,72.0,rowing,0,0,0 -297451205,Michel Borges,BRA,male,1991-06-16,1.82,,boxing,0,0,0 -397244117,Michel Torneus,SWE,male,1986-05-26,1.84,73.0,athletics,0,0,0 -954819684,Michele Benedetti,ITA,male,1984-12-17,1.74,68.0,aquatics,0,0,0 -473802345,Michele Santucci,ITA,male,1989-05-30,1.88,82.0,aquatics,0,0,0 -760953520,Michele Scartezzini,ITA,male,1992-01-10,,,cycling,0,0,0 -970855976,Michelle Carter,USA,female,1985-10-12,1.76,136.0,athletics,1,0,0 -829005830,Michelle Coleman,SWE,female,1993-10-31,1.86,74.0,aquatics,0,0,0 -959543328,Michelle Cristina Fazzari,CAN,female,1987-07-10,1.73,58.0,wrestling,0,0,0 -794770350,Michelle Finn,IRL,female,1989-12-16,1.52,51.0,athletics,0,0,0 -694416814,Michelle Goos,NED,female,1989-12-27,1.78,62.0,handball,0,0,0 -900638495,Michelle Heyman,AUS,female,1988-07-04,1.78,66.0,football,0,0,0 -822214721,Michelle Jenneke,AUS,female,1993-06-23,1.72,67.0,athletics,0,0,0 -801535491,Michelle Kasold,USA,female,1987-05-26,1.61,53.0,hockey,0,0,0 -628031032,Michelle Koh,MAS,female,1990-09-30,1.7,70.0,golf,0,0,0 -827836935,Michelle Li,CAN,female,1991-11-03,1.72,66.0,badminton,0,0,0 -949879254,Michelle Pearson,BER,female,1991-04-16,1.77,70.0,rowing,0,0,0 -24450560,Michelle Plouffe,CAN,female,1992-09-15,1.9,82.0,basketball,0,0,0 -190326446,Michelle Vittese,USA,female,1989-12-06,1.61,57.0,hockey,0,0,0 -987215853,Michelle Vorster,NAM,female,1978-09-12,1.67,57.0,cycling,0,0,0 -360738649,Michelle Weber,RSA,female,1996-09-28,1.66,63.0,aquatics,0,0,0 -876460837,Michelle Williams,CAN,female,1991-01-02,1.7,61.0,aquatics,0,0,1 -283186204,Michelle van der Pols,NED,female,1989-01-06,1.72,61.0,hockey,0,0,0 -133448411,Michelle-Lee Ahye,TTO,female,1992-04-10,1.6,64.0,athletics,0,0,0 -478258348,Mick Clohissey,IRL,male,1986-01-13,1.8,64.0,athletics,0,0,0 -814967349,Mickael Gelabale,FRA,male,1983-05-22,2.01,90.0,basketball,0,0,0 -348230526,Mickael Marteau,FRA,male,1992-09-28,1.79,86.0,rowing,0,0,0 -770839524,Mickael-Meba Zeze,FRA,male,1994-05-19,1.75,65.0,athletics,0,0,0 -75146232,Mie Nakashima,JPN,female,1986-06-18,1.6,52.0,hockey,0,0,0 -926621084,Mie Nielsen,DEN,female,1996-09-25,1.85,68.0,aquatics,0,0,1 -521050855,Mieke Kroger,GER,female,1993-07-18,1.81,78.0,cycling,0,0,0 -124498151,Miesinnei Mercy Genesis,NGR,female,1997-09-20,1.52,48.0,wrestling,0,0,0 -585358336,Mifuyu Koide,JPN,female,1995-12-21,1.65,59.0,rugby sevens,0,0,0 -5116041,Migran Arutyunyan,ARM,male,1989-03-25,1.66,67.0,wrestling,0,1,0 -127831066,Miguel Alvarino Garcia,ESP,male,1994-05-31,1.8,84.0,archery,0,0,0 -149765178,Miguel Angel Almachi,ECU,male,1985-05-02,1.65,55.0,athletics,0,0,0 -397125199,Miguel Angel Lopez,ESP,male,1988-07-03,1.81,70.0,athletics,0,0,0 -323518925,Miguel Angel Lopez Castro,CUB,male,1997-03-25,1.89,75.0,volleyball,0,0,0 -280398491,Miguel Angel Lopez Moreno,COL,male,1994-02-04,1.7,58.0,cycling,0,0,0 -937294944,Miguel Arraiolos,POR,male,1988-07-12,1.73,62.0,triathlon,0,0,0 -792866236,Miguel Borja,COL,male,1993-01-26,1.82,84.0,football,0,0,0 -604365100,Miguel Carvalho,POR,male,1994-09-02,1.86,72.0,athletics,0,0,0 -57899480,Miguel Delas,ESP,male,1984-04-13,1.7,72.0,hockey,0,0,0 -308381513,Miguel Duran Navia,ESP,male,1995-09-02,1.93,80.0,aquatics,0,0,0 -36249566,Miguel Ferrera,HON,male,1981-05-25,1.8,80.0,taekwondo,0,0,0 -491799396,Miguel Francis,ANT,male,1995-03-28,1.92,83.0,athletics,0,0,0 -558930917,Miguel Marriaga,VEN,male,1984-06-06,2.06,118.0,basketball,0,0,0 -390736343,Miguel Martinez Palacio,CUB,male,1991-03-23,1.7,66.0,wrestling,0,0,0 -464051241,Miguel Mena,NCA,male,1997-07-07,1.76,69.0,aquatics,0,0,0 -703973257,Miguel Murillo,CRC,male,1993-09-29,1.73,73.0,judo,0,0,0 -656749782,Miguel Ortiz Canavate Ozeki,ESP,male,1991-02-19,1.89,89.0,aquatics,0,0,0 -185068275,Miguel Ruiz,VEN,male,1990-12-20,2.02,104.0,basketball,0,0,0 -430176512,Miguel Tabuena,PHI,male,1994-10-13,1.74,66.0,golf,0,0,0 -658229421,Miguel Ubeto Aponte,VEN,male,1976-09-02,1.68,70.0,cycling,0,0,0 -309781378,Miguel Valente,BRA,male,1993-07-16,1.76,70.0,aquatics,0,0,0 -887734626,Miguel-Angel Reyes-Varela,MEX,male,1987-06-21,1.74,74.0,tennis,0,0,0 -41587201,Miha Zarabec,SLO,male,1991-10-12,1.77,77.0,handball,0,0,0 -623311312,Mihael Zgank,SLO,male,1994-02-01,1.81,90.0,judo,0,0,0 -992573561,Mihaela Maevska,BUL,female,1990-10-04,1.72,53.0,gymnastics,0,0,1 -450996043,Mihaela Petrila,ROU,female,1991-05-07,1.9,74.0,rowing,0,0,1 -81613069,Mihai Nistor,ROU,male,1990-11-05,1.8,,boxing,0,0,0 -467928578,Mihail Anastasakis,GRE,male,1994-12-03,1.84,102.0,athletics,0,0,0 -752147956,Mihail Dudas,SRB,male,1989-11-01,1.84,85.0,athletics,0,0,0 -175275854,Mihail Krassilov,KAZ,male,1990-03-05,1.83,70.0,athletics,0,0,0 -4843017,Mihail Petrov Ganev,BUL,male,1985-01-05,1.72,92.0,wrestling,0,0,0 -369995646,Mihajlo Ceprkalo,BIH,male,1999-06-09,1.72,74.0,aquatics,0,0,0 -830196213,Miho Takahashi,JPN,female,1992-12-01,1.61,56.0,aquatics,0,0,0 -231091970,Miho Teramura,JPN,female,1994-09-27,1.65,53.0,aquatics,0,0,0 -569747933,Miho Yoshioka,JPN,female,1990-08-27,1.77,68.0,sailing,0,0,0 -218617298,Mihyun Park,KOR,female,1986-01-26,1.6,63.0,hockey,0,0,0 -659143143,Mijain Lopez Nunez,CUB,male,1982-08-20,1.98,130.0,wrestling,1,0,0 -427135506,Mika Kurihara,JPN,female,1989-05-14,1.76,68.0,basketball,0,0,0 -945541721,Mikael Appelgren,SWE,male,1989-09-06,1.91,103.0,handball,0,0,0 -629406000,Mikael Ishak,SWE,male,1993-03-31,1.84,74.0,football,0,0,0 -2710032,Mikaela Joslin Mayer,USA,female,1990-07-04,1.76,,boxing,0,0,0 -878544662,Mikalai Sharlap,BLR,male,1994-03-30,1.98,103.0,rowing,0,0,0 -166082362,Mike Dawson,NZL,male,1986-10-15,1.83,75.0,canoe,0,0,0 -281525534,Mike Hartfield,USA,male,1990-03-29,1.91,77.0,athletics,0,0,0 -302902046,Mike Hixon,USA,male,1994-07-16,1.73,68.0,aquatics,0,1,0 -999394723,Mike Mokamba Nyang'au,KEN,male,1994-08-28,1.7,70.0,athletics,0,0,0 -716059894,Mike Rodgers,USA,male,1985-04-24,1.76,80.0,athletics,0,0,0 -929371856,Mikel Schreuders,ARU,male,1998-09-21,1.89,90.0,aquatics,0,0,0 -627661082,Mikel Thomas,TTO,male,1987-11-23,1.7,79.0,athletics,0,0,0 -109189780,Mikhail Dauhaliavets,BLR,male,1990-05-18,1.77,,boxing,0,0,0 -217263774,Mikhail Dovgalyuk,RUS,male,1995-06-03,,,aquatics,0,0,0 -138028765,Mikhail Koudinov,NZL,male,1991-06-23,1.6,59.0,gymnastics,0,0,0 -666617738,Mikhail Kuznetsov,RUS,male,1985-05-14,1.71,72.0,canoe,0,0,0 -161664881,Mikhail Puliaev,RUS,male,1987-06-22,1.66,66.0,judo,0,0,0 -775068064,Miki Uchida,JPN,female,1995-02-21,1.73,62.0,aquatics,0,0,0 -861670470,Mikiko Andoh,JPN,female,1992-09-30,1.55,58.0,weightlifting,0,0,0 -832567924,Mikita Tsirkun,BLR,male,1997-03-24,1.84,72.0,sailing,0,0,0 -386269278,Mikita Tsmyh,BLR,male,1997-04-15,1.9,80.0,aquatics,0,0,0 -178113839,Mikkel Hansen,DEN,male,1987-10-22,1.96,98.0,handball,1,0,0 -342879718,Mikko Ilonen,FIN,male,1979-12-18,1.87,81.0,golf,0,0,0 -172389499,Miklos Cirjenics,HUN,male,1990-03-11,1.9,105.0,judo,0,0,0 -848330802,Miklos Srp,HUN,male,1993-03-06,2.0,83.0,athletics,0,0,0 -814553840,Miklos Tatrai,HUN,male,1986-09-19,1.83,96.0,shooting,0,0,0 -535398234,Miklos Ungvari,HUN,male,1980-10-15,1.76,76.0,judo,0,0,0 -518737451,Mikola Milchev,UKR,male,1967-11-03,1.8,80.0,shooting,0,0,0 -67855529,Mikolaj Burda,POL,male,1982-07-08,1.92,98.0,rowing,0,0,0 -220680579,Miku Tashiro,JPN,female,1994-04-07,1.63,63.0,judo,0,0,0 -817880722,Milad Beigi Harchegani,AZE,male,1991-03-01,1.97,80.0,taekwondo,0,0,1 -305207237,Milad Ebadipour Ghara H.,IRI,male,1993-10-17,1.96,78.0,volleyball,0,0,0 -825689633,Milagro Mena,CRC,female,1993-04-30,,,cycling,0,0,0 -588122554,Milan Aleksic,SRB,male,1986-05-13,1.93,96.0,aquatics,1,0,0 -34031810,Milan Macvan,SRB,male,1989-11-16,2.05,107.0,basketball,0,1,0 -994546507,Milan Ristic,SRB,male,1991-08-08,1.87,83.0,athletics,0,0,0 -812447465,Milan Trajkovic,CYP,male,1992-09-17,1.87,82.0,athletics,0,0,0 -39526304,Milana Dadasheva,RUS,female,1995-02-20,1.65,48.0,wrestling,0,0,0 -997943868,Milda Valciukaite,LTU,female,1994-05-24,1.76,66.0,rowing,0,0,1 -757771656,Mildrey Pineda,COL,female,1989-10-01,1.64,54.0,football,0,0,0 -816442333,Milena Raicevic,MNE,female,1990-03-12,1.77,71.0,handball,0,0,0 -627051763,Milena Rasic,SRB,female,1990-10-25,1.91,72.0,volleyball,0,1,0 -930041912,Milenko Sebic,SRB,male,1984-12-30,1.97,95.0,shooting,0,0,0 -162979267,Milenko Zoric,SRB,male,1989-04-02,1.79,73.0,canoe,0,1,0 -689604423,Miles Chamley-Watson,USA,male,1989-12-03,1.94,79.0,fencing,0,0,1 -669028913,Miles Ukaoma,NGR,male,1992-07-21,1.86,84.0,athletics,0,0,0 -696295930,Milica Dabovic,SRB,female,1982-02-16,1.73,63.0,basketball,0,0,1 -545251812,Milica Mandic,SRB,female,1991-12-06,1.8,72.0,taekwondo,0,0,0 -294142,Milica Starovic,SRB,female,1988-05-19,1.76,74.0,canoe,0,0,0 -939197606,Militsa Mircheva,BUL,female,1994-05-24,1.65,50.0,athletics,0,0,0 -745870544,Milivoj Dukic,MNE,male,1993-03-26,1.85,83.0,sailing,0,0,0 -263697348,Milko Olavi Tokola,FIN,male,1992-10-10,1.63,85.0,weightlifting,0,0,0 -806789845,Milly Clark,AUS,female,1989-03-01,,,athletics,0,0,0 -543042822,Milos Cuk,SRB,male,1990-12-21,1.91,91.0,aquatics,1,0,0 -824446870,Milos Scepanovic,MNE,male,1982-10-09,1.85,86.0,aquatics,0,0,0 -696058975,Milos Teodosic,SRB,male,1987-03-19,1.95,90.0,basketball,0,1,0 -434422235,Milos Vasic,SRB,male,1991-01-10,1.96,94.0,rowing,0,0,0 -619216736,Milosz Jankowski,POL,male,1990-01-17,1.93,70.0,rowing,0,0,0 -392630546,Miloud Rahmani,ALG,male,1982-12-30,1.78,62.0,athletics,0,0,0 -923155291,Miloud Rebiai,ALG,male,1993-12-12,1.7,65.0,football,0,0,0 -917223658,Miltiadis Tentoglou,GRE,male,1998-03-18,1.85,75.0,athletics,0,0,0 -939168667,Milutin Stefanovic,SRB,male,1985-01-23,1.8,74.0,shooting,0,0,0 -94698500,Mima Ito,JPN,female,2000-10-21,1.5,45.0,table tennis,0,0,1 -730531395,Mimi Belete,BRN,female,1988-06-09,1.69,56.0,athletics,0,0,0 -299491184,Mimi Nikolova Hristova,BUL,female,1993-07-19,1.63,58.0,wrestling,0,0,0 -956895312,Mimosa Jallow,FIN,female,1994-06-17,1.76,67.0,aquatics,0,0,0 -84728158,Min Zhang,CHN,female,1993-06-20,1.8,84.0,rowing,0,0,0 -879015845,Min Zhou,CHN,female,1997-12-16,1.72,64.0,aquatics,0,0,0 -682581945,Minami Itahashi,JPN,female,2000-01-28,1.5,47.0,aquatics,0,0,0 -454894249,Minami Shimizu,JPN,female,1993-07-14,1.58,53.0,hockey,0,0,0 -352623895,Mindaugas Griskonis,LTU,male,1986-01-17,1.9,92.0,rowing,0,1,0 -790457754,Mindaugas Kuzminskas,LTU,male,1989-10-19,2.04,100.0,basketball,0,0,0 -489620720,Ming Tai Chan,HKG,male,1995-01-30,1.75,60.0,athletics,0,0,0 -405125709,Ming-Yen Tsai,TPE,male,1996-01-07,1.67,63.0,judo,0,0,0 -44722504,Minggang Zhao,CHN,male,1988-05-30,1.85,,boxing,0,0,0 -142526569,Minhal Sohail,PAK,female,1995-01-03,1.59,63.0,shooting,0,0,0 -40888029,Minjee Lee,AUS,female,1996-05-27,1.65,60.0,golf,0,0,0 -695744582,Minjeong Kim,KOR,female,1988-08-08,1.79,95.0,judo,0,0,0 -55604401,Minjung Kim,KOR,female,1997-03-26,1.6,50.0,shooting,0,0,0 -353713812,Mink van der Weerden,NED,male,1988-10-19,1.78,83.0,hockey,0,0,0 -504800343,Minkyu Choi,KOR,male,1992-08-31,1.84,84.0,canoe,0,0,0 -995871061,Minna Nikkanen,FIN,female,1988-04-09,1.69,54.0,athletics,0,0,0 -215136501,Minsoo Park,KOR,male,1994-11-21,1.63,,gymnastics,0,0,0 -575636398,Minsu Kang,KOR,male,1986-03-31,1.73,76.0,shooting,0,0,0 -800631700,Mintae Kim,KOR,male,1993-11-26,1.87,78.0,football,0,0,0 -875570651,Minxia Wu,CHN,female,1985-11-10,1.67,53.0,aquatics,1,0,0 -989837218,Mio Yamanaka,JPN,female,1995-10-27,1.57,56.0,rugby sevens,0,0,0 -646593349,Mir Saeid Marouflakrani,IRI,male,1985-10-20,1.89,81.0,volleyball,0,0,0 -254218441,Mira Park,KOR,female,1987-04-20,1.73,66.0,handball,0,0,0 -793097599,Mira Potkonen,FIN,female,1980-11-17,1.65,,boxing,0,0,1 -700649053,Mirali Sharipov,UZB,male,1987-10-30,1.73,73.0,judo,0,0,0 -419020833,Miranda Ayim,CAN,female,1988-05-06,1.9,72.0,basketball,0,0,0 -329752486,Miranda Giambelli,AUS,female,1992-05-22,1.69,78.0,judo,0,0,0 -589013959,Miranda Melville,USA,female,1989-03-20,1.58,49.0,athletics,0,0,0 -539312354,Mirco Pruijser,NED,male,1989-08-11,1.94,87.0,hockey,0,0,0 -16778625,Mirco Scarantino,ITA,male,1995-01-16,1.66,56.0,weightlifting,0,0,0 -837308127,Mireia Belmonte Garcia,ESP,female,1990-11-10,1.7,59.0,aquatics,1,0,1 -146069322,Mirela Demireva,BUL,female,1989-09-28,1.8,58.0,athletics,0,1,0 -164294275,Miri Alatrash,PLE,female,1994-06-27,1.7,57.0,aquatics,0,0,0 -95824314,Miriam Casillas Garcia,ESP,female,1992-06-24,1.64,52.0,triathlon,0,0,0 -638255791,Miriam Nagl,BRA,female,1981-01-22,1.72,63.0,golf,0,0,0 -929012474,Miriam Welte,GER,female,1986-12-09,1.71,67.0,cycling,0,0,1 -1578040,Mirna Ortiz,GUA,female,1987-02-28,1.58,42.0,athletics,0,0,0 -232798946,Miro Bilan,CRO,male,1989-07-21,2.13,121.0,basketball,0,0,0 -69797437,Miroslav Kirchev,BUL,male,1990-06-12,1.86,78.0,canoe,0,0,0 -727165956,Miroslav Raduljica,SRB,male,1988-01-05,2.13,130.0,basketball,0,1,0 -702761980,Miroslav Vrastil,CZE,male,1982-10-17,1.84,83.0,rowing,0,0,0 -237763343,Miroslava Topinkova Knapkova,CZE,female,1980-09-19,1.81,72.0,rowing,0,0,0 -28185060,Miroslaw Zietarski,POL,male,1993-03-09,1.9,90.0,rowing,0,0,0 -508919033,Mirsamad Pourseyedigolakhour,IRI,male,1985-10-15,1.8,65.0,cycling,0,0,0 -515513440,Miryam Roper,GER,female,1982-06-26,1.65,59.0,judo,0,0,0 -824109825,Mirza Basic,BIH,male,1991-07-12,1.87,85.0,tennis,0,0,0 -401258599,Misael Uziel Rodriguez,MEX,male,1994-04-07,1.78,,boxing,0,0,1 -446490717,Misaki Doi,JPN,female,1991-04-29,1.59,52.0,tennis,0,0,0 -719250032,Misaki Matsutomo,JPN,female,1992-02-08,1.6,50.0,badminton,1,0,0 -387566065,Misaki Onishi,JPN,female,1985-02-24,1.64,46.0,athletics,0,0,0 -779502274,Misaki Yamaguchi,JPN,female,1990-01-20,1.65,60.0,aquatics,0,0,0 -958405399,Misato Nakamura,JPN,female,1989-04-28,1.57,52.0,judo,0,0,1 -355342299,Misha Aloian,RUS,male,1988-08-23,1.65,,boxing,0,1,0 -787920390,Misha Zilberman,ISR,male,1989-01-30,1.71,61.0,badminton,0,0,0 -460301568,Missy Franklin,USA,female,1995-05-10,1.88,77.0,aquatics,1,0,0 -240018946,Misun Choi,KOR,female,1996-07-01,1.68,53.0,archery,1,0,0 -396364855,Mitch Dielemans,NED,male,1993-01-06,1.86,75.0,archery,0,0,0 -858784147,Mitch Emery,AUS,male,1990-09-27,1.85,89.0,aquatics,0,0,0 -481579548,Mitchel Steenman,NED,male,1984-06-17,2.01,94.0,rowing,0,0,0 -852265607,Mitchell Iles-Crevatin,AUS,male,1999-03-25,1.78,,shooting,0,0,0 -248884983,Mitchell Larkin,AUS,male,1993-07-09,1.87,72.0,aquatics,0,1,1 -882242965,Mitko Tsenov,BUL,male,1993-06-13,1.85,65.0,athletics,0,0,0 -211027286,Mitsuaki Shiga,JPN,male,1991-09-16,1.77,75.0,aquatics,0,0,0 -478951301,Miyu Nagaoka,JPN,female,1991-07-25,1.79,68.0,volleyball,0,0,0 -267807948,Miyuki Nakagawa,JPN,female,1986-12-20,1.61,53.0,hockey,0,0,0 -224192302,Miyuki Uehara,JPN,female,1995-11-22,1.54,39.0,athletics,0,0,0 -238146440,Mladan JANOVIC,MNE,male,1984-06-11,1.8,97.0,aquatics,0,0,0 -803073046,Mo Zhang,CAN,female,1989-01-17,1.73,57.0,table tennis,0,0,0 -716769230,Moacir Zimmermann,BRA,male,1983-12-30,1.84,70.0,athletics,0,0,0 -177889659,Mobolade Ajomale,CAN,male,1995-08-31,1.8,62.0,athletics,0,0,1 -30183396,Moeko Nagaoka,JPN,female,1993-12-29,1.77,73.0,basketball,0,0,0 -446613849,Mohab Ishak,EGY,male,1997-03-21,1.72,68.0,aquatics,0,0,0 -810751335,Mohamad Kasem,SYR,male,1993-10-03,1.72,73.0,judo,0,0,0 -812147248,Mohamed Abdelaal,EGY,male,1990-07-23,1.75,81.0,judo,0,0,0 -597913544,Mohamed Abdeldjalil Bourguieg,ALG,male,1996-08-31,1.55,50.0,gymnastics,0,0,0 -836418464,Mohamed Alaa Hashem,EGY,male,1988-01-23,1.78,75.0,handball,0,0,0 -414844442,Mohamed Ali Bhar,TUN,male,1989-09-17,1.8,82.0,handball,0,0,0 -300150573,Mohamed Ali Mrabet,TUN,male,1990-01-01,1.82,84.0,canoe,0,0,0 -803678104,Mohamed Aly Zaghloul Mohamed,EGY,male,1993-08-31,1.65,86.0,wrestling,0,0,0 -583592517,Mohamed Amer,EGY,male,1997-12-18,1.99,80.0,fencing,0,0,0 -452585583,Mohamed Amer,EGY,male,1987-12-12,1.86,72.0,handball,0,0,0 -150604584,Mohamed Andhumdine Nazlati,COM,female,1997-12-20,1.6,62.0,aquatics,0,0,0 -148746639,Mohamed Arafet Naceur,TUN,male,1988-11-04,1.9,76.0,volleyball,0,0,0 -509599615,Mohamed Ayoub Ferjani,TUN,male,1986-07-27,1.75,75.0,fencing,0,0,0 -219235142,Mohamed Daud Mohamed,SOM,male,1996-03-01,,,athletics,0,0,0 -310689410,Mohamed Elhadi Elkawisah,LBA,male,1987-03-08,,,judo,0,0,0 -956253727,Mohamed Essam,EGY,male,1994-12-06,1.8,74.0,fencing,0,0,0 -302433626,Mohamed Farah,GBR,male,1983-03-23,1.75,58.0,athletics,2,0,0 -464902728,Mohamed Flissi,ALG,male,1990-02-13,1.74,,boxing,0,0,0 -662693282,Mohamed Hamout,MAR,male,1993-12-11,1.67,,boxing,0,0,0 -189738440,Mohamed Hamza,EGY,male,2000-09-11,1.72,62.0,fencing,0,0,0 -653185102,Mohamed Hesham Elbassiouny,EGY,male,1990-05-10,1.84,75.0,handball,0,0,0 -173845600,Mohamed Hrezi,LBA,male,1991-10-28,,,athletics,0,0,0 -53291565,Mohamed Hussein,EGY,male,1991-09-10,1.88,78.0,aquatics,0,0,0 -705810811,Mohamed Ibrahim Ramadan,EGY,male,1984-03-07,1.87,89.0,handball,0,0,0 -606398332,Mohamed Ismail Ibrahim,DJI,male,1997-01-01,1.7,63.0,athletics,0,0,0 -777542037,Mohamed Jilani Maaref,TUN,male,1991-10-27,1.92,100.0,handball,0,0,0 -438310446,Mohamed Lamine Dansoko,GUI,male,1998-03-15,1.81,78.0,athletics,0,0,0 -726944048,Mohamed Mahmoud,EGY,male,1989-11-21,1.65,77.0,weightlifting,0,0,1 -927181230,Mohamed Mamdouh Shebib,EGY,male,1989-04-01,1.86,85.0,handball,0,0,0 -608771921,Mohamed Masoud,EGY,male,1994-05-01,2.11,105.0,volleyball,0,0,0 -422177442,Mohamed Mohyeldin,EGY,male,1991-10-01,1.7,73.0,judo,0,0,0 -463171596,Mohamed Ramah,MAR,male,1986-01-02,1.86,102.0,shooting,0,0,0 -407211801,Mohamed Saadaoui,TUN,male,1995-05-11,1.76,86.0,wrestling,0,0,0 -109252911,Mohamed Sbihi,GBR,male,1988-03-27,2.02,110.0,rowing,1,0,0 -385884277,Mohamed Sghaier,TUN,male,1988-07-18,1.85,79.0,athletics,0,0,0 -645636204,Mohamed Soussi,TUN,male,1993-01-17,1.94,98.0,handball,0,0,0 -307662595,Mohamed Taieb,TUN,male,1996-10-15,1.87,73.0,rowing,0,0,0 -823399635,Mohamed Thakil,EGY,male,1986-07-12,1.84,71.0,volleyball,0,0,0 -514503427,Mohammad Ahsan,INA,male,1987-09-07,1.73,72.0,badminton,0,0,0 -653470021,Mohammad Arzandeh,IRI,male,1987-10-30,1.89,77.0,athletics,0,0,0 -855226703,Mohammad Mahfizur Rahman,BAN,male,1993-05-15,,,aquatics,0,0,0 -663027391,Mohammad Sanad,EGY,male,1991-01-16,1.84,78.0,handball,0,0,0 -289057786,Mohammad Tawfiq Bakhshi,AFG,male,1986-03-11,1.81,99.0,judo,0,0,0 -175246089,Mohammadjafar Moradi,IRI,male,1990-04-10,1.69,62.0,athletics,0,0,0 -545080658,Mohammadreza Barari,IRI,male,1988-03-31,1.8,105.0,weightlifting,0,0,0 -416345678,Mohammed Abukhousa,PLE,male,1992-12-30,,,athletics,0,0,0 -926792518,Mohammed Ahmed,CAN,male,1991-01-05,1.82,56.0,athletics,0,0,0 -404954189,Mohammed Al-Khafaji,IRQ,male,1994-02-20,1.81,75.0,rowing,0,0,0 -597431856,Mohammed Aman,ETH,male,1994-01-10,1.65,58.0,athletics,0,0,0 -690873472,Mohammed Amine Tayeb,ALG,male,1985-09-28,1.9,100.0,judo,0,0,0 -207078605,Mohammed Arjaoui,MAR,male,1987-06-06,1.86,,boxing,0,0,0 -955962862,Mohammed Benkablia,ALG,male,1993-02-02,1.8,72.0,football,0,0,0 -268626951,Mohammed Benkhemassa,ALG,male,1993-06-28,1.6,60.0,football,0,0,0 -963049864,Mohammed Hameed,IRQ,male,1993-01-24,1.85,75.0,football,0,0,0 -104121143,Mohammed Maan,IRQ,male,1994-07-10,1.85,78.0,football,0,0,0 -200493972,Mohammed Rabii,MAR,male,1993-07-13,1.8,,boxing,0,0,1 -984836225,Mohammed Rageh,YEM,male,1998-01-01,1.69,61.0,athletics,0,0,0 -106274200,Mohanad Abdulraheem,IRQ,male,1993-09-22,1.84,75.0,football,0,0,0 -582863169,Mohsen Al Duhaylib,KSA,male,1994-05-01,1.63,69.0,weightlifting,0,0,0 -412108690,Moises Daniel Hernandez Encarnacion,DOM,male,1993-03-22,1.91,79.0,taekwondo,0,0,0 -282645376,Moises Duque,BRA,male,1988-12-21,1.73,75.0,rugby sevens,0,0,0 -974378104,Mojtaba Abedini,IRI,male,1984-08-11,1.8,83.0,fencing,0,0,0 -790224130,Mojtaba Mirzajanpour M.,IRI,male,1991-10-07,2.05,88.0,volleyball,0,0,0 -421422970,Molly Goodman,AUS,female,1993-02-19,,,rowing,0,0,0 -942675571,Molly Hannis,USA,female,1992-03-13,1.71,70.0,aquatics,0,0,0 -509619259,Molly Huddle,USA,female,1984-08-31,1.66,48.0,athletics,0,0,0 -736619678,Molly Meech,NZL,female,1993-03-31,1.78,74.0,sailing,0,1,0 -770966520,Molly Renshaw,GBR,female,1996-05-06,1.76,66.0,aquatics,0,0,0 -146611617,Mona Shaito,LIB,female,1994-05-12,1.52,52.0,fencing,0,0,0 -330073847,Monica,BRA,female,1987-04-21,1.68,64.0,football,0,0,0 -465263667,Monica Aksamit,USA,female,1990-02-18,1.83,74.0,fencing,0,0,1 -2092982,Monica Brennan,AUS,female,1994-01-22,1.75,58.0,athletics,0,0,0 -964250913,Monica Lanz,NED,female,1991-04-08,1.8,70.0,rowing,0,0,0 -251342702,Monica Niculescu,ROU,female,1987-09-25,1.68,64.0,tennis,0,0,0 -839524352,Monica Patricia Dominguez Lara,MEX,female,1988-03-05,1.62,57.0,weightlifting,0,0,0 -9559634,Monica Pimentel Rodriguez,ARU,female,1989-01-07,1.71,49.0,taekwondo,0,0,0 -490158961,Monica Puig,PUR,female,1993-09-27,1.68,64.0,tennis,1,0,0 -335904579,Monica Ramirez Abella,AND,female,1993-12-27,1.7,55.0,aquatics,0,0,0 -31059637,Monica Rokhman,USA,female,1997-05-27,1.73,55.0,gymnastics,0,0,0 -292580115,Monica Sarai Arango Estrada,COL,female,1992-06-05,1.65,60.0,aquatics,0,0,0 -413592133,Monica Ungureanu,ROU,female,1988-01-09,1.64,48.0,judo,0,0,0 -364893024,Monica de Gennaro,ITA,female,1987-01-08,1.74,67.0,volleyball,0,0,0 -494339957,Monika,IND,female,1993-11-05,1.62,51.0,hockey,0,0,0 -560189163,Monika Brzostek,POL,female,1989-07-28,1.73,62.0,volleyball,0,0,0 -737506601,Monika Ciaciuch,POL,female,1992-05-10,1.82,74.0,rowing,0,0,1 -313838269,Monika Ewa Michalik,POL,female,1980-05-02,1.67,63.0,wrestling,0,0,1 -335727290,Monika Karsch,GER,female,1982-12-22,1.58,55.0,shooting,0,1,0 -216289131,Monika Stefanowicz,POL,female,1980-05-15,1.6,46.0,athletics,0,0,0 -138520050,Monika Vasilyan,ARM,female,1995-10-08,1.66,59.0,aquatics,0,0,0 -643397164,Monique Sullivan,CAN,female,1989-02-21,1.67,70.0,cycling,0,0,0 -256721799,Morad Zemouri,QAT,male,1993-03-03,1.73,73.0,judo,0,0,0 -288223126,Morales Silva,CUB,male,1996-02-08,1.8,81.0,judo,0,0,0 -42332624,Morea Baru,PNG,male,1990-04-15,1.62,62.0,weightlifting,0,0,0 -522289399,Morena Martinez Franchi,ARG,female,1993-02-19,1.64,62.0,volleyball,0,0,0 -629625273,Morgan Brian,USA,female,1993-02-26,1.7,56.0,football,0,0,0 -933274052,Morgan Craft,USA,female,1993-05-11,1.61,63.0,shooting,0,0,0 -539265571,Morgan Lake,GBR,female,1997-05-12,1.78,68.0,athletics,0,0,0 -678637275,Morgan Mitchell,AUS,female,1994-10-03,1.77,63.0,athletics,0,0,0 -776634450,Morgana Gmach,BRA,female,1994-06-17,1.59,44.0,gymnastics,0,0,0 -350635188,Morghan Whitney King,USA,female,1985-10-08,1.53,48.0,weightlifting,0,0,0 -249898083,Moritz Furste,GER,male,1984-10-28,1.9,89.0,hockey,0,0,1 -613123178,Moritz Milatz,GER,male,1982-06-24,1.73,65.0,cycling,0,0,0 -820494787,Moritz Moos,GER,male,1994-03-15,1.76,71.0,rowing,0,0,0 -354728238,Moritz Trompertz,GER,male,1995-09-21,1.8,76.0,hockey,0,0,1 -511776561,Moroke Jeremia Mokhotho,LES,male,1990-11-12,,,boxing,0,0,0 -177555215,Morolake Akinosun,USA,female,1994-05-17,1.63,60.0,athletics,1,0,0 -174861233,Morten Joergensen,DEN,male,1985-06-23,1.83,73.0,rowing,0,1,0 -981709933,Morten Olsen,DEN,male,1984-10-11,1.84,95.0,handball,1,0,0 -757235037,Moses Martin Kurong,UGA,male,1994-07-07,,,athletics,0,0,0 -305593512,Mosito Lehata,LES,male,1989-04-08,1.77,69.0,athletics,0,0,0 -775280640,Mostafa Sharifat,IRI,male,1987-09-16,2.04,85.0,volleyball,0,0,0 -648612446,Mostafa Smaili,MAR,male,1997-01-09,1.74,63.0,athletics,0,0,0 -164610408,Mothobi Mvala,RSA,male,1994-06-14,1.76,67.0,football,0,0,0 -906175629,Motomi Kawamura,JPN,female,1996-03-05,1.57,54.0,hockey,0,0,0 -853620753,Mouhssine Lahsaini,MAR,male,1985-08-23,1.84,77.0,cycling,0,0,0 -22631231,Mouma Das,IND,female,1984-02-24,1.49,47.0,table tennis,0,0,0 -61885653,Mpi Anauel Ngamissengue,CGO,male,1996-02-03,1.7,,boxing,0,0,0 -228902925,Mpumi Nyandeni,RSA,female,1987-08-19,1.62,50.0,football,0,0,0 -176457455,Muamer Tankovic,SWE,male,1995-02-22,1.8,70.0,football,0,0,0 -111349032,Muenfuh Sincere,NGR,male,1998-04-28,1.7,,football,0,0,1 -620003817,Muhamad Hasbi,INA,male,1992-07-12,1.58,62.0,weightlifting,0,0,0 -955910708,Muhammad Akmal Nor Hasrin,MAS,male,1995-07-15,1.8,74.0,archery,0,0,0 -545267756,Muhammad Ali,GBR,male,1996-06-20,1.73,,boxing,0,0,0 -758048391,Muhammad Halim,ISV,male,1986-10-26,1.91,82.0,athletics,0,0,0 -175347040,Muhammad Wijaya,INA,male,1996-08-22,1.71,70.0,archery,0,0,0 -864313645,Muhammed Anas Yahiya,IND,male,1994-09-17,1.77,69.0,athletics,0,0,0 -824855418,Muhao Li,CHN,male,1992-06-02,2.18,115.0,basketball,0,0,0 -137651650,Mujinga Kambundji,SUI,female,1992-06-17,1.68,65.0,athletics,0,0,0 -313782663,Mukhamadmurod Abdurakhmonov,TJK,male,1986-11-29,1.92,117.0,judo,0,0,0 -422893498,Mukhlid Alotaibi,KSA,male,1976-06-20,1.63,60.0,athletics,0,0,0 -933102788,Muktar Edris,ETH,male,1994-01-14,1.71,60.0,athletics,0,0,0 -501615561,Mulern Jean,HAI,female,1992-09-25,,,athletics,0,0,0 -752439313,Mulomowandau Mathoho,RSA,male,1990-03-01,1.78,75.0,football,0,0,0 -395323200,Mumin Gala,DJI,male,1986-09-06,1.85,70.0,athletics,0,0,0 -380366841,Muminjon Abdullaev,UZB,male,1989-12-24,1.9,130.0,wrestling,0,0,0 -700821397,Munkhzaya Bayartsogt,MGL,female,1993-10-10,1.6,43.0,athletics,0,0,0 -44840352,Munkhzaya Tsedevsuren,MGL,female,1986-06-13,1.65,65.0,judo,0,0,0 -242791485,Munkhzul Tsogbadrakh,MGL,female,1981-02-28,1.74,65.0,shooting,0,0,0 -703714683,Munyo Solomon Mutai,UGA,male,1992-10-22,,,athletics,0,0,0 -908231867,Murat Ramonov,KGZ,male,1990-07-21,1.92,120.0,wrestling,0,0,0 -241961956,Muriel Coneo,COL,female,1987-03-15,1.6,50.0,athletics,0,0,0 -845100767,Murielle Ahoure,CIV,female,1987-08-23,1.65,58.0,athletics,0,0,0 -313174082,Murilo Antonio Fischer,BRA,male,1979-06-16,1.7,68.0,cycling,0,0,0 -411476785,Murodjon Akhmadaliev,UZB,male,1994-11-02,1.65,,boxing,0,0,1 -534931107,Murphy Troy,USA,male,1989-05-31,2.02,99.0,volleyball,0,0,1 -294093955,Murray Stewart,AUS,male,1986-07-02,1.86,86.0,canoe,0,0,0 -774480033,Musa Hajdari,KOS,male,1987-10-11,1.87,74.0,athletics,0,0,0 -260677878,Musaeb Abdulrahman Balla,QAT,male,1989-03-19,1.85,65.0,athletics,0,0,0 -249810115,Musashi Suzuki,JPN,male,1994-02-11,1.85,75.0,football,0,0,0 -98192269,Mussa Chamaune,MOZ,male,1992-08-19,1.72,66.0,canoe,0,0,0 -315205581,Mustafa Alsaltialkrad,QAT,male,1987-03-16,1.86,90.0,handball,0,0,0 -759784132,Mustafa Kaya,TUR,male,1992-06-06,1.64,65.0,wrestling,0,0,0 -610760480,Mustafa Nadhim,IRQ,male,1993-09-23,1.82,75.0,football,0,0,0 -434308587,Mutaz Essa Barshim,QAT,male,1991-06-24,1.9,65.0,athletics,0,1,0 -963065622,Myeongjun Son,KOR,male,1994-01-17,1.81,62.0,athletics,0,0,0 -828123780,Myeongmok Han,KOR,male,1991-02-01,1.6,62.0,weightlifting,0,0,0 -94171394,Mykhailo Romanchuk,UKR,male,1996-08-07,1.9,82.0,aquatics,0,0,0 -462238804,Mykola Butsenko,UKR,male,1991-06-25,1.7,,boxing,0,0,0 -370313350,Mykyta Nesterenko,UKR,male,1991-04-15,2.08,120.0,athletics,0,0,0 -53536605,Mynhardt Mbeumuna Kawanivi,NAM,male,1984-03-03,1.78,59.0,athletics,0,0,0 -321314290,Myong Hyok Kim,PRK,male,1990-12-03,1.64,69.0,weightlifting,0,0,0 -450507588,Myong Suk Jong,PRK,female,1993-02-06,1.61,53.0,wrestling,0,0,0 -719432881,Myong Sun Ri,PRK,female,1992-01-26,1.63,53.0,table tennis,0,0,0 -985606742,Myriam Fatime Sylla,ITA,female,1995-01-08,1.84,80.0,volleyball,0,0,0 -530677071,Myrthe Schoot,NED,female,1988-08-29,1.83,70.0,volleyball,0,0,0 -143551773,Na Wang,CHN,female,1994-08-05,1.66,59.0,hockey,0,0,0 -834890793,Nacif Elias,LIB,male,1988-09-29,1.72,78.0,judo,0,0,0 -997747457,Nada Albedwawi,UAE,female,1997-08-15,1.62,53.0,aquatics,0,0,0 -829297928,Nada Arakji,QAT,female,1994-10-30,1.63,59.0,aquatics,0,0,0 -718461351,Nada Daabousova,SVK,female,1997-01-15,1.65,52.0,aquatics,0,0,0 -512802404,Nada Hafez,EGY,female,1997-08-28,1.68,58.0,fencing,0,0,0 -36934955,Nada Meawad,EGY,female,1998-04-12,1.8,71.0,volleyball,0,0,0 -704571555,Nada Saafan,EGY,female,1996-09-10,1.68,53.0,aquatics,0,0,0 -813043984,Nadeen El-Dawlatly,EGY,female,1993-06-22,1.62,54.0,table tennis,0,0,0 -494612343,Nadezhda Bazhina,RUS,female,1987-12-29,1.7,59.0,aquatics,0,0,0 -528001593,Nadezhda Glyzina,RUS,female,1988-05-20,1.75,68.0,aquatics,0,0,1 -139491644,Nadia Centoni,ITA,female,1981-06-19,1.82,63.0,volleyball,0,0,0 -895831974,Nadia Colhado,BRA,female,1989-02-25,1.94,88.0,basketball,0,0,0 -551473101,Nadia Negm,EGY,female,1998-07-23,1.7,69.0,rowing,0,0,0 -460024379,Nadiezda Zieba,POL,female,1984-05-21,1.72,64.0,badminton,0,0,0 -369509430,Nadiia Kichenok,UKR,female,1992-07-20,1.75,65.0,tennis,0,0,0 -313426980,Nadine Broersen,NED,female,1990-04-29,1.71,62.0,athletics,0,0,0 -938928683,Nadine Gonska,GER,female,1990-01-23,1.68,58.0,athletics,0,0,0 -520205566,Nadine Hildebrand,GER,female,1987-09-20,1.59,55.0,athletics,0,0,0 -3180101,Nadine Muller,GER,female,1985-11-21,1.93,94.0,athletics,0,0,0 -735909394,Nadine Visser,NED,female,1995-02-09,1.75,61.0,athletics,0,0,0 -774153676,Nadine Zumkehr,SUI,female,1985-02-05,1.72,65.0,volleyball,0,0,0 -963806165,Nadiya Borovska,UKR,female,1981-02-25,1.63,50.0,athletics,0,0,0 -228904239,Nadiya Dusanova,UZB,female,1987-11-17,1.74,56.0,athletics,0,0,0 -688425243,Nadja Horwitz,CHI,female,1996-03-10,1.66,58.0,sailing,0,0,0 -271635042,Nadja Pries,GER,female,1994-05-20,1.61,56.0,cycling,0,0,0 -322606304,Nadzeya Liapeshka,BLR,female,1989-04-26,1.72,67.0,canoe,0,0,1 -799009112,Nafissatou Thiam,BEL,female,1994-08-19,1.87,72.0,athletics,1,0,0 -523471843,Nagisa Hayashi,JPN,female,1986-08-29,1.65,58.0,hockey,0,0,0 -848586988,Naho Miyoshi,JPN,female,1993-12-21,1.65,62.0,basketball,0,0,0 -742568072,Naiara Egozkue,ESP,female,1983-10-21,1.73,70.0,handball,0,0,0 -701395318,Naima Bakkal,MAR,female,1990-08-28,1.7,57.0,taekwondo,0,0,0 -692114409,Naing Soe Yan,MYA,male,1979-01-31,1.8,98.0,judo,0,0,0 -276705406,Naito Ehara,JPN,male,1993-07-30,1.72,59.0,aquatics,0,0,1 -397860366,Najima Parveen,PAK,female,1990-12-20,,,athletics,0,0,0 -787936059,Najmeh Khedmati,IRI,female,1996-06-09,1.59,64.0,shooting,0,0,0 -414759552,Namakoe Nkhasi,LES,male,1993-01-10,,,athletics,0,0,0 -910960289,Namika Matsumoto,JPN,female,1992-02-07,1.58,63.0,weightlifting,0,0,0 -539278913,Namita Toppo,IND,female,1995-06-04,1.63,53.0,hockey,0,0,0 -921608416,Nan Chen,CHN,female,1983-01-08,1.95,94.0,basketball,0,0,0 -131634277,Nan Zhang,CHN,male,1990-03-01,1.83,75.0,badminton,1,0,1 -817788274,Nancy Chepkwemoi,KEN,female,1993-10-08,1.21,47.0,athletics,0,0,0 -533602756,Nandinzaya Gankhuyag,MGL,female,1994-06-27,1.55,56.0,shooting,0,0,0 -641363235,Nando De Colo,FRA,male,1987-06-23,1.96,90.0,basketball,0,0,0 -209921871,Nanna Koerstz Madsen,DEN,female,1994-10-23,1.71,67.0,golf,0,0,0 -634283561,Nanna Vainio,FIN,female,1991-05-29,1.7,60.0,badminton,0,0,0 -679632915,Nanthana Komwong,THA,female,1980-09-13,1.59,54.0,table tennis,0,0,0 -95609257,Nao Hibino,JPN,female,1994-11-28,1.63,58.0,tennis,0,0,0 -415843643,Naohisa Takato,JPN,male,1993-05-30,1.6,60.0,judo,0,0,1 -30264154,Naoko Ishihara,JPN,female,1974-10-22,1.57,64.0,shooting,0,0,0 -834851644,Naomi Flood,AUS,female,1986-04-17,1.75,,canoe,0,0,0 -807036162,Naomi Folkard,GBR,female,1983-09-18,1.69,76.0,archery,0,0,0 -268877038,Naomi Ruele,BOT,female,1997-01-13,,,aquatics,0,0,0 -217475768,Naomi Sedney,NED,female,1994-12-17,1.7,65.0,athletics,0,0,0 -937919946,Naomi van As,NED,female,1983-07-26,1.79,63.0,hockey,0,1,0 -827667838,Naomichi Ueda,JPN,male,1994-10-24,1.86,77.0,football,0,0,0 -230104226,Naomy Grand Pierre,HAI,female,1997-04-16,,,aquatics,0,0,0 -486171475,Naoya Okada,JPN,male,1990-10-10,1.85,70.0,shooting,0,0,0 -298380237,Napis Tortungpanich,THA,male,1995-03-29,1.74,56.0,shooting,0,0,0 -676294284,Naranjargal Tsend-Ayush,MGL,female,1992-01-27,1.75,70.0,judo,0,0,0 -772765503,Narcis Stefan Mihaila,ROU,male,1987-08-04,1.83,73.0,athletics,0,0,0 -871545516,Narcisa Landazuri,ECU,female,1991-06-13,1.66,55.0,athletics,0,0,0 -435983396,Nareg Guregian,USA,male,1989-01-20,1.96,97.0,rowing,0,0,0 -188253954,Narek Abgaryan,ARM,male,1992-01-06,1.66,,boxing,0,0,0 -302411064,Nariman Aly,EGY,female,1998-09-29,1.69,55.0,aquatics,0,0,0 -345522636,Narsingh Pancham Yadav,IND,male,1989-08-06,1.67,74.0,wrestling,0,0,0 -113824084,Nary Ly,CAM,female,1972-06-06,1.6,55.0,athletics,0,0,0 -238115739,Naryury Alexandra Perez Reveron,VEN,female,1992-09-29,1.68,100.0,weightlifting,0,0,0 -342677534,Nasanburmaa Ochirbat,MGL,female,1989-04-14,1.66,69.0,wrestling,0,0,0 -520381146,Nasreddine Megdich,QAT,male,1991-08-29,1.79,80.0,handball,0,0,0 -142174350,Nasser Al-Attiya,QAT,male,1970-12-21,1.78,82.0,shooting,0,0,0 -295414413,Nastassia Ivanova,BLR,female,1982-11-04,1.62,50.0,athletics,0,0,0 -244608144,Nastassia Yatsevich,BLR,female,1985-01-18,1.58,48.0,athletics,0,0,0 -442261024,Natalia Alfaro,CRC,female,1987-04-08,1.65,62.0,volleyball,0,0,0 -945555989,Natalia Duco,CHI,female,1989-01-31,1.77,100.0,athletics,0,0,0 -501264763,Natalia Gaitan,COL,female,1991-04-03,1.64,56.0,football,0,0,0 -29258479,Natalia Gaudio,BRA,female,1992-12-18,1.7,55.0,gymnastics,0,0,0 -102725469,Natalia Ishchenko,RUS,female,1986-04-08,1.77,56.0,aquatics,2,0,0 -508230574,Natalia Kuziutina,RUS,female,1989-05-08,1.6,52.0,judo,0,0,1 -131987947,Natalia Lovtcova,RUS,female,1988-04-14,,,aquatics,0,0,0 -482560028,Natalia Luccas,BRA,female,1996-09-13,1.67,63.0,aquatics,0,0,0 -91982471,Natalia Madaj,POL,female,1988-01-25,1.75,68.0,rowing,1,0,0 -934592033,Natalia Maria Bernardo,ANG,female,1986-12-25,1.7,65.0,handball,0,0,0 -260798105,Natalia Pacierpnik,POL,female,1988-08-14,1.69,58.0,canoe,0,0,0 -354025336,Natalia Partyka,POL,female,1989-07-27,1.73,64.0,table tennis,0,0,0 -121155817,Natalia Pereira,BRA,female,1989-04-04,1.84,76.0,volleyball,0,0,0 -53814036,Natalia Perminova,RUS,female,1991-11-14,1.64,55.0,badminton,0,0,0 -281240211,Natalia Pohrebniak,UKR,female,1988-02-19,1.71,63.0,athletics,0,0,0 -290312104,Natalia Priscepa,MDA,female,1989-10-17,1.68,74.0,weightlifting,0,0,0 -228374480,Natalia Romero,CHI,female,1980-02-26,1.63,57.0,athletics,0,0,0 -496598838,Natalia Rutkowska,POL,female,1991-01-21,1.62,56.0,cycling,0,0,0 -930260254,Natalia Sanchez,COL,female,1983-05-20,1.66,63.0,archery,0,0,0 -335301565,Natalia Semenova,UKR,female,1982-07-07,1.78,75.0,athletics,0,0,0 -868843791,Natalia Stratulat,MDA,female,1987-07-24,1.78,83.0,athletics,0,0,0 -681645907,Natalia Valentin,PUR,female,1989-09-12,1.7,61.0,volleyball,0,0,0 -233616560,Natalia Vorobeva,RUS,female,1991-05-27,1.74,69.0,wrestling,0,1,0 -104900032,Natalie Achonwa,CAN,female,1992-11-22,1.9,86.0,basketball,0,0,0 -501589607,Natalie Burton,AUS,female,1989-03-23,1.94,76.0,basketball,0,0,0 -325204288,Natalie Hermann,GER,female,1999-08-27,1.7,54.0,gymnastics,0,0,0 -235612415,Natalie Mastracci,CAN,female,1989-06-05,1.78,75.0,rowing,0,0,0 -243599235,Natalie Mc Giffert,USA,female,1997-03-14,1.61,43.0,gymnastics,0,0,0 -783121274,Natalie Powell,GBR,female,1990-10-16,1.75,77.0,judo,0,0,0 -469016028,Natalie Rooney,NZL,female,1988-06-01,1.81,95.0,shooting,0,1,0 -36343721,Nataliia Lupu,UKR,female,1987-11-04,1.75,60.0,athletics,0,0,0 -152619271,Nataliia Moskvina,UKR,female,1988-06-09,1.67,55.0,gymnastics,0,0,0 -417902852,Nataliia Pryshchepa,UKR,female,1994-09-11,1.63,48.0,athletics,0,0,0 -184555664,Nataliya Goncharova,RUS,female,1989-06-01,1.94,75.0,volleyball,0,0,0 -716355288,Nataliya Lehonkova,UKR,female,1982-12-27,1.61,48.0,athletics,0,0,0 -76086422,Nataliya Strohova,UKR,female,1992-12-26,1.69,65.0,athletics,0,0,0 -460143342,Nataliya Trafimava,BLR,female,1979-06-16,1.84,75.0,basketball,0,0,0 -383133261,Nataliya Zolotukhina,UKR,female,1985-01-04,1.8,87.0,athletics,0,0,0 -395541735,Natallia Kalnysh,UKR,female,1974-07-02,1.67,80.0,shooting,0,0,0 -326138845,Natallia Viatkina,BLR,female,1987-02-10,1.76,58.0,athletics,0,0,0 -972532499,Nataly Arias,COL,female,1986-04-02,1.72,64.0,football,0,0,0 -546626523,Nataly Michel,MEX,female,1990-07-09,1.71,62.0,fencing,0,0,0 -200672327,Natalya Asanova,UZB,female,1989-11-29,1.77,58.0,athletics,0,0,0 -189952338,Natalya Coyle,IRL,female,1990-12-11,1.7,60.0,modern pentathlon,0,0,0 -987315393,Natalya Sergeyeva,KAZ,female,1976-05-03,1.64,64.0,canoe,0,0,0 -975725248,Natalya Sinishin,AZE,female,1985-07-03,1.6,58.0,wrestling,0,0,1 -979223655,Natan Wegrzycki-Szymczyk,POL,male,1995-01-05,2.02,92.0,rowing,0,0,0 -928811908,Natasa Douchev-Janic,HUN,female,1982-06-24,1.74,68.0,canoe,0,0,0 -143252275,Natasha Hansen,NZL,female,1989-11-15,1.67,66.0,cycling,0,0,0 -306128745,Natasha Hastings,USA,female,1986-07-23,1.73,68.0,athletics,1,0,0 -161924940,Natasha Hunt,GBR,female,1989-03-21,1.65,62.0,rugby sevens,0,0,0 -566498103,Natasha Watcham-Roy,CAN,female,1992-04-28,1.7,67.0,rugby sevens,0,0,1 -71025804,Natasha Wodak,CAN,female,1981-12-17,1.6,47.0,athletics,0,0,0 -378410191,Nate Ebner,USA,male,1988-12-14,1.86,97.0,rugby sevens,0,0,0 -306477924,Nathalie Brugger,SUI,female,1985-12-25,1.74,69.0,sailing,0,0,0 -925043937,Nathalie Hagman,SWE,female,1991-07-19,1.67,62.0,handball,0,0,0 -238114237,Nathalie Moellhausen,BRA,female,1985-12-01,1.77,63.0,fencing,0,0,0 -146755228,Nathalie Nicole Viviane Marchino Urrutia,COL,female,1981-07-27,1.7,63.0,rugby sevens,0,0,0 -776128059,Nathan Adrian,USA,male,1988-12-07,1.99,102.0,aquatics,2,0,2 -934643545,Nathan Bailey,GBR,male,1993-07-24,1.78,71.0,gymnastics,0,0,0 -236734803,Nathan Brannen,CAN,male,1982-09-08,1.74,58.0,athletics,0,0,0 -440261722,Nathan Byukusenge,RWA,male,1980-08-08,,,cycling,0,0,0 -364644327,Nathan Flannery,NZL,male,1992-10-22,1.89,85.0,rowing,0,0,0 -532748337,Nathan Hart,AUS,male,1993-03-04,1.8,90.0,cycling,0,0,0 -880935011,Nathan Katz,AUS,male,1995-01-17,1.75,66.0,judo,0,0,0 -628333432,Nathan Outteridge,AUS,male,1986-01-28,1.79,75.0,sailing,0,1,0 -874878988,Nathan Schrimsher,USA,male,1992-05-22,1.88,78.0,modern pentathlon,0,0,0 -920855247,Nathon Allen,JAM,male,1995-10-28,,,athletics,0,1,0 -600380333,Natoya Goule,JAM,female,1991-03-30,1.52,57.0,athletics,0,0,0 -379684120,Natsumi Hoshi,JPN,female,1990-08-21,1.64,56.0,aquatics,0,0,1 -354644354,Natsumi Sakai,JPN,female,2001-06-19,1.72,58.0,aquatics,0,0,0 -626206435,Natsumi Tomonaga,JPN,female,1991-08-22,1.69,53.0,modern pentathlon,0,0,0 -507079558,Natthanan Junkrajang,THA,female,1986-04-13,1.66,57.0,aquatics,0,0,0 -585986660,Natthaphong Phonoppharat,THA,male,1988-05-16,1.77,72.0,sailing,0,0,0 -897039475,Natthaya Thanaronnawat,THA,female,1979-06-12,1.58,47.0,athletics,0,0,0 -521469837,Nauraj Singh Randhawa,MAS,male,1992-01-27,1.93,70.0,athletics,0,0,0 -383442577,Navjot Kaur,IND,female,1995-03-07,1.67,53.0,hockey,0,0,0 -848372593,Nayo Raincock-Ekunwe,CAN,female,1991-08-29,1.87,75.0,basketball,0,0,0 -797214230,Nazar Kovalenko,UKR,male,1987-02-09,1.77,68.0,athletics,0,0,0 -703930419,Nazik Avdalyan,ARM,female,1986-10-31,1.57,69.0,weightlifting,0,0,0 -613585930,Nazim Babayev,AZE,male,1997-10-08,1.87,74.0,athletics,0,0,0 -167982830,Nazli Donertas,TUR,female,1991-03-01,1.73,69.0,sailing,0,0,0 -328956324,Ndifreke Udo,NGR,male,1998-08-15,1.73,,football,0,0,1 -467504641,Nebiat Habtemariam,ERI,female,1978-12-29,,,athletics,0,0,0 -932895136,Nebojsa Grujic,SRB,male,1991-03-21,1.81,83.0,canoe,0,0,0 -213347925,Ned Justeen Azemia,SEY,male,1997-08-21,1.77,65.0,athletics,0,0,0 -393863560,Neda Shahsavari,IRI,female,1986-09-21,1.67,62.0,table tennis,0,0,0 -218738861,Nehal Saafan,EGY,female,1996-09-10,1.64,49.0,aquatics,0,0,0 -824920979,Neide Marisa de P. Barbosa,ANG,female,1980-09-23,1.8,87.0,handball,0,0,0 -229071441,Neisi Patricia Dajomes Barrera,ECU,female,1998-05-12,1.67,69.0,weightlifting,0,0,0 -868834976,Nekoda Smythe-Davis,GBR,female,1993-04-22,1.57,60.0,judo,0,0,0 -19709330,Neli Alberto,ESP,female,1983-07-02,1.79,90.0,handball,0,0,0 -251197905,Nelia Martins,TLS,female,1998-07-09,1.5,,athletics,0,0,0 -741011271,Nelson Evora,POR,male,1984-04-20,1.83,76.0,athletics,0,0,0 -526118539,Nelson Filipe Santos Simoes Oliveira,POR,male,1989-03-06,1.8,67.0,cycling,0,0,0 -454620893,Nelson Kipkosgei Cherutich,BRN,male,1993-03-09,1.7,60.0,athletics,0,0,0 -618007323,Nemanja Nedovic,SRB,male,1991-06-16,1.91,90.0,basketball,0,1,0 -761172837,Nenad Bedik,SRB,male,1989-04-14,2.02,96.0,rowing,0,0,0 -706411745,Nenad Filipovic,SRB,male,1978-10-05,1.82,74.0,athletics,0,0,0 -840921480,Nenad Zimonjic,SRB,male,1976-06-04,1.92,90.0,tennis,0,0,0 -188152707,Nene Hilario,BRA,male,1982-09-13,2.11,113.0,basketball,0,0,0 -838940374,Nercely Soto,VEN,female,1990-08-23,1.69,55.0,athletics,0,0,0 -41640598,Nerea Pena,ESP,female,1989-12-13,1.75,70.0,handball,0,0,0 -967371534,Neringa Aidietyte,LTU,female,1983-06-05,1.77,60.0,athletics,0,0,0 -459454489,Nery Brenes,CRC,male,1985-09-25,1.75,70.0,athletics,0,0,0 -274922701,Nestor Abad,ESP,male,1993-03-29,1.67,64.0,gymnastics,0,0,0 -358214485,Nestor Colmenares,VEN,male,1987-09-05,2.03,110.0,basketball,0,0,0 -662467395,Nestor Colonia,PHI,male,1992-02-16,1.58,55.0,weightlifting,0,0,0 -628099211,Nestor Nielsen van Hoff,URU,male,1972-11-13,1.81,83.0,equestrian,0,0,0 -321378771,Nestor Orellana,MEX,male,1992-01-07,1.92,84.0,volleyball,0,0,0 -406378010,Neta Rivkin,ISR,female,1991-06-19,1.7,50.0,gymnastics,0,0,0 -536696599,Nethaneel Mitchell-Blake,GBR,male,1994-04-02,1.87,86.0,athletics,0,0,0 -738180656,Nevena Jovanovic,SRB,female,1990-06-30,1.79,72.0,basketball,0,0,1 -892604107,Neviana Vladinova,BUL,female,1994-02-23,1.66,47.0,gymnastics,0,0,0 -255428335,Nevriye Yilmaz,TUR,female,1980-06-16,1.92,85.0,basketball,0,0,0 -780066644,Neymar,BRA,male,1992-02-05,1.74,68.0,football,1,0,0 -243033574,Nezir Karap,TUR,male,1994-01-02,1.74,74.0,aquatics,0,0,0 -708788077,Ngoc Tu Van,VIE,female,1987-08-11,1.58,46.0,judo,0,0,0 -350682364,Nguse Amlosom,ERI,male,1986-11-10,1.8,56.0,athletics,0,0,0 -978016075,Ni Yan,CHN,female,1987-03-02,1.92,74.0,volleyball,1,0,0 -294595887,Nia Ali,USA,female,1988-10-23,1.68,64.0,athletics,0,1,0 -806128359,Niall Williams,NZL,female,1988-04-21,1.73,74.0,rugby sevens,0,1,0 -959123687,Nic Woods,NZL,male,1995-08-26,1.8,90.0,hockey,0,0,0 -487583469,Niccolo Campriani,ITA,male,1987-11-06,1.77,80.0,shooting,2,0,0 -81940931,Niccolo' Gitto,ITA,male,1986-10-12,1.9,90.0,aquatics,0,0,1 -284825190,Nichelle Prince,CAN,female,1995-02-19,1.63,65.0,football,0,0,1 -832227468,Nicholas Delpopolo,USA,male,1989-02-08,1.73,77.0,judo,0,0,0 -451660058,Nicholas Hoag,CAN,male,1992-08-19,2.0,91.0,volleyball,0,0,0 -617073971,Nicholas Kiplagat Bett,KEN,male,1990-01-27,1.9,75.0,athletics,0,0,0 -550972021,Nicholas Long,USA,male,1989-10-06,1.88,86.0,cycling,0,0,0 -48265252,Nicholas Lucena,USA,male,1979-09-22,1.86,83.0,volleyball,0,0,0 -446810551,Nicholas Magana,PER,male,1996-06-18,1.98,90.0,aquatics,0,0,0 -186990387,Nicholas Presciutti,ITA,male,1993-12-14,1.89,93.0,aquatics,0,0,1 -411471821,Nicholas Quinn,IRL,male,1993-06-03,1.85,78.0,aquatics,0,0,0 -475985515,Nicholas Scarvelis,GRE,male,1993-02-02,1.86,125.0,athletics,0,0,0 -373381796,Nicholas Willis,NZL,male,1983-04-25,1.83,68.0,athletics,0,0,1 -624024995,Nick Dempsey,GBR,male,1980-08-13,1.8,71.0,sailing,0,1,0 -779437440,Nick Haig,NZL,male,1987-03-12,1.8,82.0,hockey,0,0,0 -572455894,Nick Malouf,AUS,male,1993-03-19,1.86,92.0,rugby sevens,0,0,0 -253306509,Nick Miller,GBR,male,1993-05-01,1.88,112.0,athletics,0,0,0 -764396400,Nick Skelton,GBR,male,1957-12-30,1.75,76.0,equestrian,1,0,0 -319742600,Nick Thompson,GBR,male,1986-05-05,1.79,80.0,sailing,0,0,0 -743923874,Nick Wilson,NZL,male,1990-08-06,1.8,81.0,hockey,0,0,0 -683971980,Nickel Ashmeade,JAM,male,1990-04-07,1.85,88.0,athletics,1,0,0 -317250144,Nickel Chand,FIJ,male,1995-07-28,1.67,60.0,football,0,0,0 -982320885,Nickiesha Wilson,JAM,female,1986-07-28,1.74,66.0,athletics,0,0,0 -129717034,Nickolas Catlin,GBR,male,1989-04-08,1.75,76.0,hockey,0,0,0 -891765771,Nicky Samuels,NZL,female,1983-02-28,1.7,56.0,triathlon,0,0,0 -427041039,Nicky van Leuveren,NED,female,1990-05-20,1.75,58.0,athletics,0,0,0 -199818017,Nico Delle-Karth,AUT,male,1984-01-21,1.8,74.0,sailing,0,0,0 -134647499,Nico Miguel Hernandez,USA,male,1996-01-04,1.66,,boxing,0,0,1 -28175452,Nico Mueller,GER,male,1993-11-02,1.68,77.0,weightlifting,0,0,0 -988453095,Nico Stahlberg,SUI,male,1991-11-15,1.92,95.0,rowing,0,0,0 -570863288,Nicol Ruprecht,AUT,female,1992-10-02,1.7,55.0,gymnastics,0,0,0 -410663669,Nicola Adams,GBR,female,1982-10-26,1.64,,boxing,1,0,0 -410776755,Nicola Groves,GBR,female,1989-04-04,1.68,63.0,sailing,0,0,0 -128217086,Nicola Muscat,MLT,female,1994-06-25,1.73,59.0,aquatics,0,0,0 -486899362,Nicola Philippaerts,BEL,male,1993-07-30,1.86,76.0,equestrian,0,0,0 -126244906,Nicola Ripamonti,ITA,male,1990-01-11,1.78,81.0,canoe,0,0,0 -332129646,Nicola Spirig Hug,SUI,female,1982-02-07,1.66,54.0,triathlon,0,1,0 -334459836,Nicola White,GBR,female,1988-01-20,1.72,65.0,hockey,1,0,0 -947910094,Nicola Zagame,AUS,female,1990-08-11,1.74,72.0,aquatics,0,0,0 -168904848,Nicolae-Alexandru Soare,ROU,male,1991-09-20,1.68,59.0,athletics,0,0,0 -302102692,Nicolai Brock-Madsen,DEN,male,1993-01-09,1.94,88.0,football,0,0,0 -730590153,Nicolai Ceban,MDA,male,1986-03-30,1.86,96.0,wrestling,0,0,0 -652169057,Nicolai Poulsen,DEN,male,1993-08-15,1.77,65.0,football,0,0,0 -860019279,Nicolas Batum,FRA,male,1988-12-14,2.03,105.0,basketball,0,0,0 -74210449,Nicolas Bruno,ARG,male,1989-02-24,1.87,85.0,volleyball,0,0,0 -388271463,Nicolas Brussino,ARG,male,1993-03-02,2.0,84.0,basketball,0,0,0 -582760864,Nicolas Bruzzone,ARG,male,1985-10-24,1.68,76.0,rugby sevens,0,0,0 -708871411,Nicolas Colsaerts,BEL,male,1982-11-14,1.88,75.0,golf,0,0,0 -768215755,Nicolas Cordoba,ARG,male,1989-11-20,1.65,71.0,gymnastics,0,0,0 -162021826,Nicolas Cuestas,URU,male,1986-12-08,1.8,63.0,athletics,0,0,0 -153786575,Nicolas D'Oriano,FRA,male,1997-05-05,1.75,68.0,aquatics,0,0,0 -997930388,Nicolas Ferreira,BRA,male,1992-09-25,1.85,84.0,fencing,0,0,0 -715985574,Nicolas Jacobi,GER,male,1987-04-13,1.93,95.0,hockey,0,0,1 -164743566,Nicolas Laprovittola,ARG,male,1990-01-31,1.93,88.0,basketball,0,0,0 -727420830,Nicolas Lionel Wettstein,ECU,male,1981-03-30,1.71,71.0,equestrian,0,0,0 -433876140,Nicolas Mahut,FRA,male,1982-01-21,1.9,82.0,tennis,0,0,0 -148338040,Nicolas Marechal,FRA,male,1987-03-04,1.98,93.0,volleyball,0,0,0 -586116656,Nicolas Martin Tripichio,ARG,male,1996-01-05,1.71,71.0,football,0,0,0 -27749600,Nicolas Nilo,BRA,male,1987-08-04,1.95,92.0,aquatics,0,0,0 -213136925,Nicolas Pratt,CAN,male,1985-07-10,1.83,72.0,rowing,0,0,0 -238155568,Nicolas Roche,IRL,male,1984-07-03,1.78,70.0,cycling,0,0,0 -797725236,Nicolas Touzaint,FRA,male,1980-05-10,1.75,62.0,equestrian,0,0,0 -228429250,Nicolas le Goff,FRA,male,1992-02-15,2.06,115.0,volleyball,0,0,0 -328461296,Nicole Acevedo,COL,female,1994-10-15,1.66,70.0,rugby sevens,0,0,0 -385843788,Nicole Ahsinger,USA,female,1998-05-12,1.63,58.0,gymnastics,0,0,0 -951251683,Nicole Beck,AUS,female,1988-05-28,1.68,66.0,rugby sevens,1,0,0 -773243020,Nicole Beukers,NED,female,1990-10-07,1.7,66.0,rowing,0,1,0 -87221734,Nicole Broch Larsen,DEN,female,1993-05-14,1.79,75.0,golf,0,0,0 -933579518,Nicole Buchler,SUI,female,1983-12-17,1.62,54.0,athletics,0,0,0 -982976366,Nicole Hare,CAN,female,1994-07-26,1.77,76.0,rowing,0,0,0 -25839351,Nicole Laird,AUS,female,1993-02-18,1.91,75.0,volleyball,0,0,0 -166434763,Nicole Regnier,COL,female,1995-02-28,1.7,62.0,football,0,0,0 -297449748,Nicole Sifuentes,CAN,female,1986-06-30,1.77,55.0,athletics,0,0,0 -543974028,Nicole van der Velden,ARU,female,1994-10-26,1.68,62.0,sailing,0,0,0 -853691804,Nida Ustundag,TUR,female,1996-10-21,1.79,69.0,aquatics,0,0,0 -681034829,Niek Kimmann,NED,male,1996-05-20,1.89,90.0,cycling,0,0,0 -768436561,Nien-Chin Chen,TPE,female,1997-05-10,1.69,,boxing,0,0,0 -450335121,Nigel Levine,GBR,male,1989-04-30,1.76,72.0,athletics,0,0,0 -970010589,Nigel Paul,TTO,male,1989-06-27,1.94,,boxing,0,0,0 -481034512,Nigina Sharipova,UZB,female,1995-08-10,,,athletics,0,0,0 -318020679,Nigora Tursunkulova,UZB,female,1999-04-04,1.81,67.0,taekwondo,0,0,0 -4669727,Nihel Cheikh Rouhou,TUN,female,1987-01-05,1.64,78.0,judo,0,0,0 -702207367,Nijat Rahimov,KAZ,male,1993-08-13,1.76,76.0,weightlifting,1,0,0 -17860991,Nijat Shikhalizada,AZE,male,1988-10-12,1.64,66.0,judo,0,0,0 -872456959,Nijel Amos,BOT,male,1994-03-15,1.79,60.0,athletics,0,0,0 -964306539,Nik Henigman,SLO,male,1995-12-04,1.99,95.0,handball,0,0,0 -88815979,Nike Lorenz,GER,female,1997-03-12,1.7,69.0,hockey,0,0,1 -528950819,Nikita Glasnovic,SWE,female,1995-01-17,1.75,57.0,taekwondo,0,0,0 -318898453,Nikita Liamin,RUS,male,1985-10-14,2.04,90.0,volleyball,0,0,0 -805742930,Nikita Lobintsev,RUS,male,1988-11-21,,,aquatics,0,0,0 -358430642,Nikita Morgachev,RUS,male,1981-05-03,1.96,98.0,rowing,0,0,0 -405340018,Nikita Nagornyy,RUS,male,1997-02-12,1.66,67.0,gymnastics,0,1,0 -407904416,Nikita Pablo,AUS,female,1995-01-08,1.68,63.0,aquatics,0,0,0 -564650240,Nikita Rafalovich,UZB,male,1993-10-10,1.9,78.0,taekwondo,0,0,0 -491633637,Nikita Shleikher,RUS,male,1998-06-10,1.68,66.0,aquatics,0,0,0 -250399527,Nikita Shurshin,RUS,male,1993-04-08,1.92,96.0,cycling,0,0,0 -681571834,Nikki Hamblin,NZL,female,1988-05-20,1.65,52.0,athletics,0,0,0 -298646249,Nikki Harris,GBR,female,1986-12-30,1.76,60.0,cycling,0,0,0 -532497224,Nikki Pradhan,IND,female,1993-12-08,1.53,45.0,hockey,0,0,0 -861176361,Nikkita Holder,CAN,female,1987-05-07,1.7,59.0,athletics,0,0,0 -548573991,Niklas Landin Jacobsen,DEN,male,1988-12-19,2.01,102.0,handball,1,0,0 -606084836,Niklas Larsen,DEN,male,1997-03-22,1.8,74.0,cycling,0,0,1 -898426175,Niklas Laustsen,DEN,male,1992-08-30,1.89,95.0,cycling,0,0,0 -852806194,Niklas Lindgren,FIN,male,1988-05-18,1.77,71.0,sailing,0,0,0 -497912437,Niklas Suele,GER,male,1995-09-03,1.94,100.0,football,0,1,0 -256324348,Niklas Wellen,GER,male,1994-12-14,1.85,77.0,hockey,0,0,1 -539021692,Nikol Merizaj,ALB,female,1998-08-07,1.8,65.0,aquatics,0,0,0 -440246912,Nikola Girke,CAN,female,1977-12-30,1.78,65.0,sailing,0,0,0 -680564901,Nikola Jaksic,SRB,male,1997-01-17,1.97,89.0,aquatics,1,0,0 -799131659,Nikola Jokic,SRB,male,1995-02-19,2.09,115.0,basketball,0,1,0 -195768771,Nikola Kalinic,SRB,male,1991-11-08,2.02,102.0,basketball,0,1,0 -483433829,Nikola Karabatic,FRA,male,1984-04-11,1.94,104.0,handball,0,1,0 -202450860,Nikola Mazurova,CZE,female,1994-11-22,1.6,68.0,shooting,0,0,0 -854142844,Nikola Mirotic,ESP,male,1991-02-11,2.08,100.0,basketball,0,0,1 -759289661,Nikolai Kuksenkov,RUS,male,1989-06-02,1.72,65.0,gymnastics,0,1,0 -111209519,Nikolai Novosjolov,EST,male,1980-06-09,1.91,93.0,fencing,0,0,0 -80208991,Nikolas Sylvester,VIN,male,2000-01-20,,,aquatics,0,0,0 -913573838,Nikolaus Resch,AUT,male,1984-08-30,1.88,84.0,sailing,0,0,0 -434491444,Nikolay Kovalev,RUS,male,1986-10-28,1.77,74.0,fencing,0,0,0 -705394191,Nikolay Nikolaev Bayryakov,BUL,male,1989-09-05,1.8,89.0,wrestling,0,0,0 -932397060,Nikoleta Kyriakopoulou,GRE,female,1986-03-21,1.67,57.0,athletics,0,0,0 -984974702,Nikolina Moldovan,SRB,female,1990-05-01,1.67,67.0,canoe,0,0,0 -553206872,Nikoloz Basilashvili,GEO,male,1992-02-23,1.85,80.0,tennis,0,0,0 -932198619,Nile Wilson,GBR,male,1996-01-17,1.66,60.0,gymnastics,0,0,1 -820507010,Nilla Fischer,SWE,female,1984-08-02,1.77,74.0,football,0,1,0 -426844727,Nils Brembach,GER,male,1993-02-23,1.84,70.0,athletics,0,0,0 -677508603,Nils Jakob Hoff,NOR,male,1985-02-05,,,rowing,0,0,0 -599711815,Nils Petersen,GER,male,1988-12-06,1.88,80.0,football,0,1,0 -471728310,Nils Schomber,GER,male,1994-03-15,1.83,72.0,cycling,0,0,0 -625149958,Nils van 't Hoenderdaal,NED,male,1993-10-03,1.78,86.0,cycling,0,0,0 -424937241,Nilson Moreira da Silva,BRA,male,1976-12-24,1.78,74.0,equestrian,0,0,0 -828507480,Niluka Karunaratne,SRI,male,1985-02-13,1.76,73.0,badminton,0,0,0 -690491812,Niluka Rajasekara,SRI,female,1982-03-17,1.55,42.0,athletics,0,0,0 -143552621,Nima Alamian,IRI,male,1992-12-24,1.74,70.0,table tennis,0,0,0 -624774853,Nina Amir,ISR,female,1999-01-17,1.7,62.0,sailing,0,0,0 -641314378,Nina Balaban,MKD,female,1995-11-02,1.58,58.0,shooting,0,0,0 -149794967,Nina Christen,SUI,female,1994-02-07,1.6,57.0,shooting,0,0,0 -61298807,Nina Derwael,BEL,female,2000-03-26,1.65,46.0,gymnastics,0,0,0 -116856979,Nina Hemmer,GER,female,1993-02-16,1.65,55.0,wrestling,0,0,0 -47803555,Nina Hollensen,DEN,female,1992-04-24,1.83,72.0,rowing,0,0,0 -322856280,Nina Rangelova,BUL,female,1990-10-22,1.7,56.0,aquatics,0,0,0 -844998028,Ning Ding,CHN,female,1990-06-20,1.71,63.0,table tennis,2,0,0 -137640462,Ning Gao,SIN,male,1982-10-11,1.79,80.0,table tennis,0,0,0 -802449703,Ning Wei,CHN,female,1982-08-05,1.67,60.0,shooting,0,0,0 -703857036,Nino Bertasio,ITA,male,1988-07-30,1.83,88.0,golf,0,0,0 -680794045,Nino Salukvadze,GEO,female,1969-02-01,1.68,58.0,shooting,0,0,0 -464025430,Nino Schurter,SUI,male,1986-05-13,1.73,68.0,cycling,1,0,0 -95604146,Nirmla,IND,female,1995-07-15,,,athletics,0,0,0 -800567218,Nirra Fields,CAN,female,1993-12-03,1.7,57.0,basketball,0,0,0 -769356228,Nisha Rawal,NEP,female,1995-09-11,1.68,73.0,taekwondo,0,0,0 -803251094,Nitendra Singh,IND,male,1986-09-29,1.72,58.0,athletics,0,0,0 -340570863,Nitya Krishinda Maheswari,INA,female,1988-12-16,1.68,65.0,badminton,0,0,0 -980419661,Nivaldo Nadhir Diaz Gomez,CUB,male,1994-03-24,2.0,81.0,volleyball,0,0,0 -399376832,Njisane Phillip,TTO,male,1991-05-29,,,cycling,0,0,0 -169340447,Nkosingiphile Gumede,RSA,male,1993-12-01,1.92,95.0,football,0,0,0 -228913165,Noah Al-Khulaifi,QAT,male,1999-05-10,1.9,86.0,aquatics,0,0,0 -649129831,Noah Mascoll-Gomes,ANT,male,1999-05-27,1.75,68.0,aquatics,0,0,0 -779523971,Noah Sonko Sundberg,SWE,male,1996-06-06,1.86,77.0,football,0,0,0 -585460949,Nobuhle Majika,ZIM,female,1991-05-09,1.59,53.0,football,0,0,0 -674436984,Nobukhosi Palma Ncube,ZIM,female,1993-02-17,1.59,54.0,football,0,0,0 -678262840,Nobuya Kato,JPN,male,1995-04-16,1.85,70.0,athletics,0,0,0 -26922064,Noe Delpech,FRA,male,1986-02-22,1.81,82.0,sailing,0,0,0 -932371435,Noel van T End,NED,male,1991-06-15,1.85,93.0,judo,0,0,0 -485719792,Noelie Yarigo,BEN,female,1985-12-26,1.68,56.0,athletics,0,0,0 -774261783,Noelle Montcalm,CAN,female,1988-04-03,1.68,53.0,athletics,0,0,0 -482317811,Noemi Batki,ITA,female,1987-10-12,1.67,62.0,aquatics,0,0,0 -815901454,Noemi Girardet,SUI,female,1994-12-12,1.74,61.0,aquatics,0,0,0 -656797479,Noemie Kober,FRA,female,1993-12-15,1.8,73.0,rowing,0,0,0 -698687305,Noemie Thomas,CAN,female,1996-02-04,1.63,59.0,aquatics,0,0,0 -486513538,Noko Matlou,RSA,female,1985-09-30,1.66,61.0,football,0,0,0 -124693732,Nomathemba Ntsibande,RSA,female,1986-04-19,1.69,59.0,football,0,0,0 -665606530,Non Stanford,GBR,female,1989-01-08,1.7,55.0,triathlon,0,0,0 -46541403,Noora Ruskola,FIN,female,1994-12-21,1.54,53.0,sailing,0,0,0 -45473346,Noora Tamminen,FIN,female,1990-10-30,1.68,59.0,golf,0,0,0 -547769017,Nooralotta Neziri,FIN,female,1992-11-09,1.74,63.0,athletics,0,0,0 -645011476,Nooran Ahmed Ali Ba Matraf,YEM,female,1999-11-25,1.66,60.0,aquatics,0,0,0 -385609976,Nora Gjakova,KOS,female,1992-08-17,1.65,57.0,judo,0,0,0 -483970756,Nora Mork,NOR,female,1991-04-05,1.69,,handball,0,0,1 -989374073,Nora Subschinski,GER,female,1988-06-05,1.59,57.0,aquatics,0,0,0 -350577535,Norbert Hosnyanszky,HUN,male,1984-03-04,1.96,101.0,aquatics,0,0,0 -126121033,Norbert Szabian,HUN,male,1982-09-24,1.82,97.0,shooting,0,0,0 -813300024,Norbert Trandafir,ROU,male,1988-02-08,1.9,85.0,aquatics,0,0,0 -993318561,Noriko Taniguchi,JPN,female,1992-09-07,1.66,66.0,rugby sevens,0,0,0 -718571072,Norisbeth Agudo,VEN,female,1992-05-22,1.63,55.0,volleyball,0,0,0 -253052328,Noshad Alamiyan,IRI,male,1991-11-21,1.7,67.0,table tennis,0,0,0 -129615,Nothando Vilakazi,RSA,female,1988-10-28,1.6,53.0,football,0,0,0 -742257212,Nouchka Fontijn,NED,female,1987-11-09,1.8,,boxing,0,1,0 -609989806,Nour Elayoubi,EGY,female,1997-01-16,1.67,58.0,aquatics,0,0,0 -753747298,Nour Elhouda Ettaieb,TUN,female,1996-10-15,1.7,57.0,rowing,0,0,0 -947989381,Noura Mana,MAR,female,1997-12-12,1.7,62.0,aquatics,0,0,0 -792186214,Noura Mohamed,EGY,female,1998-03-05,1.73,60.0,fencing,0,0,0 -913461449,Novak Djokovic,SRB,male,1987-05-22,1.88,88.0,tennis,0,0,0 -123381244,Novlene Williams-Mills,JAM,female,1982-04-26,1.68,57.0,athletics,0,1,0 -795015528,Nozomi Okuhara,JPN,female,1995-03-13,1.56,51.0,badminton,0,0,1 -860526701,Nozomi Sato,JPN,female,1986-07-03,1.73,61.0,fencing,0,0,0 -158456610,Nubia Soares,BRA,female,1996-03-26,1.76,52.0,athletics,0,0,0 -599504171,Nuno Saraiva,POR,male,1994-03-16,1.76,76.0,judo,0,0,0 -552664061,Nur Dhabitah Sabri,MAS,female,1999-07-12,1.51,53.0,aquatics,0,0,0 -135131175,Nur Shazrin Mohamad Latif,MAS,female,1998-02-02,1.67,63.0,sailing,0,0,0 -799693970,Nur Tatar,TUR,female,1992-08-16,1.8,67.0,taekwondo,0,0,1 -231587999,Nuria Diosdado,MEX,female,1990-08-22,1.7,55.0,aquatics,0,0,0 -1716955,Nurislam Sanayev,KAZ,male,1991-02-09,1.63,57.0,wrestling,0,0,0 -147846334,Nurmakhan Tinaliyev,KAZ,male,1988-01-10,1.98,130.0,wrestling,0,0,0 -997050552,Nwanneka Okwelogu,NGR,female,1995-05-05,1.73,100.0,athletics,0,0,0 -395961774,Nyakisi Adero,UGA,female,1986-07-02,,,athletics,0,0,0 -699476083,Nycke Groot,NED,female,1988-05-04,1.75,70.0,handball,0,0,0 -959020954,Nzingha Prescod,USA,female,1992-08-14,1.63,62.0,fencing,0,0,0 -998833102,O'dayne Richards,JAM,male,1988-12-14,1.77,120.0,athletics,0,0,0 -838284014,Oana Manea,ROU,female,1985-04-18,1.77,78.0,handball,0,0,0 -703472773,Obada Alkasbeh,JOR,male,1994-07-30,1.66,,boxing,0,0,0 -381088762,Odbayar Ganbaatar,MGL,male,1989-08-20,1.6,,judo,0,0,0 -2156402,Odd Arne Brekne,NOR,male,1984-09-01,,,shooting,0,0,0 -894451060,Odette Giuffrida,ITA,female,1994-10-12,1.6,52.0,judo,0,1,0 -603038504,Odunayo Folasade Adekuoroye,NGR,female,1993-12-10,1.69,53.0,wrestling,0,0,0 -115751224,Odyssefs Meladinis,GRE,male,1990-04-05,1.94,90.0,aquatics,0,0,0 -202190502,Offiong Edem,NGR,female,1986-12-31,1.5,70.0,table tennis,0,0,0 -598707040,Oghenekaro Etebo,NGR,male,1995-11-09,1.72,,football,0,0,1 -129929116,Ogho-Oghene Egwero,NGR,male,1988-11-26,1.52,72.0,athletics,0,0,0 -896056444,Ojie Edoburun,GBR,male,1996-06-02,1.85,80.0,athletics,0,0,0 -520738573,Okcheol Kim,KOR,male,1994-11-16,1.79,70.0,cycling,0,0,0 -800670857,Okechukwu Azubuike,NGR,male,1997-04-19,1.7,,football,0,0,1 -332705415,Oksana Chusovitina,UZB,female,1975-06-19,1.53,43.0,gymnastics,0,0,0 -962326331,Oksana Herhel,UKR,female,1994-06-20,1.64,58.0,wrestling,0,0,0 -466004791,Oksana Okuneva,UKR,female,1990-03-14,1.75,63.0,athletics,0,0,0 -845220778,Oksana Shkurat,UKR,female,1993-07-30,1.7,53.0,athletics,0,0,0 -629436932,Oktawia Nowacka,POL,female,1991-01-02,1.8,60.0,modern pentathlon,0,0,1 -602321842,Olaf Tufte,NOR,male,1976-04-27,,,rowing,0,0,1 -137938891,Olaseni Lawal,NGR,male,1986-10-08,2.08,102.0,basketball,0,0,0 -48085407,Olaya Perez Pazo,VEN,female,1983-06-07,1.8,66.0,volleyball,0,0,0 -224381692,Olcay Cakir,TUR,female,1993-07-13,1.82,60.0,basketball,0,0,0 -925700475,Ole Hesselbjerg,DEN,male,1990-04-23,1.85,67.0,athletics,0,0,0 -76211755,Ole Kristian Bryhn,NOR,male,1989-05-01,,,shooting,0,0,0 -489944165,Oleg Antonov,ITA,male,1988-07-28,1.98,88.0,volleyball,0,1,0 -265324138,Oleg Stepko,AZE,male,1994-03-25,1.63,55.0,gymnastics,0,0,0 -731979766,Oleg Tarnovschi,MDA,male,1992-04-10,1.81,80.0,canoe,0,0,0 -57591720,Oleg Verniaiev,UKR,male,1993-09-29,1.6,56.0,gymnastics,1,1,0 -400214523,Oleg Zhestkov,RUS,male,1987-01-20,1.88,98.0,canoe,0,0,0 -727773897,Oleh Omelchuk,UKR,male,1983-06-07,1.7,68.0,shooting,0,0,0 -768314513,Oleh Tsarkov,UKR,male,1988-03-22,1.74,70.0,shooting,0,0,0 -160961676,Oleksandr Chernetskyy,UKR,male,1984-02-17,1.95,130.0,wrestling,0,0,0 -926202159,Oleksandr Gorshkovozov,UKR,male,1991-07-18,1.73,66.0,aquatics,0,0,0 -497898586,Oleksandr Pielieshenko,UKR,male,1994-01-07,1.7,85.0,weightlifting,0,0,0 -801537785,Oleksandr Sitkovskyy,UKR,male,1978-06-09,1.84,68.0,athletics,0,0,0 -917048345,Oleksandr Tugaryev,UKR,male,1995-07-15,1.67,63.0,sailing,0,0,0 -822288525,Oleksandra Gridasova,UKR,female,1995-07-05,1.73,53.0,gymnastics,0,0,0 -651167532,Oleksandra Sabada,UKR,female,1991-01-06,1.68,55.0,aquatics,0,0,0 -79936055,Oleksiy Kasyanov,UKR,male,1985-08-26,1.91,88.0,athletics,0,0,0 -872028854,Oleksiy Semenov,UKR,male,1982-06-27,1.98,120.0,athletics,0,0,0 -338267081,Olena Buryak,UKR,female,1988-02-08,1.96,90.0,rowing,0,0,0 -571691076,Olena Dmytrash,UKR,female,1991-12-01,1.73,51.0,gymnastics,0,0,0 -112473834,Olena Fedorova,UKR,female,1986-11-14,1.64,57.0,aquatics,0,0,0 -282462242,Olena Grechykhina,UKR,female,1991-07-11,1.78,62.0,aquatics,0,0,0 -905135133,Olena Kolesnychenko,UKR,female,1993-06-03,1.72,57.0,athletics,0,0,0 -55258833,Olena Kostevych,UKR,female,1985-04-14,1.6,52.0,shooting,0,0,0 -759603563,Olena Kravatska,UKR,female,1992-06-22,1.76,66.0,fencing,0,1,0 -584752118,Olena Kryvytska,UKR,female,1987-02-23,1.74,62.0,fencing,0,0,0 -527015303,Olena Pavlukhina,AZE,female,1989-03-01,1.78,68.0,cycling,0,0,0 -982514520,Olena Voronina,UKR,female,1990-05-05,1.65,65.0,fencing,0,1,0 -972107687,Olena Yanovska,UKR,female,1990-02-15,1.71,62.0,athletics,0,0,0 -853982899,Olesya Povkh,UKR,female,1987-10-18,1.67,63.0,athletics,0,0,0 -3330883,Olexandr Nadtoka,UKR,male,1991-03-06,1.95,95.0,rowing,0,0,0 -651203892,Olfa Charni,TUN,female,1980-05-24,1.76,65.0,shooting,0,0,0 -514784334,Olga Akopian,RUS,female,1985-03-04,1.76,63.0,handball,1,0,0 -834977661,Olga Golodna,UKR,female,1991-11-14,1.83,96.0,athletics,0,0,0 -148544473,Olga Gorbunova,RUS,female,1993-08-27,1.69,60.0,aquatics,0,0,1 -839908037,Olga Ismayilova,AZE,female,1985-09-16,1.7,71.0,cycling,0,0,0 -700198310,Olga Kharlan,UKR,female,1990-09-04,1.72,68.0,fencing,0,1,1 -34701189,Olga Kochneva,RUS,female,1988-06-29,1.68,58.0,fencing,0,0,1 -959644793,Olga Leleiko,UKR,female,1977-07-21,1.78,68.0,fencing,0,0,0 -101246911,Olga Rypakova,KAZ,female,1984-11-30,1.83,62.0,athletics,0,0,1 -58276308,Olga Safronova,KAZ,female,1991-11-05,1.71,62.0,athletics,0,0,0 -847854167,Olga Saladukha,UKR,female,1983-06-04,1.76,57.0,athletics,0,0,0 -619903029,Olga Savchuk,UKR,female,1987-09-20,1.77,67.0,tennis,0,0,0 -874685403,Olga Senyuk,AZE,female,1991-01-23,1.75,53.0,archery,0,0,0 -257199398,Olga Umaralieva,UZB,female,1988-02-05,1.61,58.0,canoe,0,0,0 -341366636,Olga Zabelinskaya,RUS,female,1980-05-10,,,cycling,0,1,0 -62936804,Olha Bibik,UKR,female,1990-02-05,1.73,63.0,athletics,0,0,0 -876726793,Olha Kotovska,UKR,female,1983-12-05,1.67,50.0,athletics,0,0,0 -192536405,Olha Lyakhova,UKR,female,1992-03-18,1.74,60.0,athletics,0,0,0 -15281750,Olha Zemlyak,UKR,female,1990-01-16,1.65,57.0,athletics,0,0,0 -520170826,Olha Zolotarova,UKR,female,1994-12-27,1.78,61.0,aquatics,0,0,0 -479817783,Olim Kurbanov,TJK,male,1998-06-21,1.86,69.0,aquatics,0,0,0 -463296329,Oliver Dingley,IRL,male,1992-11-24,1.63,60.0,aquatics,0,0,0 -82337,Oliver Geis,GER,male,1991-06-20,1.76,86.0,shooting,0,0,0 -671132115,Oliver Hegi,SUI,male,1993-02-20,1.69,63.0,gymnastics,0,0,0 -212228401,Oliver Korn,GER,male,1984-06-10,1.81,76.0,hockey,0,0,0 -922393211,Oliver Lindsay-Hague,GBR,male,1990-10-08,1.8,83.0,rugby sevens,0,1,0 -65722266,Oliver Marach,AUT,male,1980-07-16,1.84,84.0,tennis,0,0,0 -626280477,Oliver Szymanski,GER,male,1990-07-27,1.83,73.0,sailing,0,0,0 -981211905,Olivera Jevtic,SRB,female,1977-07-24,1.74,51.0,athletics,0,0,0 -903316415,Olivera Moldovan,SRB,female,1989-03-01,1.58,62.0,canoe,0,0,0 -621595419,Olivia Borlee,BEL,female,1986-04-10,1.72,57.0,athletics,0,0,0 -631669580,Olivia Carnegie-Brown,GBR,female,1991-03-28,1.81,73.0,rowing,0,1,0 -929295902,Olivia Ekpone,NGR,female,1993-01-05,,59.0,athletics,0,0,0 -966757117,Olivia Epoupa,FRA,female,1994-04-30,1.64,53.0,basketball,0,0,0 -451474447,Olivia Federici,GBR,female,1990-02-13,1.67,54.0,aquatics,0,0,0 -285785090,Olivia Hofmann,AUT,female,1992-08-08,1.63,58.0,shooting,0,0,0 -724524822,Olivia Merry,NZL,female,1992-03-16,1.82,74.0,hockey,0,0,0 -77219667,Olivia Podmore,NZL,female,1997-05-24,1.74,64.0,cycling,0,0,0 -990163818,Olivia Schough,SWE,female,1991-03-11,1.72,60.0,football,0,1,0 -654242453,Olivia Smoliga,USA,female,1994-10-12,1.88,74.0,aquatics,1,0,0 -157435063,Olivia van Rooijen,NED,female,1988-10-29,1.82,71.0,rowing,0,0,0 -788666996,Olivier Beer,SUI,male,1990-10-18,1.8,69.0,cycling,0,0,0 -758344424,Olivier Irabaruta,BDI,male,1997-08-25,1.7,62.0,athletics,0,0,0 -207164016,Olivier Nyokas,FRA,male,1986-06-28,1.89,86.0,handball,0,1,0 -355963198,Olivier Siegelaar,NED,male,1986-10-24,1.97,100.0,rowing,0,0,1 -560709278,Olofunke Oshonaike,NGR,female,1975-10-28,1.67,59.0,table tennis,0,0,0 -627306424,Olu Olamigoke,NGR,male,1990-09-19,1.75,72.0,athletics,0,0,0 -299832039,Oluwafemi Ajayi,NGR,male,1996-01-29,1.72,,football,0,0,1 -255777326,Oluwakemi Adekoya,BRN,female,1993-01-16,1.66,63.0,athletics,0,0,0 -516591047,Oluwasegun Makinde,CAN,male,1991-07-06,1.79,81.0,athletics,0,0,0 -172510289,Oluwatobiloba Amusan,NGR,female,1997-04-23,1.38,55.0,athletics,0,0,0 -177654835,Olympia Aldersey,AUS,female,1992-07-26,1.83,75.0,rowing,0,0,0 -168982138,Olzhas Sattibayev,KAZ,male,1988-05-02,1.6,,boxing,0,0,0 -103517404,Omar Andres Pinzon Garcia,COL,male,1989-06-17,1.84,82.0,aquatics,0,0,0 -876447074,Omar Assar,EGY,male,1991-07-22,1.96,93.0,table tennis,0,0,0 -307391721,Omar Elgeziry,EGY,male,1985-01-20,1.85,77.0,modern pentathlon,0,0,0 -424746712,Omar Hajjami,MAR,male,1990-07-31,1.6,58.0,taekwondo,0,0,0 -791818154,Omar Hassan,EGY,male,1991-04-04,1.91,104.0,volleyball,0,0,0 -267497141,Omar Longart,VEN,male,1991-05-18,1.72,69.0,athletics,0,0,0 -671572172,Omar McLeod,JAM,male,1994-04-25,,,athletics,1,0,0 -494429472,Omar Zepeda,MEX,male,1977-06-08,1.75,70.0,athletics,0,0,0 -370119484,Omer Karaevli,TUR,male,1977-09-11,1.76,69.0,equestrian,0,0,0 -236501534,Omid Haji Noroozi,IRI,male,1986-02-18,1.75,70.0,wrestling,0,0,0 -565665727,Omolara Omotoso,NGR,female,1993-05-25,1.52,50.0,athletics,0,0,0 -163885592,Ona Carbonell,ESP,female,1990-06-05,1.73,52.0,aquatics,0,0,0 -339420011,Ona Kim,KOR,female,1988-09-06,1.69,62.0,handball,0,0,0 -980936428,Onder Sipal,TUR,male,1987-05-01,1.75,,boxing,0,0,0 -880358779,Ondrej Cink,CZE,male,1990-12-07,1.78,68.0,cycling,0,0,0 -141546523,Ondrej Kruzel,SVK,male,1988-08-23,1.9,119.0,weightlifting,0,0,0 -729983888,Ondrej Synek,CZE,male,1982-10-13,1.99,105.0,rowing,0,0,1 -88265028,Ondrej Vetesnik,CZE,male,1984-03-05,1.81,72.0,rowing,0,0,0 -47810803,Onkabetse Nkobolo,BOT,male,1993-07-22,,,athletics,0,0,0 -17450856,Ons Jabeur,TUN,female,1994-08-28,1.67,66.0,tennis,0,0,0 -31333880,Onur Balkan,TUR,male,1996-03-10,1.76,70.0,cycling,0,0,0 -676134889,Onur Biriz,TUR,male,1998-10-16,1.86,73.0,sailing,0,0,0 -338111921,Onur Sipal,TUR,male,1989-03-17,1.72,,boxing,0,0,0 -756542327,Or Sasson,ISR,male,1990-08-18,1.93,120.0,judo,0,0,1 -500712109,Oreane Lechenault,FRA,female,2000-08-31,1.34,37.0,gymnastics,0,0,0 -10035386,Oreoluwa Cherebin,GRN,female,1997-12-24,,,aquatics,0,0,0 -890917446,Orianica Velasquez,COL,female,1989-08-01,1.77,69.0,football,0,0,0 -391151189,Oribe Peralta,MEX,male,1984-01-12,1.78,76.0,football,0,0,0 -231740872,Orkhan Safarov,AZE,male,1991-08-10,1.71,60.0,judo,0,0,0 -34240662,Orkhon Purevdorj,MGL,female,1993-12-25,1.63,63.0,wrestling,0,0,0 -375338487,Orlando Ortega,ESP,male,1991-07-29,1.82,77.0,athletics,0,1,0 -781301320,Orsolya Kaso,HUN,female,1988-11-22,1.87,72.0,aquatics,0,0,0 -149626539,Orsolya Takacs,HUN,female,1985-05-20,1.9,83.0,aquatics,0,0,0 -878993673,Orukpe Eraiyokan,NGR,male,1993-12-20,1.5,73.0,athletics,0,0,0 -257208022,Oscar Albeiro Figueroa Mosquera,COL,male,1983-04-27,1.59,62.0,weightlifting,1,0,0 -904285900,Oscar Ayodi,KEN,male,1989-09-21,1.84,94.0,rugby sevens,0,0,0 -313345460,Oscar Carrera,ESP,male,1991-05-09,1.9,86.0,canoe,0,0,0 -199312817,Oscar Luis Munoz Oviedo,COL,male,1993-05-09,1.78,58.0,taekwondo,0,0,0 -12259956,Oscar Ouma,KEN,male,1989-05-03,1.86,105.0,rugby sevens,0,0,0 -497523485,Oscar Salas,HON,male,1993-12-08,1.72,73.0,football,0,0,0 -473764617,Oscar Soliz Vilca,BOL,male,1985-01-09,1.68,59.0,cycling,0,0,0 -935041171,Osea Kolinisau,FIJ,male,1985-11-17,1.74,90.0,rugby sevens,1,0,0 -448898364,Oskar Deecke,GER,male,1986-05-16,1.83,78.0,hockey,0,0,0 -553047126,Oskar Kirmes,FIN,male,1995-12-19,1.7,62.0,gymnastics,0,0,0 -674907192,Oskari Moro,FIN,male,1993-01-31,1.81,71.0,athletics,0,0,0 -96259345,Osleni Guerrero,CUB,male,1989-10-18,1.89,88.0,badminton,0,0,0 -109325919,Osmaidel Pellicier,CUB,male,1992-03-30,1.88,88.0,athletics,0,0,0 -324446347,Osman Kamara,SLE,male,1987-12-31,,78.0,aquatics,0,0,0 -115062630,Osmany Juantorena,ITA,male,1985-08-12,2.0,85.0,volleyball,0,1,0 -943830865,Osniel Cecilio Rendon Gonzalez,CUB,male,1996-10-26,2.02,90.0,volleyball,0,0,0 -961508449,Osniel Lazaro Melgarejo Hernandez,CUB,male,1997-12-18,1.95,83.0,volleyball,0,0,0 -657263947,Oswaldo dos Santos Guimaraes,BRA,male,1989-10-23,1.83,90.0,handball,0,0,0 -878075998,Otar Bestaev,KGZ,male,1991-10-28,1.6,60.0,judo,0,0,0 -953914833,Otgonbaatar Lkhagvasuren,MGL,male,1993-01-20,1.82,94.0,judo,0,0,0 -358198982,Otgonbayar Luvsanlundeg,MGL,female,1982-07-13,1.53,47.0,athletics,0,0,0 -349670408,Otgondalai Dorjnyambuu,MGL,male,1988-01-28,1.7,,boxing,0,0,1 -830288020,Otgontsetseg Galbadrakh,KAZ,female,1992-01-25,1.65,48.0,judo,0,0,1 -605590898,Oumar Toure,MLI,male,1996-01-24,1.59,57.0,aquatics,0,0,0 -570635423,Oumou Toure,SEN,female,1988-02-18,1.89,86.0,basketball,0,0,0 -748074466,Oumoul Thiam,SEN,female,1990-02-03,1.79,68.0,basketball,0,0,0 -517816469,Ourania Rebouli,GRE,female,1989-05-16,1.64,49.0,athletics,0,0,0 -819236187,Oussama Boughanmi,TUN,male,1990-02-05,1.85,87.0,handball,0,0,0 -304396524,Oussama Darfalou,ALG,male,1993-09-29,1.86,75.0,football,0,0,0 -311177552,Oussama Hosni,TUN,male,1992-09-17,1.92,88.0,handball,0,0,0 -518631495,Oussama Mellouli,TUN,male,1984-02-16,1.92,84.0,aquatics,0,0,0 -538663975,Oussama Methazem,ALG,male,1993-12-15,1.8,75.0,football,0,0,0 -374267293,Oussama Oueslati,TUN,male,1996-03-24,1.99,80.0,taekwondo,0,0,1 -16385389,Oussama Sahnoune,ALG,male,1992-08-02,1.87,84.0,aquatics,0,0,0 -242873978,Ousseini Djibo Idrissa,NIG,male,1998-12-28,1.78,72.0,athletics,0,0,0 -806202831,Ovidiu Ionescu,ROU,male,1989-06-28,1.82,72.0,table tennis,0,0,0 -347377740,Ovini Uera,NRU,male,1988-01-18,1.7,90.0,judo,0,0,0 -745286605,Owain Doull,GBR,male,1993-05-02,1.81,73.0,cycling,1,0,0 -581338975,Ozge Bayrak,TUR,female,1992-02-14,1.66,60.0,badminton,0,0,0 -726787607,Ozlem Kaya,TUR,female,1990-04-20,1.65,47.0,athletics,0,0,0 -489753983,Pa Konate,SWE,male,1994-04-25,1.71,71.0,football,0,0,0 -178909248,Pablo Abian,ESP,male,1985-06-12,1.77,68.0,badminton,0,0,0 -592233151,Pablo Aprahamian,URU,male,1985-09-13,1.8,97.0,judo,0,0,0 -360159830,Pablo Barrios,VEN,male,1964-07-14,1.79,72.0,equestrian,0,0,0 -373537560,Pablo Braegger,SUI,male,1992-11-27,1.69,64.0,gymnastics,0,0,0 -761571916,Pablo Carrera,ESP,male,1986-08-02,1.82,93.0,shooting,0,0,0 -800654428,Pablo Crer,ARG,male,1989-06-12,2.02,85.0,volleyball,0,0,0 -310836166,Pablo Cuevas,URU,male,1986-01-01,1.8,79.0,tennis,0,0,0 -505304017,Pablo Defazio Abella,URU,male,1981-05-15,1.7,67.0,sailing,0,0,0 -284444203,Pablo Feijoo,ESP,male,1982-05-18,1.74,74.0,rugby sevens,0,0,0 -76294513,Pablo Fontes,ESP,male,1995-12-25,1.75,83.0,rugby sevens,0,0,0 -872745031,Pablo Herrera Allepuz,ESP,male,1982-06-29,1.93,88.0,volleyball,0,0,0 -588392494,Pablo Portela,ARG,male,1980-06-21,1.92,92.0,handball,0,0,0 -761942978,Pablo Simonet,ARG,male,1992-05-04,1.85,90.0,handball,0,0,0 -485821252,Pablo Torrijos,ESP,male,1992-05-12,1.85,76.0,athletics,0,0,0 -883565359,Pablo Vaistein,ARG,male,1989-07-18,1.84,89.0,handball,0,0,0 -283173000,Pablo de Torres,ARG,male,1984-04-14,1.9,86.0,canoe,0,0,0 -44439135,Paciencia,POR,male,1994-08-01,1.87,80.0,football,0,0,0 -49599733,Padasak Tanviriyavechakul,THA,male,1996-05-17,1.68,60.0,table tennis,0,0,0 -423696002,Padraig Harrington,IRL,male,1971-08-31,1.85,86.0,golf,0,0,0 -74504490,Padraig McCarthy,IRL,male,1977-07-18,1.8,80.0,equestrian,0,0,0 -548161228,Paige McPherson,USA,female,1990-10-01,1.73,65.0,taekwondo,0,0,0 -722165425,Paige Railey,USA,female,1987-05-15,1.73,66.0,sailing,0,0,0 -419662300,Paige Satchell,NZL,female,1998-04-13,1.63,50.0,football,0,0,0 -938845959,Paige Selenski,USA,female,1990-06-30,1.71,61.0,hockey,0,0,0 -883350095,Paixao Afonso,ANG,male,1991-01-02,1.76,67.0,sailing,0,0,0 -674501891,Pal Joensen,DEN,male,1990-12-10,1.83,76.0,aquatics,0,0,0 -712874334,Palmira Marcal,BRA,female,1984-05-20,1.74,76.0,basketball,0,0,0 -221272276,Paloma Schmidt Gutierrez,PER,female,1987-01-24,1.65,65.0,sailing,0,0,0 -442939892,Pamela Dutkiewicz,GER,female,1991-09-28,1.7,61.0,athletics,0,0,0 -608348414,Pamela Nogueira,BRA,female,1988-07-17,1.64,54.0,aquatics,0,0,0 -603375979,Pamela Ware,CAN,female,1993-02-12,1.61,55.0,aquatics,0,0,0 -495081578,Pamella Oliveira,BRA,female,1987-10-06,1.65,60.0,triathlon,0,0,0 -984045803,Panagiotis Gionis,GRE,male,1980-01-07,1.87,85.0,table tennis,0,0,0 -795025850,Panagiotis Magdanis,GRE,male,1990-11-29,1.75,71.0,rowing,0,0,0 -604177499,Panagiotis Mantis,GRE,male,1981-09-30,1.7,65.0,sailing,0,0,1 -452613023,Panagiotis Samilidis,GRE,male,1993-08-09,1.87,91.0,aquatics,0,0,0 -264595645,Panayiota Tsinopoulou,GRE,female,1990-10-16,1.65,54.0,athletics,0,0,0 -750775977,Panayiota Vlahaki,GRE,female,1991-04-03,1.67,50.0,athletics,0,0,0 -19012939,Pancho Paskov,BUL,male,1994-05-09,1.78,77.0,fencing,0,0,0 -86712158,Pandelela Rinong Pamg,MAS,female,1993-03-02,1.61,52.0,aquatics,0,1,0 -350338417,Panipak Wongpattanakit,THA,female,1997-08-08,1.73,49.0,taekwondo,0,0,1 -911324763,Paola Espinosa,MEX,female,1986-07-31,1.56,48.0,aquatics,0,0,0 -124063612,Paola Munoz,CHI,female,1986-04-13,1.64,54.0,cycling,0,0,0 -322724107,Paola Ogechi Egonu,ITA,female,1998-12-18,1.9,70.0,volleyball,0,0,0 -11943738,Paola Perez,VEN,female,1991-04-05,1.62,54.0,aquatics,0,0,0 -146805157,Paola Perez,ECU,female,1989-12-21,1.45,43.0,athletics,0,0,0 -340714642,Paolo Lorenzi,ITA,male,1981-12-15,1.84,77.0,tennis,0,0,0 -882385123,Paolo Nicolai,ITA,male,1988-08-06,2.04,100.0,volleyball,0,1,0 -654810825,Paolo Pizzo,ITA,male,1983-04-04,1.8,70.0,fencing,0,1,0 -388627308,Paolo Yurivilca,PER,male,1996-04-23,1.69,62.0,athletics,0,0,0 -443908875,Pap D. Jonga,GAM,male,1997-07-01,,,aquatics,0,0,0 -442404063,Par Gerell,SWE,male,1982-06-23,1.74,68.0,table tennis,0,0,0 -832744866,Paraskevi Papahristou,GRE,female,1989-04-17,1.7,53.0,athletics,0,0,0 -363332921,Pardeep Mor,IND,male,1992-06-03,1.76,67.0,hockey,0,0,0 -954374812,Pardon Ndhlovu,ZIM,male,1987-08-23,1.58,54.0,athletics,0,0,0 -593995753,Paris Henken,USA,female,1995-12-22,1.68,63.0,sailing,0,0,0 -318649476,Parvenn Rana,IND,male,1992-10-12,,,wrestling,0,0,0 -851811760,Parviz Baghirov,AZE,male,1994-02-10,1.77,,boxing,0,0,0 -390284488,Pascal Gregor,DEN,male,1994-02-18,1.89,82.0,football,0,0,0 -609470264,Pascal Lussier,CAN,male,1991-09-13,1.9,90.0,rowing,0,0,0 -671651436,Pascal Martinot-Lagarde,FRA,male,1991-09-22,1.89,85.0,athletics,0,0,0 -663249321,Pascal Plamondon,CAN,male,1992-12-12,1.71,85.0,weightlifting,0,0,0 -323658987,Pasquale Sottile,ITA,male,1979-08-17,1.86,73.0,volleyball,0,1,0 -52489905,Pat McCormack,GBR,male,1995-06-08,1.82,,boxing,0,0,0 -975309523,Pat McCutcheon,AUS,male,1987-06-24,1.87,105.0,rugby sevens,0,0,0 -705420033,Patience Okon George,NGR,female,1991-11-25,1.69,63.0,athletics,0,0,0 -522216516,Patimat Abakarova,AZE,female,1994-10-23,1.65,49.0,taekwondo,0,0,1 -244723566,Patricia Alejandra Bermudez,ARG,female,1987-02-05,1.5,48.0,wrestling,0,0,0 -539946489,Patricia Castro Ortega,ESP,female,1992-08-06,1.78,66.0,aquatics,0,0,0 -775629274,Patricia Elorza,ESP,female,1984-04-08,1.8,78.0,handball,0,0,0 -919589860,Patricia Freitas,BRA,female,1990-03-10,1.73,59.0,sailing,0,0,0 -505669658,Patricia Garcia,ESP,female,1989-12-02,1.63,64.0,rugby sevens,0,0,0 -295886630,Patricia Herrera Fernandez,ESP,female,1993-02-09,1.63,59.0,aquatics,0,0,0 -618669054,Patricia Mamona,POR,female,1988-11-21,1.67,60.0,athletics,0,0,0 -81353559,Patricia Obee,CAN,female,1991-10-31,1.65,60.0,rowing,0,1,0 -784355437,Patricia Sarrapio,ESP,female,1982-11-16,1.65,56.0,athletics,0,0,0 -899859792,Patricia Taea,COK,female,1993-05-25,1.7,67.0,athletics,0,0,0 -912531799,Patricia Vizitiu,ROU,female,1988-10-15,1.75,68.0,handball,0,0,0 -463070123,Patricio Garino,ARG,male,1993-05-17,1.96,96.0,basketball,0,0,0 -703130921,Patrick Barnes,IRL,male,1987-04-09,1.63,,boxing,0,0,0 -581538049,Patrick Constable,AUS,male,1995-07-15,1.83,95.0,cycling,0,0,0 -732337980,Patrick Dogue,GER,male,1992-03-09,1.97,81.0,modern pentathlon,0,0,0 -588164500,Patrick Groetzki,GER,male,1989-07-04,1.9,83.0,handball,0,0,0 -258619134,Patrick Hausding,GER,male,1989-03-09,1.8,77.0,aquatics,0,0,1 -883872117,Patrick Huston,GBR,male,1996-01-05,1.83,84.0,archery,0,0,0 -319404194,Patrick Lourenco,BRA,male,1993-07-02,1.64,,boxing,0,0,0 -949167573,Patrick Reed,USA,male,1990-08-05,1.83,90.0,golf,0,0,0 -799162684,Patrick Tiernan,AUS,male,1994-09-11,1.83,83.0,athletics,0,0,0 -765058141,Patrick Wiencek,GER,male,1989-03-22,2.0,110.0,handball,0,0,1 -764251988,Patrick van der Heijden,BRA,male,1992-09-19,1.8,70.0,hockey,0,0,0 -121079592,Patrik Kittel,SWE,male,1976-06-10,1.86,79.0,equestrian,0,0,0 -745764315,Patrik Tybor,SVK,male,1987-09-16,1.86,89.0,cycling,0,0,0 -81021268,Patrycja Piechowiak,POL,female,1992-09-01,1.62,68.0,weightlifting,0,0,0 -393072060,Patrycja Wyciszkiewicz,POL,female,1994-01-08,1.73,58.0,athletics,0,0,0 -263761754,Patryk Dobek,POL,male,1994-02-13,1.87,75.0,athletics,0,0,0 -597321452,Patty Mills,AUS,male,1988-08-11,1.83,85.0,basketball,0,0,0 -899162102,Pau Gasol,ESP,male,1980-07-06,2.15,115.0,basketball,0,0,1 -766117830,Pau Quemada,ESP,male,1983-09-04,1.73,69.0,hockey,0,0,0 -416399703,Pau Tonnesen,ESP,male,1992-10-24,1.85,77.0,athletics,0,0,0 -701588939,Pau Vela Maggi,ESP,male,1986-05-31,1.9,86.0,rowing,0,0,0 -133432446,Paul Adams,AUS,male,1992-06-04,1.85,98.0,shooting,0,0,0 -780137117,Paul Bennett,GBR,male,1988-12-16,2.07,100.0,rowing,1,0,0 -424996653,Paul Biedermann,GER,male,1986-08-07,1.93,97.0,aquatics,0,0,0 -577741234,Paul Drinkhall,GBR,male,1990-01-16,1.76,80.0,table tennis,0,0,0 -454655220,Paul Drux,GER,male,1995-02-07,1.92,106.0,handball,0,0,1 -364360958,Paul Estermann,SUI,male,1963-06-24,1.8,78.0,equestrian,0,0,0 -209482391,Paul George,USA,male,1990-05-02,2.03,99.0,basketball,1,0,0 -918519534,Paul Gleghorne,IRL,male,1987-04-11,1.87,82.0,hockey,0,0,0 -534134295,Paul Kibikai,GAB,male,1991-04-04,1.8,80.0,judo,0,0,0 -498755923,Paul Kipkemoi Chelimo,USA,male,1990-10-27,1.8,57.0,athletics,0,1,0 -357755328,Paul Kipngetich Tanui,KEN,male,1990-12-22,1.68,47.0,athletics,0,1,0 -29049380,Paul Kohlhoff,GER,male,1995-06-26,1.87,83.0,sailing,0,0,0 -367795663,Paul O'Donovan,IRL,male,1994-04-19,1.77,70.0,rowing,0,1,0 -674380639,Paul Omba Biongolo,FRA,male,1995-12-28,1.89,,boxing,0,0,0 -350939465,Paul Pollock,IRL,male,1986-06-25,1.77,57.0,athletics,0,0,0 -696711515,Paul Sieber,AUT,male,1993-02-12,1.77,70.0,rowing,0,0,0 -221321947,Paul Snow-Hansen,NZL,male,1990-09-03,1.74,64.0,sailing,0,0,0 -407521099,Paula Cristina Goncalves,BRA,female,1990-08-11,1.76,68.0,tennis,0,0,0 -134532053,Paula Ishibashi,BRA,female,1985-02-14,1.56,58.0,rugby sevens,0,0,0 -927721952,Paula Kania,POL,female,1992-11-06,1.73,63.0,tennis,0,0,0 -820732854,Paula Leiton Arrones,ESP,female,2000-04-27,1.87,98.0,aquatics,0,0,0 -990523633,Paula Lynn Obanana,USA,female,1985-03-19,1.61,58.0,badminton,0,0,0 -55960503,Paula Medin,ESP,female,1984-06-17,1.71,66.0,rugby sevens,0,0,0 -300343611,Paula Pareto,ARG,female,1986-01-16,1.5,48.0,judo,1,0,0 -794648133,Paula Reto,RSA,female,1990-05-03,1.7,62.0,golf,0,0,0 -870585003,Paula Ungureanu,ROU,female,1980-03-30,1.81,75.0,handball,0,0,0 -92938402,Paula Yamila Nizetich,ARG,female,1989-01-27,1.81,74.0,volleyball,0,0,0 -612802155,Paula-Claudia Todoran,ROU,female,1985-06-09,1.64,48.0,athletics,0,0,0 -250731306,Paulina Buziak,POL,female,1986-12-16,1.7,48.0,athletics,0,0,0 -102706397,Paulina Guba,POL,female,1991-05-14,1.83,104.0,athletics,0,0,0 -8892570,Paulina Schmiedel,GER,female,1993-05-29,1.75,61.0,aquatics,0,0,0 -483710937,Pauline Biscarat,FRA,female,1989-05-08,1.57,53.0,rugby sevens,0,0,0 -401150367,Pauline Ferrand Prevot,FRA,female,1992-02-10,1.64,52.0,cycling,0,0,0 -161474093,Pauline Hammarlund,SWE,female,1994-05-07,1.72,65.0,football,0,1,0 -780010350,Pauline Pousse,FRA,female,1987-09-17,1.84,84.0,athletics,0,0,0 -685006892,Pauline Schaefer,GER,female,1997-01-04,1.62,55.0,gymnastics,0,0,0 -934414617,Paulius Jankunas,LTU,male,1984-04-29,2.05,105.0,basketball,0,0,0 -208751523,Paulo Amotun,ROT,male,1992-01-01,1.7,61.0,athletics,0,0,0 -311057526,Paulo Batista,BRA,male,1993-01-27,1.85,90.0,hockey,0,0,0 -121145247,Paulo Bernardo Reichardt,PAR,male,1960-08-08,1.98,105.0,shooting,0,0,0 -168215468,Paulo Henrique,POR,male,1996-10-23,1.8,75.0,football,0,0,0 -185993510,Paulo Roberto Paula,BRA,male,1979-07-08,1.7,55.0,athletics,0,0,0 -538800855,Paulo Salemi,BRA,male,1993-08-08,1.91,94.0,aquatics,0,0,0 -495685388,Pauls Pujats,LAT,male,1991-08-06,1.87,83.0,athletics,0,0,0 -138975413,Pavel Bareisha,BLR,male,1991-02-16,1.93,118.0,athletics,0,0,0 -290600382,Pavel Chihuan,PER,male,1986-01-19,1.7,70.0,athletics,0,0,0 -88762996,Pavel Eigel,RUS,male,1990-03-01,1.78,81.0,canoe,0,0,0 -647042868,Pavel Ilyashenko,KAZ,male,1990-06-23,1.81,76.0,modern pentathlon,0,0,0 -266152637,Pavel Janecek,CZE,male,1994-04-07,1.95,87.0,aquatics,0,0,0 -286853003,Pavel Kastramin,BLR,male,1991-07-12,1.76,,boxing,0,0,0 -693513512,Pavel Kelemen,CZE,male,1991-05-28,1.85,83.0,cycling,0,0,0 -436853301,Pavel Khadasevich,BLR,male,1993-07-16,1.73,84.0,weightlifting,0,0,0 -99074928,Pavel Kochetkov,RUS,male,1986-03-07,1.84,72.0,cycling,0,0,0 -223572860,Pavel Maslak,CZE,male,1991-02-21,1.76,66.0,athletics,0,0,0 -455949717,Pavel Petrikov,CZE,male,1986-06-20,1.7,64.0,judo,0,0,0 -321729482,Pavel Sankovich,BLR,male,1990-06-29,1.82,77.0,aquatics,0,0,0 -663676373,Pavel Sozykin,RUS,male,1987-12-25,,,sailing,0,0,0 -654016001,Pavel Sukhov,RUS,male,1988-05-07,1.79,75.0,fencing,0,0,0 -941704131,Pavle Kostov,CRO,male,1987-09-28,1.8,82.0,sailing,0,0,0 -122873337,Pavlo Altukhov,UKR,male,1995-12-23,1.85,90.0,canoe,0,0,0 -124577739,Pavlo Korostylov,UKR,male,1997-11-05,1.86,100.0,shooting,0,0,0 -476028194,Pavlo Matsuyev,UKR,male,1990-11-05,1.81,72.0,sailing,0,0,0 -713017392,Pavlo Tymoshchenko,UKR,male,1986-10-13,1.92,78.0,modern pentathlon,0,1,0 -62996678,Pavlos Kagialis,GRE,male,1984-07-14,1.84,74.0,sailing,0,0,1 -18058430,Pavlos Kontides,CYP,male,1990-02-11,1.83,82.0,sailing,0,0,0 -517302167,Pavol Kopp,SVK,male,1978-12-27,1.83,74.0,shooting,0,0,0 -253678456,Pawel Fajdek,POL,male,1989-06-04,1.86,126.0,athletics,0,0,0 -196109685,Pawel Juraszek,POL,male,1994-10-08,,,aquatics,0,0,0 -491762709,Pawel Kaczmarek,POL,male,1995-09-08,1.83,85.0,canoe,0,0,0 -165395706,Pawel Kolodzinski,POL,male,1988-01-07,1.9,83.0,sailing,0,0,0 -943548615,Pawel Korzeniowski,POL,male,1985-07-09,1.92,86.0,aquatics,0,0,0 -301937277,Pawel Spisak,POL,male,1981-09-29,1.76,68.0,equestrian,0,0,0 -908561919,Pawel Wiesiolek,POL,male,1991-08-13,1.9,90.0,athletics,0,0,0 -147490715,Pawel Wojciechowski,POL,male,1989-06-06,1.9,85.0,athletics,0,0,0 -983705869,Pawel Zatorski,POL,male,1990-06-21,1.84,73.0,volleyball,0,0,0 -656447088,Peace Uko,NGR,female,1995-12-26,1.61,58.0,athletics,0,0,0 -34305365,Peamwilai Laopeam,THA,female,1983-10-20,1.63,,boxing,0,0,0 -260021417,Peder Fredricson,SWE,male,1972-01-30,1.89,80.0,equestrian,0,1,0 -361452199,Pedro Daniel Gomez,MEX,male,1990-12-31,1.78,70.0,athletics,0,0,0 -373434726,Pedro Francisco Ceballos Fuentes,VEN,male,1990-09-08,1.8,86.0,wrestling,0,0,0 -750408155,Pedro Ibarra,ARG,male,1985-09-11,1.74,75.0,hockey,1,0,0 -790093790,Pedro Isidro,POR,male,1985-07-17,1.75,58.0,athletics,0,0,0 -191275004,Pedro Luiz de Oliveira,BRA,male,1992-02-17,1.8,83.0,athletics,0,0,0 -337351687,Pedro Martins,POR,male,1990-02-14,1.77,70.0,badminton,0,0,0 -322923312,Pedro Miguel Pinotes,ANG,male,1989-09-30,1.92,85.0,aquatics,0,0,0 -863329559,Pedro P. Pichardo,CUB,male,1993-06-30,1.83,68.0,athletics,0,0,0 -85634845,Pedro Pascual,USA,male,1996-03-15,1.86,69.0,sailing,0,0,0 -696910008,Pedro Rangel,MEX,male,1988-09-16,1.92,85.0,volleyball,0,0,0 -173848012,Pedro Solberg,BRA,male,1986-03-27,1.94,90.0,volleyball,0,0,0 -66114756,Pedro Tavares de Almeida,BRA,male,1993-12-11,1.76,78.0,equestrian,0,0,0 -299349112,Pedro Veniss,BRA,male,1983-01-06,1.81,66.0,equestrian,0,0,0 -595693599,Pedro da Silva,BRA,male,1993-04-12,1.76,69.0,canoe,0,0,0 -202596543,Pedrya Seymour,BAH,female,1995-05-29,,,athletics,0,0,0 -45726783,Peer Borsky,SUI,male,1990-11-05,1.92,80.0,fencing,0,0,0 -703096164,Peeter Olesk,EST,male,1993-04-22,1.79,70.0,shooting,0,0,0 -553824405,Pei-Wun Lin,TPE,female,1999-11-25,1.74,61.0,aquatics,0,0,0 -678886243,Peimeng Zhang,CHN,male,1987-03-13,1.86,78.0,athletics,0,0,0 -374248899,Peina Chen,CHN,female,1989-06-19,1.72,63.0,sailing,0,1,0 -773795384,Penelope Leprevost,FRA,female,1980-08-01,1.75,55.0,equestrian,1,0,0 -703818710,Peng Han,CHN,female,1989-12-20,1.65,60.0,football,0,0,0 -709692617,Peng Soon Chan,MAS,male,1988-04-27,1.75,68.0,badminton,0,1,0 -983734556,Peng Tang,HKG,male,1981-02-04,1.78,77.0,table tennis,0,0,0 -431074718,Peng Zhou,CHN,male,1989-10-11,2.06,102.0,basketball,0,0,0 -239797947,Penny Oleksiak,CAN,female,2000-06-13,1.86,68.0,aquatics,1,1,2 -56646013,Penny Taylor,AUS,female,1981-05-24,1.85,72.0,basketball,0,0,0 -319525295,Pernilla Lindberg,SWE,female,1986-07-13,1.65,60.0,golf,0,0,0 -489476635,Pernille Blume,DEN,female,1994-05-14,1.7,58.0,aquatics,1,0,1 -653763497,Perrine Clauzel,FRA,female,1994-04-05,1.55,47.0,cycling,0,0,0 -847560874,Perry Baker,USA,male,1986-06-29,1.86,81.0,rugby sevens,0,0,0 -607325017,Perseus Karlstrom,SWE,male,1990-05-02,1.84,73.0,athletics,0,0,0 -831774748,Persis William-Mensah,GHA,female,1996-06-15,1.74,52.0,athletics,0,0,0 -923556859,Peruth Chemutai,UGA,female,1999-07-10,,,athletics,0,0,0 -71344147,Petar Cupac,CRO,male,1980-02-01,1.82,77.0,sailing,0,0,0 -325195799,Petar Gorsa,CRO,male,1988-01-11,1.8,82.0,shooting,0,0,0 -336214928,Petar Tomasevic,FRA,male,1989-01-02,1.92,100.0,aquatics,0,0,0 -78269978,Pete Reed,GBR,male,1981-07-27,1.97,100.0,rowing,1,0,0 -495318551,Peter Bacsi,HUN,male,1983-05-15,1.75,82.0,wrestling,0,0,0 -819872199,Peter Bernek,HUN,male,1992-04-13,1.93,83.0,aquatics,0,0,0 -624757765,Peter Bol,AUS,male,1994-02-22,1.77,63.0,athletics,0,0,0 -59945226,Peter Burling,NZL,male,1991-01-01,1.86,82.0,sailing,1,0,0 -136312420,Peter Caruth,IRL,male,1988-06-04,1.73,73.0,hockey,0,0,0 -934977346,Peter Chambers,GBR,male,1990-03-14,1.86,72.0,rowing,0,0,0 -817847784,Peter Elisa Henry,COK,male,1990-08-14,1.7,82.0,sailing,0,0,0 -496549000,Peter Gelle,SVK,male,1984-08-23,1.83,82.0,canoe,0,0,0 -846408678,Peter Holoda,HUN,male,1996-01-09,1.96,90.0,aquatics,0,0,0 -596350083,Peter Joppich,GER,male,1982-12-21,1.76,68.0,fencing,0,0,0 -856913107,Peter Kauzer,SLO,male,1983-09-08,1.77,70.0,canoe,0,1,0 -968123142,Peter Lambert,GBR,male,1986-12-03,1.9,90.0,rowing,0,0,0 -703243129,Peter Lombard Ii,GUM,male,1976-05-24,1.7,73.0,cycling,0,0,0 -713355622,Peter Matthews,JAM,male,1989-11-13,1.88,84.0,athletics,0,1,0 -246570363,Peter Molnar,HUN,male,1986-02-16,1.88,88.0,canoe,0,0,0 -788615502,Peter Mullenberg,NED,male,1987-12-30,1.83,,boxing,0,0,0 -730243242,Peter Mungai Warui,KEN,male,1981-04-22,,,boxing,0,0,0 -208033661,Peter Nagy,HUN,male,1986-01-16,1.92,159.0,weightlifting,0,0,0 -945986909,Peter Sagan,SVK,male,1990-01-26,1.82,79.0,cycling,0,0,0 -183289884,Peter Sidi,HUN,male,1978-09-11,1.76,86.0,shooting,0,0,0 -4878555,Peter Skantar,SVK,male,1982-07-20,1.82,78.0,canoe,1,0,0 -690076235,Peter Somfai,HUN,male,1980-04-02,1.88,85.0,fencing,0,0,1 -966741128,Peter Taylor,NZL,male,1984-01-03,1.89,70.0,rowing,0,0,0 -289227297,Peter Wiersum,NED,male,1984-11-01,1.73,55.0,rowing,0,0,1 -338590323,Peter van Schie,NED,male,1988-03-03,2.0,98.0,rowing,0,0,0 -219934113,Peterson dos Santos,BRA,male,1991-03-31,1.81,70.0,athletics,0,0,0 -70412036,Petit David Minkoumba,CMR,male,1989-02-27,1.71,92.0,weightlifting,0,0,0 -878015006,Petr Asayonak,BLR,male,1993-02-27,1.65,84.0,weightlifting,0,0,0 -874838042,Petr Frydrych,CZE,male,1988-01-13,2.0,100.0,athletics,0,0,0 -211340599,Petr Khamukov,RUS,male,1991-07-15,1.72,,boxing,0,0,0 -799782526,Petr Koukal,CZE,male,1985-12-14,1.92,92.0,badminton,0,0,0 -166411555,Petr Svoboda,CZE,male,1984-10-10,1.95,90.0,athletics,0,0,0 -402795962,Petr Vakoc,CZE,male,1992-07-11,1.8,70.0,cycling,0,0,0 -20631920,Petra Fontanive,SUI,female,1988-10-10,1.7,59.0,athletics,0,0,0 -6323208,Petra Kvitova,CZE,female,1990-03-08,1.81,68.0,tennis,0,0,1 -705078758,Petra Lovas,HUN,female,1980-07-04,1.58,48.0,table tennis,0,0,0 -395735676,Petra Maarit Olli,FIN,female,1994-06-05,1.63,64.0,wrestling,0,0,0 -326772928,Petra Zublasing,ITA,female,1989-06-30,1.64,55.0,shooting,0,0,0 -956175465,Petrea Webster,NZL,female,1988-03-30,1.65,56.0,hockey,0,0,0 -921402374,Petrissa Solja,GER,female,1994-03-11,1.68,67.0,table tennis,0,1,0 -780238765,Petro Pakhnyuk,AZE,male,1991-11-26,1.73,64.0,gymnastics,0,0,0 -797449371,Petter Menning,SWE,male,1987-08-08,1.87,92.0,canoe,0,0,0 -556102017,Pezhman Ghalehnoei,IRI,male,1992-01-29,1.9,96.0,athletics,0,0,0 -975709612,Phannapa Harnsujin,THA,female,1997-09-14,1.72,57.0,taekwondo,0,0,0 -905495882,Phara Anacharsis,FRA,female,1983-12-17,1.77,58.0,athletics,0,0,0 -966511165,Phelan Hill,GBR,male,1979-07-21,1.72,55.0,rowing,1,0,0 -729088638,Phetetso Monese,LES,male,1984-09-22,,,cycling,0,0,0 -11938440,Phil Burgess,GBR,male,1988-07-01,1.8,92.0,rugby sevens,0,1,0 -514082441,Philadelphia Orlando,KEN,female,1990-02-18,1.54,72.0,rugby sevens,0,0,0 -805140825,Philip Dalhausser,USA,male,1980-01-26,2.06,92.0,volleyball,0,0,0 -492969583,Philip Heintz,GER,male,1991-02-21,1.94,85.0,aquatics,0,0,0 -229176554,Philip Hindes,GBR,male,1992-09-22,1.78,82.0,cycling,1,0,0 -289790809,Philip Milanov,BEL,male,1991-07-06,1.98,110.0,athletics,0,0,0 -286704073,Philip Snyman,RSA,male,1987-03-26,1.88,95.0,rugby sevens,0,0,1 -194978733,Philip Stenmalm,SWE,male,1992-03-03,2.0,103.0,handball,0,0,0 -615802244,Philipine van Aanholt,ARU,female,1992-05-26,1.71,65.0,sailing,0,0,0 -544522799,Philipp Buhl,GER,male,1989-12-19,1.87,85.0,sailing,0,0,0 -915966505,Philipp Kohlschreiber,GER,male,1983-10-16,1.8,70.0,tennis,0,0,0 -377804310,Philipp Max,GER,male,1993-09-30,1.77,76.0,football,0,1,0 -989265999,Philipp Pflieger,GER,male,1987-07-16,1.88,70.0,athletics,0,0,0 -417212497,Philipp Wende,GER,male,1985-07-04,1.99,90.0,rowing,1,0,0 -858470126,Philipp Wolf,GER,male,1992-08-15,1.96,96.0,aquatics,0,0,0 -220899684,Philippe Gagne,CAN,male,1997-10-23,1.8,68.0,aquatics,0,0,0 -897247005,Philippe Gilbert,BEL,male,1982-07-05,1.79,72.0,cycling,0,0,0 -274768032,Philippe Rozier,FRA,male,1963-02-05,1.73,63.0,equestrian,1,0,0 -595488187,Phillip Chew,USA,male,1994-05-16,1.73,90.0,badminton,0,0,0 -355129780,Phillip Dutton,USA,male,1963-09-13,1.68,68.0,equestrian,0,0,1 -330465212,Phillip Kipyeko,UGA,male,1995-01-01,,,athletics,0,0,0 -113831851,Phumlani Ntshangase,RSA,male,1994-12-24,1.76,71.0,football,0,0,0 -417884111,Phumlile Ndzinisa,SWZ,female,1992-08-21,1.7,57.0,athletics,0,0,0 -784201731,Phuoc Hoang,VIE,male,1993-03-24,1.8,75.0,aquatics,0,0,0 -524378907,Phuoc Hung Pham,VIE,male,1988-06-10,1.62,55.0,gymnastics,0,0,0 -74346826,Phupu Lamu Khatri,NEP,female,1996-10-05,1.63,63.0,judo,0,0,0 -864167150,Phuttharaksa Neegree,THA,female,1974-02-25,1.66,67.0,rowing,0,0,0 -888940150,Phylicia George,CAN,female,1987-11-16,1.78,65.0,athletics,0,0,0 -221313812,Phyllis Francis,USA,female,1992-05-04,1.81,71.0,athletics,1,0,0 -775856261,Pia-Sophie Oldhafer,GER,female,1992-07-01,1.66,55.0,hockey,0,0,1 -196591431,Pier Paolo Petroni,ITA,male,1987-03-30,1.8,70.0,modern pentathlon,0,0,0 -193264881,Piero Codia,ITA,male,1989-10-22,1.9,80.0,aquatics,0,0,0 -93324634,Pierpaolo Frattini,ITA,male,1984-02-23,1.92,92.0,rowing,0,0,0 -652989457,Pierre Duprat,FRA,male,1989-11-26,1.75,73.0,judo,0,0,0 -424639600,Pierre Gilles Lakafia,FRA,male,1987-03-12,1.83,95.0,rugby sevens,0,0,0 -381048812,Pierre Houin,FRA,male,1994-04-15,1.82,74.0,rowing,1,0,0 -760941047,Pierre Le Corre,FRA,male,1990-02-03,1.76,65.0,triathlon,0,0,0 -273264631,Pierre Plihon,FRA,male,1989-10-29,1.84,130.0,archery,0,0,0 -546837114,Pierre Pujol,FRA,male,1984-07-13,1.86,90.0,volleyball,0,0,0 -188712292,Pierre Volla,FRA,male,1981-07-16,1.71,69.0,equestrian,0,0,0 -637459176,Pierre le Coq,FRA,male,1989-01-17,1.86,72.0,sailing,0,0,1 -703056678,Pierre-Ambroise Bosse,FRA,male,1992-05-11,1.85,68.0,athletics,0,0,0 -565117926,Pierre-Hugues Herbert,FRA,male,1991-03-18,1.89,79.0,tennis,0,0,0 -8420504,Pieter Braun,NED,male,1993-01-21,1.87,85.0,athletics,0,0,0 -635258187,Pieter Bulling,NZL,male,1993-03-02,1.79,77.0,cycling,0,0,0 -185824997,Pieter Timmers,BEL,male,1988-01-21,2.0,89.0,aquatics,0,1,0 -712300678,Pieter-Jan Hannes,BEL,male,1992-10-30,1.86,75.0,athletics,0,0,0 -381556932,Pieter-Jan Postma,NED,male,1982-01-10,1.89,99.0,sailing,0,0,0 -556354189,Pietro Figlioli,ITA,male,1984-05-29,1.91,98.0,aquatics,0,0,1 -312015477,Pietro Roman,ITA,male,1989-09-20,1.78,72.0,equestrian,0,0,0 -359623981,Pietro Ruta,ITA,male,1987-08-06,1.85,70.0,rowing,0,0,0 -965100500,Pietro Zucchetti,ITA,male,1981-01-25,1.88,82.0,sailing,0,0,0 -538317694,Pilar Lucrecia Cordon,ESP,female,1973-03-04,1.75,58.0,equestrian,0,0,0 -229833243,Pilar Romang,ARG,female,1992-07-09,1.6,50.0,hockey,0,0,0 -258972749,Pilar Shimizu,GUM,female,1996-05-27,1.68,83.0,aquatics,0,0,0 -417310154,Pim-On Klaisuban,THA,female,1992-07-07,1.67,75.0,shooting,0,0,0 -430131884,Pimsiri Sirikaew,THA,female,1990-04-25,1.52,57.0,weightlifting,0,1,0 -864763299,Ping Li,QAT,male,1986-05-18,1.78,65.0,table tennis,0,0,0 -859561876,Ping Yao,CHN,female,1993-03-19,1.6,58.0,cycling,0,0,0 -138538135,Pingan Shen,CHN,male,1994-04-20,1.82,73.0,cycling,0,0,0 -381746437,Piotr Daniluk,POL,male,1982-01-15,1.75,72.0,shooting,0,0,0 -838910156,Piotr Juszczak,POL,male,1988-07-03,1.97,94.0,rowing,0,0,0 -489240868,Piotr Kantor,POL,male,1992-05-03,2.0,90.0,volleyball,0,0,0 -156639283,Piotr Lisek,POL,male,1992-08-16,1.94,92.0,athletics,0,0,0 -193728095,Piotr Malachowski,POL,male,1983-06-07,1.93,130.0,athletics,0,1,0 -630205806,Piotr Myszka,POL,male,1981-07-25,1.86,74.0,sailing,0,0,0 -798661107,Piotr Nowakowski,POL,male,1987-12-18,2.05,90.0,volleyball,0,0,0 -61020520,Piotr Pazinski,POL,male,1987-08-07,1.87,80.0,taekwondo,0,0,0 -978409862,Piotr Szczepanski,POL,male,1988-07-31,1.8,76.0,canoe,0,0,0 -205004197,Piotr Wyszomirski,POL,male,1988-01-06,1.95,95.0,handball,0,0,0 -780018325,Pippa Funnell,GBR,female,1968-10-07,1.68,68.0,equestrian,0,0,0 -660600598,Pippa Hayward,NZL,female,1990-05-23,1.76,69.0,hockey,0,0,0 -930203213,Pirmammad Aliyev,KAZ,male,1997-11-02,1.7,63.0,gymnastics,0,0,0 -789056524,Pirmin Blaak,NED,male,1988-03-08,1.88,88.0,hockey,0,0,0 -988729820,Pita Nikolas Taufatofua,TGA,male,1983-11-05,1.91,100.0,taekwondo,0,0,0 -825607253,Pite,POR,male,1994-08-22,1.86,80.0,football,0,0,0 -624453875,Po Heung Lin,HKG,female,1985-05-02,1.64,58.0,fencing,0,0,0 -249071689,Pol Arias Dourdet,AND,male,1996-08-08,1.75,80.0,aquatics,0,0,0 -799207392,Pol Moya,AND,male,1996-12-09,1.78,62.0,athletics,0,0,0 -172536875,Pol Pla,ESP,male,1993-02-18,1.77,75.0,rugby sevens,0,0,0 -704580585,Polat Kemboi Arikan,TUR,male,1990-12-12,1.75,59.0,athletics,0,0,0 -974099683,Poliana,BRA,female,1991-02-06,1.72,60.0,football,0,0,0 -39584129,Poliana Okimoto,BRA,female,1983-03-08,1.65,52.0,aquatics,0,0,1 -343525700,Polina Kuznetsova,RUS,female,1987-06-10,1.68,60.0,handball,1,0,0 -543469512,Polina Mikhailova,RUS,female,1986-08-31,1.68,60.0,table tennis,0,0,0 -593041020,Polina Repina,KAZ,female,1990-06-29,1.7,50.0,athletics,0,0,0 -931143770,Polly Powrie,NZL,female,1987-12-09,1.73,70.0,sailing,0,1,0 -663848389,Polly Swann,GBR,female,1988-06-05,1.85,76.0,rowing,0,1,0 -171878949,Polona Batagelj,SLO,female,1989-06-07,1.73,53.0,cycling,0,0,0 -983536887,Polona Hercog,SLO,female,1991-01-20,1.85,70.0,tennis,0,0,0 -254645346,Poonam Rani,IND,female,1993-02-08,1.52,53.0,hockey,0,0,0 -704169798,Poovamma Raju Machettira,IND,female,1990-06-05,1.74,58.0,athletics,0,0,0 -678194406,Popole Misenga,ROT,male,1992-02-25,1.8,90.0,judo,0,0,0 -327752493,Popoola Saliu,NGR,male,1994-08-07,1.7,,football,0,0,1 -319595440,Pornanong Phatlum,THA,female,1989-12-04,1.6,55.0,golf,0,0,0 -169038848,Porntip Buranaprasertsuk,THA,female,1991-10-24,1.65,61.0,badminton,0,0,0 -508827063,Portia Woodman,NZL,female,1991-07-12,1.69,74.0,rugby sevens,0,1,0 -487961386,Pourya Norouziyan,IRI,male,1992-01-22,1.76,63.0,shooting,0,0,0 -373005438,Prakash Nanjappa,IND,male,1976-02-29,1.75,85.0,shooting,0,0,0 -126137216,Praneel Naidu,FIJ,male,1995-01-29,1.76,66.0,football,0,0,0 -339114990,Prarthana G. Thombare,IND,female,1994-06-18,1.65,58.0,tennis,0,0,0 -980803991,Praveen Jordan,INA,male,1993-04-26,1.83,88.0,badminton,0,0,0 -56351006,Predrag Filipovic,SRB,male,1978-10-05,1.82,72.0,athletics,0,0,0 -701283758,Predrag JOKIC,MNE,male,1983-02-03,1.88,102.0,aquatics,0,0,0 -670821875,Preeti Dubey,IND,female,1998-06-13,1.66,53.0,hockey,0,0,0 -534519239,Prenam Pesse,TOG,female,1997-12-31,,,athletics,0,0,0 -990896999,Primoz Roglic,SLO,male,1989-10-29,1.77,66.0,cycling,0,0,0 -11988746,Priscilla Frederick,ANT,female,1989-02-14,1.83,70.0,athletics,0,0,0 -575956679,Priscilla Gneto,FRA,female,1991-08-03,1.64,52.0,judo,0,0,0 -230616729,Priscilla Stevaux Carnaval,BRA,female,1993-12-02,1.56,58.0,cycling,0,0,0 -376160174,Przemyslaw Krajewski,POL,male,1987-01-20,1.84,87.0,handball,0,0,0 -324476209,Przemyslaw Wacha,POL,male,1981-01-31,1.82,81.0,badminton,0,0,0 -319585560,Pui Yin Yip,HKG,female,1987-08-06,1.64,61.0,badminton,0,0,0 -654021545,Puttita Supajirakul,THA,female,1996-03-29,1.84,72.0,badminton,0,0,0 -513769796,Qais Ashfaq,GBR,male,1993-03-10,1.7,,boxing,0,0,0 -598446702,Qendrim Guri,KOS,male,1993-11-27,1.75,70.0,cycling,0,0,0 -321163659,Qi Zhou,CHN,male,1996-01-16,2.17,95.0,basketball,0,0,0 -17611557,Qian Chen,CHN,female,1987-01-14,1.63,54.0,modern pentathlon,0,0,0 -441490855,Qian Li,POL,female,1986-07-30,1.6,54.0,table tennis,0,0,0 -497917027,Qian Li,CHN,female,1990-06-06,1.8,,boxing,0,0,1 -889734754,Qian Ren,CHN,female,2001-02-20,1.62,49.0,aquatics,1,0,0 -517073047,Qian Yu,CHN,female,1992-03-25,1.66,55.0,hockey,0,0,0 -596026558,Qiang Li,CHN,male,1989-01-04,1.86,84.0,canoe,0,0,0 -725478524,Qiang Meng,CHN,male,1987-07-03,1.86,122.0,wrestling,0,0,0 -521823425,Qiang Pan,CHN,male,1985-01-21,1.85,85.0,shooting,0,0,0 -58421484,Qiang Wang,CHN,female,1992-01-14,1.72,60.0,tennis,0,0,0 -67441417,Qiangbing Li,AUT,female,1985-04-30,1.66,49.0,table tennis,0,0,0 -212028981,Qianxun Hu,CHN,male,1987-09-18,1.78,,boxing,0,0,0 -657089417,Qibin Zhang,CHN,male,1994-06-23,1.85,85.0,aquatics,0,0,0 -143319125,Qifeng Pu,CHN,male,1986-01-03,1.84,80.0,shooting,0,0,0 -114459374,Qinan Zhu,CHN,male,1984-11-15,1.83,75.0,shooting,0,0,0 -509966707,Qing Ma,CHN,female,1992-08-24,1.74,68.0,canoe,0,0,0 -673843844,Qingling Song,CHN,female,1986-07-22,1.74,69.0,hockey,0,0,0 -119828579,Qingquan Long,CHN,male,1990-12-03,1.5,56.0,weightlifting,1,0,0 -461528297,Qiong Wu,CHN,female,1989-04-28,1.67,59.0,hockey,0,0,0 -171553885,Qiqi Yuan,CHN,female,1995-10-26,1.55,50.0,athletics,0,0,0 -677460608,Qiuxia Cui,CHN,female,1990-09-11,1.66,63.0,hockey,0,0,0 -207837009,Qiuyue Wei,CHN,female,1988-09-26,1.82,65.0,volleyball,1,0,0 -35437978,Quadri Aruna,NGR,male,1988-08-09,1.8,81.0,table tennis,0,0,0 -612840820,Quedjau Nhabali,UKR,male,1990-07-08,1.87,90.0,judo,0,0,0 -385666002,Quentin Rew,NZL,male,1984-07-16,1.74,60.0,athletics,0,0,0 -629107636,Quinta Steenbergen,NED,female,1985-04-02,1.89,75.0,volleyball,0,0,0 -607332373,Quoc Cuong Tran,VIE,male,1974-07-27,1.7,68.0,shooting,0,0,0 -910962257,R. Mohan Kumar,IND,male,1996-12-14,,,athletics,0,0,0 -443066075,R.m. Sumeda Ranasinghe,SRI,male,1991-02-10,1.82,82.0,athletics,0,0,0 -172012231,Rababe Arafi,MAR,female,1991-01-12,1.67,52.0,athletics,0,0,0 -465159345,Rabah Yousif,GBR,male,1986-12-11,1.86,74.0,athletics,0,0,0 -437311401,Rabia Guelec,GER,female,1994-06-05,1.75,62.0,taekwondo,0,0,0 -775207992,Race Imboden,USA,male,1993-04-17,1.86,74.0,fencing,0,0,1 -667595731,Rachael Adams,USA,female,1990-06-03,1.88,81.0,volleyball,0,0,1 -348723574,Rachael Lynch,AUS,female,1986-07-02,1.79,68.0,hockey,0,0,0 -519575300,Rachael Mbogo,KEN,female,1982-12-20,1.7,64.0,rugby sevens,0,0,0 -95839942,Rachel Cawthorn,GBR,female,1988-11-03,1.77,70.0,canoe,0,0,0 -728971691,Rachel Dawson,USA,female,1985-08-02,1.78,68.0,hockey,0,0,0 -305014449,Rachel Fattal,USA,female,1993-12-10,1.73,65.0,aquatics,1,0,0 -559172027,Rachel Jarry,AUS,female,1991-12-06,1.86,77.0,basketball,0,0,0 -676779702,Rachel Klamer,NED,female,1990-10-08,1.66,51.0,triathlon,0,0,0 -844090644,Rachel Neylan,AUS,female,1982-03-09,1.69,52.0,cycling,0,0,0 -935732603,Rachel Nicol,CAN,female,1993-02-16,1.6,61.0,aquatics,0,0,0 -646854550,Rachel Tallent,AUS,female,1993-02-20,1.67,54.0,athletics,0,0,0 -240097025,Rachele Bruni,ITA,female,1990-11-04,1.7,59.0,aquatics,0,1,0 -487277130,Rachid Ait-Atmane,ALG,male,1993-02-04,1.85,75.0,football,0,0,0 -284352083,Rachid Kisri,MAR,male,1975-08-02,1.79,60.0,athletics,0,0,0 -449827888,Rachid Sidibe,BUR,male,1990-12-02,1.77,119.0,judo,0,0,0 -644175866,Racquel Sheath,NZL,female,1994-11-27,1.65,57.0,cycling,0,0,0 -937396787,Radek Juska,CZE,male,1993-03-08,1.94,84.0,athletics,0,0,0 -627998847,Radek Stepanek,CZE,male,1978-11-27,1.86,78.0,tennis,0,0,1 -577467717,Radhouane Chebbi,TUN,male,1985-08-08,1.74,125.0,wrestling,0,0,0 -937210805,Radik Isaev,AZE,male,1989-09-26,2.0,93.0,taekwondo,1,0,0 -644415749,Radmila Petrovic,MNE,female,1988-04-19,1.75,60.0,handball,0,0,0 -81383453,Radomyos Matjiur,THA,male,1988-04-02,1.82,82.0,aquatics,0,0,0 -440186734,Radoslava Mavrodieva,BUL,female,1987-03-13,1.76,94.0,athletics,0,0,0 -850134713,Radoslaw Baran,POL,male,1989-11-05,1.77,97.0,wrestling,0,0,0 -581644071,Radoslaw Kawecki,POL,male,1991-08-16,1.86,77.0,aquatics,0,0,0 -997901130,Radu Albot,MDA,male,1989-11-11,1.75,70.0,tennis,0,0,0 -457575476,Rafael Alcantara,BRA,male,1993-02-12,1.74,65.0,football,1,0,0 -825109201,Rafael Andrade,BRA,male,1986-05-07,1.68,,gymnastics,0,0,0 -724962293,Rafael Antonio Lacayo Paladino,NCA,male,1998-11-19,1.78,59.0,shooting,0,0,0 -730338405,Rafael Buzacarini,BRA,male,1991-10-06,1.83,100.0,judo,0,0,0 -731749263,Rafael Cabrera Bello,ESP,male,1984-05-25,1.87,83.0,golf,0,0,0 -930296757,Rafael Capote,QAT,male,1987-10-05,1.98,106.0,handball,0,0,0 -632477118,Rafael Castillo,CUB,male,1993-08-12,2.02,87.0,taekwondo,0,0,0 -558313217,Rafael Hettsheimeir,BRA,male,1986-06-16,2.08,120.0,basketball,0,0,0 -125913109,Rafael Luz,BRA,male,1992-02-11,1.88,95.0,basketball,0,0,0 -845065634,Rafael Nadal,ESP,male,1986-06-03,1.85,79.0,tennis,1,0,0 -691523372,Rafael Quintero,PUR,male,1994-07-24,1.8,68.0,aquatics,0,0,0 -501691381,Rafael Silva,BRA,male,1987-05-11,2.03,160.0,judo,0,0,1 -361799297,Rafaela Silva,BRA,female,1992-04-24,1.69,57.0,judo,1,0,0 -98299217,Rafaelle,BRA,female,1991-06-18,1.75,67.0,football,0,0,0 -155018393,Rafal Augustyn,POL,male,1984-05-14,1.8,82.0,athletics,0,0,0 -178643168,Rafal Buszek,POL,male,1987-04-28,1.94,81.0,volleyball,0,0,0 -290922761,Rafal Fedaczynski,POL,male,1980-12-03,1.68,58.0,athletics,0,0,0 -888503746,Rafal Majka,POL,male,1989-09-12,1.73,61.0,cycling,0,0,1 -740945281,Rafal Omelko,POL,male,1989-01-16,1.94,82.0,athletics,0,0,0 -986457519,Rafal Rosolski,POL,male,1991-05-27,1.88,86.0,canoe,0,0,0 -650690707,Rafal Sarnecki,POL,male,1990-01-08,1.75,81.0,cycling,0,0,0 -397809896,Rafith Rodriguez,COL,male,1989-06-01,1.9,75.0,athletics,0,0,0 -607055937,Ragab Abdalla,EGY,male,1991-03-04,1.7,93.0,weightlifting,0,0,0 -546687693,Raghunath Vokkaliga,IND,male,1988-11-01,1.79,89.0,hockey,0,0,0 -913614600,Ragna Agerup,NOR,female,1995-06-22,,,sailing,0,0,0 -470122397,Rahel Fseha Gebresilassie,ETH,female,1995-11-03,1.6,55.0,aquatics,0,0,0 -215186405,Raheleh Asemani,BEL,female,1989-06-21,1.71,59.0,taekwondo,0,0,0 -932824514,Rahma Ben Ali,TUN,female,1993-09-15,1.59,55.0,taekwondo,0,0,0 -680456945,Raiber Jose Rodriguez Orozco,VEN,male,1990-12-28,1.68,69.0,wrestling,0,0,0 -296185766,Raijieli Daveua,FIJ,female,1992-05-30,,69.0,rugby sevens,0,0,0 -711937461,Raissa Nasser,CMR,female,1994-08-19,1.73,73.0,volleyball,0,0,0 -608420333,Raiza Goulao-Henrique,BRA,female,1991-02-28,1.68,56.0,cycling,0,0,0 -425162621,Rajani Etimarpu,IND,female,1990-06-09,1.72,63.0,hockey,0,0,0 -818043080,Rajeev Ram,USA,male,1984-03-18,,,tennis,0,1,0 -465151965,Rajiv Ouseph,GBR,male,1986-08-30,1.91,,badminton,0,0,0 -364210839,Ralf Buchheim,GER,male,1983-10-10,1.83,72.0,shooting,0,0,0 -907089617,Ralph Goveia Assafrao,ZAM,male,1996-03-08,1.87,77.0,aquatics,0,0,0 -717986475,Raluca Olaru,ROU,female,1989-03-03,1.74,63.0,tennis,0,0,0 -168597162,Ramadan Darwish,EGY,male,1988-01-29,1.88,100.0,judo,0,0,0 -781913285,Ramandeep Singh,IND,male,1993-04-01,1.79,70.0,hockey,0,0,0 -186916471,Rami Anis,ROT,male,1991-03-18,1.78,78.0,aquatics,0,0,0 -554313909,Rami Antero Hietaniemi,FIN,male,1982-12-28,1.8,92.0,wrestling,0,0,0 -448967973,Ramil Guliyev,TUR,male,1990-05-29,1.86,80.0,athletics,0,0,0 -171315396,Ramiro Quintana,ARG,male,1977-03-07,1.72,70.0,equestrian,0,0,0 -411617493,Ramon Gittens,BAR,male,1987-07-20,1.8,79.0,athletics,0,0,0 -700638959,Ramon Pileta,HON,male,1977-03-20,1.85,130.0,judo,0,0,0 -115217179,Ramona Papaioannou,CYP,female,1989-06-15,1.7,63.0,athletics,0,0,0 -605985287,Ramu Tokashiki,JPN,female,1991-06-11,1.91,85.0,basketball,0,0,0 -655303301,Ramunas Navardauskas,LTU,male,1988-01-30,1.9,78.0,cycling,0,0,0 -479803559,Ran Sui,CHN,male,1992-06-25,1.93,96.0,basketball,0,0,0 -495175841,Rana Nakano,JPN,female,1997-09-10,1.57,43.0,gymnastics,0,0,0 -177719798,Randy Leru,CUB,male,1995-11-07,1.73,72.0,gymnastics,0,0,0 -512106785,Rani,IND,female,1994-12-04,1.6,60.0,hockey,0,0,0 -957169237,Ranokhon Amanova,UZB,female,1994-03-08,1.74,62.0,aquatics,0,0,0 -332379601,Ranomi Kromowidjojo,NED,female,1990-08-20,1.8,72.0,aquatics,0,0,0 -738350082,Raphael Gagne,CAN,male,1987-07-16,1.73,67.0,cycling,0,0,0 -160405615,Raphael Marcel Holzdeppe,GER,male,1989-09-28,1.83,78.0,athletics,0,0,0 -470376574,Raphael Stacchiotti,LUX,male,1992-03-09,1.83,80.0,aquatics,0,0,0 -57685762,Raquel Fernandes,BRA,female,1991-03-21,1.6,56.0,football,0,0,0 -953499881,Raquel Gonzalez,ESP,female,1989-11-16,1.68,58.0,athletics,0,0,0 -254376988,Raquel Kochhann,BRA,female,1992-10-06,1.72,70.0,rugby sevens,0,0,0 -930359048,Rasa Drazdauskaite,LTU,female,1981-03-20,1.73,58.0,athletics,0,0,0 -718297229,Rashid Hamad,QAT,male,1987-10-18,1.68,85.0,shooting,0,0,0 -15159824,Rashid Yunusmetov,KAZ,male,1979-07-09,1.8,100.0,shooting,0,0,0 -223728241,Rasmus Christian Quaade,DEN,male,1990-01-07,1.87,77.0,cycling,0,0,1 -258311001,Rasmus Magi,EST,male,1992-05-04,1.87,77.0,athletics,0,0,0 -950792939,Rasmus Quist,DEN,male,1980-04-05,1.73,72.0,rowing,0,0,0 -86534695,Rasul Chunayev,AZE,male,1991-01-07,1.71,66.0,wrestling,0,0,1 -553576191,Ratchanok Intanon,THA,female,1995-02-05,1.69,59.0,badminton,0,0,0 -682664911,Ratu Nakalevu,FIJ,male,1994-03-07,1.7,73.0,football,0,0,0 -722317723,Ratu Waranaivalu,FIJ,male,1995-09-16,1.75,72.0,football,0,0,0 -595425086,Raul Curiel,MEX,male,1995-12-06,1.77,,boxing,0,0,0 -50353432,Raul Hernandez Hidalgo,CUB,male,1992-09-22,1.9,71.0,rowing,0,0,0 -76349078,Raul Lopez,MEX,male,1993-02-22,1.84,74.0,football,0,0,0 -776415123,Raul Machacuay,PER,male,1983-02-18,1.65,57.0,athletics,0,0,0 -720271360,Raul Must,EST,male,1987-11-09,1.76,70.0,badminton,0,0,0 -728492983,Raul Pacheco,PER,male,1979-04-26,1.67,55.0,athletics,0,0,0 -788112409,Raulzinho Neto,BRA,male,1992-05-19,1.92,82.0,basketball,0,0,0 -874212245,Raven Saunders,USA,female,1996-05-15,1.66,108.0,athletics,0,0,0 -412234699,Ravinder Khatri,IND,male,1992-05-15,1.68,85.0,wrestling,0,0,0 -717317078,Ray Bassil,LIB,female,1988-10-20,1.75,65.0,shooting,0,0,0 -920376731,Rayderley Miguel Zapata,ESP,male,1993-05-26,1.69,71.0,gymnastics,0,0,0 -479953072,Raymond Kibet,KEN,male,1996-02-04,1.85,64.0,athletics,0,0,0 -781144193,Raymond Ovinou,PNG,male,1984-09-06,1.69,68.0,judo,0,0,0 -677348878,Rayssa Costa,BRA,female,1991-03-16,1.76,63.0,fencing,0,0,0 -372384369,Rayton Nduku Okwiri,KEN,male,1986-03-26,1.8,,boxing,0,0,0 -707114327,Rebeca Andrade,BRA,female,1999-05-08,1.45,45.0,gymnastics,0,0,0 -35093364,Rebeca Quinteros Ortiz,ESA,female,1997-08-28,,,aquatics,0,0,0 -130438348,Rebecca Downie,GBR,female,1992-01-24,1.56,54.0,gymnastics,0,0,0 -698057200,Rebecca Gallantree,GBR,female,1984-08-19,1.66,61.0,aquatics,0,0,0 -109265734,Rebecca Henderson,AUS,female,1991-09-27,1.58,49.0,cycling,0,0,0 -437939980,Rebecca Heyliger,BER,female,1992-11-24,1.61,54.0,aquatics,0,0,0 -708254383,Rebecca Howard,CAN,female,1979-05-09,1.62,70.0,equestrian,0,0,0 -360632507,Rebecca James,GBR,female,1991-11-29,1.71,66.0,cycling,0,2,0 -564979166,Rebecca Ndolo Muambo,CMR,female,1985-07-16,1.52,48.0,wrestling,0,0,0 -711142045,Rebecca Quinn,CAN,female,1995-08-11,1.76,66.0,football,0,0,1 -253747465,Rebecca Rolls,NZL,female,1975-08-22,1.78,72.0,football,0,0,0 -108904189,Rebecca Scown,NZL,female,1983-08-10,1.78,70.0,rowing,0,1,0 -140526328,Rebecca Tavo,FIJ,female,1983-03-23,1.72,75.0,rugby sevens,0,0,0 -890871290,Rebeka Koha,LAT,female,1998-05-19,1.57,52.0,weightlifting,0,0,0 -20518421,Rebekah Stott,NZL,female,1993-06-17,1.72,63.0,football,0,0,0 -841170860,Rebekah Tiler,GBR,female,1999-01-13,1.63,69.0,weightlifting,0,0,0 -98483508,Rebekka Haase,GER,female,1993-01-02,1.7,58.0,athletics,0,0,0 -795341579,Rebii Simon,GBR,female,1996-07-06,1.75,70.0,canoe,0,0,0 -409979850,Rechael Tonjor,NGR,female,1991-10-14,1.68,57.0,aquatics,0,0,0 -874150353,Reda Benbaziz,ALG,male,1993-09-05,1.85,,boxing,0,0,0 -873696755,Redouane Cherifi,ALG,male,1993-02-22,1.8,70.0,football,0,0,0 -684887323,Reem Mansour,EGY,female,1993-12-20,1.69,76.0,archery,0,0,0 -415954257,Reem Mohamed Hussein Elsayed kassem,EGY,female,1995-10-01,1.75,75.0,aquatics,0,0,0 -825382404,Refiloe Jane,RSA,female,1992-08-04,1.59,55.0,football,0,0,0 -437714118,Regan Gough,NZL,male,1996-10-06,1.83,71.0,cycling,0,0,0 -578826400,Regan Lamble,AUS,female,1991-10-14,1.74,55.0,athletics,0,0,0 -820273693,Regan Ware,NZL,male,1994-08-07,1.84,93.0,rugby sevens,0,0,0 -530301493,Regine Tugade,GUM,female,1998-01-28,1.65,50.0,athletics,0,0,0 -503502071,Rei Higuchi,JPN,male,1996-01-28,1.63,63.0,wrestling,0,1,0 -487797823,Reid Coolsaet,CAN,male,1979-07-29,1.73,62.0,athletics,0,0,0 -634606811,Reidis Ramos,CUB,male,1996-07-21,1.72,76.0,athletics,0,0,0 -102628929,Reiko Takeda,JPN,female,1984-12-14,1.51,48.0,equestrian,0,0,0 -728475978,Rein Taaramae,EST,male,1987-04-24,1.85,75.0,cycling,0,0,0 -710574826,Reina-Flor Okori,GEQ,female,1980-05-02,1.63,56.0,athletics,0,0,0 -705591992,Reinder Nummerdor,NED,male,1976-09-10,1.94,87.0,volleyball,0,0,0 -863462189,Reineris Salas Perez,CUB,male,1987-03-17,1.8,86.0,wrestling,0,0,0 -315497786,Reinier Estpinan,CUB,male,1982-12-05,1.7,72.0,shooting,0,0,0 -133025640,Reinier Rojas Cohimbra,CUB,male,1986-07-31,1.9,78.0,volleyball,0,0,0 -189944782,Reinier Torres,CUB,male,1990-02-15,1.82,85.0,canoe,0,0,0 -19704992,Rejoice Kapfumvuti,ZIM,female,1991-11-18,1.6,53.0,football,0,0,0 -165032675,Reka Gyorgy,HUN,female,1996-05-25,1.76,63.0,aquatics,0,0,0 -263751358,Reka-Luca Jani,HUN,female,1991-07-31,1.6,57.0,tennis,0,0,0 -776117067,Remi Garsau,FRA,male,1984-07-19,1.9,82.0,aquatics,0,0,0 -746576007,Remi Saudadier,FRA,male,1986-03-20,1.98,100.0,aquatics,0,0,0 -545506950,Remigijus Kancys,LTU,male,1987-07-17,1.73,62.0,athletics,0,0,0 -228952671,Renaldas Seibutis,LTU,male,1985-07-23,1.96,83.0,basketball,0,0,0 -390436911,Renat Saidov,RUS,male,1988-09-27,2.1,101.0,judo,0,0,0 -456145597,Renata Tobai Sike,HUN,female,1978-07-10,1.8,67.0,shooting,0,0,0 -736324919,Renato Augusto,BRA,male,1988-02-08,1.86,86.0,football,1,0,0 -897045693,Renato Portella,BRA,male,1962-12-05,1.65,74.0,shooting,0,0,0 -466194153,Renato Rezende,BRA,male,1991-02-28,1.71,72.0,cycling,0,0,0 -59908931,Renaud Lavillenie,FRA,male,1986-09-18,1.77,71.0,athletics,0,1,0 -394581018,Rene Enders,GER,male,1987-02-13,1.65,77.0,cycling,0,0,0 -608905335,Rene Holten,DEN,male,1988-11-28,1.88,92.0,canoe,0,0,0 -873459751,Rene Lopez,COL,male,1964-04-05,1.68,70.0,equestrian,0,0,0 -94618006,Rene Philippe Kouassi,CIV,male,1979-12-14,1.9,83.0,archery,0,0,0 -861585492,Rene Pranz,AUT,male,1985-09-04,1.84,79.0,fencing,0,0,0 -57264316,Rene Tebbel,UKR,male,1969-02-12,1.82,84.0,equestrian,0,0,0 -400301052,Rene Toft Hansen,DEN,male,1984-11-01,2.0,105.0,handball,1,0,0 -109399064,Renee Eykens,BEL,female,1996-06-08,1.7,54.0,athletics,0,0,0 -73182018,Renelle Lamote,FRA,female,1993-12-26,1.65,59.0,athletics,0,0,0 -18503067,Reneta Kamberova,BUL,female,1990-09-12,1.7,53.0,gymnastics,0,0,1 -499299966,Renick James,BIZ,male,1987-08-21,1.8,91.0,judo,0,0,0 -119864566,Renjith Maheswary,IND,male,1986-01-30,1.84,79.0,athletics,0,0,0 -563285077,Renny Quow,TTO,male,1987-08-25,1.6,77.0,athletics,0,0,0 -154797267,Renuka Yadav,IND,female,1994-07-18,1.59,53.0,hockey,0,0,0 -642982452,Renxue Zhu,CHN,male,1991-04-06,1.7,50.0,athletics,0,0,0 -859598308,Renzo Agresta,BRA,male,1985-06-27,1.81,76.0,fencing,0,0,0 -188249064,Renzo Leon Garcia,PER,male,1990-08-14,1.86,71.0,rowing,0,0,0 -217093800,Renzo Tjon-A-Joe,SUR,male,1995-07-08,1.9,78.0,aquatics,0,0,0 -63732121,Repo Malepe,RSA,male,1997-02-18,1.79,65.0,football,0,0,0 -867912323,Reshmie Shari Oogink,NED,female,1989-10-26,1.79,72.0,taekwondo,0,0,0 -280064758,Revazi Nadareishvili,GEO,male,1991-06-21,1.76,98.0,wrestling,0,0,0 -248931578,Rexford Tullius,ISV,male,1987-03-10,,,aquatics,0,0,0 -671136449,Reyare Thomas,TTO,female,1987-11-23,1.69,59.0,athletics,0,0,0 -826747874,Reynier Mena,CUB,male,1996-11-21,1.74,79.0,athletics,0,0,0 -686527217,Reza Ghasemi,IRI,male,1987-07-24,1.82,69.0,athletics,0,0,0 -137914262,Reza Mohammad Ali Yazdani,IRI,male,1984-08-25,1.72,100.0,wrestling,0,0,0 -522982610,Rhian Wilkinson,CAN,female,1982-05-12,1.66,69.0,football,0,0,1 -317198923,Rhydian Cowley,AUS,male,1991-01-04,1.81,65.0,athletics,0,0,0 -264189277,Rhys Grant,AUS,male,1987-02-06,1.88,88.0,rowing,0,0,0 -768753135,Rhys Howden,AUS,male,1987-04-02,1.89,84.0,aquatics,0,0,0 -546440532,Ria Percival,NZL,female,1989-12-07,1.62,57.0,football,0,0,0 -558739071,Riau Ega Agatha,INA,male,1991-10-25,1.75,70.0,archery,0,0,0 -238394812,Ricard Alarcon Tevar,ESP,male,1991-08-18,1.88,110.0,aquatics,0,0,0 -898620184,Ricardas Berankis,LTU,male,1990-06-21,1.75,74.0,tennis,0,0,0 -56369474,Ricardas Nekriosius,LTU,male,1986-09-12,1.84,88.0,canoe,0,0,0 -458070483,Ricardo Esgaio,POR,male,1993-05-16,1.75,80.0,football,0,0,0 -975400260,Ricardo Gouveia,POR,male,1991-08-06,1.75,88.0,golf,0,0,0 -279428980,Ricardo Lucarelli,BRA,male,1992-02-14,1.95,79.0,volleyball,1,0,0 -372426764,Ricardo Ramos,MEX,male,1985-12-05,1.72,56.0,athletics,0,0,0 -385094917,Ricardo Ribas,POR,male,1977-10-08,1.74,63.0,athletics,0,0,0 -923708870,Ricardo Santos,BRA,male,1980-05-08,1.85,73.0,sailing,0,0,0 -711718943,Ricardo Soto,CHI,male,1999-10-22,1.83,88.0,archery,0,0,0 -308968107,Ricardo Vargas Jacobo,MEX,male,1997-11-21,1.8,79.0,aquatics,0,0,0 -820785891,Ricardo de Souza,BRA,male,1994-09-21,1.75,70.0,athletics,0,0,0 -281848184,Riccardo Mazzetti,ITA,male,1984-05-02,1.81,77.0,shooting,0,0,0 -96823281,Riccardo de Luca,ITA,male,1986-03-22,1.87,80.0,modern pentathlon,0,0,0 -558439036,Richard Bohus,HUN,male,1993-04-09,1.85,80.0,aquatics,0,0,0 -509225287,Richard Chambers,GBR,male,1985-06-10,1.83,74.0,rowing,0,0,0 -385235592,Richard Hildreth,CAN,male,1984-06-03,1.83,80.0,hockey,0,0,0 -817106482,Richard Hounslow,GBR,male,1981-12-19,1.83,78.0,canoe,0,1,0 -715219943,Richard John Edward Patterson,NZL,male,1983-04-30,1.67,84.0,weightlifting,0,0,0 -180069208,Richard Kilty,GBR,male,1989-09-02,1.82,82.0,athletics,0,0,0 -232429024,Richard Kruse,GBR,male,1983-07-30,1.9,84.0,fencing,0,0,0 -947093935,Richard Merjan,LIB,male,1988-11-10,1.6,57.0,canoe,0,0,0 -158446186,Richard Murray,RSA,male,1989-01-04,1.8,70.0,triathlon,0,0,0 -539128451,Richard Nagy,SVK,male,1993-03-09,1.88,80.0,aquatics,0,0,0 -289690027,Richard Ringer,GER,male,1989-02-27,1.82,62.0,athletics,0,0,0 -16165612,Richard Schmidt,GER,male,1987-05-23,1.73,76.0,rowing,0,1,0 -434798426,Richard Thompson,TTO,male,1985-07-06,1.88,80.0,athletics,0,0,0 -45434968,Richard Varga,SVK,male,1989-01-28,1.88,65.0,triathlon,0,0,0 -50122257,Richard Vargas,VEN,male,1994-12-28,1.75,58.0,athletics,0,0,0 -545591237,Richard Weinberger,CAN,male,1990-06-07,1.84,72.0,aquatics,0,0,0 -582543706,Richardson Hitchins,HAI,male,1997-09-26,,,boxing,0,0,0 -153689574,Richelle Stephens,USA,female,1996-07-22,1.68,65.0,rugby sevens,0,0,0 -972776916,Richer Perez,CUB,male,1986-02-20,1.63,58.0,athletics,0,0,0 -8241548,Richie Campbell,AUS,male,1987-09-18,1.93,99.0,aquatics,0,0,0 -145755728,Richie Porte,AUS,male,1985-01-30,1.72,62.0,cycling,0,0,0 -553041631,Richson Simeon,MHL,male,1997-10-05,1.55,78.0,athletics,0,0,0 -182264140,Rick Yves Confiance,SEY,male,1994-05-24,1.65,62.0,weightlifting,0,0,0 -52657161,Rick van der Ven,NED,male,1991-04-14,1.81,76.0,archery,0,0,0 -896354114,Rickie Fowler,USA,male,1988-12-13,1.76,68.0,golf,0,0,0 -664274714,Ricky Robertson,USA,male,1990-09-19,1.81,74.0,athletics,0,0,0 -184879090,Ricky Rubio,ESP,male,1990-10-21,1.93,82.0,basketball,0,0,1 -29620677,Rico Freimuth,GER,male,1988-03-14,1.96,95.0,athletics,0,0,0 -814315679,Rie Kaneto,JPN,female,1988-09-08,1.75,64.0,aquatics,1,0,0 -766598389,Rie Matsubara,JPN,female,1993-10-21,1.67,48.0,gymnastics,0,0,0 -155731349,Rieko Ioane,NZL,male,1997-03-18,1.9,105.0,rugby sevens,0,0,0 -989632205,Rigoberto Uran Uran,COL,male,1987-01-26,1.71,63.0,cycling,0,0,0 -304856558,Riheb Hammami,TUN,female,1989-06-04,1.7,68.0,sailing,0,0,0 -765122395,Rikako Ikee,JPN,female,2000-07-04,1.7,58.0,aquatics,0,0,0 -137154946,Riki Harakawa,JPN,male,1993-08-18,1.75,72.0,football,0,0,0 -62001472,Rikke Moller Pedersen,DEN,female,1989-01-09,1.74,61.0,aquatics,0,0,1 -485889936,Riley Fitzsimmons,AUS,male,1996-07-27,1.92,93.0,canoe,0,0,0 -646643525,Rima Kashafutdinova,KAZ,female,1995-07-24,1.6,48.0,athletics,0,0,0 -968504345,Rio Watari,JPN,female,1991-09-19,1.63,69.0,wrestling,0,0,0 -162020781,Risako Kawai,JPN,female,1994-11-21,1.6,61.0,wrestling,1,0,0 -518813071,Risako Mitsui,JPN,female,1993-09-23,1.68,56.0,aquatics,0,0,2 -54528524,Rishod Sobirov,UZB,male,1986-09-11,1.68,66.0,judo,0,0,1 -13338257,Ristananna Tracey,JAM,female,1992-05-09,1.78,66.0,athletics,0,0,0 -875138025,Riste Pandev,MKD,male,1994-01-25,1.78,68.0,athletics,0,0,0 -169332497,Risto Matas,EST,male,1984-04-30,1.89,94.0,athletics,0,0,0 -226090486,Rita Keszthelyi,HUN,female,1991-12-10,1.78,67.0,aquatics,0,0,0 -977877235,Rita Recsei,HUN,female,1996-01-30,1.68,54.0,athletics,0,0,0 -427379114,Rita Zeqiri,KOS,female,1995-12-08,1.65,55.0,aquatics,0,0,0 -463062176,Rivaldo Coetzee,RSA,male,1996-10-16,1.83,73.0,football,0,0,0 -950284932,Riwei Wang,CHN,male,1993-03-21,1.82,85.0,canoe,0,0,0 -536544725,Riza Kayaalp,TUR,male,1989-10-10,1.82,130.0,wrestling,0,1,0 -899335116,Rizlen Zouak,MAR,female,1986-05-14,1.64,63.0,judo,0,0,0 -578088761,Ro Dakuwaqa,FIJ,male,1994-02-14,1.9,105.0,rugby sevens,1,0,0 -854121144,Rob Mullett,GBR,male,1987-07-31,1.78,64.0,athletics,0,0,0 -753125163,Robbert Kemperman,NED,male,1990-06-24,1.86,76.0,hockey,0,0,0 -57185186,Robbie Renwick,GBR,male,1988-07-21,1.84,80.0,aquatics,0,1,0 -955978928,Robby Andrews,USA,male,1991-03-29,1.78,65.0,athletics,0,0,0 -58169707,Robeilys Peinado,VEN,female,1997-11-26,,,athletics,0,0,0 -921399403,Robeisy Ramirez,CUB,male,1993-12-20,1.62,,boxing,1,0,0 -651154983,Robel Kiros Habte,ETH,male,1992-04-13,1.76,81.0,aquatics,0,0,0 -371852297,Robenilson de Jesus,BRA,male,1987-09-24,1.66,,boxing,0,0,0 -484252219,Robert Baran,POL,male,1992-07-03,1.86,103.0,wrestling,0,0,0 -793414933,Robert Bauer,GER,male,1995-04-09,1.83,76.0,football,0,1,0 -136649712,Robert Elder,FIJ,male,1981-04-25,1.94,115.0,archery,0,0,0 -453661639,Robert Farah,COL,male,1987-01-20,1.93,92.0,tennis,0,0,0 -65516021,Robert Fuchs,POL,male,1991-06-12,2.09,105.0,rowing,0,0,0 -69277111,Robert Gardos,AUT,male,1979-01-16,1.78,72.0,table tennis,0,0,0 -588439110,Robert Glinta,ROU,male,1997-04-18,1.85,72.0,aquatics,0,0,0 -957342784,Robert Grabarz,GBR,male,1987-10-03,1.91,81.0,athletics,0,0,0 -748479187,Robert Harting,GER,male,1984-10-18,2.01,126.0,athletics,0,0,0 -126498342,Robert Heffernan,IRL,male,1978-02-28,1.71,58.0,athletics,0,0,0 -401609569,Robert Hering,GER,male,1990-06-14,1.8,78.0,athletics,0,0,0 -740457326,Robert Luecken,NED,male,1985-04-30,1.99,95.0,rowing,0,0,1 -99198444,Robert Manson,NZL,male,1989-10-11,1.88,89.0,rowing,0,0,0 -651788735,Robert Mateusiak,POL,male,1976-01-13,1.69,65.0,badminton,0,0,0 -650448560,Robert Meeuwsen,NED,male,1988-03-21,2.07,94.0,volleyball,0,0,1 -222647716,Robert Micael Gibson,CAN,male,1986-02-02,1.95,101.0,rowing,0,0,0 -653323381,Robert Mike,HUN,male,1984-05-08,1.76,80.0,canoe,0,0,0 -892281190,Robert Munn,USA,male,1990-07-26,1.94,97.0,rowing,0,0,0 -595627689,Robert Paez,VEN,male,1994-06-01,1.74,72.0,aquatics,0,0,0 -455331641,Robert Renner,SLO,male,1994-03-08,1.83,75.0,athletics,0,0,0 -503602363,Robert Scheidt,BRA,male,1973-04-15,1.88,76.0,sailing,0,0,0 -720405492,Robert Skov,DEN,male,1996-05-20,1.83,78.0,football,0,0,0 -853386777,Robert Sobera,POL,male,1991-01-19,1.91,86.0,athletics,0,0,0 -532564803,Robert Timothy David Smith,USA,male,1987-01-30,1.83,127.0,wrestling,0,0,0 -360028984,Robert Tvorogal,LTU,male,1994-10-05,1.67,65.0,gymnastics,0,0,0 -859612210,Robert Urbanek,POL,male,1987-04-29,2.0,122.0,athletics,0,0,0 -959745173,Robert Zbogar,SLO,male,1989-03-06,1.83,72.0,aquatics,0,0,0 -810837214,Robert van der Horst,NED,male,1984-10-17,1.79,74.0,hockey,0,0,0 -146983428,Roberta Bianconi,ITA,female,1989-07-08,1.76,76.0,aquatics,0,1,0 -755354493,Roberta Vinci,ITA,female,1983-02-18,1.64,54.0,tennis,0,0,0 -954509397,Robertas Javtokas,LTU,male,1980-03-20,2.1,117.0,basketball,0,0,0 -722113054,Roberti Kobliashvili,GEO,male,1993-12-06,1.8,85.0,wrestling,0,0,0 -979738461,Roberto Acuna,ARG,male,1990-09-14,2.08,109.0,basketball,0,0,0 -758461623,Roberto Bautista Agut,ESP,male,1988-04-14,1.83,76.0,tennis,0,0,0 -21769735,Roberto Janet,CUB,male,1986-08-29,1.87,106.0,athletics,0,0,0 -340569096,Roberto Maehler,BRA,male,1985-01-25,1.83,82.0,canoe,0,0,0 -555000042,Roberto Sawyers,CRC,male,1986-10-17,1.82,111.0,athletics,0,0,0 -509328493,Roberto Schmits,BRA,male,1969-02-04,1.87,90.0,shooting,0,0,0 -930615320,Roberto Skyers,CUB,male,1991-11-12,1.83,83.0,athletics,0,0,0 -819268120,Robin Erewa,GER,male,1991-06-24,1.84,80.0,athletics,0,0,0 -577679695,Robin Haase,NED,male,1987-04-06,1.9,77.0,tennis,0,0,0 -982057422,Robin Middleton,AUS,male,1985-02-08,1.88,85.0,badminton,0,0,0 -444302683,Robin Neumann,NED,female,1997-12-12,1.73,63.0,aquatics,0,0,0 -932757600,Robin Pacek,SWE,male,1991-03-17,1.81,81.0,judo,0,0,0 -860901297,Robin Prendes,USA,male,1988-12-13,1.86,72.0,rowing,0,0,0 -205241654,Robin Quaison,SWE,male,1993-10-09,1.82,78.0,football,0,0,0 -569702101,Robin Ramaekers,BEL,male,1994-10-26,1.8,78.0,archery,0,0,0 -196394925,Robin Seidl,AUT,male,1990-01-21,1.9,80.0,volleyball,0,0,0 -771525167,Robin Vanderbemden,BEL,male,1994-02-10,1.83,74.0,athletics,0,0,0 -583096662,Robin de Kruijf,NED,female,1991-05-05,1.92,80.0,volleyball,0,0,0 -938744484,Robson Conceicao,BRA,male,1988-10-25,1.75,,boxing,1,0,0 -713083048,Robyn Moodaly,RSA,female,1994-06-16,1.62,49.0,football,0,0,0 -412115856,Roc Oliva,ESP,male,1989-07-18,1.8,78.0,hockey,0,0,0 -994481425,Rocco van Rooyen,RSA,male,1992-12-23,1.9,98.0,athletics,0,0,0 -369012326,Rocio Campigli,ARG,female,1994-08-06,1.73,70.0,handball,0,0,0 -374524255,Rocio Comba,ARG,female,1987-07-14,1.8,100.0,athletics,0,0,0 -164940768,Rocio Gutierrez,ESP,female,1985-07-20,1.62,61.0,hockey,0,0,0 -528331372,Rocio Sanchez,ARG,female,1988-08-02,1.57,54.0,hockey,0,0,0 -885588616,Rocio Ybarra,ESP,female,1984-12-26,1.59,54.0,hockey,0,0,0 -273991849,Rodman Teltull,PLW,male,1994-01-29,1.53,64.0,athletics,0,0,0 -374596998,Rodney Govinden,SEY,male,1984-09-13,1.79,84.0,sailing,0,0,0 -625240454,Rodolfo Cazaubon,MEX,male,1989-08-15,1.78,72.0,golf,0,0,0 -562268541,Rodolfo Lombardo Ontiveros Gomez,MEX,male,1983-11-09,1.85,87.0,volleyball,0,0,0 -519800008,Rodolfo Pizarro,MEX,male,1994-02-15,1.73,64.0,football,0,0,0 -480321541,Rodrick Kuku,COD,male,1986-04-06,,66.0,judo,0,0,0 -216037265,Rodrigo Caio,BRA,male,1993-08-17,1.82,70.0,football,1,0,0 -5451063,Rodrigo Diego,MEX,male,1996-12-02,1.66,69.0,aquatics,0,0,0 -699797697,Rodrigo Dourado,BRA,male,1994-06-17,1.86,80.0,football,1,0,0 -956734649,Rodrigo Etchart,ARG,male,1994-01-24,1.8,80.0,rugby sevens,0,0,0 -817730923,Rodrigo Faustino,BRA,male,1987-01-06,1.67,69.0,hockey,0,0,0 -539471357,Rodrigo Germade,ESP,male,1990-08-23,1.83,85.0,canoe,0,0,0 -666269394,Rodrigo Gonzalez,MEX,male,1989-12-14,1.8,69.0,triathlon,0,0,0 -259323134,Rodrigo Steimbach,BRA,male,1996-01-30,1.61,58.0,hockey,0,0,0 -482861402,Roel Braas,NED,male,1987-03-11,2.0,100.0,rowing,0,0,0 -992517041,Rogen Ladon,PHI,male,1993-11-10,1.65,,boxing,0,0,0 -105565134,Roger Beresford Hudson,RSA,male,1978-03-22,1.77,72.0,sailing,0,0,0 -9609361,Roger Kluge,GER,male,1986-02-05,1.91,85.0,cycling,0,0,0 -311874637,Roger Tahull Compte,ESP,male,1997-05-11,1.95,105.0,aquatics,0,0,0 -42178820,Roger Yves Bost,FRA,male,1965-10-21,1.76,80.0,equestrian,1,0,0 -620929414,Rogerio Dutra Silva,BRA,male,1984-02-05,1.8,73.0,tennis,0,0,0 -327425474,Rogier Hofman,NED,male,1986-09-05,1.84,79.0,hockey,0,0,0 -142935806,Rohan Bopanna,IND,male,1980-03-04,1.9,85.0,tennis,0,0,0 -571443859,Rohan Dennis,AUS,male,1990-05-28,1.82,72.0,cycling,0,0,0 -918866581,Roilya Ranaivosoa,MRI,female,1990-11-14,1.52,48.0,weightlifting,0,0,0 -777959030,Rok Draksic,SLO,male,1987-01-02,1.66,75.0,judo,0,0,0 -215465391,Rok Stipcevic,CRO,male,1986-05-20,1.86,85.0,basketball,0,0,0 -883712398,Roko Ukic,CRO,male,1984-12-05,1.95,88.0,basketball,0,0,0 -79712981,Rolando Palacios,HON,male,1987-05-03,1.89,89.0,athletics,0,0,0 -388656945,Rolando Saquipay,ECU,male,1979-07-21,1.65,61.0,athletics,0,0,0 -640287031,Rolands Strobinders,LAT,male,1992-04-14,1.9,103.0,athletics,0,0,0 -30879894,Rolf-Goran Bengtsson,SWE,male,1962-06-02,1.71,67.0,equestrian,0,0,0 -312873200,Romain Bardet,FRA,male,1990-11-09,1.84,64.0,cycling,0,0,0 -600322031,Romain Blary,FRA,male,1985-10-20,1.95,100.0,aquatics,0,0,0 -230439728,Romain Duguet,SUI,male,1980-10-07,1.76,68.0,equestrian,0,0,0 -64482420,Roman Anoshkin,RUS,male,1987-08-31,1.92,95.0,canoe,0,0,1 -699151957,Roman Bondaruk,UKR,male,1974-06-20,1.77,95.0,shooting,0,0,0 -729709593,Roman Fosti,EST,male,1983-06-06,1.81,69.0,athletics,0,0,0 -309267956,Roman Moustopoulos,GRE,male,1993-03-02,1.77,81.0,judo,0,0,0 -551938294,Roman Prodius,MDA,male,1981-04-12,1.82,70.0,athletics,0,0,0 -617922297,Roman Roeoesli,SUI,male,1993-09-22,1.91,87.0,rowing,0,0,0 -733665408,Roman Valiyev,KAZ,male,1984-03-27,1.9,76.0,athletics,0,0,0 -324597845,Roman Vlasov,RUS,male,1990-10-06,1.75,75.0,wrestling,1,0,0 -634337993,Romana Malacova,CZE,female,1987-05-15,1.64,57.0,athletics,0,0,0 -917720486,Romano Battisti,ITA,male,1986-08-21,1.9,91.0,rowing,0,0,0 -648586794,Romario Leitao,STP,male,1997-01-16,1.75,56.0,athletics,0,0,0 -109375657,Romell Quioto,HON,male,1991-08-09,1.8,86.0,football,0,0,0 -672358347,Rommel Pacheco,MEX,male,1986-07-12,1.67,63.0,aquatics,0,0,0 -154900117,Romuald Hausser,SUI,male,1988-04-16,1.85,72.0,sailing,0,0,0 -201879323,Romy Kasper,GER,female,1988-05-05,1.73,59.0,cycling,0,0,0 -312147622,Ron Atias,ISR,male,1995-04-19,1.7,58.0,taekwondo,0,0,0 -226253632,Ron Darmon,ISR,male,1992-10-30,1.75,65.0,triathlon,0,0,0 -224177837,Ronal Quispe,BOL,male,1988-03-05,1.64,57.0,athletics,0,0,0 -106685753,Ronald Forbes,CAY,male,1985-04-05,,,athletics,0,0,0 -379214136,Ronald Kwemoi,KEN,male,1995-09-19,1.72,58.0,athletics,0,0,0 -244164442,Ronald Musagala,UGA,male,1992-12-16,,,athletics,0,0,0 -335845060,Ronald Rauhe,GER,male,1981-10-03,1.79,82.0,canoe,0,0,1 -115983009,Ronald Serugo,UGA,male,1984-09-05,,,boxing,0,0,0 -745602669,Ronaldas Racinskas,LTU,male,1968-05-13,1.88,85.0,shooting,0,0,0 -972672762,Ronan Gormley,IRL,male,1983-04-21,1.74,74.0,hockey,0,0,0 -947165381,Rondel Sorrillo,TTO,male,1986-01-24,1.78,62.0,athletics,0,0,0 -209988250,Rong Shang,CHN,female,2000-02-12,1.7,45.0,gymnastics,0,0,0 -821012000,Rong Zhao,CHN,female,1991-08-02,1.71,59.0,football,0,0,0 -151465997,Roniel Iglesias,CUB,male,1988-08-14,1.82,,boxing,0,0,0 -243518732,Ronja Sturm,GER,female,1995-09-11,1.65,55.0,rowing,0,0,0 -644702031,Ronnie Ash,USA,male,1988-07-02,1.88,94.0,athletics,0,0,0 -948499068,Roope Kakko,FIN,male,1982-02-13,1.83,82.0,golf,0,0,0 -389320731,Rosa Chacha,ECU,female,1982-12-08,1.55,48.0,athletics,0,0,0 -836406601,Rosa Godoy,ARG,female,1982-03-19,1.6,47.0,athletics,0,0,0 -726865426,Rosa Keleku Lukusa,COD,female,1995-01-16,1.63,48.0,taekwondo,0,0,0 -564590281,Rosa Rodriguez,VEN,female,1986-07-02,1.78,88.0,athletics,0,0,0 -616812664,Rosane Sibele Budag,BRA,female,1973-08-27,1.74,66.0,shooting,0,0,0 -389253550,Rosane dos Reis Santos,BRA,female,1987-06-20,1.62,53.0,weightlifting,0,0,0 -828730273,Rosangela Santos,BRA,female,1990-12-20,1.66,64.0,athletics,0,0,0 -870380362,Rosannagh Maclennan,CAN,female,1988-08-27,1.58,54.0,gymnastics,1,0,0 -353182484,Rosaria Aiello,ITA,female,1989-05-12,1.72,74.0,aquatics,0,1,0 -686173584,Rose Chelimo,BRN,female,1989-07-12,,,athletics,0,0,0 -72544057,Rose Mary Almanza,CUB,female,1992-07-13,1.65,53.0,athletics,0,0,0 -843367304,Rose Nathike Lokonyen,ROT,female,1995-02-24,1.57,50.0,athletics,0,0,0 -506706014,Rose Stackpole,AUS,female,1995-05-25,1.65,55.0,aquatics,0,0,0 -400245389,Rose Thomas,FRA,female,1988-11-29,1.63,66.0,rugby sevens,0,0,0 -272141065,Rose Woo,CAN,female,2000-01-12,1.45,46.0,gymnastics,0,0,0 -287037985,Rosefelo Siosi,SOL,male,1996-08-23,,,athletics,0,0,0 -781979354,Roseline Filion,CAN,female,1987-07-03,1.54,53.0,aquatics,0,0,1 -860145199,Rosemary Quispe,BOL,female,1983-08-20,1.59,50.0,athletics,0,0,0 -779316418,Roser Tarrago Aymerich,ESP,female,1993-03-25,1.71,62.0,aquatics,0,0,0 -592903889,Rosie White,NZL,female,1993-06-06,1.65,63.0,football,0,0,0 -820935997,Rosko Specman,RSA,male,1989-04-28,1.74,81.0,rugby sevens,0,0,1 -264922632,Ross Millington,GBR,male,1989-09-19,1.73,58.0,athletics,0,0,0 -956717868,Ross Murdoch,GBR,male,1994-01-14,1.83,76.0,aquatics,0,0,0 -905413207,Rossella Fiamingo,ITA,female,1991-07-14,1.67,50.0,fencing,0,1,0 -761193618,Rossella Gregorio,ITA,female,1990-08-30,1.64,60.0,fencing,0,0,0 -301051027,Rostyslav Pevtsov,AZE,male,1987-04-15,1.87,74.0,triathlon,0,0,0 -977315432,Roukaya Moussa Mahamane,NIG,female,1997-01-13,1.63,47.0,aquatics,0,0,0 -325010773,Rovshan Bayramov,AZE,male,1987-05-07,1.6,59.0,wrestling,0,0,0 -449448572,Rowie Webster,AUS,female,1987-12-27,1.78,80.0,aquatics,0,0,0 -840917709,Roxana Cogianu,ROU,female,1986-09-21,1.8,72.0,rowing,0,0,1 -5862724,Roxana Gomez,CUB,female,1999-01-07,1.69,49.0,athletics,0,0,0 -506230382,Roxanne Barker,RSA,female,1991-05-06,1.8,76.0,football,0,0,0 -848420962,Roxroy Cato,JAM,male,1988-06-05,1.83,76.0,athletics,0,0,0 -734810648,Roy Krishna,FIJ,male,1987-08-30,1.7,70.0,football,0,0,0 -375955657,Roy Meyer,NED,male,1991-06-04,1.86,122.0,judo,0,0,0 -745464194,Roy Schmidt,GER,male,1991-09-30,1.79,77.0,athletics,0,0,0 -402214262,Rozaliya Nasretdinova,RUS,female,1997-02-10,1.8,66.0,aquatics,0,0,0 -75479348,Ruaridh McConnochie,GBR,male,1991-10-23,1.9,93.0,rugby sevens,0,1,0 -209686890,Ruben Aleksanyan,ARM,male,1990-03-14,1.8,152.0,weightlifting,0,0,0 -477986784,Ruben Limardo Gascon,VEN,male,1985-08-03,1.75,75.0,fencing,0,0,0 -411710210,Ruben Scheire,BEL,male,1991-12-06,1.75,62.0,cycling,0,0,0 -249844758,Ruben Voisard Rezola,ARG,male,1991-04-21,1.74,80.0,canoe,0,0,0 -179815659,Rubens Donizete Valeriano,BRA,male,1979-08-14,1.73,69.0,cycling,0,0,0 -527756567,Ruby Harrold,GBR,female,1996-06-04,1.62,56.0,gymnastics,0,0,0 -233580730,Ruby Tew,NZL,female,1994-03-07,1.81,76.0,rowing,0,0,0 -192700977,Ruby Tui,NZL,female,1991-12-13,1.77,71.0,rugby sevens,0,1,0 -659959985,Ruda Franco,BRA,male,1986-07-25,1.85,90.0,aquatics,0,0,0 -446404656,Ruddy Zang Milama,GAB,female,1987-06-06,1.56,53.0,athletics,0,0,0 -232202316,Rudi van Houts,NED,male,1984-01-16,1.77,64.0,cycling,0,0,0 -743075472,Rudo Neshamba,ZIM,female,1992-02-10,1.64,53.0,football,0,0,0 -371266772,Rudolf Knijnenburg,BOL,male,1982-05-18,1.76,82.0,shooting,0,0,0 -514482932,Rudy Fernandez,ESP,male,1985-04-04,1.96,84.0,basketball,0,0,1 -648750303,Rudy Gobert,FRA,male,1992-06-26,2.15,113.0,basketball,0,0,0 -220770340,Rudy Verhoeff,CAN,male,1989-06-24,1.98,88.0,volleyball,0,0,0 -143605979,Rudy Winkler,USA,male,1994-12-06,1.88,108.0,athletics,0,0,0 -334846524,Rufat Huseynov,AZE,male,1997-04-25,1.7,,boxing,0,0,0 -18555870,Ruggero Pertile,ITA,male,1974-08-08,1.65,55.0,athletics,0,0,0 -914411806,Ruggero Tita,ITA,male,1992-03-20,1.74,71.0,sailing,0,0,0 -990887420,Rui Alberto Faria da Costa,POR,male,1986-10-05,1.83,68.0,cycling,0,0,0 -513573507,Rui Braganca,POR,male,1991-12-26,1.8,60.0,taekwondo,0,0,0 -242415534,Rui Machida,JPN,female,1993-03-08,1.61,57.0,basketball,0,0,0 -490760543,Rui Pedro Silva,POR,male,1981-05-06,1.73,60.0,athletics,0,0,0 -27201624,Rui Xu,CHN,female,1995-06-06,1.7,63.0,wrestling,0,0,0 -3876003,Rui Zhang,CHN,female,1989-01-17,1.72,62.0,football,0,0,0 -32285535,Rumen Dimitrov,BUL,male,1986-09-19,1.92,80.0,athletics,0,0,0 -621812972,Runa Imai,JPN,female,2000-08-15,1.63,50.0,aquatics,0,0,0 -377313576,Rune Hermans,BEL,female,1999-05-09,1.59,48.0,gymnastics,0,0,0 -854755696,Ruolin Chen,CHN,female,1992-12-12,1.6,49.0,aquatics,1,0,0 -777015312,Ruoqi Hui,CHN,female,1991-03-04,1.92,78.0,volleyball,1,0,0 -111970158,Rupinder Pal Singh,IND,male,1990-11-11,1.93,93.0,hockey,0,0,0 -333696204,Rushana Nurjavova,TKM,female,1994-06-22,1.65,57.0,judo,0,0,0 -666630210,Rusheen McDonald,JAM,male,1992-08-17,1.75,81.0,athletics,0,1,0 -85111828,Rushlee Buchanan,NZL,female,1988-01-20,1.7,63.0,cycling,0,0,0 -95697909,Rushwal Samaai,RSA,male,1991-09-25,1.85,75.0,athletics,0,0,0 -718060123,Rusila Nagasau,FIJ,female,1987-08-04,1.75,80.0,rugby sevens,0,0,0 -338294011,Ruslan Dmytrenko,UKR,male,1986-03-22,1.8,67.0,athletics,0,0,0 -111143331,Ruslan Kurbanov,UZB,male,1993-02-10,1.83,65.0,athletics,0,0,0 -736588005,Ruslan Lunev,AZE,male,1989-07-25,1.83,80.0,shooting,0,0,0 -327649539,Ruslan Nurudinov,UZB,male,1991-11-24,1.83,105.0,weightlifting,1,0,0 -507662268,Ruslan Tsarev,KGZ,male,1991-07-16,1.7,66.0,wrestling,0,0,0 -362733210,Ruslan Zhaparov,KAZ,male,1996-05-27,1.98,80.0,taekwondo,0,0,0 -577577039,Ruslana Tsykhotska,UKR,female,1986-03-23,1.65,56.0,athletics,0,0,0 -267763098,Ruslans Nakonechnyi,LAT,male,1989-04-21,1.82,71.0,modern pentathlon,0,0,0 -497886017,Rustam Assakalov,UZB,male,1984-07-13,1.83,85.0,wrestling,0,0,0 -87660757,Rustam Djangabaev,UZB,male,1993-08-25,1.83,146.0,weightlifting,0,0,0 -453637233,Rustam Orujov,AZE,male,1991-10-04,1.8,73.0,judo,0,1,0 -822684944,Rustam Tulaganov,UZB,male,1991-10-08,1.86,,boxing,0,0,1 -423291068,Ruta Meilutyte,LTU,female,1997-03-19,1.76,75.0,aquatics,0,0,0 -103023896,Rutendo Joan Nyahora,ZIM,female,1988-11-11,1.55,45.0,athletics,0,0,0 -532873176,Rutendo Makore,ZIM,female,1992-09-30,1.65,68.0,football,0,0,0 -936775315,Rutger van Schaardenburg,NED,male,1987-10-08,1.88,80.0,sailing,0,0,0 -146985778,Ruth Beitia,ESP,female,1979-04-01,1.91,72.0,athletics,1,0,0 -126006667,Ruth Jebet,BRN,female,1996-11-17,1.62,51.0,athletics,1,0,0 -379466742,Ruth Marie Christelle Gbagbi,CIV,female,1994-02-07,1.76,65.0,taekwondo,0,0,1 -686937343,Ruth Sophia Spelmeyer,GER,female,1990-09-19,1.73,59.0,athletics,0,0,0 -532261640,Ruth Winder,USA,female,1993-07-09,1.63,57.0,cycling,0,0,0 -373628906,Ruvimbo Mutyavaviri,ZIM,female,1986-12-08,1.75,65.0,football,0,0,0 -103779726,Ruy Fonseca,BRA,male,1973-06-09,1.81,76.0,equestrian,0,0,0 -622244605,Ruyin Tan,CHN,female,1994-07-17,1.65,59.0,football,0,0,0 -334757159,Ryad Keniche,ALG,male,1993-04-30,1.85,75.0,football,0,0,0 -809153340,Ryan Archibald,NZL,male,1980-09-01,1.86,78.0,hockey,0,0,0 -96527612,Ryan Bailie,AUS,male,1990-07-15,1.77,61.0,triathlon,0,0,0 -205829488,Ryan Broekhoff,AUS,male,1990-08-23,2.01,93.0,basketball,0,0,0 -907618760,Ryan Carlyle,USA,female,1989-11-24,1.68,65.0,rugby sevens,0,0,0 -660446084,Ryan Cochrane,CAN,male,1988-10-29,1.92,80.0,aquatics,0,0,0 -330882245,Ryan Cochrane,CAN,male,1983-07-24,1.78,78.0,canoe,0,0,0 -613943202,Ryan Crouser,USA,male,1992-12-18,2.01,124.0,athletics,1,0,0 -313062867,Ryan Fisher,AUS,male,1991-04-05,1.73,64.0,triathlon,0,0,0 -739862351,Ryan Fox,NZL,male,1987-01-22,1.79,98.0,golf,0,0,0 -976252794,Ryan Gregson,AUS,male,1990-04-26,1.74,83.0,athletics,0,0,0 -788805861,Ryan Held,USA,male,1995-06-27,,,aquatics,1,0,0 -712200855,Ryan Lochte,USA,male,1984-08-03,1.88,88.0,aquatics,1,0,0 -237391684,Ryan Murphy,USA,male,1995-07-02,1.91,90.0,aquatics,3,0,0 -524278516,Ryan Patterson,RSA,male,1994-01-10,1.77,72.0,gymnastics,0,0,0 -882980527,Ryan Pini,PNG,male,1981-12-10,1.96,98.0,aquatics,0,0,0 -799465101,Ryan Seaton,IRL,male,1987-12-03,1.82,77.0,sailing,0,0,0 -164279204,Ryan Sissons,NZL,male,1988-06-24,1.75,62.0,triathlon,0,0,0 -764390994,Ryan Taylor,NZL,male,1980-03-02,1.75,73.0,shooting,0,0,0 -524440279,Ryan Tyack,AUS,male,1991-06-02,1.86,102.0,archery,0,0,1 -983386718,Rynardt van Rensburg,RSA,male,1992-03-23,1.85,73.0,athletics,0,0,0 -40870014,Ryohei Arai,JPN,male,1991-06-23,1.83,95.0,athletics,0,0,0 -166557498,Ryohei Kato,JPN,male,1993-09-09,1.62,54.0,gymnastics,1,0,0 -634681317,Ryosuke Irie,JPN,male,1990-01-24,1.78,64.0,aquatics,0,0,0 -67014071,Ryota Ohshima,JPN,male,1993-01-23,1.68,64.0,football,0,0,0 -549532344,Ryota Yamagata,JPN,male,1992-06-10,1.77,70.0,athletics,0,1,0 -105508843,Ryunosuke Haga,JPN,male,1991-04-28,1.86,100.0,judo,0,0,1 -716069085,Ryuzo Kitajima,JPN,male,1985-10-23,1.71,68.0,equestrian,0,0,0 -131783687,S.S.P. Chawrasia,IND,male,1978-05-15,1.6,67.0,golf,0,0,0 -184171388,Sa Rang Kim,KOR,male,1989-08-22,1.78,82.0,badminton,0,0,0 -329105644,Saad Luaibi,IRQ,male,1992-01-19,1.78,75.0,football,0,0,0 -155945642,Sabah Shariati,AZE,male,1989-01-01,1.92,130.0,wrestling,0,0,1 -80742707,Sabina Asenjo,ESP,female,1986-08-03,1.78,90.0,athletics,0,0,0 -110659347,Sabina Ashirbayeva,KAZ,female,1998-11-05,1.63,45.0,gymnastics,0,0,0 -775171391,Sabina Jacobsen,SWE,female,1989-03-24,1.8,75.0,handball,0,0,0 -971872432,Sabina Mikina,AZE,female,1987-10-24,1.68,51.0,fencing,0,0,0 -935009563,Sabina Veit,SLO,female,1985-12-02,1.67,59.0,athletics,0,0,0 -602319311,Sabine Kusterer,GER,female,1991-01-04,1.56,58.0,weightlifting,0,0,0 -634385368,Sabine Spitz,GER,female,1971-12-27,1.67,60.0,cycling,0,0,0 -665063441,Sabrina Ameghino,ARG,female,1980-07-06,1.69,64.0,canoe,0,0,0 -574404234,Sabrina D Angelo,CAN,female,1993-05-11,1.73,71.0,football,0,0,1 -726001944,Sabrina Delannoy,FRA,female,1986-05-18,1.71,62.0,football,0,0,0 -532268413,Sabrina Filzmoser,AUT,female,1980-06-12,1.73,57.0,judo,0,0,0 -103751592,Sabrina Hering,GER,female,1992-02-16,1.67,70.0,canoe,0,1,0 -832538099,Sabrina Jaquet,SUI,female,1987-06-21,1.69,60.0,badminton,0,0,0 -858092870,Sacha Valleau,FRA,male,1996-10-08,1.92,97.0,rugby sevens,0,0,0 -773178246,Sachi Mochida,JPN,female,1999-07-19,1.66,57.0,aquatics,0,0,0 -966020626,Sadiq Umar,NGR,male,1997-02-02,1.72,,football,0,0,1 -49083611,Sae Miyakawa,JPN,female,1999-09-10,1.45,34.0,gymnastics,0,0,0 -240262036,Saeed Almaktoum,UAE,male,1976-10-01,1.74,88.0,shooting,0,0,0 -752177504,Saehyuk Joo,KOR,male,1980-01-20,1.8,67.0,table tennis,0,0,0 -270527674,Saeid Mollaei,IRI,male,1992-01-05,1.76,82.0,judo,0,0,0 -795286396,Saeid Morad Abdvali,IRI,male,1989-11-04,1.7,80.0,wrestling,0,0,1 -436856323,Safa Saidani,TUN,female,1990-05-26,,,table tennis,0,0,0 -208668946,Safwan Khalil,AUS,male,1986-05-15,1.84,58.0,taekwondo,0,0,0 -329709652,Sage Watson,CAN,female,1994-06-20,1.8,57.0,athletics,0,0,0 -888210415,Sagi Muki,ISR,male,1992-05-17,1.8,73.0,judo,0,0,0 -585435438,Sahily Diago,CUB,female,1995-08-26,1.69,49.0,athletics,0,0,0 -74385345,Sahit Prizreni,AUS,male,1983-02-23,1.66,65.0,wrestling,0,0,0 -627433948,Saidi Juma Makula,TAN,male,1994-08-01,,54.0,athletics,0,0,0 -226370287,Saif Bin Futtais,UAE,male,1973-09-02,1.74,90.0,shooting,0,0,0 -863864577,Saily Viart,CUB,female,1995-09-10,1.7,94.0,athletics,0,0,0 -311986373,Saina Nehwal,IND,female,1990-03-17,1.65,65.0,badminton,0,0,0 -138238574,Saisai Zheng,CHN,female,1994-02-05,1.7,62.0,tennis,0,0,0 -872568098,Saiyidah Mohamed Rafa'ee,SIN,female,1988-04-20,1.73,68.0,rowing,0,0,0 -745752282,Saiyinjirigala,CHN,male,1989-12-14,1.75,73.0,judo,0,0,0 -528224389,Sajan Prakash Prakash,IND,male,1993-09-14,1.78,70.0,aquatics,0,0,0 -950063976,Sajjad Mardani,IRI,male,1988-07-01,1.98,96.0,taekwondo,0,0,0 -665801270,Sakiko Shimizu,JPN,female,1992-04-20,1.56,50.0,aquatics,0,0,0 -20596177,Sakina Karchaoui,FRA,female,1996-01-26,1.6,55.0,football,0,0,0 -686699609,Sakiyo Asano,JPN,female,1987-05-26,1.64,60.0,hockey,0,0,0 -249879747,Sakshi Malik,IND,female,1992-09-03,1.62,58.0,wrestling,0,0,1 -530076969,Sakura Noshitani,JPN,female,1997-09-29,1.68,48.0,gymnastics,0,0,0 -265460437,Sakura Tsukagoshi,JPN,female,1991-04-13,1.68,60.0,cycling,0,0,0 -612549397,Salem Eid Yaqoob,BRN,male,1996-03-01,1.75,65.0,athletics,0,0,0 -294737301,Salim Keddar,ALG,male,1993-11-13,1.76,65.0,athletics,0,0,0 -966097460,Salima Elouali Alami,MAR,female,1983-12-29,1.79,58.0,athletics,0,0,0 -189291344,Sally Conway,GBR,female,1987-02-01,1.67,70.0,judo,0,0,1 -102051307,Sally Kehoe,AUS,female,1986-09-25,1.72,75.0,rowing,0,0,0 -808105365,Sally Rutherford,NZL,female,1981-06-05,1.65,65.0,hockey,0,0,0 -11169898,Sally Yee,FIJ,female,2001-04-10,,84.0,table tennis,0,0,0 -354208577,Salma Negmeldin,EGY,female,1996-03-05,1.6,49.0,aquatics,0,0,0 -667737647,Salome Kora,SUI,female,1994-06-08,1.73,66.0,athletics,0,0,0 -646360332,Salome Nyirarukundo,RWA,female,1997-12-20,,,athletics,0,0,0 -975877653,Salome Pazhava,GEO,female,1997-09-03,1.68,47.0,gymnastics,0,0,0 -603595723,Salvador,POR,male,1991-11-11,1.68,70.0,football,0,0,0 -203392098,Salvador Piera,ESP,male,1991-05-18,1.83,83.0,hockey,0,0,0 -462840223,Salvatore Rossini,ITA,male,1986-07-13,1.85,82.0,volleyball,0,1,0 -842038551,Salwa Eid Naser,BRN,female,1998-05-23,1.68,54.0,athletics,0,0,0 -206513748,Salwan Jasim Abbood Abbood,IRQ,male,1991-09-26,1.8,104.0,weightlifting,0,0,0 -326897448,Sam Cross,GBR,male,1992-08-26,1.91,103.0,rugby sevens,0,1,0 -789125587,Sam Crouser,USA,male,1991-12-31,1.99,104.0,athletics,0,0,0 -850239984,Sam Dickson,NZL,male,1989-10-28,1.93,101.0,rugby sevens,0,0,0 -660006484,Sam Dommer,USA,male,1991-09-04,1.88,91.0,rowing,0,0,0 -898696395,Sam Dorman,USA,male,1991-08-30,1.76,77.0,aquatics,0,1,0 -23788700,Sam Griffiths,AUS,male,1972-05-27,1.71,73.0,equestrian,0,0,1 -826848760,Sam Groth,AUS,male,1987-10-19,,,tennis,0,0,0 -835488067,Sam Kendricks,USA,male,1992-09-07,1.86,79.0,athletics,0,0,1 -785341118,Sam McEntee,AUS,male,1992-02-03,1.91,67.0,athletics,0,0,0 -294472857,Sam Meech,NZL,male,1991-04-04,1.83,81.0,sailing,0,0,1 -115220097,Sam Townsend,GBR,male,1985-11-26,1.99,102.0,rowing,0,0,0 -541927313,Sam Ward,GBR,male,1990-12-24,1.78,75.0,hockey,0,0,0 -479073328,Sam Webster,NZL,male,1991-07-16,1.83,80.0,cycling,0,1,0 -419064340,Sam Welsford,AUS,male,1996-01-19,1.79,82.0,cycling,0,1,0 -55429092,Sam Willoughby,AUS,male,1991-08-15,1.73,87.0,cycling,0,0,0 -600127558,Saman Ahmed Tahmasebi,AZE,male,1985-07-26,1.8,85.0,wrestling,0,0,0 -643857228,Samantha Arevalo,ECU,female,1994-09-30,1.71,60.0,aquatics,0,0,0 -144477923,Samantha Birch,AUS,female,1981-06-06,1.61,,equestrian,0,0,0 -750356413,Samantha Charlton,NZL,female,1991-12-07,1.74,66.0,hockey,0,0,0 -932711733,Samantha Kassman,PNG,female,1984-01-23,1.65,68.0,taekwondo,0,0,0 -494749900,Samantha Kerr,AUS,female,1993-09-10,1.67,63.0,football,0,0,0 -890674126,Samantha Mewis,USA,female,1992-10-09,1.83,74.0,football,0,0,0 -103473949,Samantha Murray,GBR,female,1989-09-25,1.74,60.0,modern pentathlon,0,0,0 -244735360,Samantha Quek,GBR,female,1988-10-18,1.69,62.0,hockey,1,0,0 -917830379,Samantha Roberts,ANT,female,2000-04-21,1.72,64.0,aquatics,0,0,0 -580514299,Samantha Stosur,AUS,female,1984-03-30,1.72,68.0,tennis,0,0,0 -431344021,Samar Amer Ibrahim Hamza,EGY,female,1995-04-04,1.7,75.0,wrestling,0,0,0 -261741263,Sami Hill,USA,female,1992-06-08,1.83,89.0,aquatics,1,0,0 -813927295,Samia Ahmed,EGY,female,1996-01-20,1.7,57.0,aquatics,0,0,0 -869328062,Samir Ait Said,FRA,male,1989-11-01,1.67,66.0,gymnastics,0,0,0 -556027153,Samira Amirova,UZB,female,1998-04-02,1.62,47.0,gymnastics,0,0,0 -108428818,Samira Ouass,MAR,female,1992-04-22,1.62,74.0,weightlifting,0,0,0 -969554371,Samira Rocha,BRA,female,1989-01-26,1.7,64.0,handball,0,0,0 -65132330,Samisoni Viriviri,FIJ,male,1988-04-25,1.86,88.0,rugby sevens,1,0,0 -496725946,Samkelisiwe Zulu,ZIM,female,1990-04-14,1.64,50.0,football,0,0,0 -712300954,Samson Samuel Opuakpo Forcados,NGR,male,1986-04-24,1.83,81.0,aquatics,0,0,0 -120558748,Samuel Albrecht,BRA,male,1981-09-02,1.8,71.0,sailing,0,0,0 -992495912,Samuel Carmona Heredia,ESP,male,1996-05-28,1.62,,boxing,0,0,0 -513575285,Samuel Cordova,MEX,male,1989-03-13,2.0,89.0,volleyball,0,0,0 -443125316,Samuel Gaze,NZL,male,1995-12-12,1.89,79.0,cycling,0,0,0 -422579271,Samuel Ireri Gathimba,KEN,male,1987-10-26,1.65,57.0,athletics,0,0,0 -619793183,Samuel Mikulak,USA,male,1992-10-13,1.67,63.0,gymnastics,0,0,0 -828892813,Samuel Ojserkis,USA,male,1990-03-24,1.73,55.0,rowing,0,0,0 -322626973,Samuel Oliech,KEN,male,1993-12-15,1.85,92.0,rugby sevens,0,0,0 -203872353,Samuel Schachter,CAN,male,1990-05-08,1.95,80.0,volleyball,0,0,0 -538227014,Samuel Walker,GBR,male,1995-05-07,1.86,74.0,table tennis,0,0,0 -184337666,Samuela Nabenia,FIJ,male,1995-02-09,1.78,76.0,football,0,0,0 -554608436,Samuil Donkov,BUL,male,1983-06-20,1.7,68.0,shooting,0,0,0 -232045954,Samuli Piippo,FIN,male,1980-01-01,1.81,75.0,archery,0,0,0 -82346325,Samy Abdel Razek,EGY,male,1980-04-10,1.7,60.0,shooting,0,0,0 -110457904,San Naing San Naing,MYA,male,1991-03-05,1.7,57.0,athletics,0,0,0 -311616634,San Yu Htwe,MYA,female,1986-10-14,1.67,57.0,archery,0,0,0 -760631015,Sanaa Koubaa,GER,female,1985-01-06,1.7,56.0,athletics,0,0,0 -936764018,Sanae Motokawa,JPN,female,1992-04-02,1.75,65.0,basketball,0,0,0 -193482094,Sanah Mollo,RSA,female,1987-01-30,1.59,64.0,football,0,0,0 -303543549,Sanchai Ratiwatana,THA,male,1982-01-23,1.75,70.0,tennis,0,0,0 -656865751,Sanda Belgyan,ROU,female,1992-12-17,1.65,53.0,athletics,0,0,0 -740295602,Sandeep Kumar,IND,male,1986-05-01,,,athletics,0,0,0 -394939837,Sandeep Tomar,IND,male,1991-04-02,1.68,61.0,wrestling,0,0,0 -597658041,Sander Baart,NED,male,1988-04-30,1.78,76.0,hockey,0,0,0 -287509063,Sander de Wijn,NED,male,1990-05-02,1.83,78.0,hockey,0,0,0 -550264358,Sandi Morris,USA,female,1992-07-08,1.73,62.0,athletics,0,1,0 -603435489,Sandie Clair,FRA,female,1988-04-01,1.6,60.0,cycling,0,0,0 -317595891,Sandie Toletti,FRA,female,1995-07-13,1.69,58.0,football,0,0,0 -952416738,Sandor Racz,HUN,male,1986-09-14,1.78,68.0,athletics,0,0,0 -183435388,Sandor Totka,HUN,male,1994-07-27,1.88,85.0,canoe,0,0,0 -161387205,Sandra Aguilar,ESP,female,1992-08-09,1.68,51.0,gymnastics,0,1,0 -994885002,Sandra Arenas,COL,female,1993-09-17,1.6,50.0,athletics,0,0,0 -750628038,Sandra Auffarth,GER,female,1986-12-27,1.7,57.0,equestrian,0,1,0 -530853976,Sandra Eriksson,FIN,female,1989-06-04,1.63,47.0,athletics,0,0,0 -530454853,Sandra Gal,GER,female,1985-05-09,1.83,70.0,golf,0,0,0 -202752942,Sandra Galvis,COL,female,1986-06-28,1.6,46.0,athletics,0,0,0 -112616108,Sandra Gomis,FRA,female,1983-11-21,1.65,53.0,athletics,0,0,0 -857025783,Sandra Lemos,COL,female,1989-01-01,1.7,100.0,athletics,0,0,0 -211016698,Sandra Perkovic,CRO,female,1990-06-21,1.83,85.0,athletics,1,0,0 -999653955,Sandra Sepulveda,COL,female,1988-03-03,1.67,58.0,football,0,0,0 -705817505,Sandrine Gruda,FRA,female,1987-06-25,1.93,83.0,basketball,0,0,0 -359187609,Sandrine Mainville,CAN,female,1992-03-20,1.73,66.0,aquatics,0,0,1 -458205614,Sandro Aminashvili,GEO,male,1992-02-21,1.8,85.0,wrestling,0,0,0 -673884830,Sandro Bazadze,GEO,male,1993-07-29,1.93,88.0,fencing,0,0,0 -140258499,Sandro Sukno,CRO,male,1990-06-30,2.0,93.0,aquatics,0,1,0 -592791233,Sanghoon Park,KOR,male,1993-03-13,1.83,77.0,cycling,0,0,0 -87067072,Sanghyeok Woo,KOR,male,1996-04-23,1.87,70.0,athletics,0,0,0 -540684681,Sangmin Sim,KOR,male,1993-05-21,1.72,70.0,football,0,0,0 -15622309,Sangmyeong Ham,KOR,male,1995-11-10,1.68,,boxing,0,0,0 -652133768,Sangsu Lee,KOR,male,1990-08-13,1.8,69.0,table tennis,0,0,0 -437224347,Sangwook Lee,KOR,male,1985-10-14,1.7,60.0,gymnastics,0,0,0 -654419111,Sangyoung Park,KOR,male,1995-10-16,1.77,73.0,fencing,1,0,0 -980035227,Sania Mirza,IND,female,1986-11-15,1.66,57.0,tennis,0,0,0 -23025751,Sanita Puspure,IRL,female,1981-12-21,1.8,72.0,rowing,0,0,0 -385623198,Sanna Solberg,NOR,female,1990-06-16,1.78,,handball,0,0,1 -813586699,Sanne Verhagen,NED,female,1992-08-24,1.53,57.0,judo,0,0,0 -366953580,Sanne Wevers,NED,female,1991-09-17,1.56,46.0,gymnastics,1,0,0 -747452521,Sanne van Olphen,NED,female,1989-03-13,1.77,68.0,handball,0,0,0 -131711159,Sanni Utriainen,FIN,female,1991-02-05,1.69,72.0,athletics,0,0,0 -658712925,Santa Pakenyte,LTU,female,1990-12-11,1.86,132.0,judo,0,0,0 -438444460,Santiago Alvarez,ARG,male,1994-01-17,1.88,93.0,rugby sevens,0,0,0 -88117385,Santiago Ascacibar,ARG,male,1997-02-25,1.74,77.0,football,0,0,0 -466362039,Santiago Enrique Grillo Diez,COL,male,1987-05-27,1.85,74.0,sailing,0,0,0 -86887082,Santiago Gonzalez,MEX,male,1983-02-24,1.91,91.0,tennis,0,0,0 -455876725,Santiago Grassi,ARG,male,1996-09-25,1.87,82.0,aquatics,0,0,0 -921054925,Santiago Lange,ARG,male,1961-09-22,1.84,73.0,sailing,1,0,0 -929112768,Santiago Ramirez Morales,COL,male,1994-07-20,1.8,82.0,cycling,0,0,0 -213886728,Santino Kenyi,SSD,male,1993-08-14,1.8,75.0,athletics,0,0,0 -475115369,Santisouk Inthavong,LAO,male,1999-09-02,1.7,60.0,aquatics,0,0,0 -156085164,Santo Condorelli,CAN,male,1995-01-17,1.88,88.0,aquatics,0,0,0 -754215814,Saori Kimura,JPN,female,1986-08-19,1.85,65.0,volleyball,0,0,0 -43036553,Saori Nagamine,JPN,female,1993-07-05,1.66,60.0,archery,0,0,0 -631663441,Saori Sakoda,JPN,female,1987-12-18,1.75,63.0,volleyball,0,0,0 -39484933,Saori Yoshida,JPN,female,1982-10-05,1.57,55.0,wrestling,0,1,0 -988318457,Saoussen Boudiaf,FRA,female,1993-12-31,1.73,69.0,fencing,0,0,0 -451333617,Sapana Sapana,IND,female,1988-01-02,,,athletics,0,0,0 -361564419,Sapsiree Taerattanachai,THA,female,1992-04-18,1.7,59.0,badminton,0,0,0 -635644066,Sara Ahmed,EGY,female,1998-01-01,1.55,68.0,weightlifting,0,0,1 -424013884,Sara Algotsson Ostholt,SWE,female,1974-12-08,1.63,56.0,equestrian,0,0,0 -871531053,Sara Bertolasi,ITA,female,1988-04-29,1.79,68.0,rowing,0,0,0 -657896616,Sara Carmo,POR,female,1986-10-12,1.79,69.0,sailing,0,0,0 -576383527,Sara Cholnoky,HUN,female,1988-11-03,1.65,64.0,sailing,0,0,0 -716078374,Sara Daebritz,GER,female,1995-02-15,1.71,59.0,football,1,0,0 -807403357,Sara Dosho,JPN,female,1994-10-17,1.59,69.0,wrestling,1,0,0 -54068810,Sara Errani,ITA,female,1987-04-29,1.64,58.0,tennis,0,0,0 -809844335,Sara Franceschi,ITA,female,1999-02-01,1.78,61.0,aquatics,0,0,0 -628076788,Sara Gambetta,GER,female,1993-02-18,1.84,89.0,athletics,0,0,0 -851213557,Sara Kolak,CRO,female,1995-06-22,1.7,74.0,athletics,1,0,0 -824809383,Sara Krnjic,SRB,female,1991-07-15,1.93,83.0,basketball,0,0,1 -718107651,Sara Lopez Ravetllat,ESP,female,1992-11-29,1.65,66.0,sailing,0,0,0 -213440914,Sara Louise Treacy,IRL,female,1989-06-22,1.68,58.0,athletics,0,0,0 -21017895,Sara Moreira,POR,female,1985-10-17,1.66,50.0,athletics,0,0,0 -686409294,Sara Mustonen,SWE,female,1981-02-08,1.61,58.0,cycling,0,0,0 -517852202,Sara Pastrana,HON,female,1999-03-12,1.7,55.0,aquatics,0,0,0 -764316889,Sara Ramadhani,TAN,female,1987-12-30,,45.0,athletics,0,0,0 -939579347,Sara Sgarzi,ITA,female,1986-05-27,1.75,63.0,aquatics,0,0,0 -796713465,Sara Slott Petersen,DEN,female,1987-04-09,1.71,57.0,athletics,0,1,0 -968095020,Sara Tan,SIN,female,1990-08-06,1.71,71.0,sailing,0,0,0 -666449730,Sara Vilic,AUT,female,1992-03-29,1.7,55.0,triathlon,0,0,0 -32160007,Sarah Atcho,SUI,female,1995-06-01,1.8,63.0,athletics,0,0,0 -216183238,Sarah Attar,KSA,female,1992-08-27,1.65,52.0,athletics,0,0,0 -717386326,Sarah Banting,AUS,female,1993-11-09,,,rowing,0,0,0 -578952502,Sarah Barrow,GBR,female,1988-10-22,1.6,53.0,aquatics,0,0,0 -920425475,Sarah Bouhaddi,FRA,female,1986-10-17,1.75,68.0,football,0,0,0 -307552411,Sarah Bro,DEN,female,1996-03-04,1.77,64.0,aquatics,0,0,0 -955540321,Sarah Elizabeth Robles,USA,female,1988-08-01,1.78,143.0,weightlifting,0,0,1 -291926816,Sarah Goss,NZL,female,1992-12-09,1.76,73.0,rugby sevens,0,1,0 -489042953,Sarah Gregorius,NZL,female,1987-08-06,1.58,52.0,football,0,0,0 -828720993,Sarah Guyot,FRA,female,1991-04-16,1.76,69.0,canoe,0,0,0 -773163998,Sarah Hammer,USA,female,1983-08-18,1.71,65.0,cycling,0,2,0 -245433771,Sarah Hornung,SUI,female,1996-04-18,1.51,43.0,shooting,0,0,0 -135997067,Sarah Kohler,GER,female,1994-06-20,1.79,67.0,aquatics,0,0,0 -335518971,Sarah Lahti,SWE,female,1995-02-18,1.77,54.0,athletics,0,0,0 -842091888,Sarah Menezes,BRA,female,1990-03-26,1.54,48.0,judo,0,0,0 -218628942,Sarah Michel,FRA,female,1989-01-10,1.8,65.0,basketball,0,0,0 -886890449,Sarah Myriam Mazouz,GAB,female,1987-04-29,1.77,77.0,judo,0,0,0 -601579213,Sarah Nikitin,BRA,female,1988-12-27,1.7,75.0,archery,0,0,0 -950602968,Sarah Ourahmoune,FRA,female,1982-01-21,1.57,,boxing,0,1,0 -809483271,Sarah Pavan,CAN,female,1986-08-16,1.96,70.0,volleyball,0,0,0 -176016249,Sarah Scherer,USA,female,1991-02-12,1.71,62.0,shooting,0,0,0 -350191738,Sarah Sjostrom,SWE,female,1993-08-17,1.82,76.0,aquatics,1,1,1 -464482319,Sarah Steyaert,FRA,female,1986-11-27,1.75,67.0,sailing,0,0,0 -952559484,Sarah Troel,FRA,female,1986-07-12,1.75,71.0,canoe,0,0,0 -360246098,Sarah True,USA,female,1981-11-27,1.71,60.0,triathlon,0,0,0 -204834878,Sarah-Anne Brault,CAN,female,1989-12-01,1.71,65.0,triathlon,0,0,0 -579905792,Saraswati Bhattarai,NEP,female,1994-03-08,1.63,46.0,athletics,0,0,0 -509184238,Sarat Sumpradit,THA,male,1994-04-17,1.81,93.0,weightlifting,0,0,0 -487278690,Sardar Singh,IND,male,1986-07-15,1.76,80.0,hockey,0,0,0 -32650602,Sardorbek Dusmurotov,UZB,male,1993-03-13,1.68,110.0,weightlifting,0,0,0 -662999016,Sargis Martirosjan,AUT,male,1986-09-14,1.79,104.0,weightlifting,0,0,0 -122086540,Sarolta Kovacs,HUN,female,1991-03-12,1.67,59.0,modern pentathlon,0,0,0 -929534823,Sarra Besbes,TUN,female,1989-02-05,1.75,62.0,fencing,0,0,0 -357200340,Sasa Cado,SRB,female,1989-07-13,1.78,72.0,basketball,0,0,1 -513283860,Sasa MISIC,MNE,male,1987-03-27,1.98,109.0,aquatics,0,0,0 -672574541,Sascha Klein,GER,male,1985-09-12,1.73,71.0,aquatics,0,0,0 -586159759,Sascia Kraus,SUI,female,1993-03-03,1.77,65.0,aquatics,0,0,0 -543039018,Sashalee Forbes,JAM,female,1996-05-10,1.6,55.0,athletics,0,1,0 -626916015,Saskia Bartusiak,GER,female,1982-09-09,1.7,60.0,football,1,0,0 -447095096,Saskia Clark,GBR,female,1979-08-23,1.76,68.0,sailing,1,0,0 -757107967,Saskia Loretta van Erven Garcia,COL,female,1987-08-29,1.75,64.0,fencing,0,0,0 -819917798,Saskia Tidey,IRL,female,1993-06-11,1.83,70.0,sailing,0,0,0 -120862414,Saso Taljat,SLO,male,1989-09-22,1.74,73.0,canoe,0,0,0 -857233175,Sathish Kumar Sivalingam,IND,male,1992-06-23,1.75,77.0,weightlifting,0,0,0 -753187729,Satomi Kubokura,JPN,female,1982-04-27,1.6,52.0,athletics,0,0,0 -631296742,Satomi Suzuki,JPN,female,1991-01-29,1.68,62.0,aquatics,0,0,0 -186482270,Satoru Sasaki,JPN,male,1985-10-16,1.71,56.0,athletics,0,0,0 -780249197,Sattawat Pongnairat,USA,male,1990-05-08,1.81,70.0,badminton,0,0,0 -160287556,Satu Makela-Nummela,FIN,female,1970-10-26,1.69,63.0,shooting,0,0,0 -458458780,Saturday Erimuya,NGR,male,1998-01-10,1.71,,football,0,0,1 -742022352,Saud Alzaabi,UAE,male,1988-08-07,,,athletics,0,0,0 -800437586,Saud Habib,IOA,male,1979-10-04,1.77,85.0,shooting,0,0,0 -530860018,Saul Craviotto,ESP,male,1984-11-03,1.92,98.0,canoe,1,0,1 -538588992,Saul Gutierrez Macedo,MEX,male,1992-12-28,1.91,68.0,taekwondo,0,0,0 -627929661,Saula Waqa,FIJ,male,1995-10-12,1.96,96.0,football,0,0,0 -818121664,Saulius Ritter,LTU,male,1988-08-23,2.02,110.0,rowing,0,1,0 -227050501,Sava Randelovic,SRB,male,1993-07-17,1.93,98.0,aquatics,1,0,0 -649115184,Savannah Marshall,GBR,female,1991-05-19,1.81,,boxing,0,0,0 -692221197,Savenaca Rawaca,FIJ,male,1991-08-20,1.89,105.0,rugby sevens,1,0,0 -684153467,Saviour Godwin,NGR,male,1996-08-22,1.72,71.0,football,0,0,0 -202363602,Savita Savita,IND,female,1990-07-11,1.71,59.0,hockey,0,0,0 -309381381,Savitree Amitrapai,THA,female,1988-11-19,1.64,56.0,badminton,0,0,0 -194183434,Sawan Serasinghe,AUS,male,1994-02-21,1.78,79.0,badminton,0,0,0 -436141773,Saylom Ardee,THA,male,1986-07-07,1.75,,boxing,0,0,0 -185315649,Sayuri Sugimoto,JPN,female,1996-01-25,1.67,48.0,gymnastics,0,0,0 -488272303,Saziye Ivegin Uner,TUR,female,1982-02-08,1.8,69.0,basketball,0,0,0 -752901474,Scarleth Elizabeth Mercado Lopez,NCA,female,1996-08-09,1.52,53.0,weightlifting,0,0,0 -783419907,Scott Bowden,AUS,male,1995-04-04,1.75,65.0,cycling,0,0,0 -815590991,Scott Curry,NZL,male,1988-05-17,1.93,100.0,rugby sevens,0,0,0 -733105712,Scott Durant,GBR,male,1988-02-12,1.96,96.0,rowing,1,0,0 -128810768,Scott Evans,IRL,male,1987-09-26,1.8,78.0,badminton,0,0,0 -758417011,Scott Hend,AUS,male,1973-08-15,1.83,82.0,golf,0,0,0 -153971498,Scott Keach,AUS,male,1965-04-21,1.85,80.0,equestrian,0,0,0 -744441795,Scott Morgan,CAN,male,1989-06-20,1.6,62.0,gymnastics,0,0,0 -880417665,Scott Tupper,CAN,male,1986-12-16,1.79,79.0,hockey,0,0,0 -652324517,Scott Westcott,AUS,male,1975-09-25,1.79,64.0,athletics,0,0,0 -964785333,Se Gwang Ri,PRK,male,1985-01-21,1.55,54.0,gymnastics,1,0,0 -715580856,Seabelo Senatla,RSA,male,1993-02-10,1.77,82.0,rugby sevens,0,0,1 -947393781,Seamus Power,IRL,male,1987-03-04,1.92,90.0,golf,0,0,0 -78197579,Sean Furey,USA,male,1982-08-31,1.88,90.0,athletics,0,0,0 -599859960,Sean Michael Gunn,ZIM,male,1993-12-23,1.81,84.0,aquatics,0,0,0 -462481375,Sean Ryan,USA,male,1992-08-13,1.91,77.0,aquatics,0,0,0 -915415519,Sean Safo-Antwi,GHA,male,1990-10-31,1.71,69.0,athletics,0,0,0 -644711592,Seavmey Sorn,CAM,female,1995-09-14,1.83,73.0,taekwondo,0,0,0 -188093060,Sebastiaan Verschuren,NED,male,1988-10-07,1.92,84.0,aquatics,0,0,0 -746518634,Sebastian Brendel,GER,male,1988-03-12,1.92,92.0,canoe,2,0,0 -782106653,Sebastian Fleischer,DEN,male,1993-12-26,1.79,74.0,sailing,0,0,0 -947656351,Sebastian Kerk,GER,male,1994-04-17,1.84,76.0,football,0,0,0 -821529588,Sebastian Kuntschik,AUT,male,1988-09-23,1.82,79.0,shooting,0,0,0 -987203474,Sebastian Martos,ESP,male,1989-06-20,1.78,63.0,athletics,0,0,0 -409782771,Sebastian Morales,COL,male,1994-08-22,1.71,65.0,aquatics,0,0,0 -857597893,Sebastian Perez,COL,male,1993-03-29,1.77,69.0,football,0,0,0 -806780265,Sebastian Rodger,GBR,male,1991-06-29,1.8,70.0,athletics,0,0,0 -502044930,Sebastian Rossi,ARG,male,1992-02-12,1.75,77.0,canoe,0,0,0 -481454192,Sebastian Seidl,GER,male,1990-07-12,1.74,70.0,judo,0,0,0 -62067112,Sebastian Simonet,ARG,male,1986-05-12,1.89,93.0,handball,0,0,0 -526844987,Sebastian Sole,ARG,male,1991-06-12,2.0,94.0,volleyball,0,0,0 -628729080,Sebastian Starke Hedlund,SWE,male,1995-04-05,1.85,77.0,football,0,0,0 -948050872,Sebastian Villa,COL,male,1992-02-21,1.64,59.0,aquatics,0,0,0 -50163222,Sebastien Combot,FRA,male,1987-02-09,1.69,64.0,canoe,0,0,0 -980137222,Sebastien Daniel Rousseau,RSA,male,1990-09-10,1.9,86.0,aquatics,0,0,0 -266769451,Sebastien Dockier,BEL,male,1989-12-28,1.75,74.0,hockey,0,1,0 -394906544,Sebastien Jouve,FRA,male,1982-12-08,1.86,90.0,canoe,0,0,0 -696726152,Sebastien Martiny,FRA,male,1985-02-27,1.72,65.0,gymnastics,0,0,0 -421109661,Sebastien Reichenbach,SUI,male,1989-05-28,1.78,65.0,cycling,0,0,0 -755469189,Sebastien Schneiter,SUI,male,1995-09-24,1.76,72.0,sailing,0,0,0 -555941174,Sebnem Nezahat Kimyacioglu,TUR,female,1983-06-14,1.82,80.0,basketball,0,0,0 -471386171,Seda Tutkhalian,RUS,female,1999-07-15,1.42,35.0,gymnastics,0,1,0 -661458776,Seema Punia,IND,female,1983-07-27,1.82,92.0,athletics,0,0,0 -477722646,Segun Toriola,NGR,male,1974-09-18,1.72,70.0,table tennis,0,0,0 -64323819,Segundo Jami,ECU,male,1986-05-12,1.65,54.0,athletics,0,0,0 -365917008,Seham Elsawalhy,EGY,female,1991-04-14,1.75,65.0,taekwondo,0,0,0 -833886361,Sehyeon An,KOR,female,1995-10-14,1.68,56.0,aquatics,0,0,0 -386696464,Sei Muroya,JPN,male,1994-04-05,1.74,65.0,football,0,0,0 -881914341,Seiichiro Nakagawa,JPN,male,1979-06-07,1.74,78.0,cycling,0,0,0 -450765459,Seimone Augustus,USA,female,1984-04-30,1.83,74.0,basketball,1,0,0 -961376949,Seito Yamamoto,JPN,male,1992-03-11,1.81,70.0,athletics,0,0,0 -879945924,Seiya Adachi,JPN,male,1995-06-24,1.72,67.0,aquatics,0,0,0 -758020443,Seiyoung Kim,KOR,female,1993-01-21,1.63,68.0,golf,0,0,0 -548391655,Sekou Kaba,CAN,male,1990-08-25,1.88,88.0,athletics,0,0,0 -438328823,Selcuk Cebi,TUR,male,1982-06-03,1.69,76.0,wrestling,0,0,0 -23409142,Selcuk Eker,TUR,male,1991-06-12,1.69,,boxing,0,0,0 -187017492,Selena Piek,NED,female,1991-09-30,1.66,59.0,badminton,0,0,0 -121821838,Selim Yasar,TUR,male,1990-02-20,1.79,86.0,wrestling,0,1,0 -429028627,Selin Oruz,GER,female,1997-02-05,1.72,60.0,hockey,0,0,1 -280240800,Selina Buchel,SUI,female,1991-07-26,1.67,57.0,athletics,0,0,0 -837915273,Selina Gschwandtner,GER,female,1994-05-18,1.66,64.0,shooting,0,0,0 -387125204,Selma Kajan,AUS,female,1991-07-30,1.69,52.0,athletics,0,0,0 -275237162,Semen Makovich,RUS,male,1995-07-13,1.8,76.0,aquatics,0,0,0 -9122032,Semi Kunatani,FIJ,male,1990-10-27,1.92,98.0,rugby sevens,1,0,0 -35226441,Semoy Hackett,TTO,female,1988-11-27,1.73,61.0,athletics,0,0,0 -206262070,Sen Qiao,CHN,male,1990-05-14,1.97,85.0,taekwondo,0,0,0 -806870975,Sena Takano,JPN,female,1998-03-01,1.65,65.0,sailing,0,0,0 -743927516,Senbere Teferi,ETH,female,1995-05-03,,,athletics,0,0,0 -652894591,Senna Deriks,BEL,female,2000-12-30,1.54,46.0,gymnastics,0,0,0 -846363781,Seona Hwang,KOR,female,1989-09-16,1.63,55.0,fencing,0,0,0 -961455216,Seongeun Hwang,KOR,female,1993-02-28,1.65,55.0,shooting,0,0,0 -221532533,Seongyeon Kim,KOR,female,1991-04-16,1.75,70.0,judo,0,0,0 -4661115,Seoyeong Kim,KOR,female,1994-03-17,1.63,51.0,aquatics,0,0,0 -655555498,Seppe van Holsbeke,BEL,male,1988-01-19,1.98,93.0,fencing,0,0,0 -252015329,Ser-Od Bat-Ochir,MGL,male,1981-10-07,1.69,61.0,athletics,0,0,0 -86771577,Seref Osmanoglu,TUR,male,1989-01-02,1.83,75.0,athletics,0,0,0 -310865074,Seren Bundy-Davies,GBR,female,1994-12-30,1.75,63.0,athletics,0,0,0 -24929950,Serena Ortolani,ITA,female,1987-01-07,1.87,63.0,volleyball,0,0,0 -379931177,Serena Williams,USA,female,1981-09-26,1.78,72.0,tennis,0,0,0 -297370521,Serge Gnabry,GER,male,1995-07-14,1.73,80.0,football,0,1,0 -270678554,Serge Michel,GER,male,1988-09-10,1.81,,boxing,0,0,0 -612124451,Serge Pauwels,BEL,male,1983-11-21,1.77,64.0,cycling,0,0,0 -151596328,Sergei Chernetski,RUS,male,1990-04-09,1.76,63.0,cycling,0,0,0 -333027986,Sergei Komissarov,RUS,male,1987-12-03,1.84,81.0,sailing,0,0,0 -594962081,Sergey Grankin,RUS,male,1985-01-21,1.95,96.0,volleyball,0,0,0 -549185484,Sergey Kamenskiy,RUS,male,1987-10-07,1.78,73.0,shooting,0,1,0 -478548021,Sergey Khodos,RUS,male,1986-07-14,1.97,87.0,fencing,0,0,0 -645801054,Sergey Richter,ISR,male,1989-04-23,1.8,83.0,shooting,0,0,0 -536871163,Sergey Semenov,RUS,male,1995-08-10,1.87,130.0,wrestling,0,0,1 -428021542,Sergey Tetyukhin,RUS,male,1975-09-23,1.97,89.0,volleyball,0,0,0 -890081492,Serghei Cechir,MDA,male,1990-10-15,1.72,69.0,weightlifting,0,0,0 -832276457,Serghei Marghiev,MDA,male,1992-11-06,1.95,97.0,athletics,0,0,0 -137541951,Serghei Tarnovschi,MDA,male,1997-06-24,1.78,80.0,canoe,0,0,1 -825721013,Serghei Tvetcov,ROU,male,1988-12-29,1.78,70.0,cycling,0,0,0 -240732198,Sergi Enrique,ESP,male,1987-09-22,1.74,69.0,hockey,0,0,0 -804903425,Sergii Frolov,UKR,male,1992-04-14,1.74,74.0,aquatics,0,0,0 -774141587,Sergii Tokarnytskyi,KAZ,male,1993-02-01,1.88,102.0,canoe,0,0,0 -954264527,Sergio Alvarez Moya,ESP,male,1985-01-07,1.74,74.0,equestrian,0,0,0 -558359788,Sergio Dutra Santos,BRA,male,1975-10-15,1.84,78.0,volleyball,1,0,0 -790285042,Sergio Fernandez,ESP,male,1993-04-01,1.86,78.0,athletics,0,0,0 -952347029,Sergio Garcia,ESP,male,1980-01-09,1.76,80.0,golf,0,0,0 -157650129,Sergio Llull,ESP,male,1987-11-15,1.9,91.0,basketball,0,0,1 -848761398,Sergio Luis Henao Montoya,COL,male,1987-12-10,1.7,61.0,cycling,0,0,0 -390699178,Sergio Oliveira,POR,male,1992-06-02,1.8,80.0,football,0,0,0 -783188500,Sergio Pessoa,CAN,male,1988-09-03,1.87,60.0,judo,0,0,0 -259358477,Sergio Reynaldo Gonzalez Bayard,CUB,male,1990-06-20,1.95,99.0,volleyball,0,0,0 -156131114,Sergio Rodriguez,ESP,male,1986-06-12,1.91,80.0,basketball,0,0,1 -534656783,Sergio Sasaki,BRA,male,1992-03-31,1.61,64.0,gymnastics,0,0,0 -92473676,Sergio Vieira,POR,male,1976-02-20,1.74,60.0,athletics,0,0,0 -413925924,Sergiu Oleinic,POR,male,1985-12-25,1.65,68.0,judo,0,0,0 -642221222,Sergiu Toma,UAE,male,1987-01-29,1.8,81.0,judo,0,0,1 -993364632,Serguey Torres,CUB,male,1987-01-20,1.75,74.0,canoe,0,0,0 -638712579,Serhiy Budza,UKR,male,1984-12-06,1.8,75.0,athletics,0,0,0 -76496713,Serhiy Kulish,UKR,male,1993-04-17,1.76,64.0,shooting,0,1,0 -612592716,Serhiy Smelyk,UKR,male,1987-04-19,1.78,72.0,athletics,0,0,0 -544720324,Serik Mirbekov,UZB,male,1988-06-09,1.76,83.0,canoe,0,0,0 -983390495,Servet Tazegul,TUR,male,1988-09-26,1.76,68.0,taekwondo,0,0,0 -631502285,Setareki Hughes,FIJ,male,1995-06-08,1.75,73.0,football,0,0,0 -13474372,Seth Weil,USA,male,1987-03-09,1.99,97.0,rowing,0,0,0 -526516331,Seul-Ki Ahn,KOR,female,1992-05-29,1.61,46.0,athletics,0,0,0 -860133860,Seulchan Lee,KOR,male,1993-08-15,1.72,65.0,football,0,0,0 -732031439,Seung Chan Shin,KOR,female,1994-12-06,1.73,70.0,badminton,0,0,1 -714388590,Seunga Park,KOR,female,1991-04-16,1.68,61.0,hockey,0,0,0 -863636948,Seunghwa Jung,KOR,male,1981-03-27,1.8,80.0,fencing,0,0,0 -598701842,Seunghyun Jung,KOR,male,1994-04-03,1.88,74.0,football,0,0,0 -215880405,Seunghyun Yun,KOR,male,1994-06-01,1.93,75.0,athletics,0,0,0 -299216431,Seungsu Lee,KOR,male,1990-07-20,1.78,81.0,judo,0,0,0 -319207842,Seungwoo Han,KOR,male,1983-07-03,1.73,86.0,shooting,0,0,0 -950256788,Seungwoo Ryu,KOR,male,1993-12-17,1.72,67.0,football,0,0,0 -739050983,Seungyun Lee,KOR,male,1995-04-18,1.74,80.0,archery,1,0,0 -663165360,Severiano van Ass,NED,male,1992-04-10,1.78,70.0,hockey,0,0,0 -243524329,Severo Jesus Jurado Lopez,ESP,male,1988-09-09,1.72,71.0,equestrian,0,0,0 -615481668,Seye Ogunlewe,NGR,male,1991-08-30,1.89,84.0,athletics,0,0,0 -862783506,Seyed Mohammad Mousavi Eraghi,IRI,male,1987-08-22,2.03,86.0,volleyball,0,0,0 -817723961,Shadae Lawrence,JAM,female,1995-12-31,1.73,84.0,athletics,0,0,0 -781173388,Shadrack Kipchirchir,USA,male,1989-02-22,1.73,53.0,athletics,0,0,0 -753177730,Shahar Zubari,ISR,male,1986-09-01,1.77,68.0,sailing,0,0,0 -188476296,Shahram Mahmoudi,IRI,male,1988-07-20,1.98,95.0,volleyball,0,0,0 -630214839,Shaimaa Haridy,EGY,female,1991-01-01,1.6,124.0,weightlifting,0,0,0 -926666572,Shakhboz Kholmurzaev,UZB,male,1996-02-26,1.88,78.0,rowing,0,0,0 -294616056,Shakhobidin Zoirov,UZB,male,1993-03-03,1.69,,boxing,1,0,0 -295291162,Shakhram Giyasov,UZB,male,1993-07-07,1.74,,boxing,0,1,0 -107756226,Shakhzodbek Sabirov,UZB,male,1993-05-29,1.83,81.0,judo,0,0,0 -907513797,Shakira Baker,NZL,female,1992-01-04,1.72,89.0,rugby sevens,0,1,0 -682806875,Shakur Stevenson,USA,male,1997-06-28,1.73,,boxing,0,1,0 -591949071,Shalane Flanagan,USA,female,1981-07-08,1.66,47.0,athletics,0,0,0 -289631929,Shallon Olsen,CAN,female,2000-07-10,1.58,52.0,gymnastics,0,0,0 -551301673,Shamoli Ray,BAN,female,1994-04-05,,,archery,0,0,0 -722411313,Shane O'Donoghue,IRL,male,1992-11-24,1.83,80.0,hockey,0,0,0 -827053441,Shane Rose,AUS,male,1973-04-24,1.81,80.0,equestrian,0,0,1 -123371543,Shane Ryan,IRL,male,1994-01-27,1.98,89.0,aquatics,0,0,0 -304415448,Shaneel Naidu,FIJ,male,1995-03-28,1.8,77.0,football,0,0,0 -690199324,Shani Bloch,ISR,female,1979-03-06,1.62,59.0,cycling,0,0,0 -838944632,Shanice Craft,GER,female,1993-05-15,1.85,93.0,athletics,0,0,0 -672509994,Shanieka Thomas,JAM,female,1992-02-02,1.81,66.0,athletics,0,0,0 -368129090,Shanne Braspennincx,NED,female,1991-05-18,1.72,78.0,cycling,0,0,0 -19644871,Shannon Izar,FRA,female,1993-05-08,1.72,68.0,rugby sevens,0,0,0 -861802437,Shannon McCurley,IRL,female,1992-04-26,1.63,65.0,cycling,0,0,0 -364894953,Shannon Parry,AUS,female,1989-10-27,1.7,70.0,rugby sevens,1,0,0 -165793657,Shannon Rowbury,USA,female,1984-09-19,1.66,52.0,athletics,0,0,0 -297515398,Shanshan Feng,CHN,female,1989-08-05,1.72,85.0,golf,0,0,1 -70444302,Shanshan Li,CHN,female,1987-03-03,1.78,62.0,basketball,0,0,0 -124085107,Shanshan Liu,CHN,female,1992-03-16,1.69,65.0,football,0,0,0 -620111487,Shanshan Wang,CHN,female,1990-01-27,1.69,57.0,football,0,0,0 -843106594,Shaoqing Hua,CHN,female,1994-02-12,1.65,50.0,athletics,0,0,0 -353324453,Shaquania Dorsett,BAH,female,1997-09-16,,,athletics,0,0,0 -625323278,Shara Proctor,GBR,female,1988-09-16,1.73,60.0,athletics,0,0,0 -170273489,Shara Venegas,PUR,female,1992-09-18,1.73,68.0,volleyball,0,0,0 -198250006,Sharath Kamal Achanta,IND,male,1982-07-12,1.86,85.0,table tennis,0,0,0 -492459833,Sharif Sharifov,AZE,male,1988-11-11,1.8,97.0,wrestling,0,0,1 -501621761,Sharni Williams,AUS,female,1988-03-02,1.67,79.0,rugby sevens,1,0,0 -729778002,Sharolyn Scott,CRC,female,1983-10-27,1.68,63.0,athletics,0,0,0 -179932407,Sharon Acevedo,COL,female,1993-03-05,1.7,61.0,rugby sevens,0,0,0 -509787602,Sharon Firisua,SOL,female,1993-12-15,,,athletics,0,0,0 -370330019,Sharon van rouwendaal,NED,female,1993-09-09,1.73,65.0,aquatics,1,0,0 -371532634,Shaun Keeling,RSA,male,1987-01-21,1.96,94.0,rowing,0,1,0 -810913943,Shaun Kirkham,NZL,male,1992-07-24,1.91,96.0,rowing,0,0,0 -110430107,Shaunae Miller,BAH,female,1994-04-15,1.85,69.0,athletics,1,0,0 -891682431,Shavez Hart,BAH,male,1992-09-06,,,athletics,0,0,0 -421736590,Shawn Dingilius-Wallace,PLW,male,1994-07-26,1.84,93.0,aquatics,0,0,0 -239879514,Shawnacy Barber,CAN,male,1994-05-27,1.87,82.0,athletics,0,0,0 -906208615,Shay Neal,NZL,male,1990-06-04,1.76,75.0,hockey,0,0,0 -988651056,Shea McALEESE,NZL,male,1984-08-07,1.77,82.0,hockey,0,0,0 -798829173,Shehzana Anwar,KEN,female,1989-08-21,1.6,55.0,archery,0,0,0 -70622338,Sheikh Ali Al Thani,QAT,male,1982-09-01,1.94,73.0,equestrian,0,0,0 -323305837,Sheila Chajira,KEN,female,1993-12-20,1.65,73.0,rugby sevens,0,0,0 -148122474,Sheila Makoto,ZIM,female,1990-01-14,1.58,59.0,football,0,0,0 -994348153,Sheilla Castro de Paula Blassioli,BRA,female,1983-07-01,1.85,65.0,volleyball,0,0,0 -3895186,Shelayna Oskan-Clarke,GBR,female,1990-01-20,1.72,64.0,athletics,0,0,0 -586628246,Shelbi Vaughan,USA,female,1994-08-24,1.83,127.0,athletics,0,0,0 -362859708,Shelby Houlihan,USA,female,1993-02-08,1.61,53.0,athletics,0,0,0 -963097425,Shelina Zadorsky,CAN,female,1992-10-24,1.72,67.0,football,0,0,1 -425110382,Shelley Marie Watts,AUS,female,1987-08-10,1.64,,boxing,0,0,0 -80192943,Shelly Francis,USA,female,1958-12-16,1.58,65.0,equestrian,0,0,0 -422183350,Shelly-Ann Fraser-Pryce,JAM,female,1986-12-27,1.52,57.0,athletics,0,1,1 -256335420,Sheng Lei,CHN,male,1984-03-07,1.93,77.0,fencing,0,0,0 -830512513,Sheng Mu Lee,TPE,male,1986-10-03,1.79,71.0,badminton,0,0,0 -551099828,Shengbo Zhao,CHN,male,1982-04-14,1.75,81.0,shooting,0,0,0 -693828504,Shengfeng Bi,CHN,male,1989-01-28,1.83,87.0,wrestling,0,0,0 -94758945,Sheniqua Ferguson,BAH,female,1989-11-24,1.71,57.0,athletics,0,0,0 -451530720,Sherali Juraev,UZB,male,1986-12-13,1.82,90.0,judo,0,0,0 -225168499,Shericka Jackson,JAM,female,1994-07-16,1.73,61.0,athletics,0,1,1 -352645279,Sherine Elzeiny,EGY,female,1991-02-23,1.6,50.0,gymnastics,0,0,0 -781234683,Sherko Kareem,IRQ,male,1996-05-25,1.74,70.0,football,0,0,0 -739754145,Shermaine Williams,JAM,female,1990-02-04,1.76,65.0,athletics,0,0,0 -162371447,Shih-Chia Lin,TPE,female,1993-05-20,1.65,63.0,archery,0,0,1 -316407203,Shih-Chieh Chen,TPE,male,1989-11-27,1.9,152.0,weightlifting,0,0,0 -638278169,Shih-Feng Huang,TPE,male,1992-03-02,1.78,88.0,athletics,0,0,0 -719261791,Shiho Nishioka,JPN,female,1989-02-23,1.69,60.0,fencing,0,0,0 -2696635,Shiho Oyama,JPN,female,1977-05-25,1.68,62.0,golf,0,0,0 -450566696,Shijia Wang,CHN,female,1993-08-25,1.74,63.0,aquatics,0,0,0 -139152565,Shijie Qieyang,CHN,female,1990-11-11,1.6,45.0,athletics,0,0,0 -48818974,Shimaa Hashad,EGY,female,1981-04-21,1.66,57.0,shooting,0,0,0 -702145103,Shingo Katayama,JPN,male,1973-01-31,1.71,72.0,golf,0,0,0 -814685422,Shinnosuke Nakatani,JPN,male,1996-03-24,1.84,79.0,football,0,0,0 -213190977,Shinobu Ota,JPN,male,1993-12-28,1.65,65.0,wrestling,0,1,0 -169399991,Shinri Shioura,JPN,male,1991-11-26,1.88,90.0,aquatics,0,0,0 -224547831,Shinya Yajima,JPN,male,1994-01-18,1.71,67.0,football,0,0,0 -979127201,Shinzo Koroki,JPN,male,1986-07-31,1.75,72.0,football,0,0,0 -109446999,Shira Rishony,ISR,female,1991-02-21,1.5,48.0,judo,0,0,0 -229032173,Shirin Akter,BAN,female,1994-10-12,,,athletics,0,0,0 -200540934,Shitaye Eshete,BRN,female,1990-05-21,1.64,51.0,athletics,0,0,0 -652257369,Shiva Thapa,IND,male,1993-12-08,1.69,,boxing,0,0,0 -476256445,Shivani Shivani,IND,female,1997-09-27,1.63,60.0,aquatics,0,0,0 -720527022,Shiwe Nogwanya,RSA,female,1994-03-07,1.68,61.0,football,0,0,0 -207795938,Shiwen Liu,CHN,female,1991-04-12,1.6,54.0,table tennis,1,0,0 -538468544,Shiwen Ye,CHN,female,1996-03-01,1.72,71.0,aquatics,0,0,0 -36387534,Shiying Liu,CHN,female,1993-09-24,1.79,76.0,athletics,0,0,0 -880751102,Shlomi Haimy,ISR,male,1989-06-19,1.67,58.0,cycling,0,0,0 -522662655,Shmagi Bolkvadze,GEO,male,1994-07-26,1.7,66.0,wrestling,0,0,1 -629603163,Sho Kawamoto,JPN,male,1993-03-01,1.75,68.0,athletics,0,0,0 -964540128,Sho Sakai,JPN,male,1992-08-22,1.71,58.0,aquatics,0,0,0 -189386940,Sho Sasaki,JPN,male,1982-06-30,1.72,74.0,badminton,0,0,0 -691508623,Shohei Iwamoto,JPN,male,1989-08-23,1.78,68.0,modern pentathlon,0,0,0 -784767531,Shohei Ono,JPN,male,1992-02-03,1.7,73.0,judo,1,0,0 -474547184,Shohei Toyoshima,JPN,male,1989-01-09,1.75,87.0,rugby sevens,0,0,0 -976460404,Shona McCALLIN,GBR,female,1992-05-18,1.65,69.0,hockey,1,0,0 -920840087,Shona Thorburn,CAN,female,1982-08-07,1.75,70.0,basketball,0,0,0 -119951308,Shota Hazui,JPN,male,1986-09-30,1.77,77.0,aquatics,0,0,0 -592468462,Shota Iizuka,JPN,male,1991-06-25,1.85,80.0,athletics,0,1,0 -765026590,Shota Sasaki,JPN,male,1993-01-10,1.65,64.0,canoe,0,0,0 -752540261,Shoya Nakajima,JPN,male,1994-08-23,1.64,64.0,football,0,0,0 -778116508,Shu-Ching Hsu,TPE,female,1991-05-09,1.6,53.0,weightlifting,1,0,0 -129298920,Shuai Peng,CHN,female,1986-01-08,1.73,65.0,tennis,0,0,0 -179157979,Shuai Zhang,CHN,female,1989-01-21,1.77,66.0,tennis,0,0,0 -990347414,Shuai Zhao,CHN,male,1995-08-15,1.88,63.0,taekwondo,1,0,0 -72738698,Shuang Wang,CHN,female,1995-01-23,1.65,59.0,football,0,0,0 -843868379,Shudi Deng,CHN,male,1991-09-10,1.63,58.0,gymnastics,0,0,1 -293576739,Shuijiao Wu,CHN,female,1991-06-19,1.61,53.0,athletics,0,0,0 -972669681,Shun Wang,CHN,male,1994-02-11,1.91,81.0,aquatics,0,0,1 -285629214,Shun Xie Teo,SIN,female,1988-09-30,1.68,63.0,shooting,0,0,0 -833912254,Shuo Cao,CHN,male,1991-10-08,1.8,77.0,athletics,0,0,0 -389167708,Shuyin Zheng,CHN,female,1994-05-01,1.88,75.0,taekwondo,1,0,0 -126862439,Si Mohamed Ketbi,BEL,male,1997-12-27,1.8,62.0,taekwondo,0,0,0 -676275478,Siarhei Kalamoyets,BLR,male,1989-08-11,1.92,110.0,athletics,0,0,0 -512714002,Sibusiso Matsenjwa,SWZ,male,1988-05-02,1.8,82.0,athletics,0,0,0 -433307287,Sibusiso Nzima,RSA,male,1986-11-23,1.64,57.0,athletics,0,0,0 -873507500,Sid Ali Boudina,ALG,male,1990-05-07,1.78,73.0,rowing,0,0,0 -171735366,Siddikur Rahman,BAN,male,1984-11-20,1.65,69.0,golf,0,0,0 -696400766,Sideris Tasiadis,GER,male,1990-05-07,1.79,79.0,canoe,0,0,0 -997380920,Sidni Hoxha,ALB,male,1992-06-01,1.93,87.0,aquatics,0,0,0 -649779074,Sifan Hassan,NED,female,1993-01-01,1.7,49.0,athletics,0,0,0 -219470376,Signe Marie Fidge Store,NOR,female,1995-08-23,,,wrestling,0,0,0 -794983348,Siham Hilali,MAR,female,1986-05-02,1.6,48.0,athletics,0,0,0 -299706553,Sijing Huang,CHN,female,1996-01-08,1.9,82.0,basketball,0,0,0 -726164746,Siling Yi,CHN,female,1989-05-06,1.65,51.0,shooting,0,0,1 -486158932,Silvan Dillier,SUI,male,1990-08-03,1.83,73.0,cycling,0,0,0 -74936467,Silvano Chesani,ITA,male,1988-07-17,1.91,83.0,athletics,0,0,0 -348354377,Silvia Dominguez,ESP,female,1987-01-31,1.67,64.0,basketball,0,1,0 -84714321,Silvia Navarro,ESP,female,1979-03-20,1.69,62.0,handball,0,0,0 -523095646,Silvia Paredes,ECU,female,1983-01-23,1.64,57.0,athletics,0,0,0 -85492860,Silvia Sicouri,ITA,female,1987-09-27,1.72,65.0,sailing,0,0,0 -688147154,Silvia Valsecchi,ITA,female,1982-07-19,1.6,60.0,cycling,0,0,0 -978974427,Silvia Zennaro,ITA,female,1989-10-26,1.68,72.0,sailing,0,0,0 -593049053,Silvia di Pietro,ITA,female,1993-04-06,1.68,58.0,aquatics,0,0,0 -856209845,Silvija Popovic,SRB,female,1986-03-15,1.78,65.0,volleyball,0,0,0 -875603204,Silvio Fernandez,VEN,male,1979-01-09,1.9,80.0,fencing,0,0,0 -593561790,Silvio Heinevetter,GER,male,1984-10-21,1.94,99.0,handball,0,0,1 -506472821,Sime Fantela,CRO,male,1986-01-19,1.83,67.0,sailing,1,0,0 -578898700,Simeon Chamov,BUL,male,1990-12-24,1.8,,boxing,0,0,0 -160713644,Simione Tamanisau,FIJ,male,1982-06-05,1.87,88.0,football,0,0,0 -242744402,Simon Andreassen,DEN,male,1997-09-30,1.77,68.0,cycling,0,0,0 -511053729,Simon Child,NZL,male,1988-04-16,1.86,80.0,hockey,0,0,0 -910071832,Simon Clarke,AUS,male,1986-07-18,,,cycling,0,0,0 -948358366,Simon Gauzy,FRA,male,1994-10-25,1.82,77.0,table tennis,0,0,0 -585225700,Simon Geschke,GER,male,1986-03-13,1.7,64.0,cycling,0,0,0 -828900284,Simon Gougnard,BEL,male,1991-01-17,1.87,84.0,hockey,0,1,0 -32628932,Simon Mantell,GBR,male,1984-04-24,1.84,81.0,hockey,0,0,0 -618197194,Simon Martirosyan,ARM,male,1997-02-17,1.81,105.0,weightlifting,0,1,0 -894353536,Simon Niepmann,SUI,male,1985-08-02,1.8,71.0,rowing,1,0,0 -572516555,Simon Orchard,AUS,male,1986-07-09,1.86,82.0,hockey,0,0,0 -129979130,Simon Razgor,SLO,male,1985-09-18,1.83,82.0,handball,0,0,0 -37763336,Simon Schuerch,SUI,male,1990-12-02,1.86,75.0,rowing,1,0,0 -671775159,Simon Sjodin,SWE,male,1986-10-04,1.92,85.0,aquatics,0,0,0 -568958895,Simon Spilak,SLO,male,1986-06-23,1.77,68.0,cycling,0,0,0 -673967464,Simon Tibbling,SWE,male,1994-09-07,1.74,68.0,football,0,0,0 -674891863,Simon Wachira,KEN,male,1984-05-06,1.7,65.0,athletics,0,0,0 -137917095,Simon Werro,SUI,male,1989-12-09,1.78,74.0,canoe,0,0,0 -848550090,Simon Yacoub,PLE,male,1989-06-09,1.66,60.0,judo,0,0,0 -727296883,Simona Baumrtova,CZE,female,1991-08-24,1.76,66.0,aquatics,0,0,0 -422875239,Simona Castro,CHI,female,1989-01-11,1.6,54.0,gymnastics,0,0,0 -901255564,Simona Frapporti,ITA,female,1988-07-14,1.77,65.0,cycling,0,0,0 -617360976,Simona Gherman,ROU,female,1985-04-12,1.7,58.0,fencing,1,0,0 -626251390,Simona Krupeckaite,LTU,female,1982-12-13,1.7,70.0,cycling,0,0,0 -871511987,Simona Pop,ROU,female,1988-12-25,1.78,62.0,fencing,1,0,0 -481317414,Simonas Bilis,LTU,male,1993-11-11,1.98,100.0,aquatics,0,0,0 -770111957,Simone Biles,USA,female,1997-03-14,1.45,47.0,gymnastics,4,0,1 -718132328,Simone Buti,ITA,male,1983-09-19,2.06,100.0,volleyball,0,1,0 -303317190,Simone Christensen,DEN,female,1994-02-10,1.7,68.0,cycling,0,0,0 -218481152,Simone Consonni,ITA,male,1994-09-12,1.65,60.0,cycling,0,0,0 -322780969,Simone Facey,JAM,female,1985-05-07,1.62,53.0,athletics,0,1,0 -253019440,Simone Giannelli,ITA,male,1996-08-09,1.98,92.0,volleyball,0,1,0 -286644337,Simone Laudehr,GER,female,1986-07-12,1.74,56.0,football,0,0,0 -973414226,Simone Manuel,USA,female,1996-08-02,1.78,72.0,aquatics,2,2,0 -195420370,Simone Ruffini,ITA,male,1989-12-07,1.73,67.0,aquatics,0,0,0 -392271182,Simone Sabbioni,ITA,male,1996-10-03,1.85,79.0,aquatics,0,0,0 -828729175,Simone Venier,ITA,male,1984-08-26,1.96,94.0,rowing,0,0,0 -166532911,Simoya Campbell,JAM,female,1994-03-01,1.68,58.0,athletics,0,0,0 -203750302,Simplice Fotsala,CMR,male,1989-05-09,1.54,,boxing,0,0,0 -520685692,Simplice Ribouem,AUS,male,1982-12-05,1.73,93.0,weightlifting,0,0,0 -199944745,Sin Lam Sonia Lo,HKG,female,1992-12-18,1.66,59.0,sailing,0,0,0 -131138737,Sina Tkaltschewitsch,GER,female,1999-05-05,1.6,44.0,gymnastics,0,0,0 -703661440,Sinead Lynch,IRL,female,1976-09-30,1.72,57.0,rowing,0,0,0 -303411588,Sinphet Kruaithong,THA,male,1995-08-22,1.59,55.0,weightlifting,0,0,1 -434262676,Sinta Ozolina,LAT,female,1988-02-26,1.86,77.0,athletics,0,0,0 -313529097,Siobhan Haughey,HKG,female,1997-10-31,1.77,64.0,aquatics,0,0,0 -306151586,Siobhan-Marie O'Connor,GBR,female,1995-11-29,1.73,64.0,aquatics,0,1,0 -543220260,Sione Molia,NZL,male,1993-09-05,1.86,95.0,rugby sevens,0,0,0 -498918427,Siraba Dembele,FRA,female,1986-06-28,1.72,64.0,handball,0,1,0 -112175885,Siri Arun Budcharern,LAO,female,2002-01-12,1.66,63.0,aquatics,0,0,0 -541913883,Siripon Kaewduang-Ngam,THA,female,1994-07-27,1.67,50.0,sailing,0,0,0 -928639539,Siripuch Gulnoi,THA,female,1993-07-17,1.57,63.0,weightlifting,0,0,0 -274861509,Sirish Gurung,NEP,male,1998-08-11,1.58,65.0,aquatics,0,0,0 -100364594,Sisila Seavula,FIJ,female,1995-11-15,,,athletics,0,0,0 -983890439,Sitora Hamidova,UZB,female,1989-05-12,1.64,50.0,athletics,0,0,0 -374168059,Siueni Filimone,TGA,male,1994-08-19,1.73,69.0,athletics,0,0,0 -740126529,Siyao Shu,CHN,female,1992-09-12,1.67,52.0,gymnastics,0,0,0 -325216838,Sjef van den Berg,NED,male,1995-04-14,1.83,75.0,archery,0,0,0 -230251479,Sladana Perunovic,MNE,female,1984-03-26,1.7,58.0,athletics,0,0,0 -399380442,Slawomir Szmal,POL,male,1978-10-02,1.86,96.0,handball,0,0,0 -564349535,Sloane Stephens,USA,female,1993-03-20,1.73,64.0,tennis,0,0,0 -682518926,Slobodan Nikic,SRB,male,1983-01-25,1.97,106.0,aquatics,1,0,0 -466638845,Slobodan Soro,BRA,male,1978-12-23,1.96,100.0,aquatics,0,0,0 -655259381,Snjezana Pejcic,CRO,female,1982-07-13,1.7,75.0,shooting,0,0,0 -826022649,So Hee Lee,KOR,female,1994-06-14,1.71,67.0,badminton,0,0,0 -33975954,Sobhi Saied,TUN,male,1982-09-26,1.86,86.0,handball,0,0,0 -522422287,Sofia Andreeva,RUS,female,1998-08-02,1.78,64.0,aquatics,0,0,0 -615348545,Sofia Asoumanaki,GRE,female,1997-05-25,1.9,85.0,rowing,0,0,0 -863853337,Sofia Assefa,ETH,female,1987-11-14,1.67,52.0,athletics,0,0,0 -173744013,Sofia Bekatorou,GRE,female,1977-12-26,1.72,62.0,sailing,0,0,0 -236027852,Sofia Ennaoui,POL,female,1995-08-30,1.58,42.0,athletics,0,0,0 -149127920,Sofia Jakobsson,SWE,female,1990-04-23,1.74,64.0,football,0,1,0 -989432081,Sofia Lodi,ITA,female,1998-01-29,1.75,57.0,gymnastics,0,0,0 -669523830,Sofia Magdalena Mattsson,SWE,female,1989-11-11,1.64,56.0,wrestling,0,0,1 -419623115,Sofia Middleton,CHI,female,1993-03-12,1.68,60.0,sailing,0,0,0 -655552398,Sofia Paldanius,SWE,female,1979-03-16,1.85,75.0,canoe,0,0,0 -910335212,Sofia Polcanova,AUT,female,1994-09-03,1.81,69.0,table tennis,0,0,0 -955206552,Sofia Riga,GRE,female,1988-07-18,1.54,46.0,athletics,0,0,0 -322339558,Sofia Rito,URU,female,1985-11-02,1.55,52.0,weightlifting,0,0,0 -638320031,Sofia Sanchez,ARG,female,1989-08-23,1.67,57.0,aquatics,0,0,0 -459418489,Sofia Yfantidou,GRE,female,1985-01-10,1.62,54.0,athletics,0,0,0 -561413034,Sofian Bouvet,FRA,male,1989-06-02,1.73,63.0,sailing,0,0,0 -245506454,Sofiane Bendebka,ALG,male,1992-08-09,1.7,65.0,football,0,0,0 -496243437,Sofiane Guitone,FRA,male,1989-03-27,1.86,,rugby sevens,0,0,0 -147169766,Sofiane Oumiha,FRA,male,1994-12-23,1.74,,boxing,0,1,0 -342412966,Sofie Skoog,SWE,female,1990-06-07,1.81,65.0,athletics,0,0,0 -832285116,Sofya Velikaya,RUS,female,1985-06-08,1.75,70.0,fencing,1,1,0 -476545490,Sohrab Moradi,IRI,male,1988-09-22,1.7,94.0,weightlifting,1,0,0 -781502405,Sohsuke Takatani,JPN,male,1989-04-05,1.78,81.0,wrestling,0,0,0 -555728322,Sohui Kim,KOR,female,1994-01-29,1.64,50.0,taekwondo,1,0,0 -34827497,Sojeong Yu,KOR,female,1996-06-04,1.68,66.0,handball,0,0,0 -137006196,Sol Mi Kim,PRK,female,1990-11-20,1.55,48.0,judo,0,0,0 -833656877,Solangie Delgado,COL,female,1989-11-09,1.55,57.0,rugby sevens,0,0,0 -381575371,Solomon Bockarie,NED,male,1987-05-18,1.71,72.0,athletics,0,0,0 -504624644,Solonei da Silva,BRA,male,1982-04-18,1.72,65.0,athletics,0,0,0 -213271655,Sona Bernardova,CZE,female,1976-02-02,1.67,54.0,aquatics,0,0,0 -51596305,Sona Poghosyan,ARM,female,1998-06-29,1.58,73.0,weightlifting,0,0,0 -359534607,Sonchat Ratiwatana,THA,male,1982-01-23,1.75,71.0,tennis,0,0,0 -956809483,Sondre Nordstad Moen,NOR,male,1991-01-12,,,athletics,0,0,0 -592878786,Soner Demirtas,TUR,male,1991-06-25,1.7,74.0,wrestling,0,0,1 -939825627,Song Gao,CHN,female,1992-04-16,1.9,85.0,basketball,0,0,0 -614626867,Song Guk Kim,PRK,male,1985-10-05,1.67,75.0,shooting,0,0,1 -822430141,Song I Kim,PRK,female,1994-08-10,1.61,55.0,table tennis,0,0,1 -51012324,Song Yu,CHN,female,1986-08-06,1.82,128.0,judo,0,0,1 -388561246,Sonia Aktar,BAN,female,1997-07-15,,,aquatics,0,0,0 -504175005,Sonia Asselah,ALG,female,1991-08-20,1.76,78.0,judo,0,0,0 -161282037,Sonia Franquet,ESP,female,1980-07-03,1.73,60.0,shooting,0,0,0 -171624562,Sonia Malavisi,ITA,female,1994-10-31,1.72,66.0,athletics,0,0,0 -856090842,Sonia Samuels,GBR,female,1979-05-16,1.62,47.0,athletics,0,0,0 -195523024,Sonja Barjaktarovic,MNE,female,1986-09-11,1.8,74.0,handball,0,0,0 -765900580,Sonja Petrovic,SRB,female,1989-02-18,1.89,75.0,basketball,0,0,1 -835642046,Sonke Rothenberger,GER,male,1994-10-14,1.93,73.0,equestrian,1,0,0 -777662103,Sonny Bill Williams,NZL,male,1985-08-03,1.94,106.0,rugby sevens,0,0,0 -698806625,Sonny Webster,GBR,male,1994-03-10,1.78,94.0,weightlifting,0,0,0 -414404484,Sooji Jang,KOR,female,1987-11-21,1.64,57.0,hockey,0,0,0 -20275055,Sophie Ainsworth,GBR,female,1989-06-22,1.73,68.0,sailing,0,0,0 -346597272,Sophie Bray,GBR,female,1990-05-12,1.64,58.0,hockey,1,0,0 -661172330,Sophie Cocks,NZL,female,1994-07-25,1.72,62.0,hockey,0,0,0 -972385553,Sophie Giger,SUI,female,1995-12-21,1.68,54.0,aquatics,0,0,0 -857464664,Sophie Hansson,SWE,female,1998-08-02,1.86,73.0,aquatics,0,0,0 -426389518,Sophie Hitchon,GBR,female,1991-07-11,1.7,75.0,athletics,0,0,1 -123926137,Sophie Mackenzie,NZL,female,1992-03-31,1.72,57.0,rowing,0,0,0 -563907426,Sophie Scheder,GER,female,1997-01-07,1.67,56.0,gymnastics,0,0,1 -901973768,Sophie Schmidt,CAN,female,1988-06-28,1.72,68.0,football,0,0,1 -696322599,Sophie Souwer,NED,female,1987-06-29,1.85,77.0,rowing,0,0,0 -379316110,Sophie van Gestel,NED,female,1991-06-29,1.78,69.0,volleyball,0,0,0 -562244040,Sopita Tanasan,THA,female,1994-12-23,1.54,48.0,weightlifting,1,0,0 -433864898,Sopuruchi Dimgba,NGR,male,1993-03-29,1.68,68.0,football,0,0,0 -802550899,Soren Dahl,DEN,male,1993-07-15,1.93,86.0,aquatics,0,0,0 -602705126,Soren Kjeldsen,DEN,male,1975-05-17,1.7,72.0,golf,0,0,0 -510174906,Soren Opti,SUR,male,1997-05-16,,,badminton,0,0,0 -46541795,Soslan Daurov,BLR,male,1991-01-15,1.64,60.0,wrestling,0,0,0 -65014090,Soslan Ramonov,RUS,male,1991-01-01,1.7,65.0,wrestling,1,0,0 -303196371,Soso Tamarau,NGR,male,1984-05-16,1.67,97.0,wrestling,0,0,0 -724287824,Sosthene Moguenara,GER,female,1989-10-17,1.8,65.0,athletics,0,0,0 -992931470,Sotheara Chov,CAM,female,1983-10-10,1.55,48.0,wrestling,0,0,0 -370269631,Sotiria Neofytou,CYP,female,1998-04-23,1.65,50.0,aquatics,0,0,0 -388952499,Souad Ait Salem,ALG,female,1979-01-06,1.58,50.0,athletics,0,0,0 -767205811,Soufiane Elbakkali,MAR,male,1996-01-07,1.88,70.0,athletics,0,0,0 -64329847,Soufiane Haddi,MAR,male,1991-02-02,1.69,64.0,cycling,0,0,0 -856037002,Soufiyan Bouqantar,MAR,male,1993-08-30,1.73,54.0,athletics,0,0,0 -306264862,Soukphaxay Sithisane,LAO,male,1996-05-01,,,judo,0,0,0 -276345240,Soule Soilihi Athoumane,COM,male,1991-03-30,1.8,75.0,aquatics,0,0,0 -298080547,Souleymane Diop Cissokho,FRA,male,1991-07-04,1.79,,boxing,0,0,1 -764767080,Soumyajit Ghosh,IND,male,1993-05-10,1.68,69.0,table tennis,0,0,0 -830239226,Sovijja Pou,CAM,male,1995-07-18,1.69,62.0,aquatics,0,0,0 -269749454,Soyib Kurbonov,UZB,male,1988-02-03,1.86,100.0,judo,0,0,0 -11491281,Sparkle McKnight,TTO,female,1991-12-21,1.58,55.0,athletics,0,0,0 -132368991,Spela Perse,SLO,female,1996-08-04,1.58,50.0,aquatics,0,0,0 -55713015,Spela Ponomarenko Janic,SLO,female,1981-10-02,1.69,65.0,canoe,0,0,0 -755409303,Spencer Turrin,AUS,male,1991-08-29,1.9,92.0,rowing,0,0,0 -212024844,Spencer Wilton,GBR,male,1973-02-01,1.83,83.0,equestrian,0,1,0 -275435304,Spiros Gianniotis,GRE,male,1980-02-19,1.85,78.0,aquatics,0,1,0 -875845339,Spyridon Christos Giannaros,GRE,male,1992-05-12,1.83,72.0,rowing,0,0,0 -191166211,Srabani Nanda,IND,female,1991-05-07,1.64,54.0,athletics,0,0,0 -980722321,Srdjan Mrvaljevic,MNE,male,1984-05-16,1.86,85.0,judo,0,0,0 -999965015,Sreejesh Parattu,IND,male,1988-05-08,1.83,79.0,hockey,0,0,0 -213384743,Sri Wahyuni Agustiani,INA,female,1994-08-13,1.47,47.0,weightlifting,0,1,0 -311879753,Srikanth Kidambi,IND,male,1993-02-07,1.78,66.0,badminton,0,0,0 -79428759,Stacey Michelsen,NZL,female,1991-02-18,1.73,66.0,hockey,0,0,0 -64239196,Stacy Lewis,USA,female,1985-02-16,1.66,60.0,golf,0,0,0 -883031102,Stacy Otieno,KEN,female,1990-09-27,1.67,71.0,rugby sevens,0,0,0 -670857265,Stan Okoye,NGR,male,1991-04-10,1.98,,basketball,0,0,0 -217337729,Stanimira Petrova,BUL,female,1990-12-16,1.7,,boxing,0,0,0 -489359727,Stanislau Shcharbachenia,BLR,male,1985-03-05,2.01,104.0,rowing,0,0,0 -574714431,Stanley Amuzie,NGR,male,1996-02-28,1.71,,football,0,0,1 -948549107,Stanley Joseph,FRA,male,1991-10-24,1.81,66.0,athletics,0,0,0 -839709213,Stanley Kipleting Biwott,KEN,male,1986-04-21,1.52,61.0,athletics,0,0,0 -66299670,Stanly del Carmen,DOM,male,1995-09-20,1.63,62.0,athletics,0,0,0 -194610511,Stavroula Samara,GRE,female,1994-07-08,1.74,56.0,gymnastics,0,0,0 -760762237,Steele Johnson,USA,male,1996-06-16,1.88,79.0,aquatics,0,1,0 -588743622,Steeve Barry,FRA,male,1991-04-18,1.81,85.0,rugby sevens,0,0,0 -577610153,Stefan Bellore Sangala,CGO,female,1995-01-02,1.65,58.0,aquatics,0,0,0 -319413003,Stefan Bircevic,SRB,male,1989-12-13,2.1,104.0,basketball,0,1,0 -565822504,Stefan Brits,RSA,male,1992-01-19,1.83,72.0,athletics,0,0,0 -674224579,Stefan Denifl,AUT,male,1987-09-20,1.79,65.0,cycling,0,0,0 -308539287,Stefan Fegerl,AUT,male,1988-09-12,1.86,69.0,table tennis,0,0,0 -131551003,Stefan Hristov,BUL,male,1985-07-12,1.75,59.0,cycling,0,0,0 -971449557,Stefan Jovic,SRB,male,1990-11-03,1.96,94.0,basketball,0,1,0 -118661082,Stefan Kiraj,GER,male,1989-05-11,1.89,92.0,canoe,0,0,0 -921350998,Stefan Markovic,SRB,male,1988-04-25,1.99,96.0,basketball,0,1,0 -11369816,Stefan Mitrovic,SRB,male,1988-03-29,1.95,91.0,aquatics,1,0,0 -21362991,Stefan Nilsson,SWE,male,1990-08-12,1.86,89.0,shooting,0,0,0 -782498343,Stefana Veljkovic,SRB,female,1990-01-09,1.9,76.0,volleyball,0,1,0 -369495539,Stefani Stoeva,BUL,female,1995-09-23,1.74,64.0,badminton,0,0,0 -436598092,Stefania Pirozzi,ITA,female,1993-12-16,1.7,59.0,aquatics,0,0,0 -254807434,Stefanie Fee,USA,female,1990-03-11,1.68,63.0,hockey,0,0,0 -188282515,Stefanie Horn,ITA,female,1991-01-09,1.68,59.0,canoe,0,0,0 -392368733,Stefaniya Elfutina,RUS,female,1997-01-27,1.7,59.0,sailing,0,0,1 -857655408,Stefano Brecciaroli,ITA,male,1974-11-19,1.77,71.0,equestrian,0,0,0 -380056302,Stefano Giantorno,BRA,male,1991-09-27,1.7,73.0,rugby sevens,0,0,0 -137494922,Stefano Oppo,ITA,male,1994-09-12,1.87,70.0,rowing,0,0,0 -395614282,Stefano Peschiera,PER,male,1995-01-16,1.82,84.0,sailing,0,0,0 -145404810,Stefano Raffaele Marcia,RSA,male,1993-11-23,1.78,80.0,sailing,0,0,0 -25301799,Stefano Selva,SMR,male,1969-08-24,1.7,65.0,shooting,0,0,0 -965767592,Stefano Tempesti,ITA,male,1979-06-09,2.05,100.0,aquatics,0,0,1 -891446436,Stefano la Rosa,ITA,male,1985-09-28,1.7,54.0,athletics,0,0,0 -561352985,Stefanos Dimitriadis,GRE,male,1989-09-08,1.89,82.0,aquatics,0,0,0 -616655285,Stefanos Galanopoulos,GRE,male,1993-02-22,1.97,89.0,aquatics,0,0,0 -517441017,Stefanos Ntouskos,GRE,male,1997-03-29,1.86,73.0,rowing,0,0,0 -161034352,Stefany Castano,COL,female,1994-01-11,1.72,60.0,football,0,0,0 -457750300,Stefany Coronado,BOL,female,1996-09-16,1.73,54.0,athletics,0,0,0 -223169136,Stefany Hernandez,VEN,female,1991-06-15,1.65,65.0,cycling,0,0,1 -371287084,Steffen Deibler,GER,male,1987-07-10,1.86,81.0,aquatics,0,0,0 -675798889,Steffen Fath,GER,male,1990-04-04,1.99,97.0,handball,0,0,1 -520458964,Steffen Peters,USA,male,1964-09-18,1.73,68.0,equestrian,0,0,1 -318627222,Steffen Weinhold,GER,male,1986-07-19,1.91,94.0,handball,0,0,1 -733771935,Steffi Kriegerstein,GER,female,1992-11-03,1.78,70.0,canoe,0,1,0 -533594402,Stella Akakpo,FRA,female,1994-02-28,1.66,60.0,athletics,0,0,0 -305158735,Stella Chesang,UGA,female,1996-12-01,,,athletics,0,0,0 -995446610,Stepan Maryanyan,RUS,male,1991-09-21,1.65,59.0,wrestling,0,0,0 -957346968,Steph Catley,AUS,female,1994-01-26,1.71,60.0,football,0,0,0 -508727443,Stephan Feck,GER,male,1990-02-17,1.83,79.0,aquatics,0,0,0 -792396133,Stephan Krueger,GER,male,1988-11-29,1.87,86.0,rowing,0,0,0 -891602037,Stephan de Freitas Barcha,BRA,male,1989-10-27,,,equestrian,0,0,0 -352127171,Stephane Smith,BRA,male,1989-05-15,1.73,70.0,hockey,0,0,0 -305108118,Stephanie Au,HKG,female,1992-05-30,1.72,56.0,aquatics,0,0,0 -984866759,Stephanie Brieussel,FRA,female,1974-01-29,1.69,55.0,equestrian,0,0,0 -799391274,Stephanie Enright,PUR,female,1990-12-15,1.79,56.0,volleyball,0,0,0 -195104856,Stephanie Fotso Mogoung,CMR,female,1987-09-25,1.84,78.0,volleyball,0,0,0 -944264216,Stephanie Horner,CAN,female,1989-03-19,1.8,69.0,aquatics,0,0,0 -238315993,Stephanie Labbe,CAN,female,1986-10-10,1.78,63.0,football,0,0,1 -409287519,Stephanie Lovell,LCA,female,1995-09-08,1.6,62.0,sailing,0,0,0 -368669797,Stephanie Malherbe,RSA,female,1996-04-05,1.62,59.0,football,0,0,0 -129467500,Stephanie Meadow,IRL,female,1992-01-20,1.63,64.0,golf,0,0,0 -154640306,Stephanie Morton,AUS,female,1990-11-28,1.77,77.0,cycling,0,0,0 -932494249,Stephanie Pohl,GER,female,1987-10-21,1.6,51.0,cycling,0,0,0 -419421919,Stephanie Talbot,AUS,female,1994-06-15,1.86,87.0,basketball,0,0,0 -430731378,Stephanie Tirode,FRA,female,1975-05-01,1.65,78.0,shooting,0,0,0 -157050778,Stephanie Twell,GBR,female,1989-08-17,1.68,57.0,athletics,0,0,0 -422679366,Stephanie Vogt,LIE,female,1990-02-15,1.67,65.0,tennis,0,0,0 -459968412,Stephen Bird,AUS,male,1988-05-11,1.89,86.0,canoe,0,0,0 -254081121,Stephen Cummings,GBR,male,1981-03-19,1.9,75.0,cycling,0,0,0 -946544198,Stephen Jenness,NZL,male,1990-06-07,1.79,76.0,hockey,0,0,0 -203402435,Stephen Jones,NZL,male,1993-04-29,1.92,95.0,rowing,0,0,0 -156864780,Stephen Kasprzyk,USA,male,1982-02-14,2.01,103.0,rowing,0,0,0 -82771185,Stephen Kiprotich,UGA,male,1989-02-27,,,athletics,0,0,0 -641360615,Stephen Lambdin,USA,male,1988-03-09,1.88,108.0,taekwondo,0,0,0 -653237544,Stephen Milne,GBR,male,1994-04-29,1.86,76.0,aquatics,0,1,0 -144812081,Stephen Mokoka,RSA,male,1985-01-31,1.57,52.0,athletics,0,0,0 -730191367,Stephen Mozia,NGR,male,1993-08-16,1.91,124.0,athletics,0,0,0 -769819070,Stephen Newbold,BAH,male,1994-08-05,,,athletics,0,0,1 -791262365,Stephen Parez,FRA,male,1994-08-01,1.74,75.0,rugby sevens,0,0,0 -940693256,Stephenie Ann McPherson,JAM,female,1988-11-25,1.73,57.0,athletics,0,1,0 -445715201,Stevan Pletikosic,SRB,male,1972-03-14,1.84,81.0,shooting,0,0,0 -109758786,Steve Guerdat,SUI,male,1982-06-10,1.82,70.0,equestrian,0,0,0 -600255721,Steve Johnson,USA,male,1989-12-24,1.88,86.0,tennis,0,0,1 -226464933,Steve Morabito,SUI,male,1983-01-30,1.87,73.0,cycling,0,0,0 -226636545,Steven Burke,GBR,male,1988-03-04,1.83,78.0,cycling,1,0,0 -590851106,Steven Gardiner,BAH,male,1995-09-12,1.88,,athletics,0,0,1 -917340321,Steven Gerard Donnelly,IRL,male,1988-09-07,1.8,,boxing,0,0,0 -51098946,Steven Kruijswijk,NED,male,1987-06-07,1.77,64.0,cycling,0,0,0 -92940638,Steven Lopez,USA,male,1978-11-09,1.91,83.0,taekwondo,0,0,0 -59291100,Steven Marshall,CAN,male,1989-11-23,1.93,87.0,volleyball,0,0,0 -640785339,Steven Scott,GBR,male,1985-01-10,1.72,84.0,shooting,0,0,1 -308437509,Stewart Innes,GBR,male,1991-05-20,1.97,97.0,rowing,0,0,0 -634725148,Stian Skjerahaug,NOR,male,1992-03-08,1.71,66.0,gymnastics,0,0,0 -581997901,Stig-Andre Berge,NOR,male,1983-07-20,,,wrestling,0,0,1 -915123648,Stina Blackstenius,SWE,female,1996-02-05,1.73,72.0,football,0,1,0 -65486253,Stina Gardell,SWE,female,1990-03-28,1.72,70.0,aquatics,0,0,0 -854904743,Stina Troest,DEN,female,1994-01-17,1.7,59.0,athletics,0,0,0 -945304583,Stine Bredal Oftedal,NOR,female,1991-09-25,1.68,,handball,0,0,1 -602912762,Stine Nielsen,DEN,female,1991-02-09,1.63,79.0,shooting,0,0,0 -527651130,Stipe Zunic,CRO,male,1990-12-13,1.93,134.0,athletics,0,0,0 -499631914,Stsiapan Rahautsou,BLR,male,1986-05-29,1.74,58.0,athletics,0,0,0 -153456321,Stuart Dutamby,FRA,male,1994-04-24,1.76,74.0,athletics,0,0,0 -103790201,Stuart Farquhar,NZL,male,1982-03-15,1.87,98.0,athletics,0,0,0 -705154995,Stuart McNay,USA,male,1981-08-01,1.71,65.0,sailing,0,0,0 -85718684,Stuart Tinney,AUS,male,1964-12-07,1.8,71.0,equestrian,0,0,1 -571111419,Su Ji Kim,KOR,female,1987-07-11,1.87,68.0,volleyball,0,0,0 -54125373,Su Oh,AUS,female,1996-05-23,1.68,,golf,0,0,0 -464562333,Suad Natiq,IRQ,male,1994-03-19,1.85,78.0,football,0,0,0 -377406840,Subenrat Insaeng,THA,female,1994-02-10,1.82,115.0,athletics,0,0,0 -863916736,Sudha Singh,IND,female,1986-06-25,1.58,45.0,athletics,0,0,0 -676826208,Sudirman Hadi,INA,male,1996-03-09,1.71,76.0,athletics,0,0,0 -549566772,Sue Bird,USA,female,1980-10-16,1.75,66.0,basketball,1,0,0 -523057836,Suehiro Ishikawa,JPN,male,1979-09-27,1.69,56.0,athletics,0,0,0 -321796870,Sugoi Uriarte,ESP,male,1984-05-14,1.72,66.0,judo,0,0,0 -566595674,Suguru Osako,JPN,male,1991-05-23,1.7,52.0,athletics,0,0,0 -215796471,Suhrob Khodjaev,UZB,male,1993-05-21,1.85,120.0,athletics,0,0,0 -574040538,Sukanya Srisurat,THA,female,1995-05-03,1.55,57.0,weightlifting,1,0,0 -963404474,Sukhi Panesar,CAN,male,1993-12-26,1.8,75.0,hockey,0,0,0 -50906905,Sulaiman Hamad,KSA,male,1994-05-19,1.77,66.0,judo,0,0,0 -724836390,Suleyman Atli,TUR,male,1994-07-27,1.68,57.0,wrestling,0,0,0 -918686488,Sultan Duzelbayev,KAZ,male,1994-03-12,1.76,46.0,archery,0,0,0 -715405655,Sultan Haydar,TUR,female,1987-05-23,1.7,55.0,athletics,0,0,0 -548130768,Sultan Mubarak Al-Dawoodi,KSA,male,1977-06-16,1.92,86.0,athletics,0,0,0 -27825256,Sumeeth Reddy B.,IND,male,1991-09-26,1.82,64.0,badminton,0,0,0 -214849260,Sumin Choi,KOR,female,1990-01-09,1.77,64.0,handball,0,0,0 -43374597,Sumiya Dorjsuren,MGL,female,1991-03-11,1.6,59.0,judo,0,1,0 -311378781,Sumiya Erdenechimeg,MGL,female,1990-02-28,1.59,53.0,wrestling,0,0,0 -67222900,Sunayna Wahi,SUR,female,1990-08-14,,,athletics,0,0,0 -224948383,Sunette Viljoen,RSA,female,1983-10-06,1.7,72.0,athletics,0,1,0 -960642258,Sung Hyun Ko,KOR,male,1987-05-21,1.82,85.0,badminton,0,0,0 -733228088,Sungmin Kim,KOR,male,1987-06-29,1.9,130.0,judo,0,0,0 -773103124,Sungyun Gu,KOR,male,1994-06-27,1.95,82.0,football,0,0,0 -179464050,Sunhee Woo,KOR,female,1978-07-01,1.71,58.0,handball,0,0,0 -38293952,Sunil Sowmarpet,IND,male,1989-05-06,1.76,68.0,hockey,0,0,0 -286970753,Sunita Lakra,IND,female,1991-06-11,1.58,57.0,hockey,0,0,0 -187534242,Sunwoo Kim,KOR,female,1996-10-07,1.65,57.0,modern pentathlon,0,0,0 -278485243,Suping Meng,CHN,female,1989-07-17,1.73,120.0,weightlifting,1,0,0 -912469374,Suraju Saka,CGO,male,1976-05-05,1.7,68.0,table tennis,0,0,0 -118866777,Surender Kumar,IND,male,1993-11-23,1.79,77.0,hockey,0,0,0 -819423699,Susan Kuijken,NED,female,1986-07-08,1.72,54.0,athletics,0,0,0 -718822536,Susana Costa,POR,female,1984-09-22,1.77,64.0,athletics,0,0,0 -261214819,Susann Bjornsen,NOR,female,1993-05-28,1.91,72.0,aquatics,0,0,0 -280722315,Susanna Kallur,SWE,female,1981-02-16,1.7,62.0,athletics,0,0,0 -361971820,Susannah Townsend,GBR,female,1989-07-28,1.68,61.0,hockey,1,0,0 -199049873,Susanne Grainger,CAN,female,1990-12-30,1.88,86.0,rowing,0,0,0 -8359251,Sushila Pukhrambam,IND,female,1992-02-25,1.52,52.0,hockey,0,0,0 -72532043,Suthasini Sawettabut,THA,female,1994-12-09,1.68,63.0,table tennis,0,0,0 -292142118,Sutiya Jiewchaloemmit,THA,female,1986-05-03,1.69,61.0,shooting,0,0,0 -326533189,Suvi Mikkonen,FIN,female,1988-07-11,1.64,57.0,taekwondo,0,0,0 -418495066,Suyeon Back,KOR,female,1991-07-01,1.73,61.0,aquatics,0,0,0 -129659927,Suzana Lazovic,MNE,female,1992-01-28,1.78,72.0,handball,0,0,0 -819679922,Suzann Pettersen,NOR,female,1981-04-07,,,golf,0,0,0 -756706296,Suzanne Hearn,AUS,female,1956-02-13,,,equestrian,0,0,0 -809014014,Suzuka Hasegawa,JPN,female,2000-01-25,1.65,56.0,aquatics,0,0,0 -629383847,Sven Bender,GER,male,1989-04-27,1.85,73.0,football,0,1,0 -167125216,Sven Erik Bystrom,NOR,male,1992-01-21,,,cycling,0,0,0 -674985541,Sven Knipphals,GER,male,1985-09-20,1.89,88.0,athletics,0,0,0 -835906599,Sven Maresch,GER,male,1987-01-19,1.73,83.0,judo,0,0,0 -599845580,Sven Martin Skagestad,NOR,male,1995-01-13,,,athletics,0,0,0 -879259485,Sven Riederer,SUI,male,1981-03-27,1.82,69.0,triathlon,0,0,0 -538115271,Svenja Huth,GER,female,1991-01-25,1.63,54.0,football,1,0,0 -17641128,Svetlana Chimrova,RUS,female,1996-04-15,1.73,61.0,aquatics,0,0,0 -823601145,Svetlana Germanovich,KAZ,female,1986-09-21,1.76,67.0,rowing,0,0,0 -300072037,Svetlana Golendova,KAZ,female,1993-07-25,1.65,46.0,athletics,0,0,0 -514719063,Svetlana Kolesnichenko,RUS,female,1993-09-20,1.71,54.0,aquatics,1,0,0 -813630131,Svetlana Kuznetsova,RUS,female,1985-06-27,1.74,73.0,tennis,0,0,0 -82177310,Svetlana Radzivil,UZB,female,1987-01-17,1.86,61.0,athletics,0,0,0 -501420252,Svetlana Romashina,RUS,female,1989-09-21,1.73,55.0,aquatics,2,0,0 -798685031,Sviatlana Kudzelich,BLR,female,1987-05-07,1.7,51.0,athletics,0,0,0 -720211034,Svitlana Akhadova,UKR,female,1993-05-10,1.7,69.0,canoe,0,0,0 -524819089,Svitlana Iaromka,UKR,female,1989-04-09,1.62,78.0,judo,0,0,0 -237017632,Svitlana Stanko-Klymenko,UKR,female,1976-05-13,,,athletics,0,0,0 -734681524,Swe Li Myint Myint,MYA,female,1993-06-24,1.68,55.0,athletics,0,0,0 -923873687,Sydney McLaughlin,USA,female,1999-08-07,1.76,59.0,athletics,0,0,0 -897751532,Sydney Pickrem,CAN,female,1997-05-21,1.68,57.0,aquatics,0,0,0 -445792938,Sylvia Fowles,USA,female,1985-10-06,1.98,90.0,basketball,1,0,0 -640361977,Sylwester Bednarek,POL,male,1989-04-28,1.94,78.0,athletics,0,0,0 -365526151,Sylwia Bogacka,POL,female,1981-10-03,1.62,57.0,shooting,0,0,0 -687167760,Szandra Szogedi,GHA,female,1988-10-19,1.58,63.0,judo,0,0,0 -761194557,Szu-Yu Chen,TPE,female,1993-08-01,1.62,58.0,table tennis,0,0,0 -313930534,Szymon Staskiewicz,POL,male,1987-01-03,1.86,80.0,modern pentathlon,0,0,0 -654852458,Tabata de Carvalho,BRA,female,1996-04-23,1.71,61.0,athletics,0,0,0 -997432582,Tabea Alt,GER,female,2000-03-18,1.58,50.0,gymnastics,0,0,0 -57676016,Tabea Kemme,GER,female,1991-12-14,1.7,56.0,football,1,0,0 -990975913,Taciana Lima,GBS,female,1983-12-17,1.64,48.0,judo,0,0,0 -158812525,Tadas Suskevicius,LTU,male,1985-05-22,1.77,64.0,athletics,0,0,0 -134631716,Tadesse Abraham,SUI,male,1982-08-12,1.78,61.0,athletics,0,0,0 -359507589,Taehoon Lee,KOR,male,1986-05-18,1.8,74.0,sailing,0,0,0 -965284155,Taehun Kim,KOR,male,1994-08-15,1.82,59.0,taekwondo,0,0,1 -589375724,Taehwan Park,KOR,male,1989-09-27,1.83,73.0,aquatics,0,0,0 -193649296,Tafese Seboka,ETH,male,1993-09-29,1.77,66.0,athletics,0,0,0 -768671420,Tagir Khaibulaev,RUS,male,1984-07-24,1.82,100.0,judo,0,0,0 -539157373,Taha Akgul,TUR,male,1990-11-22,1.92,125.0,wrestling,1,0,0 -136534456,Tahesia Harrigan-Scott,IVB,female,1982-02-15,1.58,56.0,athletics,0,0,0 -477470052,Tahir Guelec,GER,male,1993-02-25,1.91,82.0,taekwondo,0,0,0 -161917472,Tahir Walsh,ANT,male,1994-02-24,1.82,91.0,athletics,0,0,0 -485849268,Taimuraz Friev Naskidaeva,ESP,male,1986-09-15,1.76,84.0,wrestling,0,0,0 -871329009,Taina Halasima,TGA,female,1997-12-11,1.63,65.0,athletics,0,0,0 -346992499,Taina Paixao,BRA,female,1991-11-29,1.71,69.0,basketball,0,0,0 -605417556,Tairat Bunsuk,THA,male,1993-01-11,1.61,69.0,weightlifting,0,0,0 -449390990,Tais Balconi,BRA,female,1991-04-11,1.64,63.0,rugby sevens,0,0,0 -658175291,Tais Rochel,BRA,female,1983-10-16,1.65,61.0,fencing,0,0,0 -615179383,Taiwo Awoniyi,NGR,male,1997-08-12,1.82,71.0,football,0,0,0 -615764014,Taizo Sugitani,JPN,male,1976-06-27,1.7,63.0,equestrian,0,0,0 -799687468,Takaharu Furukawa,JPN,male,1984-08-09,1.74,89.0,archery,0,0,0 -25012659,Takamasa Kitagawa,JPN,male,1996-09-05,1.77,69.0,athletics,0,0,0 -654328504,Takanori Nagase,JPN,male,1993-10-14,1.81,81.0,judo,0,0,1 -599789748,Takashi Eto,JPN,male,1991-02-05,1.83,67.0,athletics,0,0,0 -511495606,Takayuki Tanii,JPN,male,1983-02-14,1.67,57.0,athletics,0,0,0 -784189307,Takeshi Matsuda,JPN,male,1984-06-23,1.84,84.0,aquatics,0,0,1 -313024850,Takuma Asano,JPN,male,1994-11-10,1.71,70.0,football,0,0,0 -247907284,Takumi Minamino,JPN,male,1995-01-16,1.74,67.0,football,0,0,0 -798091579,Takuro Fujii,JPN,male,1985-04-21,1.84,82.0,aquatics,0,0,0 -874798045,Takuya Haneda,JPN,male,1987-07-17,1.75,70.0,canoe,0,0,1 -416084708,Takuya Iwanami,JPN,male,1994-06-18,1.86,72.0,football,0,0,0 -536937695,Talent Mandaza,ZIM,female,1985-12-11,1.58,60.0,football,0,0,0 -808567905,Tales Cerdeira,BRA,male,1987-01-21,,,aquatics,0,0,0 -842617684,Talgat Ilyasov,AUS,male,1981-02-25,1.75,74.0,wrestling,0,0,0 -74177936,Taliqua Clancy,AUS,female,1992-06-25,1.84,68.0,volleyball,0,0,0 -99503989,Talisa Lanoe,KEN,female,1994-07-25,1.67,50.0,aquatics,0,0,0 -296747783,Talita Baqlah,JOR,female,1995-10-27,1.72,62.0,aquatics,0,0,0 -122731267,Talita Marie Te Flan,CIV,female,1995-06-02,1.76,63.0,aquatics,0,0,0 -302432944,Talita Rocha,BRA,female,1982-08-29,1.81,64.0,volleyball,0,0,0 -877029068,Talles Frederico Silva,BRA,male,1991-08-20,1.9,78.0,athletics,0,0,0 -318548853,Tamara Csipes,HUN,female,1989-08-24,1.76,78.0,canoe,1,0,0 -732795832,Tamara Echegoyen Dominguez,ESP,female,1984-02-17,1.74,70.0,sailing,0,0,0 -818897478,Tamara Horacek,FRA,female,1995-11-05,1.79,80.0,handball,0,1,0 -800485643,Tamara Radocaj,SRB,female,1987-12-23,1.7,60.0,basketball,0,0,1 -545572234,Tamara Salaski,SRB,female,1988-10-16,1.65,54.0,athletics,0,0,0 -215126261,Tamara Tatham,CAN,female,1985-08-19,1.85,79.0,basketball,0,0,0 -168420206,Tamara Vega,MEX,female,1993-03-15,1.59,59.0,modern pentathlon,0,0,0 -431927399,Tamas Decsi,HUN,male,1982-10-15,1.78,82.0,fencing,0,0,0 -19585487,Tamas Kenderesi,HUN,male,1996-12-13,1.86,75.0,aquatics,0,0,1 -423484722,Tamas Lorincz,HUN,male,1986-12-20,1.72,75.0,wrestling,0,0,0 -540557883,Tamas Somoracz,HUN,male,1992-04-11,1.95,92.0,canoe,0,0,0 -270561251,Tamas Toth,HUN,male,1989-05-29,1.75,65.0,triathlon,0,0,0 -82978460,Tameka Butt,AUS,female,1991-06-16,1.58,55.0,football,0,0,0 -845644172,Tameka Williams,SKN,female,1989-08-31,,,athletics,0,0,0 -578801610,Tamika Catchings,USA,female,1979-07-21,1.85,77.0,basketball,1,0,0 -655850700,Tamila Holub,POR,female,1999-05-15,1.75,62.0,aquatics,0,0,0 -835127329,Tamirat Tola,ETH,male,1991-08-11,1.81,59.0,athletics,0,0,1 -19869535,Tamires,BRA,female,1987-10-10,1.61,54.0,football,0,0,0 -267796493,Tamires Lima de Araujo,BRA,female,1994-05-16,1.8,77.0,handball,0,0,0 -120820876,Tammy Takagi,BRA,female,1991-03-11,1.61,59.0,aquatics,0,0,0 -425857389,Tamsin Cook,AUS,female,1998-12-25,1.7,61.0,aquatics,0,1,0 -14783411,Tan Tai Hoang,VIE,male,1990-03-30,1.65,84.0,weightlifting,0,0,0 -395892993,Tanel Kangert,EST,male,1987-03-11,1.78,66.0,cycling,0,0,0 -338003590,Tanel Laanmae,EST,male,1989-09-29,1.83,95.0,athletics,0,0,0 -198967774,Tanguy Cosyns,BEL,male,1991-06-29,1.74,70.0,hockey,0,1,0 -572093564,Tania Arrayales,MEX,female,1996-08-01,1.58,53.0,fencing,0,0,0 -401251209,Tania Cagnotto,ITA,female,1985-05-15,1.6,53.0,aquatics,0,1,1 -415410367,Tania Calvo Barbero,ESP,female,1992-06-26,1.66,64.0,cycling,0,0,0 -424029874,Tania di Mario,ITA,female,1979-05-04,1.68,62.0,aquatics,0,1,0 -644104998,Tanja Frank,AUT,female,1993-01-24,1.67,57.0,sailing,0,0,1 -39470367,Tanja Kylliainen,FIN,female,1993-01-30,1.55,57.0,aquatics,0,0,0 -103257404,Tanja Perec,CRO,female,1992-06-08,1.66,85.0,shooting,0,0,0 -65779574,Tanja Zakelj,SLO,female,1988-09-15,1.59,56.0,cycling,0,0,0 -807845971,Tanumafili Malietoa Jungblut,ASA,male,1990-06-10,1.88,93.0,weightlifting,0,0,0 -410068536,Tanya Acosta,ARG,female,1991-03-11,1.82,70.0,volleyball,0,0,0 -520555163,Tanya Holliday,AUS,female,1988-09-21,1.67,52.0,athletics,0,0,0 -467489703,Tanya Seymour,RSA,female,1983-11-05,1.65,57.0,equestrian,0,0,0 -530816831,Tanyaporn Prucksakorn,THA,female,1990-01-08,1.68,70.0,shooting,0,0,0 -725478923,Tao Tian,CHN,male,1994-04-08,1.72,85.0,weightlifting,0,1,0 -701625147,Taoufik Makhloufi,ALG,male,1988-04-29,1.7,67.0,athletics,0,2,0 -152333159,Tapio Nirkko,FIN,male,1984-08-24,1.94,96.0,sailing,0,0,0 -366332579,Tara Pacheco van Rijnsoever,ESP,female,1988-10-03,1.67,63.0,sailing,0,0,0 -347121929,Tara Whitten,CAN,female,1980-07-13,1.66,67.0,cycling,0,0,0 -292576070,Taras Mishchuk,UKR,male,1995-07-22,1.87,85.0,canoe,0,0,1 -962319848,Tarasue Barnett,JAM,female,1993-09-10,1.78,81.0,athletics,0,0,0 -335960074,Tarek Ayad,EGY,male,1987-05-29,1.8,75.0,fencing,0,0,0 -769863760,Tarek Aziz Benaissa,ALG,male,1991-04-07,1.7,66.0,wrestling,0,0,0 -993851056,Tarik Langat Akdag,TUR,male,1988-06-16,1.76,60.0,athletics,0,0,0 -511260324,Tariq Ahmed Al-Amri,KSA,male,1990-12-23,1.65,49.0,athletics,0,0,0 -108994538,Taro Daniel,JPN,male,1993-01-27,1.91,76.0,tennis,0,0,0 -579881556,Taru Kuoppa,FIN,female,1983-11-14,1.73,63.0,archery,0,0,0 -373794222,Taryn Suttie,CAN,female,1990-12-07,1.83,103.0,athletics,0,0,0 -729866752,Tasa Jiya,NED,female,1997-09-16,1.84,68.0,athletics,0,0,0 -244910670,Tasama Moogas,ISR,male,1988-02-02,1.64,53.0,athletics,0,0,0 -983364224,Tashreeq Morris,RSA,male,1994-05-13,1.89,74.0,football,0,0,0 -858607766,Tatenda Tsumba,ZIM,male,1991-11-12,1.83,79.0,athletics,0,0,0 -245946322,Tatiana Ariza,COL,female,1991-02-21,1.61,52.0,football,0,0,0 -878935662,Tatiana Barsuk,RUS,female,1985-02-22,1.7,66.0,shooting,0,0,0 -539307863,Tatiana Chisca,MDA,female,1995-07-19,1.75,60.0,aquatics,0,0,0 -981120716,Tatiana Drozdovskaya,BLR,female,1978-12-06,1.75,69.0,sailing,0,0,0 -6056876,Tatiana Erokhina,RUS,female,1984-09-07,1.85,73.0,handball,1,0,0 -374496832,Tatiana Guderzo,ITA,female,1984-08-22,1.6,55.0,cycling,0,0,0 -326358515,Tatiana Kosheleva,RUS,female,1988-12-23,1.91,67.0,volleyball,0,0,0 -192110887,Tatiana Logunova,RUS,female,1980-07-03,1.74,62.0,fencing,0,0,1 -737519683,Tatiana Soledad Rizzo,ARG,female,1986-12-30,1.78,64.0,volleyball,0,0,0 -829450313,Tatiane Pacheco,BRA,female,1990-10-16,1.81,69.0,basketball,0,0,0 -12705539,Tatiele Roberta de Carvalho,BRA,female,1989-11-22,1.56,50.0,athletics,0,0,0 -848018614,Tatjana Djekanovic,BIH,female,1997-02-25,1.68,54.0,shooting,0,0,0 -177848801,Tatjana Pinto,GER,female,1992-07-02,1.7,56.0,athletics,0,0,0 -854144627,Tatsiana Khaladovich,BLR,female,1991-06-21,1.81,83.0,athletics,0,0,0 -993489737,Tatsiana Korzh,BLR,female,1993-03-17,1.75,75.0,athletics,0,0,0 -880574161,Tatsiana Kukhta,BLR,female,1990-06-13,1.85,77.0,rowing,0,0,0 -133803510,Tatsiana Likhtarovich,BLR,female,1988-03-29,1.8,67.0,basketball,0,0,0 -179784825,Tatsiana Piatrenia,BLR,female,1981-10-18,1.65,52.0,gymnastics,0,0,0 -194275450,Tatsiana Sharakova,BLR,female,1984-07-31,1.6,52.0,cycling,0,0,0 -840107784,Tatyana Troina,BLR,female,1981-06-30,1.88,78.0,basketball,0,0,0 -13841357,Tavis Bailey,USA,male,1992-01-06,1.91,124.0,athletics,0,0,0 -385700766,Tawin Hanprab,THA,male,1998-08-01,1.81,58.0,taekwondo,0,1,0 -417534147,Taybe Mustafa Yusein,BUL,female,1991-05-04,1.63,63.0,wrestling,0,0,0 -928304511,Taylor Curran,CAN,male,1992-05-19,1.83,80.0,hockey,0,0,0 -849242377,Taylor Ellis-Watson,USA,female,1993-05-06,,,athletics,1,0,0 -45282983,Taylor Madison Ruck,CAN,female,2000-05-28,1.83,60.0,aquatics,0,0,2 -721284471,Taylor McKeown,AUS,female,1995-03-17,1.78,65.0,aquatics,0,1,0 -240962566,Taylor Milne,CAN,male,1981-09-14,1.65,60.0,athletics,0,0,0 -32103246,Taylor Phinney,USA,male,1990-06-27,1.96,81.0,cycling,0,0,0 -84694873,Taylor Sander,USA,male,1992-03-17,1.96,80.0,volleyball,0,0,1 -288362768,Taylor Worth,AUS,male,1991-01-08,1.74,60.0,archery,0,0,1 -58561312,Teau McKenzie,COK,female,1995-03-12,1.83,67.0,sailing,0,0,0 -777261301,Tebogo Moerane,RSA,male,1995-04-07,1.67,64.0,football,0,0,0 -93902028,Teddy Atine - Venel,FRA,male,1985-03-16,1.84,77.0,athletics,0,0,0 -714540580,Teddy Riner,FRA,male,1989-04-07,2.03,139.0,judo,1,0,0 -97224345,Tega Odele,NGR,male,1995-12-06,1.88,80.0,athletics,0,0,0 -606135754,Teja Belak,SLO,female,1994-04-22,1.57,48.0,gymnastics,0,0,0 -556483244,Teliana Pereira,BRA,female,1988-07-20,1.67,62.0,tennis,0,0,0 -670067598,Telma Monteiro,POR,female,1985-12-27,1.61,57.0,judo,0,0,1 -781746584,Telma Santos,POR,female,1983-08-01,1.63,55.0,badminton,0,0,0 -679960058,Temuujin Purevjav,MGL,male,1994-06-02,1.73,63.0,taekwondo,0,0,0 -261206041,Temuulen Battulga,MGL,male,1988-10-07,1.83,124.0,judo,0,0,0 -7619971,Teodorico Caporaso,ITA,male,1987-09-14,1.7,55.0,athletics,0,0,0 -743311898,Teofilo Gutierrez,COL,male,1985-05-17,1.8,82.0,football,0,0,0 -675969120,Teofimo Andres Lopez Rivera,HON,male,1997-07-30,1.76,,boxing,0,0,0 -620846374,Teona Bostashvili,GEO,female,1998-01-19,1.64,52.0,aquatics,0,0,0 -654886163,Teray Smith,BAH,male,1994-09-28,1.88,,athletics,0,0,0 -214021045,Teresa Frassinetti,ITA,female,1985-12-24,1.78,75.0,aquatics,0,1,0 -57418889,Teresa Lu,TPE,female,1987-10-13,1.64,57.0,golf,0,0,0 -38799648,Teresa Patricia Almeida,ANG,female,1988-04-05,1.7,98.0,handball,0,0,0 -364848926,Teresa Portela,POR,female,1987-10-30,1.62,63.0,canoe,0,0,0 -18635175,Teresa Portela Rivas,ESP,female,1982-05-05,1.72,69.0,canoe,0,0,0 -923351948,Tereza Master,MAW,female,1988-09-21,1.49,45.0,athletics,0,0,0 -242422662,Terina Te Tamaki,NZL,female,1997-05-01,1.65,67.0,rugby sevens,0,1,0 -334953964,Tero Pitkamaki,FIN,male,1982-12-19,1.95,94.0,athletics,0,0,0 -672973707,Tero Seppo Vaelimaeki,FIN,male,1982-03-21,1.7,73.0,wrestling,0,0,0 -395956352,Terry Bouhraoua,FRA,male,1987-08-29,1.69,65.0,rugby sevens,0,0,0 -125367694,Teruya Goto,JPN,male,1991-12-18,1.77,82.0,rugby sevens,0,0,0 -510104446,Teruyoshi Akiyama,JPN,male,1971-12-25,1.68,65.0,shooting,0,0,0 -102862787,Tervel Ivaylov Dlagnev,USA,male,1985-11-19,1.88,122.0,wrestling,0,0,0 -655229990,Tesfaye Abera,ETH,male,1992-03-31,1.92,68.0,athletics,0,0,0 -135938063,Tess Oliveira,BRA,female,1987-01-06,1.65,58.0,aquatics,0,0,0 -651217766,Tess Wester,NED,female,1993-05-19,1.78,70.0,handball,0,0,0 -723655440,Tessa Gobbo,USA,female,1990-12-08,1.86,81.0,rowing,1,0,0 -847466727,Tessa Lavey,AUS,female,1993-03-29,1.72,68.0,basketball,0,0,0 -647467828,Tessa van Schagen,NED,female,1994-02-02,1.68,62.0,athletics,0,0,0 -166897661,Tessie Savelkouls,NED,female,1992-03-11,1.82,95.0,judo,0,0,0 -279816745,Tetiana Melnyk,UKR,female,1995-04-02,1.85,63.0,athletics,0,0,0 -740317343,Tetyana Bilenko,UKR,female,1983-11-23,1.78,67.0,table tennis,0,0,0 -649148509,Tetyana Kob,UKR,female,1987-10-25,1.61,,boxing,0,0,0 -159812118,Tewelde Estifanos,ERI,male,1981-11-02,,,athletics,0,0,0 -807447097,Teymur Mammadov,AZE,male,1993-01-11,1.96,,boxing,0,0,0 -370652177,Teymuraz Gabashvili,RUS,male,1985-05-23,1.87,85.0,tennis,0,0,0 -754858523,Thabiso Kutumela,RSA,male,1993-07-01,1.75,68.0,football,0,0,0 -210040104,Thadius Katua,PNG,male,1997-11-04,1.67,,boxing,0,0,0 -332545480,Thais Guedes,BRA,female,1993-01-20,1.64,60.0,football,0,0,0 -951388142,Thaisa,BRA,female,1988-12-17,1.66,59.0,football,0,0,0 -296920401,Thaisa Menezes,BRA,female,1987-05-15,1.96,75.0,volleyball,0,0,0 -900917316,Thanackal Gopi,IND,male,1988-05-24,1.66,56.0,athletics,0,0,0 -381843063,Thanasi Kokkinakis,AUS,male,1996-04-10,1.96,82.0,tennis,0,0,0 -699394575,Thanh An Vu,VIE,male,1992-08-07,1.85,80.0,fencing,0,0,0 -5130801,Thanh Ngung Nguyen,VIE,male,1992-04-08,1.65,55.0,athletics,0,0,0 -955206576,Thapelo Morena,RSA,male,1993-08-06,1.7,62.0,football,0,0,0 -315255712,Thea Lafond,DMA,female,1994-04-05,1.73,65.0,athletics,0,0,0 -439436986,Thembi Kgatlana,RSA,female,1996-05-02,1.56,50.0,football,0,0,0 -215472787,Theo Bos,NED,male,1983-08-22,1.9,85.0,cycling,0,0,0 -529392127,Theo Bussiere,FRA,male,1995-01-18,1.9,90.0,aquatics,0,0,0 -104108764,Theo Piniau,PNG,male,1993-06-08,1.72,59.0,athletics,0,0,0 -306944769,Theo Reinhardt,GER,male,1990-09-17,1.77,68.0,cycling,0,0,0 -263136966,Theo van de Vendel,NED,male,1980-10-24,1.76,73.0,equestrian,0,0,0 -648002342,Theodora Drakou,GRE,female,1992-02-06,1.69,67.0,aquatics,0,0,0 -470687922,Theodoros Iakovidis,GRE,male,1991-02-12,1.81,85.0,weightlifting,0,0,0 -466992964,Theophile Onfroy,FRA,male,1992-12-29,1.89,82.0,rowing,0,0,0 -119367610,Theorine Christelle Aboa Mbeza,CMR,female,1992-08-25,1.82,78.0,volleyball,0,0,0 -460776365,Theresa Fitzpatrick,NZL,female,1995-02-25,1.68,75.0,rugby sevens,0,1,0 -365498123,Therese Alshammar,SWE,female,1977-08-26,1.8,64.0,aquatics,0,0,0 -27368310,Thery Schir,SUI,male,1993-02-18,1.86,77.0,cycling,0,0,0 -559704929,Thi Anh Do,VIE,female,1996-02-09,1.65,58.0,fencing,0,0,0 -581029614,Thi Ha Thanh Phan,VIE,female,1991-10-16,1.63,48.0,gymnastics,0,0,0 -419742149,Thi Hang Vu,VIE,female,1992-05-25,1.58,47.0,wrestling,0,0,0 -89761321,Thi Huyen Nguyen,VIE,female,1993-05-19,1.58,45.0,athletics,0,0,0 -414794696,Thi Huyen Vuong,VIE,female,1992-06-22,1.55,48.0,weightlifting,0,0,0 -262269527,Thi Le Dung Nguyen,VIE,female,1985-09-09,1.68,55.0,fencing,0,0,0 -340277633,Thi Lua Nguyen,VIE,female,1991-07-24,1.65,53.0,wrestling,0,0,0 -927744714,Thi Nhu Hoa Nguyen,VIE,female,1984-02-21,1.7,60.0,fencing,0,0,0 -244236033,Thi Trang (b) Vu,VIE,female,1992-05-19,1.63,58.0,badminton,0,0,0 -666839179,Thiago Andre,BRA,male,1995-08-04,1.63,52.0,athletics,0,0,0 -176515757,Thiago Bomfim,BRA,male,1990-09-21,1.93,84.0,hockey,0,0,0 -544759251,Thiago Braz da Silva,BRA,male,1993-12-16,1.83,75.0,athletics,1,0,0 -682318749,Thiago Maia,BRA,male,1997-03-23,1.78,69.0,football,1,0,0 -79240685,Thiago Pereira,BRA,male,1986-01-26,1.87,83.0,aquatics,0,0,0 -36658255,Thiago Simon,BRA,male,1990-04-03,1.84,93.0,aquatics,0,0,0 -69081785,Thiagus dos Santos,BRA,male,1989-01-25,1.98,104.0,handball,0,0,0 -23647767,Thibault Colard,FRA,male,1992-01-13,1.87,70.0,rowing,0,0,1 -228211001,Thibault Rossard,FRA,male,1993-08-28,1.93,85.0,volleyball,0,0,0 -914516277,Thibaut Amani Danho,CIV,male,1994-01-15,1.85,82.0,aquatics,0,0,0 -814590429,Thibaut Simon,FRA,male,1983-12-18,1.92,98.0,aquatics,0,0,0 -999374064,Thibaut Vallette,FRA,male,1974-01-18,1.71,60.0,equestrian,1,0,0 -50266146,Thierry Omeyer,FRA,male,1976-11-02,1.92,93.0,handball,0,1,0 -963532102,Thijs Visser,ARU,male,1989-10-19,1.84,88.0,sailing,0,0,0 -326914230,Thint Myaat,MYA,male,2002-04-14,1.6,52.0,aquatics,0,0,0 -172048822,Thomas Baroukh,FRA,male,1987-12-15,1.83,70.0,rowing,0,0,1 -849127949,Thomas Barr,IRL,male,1992-07-24,1.83,70.0,athletics,0,0,0 -714454697,Thomas Barrows,USA,male,1987-11-02,1.86,82.0,sailing,0,0,0 -896818368,Thomas Boudat,FRA,male,1994-02-24,1.75,69.0,cycling,0,0,0 -360675944,Thomas Briceno,CHI,male,1993-09-16,1.86,90.0,judo,0,0,0 -168124839,Thomas Briels,BEL,male,1987-08-23,1.72,71.0,hockey,0,1,0 -475825949,Thomas Daley,GBR,male,1994-05-21,1.77,70.0,aquatics,0,0,1 -360616415,Thomas Dunstan,USA,male,1997-09-29,1.94,96.0,aquatics,0,0,0 -391980322,Thomas Fabbiano,ITA,male,1989-05-26,1.73,70.0,tennis,0,0,0 -521339306,Thomas Fraser-Holmes,AUS,male,1991-10-09,1.94,85.0,aquatics,0,0,0 -868940905,Thomas Hagelskjar,DEN,male,1995-02-04,1.87,81.0,football,0,0,0 -371431214,Thomas Heurtel,FRA,male,1989-04-10,1.88,83.0,basketball,0,0,0 -112978529,Thomas Jaeschke,USA,male,1993-09-04,1.98,84.0,volleyball,0,0,1 -219077110,Thomas Jordier,FRA,male,1994-08-12,1.7,65.0,athletics,0,0,0 -94661624,Thomas Mathis,AUT,male,1990-04-25,1.78,63.0,shooting,0,0,0 -374876485,Thomas Murray,NZL,male,1994-04-05,1.89,87.0,rowing,0,0,0 -782766062,Thomas Pieters,BEL,male,1992-01-27,1.96,85.0,golf,0,0,0 -870559020,Thomas Ploessel,GER,male,1988-04-29,1.81,80.0,sailing,0,0,1 -900233130,Thomas Rohler,GER,male,1991-09-30,1.92,92.0,athletics,1,0,0 -496341298,Thomas Simart,FRA,male,1987-10-09,1.8,82.0,canoe,0,0,0 -851753829,Thomas Springer,AUT,male,1984-11-06,1.84,70.0,triathlon,0,0,0 -514467487,Thomas Zajac,AUT,male,1985-09-22,1.8,77.0,sailing,0,0,1 -666963728,Thomas van der Plaetsen,BEL,male,1990-12-24,1.86,82.0,athletics,0,0,0 -831910280,Thomaz Bellucci,BRA,male,1987-12-30,1.88,82.0,tennis,0,0,0 -854048729,Thongchai Jaidee,THA,male,1969-11-08,1.7,63.0,golf,0,0,0 -272895419,Thorbjorn Olesen,DEN,male,1989-12-21,1.77,70.0,golf,0,0,0 -711886868,Thormodur Jonsson,ISL,male,1983-03-02,1.96,110.0,judo,0,0,0 -962042754,Thulasi Tharumalingam,QAT,male,1992-10-24,1.78,,boxing,0,0,0 -494000666,Tia-Adana Belle,BAR,female,1996-06-15,1.78,59.0,athletics,0,0,0 -971688032,Tia-Clair Toomey,AUS,female,1993-07-22,1.58,58.0,weightlifting,0,0,0 -512121702,Tiago Apolonia,POR,male,1986-07-28,1.85,76.0,table tennis,0,0,0 -850164905,Tiago Camilo,BRA,male,1982-05-24,1.8,90.0,judo,0,0,0 -192124301,Tiago Ilori,POR,male,1993-02-26,1.9,80.0,football,0,0,0 -697851562,Tiago Jorge Oliveira Ferreira,POR,male,1988-12-07,1.94,74.0,cycling,0,0,0 -977600409,Tiago Silva,POR,male,1993-06-02,1.7,70.0,football,0,0,0 -802574833,Tian Miao,CHN,female,1993-01-18,1.86,83.0,rowing,0,0,0 -562349871,Tianna Bartoletta,USA,female,1985-08-30,1.68,58.0,athletics,2,0,0 -439028036,Tianshi Zhong,CHN,female,1991-02-02,1.68,62.0,cycling,1,0,0 -399009704,Tianwei Feng,SIN,female,1986-08-31,1.63,55.0,table tennis,0,0,0 -290265598,Tiberiu Dolniceanu,ROU,male,1988-04-03,1.79,79.0,fencing,0,0,0 -579357884,Tibor Hufnagel,HUN,male,1991-03-18,1.75,75.0,canoe,0,0,0 -123268106,Tibor Linka,SVK,male,1995-02-13,1.99,95.0,canoe,0,1,0 -832967742,Tien Chen Chou,TPE,male,1990-01-08,1.8,78.0,badminton,0,0,0 -307265298,Tien Minh Nguyen,VIE,male,1983-02-12,1.68,60.0,badminton,0,0,0 -334432362,Tiexin Wang,CHN,male,1989-02-24,1.87,73.0,rowing,0,0,0 -589841221,Tiffany Chan,HKG,female,1993-09-12,1.61,52.0,golf,0,0,0 -336393065,Tiffany Foster,CAN,female,1984-07-24,1.65,50.0,equestrian,0,0,0 -103328512,Tiffany Geroudet,SUI,female,1986-09-03,1.7,67.0,fencing,0,0,0 -95014047,Tiffany Porter,GBR,female,1987-11-13,1.75,70.0,athletics,0,0,0 -939411758,Tigest Getent,BRN,female,1997-07-07,,,athletics,0,0,0 -608439897,Tigist Gashaw,BRN,female,1996-12-25,,,athletics,0,0,0 -775831149,Tigist Tufa,ETH,female,1987-01-26,,,athletics,0,0,0 -487073298,Tigst Assefa,ETH,female,1996-12-03,1.68,53.0,athletics,0,0,0 -578522258,Tiidrek Nurme,EST,male,1985-11-18,1.84,70.0,athletics,0,0,0 -418178080,Tijana Bogdanovic,SRB,female,1998-05-04,1.72,52.0,taekwondo,0,1,0 -404485825,Tijana Boskovic,SRB,female,1997-03-08,1.93,82.0,volleyball,0,1,0 -28414240,Tijana Malesevic,SRB,female,1991-03-18,1.85,78.0,volleyball,0,1,0 -280943173,Tikhomir Ivanov,BUL,male,1994-07-11,1.97,76.0,athletics,0,0,0 -250232095,Tilbe Senyurek,TUR,female,1995-04-26,1.89,86.0,basketball,0,0,0 -566924681,Tim Agaba,RSA,male,1989-07-23,1.93,104.0,rugby sevens,0,0,1 -321813613,Tim Deavin,AUS,male,1984-07-27,1.85,77.0,hockey,0,0,0 -108419989,Tim Erlandsson,SWE,male,1996-12-25,1.92,79.0,football,0,0,0 -162316722,Tim Heijbrock,NED,male,1985-10-28,1.89,70.0,rowing,0,0,0 -366414312,Tim Kneale,GBR,male,1982-10-16,1.82,76.0,shooting,0,0,0 -2888213,Tim Lips,NED,male,1985-10-07,1.68,55.0,equestrian,0,0,0 -757977623,Tim Mikkelson,NZL,male,1986-08-13,1.93,102.0,rugby sevens,0,0,0 -966796753,Tim Nedow,CAN,male,1990-10-16,2.0,140.0,athletics,0,0,0 -320004654,Tim Price,NZL,male,1979-04-03,1.89,75.0,equestrian,0,0,0 -746547519,Tim Schrijver,CAN,male,1992-02-07,2.03,104.0,rowing,0,0,0 -329815777,Tim Shuttleworth,GBR,male,1997-04-24,1.92,72.0,aquatics,0,0,0 -609839139,Tim Veldt,NED,male,1984-02-14,1.86,78.0,cycling,0,0,0 -157166055,Tim Wellens,BEL,male,1991-05-10,1.83,77.0,cycling,0,0,0 -429177971,Tima Tamoi,FIJ,female,1987-11-30,1.75,70.0,rugby sevens,0,0,0 -264598644,Timaima Ravisa,FIJ,female,1988-05-01,1.6,55.0,rugby sevens,0,0,0 -978453530,Timea Babos,HUN,female,1993-05-10,1.79,68.0,tennis,0,0,0 -693524589,Timea Bacsinszky,SUI,female,1989-06-08,1.71,62.0,tennis,0,1,0 -375628571,Timm Herzbruch,GER,male,1997-06-07,1.8,76.0,hockey,0,0,1 -169189076,Timo Boll,GER,male,1981-03-08,1.81,74.0,table tennis,0,0,1 -490797825,Timo Horn,GER,male,1993-05-12,1.91,89.0,football,0,1,0 -533145484,Timothey N'Guessan,FRA,male,1992-09-18,1.86,105.0,handball,0,1,0 -439125836,Timothy Cockram,IRL,male,1984-01-18,1.77,78.0,hockey,0,0,0 -114387888,Timothy Toroitich,UGA,male,1991-10-10,,,athletics,0,0,0 -170511922,Timothy Wang,USA,male,1991-08-17,1.76,65.0,table tennis,0,0,0 -88388879,Timothy Wynter,JAM,male,1996-01-16,1.87,77.0,aquatics,0,0,0 -715800350,Timur Khaidarov,KAZ,male,1996-03-28,1.85,86.0,canoe,0,0,0 -231378561,Timur Oruz,GER,male,1994-10-27,1.86,87.0,hockey,0,0,1 -503276231,Timur Safin,RUS,male,1992-08-04,1.82,82.0,fencing,1,0,1 -465038950,Tina Charles,USA,female,1988-12-05,1.93,88.0,basketball,1,0,0 -128638379,Tina Dietze,GER,female,1988-01-25,1.72,68.0,canoe,0,2,0 -763030230,Tina Mihelic,CRO,female,1988-12-30,1.76,66.0,sailing,0,0,0 -873408482,Tina Mrak,SLO,female,1988-02-06,1.65,62.0,sailing,0,0,0 -826167980,Tina Punzel,GER,female,1995-08-01,1.67,56.0,aquatics,0,0,0 -390366123,Tina Skaar,NOR,female,1993-08-31,,,taekwondo,0,0,0 -282154223,Tina Sutej,SLO,female,1988-11-07,1.73,58.0,athletics,0,0,0 -657940345,Tina Trstenjak,SLO,female,1990-08-24,1.62,65.0,judo,1,0,0 -727650750,Tindwende Thierry Sawadogo,BUR,male,1995-07-22,1.99,93.0,aquatics,0,0,0 -872228172,Ting Shao,CHN,female,1989-12-10,1.84,75.0,basketball,0,0,0 -622182387,Ting Wen Quah,SIN,female,1992-08-18,1.76,65.0,aquatics,0,0,0 -975655821,Ting Ying Huang,TPE,female,1990-05-29,1.6,,cycling,0,0,0 -738894846,Ting Zhu,CHN,female,1994-11-29,1.95,78.0,volleyball,1,0,0 -11288154,Tingmao Shi,CHN,female,1991-08-31,1.59,52.0,aquatics,2,0,0 -731978113,Tingting Liu,CHN,female,1990-01-29,1.78,87.0,athletics,0,0,0 -549917625,Tinne Wilhelmsson Silfven,SWE,female,1967-07-12,1.67,60.0,equestrian,0,0,0 -973558445,Tintu Lukka,IND,female,1989-04-26,1.63,50.0,athletics,0,0,0 -945244491,Tirfi Tsegaye,ETH,female,1984-11-25,1.62,52.0,athletics,0,0,0 -727998449,Tiril Bue,NOR,female,1993-04-26,,,sailing,0,0,0 -373463162,Tirunesh Dibaba,ETH,female,1985-06-01,1.66,50.0,athletics,0,0,1 -92191114,Tjasa Oder,SLO,female,1994-06-22,1.8,65.0,aquatics,0,0,0 -788072979,Tjasa Pintar,SLO,female,1997-02-15,1.75,65.0,aquatics,0,0,0 -472127952,Tjasa Vozel,SLO,female,1994-07-14,1.71,62.0,aquatics,0,0,0 -289284299,Tlotliso Leotlela,RSA,male,1998-05-12,1.78,74.0,athletics,0,0,0 -895052904,Toader-Andrei Gontaru,ROU,male,1993-02-07,1.9,92.0,rowing,0,0,0 -779371307,Tobias Dahm,GER,male,1987-05-23,2.05,124.0,athletics,0,0,0 -706990143,Tobias Englmaier,GER,male,1988-01-29,1.58,63.0,judo,0,0,0 -283196075,Tobias Figueiredo,POR,male,1994-02-02,1.9,80.0,football,0,0,0 -422345402,Tobias Franzmann,GER,male,1990-12-08,1.81,73.0,rowing,0,0,0 -404535189,Tobias Hauke,GER,male,1987-09-10,1.83,81.0,hockey,0,0,1 -287021554,Tobias Karlsson,SWE,male,1981-06-04,1.96,104.0,handball,0,0,0 -999276272,Tobias Reichmann,GER,male,1988-05-27,1.88,87.0,handball,0,0,1 -811535862,Tobias Scherbarth,GER,male,1985-08-17,1.95,87.0,athletics,0,0,0 -451233303,Tobin Heath,USA,female,1988-05-29,1.62,54.0,football,0,0,0 -26312714,Toea Wisil,PNG,female,1988-01-01,1.62,63.0,athletics,0,0,0 -128575502,Toghrul Asgarov,AZE,male,1992-09-17,1.7,65.0,wrestling,0,1,0 -893678601,Tom Boon,BEL,male,1990-01-25,1.84,81.0,hockey,0,1,0 -905671340,Tom Bosworth,GBR,male,1990-01-17,1.78,54.0,athletics,0,0,0 -282018185,Tom Burton,AUS,male,1990-06-27,1.8,81.0,sailing,1,0,0 -698962028,Tom Craig,AUS,male,1995-09-03,1.86,85.0,hockey,0,0,0 -115915135,Tom Cusack,AUS,male,1993-03-01,1.91,101.0,rugby sevens,0,0,0 -200377186,Tom Dumoulin,NED,male,1990-11-11,1.86,70.0,cycling,0,1,0 -967848122,Tom Farrell,GBR,male,1991-03-23,1.79,63.0,athletics,0,0,0 -694130746,Tom Grambusch,GER,male,1995-08-04,1.85,85.0,hockey,0,0,1 -217351049,Tom Kingston,AUS,male,1991-06-19,1.9,91.0,rugby sevens,0,0,0 -621529566,Tom Liebscher,GER,male,1993-08-03,1.89,89.0,canoe,1,0,0 -107180600,Tom Mitchell,GBR,male,1989-07-22,1.78,85.0,rugby sevens,0,1,0 -959754515,Tom Pelsmaekers,BEL,male,1993-01-26,1.77,81.0,sailing,0,0,0 -298179530,Tom Ramshaw,CAN,male,1991-11-18,1.83,95.0,sailing,0,0,0 -928952672,Tom Ransley,GBR,male,1985-09-06,1.98,101.0,rowing,1,0,0 -169080993,Tom Richard Goegebuer,BEL,male,1975-03-27,1.64,56.0,weightlifting,0,0,0 -771859160,Tom Shields,USA,male,1991-07-11,1.94,86.0,aquatics,1,0,0 -384204713,Toma Nikiforov,BEL,male,1993-01-25,1.9,100.0,judo,0,0,0 -915410677,Tomas,POR,male,1995-01-30,1.81,75.0,football,0,0,0 -986152006,Tomas Aguilera,MEX,male,1988-11-15,2.02,95.0,volleyball,0,0,0 -53247064,Tomas Gonzalez,CHI,male,1985-11-22,1.7,67.0,gymnastics,0,0,0 -542026026,Tomas Klobucnik,SVK,male,1990-06-21,1.85,88.0,aquatics,0,0,0 -633990854,Tomas Stanek,CZE,male,1991-06-13,1.9,125.0,athletics,0,0,0 -674282266,Tomas Walsh,NZL,male,1992-03-01,1.85,125.0,athletics,0,0,1 -324400159,Tomasz Jablonski,POL,male,1988-12-29,1.78,,boxing,0,0,0 -534870761,Tomasz Kaczor,POL,male,1989-08-04,1.84,85.0,canoe,0,0,0 -467871766,Tomasz Majewski,POL,male,1981-08-30,2.04,142.0,athletics,0,0,0 -800403831,Tomasz Polewka,POL,male,1994-08-05,2.0,96.0,aquatics,0,0,0 -211819667,Tommy Sugiarto,INA,male,1988-05-31,1.75,71.0,badminton,0,0,0 -201573939,Tomohiro Inoue,JPN,male,1987-07-17,1.7,74.0,wrestling,0,0,0 -867127082,Tomomi Aoki,JPN,female,1994-10-25,1.64,55.0,aquatics,0,0,0 -388992602,Tomomi Tanaka,JPN,female,1988-01-25,1.54,40.0,athletics,0,0,0 -940604349,Tomoya Miguchi,JPN,male,1986-04-26,1.8,67.0,modern pentathlon,0,0,0 -976832903,Tomoya Tamura,JPN,male,1992-08-20,1.78,68.0,athletics,0,0,0 -725466241,Tomoyoshi Fukushima,JPN,male,1993-06-03,1.77,75.0,aquatics,0,0,0 -711821462,Tomoyuki Matsuda,JPN,male,1975-12-12,1.74,73.0,shooting,0,0,0 -53505297,Toms Skujins,LAT,male,1991-06-15,1.8,70.0,cycling,0,0,0 -917643038,Tonci Stipanovic,CRO,male,1986-06-13,1.78,81.0,sailing,0,1,0 -189873894,Tone Wieten,NED,male,1994-03-17,2.01,102.0,rowing,0,0,1 -464586921,Toni Syarifudin,INA,male,1991-06-13,1.64,68.0,cycling,0,0,0 -605742974,Toni Wilhelm,GER,male,1983-02-05,1.82,76.0,sailing,0,0,0 -776154883,Toni-Ann Williams,JAM,female,1995-11-20,1.55,52.0,gymnastics,0,0,0 -535001481,Tonia Couch,GBR,female,1989-05-20,1.62,58.0,aquatics,0,0,0 -724384082,Tonje Angelsen,NOR,female,1990-01-17,,,athletics,0,0,0 -999578859,Tontowi Ahmad,INA,male,1987-07-18,1.79,72.0,badminton,1,0,0 -287253228,Tonu Endrekson,EST,male,1979-06-11,1.98,104.0,rowing,0,0,1 -870620846,Tony Azevedo,USA,male,1981-11-20,1.86,90.0,aquatics,0,0,0 -229204643,Tony Dodds,NZL,male,1987-06-16,1.83,68.0,triathlon,0,0,0 -238201796,Tony Martin,GER,male,1985-04-23,1.86,75.0,cycling,0,0,0 -947438087,Tony McQuay,USA,male,1990-04-16,1.81,72.0,athletics,1,0,0 -35377706,Tony Parker,FRA,male,1982-05-17,1.86,80.0,basketball,0,0,0 -479731950,Tony Tuivuna,FIJ,male,1995-03-20,1.92,77.0,football,0,0,0 -34099719,Tony Victor James Yoka,FRA,male,1992-04-27,2.0,,boxing,1,0,0 -291445847,Torben Grimmel,DEN,male,1975-11-23,1.82,90.0,shooting,0,0,0 -764236472,Tore Navrestad,NOR,male,1996-02-19,,,cycling,0,0,0 -207258213,Tori Bowie,USA,female,1990-08-27,1.76,58.0,athletics,1,1,1 -966701899,Tori Pena,IRL,female,1987-07-30,1.67,58.0,athletics,0,0,0 -219098253,Tory Nyhaug,CAN,male,1992-04-17,1.85,92.0,cycling,0,0,0 -734322281,Toshikazu Yamashita,JPN,male,1977-02-21,1.7,70.0,shooting,0,0,0 -651640660,Toshiki Masui,JPN,male,1969-11-13,1.65,58.0,equestrian,0,0,0 -550282908,Tosin Oke,NGR,male,1980-10-01,1.79,78.0,athletics,0,0,0 -166005937,Townley Haas,USA,male,1996-12-13,1.96,83.0,aquatics,1,0,0 -741082455,Tracey Lambrechs,NZL,female,1985-08-27,1.67,107.0,weightlifting,0,0,0 -393618726,Tracy Eisser,USA,female,1989-11-20,1.86,83.0,rowing,0,0,0 -729594636,Tracy Keith-Matchitt,COK,female,1990-03-30,1.67,60.0,aquatics,0,0,0 -287146482,Travis Mahoney,AUS,male,1990-07-24,1.9,81.0,aquatics,0,0,0 -286089485,Travis Stevens,USA,male,1986-02-28,1.81,80.0,judo,0,1,0 -932981795,Trayvon Bromell,USA,male,1995-07-10,1.73,70.0,athletics,0,0,0 -521984542,Trent Jones,NZL,male,1994-08-12,1.85,87.0,cycling,0,0,0 -244396184,Trevor Barry,BAH,male,1983-06-14,,,athletics,0,0,0 -824123948,Trevor Clevenot,FRA,male,1994-06-28,1.99,89.0,volleyball,0,0,0 -244800135,Trihas Gebre,ESP,female,1990-04-29,1.62,49.0,athletics,0,0,0 -638183156,Tristan Flore,FRA,male,1995-01-02,1.78,64.0,table tennis,0,0,0 -209701462,Trixi Worrack,GER,female,1981-09-28,1.59,50.0,cycling,0,0,0 -579249475,Triyatno,INA,male,1987-12-20,1.61,69.0,weightlifting,0,0,0 -555716378,Troy Doris,GUY,male,1989-04-12,1.72,72.0,athletics,0,0,0 -783577088,Tsanko Arnaudov,POR,male,1992-03-14,1.98,154.0,athletics,0,0,0 -239480068,Tsegai Tewelde,GBR,male,1989-12-08,1.72,56.0,athletics,0,0,0 -49752494,Tsendbaatar Erdenebat,MGL,male,1996-10-16,1.63,,boxing,0,0,0 -646516993,Tsepang Sello,LES,female,1997-02-23,,,athletics,0,0,0 -132965685,Tsepo Mathibelle,LES,male,1991-06-30,,,athletics,0,0,0 -169995559,Tsgabu Gebremaryam Grmay,ETH,male,1991-08-25,1.75,63.0,cycling,0,0,0 -960328623,Tsholofelo Thipe,RSA,female,1986-12-09,1.53,55.0,athletics,0,0,0 -874089469,Tsimafei Dzeinichenka,BLR,male,1986-11-05,1.86,98.0,wrestling,0,0,0 -1591635,Tsogtbaatar Tsend-Ochir,MGL,male,1996-03-16,1.7,68.0,judo,0,0,0 -811274381,Tsolmon Adiyasambuu,MGL,female,1992-11-07,1.6,52.0,judo,0,0,0 -570804014,Tsotne Machavariani,GEO,male,1997-09-26,1.8,75.0,shooting,0,0,0 -950036284,Tsubasa Sasaki,JPN,male,1995-03-23,1.7,60.0,canoe,0,0,0 -760127003,Tsukasa Shiotani,JPN,male,1988-12-05,1.82,80.0,football,0,0,0 -353390338,Tsvetana Pironkova,BUL,female,1987-09-13,1.78,65.0,tennis,0,0,0 -8380241,Tsvetelina Naydenova,BUL,female,1994-04-28,1.68,49.0,gymnastics,0,0,1 -671805698,Tugba Guvenc,TUR,female,1994-07-09,1.73,52.0,athletics,0,0,0 -720168381,Tugce Canitez,TUR,female,1990-11-10,1.88,85.0,basketball,0,0,0 -709022430,Tugce Sahutoglu,TUR,female,1988-05-01,1.8,120.0,athletics,0,0,0 -313585891,Tuiana Dashidorzhieva,RUS,female,1996-04-14,1.69,57.0,archery,0,1,0 -520039315,Tumurkhuleg Davaadorj,MGL,male,1990-09-29,1.72,70.0,judo,0,0,0 -176135968,Tunde Szabo,HUN,female,1989-02-08,1.54,46.0,athletics,0,0,0 -863102848,Tutya Yilmaz,TUR,female,1999-06-04,1.5,48.0,gymnastics,0,0,0 -164349169,Tuula Tenkanen,FIN,female,1990-08-11,1.67,69.0,sailing,0,0,0 -589830090,Tuuli Petaja-Siren,FIN,female,1983-11-09,1.69,59.0,sailing,0,0,0 -300389824,Tuvshinbat Byamba,MGL,male,1987-03-27,1.74,,boxing,0,0,0 -848114193,Tuvshinbayar Naidan,MGL,male,1984-06-01,1.78,104.0,judo,0,0,0 -380875835,Twan van Gendt,NED,male,1992-06-09,1.78,85.0,cycling,0,0,0 -503739035,Tyla Nathan-Wong,NZL,female,1994-07-01,1.63,58.0,rugby sevens,0,1,0 -737278135,Tyler Martin,AUS,male,1990-06-28,1.96,98.0,aquatics,0,0,0 -87568178,Tyler Mislawchuk,CAN,male,1994-08-19,1.72,59.0,triathlon,0,0,0 -42726050,Tyler Nase,USA,male,1990-08-30,1.83,71.0,rowing,0,0,0 -834107099,Tyler Sanders,CAN,male,1991-12-14,1.91,81.0,volleyball,0,0,0 -77544133,Tynia Gaither,BAH,female,1993-03-16,1.58,,athletics,0,0,0 -930293846,Tyroane Sandows,RSA,male,1995-02-12,1.72,61.0,football,0,0,0 -356052736,Tyrone Smith,BER,male,1984-08-07,1.83,74.0,athletics,0,0,0 -259271156,Tyson Gay,USA,male,1982-08-09,1.81,80.0,athletics,0,0,0 -189270629,Tze Liang Ooi,MAS,male,1993-11-19,1.7,68.0,aquatics,0,0,0 -504555048,Tzu Ying Tai,TPE,female,1994-06-20,1.62,57.0,badminton,0,0,0 -991287855,Tzu-Chi Lin,TPE,female,1988-03-19,1.58,63.0,weightlifting,0,0,0 -784808590,Ubaldina Valoyes Cuesta,COL,female,1982-07-06,1.62,74.0,weightlifting,0,0,0 -98938624,Ugo Crousillat,FRA,male,1990-10-27,1.9,94.0,aquatics,0,0,0 -2045907,Uhunoma Osazuwa,NGR,female,1987-11-23,1.75,65.0,athletics,0,0,0 -617399912,Uijo Hwang,KOR,male,1992-08-28,,,football,0,0,0 -662685854,Uilson,BRA,male,1994-04-28,1.86,80.0,football,1,0,0 -674769379,Uitumen Orgodol,MGL,male,1989-04-29,1.75,82.0,wrestling,0,0,0 -13916415,Uladzislau Hancharou,BLR,male,1995-12-02,1.73,66.0,gymnastics,1,0,0 -646451751,Uladzislau Pramau,BLR,male,1984-08-03,1.77,66.0,athletics,0,0,0 -902352891,Ulrich Kirchhoff,UKR,male,1967-08-09,1.9,86.0,equestrian,0,0,0 -605302051,Umutcan Emektas,TUR,male,1991-06-29,1.82,81.0,athletics,0,0,0 -680257961,Un Hyang Kim,PRK,female,1991-10-21,1.6,54.0,aquatics,0,0,0 -556048033,Un Jong Hong,PRK,female,1989-03-09,1.56,47.0,gymnastics,0,0,0 -578632185,Un Ju Kang,PRK,female,1995-02-01,1.68,60.0,archery,0,0,0 -163301823,Unurbat Purevjav,MGL,male,1988-02-15,1.7,80.0,wrestling,0,0,0 -624095019,Urantsetseg Munkhbat,MGL,female,1990-03-14,1.64,51.0,judo,0,0,0 -988341584,Urata Rama,KOS,female,1986-12-20,1.73,64.0,shooting,0,0,0 -958189284,Urban Lesjak,SLO,male,1990-08-24,1.87,103.0,handball,0,0,0 -725017162,Uros CUCKOVIC,MNE,male,1990-04-25,1.99,101.0,aquatics,0,0,0 -705134000,Uros Zorman,SLO,male,1980-01-09,1.9,98.0,handball,0,0,0 -370406221,Ursa Kragelj,SLO,female,1988-07-02,1.66,56.0,canoe,0,0,0 -586282820,Ursula Gonzalez Garate,MEX,female,1991-11-22,1.71,71.0,fencing,0,0,0 -718417906,Ursula Grobler,RSA,female,1980-02-06,1.73,60.0,rowing,0,0,0 -88669293,Ursula Wikstrom,FIN,female,1980-07-03,1.66,55.0,golf,0,0,0 -579416064,Usain Bolt,JAM,male,1986-08-21,1.96,95.0,athletics,3,0,0 -149615945,Uschi Freitag,NED,female,1989-08-19,1.67,68.0,aquatics,0,0,0 -530272776,Ushangi Kokauri,AZE,male,1992-01-10,1.95,135.0,judo,0,0,0 -39407530,Usman Muhammed,NGR,male,1994-03-02,1.69,,football,0,0,1 -308104666,Uthappa Sannuvanda,IND,male,1993-12-02,1.83,84.0,hockey,0,0,0 -67296664,Uuganbaatar Otgonbaatar,MGL,male,1988-02-19,1.78,81.0,judo,0,0,0 -653685150,Uvis Kalnins,LAT,male,1993-10-24,1.92,85.0,aquatics,0,0,0 -409519783,Uwe Gensheimer,GER,male,1986-10-26,1.88,88.0,handball,0,0,1 -878263725,V Shem Goh,MAS,male,1989-05-20,1.8,70.0,badminton,0,1,0 -700082082,V. Sindhu Pusarla,IND,female,1995-07-05,1.79,65.0,badminton,0,1,0 -645060029,Vadim Anokhin,RUS,male,1992-01-02,1.92,91.0,fencing,0,0,0 -818449053,Vadim Kaptur,BLR,male,1987-07-12,1.74,69.0,aquatics,0,0,0 -609128454,Vadim Skorovarov,UZB,male,1996-08-04,1.77,67.0,shooting,0,0,0 -620954526,Vadzim Lialin,BLR,male,1982-11-15,2.0,100.0,rowing,0,0,0 -446977875,Vadzim Straltsou,BLR,male,1986-04-30,1.7,94.0,weightlifting,0,1,0 -723818458,Vagner Junior Souta,BRA,male,1991-02-10,1.87,84.0,canoe,0,0,0 -751743792,Vahan Mkhitaryan,ARM,male,1996-08-16,1.86,92.0,aquatics,0,0,0 -348559533,Vaida Zusinaite,LTU,female,1988-01-13,1.67,50.0,athletics,0,0,0 -655768386,Vaidas Kariniauskas,LTU,male,1993-11-16,1.97,,basketball,0,0,0 -180683514,Vaipava Nevo Ioane,SAM,male,1988-04-14,1.52,62.0,weightlifting,0,0,0 -976373633,Valdas Dopolskas,LTU,male,1992-04-30,1.83,69.0,athletics,0,0,0 -839835613,Valdivia,BRA,male,1994-10-04,,,football,0,0,0 -807344614,Valent Sinkovic,CRO,male,1988-08-02,1.87,93.0,rowing,1,0,0 -720426877,Valentin Belaud,FRA,male,1992-09-16,1.81,73.0,modern pentathlon,0,0,0 -142185153,Valentin Demyanenko,AZE,male,1983-10-23,1.93,93.0,canoe,0,1,0 -594179521,Valentin Onfroy,FRA,male,1993-11-16,1.95,84.0,rowing,0,0,0 -177896250,Valentin Porte,FRA,male,1990-09-07,1.9,92.0,handball,0,1,0 -371546325,Valentin Prades,FRA,male,1992-09-29,1.94,90.0,modern pentathlon,0,0,0 -908116241,Valentin Verga,NED,male,1989-10-07,1.8,87.0,hockey,0,0,0 -236754653,Valentina Ardean Elisei,ROU,female,1982-06-05,1.72,64.0,handball,0,0,0 -961400674,Valentina Gustin,CRO,female,1996-11-20,1.72,61.0,shooting,0,0,0 -332548817,Valentina Kibalnikova,UZB,female,1990-10-16,1.74,56.0,athletics,0,0,0 -943412077,Valentina Kogan,ARG,female,1980-02-19,1.73,71.0,handball,0,0,0 -480835097,Valentina Liashenko,GEO,female,1981-01-30,1.76,63.0,athletics,0,0,0 -285574820,Valentina Moscatt,ITA,female,1987-03-16,1.52,48.0,judo,0,0,0 -532724520,Valentina Rodini,ITA,female,1995-01-28,1.67,54.0,rowing,0,0,0 -352760379,Valentina Truppa,ITA,female,1986-03-18,1.6,55.0,equestrian,0,0,0 -833598839,Valentino Gallo,ITA,male,1985-07-17,1.92,95.0,aquatics,0,0,1 -125173784,Valentino Manfredonia,ITA,male,1989-09-29,1.8,,boxing,0,0,0 -809873385,Valentyna Myronchuk,UKR,female,1994-08-10,1.67,55.0,athletics,0,0,0 -44861563,Valeria Bianchi,ARG,female,1985-09-16,1.7,62.0,handball,0,0,0 -645890847,Valeria Straneo,ITA,female,1976-04-05,1.65,45.0,athletics,0,0,0 -876235051,Valerian Sauveplane,FRA,male,1980-07-25,1.8,77.0,shooting,0,0,0 -33162690,Valeriane Ayayi,FRA,female,1994-04-29,1.84,72.0,basketball,0,0,0 -107671084,Valerie Adams,NZL,female,1984-10-06,1.93,120.0,athletics,0,1,0 -457663173,Valerie Gruest Slowing,GUA,female,1999-03-14,1.72,63.0,aquatics,0,0,0 -10196334,Valerii Andriitsev,UKR,male,1987-02-27,1.81,97.0,wrestling,0,0,0 -977206167,Valeriia Gudym,UKR,female,1995-03-01,1.72,54.0,gymnastics,0,0,0 -975146982,Valeriia Koblova Zholobova,RUS,female,1992-10-09,1.64,58.0,wrestling,0,1,0 -704663853,Valeriu Duminica,MDA,male,1987-04-08,1.75,81.0,judo,0,0,0 -953876771,Valeriya Davidova,UZB,female,1997-12-15,1.68,48.0,gymnastics,0,0,0 -4089378,Valeriya Pischelina,BLR,female,1995-02-27,1.7,50.0,gymnastics,0,0,0 -898179597,Valmir Berisha,SWE,male,1996-06-06,1.82,80.0,football,0,0,0 -624026807,Vandana Katariya,IND,female,1992-04-15,1.59,48.0,hockey,0,0,0 -416201651,Vanessa Boslak,FRA,female,1982-06-11,1.7,57.0,athletics,0,0,0 -287472239,Vanessa Chefer,BRA,female,1990-03-05,1.78,68.0,athletics,0,0,0 -87607313,Vanessa Cozzi,BRA,female,1984-03-25,1.7,57.0,rowing,0,0,0 -321151857,Vanessa Ferrari,ITA,female,1990-11-10,1.45,45.0,gymnastics,0,0,0 -638923697,Vanessa Garcia,PUR,female,1984-07-18,1.73,57.0,aquatics,0,0,0 -648578848,Vanessa Grimberg,GER,female,1993-01-28,1.76,63.0,aquatics,0,0,0 -93934997,Vanessa Lunga,ZIM,female,1994-06-16,1.63,70.0,football,0,0,0 -931127637,Vanessa Rial,ESP,female,1982-03-01,1.72,68.0,rugby sevens,0,0,0 -205431593,Vanessa Zambotti,MEX,female,1982-03-04,1.75,125.0,judo,0,0,0 -952439055,Vania Neves,POR,female,1990-09-04,1.71,61.0,aquatics,0,0,0 -853711227,Varlam Liparteliani,GEO,male,1989-02-27,1.87,94.0,judo,0,1,0 -739791788,Varvara Filiou,GRE,female,1994-12-29,1.65,45.0,gymnastics,0,0,0 -499001095,Vasek Pospisil,CAN,male,1990-06-23,1.94,87.0,tennis,0,0,0 -488491698,Vashti Cunningham,USA,female,1998-01-18,1.86,55.0,athletics,0,0,0 -877590829,Vasil Kiryienka,BLR,male,1981-06-28,1.82,75.0,cycling,0,0,0 -937539913,Vasilii Egorov,RUS,male,1993-09-16,1.6,,boxing,0,0,0 -80619746,Vasilij Zbogar,SLO,male,1975-10-04,1.89,98.0,sailing,0,1,0 -374718100,Vasiliki Millousi,GRE,female,1984-05-04,1.57,45.0,gymnastics,0,0,0 -989508305,Vasilisa Marzaliuk,BLR,female,1987-06-23,1.8,77.0,wrestling,0,0,0 -484731780,Vasily Mosin,RUS,male,1972-05-09,1.83,70.0,shooting,0,0,0 -582848333,Vasily Pogreban,RUS,male,1989-06-26,1.81,91.0,canoe,0,0,0 -1152723,Vassiliki Vougiouka,GRE,female,1986-06-20,1.81,70.0,fencing,0,0,0 -235882258,Vassiliy Levit,KAZ,male,1988-02-24,1.85,,boxing,0,1,0 -759852624,Vatemo Ravouvou,FIJ,male,1990-07-31,1.71,81.0,rugby sevens,1,0,0 -623335062,Vazha Margvelashvili,GEO,male,1993-10-03,1.67,66.0,judo,0,0,0 -83660833,Veerle Dejaeghere,BEL,female,1973-08-01,1.59,46.0,athletics,0,0,0 -655301496,Vegard Stake Laengen,NOR,male,1989-02-07,,,cycling,0,0,0 -356549350,Veli-Matti Partanen,FIN,male,1991-10-28,1.81,63.0,athletics,0,0,0 -193269452,Velimir Stjepanovic,SRB,male,1993-08-07,1.82,74.0,aquatics,0,0,0 -37625294,Vendula Frintova,CZE,female,1983-09-04,1.68,50.0,triathlon,0,0,0 -967486655,Venilton Teixeira,BRA,male,1995-09-06,1.82,58.0,taekwondo,0,0,0 -714368005,Ventsislav Aydarski,BUL,male,1991-02-17,1.68,60.0,aquatics,0,0,0 -137700019,Venus Williams,USA,female,1980-06-17,1.86,74.0,tennis,0,1,0 -322708523,Vera Adrian,NAM,female,1993-10-28,1.68,57.0,cycling,0,0,0 -58043295,Vera Barbosa,POR,female,1989-01-13,1.68,58.0,athletics,0,0,0 -617188961,Vera Biriukova,RUS,female,1998-04-11,1.68,47.0,gymnastics,1,0,0 -867313353,Vera Vetrova,RUS,female,1986-08-21,1.8,73.0,volleyball,0,0,0 -735168991,Vera van Pol,NED,female,1993-12-17,1.57,54.0,gymnastics,0,0,0 -246757906,Veronica Bertolini,ITA,female,1995-10-19,1.67,48.0,gymnastics,0,0,0 -156804186,Veronica Campbell-Brown,JAM,female,1982-05-15,1.68,58.0,athletics,0,1,0 -92890058,Veronica Cepede Royg,PAR,female,1992-01-21,1.63,65.0,tennis,0,0,0 -436719037,Veronica Inglese,ITA,female,1990-11-22,1.6,43.0,athletics,0,0,0 -386589042,Veronica Kristiansen,NOR,female,1990-07-10,1.75,,handball,0,0,1 -19586649,Veronika Ivasiuk,UKR,female,1995-10-12,1.7,57.0,weightlifting,0,0,0 -362735511,Veronika Kozelska Fenclova,CZE,female,1981-01-21,1.71,70.0,sailing,0,0,0 -501784075,Veronika Macarol,SLO,female,1987-03-28,1.78,68.0,sailing,0,0,0 -464186121,Veronika Marchenko,UKR,female,1993-04-03,1.57,48.0,archery,0,0,0 -405423858,Veronika Popova,RUS,female,1991-01-20,1.82,68.0,aquatics,0,0,0 -497079300,Veronika Yesipovich,BLR,female,1996-04-10,1.66,48.0,aquatics,0,0,0 -580004143,Vesa Tornroos,FIN,male,1982-09-02,1.74,93.0,shooting,0,0,0 -520281849,Viacheslav Andrusenko,RUS,male,1992-05-14,1.94,85.0,aquatics,0,0,0 -140638063,Viacheslav Krasilnikov,RUS,male,1991-04-28,1.95,90.0,volleyball,0,0,0 -454698818,Vicenc Ruiz,ESP,male,1991-10-30,1.81,70.0,hockey,0,0,0 -721846159,Vicente Hernandez,ESP,male,1991-04-20,1.81,74.0,triathlon,0,0,0 -885291469,Vicky Holland,GBR,female,1986-01-12,1.68,56.0,triathlon,0,0,1 -690173780,Victoire Pauline L'or Ngon Ntame,CMR,female,1985-12-31,1.77,79.0,volleyball,0,0,0 -198342904,Victor Aravena,CHI,male,1990-02-05,1.66,55.0,athletics,0,0,0 -753873468,Victor Claver,ESP,male,1988-08-30,2.06,107.0,basketball,0,0,1 -616975176,Victor Cuesta,ARG,male,1998-11-19,1.64,65.0,football,0,0,0 -952852133,Victor Estrella Burgos,DOM,male,1980-08-02,1.73,65.0,tennis,0,0,0 -322853200,Victor Guzman,MEX,male,1995-02-03,1.73,72.0,football,0,0,0 -928628945,Victor Koretzky,FRA,male,1994-08-26,1.8,69.0,cycling,0,0,0 -798252460,Victor Lebedev,RUS,male,1988-03-10,1.64,57.0,wrestling,0,0,0 -536024925,Victor Martin Martin,ESP,male,1993-09-25,1.87,82.0,aquatics,0,0,0 -477856605,Victor Ortega,COL,male,1988-01-27,1.72,68.0,aquatics,0,0,0 -706996244,Victor Penalber,BRA,male,1990-05-22,1.74,81.0,judo,0,0,0 -70687418,Victor Rodriguez,VEN,male,1995-03-27,1.67,,boxing,0,0,0 -400723583,Victor Scvortov,UAE,male,1988-03-30,1.73,73.0,judo,0,0,0 -810144612,Victoria Chamorro,BRA,female,1996-07-10,1.76,78.0,aquatics,0,0,0 -718592963,Victoria Crivelli,ARG,female,1990-09-30,1.76,65.0,handball,0,0,0 -563090035,Victoria Esson,NZL,female,1991-03-06,1.74,66.0,football,0,0,0 -873800996,Victoria Folayan,USA,female,1985-05-27,1.66,72.0,rugby sevens,0,0,0 -814941630,Victoria Jurczok,GER,female,1990-03-25,1.61,56.0,sailing,0,0,0 -461914927,Victoria Kaminskaya,POR,female,1995-10-07,1.64,52.0,aquatics,0,0,0 -904905925,Victoria Lovelady,BRA,female,1986-11-29,1.62,48.0,golf,0,0,0 -665731338,Victoria Max-Theurer,AUT,female,1985-10-24,1.68,58.0,equestrian,0,0,0 -98600250,Victoria Mitchell,AUS,female,1982-04-25,1.64,47.0,athletics,0,0,0 -478490073,Victoria Thornley,GBR,female,1987-11-30,1.73,76.0,rowing,0,1,0 -42693483,Victoria Travascio,ARG,female,1988-07-14,1.61,59.0,sailing,0,0,0 -360949513,Victoria Zhilinskayte,RUS,female,1989-03-06,1.88,80.0,handball,1,0,0 -870095817,Victoria Zuloaga,ARG,female,1988-02-14,1.75,70.0,hockey,0,0,0 -142988798,Vid Hidvegi,HUN,male,1986-08-23,1.7,60.0,gymnastics,0,0,0 -842228874,Vid Kavticnik,SLO,male,1984-05-24,1.91,90.0,handball,0,0,0 -630821194,Vid Poteko,SLO,male,1991-04-05,1.94,103.0,handball,0,0,0 -127732051,Vien Nguyen Thi Anh,VIE,female,1996-11-09,1.72,60.0,aquatics,0,0,0 -827760060,Vigen Christensen,DEN,male,1994-08-15,1.82,77.0,football,0,0,0 -233722724,Vijona Kryeziu,KOS,female,1997-10-08,1.67,51.0,athletics,0,0,0 -197455500,Vikas Dahiya,IND,male,1995-05-08,1.8,69.0,hockey,0,0,0 -221050487,Vikas Gowda,IND,male,1983-07-05,2.05,135.0,athletics,0,0,0 -545176784,Viktar Staselovich,BLR,male,1994-05-28,1.88,83.0,aquatics,0,0,0 -940975705,Viktor Axelsen,DEN,male,1994-01-04,1.94,88.0,badminton,0,0,1 -970603995,Viktor Bromer,DEN,male,1993-04-20,1.94,87.0,aquatics,0,0,0 -194536089,Viktor Lorincz,HUN,male,1990-04-28,1.76,89.0,wrestling,0,0,0 -250896019,Viktor Minibaev,RUS,male,1991-07-18,1.73,65.0,aquatics,0,0,0 -494951044,Viktor Nagy,HUN,male,1984-07-24,1.98,96.0,aquatics,0,0,0 -640015435,Viktor Nemes,SRB,male,1993-07-21,1.7,75.0,wrestling,0,0,0 -602955950,Viktor Ruban,UKR,male,1981-05-24,1.78,70.0,archery,0,0,0 -547888117,Viktor Teply,CZE,male,1990-10-19,1.83,82.0,sailing,0,0,0 -336471664,Viktor Troicki,SRB,male,1986-02-10,1.9,85.0,tennis,0,0,0 -603907916,Viktoria Chaika,BLR,female,1980-12-26,1.64,50.0,shooting,0,0,0 -656515082,Viktoria Egri,HUN,female,1998-01-18,1.68,59.0,shooting,0,0,0 -166768587,Viktoria Madarasz,HUN,female,1985-05-12,1.58,44.0,athletics,0,0,0 -409487161,Viktoria Pavlovich,BLR,female,1978-05-08,1.75,60.0,table tennis,0,0,0 -636310483,Viktoria Schwarz,AUT,female,1985-07-02,1.73,64.0,canoe,0,0,0 -120044426,Viktoria Zeynep Gunes,TUR,female,1998-06-19,1.85,66.0,aquatics,0,0,0 -797742247,Viktoriia Andreeva,RUS,female,1992-06-21,1.9,74.0,aquatics,0,0,0 -441538649,Viktoriia Kalinina,RUS,female,1988-12-08,1.83,74.0,handball,1,0,0 -535803587,Viktoriia Poliudina,KGZ,female,1989-06-29,1.65,55.0,athletics,0,0,0 -684932486,Viktoriia Turks,UKR,female,1987-10-20,1.78,78.0,judo,0,0,0 -485757978,Viktoriia Us,UKR,female,1993-04-29,1.67,63.0,canoe,0,0,0 -444006582,Viktoriya Tkachuk,UKR,female,1994-11-08,1.79,67.0,athletics,0,0,0 -517107497,Viktoriya Zyabkina,KAZ,female,1992-09-04,1.74,62.0,athletics,0,0,0 -209908723,Viliame Mata,FIJ,male,1991-10-22,1.96,106.0,rugby sevens,1,0,0 -418792764,Villo Kormos,HUN,female,1988-08-02,1.7,62.0,aquatics,0,0,0 -3169233,Vilma Pegado Nenganga,ANG,female,1996-09-12,1.7,59.0,handball,0,0,0 -45735715,Vilmarie Mojica,PUR,female,1985-08-13,1.8,63.0,volleyball,0,0,0 -537474477,Vincent Anstett,FRA,male,1982-07-26,1.78,78.0,fencing,0,0,0 -926029117,Vincent Breet,RSA,male,1993-04-26,1.95,92.0,rowing,0,0,0 -932426895,Vincent Farkas,SVK,male,1993-01-13,1.93,90.0,canoe,0,0,0 -509765681,Vincent Gerard,FRA,male,1986-12-16,1.89,100.0,handball,0,1,0 -403479855,Vincent Hancock,USA,male,1989-03-19,1.73,79.0,shooting,0,0,0 -925594598,Vincent Inigo,FRA,male,1983-02-10,1.73,80.0,rugby sevens,0,0,0 -833794513,Vincent Luis,FRA,male,1989-06-27,1.77,65.0,triathlon,0,0,0 -646986835,Vincent Riendeau,CAN,male,1996-12-13,1.78,68.0,aquatics,0,0,0 -825166782,Vincent Vanasch,BEL,male,1987-12-21,1.8,78.0,hockey,0,1,0 -96494298,Vincent van der Want,NED,male,1985-10-21,1.98,90.0,rowing,0,0,0 -974436408,Vincenzo Capelli,ITA,male,1988-10-26,1.94,95.0,rowing,0,0,0 -983925141,Vincenzo Mangiacapre,ITA,male,1989-01-17,1.7,,boxing,0,0,0 -242715735,Vincenzo Nibali,ITA,male,1984-11-14,1.8,60.0,cycling,0,0,0 -969140836,Vinesh Vinesh,IND,female,1994-08-25,1.65,56.0,wrestling,0,0,0 -723726654,Viniana Riwai,FIJ,female,1991-06-06,1.65,70.0,rugby sevens,0,0,0 -253097119,Vinicius Antonelli,BRA,male,1990-03-01,1.83,82.0,aquatics,0,0,0 -29581250,Vinicius Teixeira,BRA,male,1988-04-03,1.88,110.0,handball,0,0,0 -989120045,Violah Cheptoo Lagat,KEN,female,1989-03-01,1.65,,athletics,0,0,0 -428647770,Violetta Kolobova,RUS,female,1991-07-27,1.76,64.0,fencing,0,0,1 -680801774,Virginia Bardach Martin,ARG,female,1992-04-03,1.74,57.0,aquatics,0,0,0 -569654952,Virginia Thrasher,USA,female,1997-02-28,1.55,54.0,shooting,1,0,0 -756374787,Virginie Cueff,FRA,female,1988-06-18,1.7,63.0,cycling,0,0,0 -3602282,Virimi Vakatawa,FRA,male,1992-05-01,1.85,87.0,rugby sevens,0,0,0 -424311527,Visiline Jepkesho,KEN,female,1989-12-30,1.6,43.0,athletics,0,0,0 -930876031,Vita Heine,NOR,female,1984-11-21,,,cycling,0,0,0 -955304524,Vitali Bubnovich,BLR,male,1974-11-12,1.69,70.0,shooting,0,0,0 -94067692,Vitalii Butrym,UKR,male,1991-01-10,1.8,75.0,athletics,0,0,0 -872401203,Vitalina Batsarashkina,RUS,female,1996-10-01,1.62,60.0,shooting,0,1,0 -628786964,Vitaliy Khudyakov,KAZ,male,1994-08-07,1.86,79.0,aquatics,0,0,0 -806574554,Vitaly Dunaytsev,RUS,male,1992-04-12,1.74,,boxing,0,0,1 -310488544,Vitaly Fokeev,RUS,male,1974-02-15,1.8,45.0,shooting,0,0,0 -819853942,Vitezslav Gebas,CZE,male,1984-03-24,1.79,75.0,canoe,0,0,0 -87145914,Vitezslav Vesely,CZE,male,1983-02-27,1.86,93.0,athletics,0,0,0 -990500234,Vitiny Hemthon,CAM,female,1993-10-07,1.63,50.0,aquatics,0,0,0 -411101006,Vitor Benite,BRA,male,1990-02-20,1.9,88.0,basketball,0,0,0 -987131879,Vitor Hugo dos Santos,BRA,male,1996-02-01,1.85,74.0,athletics,0,0,0 -623036229,Vitoria Cristina Rosa,BRA,female,1996-01-12,1.7,60.0,athletics,0,0,0 -506125969,Vittorio Bissaro,ITA,male,1987-06-01,1.83,72.0,sailing,0,0,0 -239639221,Vivian Jepkemoi Cheruiyot,KEN,female,1983-09-11,1.54,40.0,athletics,1,1,0 -527372670,Vivian Kah Mun Hoo,MAS,female,1990-03-19,1.66,56.0,badminton,0,0,0 -563216361,Viviana Chavez,ARG,female,1987-05-28,1.64,52.0,athletics,0,0,0 -110185191,Viviane Bahia,BRA,female,1994-02-14,1.76,67.0,aquatics,0,0,0 -696988201,Vjekoslav Paskovic,MNE,male,1985-03-23,1.8,86.0,aquatics,0,0,0 -732110114,Vlad-Dragos Aicoboae,ROU,male,1993-10-10,1.97,91.0,rowing,0,0,0 -843584108,Vlada Chigireva,RUS,female,1994-12-18,1.62,48.0,aquatics,1,0,0 -156876267,Vladimer Khinchegashvili,GEO,male,1991-04-18,1.7,57.0,wrestling,1,0,0 -635923594,Vladimir Gontcharov,RUS,male,1977-05-04,1.68,58.0,shooting,0,0,0 -878150693,Vladimir Isakov,RUS,male,1970-02-28,1.78,83.0,shooting,0,0,0 -407568391,Vladimir Issachenko,KAZ,male,1982-12-27,1.95,90.0,shooting,0,0,0 -431379852,Vladimir Ivanov,RUS,male,1987-07-03,1.98,93.0,badminton,0,0,0 -481376047,Vladimir Letnicov,MDA,male,1981-10-07,1.78,70.0,athletics,0,0,0 -557934502,Vladimir Malkov,RUS,male,1986-04-09,1.88,79.0,badminton,0,0,0 -229367719,Vladimir Margaryan,ARM,male,1991-03-08,1.72,,boxing,0,0,0 -592631027,Vladimir Maslennikov,RUS,male,1994-08-17,1.71,73.0,shooting,0,0,1 -108548232,Vladimir Morozov,RUS,male,1992-06-16,,,aquatics,0,0,0 -610704045,Vladimir Nikitin,RUS,male,1990-03-25,1.65,,boxing,0,0,1 -53064858,Vladimir Samsonov,BLR,male,1976-04-17,1.89,83.0,table tennis,0,0,0 -559441315,Vladimir Savanovic,SRB,male,1985-06-12,1.8,70.0,athletics,0,0,0 -54519941,Vladimir Stimac,SRB,male,1987-08-25,2.11,112.0,basketball,0,1,0 -795903491,Vladimir Torubarov,SRB,male,1993-03-22,1.91,94.0,canoe,0,0,0 -784092954,Vladimir Vladimirov Dubov,BUL,male,1988-02-20,1.56,64.0,wrestling,0,0,0 -230293143,Vladislav Mustafin,UZB,male,1995-09-26,1.81,78.0,aquatics,0,0,0 -889300340,Vladislav Ryabcev,RUS,male,1987-12-13,1.96,96.0,rowing,0,0,0 -207226972,Vladislav Yakovlev,KAZ,male,1993-01-01,1.88,85.0,rowing,0,0,0 -316731530,Vladlena Bobrovnikova,RUS,female,1987-10-24,1.8,72.0,handball,1,0,0 -122222,Vladyslav Hryko,UKR,male,1997-01-25,1.69,57.0,gymnastics,0,0,0 -771388004,Vlasios Maras,GRE,male,1983-03-31,1.6,52.0,gymnastics,0,0,0 -854069870,Volha Khudzenka,BLR,female,1992-05-12,1.78,78.0,canoe,0,0,1 -559528855,Volha Mazuronak,BLR,female,1989-04-14,1.65,49.0,athletics,0,0,0 -443487207,Volha Sudarava,BLR,female,1984-02-22,1.76,61.0,athletics,0,0,0 -365006989,Volha Ziuzkova,BLR,female,1983-06-14,1.71,69.0,basketball,0,0,0 -109518008,Volodymyr Hoza,UKR,male,1996-04-15,1.83,94.0,weightlifting,0,0,0 -204414092,Volodymyr Matviichuk,UKR,male,1982-12-29,1.71,,boxing,0,0,0 -826347697,Vsevolod Zanko,RUS,male,1995-07-30,1.9,85.0,aquatics,0,0,0 -855823071,Vyron Kokkalanis,GRE,male,1985-08-19,1.86,75.0,sailing,0,0,0 -32220093,Wadha Al Balushi,OMA,female,1989-11-30,1.6,75.0,shooting,0,0,0 -751514676,Wael Jallouz,TUN,male,1991-05-03,1.97,105.0,handball,0,0,0 -754088322,Wagner Domingos,BRA,male,1983-03-26,1.87,100.0,athletics,0,0,0 -539224149,Waheed Abdulridha Waheed Karaawi,IRQ,male,1983-05-22,1.78,,boxing,0,0,0 -620093926,Wai Sze Lee,HKG,female,1987-05-12,1.65,62.0,cycling,0,0,0 -419317871,Walace,BRA,male,1995-04-04,1.88,75.0,football,1,0,0 -929418601,Walid Bidani,ALG,male,1994-06-11,1.85,123.0,weightlifting,0,0,0 -422425972,Walid Mohamed,EGY,male,1993-08-22,1.67,,boxing,0,0,0 -194921763,Walide Khyar,FRA,male,1995-06-09,1.65,60.0,judo,0,0,0 -344970215,Wallace de Souza,BRA,male,1987-06-26,1.98,87.0,volleyball,1,0,0 -202452253,Walton Eller,USA,male,1982-01-06,1.88,81.0,shooting,0,0,0 -788654634,Wan Ho Son,KOR,male,1988-05-17,1.76,70.0,badminton,0,0,0 -850200304,Wander Mateo,DOM,male,1989-12-24,1.73,66.0,judo,0,0,0 -268487166,Wannes van Laer,BEL,male,1985-03-05,1.81,81.0,sailing,0,0,0 -187564963,Warren Barguil,FRA,male,1991-10-28,1.84,62.0,cycling,0,0,0 -781765976,Warren Potent,AUS,male,1962-04-07,1.77,73.0,shooting,0,0,0 -258919182,Wataru Endo,JPN,male,1993-02-09,1.78,75.0,football,0,0,0 -495782479,Wataru Yazawa,JPN,male,1991-07-02,1.77,64.0,athletics,0,0,0 -190206268,Wayde van Niekerk,RSA,male,1992-07-15,1.83,70.0,athletics,1,0,0 -437812263,Wayne Snyman,RSA,male,1985-03-08,1.77,65.0,athletics,0,0,0 -686326172,Wee Kiong Tan,MAS,male,1989-05-21,1.77,77.0,badminton,0,1,0 -59547454,Wei Deng,CHN,female,1993-02-14,1.59,62.0,weightlifting,1,0,0 -843515403,Wei Hong,CHN,male,1989-10-04,1.92,86.0,badminton,0,0,0 -739056222,Wei Jin,CHN,male,1987-02-26,1.83,70.0,rowing,0,0,0 -450932930,Wei Liu,CHN,male,1987-11-27,1.75,,boxing,0,0,0 -358145132,Wei Pang,CHN,male,1986-07-19,1.78,77.0,shooting,0,0,1 -520932256,Wei Sun,CHN,male,1992-10-27,1.93,69.0,fencing,0,0,0 -416880116,Wei Wang,CHN,male,1988-07-07,1.8,70.0,sailing,0,0,0 -253018225,Wei Yu,CHN,male,1987-09-11,1.8,55.0,athletics,0,0,0 -434190912,Wei-Ling Chen,TPE,female,1982-01-04,1.49,47.0,weightlifting,0,0,0 -711688611,Wei-Ting Liu,TPE,male,1995-01-06,1.96,81.0,taekwondo,0,0,0 -42043973,Weiwei Zhang,CHN,female,1990-10-07,1.82,66.0,aquatics,0,0,0 -254471828,Weiwei Zhu,CHN,female,1990-05-22,1.8,70.0,rowing,0,0,0 -114920742,Welisson Rosa da Silva,BRA,male,1983-11-22,1.6,85.0,weightlifting,0,0,0 -676724984,Welson Sim,MAS,male,1997-03-29,1.81,70.0,aquatics,0,0,0 -682325171,Wen Lu,CHN,female,1990-02-26,1.88,78.0,basketball,0,0,0 -272832003,Wen-Ling Chen,TPE,female,1994-08-16,1.75,69.0,wrestling,0,0,0 -447697493,Wen-Tang Lin,TPE,male,1974-06-28,1.74,77.0,golf,0,0,0 -74774569,Wenda Nel,RSA,female,1988-07-30,1.65,57.0,athletics,0,0,0 -465452582,Wendie Renard,FRA,female,1990-07-20,1.87,70.0,football,0,0,0 -406064567,Wendy Cornejo,BOL,female,1993-01-07,1.62,54.0,athletics,0,0,0 -628804962,Wenjun Guo,CHN,female,1984-06-22,1.68,60.0,shooting,0,0,0 -992307110,Wenjun Ren,CHN,female,1992-01-15,1.75,67.0,canoe,0,0,0 -566882529,Wenjun Xie,CHN,male,1990-07-11,1.9,87.0,athletics,0,0,0 -111882527,Wenna He,CHN,female,1989-01-19,1.6,50.0,gymnastics,0,0,0 -886760487,Wenxiu Zhang,CHN,female,1986-03-22,1.83,105.0,athletics,0,1,0 -526167499,Wenyan Sun,CHN,female,1989-12-27,1.7,58.0,aquatics,0,2,0 -71120079,Wenyi Huang,CHN,female,1991-03-06,1.78,63.0,rowing,0,0,1 -466231516,Werner Kok,RSA,male,1993-01-17,1.8,91.0,rugby sevens,0,0,1 -487398764,Weronika Deresz,POL,female,1985-09-05,1.7,57.0,rowing,0,0,0 -530905134,Wesley Korir,KEN,male,1982-11-15,1.77,54.0,athletics,0,0,0 -934575114,Wesley Roberts,COK,male,1997-06-24,1.88,74.0,aquatics,0,0,0 -539265480,Wesley Vazquez,PUR,male,1994-03-27,1.92,77.0,athletics,0,0,0 -455850470,Weverton,BRA,male,1987-12-13,1.86,75.0,football,1,0,0 -81682988,Whitney Ashley,USA,female,1989-02-18,1.76,90.0,athletics,0,0,0 -146065119,Whitney Engen,USA,female,1987-11-28,1.72,56.0,football,0,0,0 -916383501,Wiam Dislam,MAR,female,1987-10-22,1.8,69.0,taekwondo,0,0,0 -674266190,Wianka van Dorp,NED,female,1987-12-01,1.77,72.0,rowing,0,0,0 -30448632,Wiktor Chabel,POL,male,1985-11-23,1.97,93.0,rowing,0,0,0 -973792476,Wilfried Bingangoye,GAB,male,1985-03-25,1.72,80.0,athletics,0,0,0 -637431753,Wilhem Belocian,FRA,male,1995-06-22,1.78,78.0,athletics,0,0,0 -667133584,Will Brown,USA,male,1991-12-31,1.71,61.0,shooting,0,0,0 -745203052,Will Claye,USA,male,1991-06-13,1.81,72.0,athletics,0,1,0 -202043393,Will Crothers,CAN,male,1987-06-14,1.95,95.0,rowing,0,0,0 -212657714,Will Dean,CAN,male,1987-06-10,1.95,95.0,rowing,0,0,0 -971499315,Will Fletcher,GBR,male,1989-12-24,1.86,73.0,rowing,0,0,0 -878681107,Will Godward,AUS,male,1984-04-15,1.89,95.0,shooting,0,0,0 -281145945,Will Ryan,AUS,male,1988-12-23,1.93,75.0,sailing,0,1,0 -323245205,Willem Coertzen,RSA,male,1982-12-30,1.86,79.0,athletics,0,0,0 -73209628,Willem van Schuerbeeck,BEL,male,1984-10-24,1.79,60.0,athletics,0,0,0 -860282405,Willemijn Bos,NED,female,1988-05-02,1.81,69.0,hockey,0,1,0 -550290516,William,BRA,male,1995-04-03,1.71,65.0,football,1,0,0 -624517317,William Arjona,BRA,male,1979-07-31,1.85,78.0,volleyball,1,0,0 -151807374,William Chetcuti,MLT,male,1985-01-07,1.8,93.0,shooting,0,0,0 -63879528,William Collazo,CUB,male,1986-08-31,1.72,71.0,athletics,0,0,0 -213332524,William Ekong,NGR,male,1993-09-01,1.75,,football,0,0,1 -410962720,William Fox-Pitt,GBR,male,1969-01-02,1.96,80.0,equestrian,0,0,0 -974426000,William Lockwood,AUS,male,1988-05-13,1.91,88.0,rowing,0,1,0 -177039593,William Meynard,FRA,male,1987-07-11,1.92,85.0,aquatics,0,1,0 -150307137,William Reid Priddy,USA,male,1977-10-01,1.94,89.0,volleyball,0,0,1 -886806565,William Satch,GBR,male,1989-06-09,1.98,100.0,rowing,1,0,0 -770119639,William Tesillo,COL,male,1990-02-02,1.86,76.0,football,0,0,0 -925824275,Willian Giaretton,BRA,male,1990-09-26,1.93,73.0,rowing,0,0,0 -1567734,Willie Ambaka,KEN,male,1990-05-14,1.93,100.0,rugby sevens,0,0,0 -879180304,Willy Hernangomez,ESP,male,1994-05-27,2.1,115.0,basketball,0,0,1 -580584287,Wilma Murto,FIN,female,1998-06-11,1.81,68.0,athletics,0,0,0 -509216615,Wilmar Barrios,COL,male,1993-10-16,1.79,74.0,football,0,0,0 -732552796,Wim Stroetinga,NED,male,1985-05-23,1.76,70.0,cycling,0,0,0 -2681418,Windi Graterol,VEN,male,1986-09-10,2.05,110.0,basketball,0,0,0 -630860281,Winnie Nanyondo,UGA,female,1993-08-23,,,athletics,0,0,0 -266764491,Winny Chebet,KEN,female,1990-12-20,1.52,48.0,athletics,0,0,0 -425181289,Winston George,GUY,male,1987-05-19,1.67,66.0,athletics,0,0,0 -404382792,Winston Hill,FIJ,male,1993-09-17,,,boxing,0,0,0 -923747031,Wirimai Juwawo,ZIM,male,1980-11-07,1.72,63.0,athletics,0,0,0 -446464349,Wisam Nawar,EGY,male,1990-02-14,1.85,111.0,handball,0,0,0 -680507143,Wissem Hosni,TUN,male,1985-03-08,1.75,57.0,athletics,0,0,0 -618949367,Witoon Mingmoon,THA,male,1996-02-10,1.57,56.0,weightlifting,0,0,0 -640840803,Witthaya Thamwong,THA,male,1987-09-18,1.8,82.0,archery,0,0,0 -984494121,Wojciech Nowicki,POL,male,1989-02-22,1.96,128.0,athletics,0,0,1 -539569636,Wojciech Theiner,POL,male,1986-06-25,1.89,84.0,athletics,0,0,0 -595198365,Wojciech Wojdak,POL,male,1996-03-13,1.86,84.0,aquatics,0,0,0 -76593466,Won Chol Yun,PRK,male,1989-07-03,1.63,59.0,wrestling,0,0,0 -457937949,Won Jin Kim,KOR,male,1992-05-01,1.68,60.0,judo,0,0,0 -663385639,Wonchul Yoo,KOR,male,1984-07-20,1.65,59.0,gymnastics,0,0,0 -69693053,Woojin Kim,KOR,male,1992-06-20,1.8,95.0,archery,1,0,0 -651375784,Woongtae Jun,KOR,male,1995-08-01,1.75,66.0,modern pentathlon,0,0,0 -474296927,Wout Poels,NED,male,1987-10-01,1.86,67.0,cycling,0,0,0 -640901977,Wuileixis De Jesus Rivas Espinoza,VEN,male,1990-08-27,1.74,,wrestling,0,0,0 -851340643,Wuta Waco Bige Dombaxi,ANG,female,1986-04-05,1.8,92.0,handball,0,0,0 -332172731,Wuttichai Masuk,THA,male,1990-03-16,1.75,,boxing,0,0,0 -830874507,Xan de Waard,NED,female,1995-11-08,1.63,55.0,hockey,0,1,0 -283897896,Xantal Gine,ESP,female,1992-09-23,1.68,62.0,hockey,0,0,0 -618448909,Xavier Lleonart,ESP,male,1990-06-22,1.8,70.0,hockey,0,0,0 -9403852,Xavier Vela Maggi,BRA,male,1989-08-07,1.78,71.0,rowing,0,0,0 -175218887,Xaysa Anousone,LAO,male,1994-03-20,1.8,65.0,athletics,0,0,0 -821538769,Xenia Krizsan,HUN,female,1993-01-13,1.72,64.0,athletics,0,0,0 -933749251,Xia Ding,CHN,female,1990-01-13,1.8,67.0,volleyball,1,0,0 -304876700,Xia Lian Ni,LUX,female,1963-07-04,1.57,58.0,table tennis,0,0,0 -944403692,Xiang Li,CHN,male,1993-07-02,1.91,85.0,aquatics,0,0,0 -427125476,Xiang Liu,CHN,female,1996-09-01,1.8,66.0,aquatics,0,0,0 -371898771,Xiang Wei Jasmine Ser,SIN,female,1990-09-24,1.55,47.0,shooting,0,0,0 -591962828,Xiangyu Gong,CHN,female,1997-04-21,1.86,72.0,volleyball,1,0,0 -591353538,Xiao Gu,CHN,female,1993-03-18,1.74,60.0,aquatics,0,1,0 -695366318,Xiao Juan Diao,HKG,female,1986-03-15,1.7,59.0,cycling,0,0,0 -46661716,Xiao Sun,CHN,female,1992-06-13,1.67,57.0,hockey,0,0,0 -476593351,Xiao Yu Liang,SIN,female,1996-01-11,1.63,55.0,badminton,0,0,0 -470006570,Xiaochuan Zhai,CHN,male,1993-03-24,2.04,100.0,basketball,0,0,0 -306770484,Xiaohan Mei,CHN,female,1996-11-11,1.8,100.0,aquatics,0,0,0 -247133219,Xiaohong Li,CHN,female,1995-01-08,1.62,48.0,athletics,0,0,0 -161425340,Xiaojia Chen,CHN,female,1988-04-02,1.82,68.0,basketball,0,0,0 -603812058,Xiaojing Liang,CHN,female,1997-04-07,1.56,48.0,athletics,0,0,0 -780086362,Xiaojun Lyu,CHN,male,1984-07-27,1.72,77.0,weightlifting,0,1,0 -756419344,Xiaoli Wang,CHN,female,1982-05-12,1.69,70.0,sailing,0,0,0 -562938446,Xiaolin Bi,CHN,female,1989-09-18,1.76,62.0,football,0,0,0 -713954597,Xiaoling Luo,CHN,female,1988-09-20,1.7,68.0,cycling,0,0,0 -750468323,Xiaolong Xu,CHN,male,1992-12-20,1.85,70.0,athletics,0,0,0 -317190997,Xiaolu Li,CHN,female,1992-11-07,1.67,51.0,aquatics,0,1,0 -195305057,Xiaona Shan,GER,female,1983-01-18,1.65,54.0,table tennis,0,1,0 -70171405,Xiaonan Zhang,CHN,female,1992-07-21,1.68,58.0,modern pentathlon,0,0,0 -620187619,Xiaotong Liu,CHN,female,1990-02-16,1.88,70.0,volleyball,1,0,0 -363955533,Xiaoxia Li,CHN,female,1988-01-15,1.74,65.0,table tennis,1,1,0 -53876451,Xiaoxu Ma,CHN,female,1988-06-05,1.72,73.0,football,0,0,0 -870464131,Xiaoxue Zhang,CHN,female,1992-12-13,1.62,51.0,hockey,0,0,0 -518352291,Xin Xin,CHN,female,1996-11-06,1.76,61.0,aquatics,0,0,0 -79448712,Xin Xu,CHN,male,1990-01-08,1.8,67.0,table tennis,1,0,0 -138582519,Xin Yan,AUS,male,1988-12-09,1.8,75.0,table tennis,0,0,0 -935030404,Xing Han,CGO,female,1989-11-08,1.65,57.0,table tennis,0,0,0 -402209729,Xinglong Gao,CHN,male,1994-03-12,1.82,63.0,athletics,0,0,0 -140331302,Xingqiang Tang,CHN,male,1995-08-11,1.7,61.0,athletics,0,0,0 -284651542,Xinping Liang,CHN,female,1994-07-31,1.71,60.0,aquatics,0,1,0 -265059163,Xinyan Wang,CHN,female,1991-04-26,1.81,73.0,aquatics,0,0,0 -193062950,Xinyan Zhang,CHN,female,1994-02-09,1.7,55.0,athletics,0,0,0 -95255319,Xinyi Chen,CHN,female,1998-01-02,1.78,62.0,aquatics,0,0,0 -527379806,Xinyu Zhang,CHN,female,1997-03-09,1.66,60.0,aquatics,0,0,0 -83460072,Xinyue Su,CHN,female,1991-11-08,1.78,94.0,athletics,0,0,0 -429546103,Xinyue Yuan,CHN,female,1996-12-21,2.01,78.0,volleyball,1,0,0 -846423919,Xinyue Zhang,CHN,female,1993-05-05,1.77,73.0,rowing,0,0,0 -692957998,Xiuzhi Lu,CHN,female,1993-10-26,1.6,45.0,athletics,0,0,1 -305914002,Xiyu Lin,CHN,female,1996-02-25,1.71,65.0,golf,0,0,0 -285179001,Xoana Iacoi,ARG,female,1992-06-03,1.61,70.0,handball,0,0,0 -56252755,Xuan Vinh Hoang,VIE,male,1974-10-06,1.75,75.0,shooting,1,1,0 -124699891,Xue Li,FRA,female,1985-04-14,1.65,57.0,table tennis,0,0,0 -773136288,Xuechen Huang,CHN,female,1990-02-25,1.75,62.0,aquatics,0,2,0 -199638855,Xuechun Zhong,CHN,female,1994-01-18,1.66,55.0,wrestling,0,0,0 -597272613,Xueer Wang,CHN,female,1998-01-15,1.78,67.0,aquatics,0,0,0 -652008471,Xuerui Li,CHN,female,1991-01-24,1.75,65.0,badminton,0,0,0 -283158368,Xuesong Gu,CHN,male,1993-06-21,1.78,76.0,archery,0,0,0 -166545543,Xunzhao Cheng,CHN,male,1991-02-09,1.85,90.0,judo,0,0,1 -152863317,Ya Tan,CHN,male,1992-07-18,1.74,70.0,canoe,0,0,0 -872511641,Ya-Ting Tan,TPE,female,1993-11-07,1.58,53.0,archery,0,0,1 -338589899,Yaaqoub Alsaadi,UAE,male,1996-06-13,1.75,62.0,aquatics,0,0,0 -137239847,Yadinys Amaris,COL,female,1984-04-01,1.62,57.0,judo,0,0,0 -552083817,Yadira Silva,MEX,female,1985-12-24,1.59,55.0,table tennis,0,0,0 -438851517,Yadisleidis Pedroso,ITA,female,1987-01-28,1.7,50.0,athletics,0,0,0 -539240729,Yael Castiglione,ARG,female,1985-09-27,1.84,75.0,volleyball,0,0,0 -626583802,Yago Lange,ARG,male,1988-03-22,1.8,77.0,sailing,0,0,0 -786911278,Yaime Perez,CUB,female,1991-05-29,1.75,74.0,athletics,0,0,0 -420817403,Yajie Si,CHN,female,1998-12-04,1.64,57.0,aquatics,0,1,0 -267368627,Yajun Li,CHN,female,1993-04-27,1.51,53.0,weightlifting,0,0,0 -549751997,Yakov Toumarkin,ISR,male,1992-02-15,1.92,90.0,aquatics,0,0,0 -445656817,Yalennis Castillo,CUB,female,1986-05-21,1.74,78.0,judo,0,0,0 -294527962,Yali Jing,CHN,female,1989-05-25,1.76,63.0,cycling,0,0,0 -380260850,Yamil Alberto Peralta,ARG,male,1991-07-16,1.92,,boxing,0,0,0 -450541833,Yan Jiang,CHN,female,1989-01-10,1.78,70.0,rowing,0,0,0 -333015501,Yan Wang,CHN,female,1991-08-22,1.75,61.0,football,0,0,0 -44353519,Yan Wang,CHN,female,1999-10-30,1.4,33.0,gymnastics,0,0,1 -664863938,Yan Yee Ng,MAS,female,1993-07-11,1.55,51.0,aquatics,0,0,0 -76793158,Yana Alekseevna,AZE,female,1987-10-30,1.69,,boxing,0,0,0 -541557997,Yana Belomoina,UKR,female,1992-11-02,1.64,46.0,cycling,0,0,0 -223640307,Yana Egorian,RUS,female,1993-12-20,1.75,64.0,fencing,2,0,0 -243275636,Yana Kudryavtseva,RUS,female,1997-09-29,1.7,47.0,gymnastics,0,1,0 -43753188,Yana Pavlova,RUS,female,1996-01-06,1.56,51.0,gymnastics,0,0,0 -435033885,Yana Shcherban,RUS,female,1989-09-06,1.85,71.0,volleyball,0,0,0 -297532714,Yana Shemyakina,UKR,female,1986-01-05,1.68,60.0,fencing,0,0,0 -218946675,Yana Tie,HKG,female,1979-05-13,1.6,59.0,table tennis,0,0,0 -308918609,Yanan Sun,CHN,female,1992-09-15,1.61,51.0,wrestling,0,0,1 -63153273,Yancarlos Martinez,DOM,male,1992-07-08,1.71,60.0,athletics,0,0,0 -599927932,Yane Marcia Marques,BRA,female,1984-01-07,1.66,55.0,modern pentathlon,0,0,0 -919768617,Yanet Ursula Sovero Nino,PER,female,1983-05-02,1.63,58.0,wrestling,0,0,0 -167053501,Yanfei Shen,ESP,female,1979-12-24,1.65,65.0,table tennis,0,0,0 -293632748,Yang Chen,CHN,female,1991-07-10,1.8,97.0,athletics,0,0,0 -136270822,Yang Fan,CHN,male,1990-01-03,1.83,78.0,cycling,0,0,0 -760332947,Yang Gao,CHN,female,1993-03-01,1.78,105.0,athletics,0,0,0 -490068469,Yang Liu,CHN,male,1994-09-10,1.62,61.0,gymnastics,0,0,1 -99159206,Yang Lyu,CHN,female,1993-11-26,1.83,77.0,rowing,0,0,0 -349451420,Yang Peng,CHN,female,1992-01-17,1.63,59.0,hockey,0,0,0 -344496691,Yang Sun,CHN,male,1991-12-01,2.0,92.0,aquatics,1,1,0 -619307407,Yang Wang,SVK,male,1994-09-24,1.83,73.0,table tennis,0,0,0 -270107002,Yang Yu,CHN,female,1986-04-07,1.66,62.0,badminton,0,0,0 -188592965,Yanhan Ai,CHN,female,2002-02-07,1.68,54.0,aquatics,0,0,0 -801724577,Yanic Gentry Torfer,MEX,male,1991-02-20,1.84,82.0,sailing,0,0,0 -846532054,Yaniel Carrero,CUB,male,1995-08-17,1.74,74.0,athletics,0,0,0 -491775896,Yanina Wickmayer,BEL,female,1989-10-20,1.82,72.0,tennis,0,0,0 -528693937,Yanislav Gerchev,BUL,male,1989-10-04,1.7,60.0,judo,0,0,0 -273498776,Yaniuska Isabel Espinosa,VEN,female,1986-12-05,1.72,114.0,weightlifting,0,0,0 -871784511,Yaniuvis Lopez,CUB,female,1986-02-01,1.8,71.0,athletics,0,0,0 -413602471,Yanmei Xiang,CHN,female,1992-06-13,1.63,69.0,weightlifting,1,0,0 -982324748,Yann Candele,CAN,male,1971-03-11,1.73,82.0,equestrian,0,0,0 -943819642,Yann Siccardi,MON,male,1986-02-03,1.64,60.0,judo,0,0,0 -260382082,Yannick Agnel,FRA,male,1992-06-09,2.01,80.0,aquatics,0,0,0 -709856654,Yannick Borel,FRA,male,1988-11-05,1.97,100.0,fencing,1,0,0 -959595922,Yannick Brauchli,SUI,male,1988-07-30,1.73,63.0,sailing,0,0,0 -796628018,Yannick Kaeser,SUI,male,1992-07-03,1.86,81.0,aquatics,0,0,0 -190574076,Yannick Lefebvre,BEL,male,1988-11-19,1.81,79.0,sailing,0,0,0 -210648871,Yanyuhang Ding,CHN,male,1993-08-20,2.0,91.0,basketball,0,0,0 -876086077,Yarden Gerbi,ISR,female,1989-07-08,1.69,63.0,judo,0,0,1 -665930240,Yared Shegumo,POL,male,1983-01-10,1.78,62.0,athletics,0,0,0 -603462081,Yarimar Mercado Martinez,PUR,female,1995-03-12,1.79,48.0,shooting,0,0,0 -300599619,Yarimar Rosa,PUR,female,1988-06-20,1.78,62.0,volleyball,0,0,0 -943821512,Yarisley Silva,CUB,female,1987-06-01,1.61,61.0,athletics,0,0,0 -649661769,Yaroslava Bondarenko,RUS,female,1997-02-27,1.58,62.0,cycling,0,0,0 -836251639,Yaroslava Shvedova,KAZ,female,1987-09-12,1.8,70.0,tennis,0,0,0 -539142587,Yasemin Adar,TUR,female,1991-12-06,1.8,75.0,wrestling,0,0,0 -283024997,Yasemin Anagoz,TUR,female,1998-10-14,1.65,66.0,archery,0,0,0 -803264518,Yasemin Can,TUR,female,1996-12-11,1.66,49.0,athletics,0,0,0 -901257700,Yasha Gu,CHN,female,1990-11-28,1.65,60.0,football,0,0,0 -708840841,Yasmani Copello,TUR,male,1987-04-15,1.91,85.0,athletics,0,0,1 -205474844,Yasmany Daniel Lugo Cabrera,CUB,male,1990-01-24,1.9,98.0,wrestling,0,1,0 -124076094,Yasmin Kwadwo,GER,female,1990-11-09,1.7,65.0,athletics,0,0,0 -646361297,Yasmina Aziez,FRA,female,1991-01-23,1.72,52.0,taekwondo,0,0,0 -893193167,Yasnier Toledo,CUB,male,1989-09-15,1.75,,boxing,0,0,0 -557145585,Yassine Hethat,ALG,male,1991-08-30,1.75,65.0,athletics,0,0,0 -455207704,Yassine Trabelsi,TUN,male,1990-07-12,1.85,80.0,taekwondo,0,0,0 -931792230,Yasuhiro Koseki,JPN,male,1992-03-14,1.88,83.0,aquatics,0,0,0 -960225637,Yasunari Hirai,JPN,male,1990-04-02,1.75,75.0,aquatics,0,0,0 -842346625,Yating Sun,CHN,female,1988-02-24,1.8,76.0,aquatics,0,0,0 -81264500,Yauhen Tsurkin,BLR,male,1990-12-09,1.82,77.0,aquatics,0,0,0 -767771937,Yauheni Karaliou,BLR,male,1991-03-26,1.69,69.0,aquatics,0,0,0 -631259932,Yavuz Ilnam,TUR,male,1987-07-23,1.85,140.0,shooting,0,0,0 -371339083,Yawen Hou,CHN,female,1998-09-09,1.81,71.0,aquatics,0,0,0 -874979172,Yaxin Liu,CHN,female,1999-06-16,1.78,69.0,aquatics,0,0,0 -462092758,Yayoi Matsumoto,JPN,female,1990-03-08,1.68,65.0,aquatics,0,0,0 -91699110,Ye Na Chang,KOR,female,1989-12-13,1.72,61.0,badminton,0,0,0 -35665719,Ye Tun Naung,MYA,male,1983-05-26,1.75,60.0,shooting,0,0,0 -145504141,Ye Yang,CHN,female,1994-05-26,1.72,50.0,gymnastics,0,0,0 -6445762,Yehia Elderaa,EGY,male,1995-07-17,1.86,82.0,handball,0,0,0 -139859282,Yehualeye Beletew,ETH,female,1998-07-31,1.65,52.0,athletics,0,0,0 -166734609,Yeison Rivas,COL,male,1987-09-24,1.73,66.0,athletics,0,0,0 -628369292,Yeji Kim,KOR,female,1994-11-17,1.74,72.0,rowing,0,0,0 -680581412,Yekaterina Ektova,KAZ,female,1992-08-30,1.7,59.0,athletics,0,0,0 -892955705,Yekaterina Larionova,KAZ,female,1994-01-23,1.58,63.0,wrestling,0,0,1 -206089177,Yekaterina Nemich,KAZ,female,1995-01-03,1.69,47.0,aquatics,0,0,0 -247875436,Yekaterina Rudenko,KAZ,female,1994-10-16,1.8,69.0,aquatics,0,0,0 -953630497,Yekaterina Smirnova,KAZ,female,1988-05-21,1.65,63.0,canoe,0,0,0 -17150577,Yeldos Smetov,KAZ,male,1992-09-09,1.67,60.0,judo,0,1,0 -932118784,Yelena Leuchanka,BLR,female,1983-04-30,1.95,86.0,basketball,0,0,0 -805715080,Yelena Ryabova,TKM,female,1990-11-03,1.7,56.0,athletics,0,0,0 -485869325,Yelizaveta Korol,KAZ,female,1994-09-02,1.67,69.0,shooting,0,0,0 -53802020,Yelyzaveta Bryzgina,UKR,female,1989-11-28,1.73,63.0,athletics,0,0,0 -550672127,Yemane Haileselassie,ERI,male,1998-02-21,,,athletics,0,0,0 -252505900,Yemi Geoffrey Apithy,BEN,male,1989-04-05,1.92,96.0,fencing,0,0,0 -399306136,Yen-Hsun Lu,TPE,male,1983-08-14,1.8,83.0,tennis,0,0,0 -839200601,Yeon Jae Son,KOR,female,1994-05-28,1.65,45.0,gymnastics,0,0,0 -383061108,Yeon Ju Bae,KOR,female,1990-10-26,1.67,57.0,badminton,0,0,0 -699050231,Yeon Koung Kim,KOR,female,1988-02-26,1.92,73.0,volleyball,0,0,0 -769058232,Yeon Seong Yoo,KOR,male,1986-08-19,1.81,75.0,badminton,0,0,0 -664297422,Yeongeun Jeon,KOR,female,1988-05-24,1.58,43.0,athletics,0,0,0 -597746590,Yeongsin Nam,KOR,female,1990-08-27,1.75,82.0,handball,0,0,0 -765164830,Yerenman Salazar,VEN,male,1978-10-24,1.65,52.0,athletics,0,0,0 -617589431,Yerko Araya,CHI,male,1986-02-14,1.78,64.0,athletics,0,0,0 -185479822,Yeseida Carrillo,COL,female,1993-10-22,1.68,52.0,athletics,0,0,0 -5964702,Yesenia Miranda,ESA,female,1994-03-26,,,athletics,0,0,0 -640675211,Yessica Camilo Gonzalez,DOM,female,1993-02-23,1.68,73.0,archery,0,0,0 -124805111,Yessy Venisia Yosaputra,INA,female,1994-08-27,1.67,62.0,aquatics,0,0,0 -720063529,Yesui Bayar,MGL,female,2000-07-21,1.76,61.0,aquatics,0,0,0 -824906625,Yevgeniy Alexeyev,KAZ,male,1977-12-11,1.86,93.0,canoe,0,0,0 -81837062,Yevgeniy Labutov,KAZ,male,1984-11-17,1.94,120.0,athletics,0,0,0 -877812765,Yevgeniya Gomon,UKR,female,1995-03-25,1.74,55.0,gymnastics,0,0,0 -423607344,Yevhen Vynohradov,UKR,male,1984-04-30,1.95,105.0,athletics,0,0,0 -586074732,Ygor Coelho de Oliveira,BRA,male,1996-11-24,1.83,78.0,badminton,0,0,0 -130088138,Yi Chun Lin,TPE,female,1981-07-05,1.61,70.0,shooting,0,0,0 -923838612,Yi Mao,CHN,female,1999-09-16,1.51,35.0,gymnastics,0,0,1 -154566738,Yi Tang,CHN,female,1993-01-08,1.77,70.0,aquatics,0,0,0 -45723184,Yi-Hua Huang,TPE,female,1984-07-20,1.67,56.0,table tennis,0,0,0 -318947279,Yi-Ting Huang,TPE,female,1990-01-16,1.7,65.0,rowing,0,0,0 -657056905,Yidiel Contreras,ESP,male,1992-11-27,1.8,74.0,athletics,0,0,0 -666759438,Yiech Pur Biel,ROT,male,1995-01-01,1.78,62.0,athletics,0,0,0 -763147414,Yifan Xu,CHN,female,1988-08-08,1.65,60.0,tennis,0,0,0 -62526339,Yifei Cao,CHN,male,1988-05-20,1.75,75.0,shooting,0,0,0 -390260480,Yigal Kopinsky,SUR,male,1985-10-16,,,judo,0,0,0 -192425723,Yigrem Demelash,ETH,male,1994-01-26,1.67,48.0,athletics,0,0,0 -221613357,Yihan Wang,CHN,female,1988-01-18,1.78,65.0,badminton,0,0,0 -370970040,Yihan Zhou,SIN,female,1994-01-30,1.68,54.0,table tennis,0,0,0 -567715213,Yijun Feng,USA,male,1997-02-12,1.86,71.0,table tennis,0,0,0 -522417913,Yilin Fan,CHN,female,1999-11-11,1.48,37.0,gymnastics,0,0,1 -780210993,Yilin Zhou,CHN,female,1992-09-18,1.75,63.0,aquatics,0,0,0 -639260564,Ying Chen,CHN,female,1977-11-04,1.64,67.0,shooting,0,0,0 -421292121,Ying Han,GER,female,1983-04-29,1.7,60.0,table tennis,0,1,0 -911763971,Ying Li,CHN,female,1993-01-07,1.7,61.0,football,0,0,0 -51254244,Ying Lu,CHN,female,1989-01-22,1.75,65.0,aquatics,0,0,0 -9996220,Ying Luo,CHN,female,1991-01-11,1.64,62.0,badminton,0,0,0 -329937737,Ying Suet Tse,HKG,female,1991-11-09,1.66,66.0,badminton,0,0,0 -854775269,Yingnan Ma,CHN,female,1984-03-03,1.58,52.0,judo,0,0,0 -196292572,Yirisleydi Ford,CUB,female,1991-08-18,1.68,66.0,athletics,0,0,0 -102152415,Yisela Cuesta,COL,female,1991-09-27,1.66,59.0,football,0,0,0 -712061980,Yislena Hernandez,CUB,female,1990-03-13,1.67,57.0,rowing,0,0,0 -56600686,Yiwen Sun,CHN,female,1992-06-17,1.77,63.0,fencing,0,1,1 -413280688,Yixuan Hu,CHN,male,1994-10-23,1.85,83.0,aquatics,0,0,0 -904689732,Yoandry Iriarte Galvez,CUB,male,1986-05-05,1.77,79.0,fencing,0,0,0 -115955580,Yoandys Lescay,CUB,male,1994-01-05,1.81,77.0,athletics,0,0,0 -857109220,Yoann Kowal,FRA,male,1987-05-28,1.72,58.0,athletics,0,0,0 -540772965,Yodgoroy Mirzaeva,UZB,female,1996-04-22,1.6,,boxing,0,0,0 -607223536,Yoel Segundo Finol,VEN,male,1996-09-21,1.68,,boxing,0,0,1 -652136434,Yoelmis Hernandez Paumier,CUB,male,1986-04-25,1.68,84.0,weightlifting,0,0,0 -613058255,Yogeshwar Dutt,IND,male,1982-11-02,1.68,65.0,wrestling,0,0,0 -269473268,Yohan Blake,JAM,male,1989-12-26,1.8,80.0,athletics,1,0,0 -512633616,Yohann Diniz,FRA,male,1978-01-01,1.85,66.0,athletics,0,0,0 -266326638,Yoichi Itokazu,JPN,male,1991-05-24,1.6,62.0,weightlifting,0,0,0 -946096698,Yolande Bukasa,ROT,female,1987-09-08,1.7,70.0,judo,0,0,0 -336097063,Yolande Juliana Amana Guigolo,CMR,female,1997-09-15,1.84,78.0,volleyball,0,0,0 -101826251,Yolymar Pineda,VEN,female,1985-11-14,1.65,53.0,athletics,0,0,0 -237054888,Yon Soriano,DOM,male,1987-01-02,1.66,62.0,athletics,0,0,0 -437784364,Yona Knight-Wisdom,JAM,male,1995-05-12,1.88,87.0,aquatics,0,0,0 -822236313,Yonas Kinde,ROT,male,1980-05-07,1.72,57.0,athletics,0,0,0 -291959436,Yonathan Monsalve,VEN,male,1989-06-28,1.76,62.0,cycling,0,0,0 -281612078,Yonder Roman Garcia Alvarez,CUB,male,1993-02-26,1.83,78.0,volleyball,0,0,0 -358811033,Yong Dae Lee,KOR,male,1988-09-11,1.8,74.0,badminton,0,0,0 -608871682,Yong Gwang Kwon,PRK,male,1996-01-14,1.65,68.0,weightlifting,0,0,0 -6528240,Yong Hui Pak,PRK,female,1970-08-24,1.6,63.0,shooting,0,0,0 -798606388,Yong Suk Jo,PRK,female,1988-09-05,1.63,65.0,shooting,0,0,0 -144141011,Yongli Wei,CHN,female,1991-10-11,1.68,58.0,athletics,0,0,0 -194045564,Yongqing Lin,CHN,male,1992-12-24,1.9,85.0,aquatics,0,0,0 -368147232,Yongran Oh,KOR,female,1972-09-06,1.71,73.0,handball,0,0,0 -338890574,Yongshi Liu,CHN,female,1990-02-19,1.76,62.0,fencing,0,0,0 -970544941,Yongwoo Park,KOR,male,1993-09-10,1.86,80.0,football,0,0,0 -430969568,Yoo Na Bae,KOR,female,1989-11-30,1.82,66.0,volleyball,0,0,0 -366615764,Yoojin Hong,KOR,female,1989-02-21,1.66,56.0,hockey,0,0,0 -400985709,Yoosun Nam,KOR,female,1985-07-23,1.69,52.0,aquatics,0,0,0 -824249467,Yordan L. O'Farrill,CUB,male,1993-02-09,1.83,72.0,athletics,0,0,0 -860020616,Yordani Garcia,CUB,male,1988-11-21,1.95,84.0,athletics,0,0,0 -365796318,Yordanys Duranona,DMA,male,1988-06-16,1.85,83.0,athletics,0,0,0 -889022842,Yorgelis Rodriguez,CUB,female,1995-01-25,1.7,66.0,athletics,0,0,0 -693270892,Yosbany Veitia,CUB,male,1992-03-12,1.6,,boxing,0,0,0 -564568653,Yoshiaki Oiwa,JPN,male,1976-07-19,1.7,67.0,equestrian,0,0,0 -549187126,Yoshihide Kiryu,JPN,male,1995-12-15,1.75,69.0,athletics,0,1,0 -133419662,Yoshitaka Tokunaga,JPN,male,1992-04-10,1.85,100.0,rugby sevens,0,0,0 -435666182,Yoshitaku Nagasako,JPN,male,1993-09-16,1.72,70.0,cycling,0,0,0 -180574339,Yoshua Shing,VAN,male,1993-06-20,1.73,65.0,table tennis,0,0,0 -201354275,Yosiry Urrutia,COL,female,1986-06-26,1.76,65.0,athletics,0,0,0 -844481129,Yosra Dhieb,TUN,female,1995-08-31,1.78,120.0,weightlifting,0,0,0 -391193514,Yosuke Ideguchi,JPN,male,1996-08-23,1.71,69.0,football,0,0,0 -326797163,Yosuke Nakayama,JPN,male,1987-03-20,1.61,62.0,weightlifting,0,0,0 -922648062,Yosvani Gonzalez Nicolas,CUB,male,1988-04-18,1.96,85.0,volleyball,0,0,0 -942438156,Youba Sissokho Ndiaye,ESP,male,1991-11-07,1.82,,boxing,0,0,0 -897401460,Youcef Reguigui,ALG,male,1990-01-09,1.74,68.0,cycling,0,0,0 -62442615,Youn Joo Hwang,KOR,female,1986-08-13,1.77,63.0,volleyball,0,0,0 -462706353,Youndry Andujar,DOM,male,1990-07-05,1.71,60.0,athletics,0,0,0 -450541080,Younes Essalhi,MAR,male,1993-02-20,1.8,64.0,athletics,0,0,0 -253601980,Young Mi Kang,KOR,female,1985-03-01,1.64,63.0,fencing,0,0,0 -654665067,Younghee Son,KOR,female,1993-04-24,1.73,110.0,weightlifting,0,0,0 -502665912,Youngjun Byun,KOR,male,1984-03-20,1.75,59.0,athletics,0,0,0 -800057489,Youngjun Won,KOR,male,1998-01-08,1.87,83.0,aquatics,0,0,0 -447706545,Youngsik Jeoung,KOR,male,1992-01-20,1.82,65.0,table tennis,0,0,0 -460973844,Youngsil Lee,KOR,female,1987-03-13,1.67,59.0,hockey,0,0,0 -421409834,Yousef Mirza Banihammad,UAE,male,1988-10-08,1.76,60.0,cycling,0,0,0 -290661628,Yousef Shriha,LBA,male,1991-11-18,1.77,58.0,taekwondo,0,0,0 -996923699,Yousra Helmy,EGY,female,1995-12-03,1.65,50.0,table tennis,0,0,0 -581419074,Youssef Akrout,TUN,male,1990-11-15,1.8,78.0,sailing,0,0,0 -577987694,Youssef Selim,EGY,male,1997-12-14,1.65,88.0,aquatics,0,0,0 -906406227,Youssra Zakarani,MAR,female,1995-01-07,1.62,58.0,fencing,0,0,0 -804864776,Youxue Mo,CHN,male,1996-02-10,1.8,65.0,athletics,0,0,0 -191719659,Yowlys Bonne Rodriguez,CUB,male,1983-11-02,1.52,57.0,wrestling,0,0,0 -403722515,Ysaora Thibus,FRA,female,1991-08-22,1.74,59.0,fencing,0,0,0 -866421007,Yu Asai,JPN,female,1996-01-08,1.72,63.0,hockey,0,0,0 -470277926,Yu Luo,CHN,female,1991-01-11,1.64,66.0,badminton,0,0,0 -245945587,Yu Wang,CHN,male,1991-08-18,1.9,65.0,athletics,0,0,0 -262263057,Yu Xing,CHN,male,1991-03-12,1.88,90.0,archery,0,0,0 -112835195,Yu Zhou,CHN,female,1989-01-23,1.74,67.0,canoe,0,0,0 -964683123,Yu-Hsuan Chen,TPE,female,1993-01-16,1.57,50.0,athletics,0,0,0 -886518793,Yuan Cao,CHN,male,1995-02-07,1.67,62.0,aquatics,1,0,1 -960243282,Yuan Yue,CHN,female,1987-07-23,1.82,72.0,volleyball,0,0,0 -50733042,Yuanhui Fu,CHN,female,1996-01-07,1.79,67.0,aquatics,0,0,1 -247982546,Yuanting Tang,CHN,female,1994-08-02,1.75,70.0,badminton,0,0,0 -27660873,Yuchen Zou,CHN,male,1996-07-05,2.03,107.0,basketball,0,0,0 -622790122,Yucheng Han,CHN,male,1978-12-16,1.78,55.0,athletics,0,0,0 -68915192,Yuderqui Maridalia Contreras,DOM,female,1986-03-27,1.58,58.0,weightlifting,0,0,0 -427057376,Yudiao Zhao,CHN,female,1989-05-25,1.74,68.0,hockey,0,0,0 -426336563,Yue Cao,CHN,female,1995-10-29,1.78,72.0,aquatics,0,0,0 -282448416,Yue Li,CHN,female,1993-10-27,1.7,65.0,canoe,0,0,0 -500859635,Yue Lin,CHN,male,1991-07-24,1.64,58.0,aquatics,1,0,0 -920857282,Yue Wu,USA,female,1990-01-04,1.61,50.0,table tennis,0,0,0 -23443327,Yue Zhang,CHN,female,1990-09-30,1.85,64.0,football,0,0,0 -517058377,Yuehong Li,CHN,male,1989-08-28,1.73,71.0,shooting,0,0,1 -607487573,Yuen Yin Lee,HKG,female,1989-07-16,1.61,58.0,rowing,0,0,0 -968356783,Yufei Zhang,CHN,female,1998-04-19,1.76,62.0,aquatics,0,0,0 -928265049,Yuhan Tan,BEL,male,1987-04-21,1.82,74.0,badminton,0,0,0 -97065462,Yuhan Zhang,CHN,female,1995-01-06,1.73,60.0,aquatics,0,0,0 -122679223,Yuhang Wu,CHN,male,1997-06-03,1.78,72.0,aquatics,0,0,0 -480817405,Yuhong Qi,CHN,female,1989-08-25,1.66,78.0,archery,0,0,0 -845709024,Yuichi Sugita,JPN,male,1988-09-18,1.73,66.0,tennis,0,0,0 -834189492,Yujie Sun,CHN,female,1992-08-10,1.85,78.0,fencing,0,1,0 -714978858,Yuka Kanematsu,JPN,female,1982-06-17,1.59,59.0,rugby sevens,0,0,0 -85090644,Yuka Mamiya,JPN,female,1990-04-03,1.85,74.0,basketball,0,0,0 -192455905,Yuka Sato,JPN,female,1992-01-18,1.71,56.0,triathlon,0,0,0 -206045487,Yuka Takashima,JPN,female,1988-05-12,1.53,39.0,athletics,0,0,0 -47621676,Yukari Mano,JPN,female,1994-03-04,1.52,53.0,hockey,0,0,0 -12505155,Yuki Ebihara,JPN,female,1985-10-28,1.64,68.0,athletics,0,0,0 -384346925,Yuki Hayashi,JPN,female,1984-10-02,1.63,65.0,archery,0,0,0 -596523422,Yuki Ishii,JPN,female,1991-05-08,1.8,68.0,volleyball,0,0,0 -917190651,Yuki Kadono,JPN,male,1990-09-14,1.77,72.0,aquatics,0,0,0 -324618185,Yuki Kobori,JPN,male,1993-11-25,1.83,77.0,aquatics,0,0,1 -192515244,Yuki Matsushita,JPN,male,1991-09-09,1.76,65.0,athletics,0,0,0 -223316076,Yuki Miyazawa,JPN,female,1993-06-02,1.82,70.0,basketball,0,0,0 -413134994,Yuki Ota,JPN,male,1985-11-25,1.71,69.0,fencing,0,0,0 -108168547,Yuki Uchiyama,JPN,female,1998-01-13,1.59,49.0,gymnastics,0,0,0 -581218184,Yukie Nakayama,JPN,female,1979-03-07,1.61,54.0,shooting,0,0,0 -703800372,Yukiko Inui,JPN,female,1990-12-04,1.7,56.0,aquatics,0,0,2 -760257652,Yukio Makino,JPN,male,1980-05-06,1.84,78.0,sailing,0,0,0 -492326920,Yukiya Arashiro,JPN,male,1984-09-22,1.71,64.0,cycling,0,0,0 -751772771,Yuko Kitai,JPN,female,1973-01-15,1.62,50.0,equestrian,0,0,0 -440552252,Yulenmis Aguilar,CUB,female,1996-08-03,1.65,66.0,athletics,0,0,0 -86099624,Yulia Efimova,RUS,female,1992-04-03,,,aquatics,0,2,0 -247132053,Yulia Timoshinina,RUS,female,1998-01-23,1.57,46.0,aquatics,0,0,0 -13825492,Yuliia Khavaldzhy Blahinya,UKR,female,1990-02-21,1.62,53.0,wrestling,0,0,0 -541028495,Yuliia Levchenko,UKR,female,1997-11-28,1.79,59.0,athletics,0,0,0 -957767135,Yuliia Tkach Ostapchuk,UKR,female,1989-09-26,1.7,63.0,wrestling,0,0,0 -109328208,Yulimar Rojas,VEN,female,1995-10-21,1.92,72.0,athletics,0,1,0 -750465466,Yuliya Bichyk,BLR,female,1983-04-01,1.84,84.0,rowing,0,0,0 -313792842,Yuliya Gavrilova,RUS,female,1989-07-20,1.69,56.0,fencing,1,0,0 -379286270,Yuliya Karol,BLR,female,1991-06-26,1.62,57.0,athletics,0,0,0 -416483040,Yuliya Khitraya,BLR,female,1989-09-11,1.8,66.0,aquatics,0,0,0 -131403835,Yuliya Leantsiuk,BLR,female,1984-01-31,1.8,80.0,athletics,0,0,0 -323145387,Yuliya Lobzhenidze,GEO,female,1977-08-23,1.77,80.0,archery,0,0,0 -983041007,Yuliya Rakhmanova,KAZ,female,1991-10-25,1.68,58.0,athletics,0,0,0 -745030632,Yuliya Ratkevich,AZE,female,1985-07-16,1.62,58.0,wrestling,0,0,0 -521174364,Yuliya Rytsikava,BLR,female,1986-09-08,1.8,69.0,basketball,0,0,0 -693790163,Yuliya Tarasova,UZB,female,1986-03-13,1.74,66.0,athletics,0,0,0 -272506840,Yuliya Yelistratova,UKR,female,1988-02-15,1.63,53.0,triathlon,0,0,0 -346397008,Yume Okuroda,JPN,female,1994-07-06,1.57,62.0,rugby sevens,0,0,0 -304244735,Yumi Kida,JPN,female,1985-06-30,1.6,55.0,aquatics,0,0,0 -109766656,Yun Chol Om,PRK,male,1991-11-18,1.51,56.0,weightlifting,0,1,0 -660495063,Yun Hu,HKG,male,1981-08-31,1.78,73.0,badminton,0,0,0 -402313954,Yung-Jan Chan,TPE,female,1989-08-17,1.71,65.0,tennis,0,0,0 -491896324,Yunlei Zhao,CHN,female,1986-08-25,1.73,60.0,badminton,0,0,1 -787363560,Yunli Xu,CHN,female,1987-08-02,1.95,75.0,volleyball,1,0,0 -243639998,Yunlong Jiao,CHN,male,1988-05-19,1.9,87.0,fencing,0,0,0 -274497328,Yuqing Bao,CHN,female,1993-09-23,1.73,55.0,gymnastics,0,0,0 -16526279,Yura Jung,KOR,female,1992-02-06,1.7,63.0,handball,0,0,0 -531947330,Yurary Poulsen,DEN,male,1994-06-15,1.93,85.0,football,0,0,0 -57329234,Yurberjen Herney Martinez,COL,male,1991-11-01,1.65,,boxing,0,1,0 -819486383,Yuri Alvear,COL,female,1986-03-29,1.76,70.0,judo,0,1,0 -10496716,Yuri Floriani,ITA,male,1981-12-25,1.8,64.0,athletics,0,0,0 -708404577,Yuri Kisil,CAN,male,1995-09-18,2.0,84.0,aquatics,0,0,0 -874782601,Yuri Nagai,JPN,female,1992-05-26,1.55,53.0,hockey,0,0,0 -575167357,Yuri van Gelder,NED,male,1983-04-20,1.61,63.0,gymnastics,0,0,0 -409923311,Yuri van der Heijden,BRA,male,1990-07-20,1.78,76.0,hockey,0,0,0 -341547186,Yurie Kato,JPN,female,1987-01-27,1.61,48.0,triathlon,0,0,0 -516134396,Yurie Nabeya,JPN,female,1993-12-15,1.76,58.0,volleyball,0,0,0 -16936763,Yurim Lee,KOR,female,1994-12-14,1.62,59.0,hockey,0,0,0 -108397344,Yurisandy Hernandez Rios,CUB,male,1990-02-15,1.72,75.0,wrestling,0,0,0 -246323077,Yuriy Yurkov,KAZ,male,1983-03-11,1.76,83.0,shooting,0,0,0 -197488298,Yury Shcherbatsevich,BLR,male,1984-07-11,1.78,87.0,shooting,0,0,0 -273316719,Yusaku Kuwazuru,JPN,male,1985-10-23,1.88,98.0,rugby sevens,0,0,0 -822567652,Yusleidy Mariana Figueroa Roldan,VEN,female,1993-01-09,1.53,58.0,weightlifting,0,0,0 -978744590,Yusmari Mengana,CUB,female,1993-10-25,1.7,65.0,canoe,0,0,0 -529316870,Yusneysi Santiusti,ITA,female,1984-12-24,1.63,48.0,athletics,0,0,0 -826970631,Yusra Mardini,ROT,female,1998-03-05,1.68,53.0,aquatics,0,0,0 -865077945,Yusuf Bala,NGR,male,1996-12-22,1.83,82.0,football,0,0,0 -729458996,Yusuf Dikec,TUR,male,1973-01-01,1.8,80.0,shooting,0,0,0 -920794610,Yusuke Shimizu,JPN,male,1988-09-07,1.81,93.0,aquatics,0,0,0 -51119392,Yusuke Tanaka,JPN,male,1989-11-29,1.66,57.0,gymnastics,1,0,0 -335237956,Yuta Ikeda,JPN,male,1985-12-22,1.76,76.0,golf,0,0,0 -636535967,Yuta Shitara,JPN,male,1991-12-18,1.7,48.0,athletics,0,0,0 -116013385,Yuta Wakimoto,JPN,male,1989-03-21,1.81,74.0,cycling,0,0,0 -904630839,Yuval Filo,ISR,female,1998-03-03,1.68,47.0,gymnastics,0,0,0 -73681451,Yuwei Wang,CHN,female,1991-07-16,1.87,74.0,rowing,0,0,0 -766135834,Yuya Kubo,JPN,male,1993-12-24,1.77,72.0,football,0,0,0 -819716294,Yuzo Kanemaru,JPN,male,1987-09-18,1.78,75.0,athletics,0,0,0 -939235679,Yvette Broch,NED,female,1990-12-23,1.84,73.0,handball,0,0,0 -974818228,Yvette Lewis,PAN,female,1985-03-16,1.75,150.0,athletics,0,0,0 -638722010,Yvette Man-Yi Kong,HKG,female,1993-01-18,1.76,60.0,aquatics,0,0,0 -457461427,Yvon Belien,NED,female,1993-12-28,1.88,74.0,volleyball,0,0,0 -102630412,Yvonne Frank,GER,female,1980-02-07,1.82,78.0,hockey,0,0,0 -157674707,Yvonne Losos de Muniz,DOM,female,1967-09-08,1.83,64.0,equestrian,0,0,0 -751496609,Yvonne Schuring,AUT,female,1978-01-04,1.75,68.0,canoe,0,0,0 -308404537,Yvonne Trevino,MEX,female,1989-09-08,1.7,63.0,athletics,0,0,0 -503085577,Zac Williams,NZL,male,1995-07-21,1.8,89.0,cycling,0,0,0 -306067063,Zach Garrett,USA,male,1995-04-08,1.78,63.0,archery,0,1,0 -995684067,Zach Ziemek,USA,male,1993-02-23,1.94,88.0,athletics,0,0,0 -586642596,Zack Piontek,RSA,male,1991-01-27,1.81,90.0,judo,0,0,0 -99932834,Zack Test,USA,male,1989-10-13,1.91,92.0,rugby sevens,0,0,0 -242878558,Zahra Nemati,IRI,female,1985-04-30,1.76,60.0,archery,0,0,0 -513768691,Zaidatul Husniah Zulkifli,MAS,female,1993-08-20,1.56,40.0,athletics,0,0,0 -636555666,Zakaria Draoui,ALG,male,1994-02-20,1.6,60.0,football,0,0,0 -624057492,Zakarias Berg,SWE,male,1995-07-17,1.81,86.0,wrestling,0,0,0 -71202021,Zakarya Haddouche,ALG,male,1993-08-19,1.7,65.0,football,0,0,0 -830255142,Zalina Marghieva,MDA,female,1988-02-05,1.7,80.0,athletics,0,0,0 -917974956,Zan Rudolf,SLO,male,1993-05-09,1.84,64.0,athletics,0,0,0 -243949907,Zane Robertson,NZL,male,1989-11-14,1.85,62.0,athletics,0,0,0 -855358294,Zaneta Glanc,POL,female,1983-03-11,1.86,95.0,athletics,0,0,0 -280809443,Zangjun Xu,CHN,male,1992-02-06,1.75,65.0,sailing,0,0,0 -802902327,Zarina Kurbonova,UZB,female,1995-05-06,1.7,54.0,gymnastics,0,0,0 -235109173,Zarko Markovic,QAT,male,1986-06-01,1.96,94.0,handball,0,0,0 -644379517,Zaza Nadiradze,GEO,male,1993-09-02,1.77,85.0,canoe,0,0,0 -596326530,Zbigniew Mateusz Baranowski,POL,male,1991-07-02,1.8,86.0,wrestling,0,0,0 -519061394,Zbigniew Schodowski,POL,male,1987-04-30,2.01,94.0,rowing,0,0,0 -538896901,Zdenek Stybar,CZE,male,1985-12-11,1.83,72.0,cycling,0,0,0 -988416903,Zdravko Radic,MNE,male,1979-06-24,1.93,96.0,aquatics,0,0,0 -879954351,Zeca,BRA,male,1994-05-16,1.7,69.0,football,1,0,0 -919548868,Zelimkhan Khadjiev,FRA,male,1994-05-20,1.75,80.0,wrestling,0,0,0 -343970933,Zelin Cai,CHN,male,1991-04-11,1.75,55.0,athletics,0,1,0 -916408500,Zeljko Sakic,CRO,male,1988-04-14,2.03,105.0,basketball,0,0,0 -225812170,Zengyi Wang,POL,male,1983-06-24,1.8,74.0,table tennis,0,0,0 -92162694,Zersenay Tadese,ERI,male,1982-01-01,1.6,54.0,athletics,0,0,0 -788878355,Zetao Ning,CHN,male,1993-03-06,1.91,80.0,aquatics,0,0,0 -853131625,Zeyad Mater,YEM,male,1991-12-18,1.74,73.0,judo,0,0,0 -980866226,Zhaina Shekerbekova,KAZ,female,1989-12-17,1.54,,boxing,0,0,0 -712955052,Zhan Beleniuk,UKR,male,1991-01-24,1.78,85.0,wrestling,0,1,0 -666529173,Zhanarbek Kenzheev,KGZ,male,1985-08-05,1.8,84.0,wrestling,0,0,0 -405483135,Zhanibek Alimkhanuly,KAZ,male,1993-04-01,1.82,,boxing,0,0,0 -943438686,Zhansay Smagulov,KAZ,male,1992-09-26,1.69,66.0,judo,0,0,0 -634255666,Zhanyl Okoeva,KGZ,female,1993-11-15,1.65,48.0,weightlifting,0,0,0 -989437678,Zhao Juan Meng,HKG,female,1989-12-14,1.7,60.0,cycling,0,0,0 -162328031,Zhazira Zhapparkul,KAZ,female,1993-12-22,1.55,69.0,weightlifting,0,1,0 -548518238,Zhe Yang,CHN,male,1991-07-14,1.87,105.0,weightlifting,0,0,0 -315308490,Zhehui Zhang,CHN,female,1988-01-17,1.77,76.0,judo,0,0,0 -167115740,Zhelin Wang,CHN,male,1994-01-20,2.14,100.0,basketball,0,0,0 -448660080,Zhen Wang,CHN,male,1989-06-26,1.72,65.0,cycling,0,0,0 -920733515,Zhen Wang,CHN,male,1991-08-24,1.75,55.0,athletics,1,0,0 -604655983,Zhen Zeng,CHN,female,1993-11-28,1.7,61.0,aquatics,0,1,0 -925389312,Zhendong Wang,CHN,male,1991-01-11,1.8,55.0,athletics,0,0,0 -659569127,Zheng Wang,CHN,female,1987-12-14,1.75,105.0,athletics,0,0,0 -60255358,Zheng Wen Quah,SIN,male,1996-09-29,1.79,79.0,aquatics,0,0,0 -272027054,Zhenye Xie,CHN,male,1993-08-17,1.84,78.0,athletics,0,0,0 -756808595,Zhifang Zhao,CHN,female,1994-08-11,1.68,57.0,basketball,0,0,0 -123124501,Zhiwei Deng,CHN,male,1988-02-01,1.88,120.0,wrestling,0,0,0 -484683254,Zhiwei Wang,CHN,male,1988-07-18,1.78,77.0,shooting,0,0,0 -71451677,Zhiwen He,ESP,male,1962-05-31,1.73,73.0,table tennis,0,0,0 -334126873,Zhiyong Shi,CHN,male,1993-10-10,1.68,69.0,weightlifting,1,0,0 -366579245,Zhongrong Cao,CHN,male,1981-11-03,1.8,73.0,modern pentathlon,0,0,0 -839669919,Zhuhao Li,CHN,male,1999-01-09,1.85,76.0,aquatics,0,0,0 -449290079,Zhuldyz Eshimova,KAZ,female,1988-01-02,1.52,48.0,wrestling,0,0,0 -105609876,Zi He,CHN,female,1990-12-10,1.6,52.0,aquatics,0,1,0 -955970530,Zi Liang Derek Wong,SIN,male,1989-01-13,1.76,69.0,badminton,0,0,0 -807355678,Ziao Qiu,CHN,male,1998-08-30,1.82,67.0,aquatics,0,0,0 -425868187,Zibei Yan,CHN,male,1995-10-12,1.9,75.0,aquatics,0,0,0 -560564596,Zicheng Hui,CHN,male,1989-06-02,1.77,70.0,shooting,0,0,0 -875746801,Zied Ait Ouagram,MAR,male,1988-12-18,1.91,75.0,wrestling,0,0,0 -765883125,Zigismunds Sirmais,LAT,male,1992-05-06,1.9,95.0,athletics,0,0,0 -192304802,Zihan Zhao,CHN,female,1993-09-04,1.72,62.0,aquatics,0,0,0 -84587289,Zinaida Sendriute,LTU,female,1984-12-20,1.88,95.0,athletics,0,0,0 -274387882,Ziv Kalontarov,ISR,male,1997-01-15,1.85,71.0,aquatics,0,0,0 -782719758,Ziva Dvorsak,SLO,female,1991-07-09,1.68,70.0,shooting,0,0,0 -428778432,Zivile Vaiciukeviciute,LTU,female,1996-04-03,1.64,54.0,athletics,0,0,0 -593183472,Zivko Gocic,SRB,male,1982-08-22,1.93,93.0,aquatics,1,0,0 -799874941,Zixia Ou,CHN,female,1995-09-24,1.68,61.0,hockey,0,0,0 -47822121,Ziyu Zhang,AUS,female,1990-12-10,1.62,70.0,table tennis,0,0,0 -432416881,Zlatko Horvat,CRO,male,1984-09-25,1.79,86.0,handball,0,0,0 -446963221,Zoe Arancini,AUS,female,1991-07-14,1.7,70.0,aquatics,0,0,0 -499603226,Zoe Buckman,AUS,female,1988-12-21,1.68,50.0,athletics,0,0,0 -836633838,Zoe Lee,GBR,female,1985-12-15,1.76,70.0,rowing,0,1,0 -634140075,Zoe Stevenson,NZL,female,1991-06-19,1.83,74.0,rowing,0,0,0 -343671816,Zoe de Toledo,GBR,female,1987-07-17,1.72,58.0,rowing,0,1,0 -371106012,Zohar Shikler,ISR,female,1997-07-08,1.78,61.0,aquatics,0,0,0 -352983859,Zohir Kedache,ALG,male,1986-03-02,1.78,,boxing,0,0,0 -424586991,Zohra Ez Zahraoui,MAR,female,1983-11-18,1.65,,boxing,0,0,0 -211176854,Zoi Kontogianni,GRE,female,1997-09-19,1.65,47.0,gymnastics,0,0,0 -875374176,Zokhid Kenjaev,UZB,male,1992-03-30,1.68,61.0,table tennis,0,0,0 -495365659,Zoltan Adam Harcsa,HUN,male,1992-11-20,1.84,,boxing,0,0,0 -672182746,Zoltan Kovago,HUN,male,1979-04-10,2.04,132.0,athletics,0,0,0 -412827228,Zorana Arunovic,SRB,female,1986-11-22,1.68,90.0,shooting,0,0,0 -724419150,Zouhair Aouad,BRN,male,1989-04-07,1.75,69.0,athletics,0,0,0 -281890328,Zoulehia Abzetta Dabonne,CIV,female,1992-12-15,1.75,57.0,judo,0,0,0 -230998458,Zoya Ananchenko,KAZ,female,1996-09-05,1.65,67.0,canoe,0,0,0 -778588793,Zsanett Nemeth,HUN,female,1994-01-21,1.75,80.0,wrestling,0,0,0 -640253635,Zsofia Csonka,HUN,female,1983-09-12,1.64,89.0,shooting,0,0,0 -999437858,Zsofia Erdelyi,HUN,female,1987-12-10,1.64,53.0,athletics,0,0,0 -46916465,Zsofia Foldhazi,HUN,female,1993-06-09,1.7,54.0,modern pentathlon,0,0,0 -738530209,Zsofia Kovacs,HUN,female,1988-02-07,1.8,58.0,triathlon,0,0,0 -499425013,Zsofia Kovacs,HUN,female,2000-04-06,1.58,49.0,gymnastics,0,0,0 -862285226,Zsombor Berecz,HUN,male,1986-04-26,1.95,95.0,sailing,0,0,0 -739315046,Zsuzsanna Jakabos,HUN,female,1989-04-03,1.85,70.0,aquatics,0,0,0 -600541319,Zurabi Datunashvili,GEO,male,1991-06-18,1.83,75.0,wrestling,0,0,0 -801825063,Zurabi Iakobishvili,GEO,male,1992-02-04,1.71,68.0,wrestling,0,0,0 -265605954,Zurian Hechavarria,CUB,female,1995-08-10,1.64,58.0,athletics,0,0,0 -214461847,Zuzana Hejnova,CZE,female,1986-12-19,1.73,63.0,athletics,0,0,0 -88361042,di Xiao,CHN,male,1991-05-14,1.85,100.0,wrestling,0,0,0 -900065925,le Quoc Toan Tran,VIE,male,1989-04-05,1.6,56.0,weightlifting,0,0,0 -711404576,le Roux Hamman,RSA,male,1992-01-06,1.85,70.0,athletics,0,0,0 diff --git a/data/.ipynb_checkpoints/compiled_data-checkpoint.csv b/data/.ipynb_checkpoints/compiled_data-checkpoint.csv new file mode 100644 index 0000000..97cf63c --- /dev/null +++ b/data/.ipynb_checkpoints/compiled_data-checkpoint.csv @@ -0,0 +1,314 @@ +user,radius (cm),angle (deg) +0,1.49,3.2 +0,6.21,45.4 +0,11.56,340.1 +0,4.12,273.4 +0,7.48,205.7 +0,9.43,133.2 +0,8.11,159.5 +0,5.59,21.4 +0,4.91,82.3 +1,10.74,115.8 +1,3.7,295 +1,2.4,300 +1,4.2,134 +1,0.6,236 +1,0.5,18 +1,3.3,16 +1,7.6,224 +1,6.1,290 +1,2.3,224 +2,4.9,8 +2,7.5,74 +2,4.5,56 +2,5.25,102 +2,6,92 +2,2,134 +2,4.5,16 +2,4,66 +2,13.25,284 +2,3,84 +3,7,290 +3,1.5,18 +3,6,63 +3,5,115 +3,4.5,122 +3,5.5,137 +3,0.5,205 +3,7,76 +3,2.5,117 +3,4,101 +4,2.5,281 +4,3,340 +4,5.5,185 +4,8,67 +4,3.5,7 +4,2.5,255 +4,3,290 +4,3.5,295 +4,4.5,250 +4,8.5,275 +5,10.5,304 +5,1.2,120 +5,16.6,90 +5,14.3,152 +5,14.4,150 +5,4.6,210 +5,5.9,100 +5,3.7,86 +5,14.2,10 +5,7.3,65 +6,10.1,88 +6,1,30 +6,4.5,60 +6,6,101 +6,6.1,110 +6,1.4,160 +6,0.8,200 +6,4,250 +6,3.7,273 +6,2.3,320 +7,1.4,340 +7,11,260 +7,12,53 +7,12.5,88 +7,8.2,138 +7,3.6,130 +7,2,15 +7,6.2,175 +7,9.5,225 +7,12.5,302 +8,4,268 +8,10,98 +8,4.6,83 +8,2.7,102 +8,3.4,42 +8,2.8,24 +8,3.4,-6 +8,3.5,-42 +8,2.9,-46 +8,3.8,-47 +9,5.6,-84 +9,4,310 +9,4,140 +9,8,155 +9,9,75 +9,12,85 +9,13,65 +9,15,110 +9,11,200 +9,14,190 +10,8,290 +10,8,140 +10,2.2,15 +10,9.7,97 +10,6,122 +10,7.5,330 +10,5.9,100 +10,3.1,190 +10,9.8,150 +10,10.2,45 +11,4.8,22 +11,10,92 +11,5.1,92 +11,5.4,122 +11,3.1,164 +11,2.6,338 +11,3.4,234 +11,5.7,295 +11,7.9,263 +11,8.9,259 +12,12.4,242 +12,8.2,85 +12,5.3,92 +12,3.1,105 +12,2.6,11 +12,6.4,65 +12,1.1,112 +12,3.5,121 +12,4.8,92 +12,3.2,76 +13,2,90 +13,6.6,216 +13,2.4,272 +13,3,320 +13,0.5,16 +13,4.3,44 +13,2.6,60 +13,1.1,124 +13,2.4,358 +13,6.1,86 +14,3.4,174 +14,14,128 +14,5,220 +14,12.5,338 +14,15.5,290 +14,13.5,284 +14,15,236 +14,4,290 +14,3,25 +14,6.5,85 +15,16.5,105 +15,2,50 +15,2.7,164 +15,4,194 +15,5,330 +15,5.2,262 +15,6,90 +15,8.1,305 +15,8.5,48 +15,8.5,136 +16,10,240 +16,3,275 +16,7,61 +16,2,51 +16,6,255 +16,12,64 +16,4,77 +16,4,184 +16,5,111 +16,8,119 +17,11,15 +17,3.2,0 +17,4.1,12 +17,2,20 +17,2.2,38 +17,3.2,39 +17,1.5,50 +17,2.9,52 +17,9.4,88 +17,3.9,180 +18,10.2,241 +18,5.5,20 +18,2,200 +18,7,170 +18,4.5,70 +18,6.5,330 +18,4,290 +18,1,240 +18,1.5,90 +18,6,120 +19,4.5,280 +19,2.4,15 +19,6.7,45 +19,3.5,121 +19,6.9,126 +19,4.5,129 +19,3.8,134 +19,4.3,221 +19,5,257 +19,2.4,322 +20,1.8,337 +20,7.75,9 +20,7.6,82.5 +20,5.4,122 +20,5.8,154.5 +20,7.2,211 +20,4.5,220 +20,3.6,260 +20,5,278 +20,3.8,316 +21,6.5,339 +21,10,86 +21,6.5,102 +21,8,124 +21,13,78 +21,3.5,270 +21,4,180 +21,17,251 +21,9,93 +21,4.5,90 +22,6,270 +22,5,8.5 +23,2.5,317 +23,7,35 +23,9,166 +23,2,112 +23,14,330 +23,13,240 +23,5,105 +23,11,60 +23,4,52 +23,8,262 +24,13,155 +24,8.9,9 +24,5,82 +24,5.4,290 +24,5.8,20 +24,7.2,220 +24,4.5,180 +24,3.6,270 +24,5,278 +24,3.8,316 +25,6.5,339 +25,4,95 +25,12,90 +25,11.5,67 +25,12.5,35 +25,11,30 +25,6,357 +25,13,300 +25,18,308 +25,10,182 +26,13,235 +26,3,155 +26,1.5,50 +26,1.6,172 +26,0.75,80 +26,2.5,12.5 +26,1.5,145 +26,1.75,95 +26,2.25,170 +26,1.75,110 +27,0.75,140 +27,3.5,108 +27,8,252 +27,12.5,240 +27,14,194 +27,1.5,86 +27,8,124 +27,10.5,64 +27,8,46 +27,13,0 +28,12.5,62 +28,4.8,37 +28,2.2,44 +28,2.5,96 +28,4.6,104 +28,4.1,115 +28,2.3,135 +28,3.8,140 +28,2.9,197 +28,5.1,244 +29,2.3,287 +29,7.2,276 +29,13.5,284 +29,10.2,272 +29,2.5,72 +29,12.8,258 +29,6.9,236 +29,7.2,70 +29,8.5,112 +29,9,294 +30,13.5,256 +30,4,24 +30,8,257 +30,2,75 +30,5,268 +30,8,142 +30,6,200 +30,3,340 +30,5,16 +30,6,39 +31,4,127 +31,7,150 +31,1,30 +31,2.5,45 +31,3,62 +31,2.8,110 +31,4,246 +31,1.7,155 +31,3.6,176 +31,0.5,18 +32,3.3,335 +32,4.7,286 diff --git a/data/.ipynb_checkpoints/land_global_temperature_anomaly-1880-2016-checkpoint.csv b/data/.ipynb_checkpoints/land_global_temperature_anomaly-1880-2016-checkpoint.csv new file mode 100644 index 0000000..749296e --- /dev/null +++ b/data/.ipynb_checkpoints/land_global_temperature_anomaly-1880-2016-checkpoint.csv @@ -0,0 +1,142 @@ +Global Land Temperature Anomalies, January-December +Units: Degrees Celsius +Base Period: 1901-2000 +Missing: -999.0000 +Year,Value +1880,-0.47 +1881,-0.45 +1882,-0.41 +1883,-0.60 +1884,-0.60 +1885,-0.52 +1886,-0.48 +1887,-0.47 +1888,-0.46 +1889,-0.31 +1890,-0.49 +1891,-0.55 +1892,-0.52 +1893,-0.56 +1894,-0.35 +1895,-0.40 +1896,-0.27 +1897,-0.29 +1898,-0.37 +1899,-0.18 +1900,-0.13 +1901,-0.09 +1902,-0.33 +1903,-0.39 +1904,-0.46 +1905,-0.42 +1906,-0.20 +1907,-0.60 +1908,-0.49 +1909,-0.39 +1910,-0.33 +1911,-0.44 +1912,-0.51 +1913,-0.34 +1914,-0.07 +1915,-0.07 +1916,-0.36 +1917,-0.51 +1918,-0.37 +1919,-0.32 +1920,-0.28 +1921,-0.06 +1922,-0.24 +1923,-0.21 +1924,-0.26 +1925,-0.10 +1926,0.01 +1927,-0.15 +1928,-0.10 +1929,-0.40 +1930,-0.08 +1931,-0.03 +1932,-0.02 +1933,-0.34 +1934,-0.02 +1935,-0.14 +1936,-0.12 +1937,-0.03 +1938,0.17 +1939,0.09 +1940,0.04 +1941,0.11 +1942,0.07 +1943,0.09 +1944,0.21 +1945,-0.08 +1946,-0.01 +1947,0.06 +1948,0.06 +1949,-0.05 +1950,-0.33 +1951,-0.07 +1952,-0.08 +1953,0.17 +1954,-0.16 +1955,-0.13 +1956,-0.42 +1957,-0.05 +1958,0.13 +1959,0.05 +1960,-0.04 +1961,0.10 +1962,0.16 +1963,0.21 +1964,-0.24 +1965,-0.13 +1966,-0.07 +1967,-0.00 +1968,-0.11 +1969,-0.10 +1970,0.02 +1971,-0.04 +1972,-0.18 +1973,0.29 +1974,-0.21 +1975,0.12 +1976,-0.25 +1977,0.21 +1978,0.08 +1979,0.15 +1980,0.27 +1981,0.49 +1982,0.09 +1983,0.49 +1984,0.05 +1985,0.07 +1986,0.28 +1987,0.41 +1988,0.55 +1989,0.39 +1990,0.59 +1991,0.53 +1992,0.26 +1993,0.35 +1994,0.45 +1995,0.77 +1996,0.35 +1997,0.68 +1998,0.96 +1999,0.80 +2000,0.64 +2001,0.83 +2002,0.94 +2003,0.89 +2004,0.81 +2005,1.05 +2006,0.92 +2007,1.10 +2008,0.87 +2009,0.88 +2010,1.09 +2011,0.91 +2012,0.92 +2013,1.01 +2014,1.02 +2015,1.35 +2016,1.45 diff --git a/data/.ipynb_checkpoints/primary-energy-consumption-by-region-checkpoint.csv b/data/.ipynb_checkpoints/primary-energy-consumption-by-region-checkpoint.csv new file mode 100644 index 0000000..facd19c --- /dev/null +++ b/data/.ipynb_checkpoints/primary-energy-consumption-by-region-checkpoint.csv @@ -0,0 +1,5066 @@ +Entity,Code,Year,Primary Energy Consumption (terawatt-hours) +Africa,,1965,710.9496218370446 +Africa,,1966,742.3557894211085 +Africa,,1967,750.4345544205105 +Africa,,1968,791.0998844157018 +Africa,,1969,807.9623052554762 +Africa,,1970,875.8575993480164 +Africa,,1971,951.3538360556091 +Africa,,1972,1011.5591171299385 +Africa,,1973,1087.611638468385 +Africa,,1974,1142.4470925130538 +Africa,,1975,1209.361200720239 +Africa,,1976,1316.082352326862 +Africa,,1977,1384.1726687059763 +Africa,,1978,1437.690751907023 +Africa,,1979,1567.8167111229407 +Africa,,1980,1688.4608236158724 +Africa,,1981,1882.3847187089277 +Africa,,1982,2010.4197830152507 +Africa,,1983,2065.874518832706 +Africa,,1984,2136.94122794506 +Africa,,1985,2217.8016016972447 +Africa,,1986,2269.3208429987676 +Africa,,1987,2340.164150562731 +Africa,,1988,2508.9537976665138 +Africa,,1989,2516.310250001407 +Africa,,1990,2597.4525020354927 +Africa,,1991,2594.732004911744 +Africa,,1992,2638.661744244721 +Africa,,1993,2649.1260676244697 +Africa,,1994,2727.1853143504954 +Africa,,1995,2837.7403384537865 +Africa,,1996,2914.1053605107545 +Africa,,1997,2969.5663494548953 +Africa,,1998,3015.0363850147273 +Africa,,1999,3106.265531917238 +Africa,,2000,3179.78678924349 +Africa,,2001,3306.5696263568316 +Africa,,2002,3344.0058205715295 +Africa,,2003,3504.9254473059495 +Africa,,2004,3757.6515298153213 +Africa,,2005,3786.0332515163486 +Africa,,2006,3855.000009214428 +Africa,,2007,3994.037595619741 +Africa,,2008,4249.897933458425 +Africa,,2009,4326.0884858189065 +Africa,,2010,4464.043502961286 +Africa,,2011,4481.371714602618 +Africa,,2012,4643.128590988004 +Africa,,2013,4765.0683798958 +Africa,,2014,4914.695261020759 +Africa,,2015,5001.8845992674505 +Africa,,2016,5110.664038390359 +Africa,,2017,5217.289746039103 +Africa,,2018,5367.396523588756 +Algeria,DZA,1965,24.684921944444447 +Algeria,DZA,1966,29.736455277777825 +Algeria,DZA,1967,28.10500111111115 +Algeria,DZA,1968,30.145581388888942 +Algeria,DZA,1969,33.425377499999996 +Algeria,DZA,1970,36.57900583333339 +Algeria,DZA,1971,39.617660277777766 +Algeria,DZA,1972,44.49832916666663 +Algeria,DZA,1973,53.01575250000003 +Algeria,DZA,1974,58.753500833333355 +Algeria,DZA,1975,70.26040750000004 +Algeria,DZA,1976,81.96365250000001 +Algeria,DZA,1977,90.12660361111114 +Algeria,DZA,1978,113.29676472222219 +Algeria,DZA,1979,148.44730722222283 +Algeria,DZA,1980,177.05753999999953 +Algeria,DZA,1981,215.05758277777784 +Algeria,DZA,1982,247.95175777777746 +Algeria,DZA,1983,270.8881611111113 +Algeria,DZA,1984,260.05752638888856 +Algeria,DZA,1985,262.08636305555564 +Algeria,DZA,1986,277.40919890350864 +Algeria,DZA,1987,285.00572178362546 +Algeria,DZA,1988,305.36227755848006 +Algeria,DZA,1989,296.99472795321674 +Algeria,DZA,1990,314.92979899122815 +Algeria,DZA,1991,311.99973874268983 +Algeria,DZA,1992,320.1621297660822 +Algeria,DZA,1993,297.88011403508824 +Algeria,DZA,1994,301.8670879385967 +Algeria,DZA,1995,313.08202751461937 +Algeria,DZA,1996,309.8808028801176 +Algeria,DZA,1997,297.8353478654977 +Algeria,DZA,1998,308.2790275292403 +Algeria,DZA,1999,311.36811635964966 +Algeria,DZA,2000,299.9280724853802 +Algeria,DZA,2001,310.7918378362579 +Algeria,DZA,2002,321.9341547222222 +Algeria,DZA,2003,336.8509539766079 +Algeria,DZA,2004,349.71503409356706 +Algeria,DZA,2005,366.14279568947325 +Algeria,DZA,2006,379.17351232894794 +Algeria,DZA,2007,399.5954578470893 +Algeria,DZA,2008,423.5064182373826 +Algeria,DZA,2009,448.8042344444447 +Algeria,DZA,2010,437.40561552631607 +Algeria,DZA,2011,464.43794581871373 +Algeria,DZA,2012,507.6259857085637 +Algeria,DZA,2013,536.9648394736848 +Algeria,DZA,2014,585.59359383041 +Algeria,DZA,2015,617.5044838040936 +Algeria,DZA,2016,616.8577568181724 +Algeria,DZA,2017,617.8796480716378 +Algeria,DZA,2018,659.5842167982457 +Argentina,ARG,1965,313.01496299896394 +Argentina,ARG,1966,323.4269603163651 +Argentina,ARG,1967,333.0293933353713 +Argentina,ARG,1968,344.52213755060313 +Argentina,ARG,1969,356.3979989293926 +Argentina,ARG,1970,336.54109831353884 +Argentina,ARG,1971,357.59899969629384 +Argentina,ARG,1972,364.0100019653057 +Argentina,ARG,1973,379.4433612945737 +Argentina,ARG,1974,395.4679586146552 +Argentina,ARG,1975,384.6591402250331 +Argentina,ARG,1976,405.72852087430164 +Argentina,ARG,1977,424.5512826046247 +Argentina,ARG,1978,432.563602482013 +Argentina,ARG,1979,458.3900799019945 +Argentina,ARG,1980,457.2440729921701 +Argentina,ARG,1981,440.661998142562 +Argentina,ARG,1982,451.3141576524524 +Argentina,ARG,1983,470.90888597572246 +Argentina,ARG,1984,469.5989507919085 +Argentina,ARG,1985,458.60820974669116 +Argentina,ARG,1986,506.52557818621466 +Argentina,ARG,1987,529.2651176665332 +Argentina,ARG,1988,538.938859470584 +Argentina,ARG,1989,515.97354409023 +Argentina,ARG,1990,509.5785992202937 +Argentina,ARG,1991,515.5174180442012 +Argentina,ARG,1992,554.4296666921838 +Argentina,ARG,1993,571.780050744056 +Argentina,ARG,1994,581.7401100449149 +Argentina,ARG,1995,605.5834418661485 +Argentina,ARG,1996,649.2325236711686 +Argentina,ARG,1997,644.4973381871645 +Argentina,ARG,1998,668.4856838458692 +Argentina,ARG,1999,654.4723212369857 +Argentina,ARG,2000,680.1464031073946 +Argentina,ARG,2001,672.1997575838614 +Argentina,ARG,2002,640.7068305958256 +Argentina,ARG,2003,688.6550791353284 +Argentina,ARG,2004,726.7201435437893 +Argentina,ARG,2005,775.7798291472524 +Argentina,ARG,2006,815.8156553211016 +Argentina,ARG,2007,852.9581254886125 +Argentina,ARG,2008,868.2759225062638 +Argentina,ARG,2009,852.3020688601055 +Argentina,ARG,2010,897.632885972413 +Argentina,ARG,2011,915.5681227302288 +Argentina,ARG,2012,942.2604514311959 +Argentina,ARG,2013,982.6040098322283 +Argentina,ARG,2014,978.4022981521706 +Argentina,ARG,2015,1001.3302034887311 +Argentina,ARG,2016,999.2181065296804 +Argentina,ARG,2017,1001.3857253097067 +Argentina,ARG,2018,989.1598669446079 +Asia Pacific,,1965,5135.237611123247 +Asia Pacific,,1966,5615.9561930005175 +Asia Pacific,,1967,5885.708835984587 +Asia Pacific,,1968,6327.74005936363 +Asia Pacific,,1969,7208.321129955075 +Asia Pacific,,1970,8197.82993761301 +Asia Pacific,,1971,8971.673288008604 +Asia Pacific,,1972,9512.956347692863 +Asia Pacific,,1973,10293.739388263812 +Asia Pacific,,1974,10492.027434247144 +Asia Pacific,,1975,10885.766862062637 +Asia Pacific,,1976,11435.314403207325 +Asia Pacific,,1977,12063.522072120442 +Asia Pacific,,1978,12865.552992497078 +Asia Pacific,,1979,13462.980033905915 +Asia Pacific,,1980,13584.492010882585 +Asia Pacific,,1981,13665.634540948055 +Asia Pacific,,1982,13802.453601851526 +Asia Pacific,,1983,14428.214034161843 +Asia Pacific,,1984,15429.01462438926 +Asia Pacific,,1985,16233.678880555452 +Asia Pacific,,1986,16929.323097351637 +Asia Pacific,,1987,17883.154329458797 +Asia Pacific,,1988,19186.860997557258 +Asia Pacific,,1989,20232.268375288753 +Asia Pacific,,1990,21068.683227376583 +Asia Pacific,,1991,22050.251168867693 +Asia Pacific,,1992,23070.765742916952 +Asia Pacific,,1993,24287.226124183893 +Asia Pacific,,1994,25629.83661682342 +Asia Pacific,,1995,26815.562505780734 +Asia Pacific,,1996,28063.274272156727 +Asia Pacific,,1997,28926.13341439491 +Asia Pacific,,1998,28853.823401517922 +Asia Pacific,,1999,30020.041731266392 +Asia Pacific,,2000,31113.842695311683 +Asia Pacific,,2001,32137.063623390717 +Asia Pacific,,2002,33796.87585845572 +Asia Pacific,,2003,36633.17648037434 +Asia Pacific,,2004,40130.70734848111 +Asia Pacific,,2005,43369.73939462064 +Asia Pacific,,2006,45937.13277422703 +Asia Pacific,,2007,48849.62466112426 +Asia Pacific,,2008,50197.43811765898 +Asia Pacific,,2009,51388.901659926516 +Asia Pacific,,2010,54678.99138665818 +Asia Pacific,,2011,57620.864304346745 +Asia Pacific,,2012,59564.68647930671 +Asia Pacific,,2013,61341.002858802836 +Asia Pacific,,2014,62681.384756379775 +Asia Pacific,,2015,63682.05659089313 +Asia Pacific,,2016,64976.325083947915 +Asia Pacific,,2017,66849.68780629005 +Asia Pacific,,2018,69615.32381130465 +Australia,AUS,1965,404.18988403508786 +Australia,AUS,1966,443.55216925438623 +Australia,AUS,1967,470.45545456140405 +Australia,AUS,1968,498.94848248538057 +Australia,AUS,1969,519.4448253508773 +Australia,AUS,1970,566.6456486258483 +Australia,AUS,1971,594.9155380013505 +Australia,AUS,1972,622.1784750277434 +Australia,AUS,1973,665.1684946804619 +Australia,AUS,1974,707.1458616619885 +Australia,AUS,1975,718.7814240665318 +Australia,AUS,1976,744.211050388576 +Australia,AUS,1977,781.3206722945035 +Australia,AUS,1978,800.5856379382421 +Australia,AUS,1979,832.3140349254406 +Australia,AUS,1980,838.0664375920799 +Australia,AUS,1981,844.9801408354093 +Australia,AUS,1982,844.6022310607432 +Australia,AUS,1983,846.4926323535063 +Australia,AUS,1984,883.3886700358529 +Australia,AUS,1985,890.0499014105027 +Australia,AUS,1986,920.2190229875002 +Australia,AUS,1987,944.9230590070846 +Australia,AUS,1988,988.8308342894527 +Australia,AUS,1989,1036.6497927934327 +Australia,AUS,1990,1054.887549222008 +Australia,AUS,1991,1048.0126908611594 +Australia,AUS,1992,1058.6286546616063 +Australia,AUS,1993,1088.7986048901844 +Australia,AUS,1994,1132.365856903358 +Australia,AUS,1995,1162.524552947921 +Australia,AUS,1996,1191.8377881175572 +Australia,AUS,1997,1222.0023680410543 +Australia,AUS,1998,1250.5693214796543 +Australia,AUS,1999,1305.306180870178 +Australia,AUS,2000,1310.941737996227 +Australia,AUS,2001,1323.3788124058483 +Australia,AUS,2002,1343.2900607535892 +Australia,AUS,2003,1363.8118525643285 +Australia,AUS,2004,1409.4186713153786 +Australia,AUS,2005,1405.7260394606017 +Australia,AUS,2006,1489.9859885349738 +Australia,AUS,2007,1510.4798947573152 +Australia,AUS,2008,1538.3304902012983 +Australia,AUS,2009,1527.8442325717697 +Australia,AUS,2010,1534.1029636243104 +Australia,AUS,2011,1585.8081676820823 +Australia,AUS,2012,1565.6027545844947 +Australia,AUS,2013,1573.5473710456451 +Australia,AUS,2014,1598.6109661483608 +Australia,AUS,2015,1619.2295892568532 +Australia,AUS,2016,1653.0123656870128 +Australia,AUS,2017,1634.0995887188105 +Australia,AUS,2018,1678.5216783644187 +Austria,AUT,1965,184.26470558555454 +Austria,AUT,1966,192.68538368589222 +Austria,AUT,1967,194.60438173184707 +Austria,AUT,1968,208.32398470244428 +Austria,AUT,1969,216.4862862842099 +Austria,AUT,1970,247.221341493147 +Austria,AUT,1971,247.61070498572187 +Austria,AUT,1972,256.2001997358727 +Austria,AUT,1973,275.25925870277274 +Austria,AUT,1974,275.57137406586224 +Austria,AUT,1975,273.3203797592352 +Austria,AUT,1976,284.20144344044274 +Austria,AUT,1977,283.48820874199816 +Austria,AUT,1978,296.0738418974789 +Austria,AUT,1979,313.07418562991086 +Austria,AUT,1980,311.40114760658315 +Austria,AUT,1981,301.48208899283486 +Austria,AUT,1982,291.26766437950624 +Austria,AUT,1983,290.53557187260543 +Austria,AUT,1984,288.731489856568 +Austria,AUT,1985,302.77975503858397 +Austria,AUT,1986,305.65634841254945 +Austria,AUT,1987,321.9955860932325 +Austria,AUT,1988,317.05754248493054 +Austria,AUT,1989,318.9387122910032 +Austria,AUT,1990,324.7771530429641 +Austria,AUT,1991,341.15957327807547 +Austria,AUT,1992,334.478222111393 +Austria,AUT,1993,339.9943112892047 +Austria,AUT,1994,338.1912951284402 +Austria,AUT,1995,354.51748702835175 +Austria,AUT,1996,356.06712881623355 +Austria,AUT,1997,363.14729964849334 +Austria,AUT,1998,368.7275547066838 +Austria,AUT,1999,376.35103765204354 +Austria,AUT,2000,377.37849566745973 +Austria,AUT,2001,392.60805102441816 +Austria,AUT,2002,394.27700044478337 +Austria,AUT,2003,400.82299616835684 +Austria,AUT,2004,407.8726918456341 +Austria,AUT,2005,415.61009258325055 +Austria,AUT,2006,412.019809690755 +Austria,AUT,2007,403.1952774140121 +Austria,AUT,2008,412.16756107432354 +Austria,AUT,2009,399.3929250165941 +Austria,AUT,2010,413.5406345743519 +Austria,AUT,2011,386.94648631665393 +Austria,AUT,2012,406.6191793731444 +Austria,AUT,2013,402.988473315234 +Austria,AUT,2014,387.780423025891 +Austria,AUT,2015,388.73357131081985 +Austria,AUT,2016,401.96892575875705 +Austria,AUT,2017,413.13350381086474 +Austria,AUT,2018,407.0015428771737 +Azerbaijan,AZE,1985,234.30933747653486 +Azerbaijan,AZE,1986,252.33484620205385 +Azerbaijan,AZE,1987,244.52614642874866 +Azerbaijan,AZE,1988,244.74513137425663 +Azerbaijan,AZE,1989,249.5809204407419 +Azerbaijan,AZE,1990,259.7631595415488 +Azerbaijan,AZE,1991,249.5409301849855 +Azerbaijan,AZE,1992,213.64027007205814 +Azerbaijan,AZE,1993,185.05423505429906 +Azerbaijan,AZE,1994,170.14147352498122 +Azerbaijan,AZE,1995,160.01541053123984 +Azerbaijan,AZE,1996,131.14806528711676 +Azerbaijan,AZE,1997,125.5094601815615 +Azerbaijan,AZE,1998,125.92810223653031 +Azerbaijan,AZE,1999,125.51847281587396 +Azerbaijan,AZE,2000,131.04665769096354 +Azerbaijan,AZE,2001,126.38319234354567 +Azerbaijan,AZE,2002,124.7272766467425 +Azerbaijan,AZE,2003,134.93369921091386 +Azerbaijan,AZE,2004,153.06171848888943 +Azerbaijan,AZE,2005,165.9875936730996 +Azerbaijan,AZE,2006,163.39234936725117 +Azerbaijan,AZE,2007,147.84133547055725 +Azerbaijan,AZE,2008,149.318129321704 +Azerbaijan,AZE,2009,131.9547731857396 +Azerbaijan,AZE,2010,130.22023198255624 +Azerbaijan,AZE,2011,144.88177414190224 +Azerbaijan,AZE,2012,149.2597687910025 +Azerbaijan,AZE,2013,153.46907910970506 +Azerbaijan,AZE,2014,156.52301409472153 +Azerbaijan,AZE,2015,171.17589233914003 +Azerbaijan,AZE,2016,169.59433924995312 +Azerbaijan,AZE,2017,166.37837289701721 +Azerbaijan,AZE,2018,167.43452350295271 +Bangladesh,BGD,1971,8.135291666666673 +Bangladesh,BGD,1972,15.862670413567232 +Bangladesh,BGD,1973,19.574157651578947 +Bangladesh,BGD,1974,20.241851298654993 +Bangladesh,BGD,1975,22.954495181052653 +Bangladesh,BGD,1976,26.335063667777813 +Bangladesh,BGD,1977,27.046376241111076 +Bangladesh,BGD,1978,29.142202096257346 +Bangladesh,BGD,1979,32.27539645877189 +Bangladesh,BGD,1980,36.38836300409356 +Bangladesh,BGD,1981,36.636313649431635 +Bangladesh,BGD,1982,40.47115710298066 +Bangladesh,BGD,1983,39.9747705143801 +Bangladesh,BGD,1984,43.15062931487976 +Bangladesh,BGD,1985,48.033625221542714 +Bangladesh,BGD,1986,52.390141110662974 +Bangladesh,BGD,1987,57.81630957559498 +Bangladesh,BGD,1988,64.35672046051529 +Bangladesh,BGD,1989,69.31486952222478 +Bangladesh,BGD,1990,73.56874053143896 +Bangladesh,BGD,1991,70.98191547847806 +Bangladesh,BGD,1992,77.451526381883 +Bangladesh,BGD,1993,85.23790524568055 +Bangladesh,BGD,1994,90.41445194825441 +Bangladesh,BGD,1995,106.98757285937943 +Bangladesh,BGD,1996,111.96198627857058 +Bangladesh,BGD,1997,117.6568435825957 +Bangladesh,BGD,1998,125.27770154893153 +Bangladesh,BGD,1999,126.7143010805749 +Bangladesh,BGD,2000,135.87709770390524 +Bangladesh,BGD,2001,155.2809235709591 +Bangladesh,BGD,2002,160.29624226289724 +Bangladesh,BGD,2003,169.91727084912523 +Bangladesh,BGD,2004,175.77673589586414 +Bangladesh,BGD,2005,186.82833421377728 +Bangladesh,BGD,2006,198.2275683076827 +Bangladesh,BGD,2007,207.11252016418462 +Bangladesh,BGD,2008,219.0422604351003 +Bangladesh,BGD,2009,239.98236912244283 +Bangladesh,BGD,2010,251.15692439929762 +Bangladesh,BGD,2011,267.71447934799454 +Bangladesh,BGD,2012,291.20121866214816 +Bangladesh,BGD,2013,296.9778933490554 +Bangladesh,BGD,2014,314.44112358918017 +Bangladesh,BGD,2015,363.5425430294553 +Bangladesh,BGD,2016,369.3937845083417 +Bangladesh,BGD,2017,383.4701689206792 +Bangladesh,BGD,2018,416.2945268606732 +Belarus,BLR,1985,408.037199970314 +Belarus,BLR,1986,465.83185347326037 +Belarus,BLR,1987,472.6128569267391 +Belarus,BLR,1988,479.3984611674617 +Belarus,BLR,1989,463.65414797226043 +Belarus,BLR,1990,444.5658542409557 +Belarus,BLR,1991,439.76228918824324 +Belarus,BLR,1992,416.0652609698734 +Belarus,BLR,1993,333.2197535706494 +Belarus,BLR,1994,277.6779385154472 +Belarus,BLR,1995,251.94189394778672 +Belarus,BLR,1996,258.32810942947987 +Belarus,BLR,1997,260.91304747130675 +Belarus,BLR,1998,255.32173864690577 +Belarus,BLR,1999,248.52772323826406 +Belarus,BLR,2000,255.39478963963896 +Belarus,BLR,2001,248.96256083083523 +Belarus,BLR,2002,256.3733323678601 +Belarus,BLR,2003,255.22859689791986 +Belarus,BLR,2004,287.4751576782586 +Belarus,BLR,2005,286.4489534487054 +Belarus,BLR,2006,304.2683040116021 +Belarus,BLR,2007,297.1229055507751 +Belarus,BLR,2008,300.64097073427587 +Belarus,BLR,2009,285.0448400422239 +Belarus,BLR,2010,302.68163436114173 +Belarus,BLR,2011,300.96740773656745 +Belarus,BLR,2012,325.2096252576194 +Belarus,BLR,2013,286.79779119215823 +Belarus,BLR,2014,296.4909435919084 +Belarus,BLR,2015,269.32993896509066 +Belarus,BLR,2016,267.9265123425894 +Belarus,BLR,2017,271.9675213862284 +Belarus,BLR,2018,285.57803084463785 +Belgium,BEL,1965,412.85270352362915 +Belgium,BEL,1966,397.76044266779144 +Belgium,BEL,1967,417.5580761736155 +Belgium,BEL,1968,465.3250248278481 +Belgium,BEL,1969,510.6954684281036 +Belgium,BEL,1970,539.4992597651636 +Belgium,BEL,1971,529.2907747855801 +Belgium,BEL,1972,562.6720479414919 +Belgium,BEL,1973,570.1896298480837 +Belgium,BEL,1974,550.613468504472 +Belgium,BEL,1975,516.5160790330075 +Belgium,BEL,1976,547.4451223116387 +Belgium,BEL,1977,547.9323958433348 +Belgium,BEL,1978,571.9190795343764 +Belgium,BEL,1979,588.7210740397693 +Belgium,BEL,1980,563.2634238734606 +Belgium,BEL,1981,535.3619130101306 +Belgium,BEL,1982,511.520075253443 +Belgium,BEL,1983,493.88332992525 +Belgium,BEL,1984,515.6358553372157 +Belgium,BEL,1985,537.1195667241776 +Belgium,BEL,1986,553.4328851007593 +Belgium,BEL,1987,569.8159390213996 +Belgium,BEL,1988,581.1073808772649 +Belgium,BEL,1989,585.8738004803114 +Belgium,BEL,1990,620.9789157032749 +Belgium,BEL,1991,642.6063545748979 +Belgium,BEL,1992,640.1358469766091 +Belgium,BEL,1993,630.0894207860823 +Belgium,BEL,1994,665.6455692561741 +Belgium,BEL,1995,671.4257695398745 +Belgium,BEL,1996,713.9240413746098 +Belgium,BEL,1997,719.9759591222365 +Belgium,BEL,1998,734.7463985886237 +Belgium,BEL,1999,728.2137117882752 +Belgium,BEL,2000,744.9712180160611 +Belgium,BEL,2001,739.9832471924465 +Belgium,BEL,2002,737.6530115309762 +Belgium,BEL,2003,766.5745833993001 +Belgium,BEL,2004,770.0134937579037 +Belgium,BEL,2005,764.8428494802939 +Belgium,BEL,2006,768.219667426064 +Belgium,BEL,2007,774.5840855548596 +Belgium,BEL,2008,787.5451074240613 +Belgium,BEL,2009,737.2324337478682 +Belgium,BEL,2010,785.3585401867929 +Belgium,BEL,2011,732.838474538727 +Belgium,BEL,2012,705.9889529672669 +Belgium,BEL,2013,723.7792544992056 +Belgium,BEL,2014,676.460477428669 +Belgium,BEL,2015,687.508589845155 +Belgium,BEL,2016,742.7717944925382 +Belgium,BEL,2017,745.5780920771971 +Belgium,BEL,2018,723.2607195112448 +Brazil,BRA,1965,261.51479764186286 +Brazil,BRA,1966,285.2748217761801 +Brazil,BRA,1967,295.454949604474 +Brazil,BRA,1968,338.69848588124336 +Brazil,BRA,1969,369.99385686789617 +Brazil,BRA,1970,434.6105153410556 +Brazil,BRA,1971,475.33039355124566 +Brazil,BRA,1972,547.4523320155774 +Brazil,BRA,1973,653.0940451986457 +Brazil,BRA,1974,713.0998087602139 +Brazil,BRA,1975,752.9844078516196 +Brazil,BRA,1976,826.441771749295 +Brazil,BRA,1977,882.444767355194 +Brazil,BRA,1978,972.5682808886409 +Brazil,BRA,1979,1052.1027374224632 +Brazil,BRA,1980,1071.9762148056002 +Brazil,BRA,1981,1044.3060812375602 +Brazil,BRA,1982,1095.5049563750608 +Brazil,BRA,1983,1115.959788788999 +Brazil,BRA,1984,1197.3837767715781 +Brazil,BRA,1985,1274.6334345506793 +Brazil,BRA,1986,1360.7300459393641 +Brazil,BRA,1987,1401.572742543804 +Brazil,BRA,1988,1454.2765968896606 +Brazil,BRA,1989,1483.1371407550616 +Brazil,BRA,1990,1457.751470547842 +Brazil,BRA,1991,1513.3950898854682 +Brazil,BRA,1992,1584.6346030225648 +Brazil,BRA,1993,1655.4390732629515 +Brazil,BRA,1994,1740.3799623800544 +Brazil,BRA,1995,1827.1587307527816 +Brazil,BRA,1996,1929.5170284260741 +Brazil,BRA,1997,2039.9119373557044 +Brazil,BRA,1998,2114.0681614018154 +Brazil,BRA,1999,2152.2346529146366 +Brazil,BRA,2000,2187.356426241153 +Brazil,BRA,2001,2152.734857246015 +Brazil,BRA,2002,2207.4904111327564 +Brazil,BRA,2003,2250.675324593775 +Brazil,BRA,2004,2366.859625876358 +Brazil,BRA,2005,2439.5132484288524 +Brazil,BRA,2006,2506.1597839878405 +Brazil,BRA,2007,2666.1386738128467 +Brazil,BRA,2008,2790.341078318875 +Brazil,BRA,2009,2774.6645906914523 +Brazil,BRA,2010,3060.2523908526136 +Brazil,BRA,2011,3207.830637319477 +Brazil,BRA,2012,3271.8608746030745 +Brazil,BRA,2013,3400.6485512068475 +Brazil,BRA,2014,3481.861583259032 +Brazil,BRA,2015,3441.894407421213 +Brazil,BRA,2016,3366.178994170926 +Brazil,BRA,2017,3417.9262139677394 +Brazil,BRA,2018,3461.031515112969 +Bulgaria,BGR,1965,119.2800672222225 +Bulgaria,BGR,1966,127.91352333333377 +Bulgaria,BGR,1967,148.6881350000005 +Bulgaria,BGR,1968,166.50957833333385 +Bulgaria,BGR,1969,185.46788388888947 +Bulgaria,BGR,1970,208.6588330555554 +Bulgaria,BGR,1971,217.30229249999957 +Bulgaria,BGR,1972,223.63599611111172 +Bulgaria,BGR,1973,232.24279111111102 +Bulgaria,BGR,1974,239.1668380555553 +Bulgaria,BGR,1975,263.98906694444474 +Bulgaria,BGR,1976,279.0116638888885 +Bulgaria,BGR,1977,293.75567250000006 +Bulgaria,BGR,1978,304.4640208333329 +Bulgaria,BGR,1979,315.90853972222163 +Bulgaria,BGR,1980,333.51243083333384 +Bulgaria,BGR,1981,327.97831861111143 +Bulgaria,BGR,1982,335.91224499999964 +Bulgaria,BGR,1983,337.8003397222224 +Bulgaria,BGR,1984,335.7621872222223 +Bulgaria,BGR,1985,333.44197527777783 +Bulgaria,BGR,1986,340.39818833333356 +Bulgaria,BGR,1987,342.9078944444442 +Bulgaria,BGR,1988,350.2272772222226 +Bulgaria,BGR,1989,347.40305944444447 +Bulgaria,BGR,1990,320.3711162236235 +Bulgaria,BGR,1991,259.82891158714517 +Bulgaria,BGR,1992,244.02604693923504 +Bulgaria,BGR,1993,259.16669909368426 +Bulgaria,BGR,1994,249.18662922488764 +Bulgaria,BGR,1995,267.26183609022 +Bulgaria,BGR,1996,266.9610319021535 +Bulgaria,BGR,1997,252.34085534402334 +Bulgaria,BGR,1998,242.11820892538026 +Bulgaria,BGR,1999,211.74649750462927 +Bulgaria,BGR,2000,212.68176826670978 +Bulgaria,BGR,2001,222.15051066827633 +Bulgaria,BGR,2002,216.04645015149833 +Bulgaria,BGR,2003,223.16354070273252 +Bulgaria,BGR,2004,216.55160473504188 +Bulgaria,BGR,2005,234.3406412940347 +Bulgaria,BGR,2006,240.41774627834582 +Bulgaria,BGR,2007,233.40858291742364 +Bulgaria,BGR,2008,229.91188171325518 +Bulgaria,BGR,2009,202.05253152213854 +Bulgaria,BGR,2010,210.46564307858873 +Bulgaria,BGR,2011,224.1610367864634 +Bulgaria,BGR,2012,213.42368090166207 +Bulgaria,BGR,2013,197.76656927446714 +Bulgaria,BGR,2014,210.87488117817227 +Bulgaria,BGR,2015,224.73845166286068 +Bulgaria,BGR,2016,213.1092028447886 +Bulgaria,BGR,2017,217.9627580507302 +Bulgaria,BGR,2018,216.01844259993587 +CIS,,1965,6900.2211236797875 +CIS,,1966,7337.457098910874 +CIS,,1967,7712.827002860533 +CIS,,1968,7998.801732830085 +CIS,,1969,8361.934967824714 +CIS,,1970,8778.396558836379 +CIS,,1971,9209.745801496534 +CIS,,1972,9680.010832686523 +CIS,,1973,10177.22135540317 +CIS,,1974,10737.970806439833 +CIS,,1975,11269.304362428395 +CIS,,1976,11705.678169876024 +CIS,,1977,12227.220069669815 +CIS,,1978,12724.987091396535 +CIS,,1979,13108.235679323503 +CIS,,1980,13375.669192556437 +CIS,,1981,13659.171705131965 +CIS,,1982,14002.626645411206 +CIS,,1983,14293.511008493257 +CIS,,1984,14823.698121847994 +CIS,,1985,11944.863797017435 +CIS,,1986,12220.178071910548 +CIS,,1987,12579.382770283022 +CIS,,1988,12845.823456809194 +CIS,,1989,12858.238524180191 +CIS,,1990,12636.670927815228 +CIS,,1991,12428.012184721496 +CIS,,1992,11800.65187170192 +CIS,,1993,10976.753402953495 +CIS,,1994,10008.706932546427 +CIS,,1995,9408.11381988839 +CIS,,1996,9102.138395339045 +CIS,,1997,8583.938487518293 +CIS,,1998,8569.008675261504 +CIS,,1999,8672.775460342833 +CIS,,2000,8750.42222019891 +CIS,,2001,8939.395951283499 +CIS,,2002,8921.651760936671 +CIS,,2003,9140.673878902773 +CIS,,2004,9312.232596502265 +CIS,,2005,9341.10737260246 +CIS,,2006,9685.650232652717 +CIS,,2007,9821.11247972684 +CIS,,2008,9823.513781421707 +CIS,,2009,9422.139992300696 +CIS,,2010,9806.723760104664 +CIS,,2011,10211.674294331591 +CIS,,2012,10312.542687371966 +CIS,,2013,10142.767991279588 +CIS,,2014,10237.615544461001 +CIS,,2015,10093.401649075637 +CIS,,2016,10251.522558849783 +CIS,,2017,10365.16120241614 +CIS,,2018,10822.08825091469 +Canada,CAN,1965,1348.043170994157 +Canada,CAN,1966,1430.3929718567285 +Canada,CAN,1967,1500.5786688011642 +Canada,CAN,1968,1601.3981697514644 +Canada,CAN,1969,1689.8741524853785 +Canada,CAN,1970,1809.48834709064 +Canada,CAN,1971,1858.4046527777814 +Canada,CAN,1972,1985.220533888891 +Canada,CAN,1973,2107.8347291666723 +Canada,CAN,1974,2181.284614166671 +Canada,CAN,1975,2157.006520277774 +Canada,CAN,1976,2280.773381593568 +Canada,CAN,1977,2390.4098278947395 +Canada,CAN,1978,2432.4370357017547 +Canada,CAN,1979,2461.247513128656 +Canada,CAN,1980,2520.0166006871405 +Canada,CAN,1981,2450.176331286554 +Canada,CAN,1982,2481.8902076461986 +Canada,CAN,1983,2462.0009687719266 +Canada,CAN,1984,2621.471183888894 +Canada,CAN,1985,2702.529752997078 +Canada,CAN,1986,2706.9277948099475 +Canada,CAN,1987,2800.185833464912 +Canada,CAN,1988,2917.285548947374 +Canada,CAN,1989,2949.7079414612067 +Canada,CAN,1990,2895.3974790842517 +Canada,CAN,1991,2897.9259504578304 +Canada,CAN,1992,2970.9928271682675 +Canada,CAN,1993,3035.4867620154987 +Canada,CAN,1994,3147.3368235080566 +Canada,CAN,1995,3216.175210272886 +Canada,CAN,1996,3304.784668732433 +Canada,CAN,1997,3333.0247059764406 +Canada,CAN,1998,3290.2481468419724 +Canada,CAN,1999,3394.62660495875 +Canada,CAN,2000,3493.812749150524 +Canada,CAN,2001,3417.9234290078975 +Canada,CAN,2002,3530.276415110186 +Canada,CAN,2003,3555.054151083193 +Canada,CAN,2004,3603.5847876988378 +Canada,CAN,2005,3646.97084080329 +Canada,CAN,2006,3609.884124687282 +Canada,CAN,2007,3745.5474805396225 +Canada,CAN,2008,3739.518659739619 +Canada,CAN,2009,3545.817586317525 +Canada,CAN,2010,3628.1428301336123 +Canada,CAN,2011,3805.378810097547 +Canada,CAN,2012,3776.551554692874 +Canada,CAN,2013,3919.5404566545235 +Canada,CAN,2014,3975.2952274734203 +Canada,CAN,2015,3943.070620536991 +Canada,CAN,2016,3933.5391132316045 +Canada,CAN,2017,3997.1930792746493 +Canada,CAN,2018,4005.6529471730537 +Central America,,1965,50.1307920453292 +Central America,,1966,50.921257095351514 +Central America,,1967,53.92517067763239 +Central America,,1968,55.2046321934029 +Central America,,1969,58.988199653913185 +Central America,,1970,61.51682463720886 +Central America,,1971,64.76266275301941 +Central America,,1972,70.24893912006165 +Central America,,1973,73.77818184606231 +Central America,,1974,75.73044128956067 +Central America,,1975,83.19231428299842 +Central America,,1976,86.49689589276808 +Central America,,1977,88.14420483234098 +Central America,,1978,92.00838031497051 +Central America,,1979,93.59081937865494 +Central America,,1980,90.59678660586108 +Central America,,1981,91.72087105824862 +Central America,,1982,91.54077529229423 +Central America,,1983,92.2028833030254 +Central America,,1984,93.23923252753657 +Central America,,1985,95.37411403724015 +Central America,,1986,98.65892148459473 +Central America,,1987,105.11243707224901 +Central America,,1988,104.21577261882268 +Central America,,1989,110.75166136057 +Central America,,1990,114.62824264579469 +Central America,,1991,121.51274388980161 +Central America,,1992,133.3868024510761 +Central America,,1993,143.19517035589877 +Central America,,1994,152.12007689851848 +Central America,,1995,164.33343850792113 +Central America,,1996,166.62998453563935 +Central America,,1997,175.95109187220805 +Central America,,1998,195.56507802126288 +Central America,,1999,201.77512267709096 +Central America,,2000,210.7314467063103 +Central America,,2001,218.5799644813857 +Central America,,2002,221.96820187134279 +Central America,,2003,232.30357805616876 +Central America,,2004,239.32716259722574 +Central America,,2005,241.84086278154018 +Central America,,2006,255.00876497541717 +Central America,,2007,267.60879459558015 +Central America,,2008,274.66594046040683 +Central America,,2009,269.8881560948143 +Central America,,2010,280.93804168293804 +Central America,,2011,295.69703977278874 +Central America,,2012,306.30799529986916 +Central America,,2013,309.4423543108085 +Central America,,2014,319.69295047122296 +Central America,,2015,348.15909454216046 +Central America,,2016,364.05534583229803 +Central America,,2017,373.71259590544815 +Central America,,2018,391.54985600634427 +Chile,CHL,1965,71.74195762971097 +Chile,CHL,1966,76.91124830588326 +Chile,CHL,1967,78.42455336897528 +Chile,CHL,1968,78.34606145265221 +Chile,CHL,1969,84.33722260880837 +Chile,CHL,1970,88.9932722539104 +Chile,CHL,1971,95.09389587719295 +Chile,CHL,1972,97.85985666666674 +Chile,CHL,1973,94.64475858187132 +Chile,CHL,1974,93.38378818713451 +Chile,CHL,1975,84.0978121929825 +Chile,CHL,1976,88.16961387426902 +Chile,CHL,1977,91.17974964912287 +Chile,CHL,1978,96.74526035087725 +Chile,CHL,1979,99.8043595321637 +Chile,CHL,1980,103.00522745614035 +Chile,CHL,1981,105.64603451754382 +Chile,CHL,1982,96.58909770467841 +Chile,CHL,1983,98.59920314327479 +Chile,CHL,1984,103.37846459064326 +Chile,CHL,1985,106.38922906432742 +Chile,CHL,1986,111.10760105263154 +Chile,CHL,1987,116.51286945906388 +Chile,CHL,1988,130.34012307017522 +Chile,CHL,1989,144.28977812865523 +Chile,CHL,1990,152.23109082163774 +Chile,CHL,1991,170.1105996900585 +Chile,CHL,1992,187.7693884766076 +Chile,CHL,1993,198.64430043207702 +Chile,CHL,1994,208.9527299707598 +Chile,CHL,1995,225.1901198479526 +Chile,CHL,1996,239.37982290397622 +Chile,CHL,1997,273.917238490058 +Chile,CHL,1998,275.63879595029175 +Chile,CHL,1999,287.8842225643275 +Chile,CHL,2000,303.70482650292365 +Chile,CHL,2001,305.76062438888914 +Chile,CHL,2002,316.80235921052616 +Chile,CHL,2003,315.46768181578904 +Chile,CHL,2004,332.156366410029 +Chile,CHL,2005,345.35860908829005 +Chile,CHL,2006,369.25425227510163 +Chile,CHL,2007,377.8982604747691 +Chile,CHL,2008,374.18477984536366 +Chile,CHL,2009,366.8952917444191 +Chile,CHL,2010,368.8495662643175 +Chile,CHL,2011,401.26402163280613 +Chile,CHL,2012,410.71511645845857 +Chile,CHL,2013,415.23175642777045 +Chile,CHL,2014,407.9148437146516 +Chile,CHL,2015,417.68823759853814 +Chile,CHL,2016,438.0693707781038 +Chile,CHL,2017,445.52743717217083 +Chile,CHL,2018,466.3308833239992 +China,CHN,1965,1529.0036653957704 +China,CHN,1966,1661.9907588962687 +China,CHN,1967,1494.7608728687312 +China,CHN,1968,1509.2536533824978 +China,CHN,1969,1837.6173492354965 +China,CHN,1970,2353.8764803785607 +China,CHN,1971,2790.6628000122882 +China,CHN,1972,3008.113956796953 +China,CHN,1973,3174.9092337020666 +China,CHN,1974,3273.2002484390355 +China,CHN,1975,3666.250184913959 +China,CHN,1976,3860.4453888864277 +China,CHN,1977,4210.139776497045 +China,CHN,1978,4617.966547109139 +China,CHN,1979,4756.025128485739 +China,CHN,1980,4847.776402951134 +China,CHN,1981,4781.406686645237 +China,CHN,1982,4991.821064334859 +China,CHN,1983,5311.389161962301 +China,CHN,1984,5699.800239165316 +China,CHN,1985,6164.965980173284 +China,CHN,1986,6461.492551096853 +China,CHN,1987,6968.511809871976 +China,CHN,1988,7484.8323002399575 +China,CHN,1989,7853.3489854894415 +China,CHN,1990,7953.984521296604 +China,CHN,1991,8357.540454548287 +China,CHN,1992,8801.081973802606 +China,CHN,1993,9474.6884945488 +China,CHN,1994,10054.439064588985 +China,CHN,1995,10360.687129821961 +China,CHN,1996,10902.323546245718 +China,CHN,1997,10964.571439562 +China,CHN,1998,10979.25961402515 +China,CHN,1999,11365.4160436996 +China,CHN,2000,11757.131164599345 +China,CHN,2001,12417.892187629963 +China,CHN,2002,13533.031574637238 +China,CHN,2003,15766.562426930066 +China,CHN,2004,18448.787100887243 +China,CHN,2005,20966.89843534381 +China,CHN,2006,22993.818864764424 +China,CHN,2007,25000.357048089147 +China,CHN,2008,25939.73477852968 +China,CHN,2009,27099.593206744343 +China,CHN,2010,28977.748561833254 +China,CHN,2011,31290.67441082402 +China,CHN,2012,32558.223499705215 +China,CHN,2013,33814.393499852195 +China,CHN,2014,34595.64895008942 +China,CHN,2015,35001.97848552344 +China,CHN,2016,35437.84338213813 +China,CHN,2017,36506.93409416597 +China,CHN,2018,38070.39795085376 +Colombia,COL,1965,87.74424500022185 +Colombia,COL,1966,95.59766124415552 +Colombia,COL,1967,101.74233546812714 +Colombia,COL,1968,107.14650837852034 +Colombia,COL,1969,108.92763084257344 +Colombia,COL,1970,118.81909661540301 +Colombia,COL,1971,116.71254618832424 +Colombia,COL,1972,131.11380987890527 +Colombia,COL,1973,130.8316020608283 +Colombia,COL,1974,146.59161540447786 +Colombia,COL,1975,149.4731026112317 +Colombia,COL,1976,155.69765066093808 +Colombia,COL,1977,159.2360235248635 +Colombia,COL,1978,170.20218733522356 +Colombia,COL,1979,180.7437327428065 +Colombia,COL,1980,183.69124257053406 +Colombia,COL,1981,188.13443594990062 +Colombia,COL,1982,196.68345394674478 +Colombia,COL,1983,206.81452603554936 +Colombia,COL,1984,212.12134099716164 +Colombia,COL,1985,220.4331012960315 +Colombia,COL,1986,227.2895955710615 +Colombia,COL,1987,247.12226381582695 +Colombia,COL,1988,247.1133616662714 +Colombia,COL,1989,259.87360228377753 +Colombia,COL,1990,242.66750569762382 +Colombia,COL,1991,252.1673611722019 +Colombia,COL,1992,264.72959868333044 +Colombia,COL,1993,290.97077083277617 +Colombia,COL,1994,312.0852292328772 +Colombia,COL,1995,317.0072824396621 +Colombia,COL,1996,324.7771248777511 +Colombia,COL,1997,334.9864687541524 +Colombia,COL,1998,337.0596345066491 +Colombia,COL,1999,311.011044460626 +Colombia,COL,2000,303.37026278003214 +Colombia,COL,2001,298.8824790018371 +Colombia,COL,2002,298.07285975555084 +Colombia,COL,2003,309.1104348099541 +Colombia,COL,2004,315.09513222643375 +Colombia,COL,2005,316.3542579305035 +Colombia,COL,2006,355.49018646672346 +Colombia,COL,2007,357.42428141908124 +Colombia,COL,2008,386.8747873025133 +Colombia,COL,2009,369.73846771305864 +Colombia,COL,2010,396.3990972009803 +Colombia,COL,2011,415.46968177164473 +Colombia,COL,2012,445.19624832902747 +Colombia,COL,2013,451.84044230334337 +Colombia,COL,2014,476.96303585987425 +Colombia,COL,2015,480.3972457520065 +Colombia,COL,2016,514.5463281471378 +Colombia,COL,2017,529.2868378211598 +Colombia,COL,2018,546.0092198286926 +Croatia,HRV,1990,99.2149488758479 +Croatia,HRV,1991,82.89568397836246 +Croatia,HRV,1992,79.10460494467826 +Croatia,HRV,1993,82.51533743608178 +Croatia,HRV,1994,83.09161904152039 +Croatia,HRV,1995,85.98536037152037 +Croatia,HRV,1996,91.68080371707586 +Croatia,HRV,1997,91.45494770350867 +Croatia,HRV,1998,96.75791964023377 +Croatia,HRV,1999,99.70612226304084 +Croatia,HRV,2000,94.4496812852046 +Croatia,HRV,2001,99.31882687105256 +Croatia,HRV,2002,99.94021325660812 +Croatia,HRV,2003,104.85446513140342 +Croatia,HRV,2004,108.63217191192975 +Croatia,HRV,2005,107.64498461842103 +Croatia,HRV,2006,106.5246892642689 +Croatia,HRV,2007,107.52882415508763 +Croatia,HRV,2008,106.82362746163744 +Croatia,HRV,2009,105.31963381643261 +Croatia,HRV,2010,106.91032148116953 +Croatia,HRV,2011,93.75822551672508 +Croatia,HRV,2012,86.97272409660815 +Croatia,HRV,2013,95.14286551871338 +Croatia,HRV,2014,95.16215125777771 +Croatia,HRV,2015,90.42819541140338 +Croatia,HRV,2016,94.13001691134491 +Croatia,HRV,2017,94.29306123578941 +Croatia,HRV,2018,100.46296928331114 +Cyprus,CYP,1965,4.680250555555556 +Cyprus,CYP,1966,5.338632500000006 +Cyprus,CYP,1967,5.787254722222228 +Cyprus,CYP,1968,6.427251666666663 +Cyprus,CYP,1969,7.589793611111107 +Cyprus,CYP,1970,8.004829166666665 +Cyprus,CYP,1971,9.54851444444445 +Cyprus,CYP,1972,10.737023888888894 +Cyprus,CYP,1973,11.519170277777773 +Cyprus,CYP,1974,10.213084166666672 +Cyprus,CYP,1975,8.530229999999996 +Cyprus,CYP,1976,8.673059444444446 +Cyprus,CYP,1977,9.796983611111113 +Cyprus,CYP,1978,10.044485277777781 +Cyprus,CYP,1979,10.192833333333331 +Cyprus,CYP,1980,10.278665000000004 +Cyprus,CYP,1981,9.856193611111113 +Cyprus,CYP,1982,11.81379194444447 +Cyprus,CYP,1983,12.430679722222182 +Cyprus,CYP,1984,12.612488888888903 +Cyprus,CYP,1985,13.565379722222193 +Cyprus,CYP,1986,14.143438333333325 +Cyprus,CYP,1987,17.280825277777723 +Cyprus,CYP,1988,17.845005833333307 +Cyprus,CYP,1989,18.312032499999948 +Cyprus,CYP,1990,19.27453583333336 +Cyprus,CYP,1991,19.512156666666645 +Cyprus,CYP,1992,22.79668000000003 +Cyprus,CYP,1993,23.690177777777773 +Cyprus,CYP,1994,23.73236027777782 +Cyprus,CYP,1995,25.230673055555524 +Cyprus,CYP,1996,25.604817777777743 +Cyprus,CYP,1997,25.851622777777816 +Cyprus,CYP,1998,27.4466055555556 +Cyprus,CYP,1999,28.880678888888944 +Cyprus,CYP,2000,30.2611052777778 +Cyprus,CYP,2001,30.60965277777783 +Cyprus,CYP,2002,30.185936388888887 +Cyprus,CYP,2003,32.08830055555559 +Cyprus,CYP,2004,31.228174897660807 +Cyprus,CYP,2005,34.99257257309936 +Cyprus,CYP,2006,34.41155459202506 +Cyprus,CYP,2007,34.98717750136215 +Cyprus,CYP,2008,35.876319226473036 +Cyprus,CYP,2009,35.01785282288957 +Cyprus,CYP,2010,34.059295907704524 +Cyprus,CYP,2011,33.67997669712318 +Cyprus,CYP,2012,31.55409143391814 +Cyprus,CYP,2013,28.224896404678336 +Cyprus,CYP,2014,28.245348216389946 +Cyprus,CYP,2015,29.134354845725298 +Cyprus,CYP,2016,31.690833871988268 +Cyprus,CYP,2017,32.55528090862158 +Cyprus,CYP,2018,32.378477635266286 +Czech Republic,CZE,1965,468.0519172222227 +Czech Republic,CZE,1966,471.599968333333 +Czech Republic,CZE,1967,464.3232108333332 +Czech Republic,CZE,1968,484.41472916666646 +Czech Republic,CZE,1969,505.14327305555577 +Czech Republic,CZE,1970,526.3149638888885 +Czech Republic,CZE,1971,553.2226794444448 +Czech Republic,CZE,1972,556.4107016666668 +Czech Republic,CZE,1973,559.8174469444441 +Czech Republic,CZE,1974,565.3516666666666 +Czech Republic,CZE,1975,588.7155350000006 +Czech Republic,CZE,1976,605.2442419444448 +Czech Republic,CZE,1977,625.0074638888887 +Czech Republic,CZE,1978,633.794500555555 +Czech Republic,CZE,1979,640.3533347222219 +Czech Republic,CZE,1980,620.0453725000001 +Czech Republic,CZE,1981,615.5504899999999 +Czech Republic,CZE,1982,608.4741538888888 +Czech Republic,CZE,1983,608.8657899999998 +Czech Republic,CZE,1984,626.3791222222223 +Czech Republic,CZE,1985,630.4784130555561 +Czech Republic,CZE,1986,636.6666122222223 +Czech Republic,CZE,1987,650.259283055556 +Czech Republic,CZE,1988,653.024909166667 +Czech Republic,CZE,1989,632.9004886111111 +Czech Republic,CZE,1990,543.7783515723387 +Czech Republic,CZE,1991,494.7959469403504 +Czech Republic,CZE,1992,480.01704335421095 +Czech Republic,CZE,1993,475.9680087907605 +Czech Republic,CZE,1994,463.1773067201168 +Czech Republic,CZE,1995,482.85621814742666 +Czech Republic,CZE,1996,499.5194635900004 +Czech Republic,CZE,1997,478.9807875438012 +Czech Republic,CZE,1998,464.84493156152047 +Czech Republic,CZE,1999,445.42194335713407 +Czech Republic,CZE,2000,470.94895047192927 +Czech Republic,CZE,2001,481.65227494549634 +Czech Republic,CZE,2002,482.68541926918124 +Czech Republic,CZE,2003,510.1063153347366 +Czech Republic,CZE,2004,523.1120090683628 +Czech Republic,CZE,2005,515.5789924628066 +Czech Republic,CZE,2006,525.8392568709936 +Czech Republic,CZE,2007,520.4497892216366 +Czech Republic,CZE,2008,511.11431952824495 +Czech Republic,CZE,2009,490.78499853543866 +Czech Republic,CZE,2010,511.76489034795264 +Czech Republic,CZE,2011,500.55858590652446 +Czech Republic,CZE,2012,498.1012861784756 +Czech Republic,CZE,2013,489.12539899788555 +Czech Republic,CZE,2014,478.8425021618853 +Czech Republic,CZE,2015,470.93532852303133 +Czech Republic,CZE,2016,463.97841911960666 +Czech Republic,CZE,2017,485.7048211096713 +Czech Republic,CZE,2018,489.83957808922395 +Denmark,DNK,1965,166.19249883333373 +Denmark,DNK,1966,189.0406739999998 +Denmark,DNK,1967,190.1077036666673 +Denmark,DNK,1968,198.6629109999996 +Denmark,DNK,1969,228.03969261111135 +Denmark,DNK,1970,242.97660583333294 +Denmark,DNK,1971,229.62233722222172 +Denmark,DNK,1972,242.3294566111112 +Denmark,DNK,1973,234.45674477777743 +Denmark,DNK,1974,213.30108566666672 +Denmark,DNK,1975,210.2326429356725 +Denmark,DNK,1976,231.43699438888902 +Denmark,DNK,1977,236.18080683040898 +Denmark,DNK,1978,239.60882481286546 +Denmark,DNK,1979,239.12723881871383 +Denmark,DNK,1980,232.9463888654969 +Denmark,DNK,1981,209.23240263157902 +Denmark,DNK,1982,199.97849433040977 +Denmark,DNK,1983,190.0753730672509 +Denmark,DNK,1984,193.2535599883036 +Denmark,DNK,1985,217.76914222807042 +Denmark,DNK,1986,222.5647291111115 +Denmark,DNK,1987,214.54040721345066 +Denmark,DNK,1988,212.15579640643313 +Denmark,DNK,1989,195.59703385964949 +Denmark,DNK,1990,201.6355658654973 +Denmark,DNK,1991,232.40559046414873 +Denmark,DNK,1992,217.53781491793666 +Denmark,DNK,1993,230.55011445754394 +Denmark,DNK,1994,247.35386862639834 +Denmark,DNK,1995,242.86406921762017 +Denmark,DNK,1996,289.0167833011415 +Denmark,DNK,1997,261.81522206782637 +Denmark,DNK,1998,252.16024482638903 +Denmark,DNK,1999,244.31359338008423 +Denmark,DNK,2000,234.4004599525601 +Denmark,DNK,2001,235.04171671955632 +Denmark,DNK,2002,234.29153478322326 +Denmark,DNK,2003,252.33530080138678 +Denmark,DNK,2004,238.36656476700963 +Denmark,DNK,2005,230.02639748754538 +Denmark,DNK,2006,253.83308631727056 +Denmark,DNK,2007,240.61252464339884 +Denmark,DNK,2008,231.6397261555746 +Denmark,DNK,2009,217.91260196686568 +Denmark,DNK,2010,229.17319135900323 +Denmark,DNK,2011,216.79594831023522 +Denmark,DNK,2012,200.97904417572693 +Denmark,DNK,2013,210.16819873209297 +Denmark,DNK,2014,203.52611124340763 +Denmark,DNK,2015,196.7666075284923 +Denmark,DNK,2016,198.71517809766428 +Denmark,DNK,2017,199.96855182591594 +Denmark,DNK,2018,197.3507684509082 +Eastern Africa,,1965,111.6068478747138 +Eastern Africa,,1966,118.46435512586135 +Eastern Africa,,1967,124.11684275612483 +Eastern Africa,,1968,129.57590015400086 +Eastern Africa,,1969,133.75742253736593 +Eastern Africa,,1970,146.50253676842294 +Eastern Africa,,1971,156.32043647658932 +Eastern Africa,,1972,166.38247146170633 +Eastern Africa,,1973,172.81186393448124 +Eastern Africa,,1974,179.48777992406258 +Eastern Africa,,1975,176.61564705521562 +Eastern Africa,,1976,182.5841485757598 +Eastern Africa,,1977,185.58262493116945 +Eastern Africa,,1978,179.67780121675946 +Eastern Africa,,1979,183.58090298799752 +Eastern Africa,,1980,186.35400830519194 +Eastern Africa,,1981,183.52449341692764 +Eastern Africa,,1982,182.26097079005183 +Eastern Africa,,1983,178.33202083804719 +Eastern Africa,,1984,179.13107043333977 +Eastern Africa,,1985,186.3439960416344 +Eastern Africa,,1986,196.24173123120124 +Eastern Africa,,1987,197.26798745779942 +Eastern Africa,,1988,213.42856514907072 +Eastern Africa,,1989,216.32532460324714 +Eastern Africa,,1990,243.33811075689454 +Eastern Africa,,1991,231.5208790743406 +Eastern Africa,,1992,227.49110100961752 +Eastern Africa,,1993,242.43442575155723 +Eastern Africa,,1994,243.97599999846042 +Eastern Africa,,1995,248.50260818743595 +Eastern Africa,,1996,249.86350976010468 +Eastern Africa,,1997,259.65858920140994 +Eastern Africa,,1998,275.74562711897164 +Eastern Africa,,1999,281.4265931626468 +Eastern Africa,,2000,284.9423792713391 +Eastern Africa,,2001,306.9656397344554 +Eastern Africa,,2002,314.9317290935945 +Eastern Africa,,2003,311.5809016135721 +Eastern Africa,,2004,337.5903059249893 +Eastern Africa,,2005,349.87579191426136 +Eastern Africa,,2006,362.8434064369178 +Eastern Africa,,2007,380.0265484493778 +Eastern Africa,,2008,377.7146055895042 +Eastern Africa,,2009,398.6336669761924 +Eastern Africa,,2010,433.4146225702026 +Eastern Africa,,2011,456.8645342058124 +Eastern Africa,,2012,465.0880786241501 +Eastern Africa,,2013,506.03311207735874 +Eastern Africa,,2014,559.45297569285 +Eastern Africa,,2015,584.880380844766 +Eastern Africa,,2016,576.1773141796415 +Eastern Africa,,2017,605.0603323873368 +Eastern Africa,,2018,629.1256565759878 +Ecuador,ECU,1965,8.827777499999996 +Ecuador,ECU,1966,9.304819444444444 +Ecuador,ECU,1967,10.082515277777784 +Ecuador,ECU,1968,11.870032222222262 +Ecuador,ECU,1969,12.630500833333329 +Ecuador,ECU,1970,15.04082472222219 +Ecuador,ECU,1971,16.53522027777772 +Ecuador,ECU,1972,18.469451388888867 +Ecuador,ECU,1973,18.389198611111144 +Ecuador,ECU,1974,21.232815555555582 +Ecuador,ECU,1975,21.19462277777781 +Ecuador,ECU,1976,23.498849166666638 +Ecuador,ECU,1977,28.94387555555558 +Ecuador,ECU,1978,29.89433222222225 +Ecuador,ECU,1979,31.071763611111155 +Ecuador,ECU,1980,39.26167666666666 +Ecuador,ECU,1981,43.51862333333338 +Ecuador,ECU,1982,47.77021388888885 +Ecuador,ECU,1983,47.27327027777775 +Ecuador,ECU,1984,53.08167722222224 +Ecuador,ECU,1985,59.88875459064326 +Ecuador,ECU,1986,62.550256681286484 +Ecuador,ECU,1987,64.37828134502921 +Ecuador,ECU,1988,63.57714583333329 +Ecuador,ECU,1989,65.19382960526309 +Ecuador,ECU,1990,66.13750986842106 +Ecuador,ECU,1991,73.5233401754386 +Ecuador,ECU,1992,71.51066551169585 +Ecuador,ECU,1993,76.68322891812858 +Ecuador,ECU,1994,83.47287466374263 +Ecuador,ECU,1995,77.75419399122801 +Ecuador,ECU,1996,88.42049374269004 +Ecuador,ECU,1997,98.50996261695896 +Ecuador,ECU,1998,99.977559239766 +Ecuador,ECU,1999,94.07927922001743 +Ecuador,ECU,2000,100.12601082737862 +Ecuador,ECU,2001,101.31818421318475 +Ecuador,ECU,2002,99.90198725728015 +Ecuador,ECU,2003,101.58569634238613 +Ecuador,ECU,2004,112.17966797023531 +Ecuador,ECU,2005,119.04698357485955 +Ecuador,ECU,2006,126.01662568541602 +Ecuador,ECU,2007,132.33282391252146 +Ecuador,ECU,2008,140.86265202750383 +Ecuador,ECU,2009,138.12748173733075 +Ecuador,ECU,2010,153.71951746908422 +Ecuador,ECU,2011,162.9775950860208 +Ecuador,ECU,2012,172.30397808254557 +Ecuador,ECU,2013,178.173456906333 +Ecuador,ECU,2014,187.3367175089564 +Ecuador,ECU,2015,186.90956427804701 +Ecuador,ECU,2016,186.39292702638124 +Ecuador,ECU,2017,193.76648721487572 +Ecuador,ECU,2018,204.99919173270902 +Egypt,EGY,1965,91.11126722222227 +Egypt,EGY,1966,95.86880388888895 +Egypt,EGY,1967,81.94484611111109 +Egypt,EGY,1968,88.14109833333329 +Egypt,EGY,1969,72.07654888888894 +Egypt,EGY,1970,89.90578611111107 +Egypt,EGY,1971,92.34805252333334 +Egypt,EGY,1972,102.6102891266667 +Egypt,EGY,1973,96.89589294888889 +Egypt,EGY,1974,110.18552725666669 +Egypt,EGY,1975,122.0778356200004 +Egypt,EGY,1976,145.85794683333302 +Egypt,EGY,1977,158.0649004711107 +Egypt,EGY,1978,167.12235692222242 +Egypt,EGY,1979,182.95523598555505 +Egypt,EGY,1980,208.82948573333363 +Egypt,EGY,1981,237.77184412444439 +Egypt,EGY,1982,265.5845228966664 +Egypt,EGY,1983,288.4257367333337 +Egypt,EGY,1984,313.97868683333274 +Egypt,EGY,1985,325.87259017163706 +Egypt,EGY,1986,333.77051933801107 +Egypt,EGY,1987,349.67689958508737 +Egypt,EGY,1988,360.32816104520447 +Egypt,EGY,1989,380.61423021368466 +Egypt,EGY,1990,393.2307160620461 +Egypt,EGY,1991,398.34344488321597 +Egypt,EGY,1992,397.8378767419885 +Egypt,EGY,1993,402.0223320952048 +Egypt,EGY,1994,409.72445707292354 +Egypt,EGY,1995,434.16657097116996 +Egypt,EGY,1996,457.5357694649127 +Egypt,EGY,1997,476.6699774372516 +Egypt,EGY,1998,496.36834655619936 +Egypt,EGY,1999,531.414729310585 +Egypt,EGY,2000,563.3528366479532 +Egypt,EGY,2001,593.757336952748 +Egypt,EGY,2002,603.1571157119884 +Egypt,EGY,2003,639.9878109301173 +Egypt,EGY,2004,670.1930273062736 +Egypt,EGY,2005,703.5859343521901 +Egypt,EGY,2006,738.6924546550155 +Egypt,EGY,2007,782.3884893150693 +Egypt,EGY,2008,833.8446316785423 +Egypt,EGY,2009,867.1074905268323 +Egypt,EGY,2010,912.20127343712 +Egypt,EGY,2011,926.5947788247171 +Egypt,EGY,2012,974.05618923292 +Egypt,EGY,2013,967.1968604425679 +Egypt,EGY,2014,964.9701345722011 +Egypt,EGY,2015,991.8807551982165 +Egypt,EGY,2016,1045.9911631403218 +Egypt,EGY,2017,1077.1767312649874 +Egypt,EGY,2018,1099.4382378338594 +Estonia,EST,1985,118.45261205190006 +Estonia,EST,1986,117.882853020886 +Estonia,EST,1987,119.6663498067 +Estonia,EST,1988,117.63286485314885 +Estonia,EST,1989,121.22505717199202 +Estonia,EST,1990,120.41714569817276 +Estonia,EST,1991,108.65108604159956 +Estonia,EST,1992,78.74392711999995 +Estonia,EST,1993,62.46318975000001 +Estonia,EST,1994,63.097360692222225 +Estonia,EST,1995,58.900524783684254 +Estonia,EST,1996,62.101068631403585 +Estonia,EST,1997,61.41402712491227 +Estonia,EST,1998,57.46405559736836 +Estonia,EST,1999,52.69280610426898 +Estonia,EST,2000,54.21076392883036 +Estonia,EST,2001,56.043659753274895 +Estonia,EST,2002,55.410277938011724 +Estonia,EST,2003,60.52196355163745 +Estonia,EST,2004,63.28019559754391 +Estonia,EST,2005,62.29225575959064 +Estonia,EST,2006,61.340332093391794 +Estonia,EST,2007,69.5468526298246 +Estonia,EST,2008,66.4607877283041 +Estonia,EST,2009,58.98453185067113 +Estonia,EST,2010,71.42736923754272 +Estonia,EST,2011,73.58394983575057 +Estonia,EST,2012,74.32398537396648 +Estonia,EST,2013,76.92463275645743 +Estonia,EST,2014,75.1298461884665 +Estonia,EST,2015,70.0848846323606 +Estonia,EST,2016,70.6543875775189 +Estonia,EST,2017,77.08570195450467 +Estonia,EST,2018,80.3017131644243 +Europe,,1965,12310.926523398723 +Europe,,1966,12679.435420607215 +Europe,,1967,13056.049452039284 +Europe,,1968,13928.488438425597 +Europe,,1969,14947.71854336528 +Europe,,1970,15917.563472453103 +Europe,,1971,16351.063356974331 +Europe,,1972,17123.215621941235 +Europe,,1973,18111.628430656714 +Europe,,1974,17849.298108672312 +Europe,,1975,17661.574689108285 +Europe,,1976,18677.720726135532 +Europe,,1977,18975.435827072724 +Europe,,1978,19701.52934955674 +Europe,,1979,20434.855928299592 +Europe,,1980,19924.44165938226 +Europe,,1981,19393.02883508112 +Europe,,1982,19021.73446693542 +Europe,,1983,19184.762071688016 +Europe,,1984,19659.604984303864 +Europe,,1985,23420.808997235577 +Europe,,1986,23819.962811568766 +Europe,,1987,24297.838380413446 +Europe,,1988,24541.71937515404 +Europe,,1989,24464.72972962895 +Europe,,1990,24682.728669336902 +Europe,,1991,24277.591027880073 +Europe,,1992,23582.605673888083 +Europe,,1993,23102.18164691593 +Europe,,1994,22639.22119684086 +Europe,,1995,23039.763235195795 +Europe,,1996,23719.761556241185 +Europe,,1997,23661.49460013229 +Europe,,1998,23867.633678955634 +Europe,,1999,23776.78602204416 +Europe,,2000,24051.76092898297 +Europe,,2001,24382.721362478533 +Europe,,2002,24300.0166836734 +Europe,,2003,24776.081126499885 +Europe,,2004,25172.203789606017 +Europe,,2005,25300.780128405717 +Europe,,2006,25552.681922767504 +Europe,,2007,25324.400832588224 +Europe,,2008,25275.06551869153 +Europe,,2009,23823.35912415268 +Europe,,2010,24709.308908306783 +Europe,,2011,24163.74879067206 +Europe,,2012,24101.24489485302 +Europe,,2013,23895.956427342622 +Europe,,2014,23007.946491736486 +Europe,,2015,23222.441856001795 +Europe,,2016,23579.27775129843 +Europe,,2017,23841.770900567517 +Europe,,2018,23849.822682945185 +Europe (other),,1965,182.2286398314534 +Europe (other),,1966,191.66197307434516 +Europe (other),,1967,194.23408895448316 +Europe (other),,1968,213.73132268534872 +Europe (other),,1969,227.71355633345908 +Europe (other),,1970,251.48631320475184 +Europe (other),,1971,294.2179078033437 +Europe (other),,1972,306.35587152693677 +Europe (other),,1973,321.7405136568661 +Europe (other),,1974,356.1483655967875 +Europe (other),,1975,359.3204525074744 +Europe (other),,1976,382.8373652806917 +Europe (other),,1977,410.1432724717724 +Europe (other),,1978,446.52397522582686 +Europe (other),,1979,484.2290446770118 +Europe (other),,1980,469.70515265708883 +Europe (other),,1981,468.6458588895209 +Europe (other),,1982,487.9858741844575 +Europe (other),,1983,526.5349639674469 +Europe (other),,1984,549.5804452646016 +Europe (other),,1985,701.5006583272587 +Europe (other),,1986,735.5733814787324 +Europe (other),,1987,744.5572634457029 +Europe (other),,1988,767.6805558309411 +Europe (other),,1989,745.6056660658007 +Europe (other),,1990,527.2498400623746 +Europe (other),,1991,463.6087731986804 +Europe (other),,1992,405.4784259664222 +Europe (other),,1993,349.6283484690639 +Europe (other),,1994,297.87587006920376 +Europe (other),,1995,305.5412807375734 +Europe (other),,1996,333.4324180780786 +Europe (other),,1997,359.6899726038086 +Europe (other),,1998,365.294631237473 +Europe (other),,1999,331.47502692736447 +Europe (other),,2000,356.6869438919862 +Europe (other),,2001,373.1481546937461 +Europe (other),,2002,391.75599478777406 +Europe (other),,2003,414.6158597256562 +Europe (other),,2004,450.6281359895972 +Europe (other),,2005,444.9084799906067 +Europe (other),,2006,456.8086442553458 +Europe (other),,2007,444.19645672737767 +Europe (other),,2008,455.1751376433717 +Europe (other),,2009,462.3616541276145 +Europe (other),,2010,494.4369430306088 +Europe (other),,2011,485.83729918197344 +Europe (other),,2012,455.93664919001304 +Europe (other),,2013,482.85265569166404 +Europe (other),,2014,443.8097223738383 +Europe (other),,2015,473.6014052423464 +Europe (other),,2016,503.6877515485082 +Europe (other),,2017,497.2654703152644 +Europe (other),,2018,520.3034705406511 +Finland,FIN,1965,112.35986974982966 +Finland,FIN,1966,127.98711803879323 +Finland,FIN,1967,134.4678929355074 +Finland,FIN,1968,146.61766337906366 +Finland,FIN,1969,162.07461579587425 +Finland,FIN,1970,178.60923640882442 +Finland,FIN,1971,183.1057346863366 +Finland,FIN,1972,193.332962563795 +Finland,FIN,1973,213.33576751993616 +Finland,FIN,1974,203.80562322434798 +Finland,FIN,1975,207.27833771398133 +Finland,FIN,1976,220.95439783226988 +Finland,FIN,1977,232.43390346631148 +Finland,FIN,1978,242.06505556290034 +Finland,FIN,1979,260.93017934658235 +Finland,FIN,1980,259.90184982435113 +Finland,FIN,1981,259.7879310215035 +Finland,FIN,1982,256.2035787911664 +Finland,FIN,1983,253.3233220247485 +Finland,FIN,1984,264.1708286814124 +Finland,FIN,1985,277.8298043609228 +Finland,FIN,1986,281.09330274273185 +Finland,FIN,1987,295.7927926086346 +Finland,FIN,1988,293.96145894596964 +Finland,FIN,1989,295.4693275304989 +Finland,FIN,1990,314.7105303251643 +Finland,FIN,1991,320.8562093619579 +Finland,FIN,1992,318.6555047016509 +Finland,FIN,1993,322.5850280809632 +Finland,FIN,1994,339.7037186778668 +Finland,FIN,1995,323.42047461303355 +Finland,FIN,1996,339.4754721744191 +Finland,FIN,1997,342.3289999055009 +Finland,FIN,1998,353.5948596673297 +Finland,FIN,1999,347.2573492377914 +Finland,FIN,2000,349.4859944843581 +Finland,FIN,2001,358.531288828359 +Finland,FIN,2002,363.1956856757376 +Finland,FIN,2003,390.6389047575383 +Finland,FIN,2004,387.2165385165774 +Finland,FIN,2005,352.5421323368635 +Finland,FIN,2006,378.52277645007325 +Finland,FIN,2007,378.24284050567155 +Finland,FIN,2008,365.6907845924764 +Finland,FIN,2009,340.2016745252233 +Finland,FIN,2010,370.68513287929073 +Finland,FIN,2011,345.5164320092009 +Finland,FIN,2012,335.52370477931845 +Finland,FIN,2013,338.5862468264482 +Finland,FIN,2014,327.08647772175226 +Finland,FIN,2015,325.50409934609166 +Finland,FIN,2016,334.3839942967085 +Finland,FIN,2017,326.6696024838126 +Finland,FIN,2018,340.36972921216596 +France,FRA,1965,1294.6347369990551 +France,FRA,1966,1324.3723245635736 +France,FRA,1967,1413.8662358310557 +France,FRA,1968,1490.1925479221813 +France,FRA,1969,1645.2991146294894 +France,FRA,1970,1782.8278888883997 +France,FRA,1971,1856.1922684846722 +France,FRA,1972,1984.3460757418682 +France,FRA,1973,2156.5179509981194 +France,FRA,1974,2114.788694600764 +France,FRA,1975,1989.1130378169105 +France,FRA,1976,2123.198350435972 +France,FRA,1977,2142.209298062922 +France,FRA,1978,2239.3802736882612 +France,FRA,1979,2304.9669568961244 +France,FRA,1980,2271.117554703823 +France,FRA,1981,2238.8338550638537 +France,FRA,1982,2154.275317457893 +France,FRA,1983,2202.0911961666047 +France,FRA,1984,2269.545007654388 +France,FRA,1985,2340.7251822490043 +France,FRA,1986,2394.1633839385363 +France,FRA,1987,2434.919462969293 +France,FRA,1988,2464.4530787688273 +France,FRA,1989,2499.6564724620976 +France,FRA,1990,2574.571417349114 +France,FRA,1991,2737.0048985485305 +France,FRA,1992,2755.5492489871363 +France,FRA,1993,2751.523814801162 +France,FRA,1994,2713.5180513450214 +France,FRA,1995,2778.6274105263133 +France,FRA,1996,2883.9965209795246 +France,FRA,1997,2844.616888274843 +France,FRA,1998,2914.1972661695863 +France,FRA,1999,2962.679747564327 +France,FRA,2000,2999.4921739492893 +France,FRA,2001,3042.7607876555476 +France,FRA,2002,3020.7443428697607 +France,FRA,2003,3061.273128044847 +France,FRA,2004,3094.870363517366 +France,FRA,2005,3087.3479857629227 +France,FRA,2006,3070.169683571168 +France,FRA,2007,3026.2913609961342 +France,FRA,2008,3045.5445841637406 +France,FRA,2009,2884.2920754314027 +France,FRA,2010,2977.841691510346 +France,FRA,2011,2871.1708924267555 +France,FRA,2012,2875.737065464869 +France,FRA,2013,2908.9359688265695 +France,FRA,2014,2795.3349209398684 +France,FRA,2015,2813.065865423403 +France,FRA,2016,2772.5818137222655 +France,FRA,2017,2761.865759496654 +France,FRA,2018,2821.394758583132 +Germany,DEU,1965,2964.0462269208338 +Germany,DEU,1966,2971.439111753024 +Germany,DEU,1967,2964.5140342005598 +Germany,DEU,1968,3165.182550275998 +Germany,DEU,1969,3415.332465550675 +Germany,DEU,1970,3603.4528101255214 +Germany,DEU,1971,3637.3426119800233 +Germany,DEU,1972,3763.3979988416636 +Germany,DEU,1973,3979.311668857911 +Germany,DEU,1974,3908.7102027681376 +Germany,DEU,1975,3753.428851910217 +Germany,DEU,1976,4005.8727397825564 +Germany,DEU,1977,3992.297829627895 +Germany,DEU,1978,4136.446879278162 +Germany,DEU,1979,4365.42115181131 +Germany,DEU,1980,4220.507259623035 +Germany,DEU,1981,4086.2751105474354 +Germany,DEU,1982,3939.770237676304 +Germany,DEU,1983,3995.5096591465363 +Germany,DEU,1984,4138.628279218882 +Germany,DEU,1985,4255.2516178891365 +Germany,DEU,1986,4220.918720780843 +Germany,DEU,1987,4254.620915923713 +Germany,DEU,1988,4266.091794003178 +Germany,DEU,1989,4220.061693543714 +Germany,DEU,1990,4154.76736222222 +Germany,DEU,1991,4054.1447974853722 +Germany,DEU,1992,3969.608689663744 +Germany,DEU,1993,3952.552179725149 +Germany,DEU,1994,3915.0730044152 +Germany,DEU,1995,3934.371872792395 +Germany,DEU,1996,4064.5703177193 +Germany,DEU,1997,4009.8013056286577 +Germany,DEU,1998,3978.824870652051 +Germany,DEU,1999,3920.3223593450275 +Germany,DEU,2000,3944.2012513333275 +Germany,DEU,2001,4018.138146461989 +Germany,DEU,2002,3968.630186359649 +Germany,DEU,2003,3968.8915731286493 +Germany,DEU,2004,3968.3874872953193 +Germany,DEU,2005,3926.0493689006094 +Germany,DEU,2006,4028.728900531701 +Germany,DEU,2007,3860.4339098884175 +Germany,DEU,2008,3902.2476411293105 +Germany,DEU,2009,3664.2119963078376 +Germany,DEU,2010,3813.225907149119 +Germany,DEU,2011,3676.5745326608144 +Germany,DEU,2012,3727.1254038304082 +Germany,DEU,2013,3836.129989473676 +Germany,DEU,2014,3679.803671149125 +Germany,DEU,2015,3750.7497293918123 +Germany,DEU,2016,3815.2914241491167 +Germany,DEU,2017,3883.3049521123157 +Germany,DEU,2018,3766.8311497316217 +Greece,GRC,1965,78.9640777777778 +Greece,GRC,1966,86.5121144444445 +Greece,GRC,1967,95.26906222222219 +Greece,GRC,1968,99.04735527777777 +Greece,GRC,1969,104.58818527777777 +Greece,GRC,1970,116.25548444444438 +Greece,GRC,1971,138.53634999999983 +Greece,GRC,1972,155.4043480555553 +Greece,GRC,1973,178.8381483333333 +Greece,GRC,1974,173.8710974999996 +Greece,GRC,1975,198.1928561111106 +Greece,GRC,1976,218.9837658333331 +Greece,GRC,1977,227.11245694444466 +Greece,GRC,1978,231.0580050000005 +Greece,GRC,1979,202.889108055555 +Greece,GRC,1980,200.97123916666652 +Greece,GRC,1981,195.24712333333284 +Greece,GRC,1982,197.87591666666714 +Greece,GRC,1983,199.53169666666673 +Greece,GRC,1984,208.19933472222186 +Greece,GRC,1985,219.98960249999988 +Greece,GRC,1986,220.33241991228113 +Greece,GRC,1987,241.1790432748541 +Greece,GRC,1988,254.83344926900642 +Greece,GRC,1989,276.4649113011692 +Greece,GRC,1990,291.14980093584165 +Greece,GRC,1991,293.230824346667 +Greece,GRC,1992,297.74334138960086 +Greece,GRC,1993,302.3907476705698 +Greece,GRC,1994,307.6347258299176 +Greece,GRC,1995,318.6034486952433 +Greece,GRC,1996,327.15289027077483 +Greece,GRC,1997,336.2197178725517 +Greece,GRC,1998,357.2611808665827 +Greece,GRC,1999,356.5266285898658 +Greece,GRC,2000,376.1103003613775 +Greece,GRC,2001,379.9882162431806 +Greece,GRC,2002,381.53862868975364 +Greece,GRC,2003,400.9064455150813 +Greece,GRC,2004,401.6523403420689 +Greece,GRC,2005,403.98661397649704 +Greece,GRC,2006,417.624884053015 +Greece,GRC,2007,425.91227928806376 +Greece,GRC,2008,410.8502856629146 +Greece,GRC,2009,397.5521689282861 +Greece,GRC,2010,378.53866222209996 +Greece,GRC,2011,368.94335332854394 +Greece,GRC,2012,349.26905639175226 +Greece,GRC,2013,331.15888791485537 +Greece,GRC,2014,311.8326513983421 +Greece,GRC,2015,314.36523148295953 +Greece,GRC,2016,309.4887127161593 +Greece,GRC,2017,326.0371316976013 +Greece,GRC,2018,329.4428594356359 +Hong Kong,HKG,1965,26.302011922550054 +Hong Kong,HKG,1966,28.5258219887778 +Hong Kong,HKG,1967,33.69280394221747 +Hong Kong,HKG,1968,36.42808939303167 +Hong Kong,HKG,1969,42.799939781776075 +Hong Kong,HKG,1970,45.981675623598385 +Hong Kong,HKG,1971,48.559657500000014 +Hong Kong,HKG,1972,55.15408916666667 +Hong Kong,HKG,1973,57.202078611111084 +Hong Kong,HKG,1974,58.557523055555606 +Hong Kong,HKG,1975,55.12709333333327 +Hong Kong,HKG,1976,65.09097388888885 +Hong Kong,HKG,1977,70.28380055555562 +Hong Kong,HKG,1978,73.0168536111111 +Hong Kong,HKG,1979,74.76295916666665 +Hong Kong,HKG,1980,76.39582444444447 +Hong Kong,HKG,1981,81.40918861111118 +Hong Kong,HKG,1982,89.35029888888889 +Hong Kong,HKG,1983,94.74299000000003 +Hong Kong,HKG,1984,97.06277305555562 +Hong Kong,HKG,1985,100.76824777777775 +Hong Kong,HKG,1986,105.59091638888884 +Hong Kong,HKG,1987,116.01950027777772 +Hong Kong,HKG,1988,133.64908166666652 +Hong Kong,HKG,1989,142.85945777777727 +Hong Kong,HKG,1990,139.35774305555543 +Hong Kong,HKG,1991,144.38941472222257 +Hong Kong,HKG,1992,169.92891805555556 +Hong Kong,HKG,1993,185.502305 +Hong Kong,HKG,1994,168.09289527777733 +Hong Kong,HKG,1995,180.6806400277779 +Hong Kong,HKG,1996,180.59102169444498 +Hong Kong,HKG,1997,182.69311075000047 +Hong Kong,HKG,1998,186.23376619444434 +Hong Kong,HKG,1999,188.6217544999999 +Hong Kong,HKG,2000,197.4753193583333 +Hong Kong,HKG,2001,249.420225108333 +Hong Kong,HKG,2002,243.4325278027775 +Hong Kong,HKG,2003,251.40544247499952 +Hong Kong,HKG,2004,281.5269350833327 +Hong Kong,HKG,2005,270.0904768083329 +Hong Kong,HKG,2006,285.75232543295834 +Hong Kong,HKG,2007,304.014291805309 +Hong Kong,HKG,2008,282.853142919626 +Hong Kong,HKG,2009,308.85816153251193 +Hong Kong,HKG,2010,321.29604806015215 +Hong Kong,HKG,2011,329.4264489372359 +Hong Kong,HKG,2012,316.59260712511644 +Hong Kong,HKG,2013,325.19380736902355 +Hong Kong,HKG,2014,317.7111633650294 +Hong Kong,HKG,2015,326.57995390332337 +Hong Kong,HKG,2016,335.1557905777956 +Hong Kong,HKG,2017,359.14217457954226 +Hong Kong,HKG,2018,361.395227782055 +Hungary,HUN,1965,184.9397216666663 +Hungary,HUN,1966,187.44627388888838 +Hungary,HUN,1967,178.85929444444483 +Hungary,HUN,1968,185.58694444444424 +Hungary,HUN,1969,198.7257616666662 +Hungary,HUN,1970,214.12369888888838 +Hungary,HUN,1971,221.0573702777779 +Hungary,HUN,1972,228.23184361111095 +Hungary,HUN,1973,247.13962499999977 +Hungary,HUN,1974,254.73125694444494 +Hungary,HUN,1975,269.66724916666635 +Hungary,HUN,1976,288.09713972222215 +Hungary,HUN,1977,302.93448527777747 +Hungary,HUN,1978,324.00176888888893 +Hungary,HUN,1979,320.8121541666662 +Hungary,HUN,1980,321.80998277777724 +Hungary,HUN,1981,318.5145597222216 +Hungary,HUN,1982,319.9655077777775 +Hungary,HUN,1983,313.91279111111066 +Hungary,HUN,1984,322.20481444444397 +Hungary,HUN,1985,331.9924077777772 +Hungary,HUN,1986,330.2371400000004 +Hungary,HUN,1987,344.34679555555545 +Hungary,HUN,1988,335.84983277777724 +Hungary,HUN,1989,327.0170686111108 +Hungary,HUN,1990,323.37120526660766 +Hungary,HUN,1991,302.16611561543823 +Hungary,HUN,1992,284.73998709187174 +Hungary,HUN,1993,280.6985632309942 +Hungary,HUN,1994,284.38663298362536 +Hungary,HUN,1995,286.2400600452632 +Hungary,HUN,1996,291.80553854537976 +Hungary,HUN,1997,283.5187898959059 +Hungary,HUN,1998,286.43456161941447 +Hungary,HUN,1999,286.9612855342691 +Hungary,HUN,2000,277.7362305678946 +Hungary,HUN,2001,286.00482813000025 +Hungary,HUN,2002,282.054533797602 +Hungary,HUN,2003,284.5227841581286 +Hungary,HUN,2004,286.6557767115208 +Hungary,HUN,2005,306.36494054836226 +Hungary,HUN,2006,302.1679149256139 +Hungary,HUN,2007,298.2320028339764 +Hungary,HUN,2008,294.43051356216404 +Hungary,HUN,2009,270.35285001695877 +Hungary,HUN,2010,276.3992685156722 +Hungary,HUN,2011,274.5403696738446 +Hungary,HUN,2012,255.1789360322402 +Hungary,HUN,2013,242.82579590216324 +Hungary,HUN,2014,243.7904713357193 +Hungary,HUN,2015,256.2667001732181 +Hungary,HUN,2016,260.8361411095762 +Hungary,HUN,2017,273.6937798527537 +Hungary,HUN,2018,275.8502153911482 +Iceland,ISL,1965,7.374539304912277 +Iceland,ISL,1966,7.748978031929811 +Iceland,ISL,1967,7.663248150526307 +Iceland,ISL,1968,8.110921794502916 +Iceland,ISL,1969,8.041886698947353 +Iceland,ISL,1970,9.641622135789442 +Iceland,ISL,1971,10.493944259064307 +Iceland,ISL,1972,11.402406697660787 +Iceland,ISL,1973,13.747893636958993 +Iceland,ISL,1974,13.371825716140304 +Iceland,ISL,1975,12.815609049707593 +Iceland,ISL,1976,13.228757149122714 +Iceland,ISL,1977,13.989382982456126 +Iceland,ISL,1978,14.612109356725094 +Iceland,ISL,1979,15.204856213450205 +Iceland,ISL,1980,15.358885847953125 +Iceland,ISL,1981,15.651951084795291 +Iceland,ISL,1982,15.981963029239713 +Iceland,ISL,1983,16.481387830409307 +Iceland,ISL,1984,17.353916707602238 +Iceland,ISL,1985,17.182899739766007 +Iceland,ISL,1986,17.95554056432746 +Iceland,ISL,1987,18.53452525730984 +Iceland,ISL,1988,19.54118085672506 +Iceland,ISL,1989,20.25406666374256 +Iceland,ISL,1990,20.27816602923965 +Iceland,ISL,1991,19.781031786549633 +Iceland,ISL,1992,20.486188374268973 +Iceland,ISL,1993,21.281386374268962 +Iceland,ISL,1994,21.519420850877193 +Iceland,ISL,1995,22.20074842397652 +Iceland,ISL,1996,23.547592398245605 +Iceland,ISL,1997,24.633887792397612 +Iceland,ISL,1998,26.608290419005804 +Iceland,ISL,1999,29.100395625730894 +Iceland,ISL,2000,30.890718242690003 +Iceland,ISL,2001,31.315190324561296 +Iceland,ISL,2002,32.66679208705197 +Iceland,ISL,2003,32.88182697098102 +Iceland,ISL,2004,33.69511368105808 +Iceland,ISL,2005,33.9258159336256 +Iceland,ISL,2006,37.737100801473645 +Iceland,ISL,2007,43.07862799427506 +Iceland,ISL,2008,53.97260647228356 +Iceland,ISL,2009,54.16082449999987 +Iceland,ISL,2010,54.43586686461968 +Iceland,ISL,2011,54.70351321052618 +Iceland,ISL,2012,55.518197054678176 +Iceland,ISL,2013,57.57722617719283 +Iceland,ISL,2014,57.74787645321618 +Iceland,ISL,2015,60.63060613070159 +Iceland,ISL,2016,61.17937998918113 +Iceland,ISL,2017,63.679200994028776 +Iceland,ISL,2018,65.33794538511181 +India,IND,1965,613.2143136265637 +India,IND,1966,631.9005829346329 +India,IND,1967,651.1450994637607 +India,IND,1968,695.5736826023951 +India,IND,1969,770.9476209357296 +India,IND,1970,753.567080186645 +India,IND,1971,783.3225039192332 +India,IND,1972,825.1240803706823 +India,IND,1973,841.6926387040157 +India,IND,1974,892.8126319705116 +India,IND,1975,958.6612792022244 +India,IND,1976,1005.403199477863 +India,IND,1977,1063.205148024275 +India,IND,1978,1102.2269310056415 +India,IND,1979,1164.84864086461 +India,IND,1980,1200.0535605963323 +India,IND,1981,1329.5504926995607 +India,IND,1982,1319.3800327777733 +India,IND,1983,1388.7829559254922 +India,IND,1984,1482.6178850345855 +India,IND,1985,1566.4738757987802 +India,IND,1986,1677.4502887769765 +India,IND,1987,1785.8249116313843 +India,IND,1988,1943.2778172394192 +India,IND,1989,2121.9642413942524 +India,IND,1990,2277.225653104912 +India,IND,1991,2401.1006436241228 +India,IND,1992,2526.1990681589514 +India,IND,1993,2589.3613779690454 +India,IND,1994,2726.528284822615 +India,IND,1995,2932.8536002733804 +India,IND,1996,3053.1633945306503 +India,IND,1997,3223.1801585751846 +India,IND,1998,3415.948237002321 +India,IND,1999,3508.587813982718 +India,IND,2000,3692.9536483832303 +India,IND,2001,3713.9983535456668 +India,IND,2002,3887.975859394072 +India,IND,2003,4039.445342740753 +India,IND,2004,4277.1378390098935 +India,IND,2005,4595.238906122796 +India,IND,2006,4831.539013571356 +India,IND,2007,5255.521398580334 +India,IND,2008,5557.569026965163 +India,IND,2009,5981.098967633153 +India,IND,2010,6270.344194978145 +India,IND,2011,6645.068668136439 +India,IND,2012,6990.1373176543375 +India,IND,2013,7263.192453171964 +India,IND,2014,7763.241664316582 +India,IND,2015,8022.116727920627 +India,IND,2016,8364.9046616827 +India,IND,2017,8723.521461901299 +India,IND,2018,9410.449460885711 +Indonesia,IDN,1965,83.92208222222226 +Indonesia,IDN,1966,83.12381500000006 +Indonesia,IDN,1967,82.03006888888885 +Indonesia,IDN,1968,87.35389527777781 +Indonesia,IDN,1969,98.66580138888894 +Indonesia,IDN,1970,105.59393666666672 +Indonesia,IDN,1971,101.4533355555556 +Indonesia,IDN,1972,107.66580888888886 +Indonesia,IDN,1973,121.36752638888939 +Indonesia,IDN,1974,130.04348416666684 +Indonesia,IDN,1975,159.33612500000027 +Indonesia,IDN,1976,167.62192833333393 +Indonesia,IDN,1977,221.5112208333339 +Indonesia,IDN,1978,245.5821713888894 +Indonesia,IDN,1979,280.300625 +Indonesia,IDN,1980,299.8280483333335 +Indonesia,IDN,1981,325.77949666666717 +Indonesia,IDN,1982,332.11030277777786 +Indonesia,IDN,1983,352.076859722222 +Indonesia,IDN,1984,381.3421619444445 +Indonesia,IDN,1985,405.3520463888887 +Indonesia,IDN,1986,449.21103527777836 +Indonesia,IDN,1987,474.95644638888876 +Indonesia,IDN,1988,501.23128527777783 +Indonesia,IDN,1989,554.4147008333338 +Indonesia,IDN,1990,610.63116149062 +Indonesia,IDN,1991,662.3265350372391 +Indonesia,IDN,1992,726.7549579471727 +Indonesia,IDN,1993,768.0884111926802 +Indonesia,IDN,1994,821.2877566732819 +Indonesia,IDN,1995,874.8867337405981 +Indonesia,IDN,1996,933.1756689060377 +Indonesia,IDN,1997,1013.8909304854878 +Indonesia,IDN,1998,995.2767279329537 +Indonesia,IDN,1999,1086.2940725529913 +Indonesia,IDN,2000,1181.54639458587 +Indonesia,IDN,2001,1250.6584409085087 +Indonesia,IDN,2002,1306.8277610201517 +Indonesia,IDN,2003,1407.5104226132771 +Indonesia,IDN,2004,1400.6949593978425 +Indonesia,IDN,2005,1435.578113080634 +Indonesia,IDN,2006,1456.37822378006 +Indonesia,IDN,2007,1563.2347976793085 +Indonesia,IDN,2008,1543.7952987512629 +Indonesia,IDN,2009,1599.8001667664607 +Indonesia,IDN,2010,1756.922931503938 +Indonesia,IDN,2011,1914.6366122636805 +Indonesia,IDN,2012,2016.9222256461783 +Indonesia,IDN,2013,2072.136524797509 +Indonesia,IDN,2014,1944.4667287744933 +Indonesia,IDN,2015,1926.992226623864 +Indonesia,IDN,2016,1979.00131516515 +Indonesia,IDN,2017,2056.9560598631724 +Indonesia,IDN,2018,2157.7135639898665 +Iran,IRN,1965,98.93851704304113 +Iran,IRN,1966,107.70246851882247 +Iran,IRN,1967,118.3322771240147 +Iran,IRN,1968,129.9456964780402 +Iran,IRN,1969,142.46213595390594 +Iran,IRN,1970,167.75677721649944 +Iran,IRN,1971,183.60362635401847 +Iran,IRN,1972,207.7915750337637 +Iran,IRN,1973,248.65441451471654 +Iran,IRN,1974,281.40811132718835 +Iran,IRN,1975,327.67009933543795 +Iran,IRN,1976,368.3132874222552 +Iran,IRN,1977,417.47901864898137 +Iran,IRN,1978,407.6032597811487 +Iran,IRN,1979,440.06887859664226 +Iran,IRN,1980,406.8961618370235 +Iran,IRN,1981,407.6190239088508 +Iran,IRN,1982,460.05566210501036 +Iran,IRN,1983,546.4655312842448 +Iran,IRN,1984,590.6608926051351 +Iran,IRN,1985,644.7124579065908 +Iran,IRN,1986,603.3685702151561 +Iran,IRN,1987,647.0076417207977 +Iran,IRN,1988,683.4911090004239 +Iran,IRN,1989,748.2581603895701 +Iran,IRN,1990,842.0969823607139 +Iran,IRN,1991,914.4932291205388 +Iran,IRN,1992,1003.0892140328647 +Iran,IRN,1993,925.3996441643937 +Iran,IRN,1994,1040.074730546294 +Iran,IRN,1995,1101.6728369301063 +Iran,IRN,1996,1191.231160753085 +Iran,IRN,1997,1232.3819848777646 +Iran,IRN,1998,1274.2081132018006 +Iran,IRN,1999,1360.3793117326848 +Iran,IRN,2000,1429.5233290701867 +Iran,IRN,2001,1508.2740112058734 +Iran,IRN,2002,1639.5206758714562 +Iran,IRN,2003,1675.2875311685748 +Iran,IRN,2004,1837.0027840311448 +Iran,IRN,2005,1970.267326839984 +Iran,IRN,2006,2153.066614856045 +Iran,IRN,2007,2304.8928612504596 +Iran,IRN,2008,2393.023767458324 +Iran,IRN,2009,2473.720581911133 +Iran,IRN,2010,2481.984431974258 +Iran,IRN,2011,2616.1183868275666 +Iran,IRN,2012,2630.9302038733294 +Iran,IRN,2013,2767.2041865574865 +Iran,IRN,2014,2895.3333042144586 +Iran,IRN,2015,2898.5200627414933 +Iran,IRN,2016,2990.711950647721 +Iran,IRN,2017,3163.5334995877824 +Iran,IRN,2018,3322.9064854738817 +Iraq,IRQ,1965,20.34517113333432 +Iraq,IRQ,1966,22.705020996065283 +Iraq,IRQ,1967,22.949337985930992 +Iraq,IRQ,1968,24.532959075821033 +Iraq,IRQ,1969,28.784638021634233 +Iraq,IRQ,1970,36.49548554866888 +Iraq,IRQ,1971,40.00563536647956 +Iraq,IRQ,1972,47.42097939664713 +Iraq,IRQ,1973,46.27611055688886 +Iraq,IRQ,1974,45.612977404405505 +Iraq,IRQ,1975,50.13877045651464 +Iraq,IRQ,1976,64.0674312972944 +Iraq,IRQ,1977,66.03989719409746 +Iraq,IRQ,1978,63.54644796076286 +Iraq,IRQ,1979,79.71990607891304 +Iraq,IRQ,1980,94.956847643555 +Iraq,IRQ,1981,94.2673265199121 +Iraq,IRQ,1982,98.5015815439786 +Iraq,IRQ,1983,108.99430403746801 +Iraq,IRQ,1984,119.57040341806047 +Iraq,IRQ,1985,141.43276309250984 +Iraq,IRQ,1986,156.94185850679176 +Iraq,IRQ,1987,188.1774926503038 +Iraq,IRQ,1988,219.44467398738757 +Iraq,IRQ,1989,245.96413913568472 +Iraq,IRQ,1990,227.51957659787536 +Iraq,IRQ,1991,153.05734059298322 +Iraq,IRQ,1992,240.65412256807542 +Iraq,IRQ,1993,326.64970607359396 +Iraq,IRQ,1994,374.11741913895816 +Iraq,IRQ,1995,367.27865620874815 +Iraq,IRQ,1996,381.15159232533296 +Iraq,IRQ,1997,446.64780858655166 +Iraq,IRQ,1998,313.18928146316733 +Iraq,IRQ,1999,235.22164652763848 +Iraq,IRQ,2000,299.6873109849408 +Iraq,IRQ,2001,337.20549330273883 +Iraq,IRQ,2002,318.59640806820033 +Iraq,IRQ,2003,294.87355530468034 +Iraq,IRQ,2004,314.7748855204612 +Iraq,IRQ,2005,301.9090055363773 +Iraq,IRQ,2006,308.4766382395411 +Iraq,IRQ,2007,327.23124399757603 +Iraq,IRQ,2008,339.40914130488335 +Iraq,IRQ,2009,378.9432821021187 +Iraq,IRQ,2010,403.8416646590956 +Iraq,IRQ,2011,426.828899510442 +Iraq,IRQ,2012,453.94276600495317 +Iraq,IRQ,2013,489.01280535750675 +Iraq,IRQ,2014,467.835796418272 +Iraq,IRQ,2015,466.24405521150516 +Iraq,IRQ,2016,537.8685010593771 +Iraq,IRQ,2017,547.7119598472697 +Iraq,IRQ,2018,625.0964740479629 +Ireland,IRL,1965,67.35657020467835 +Ireland,IRL,1966,75.5301650438597 +Ireland,IRL,1967,81.90841426900585 +Ireland,IRL,1968,95.5824943128655 +Ireland,IRL,1969,95.9603681578947 +Ireland,IRL,1970,75.54264176900593 +Ireland,IRL,1971,78.58215580409355 +Ireland,IRL,1972,82.90348497076023 +Ireland,IRL,1973,87.16129530701754 +Ireland,IRL,1974,88.64314289473685 +Ireland,IRL,1975,82.97501461988307 +Ireland,IRL,1976,84.68422314327483 +Ireland,IRL,1977,90.22116684210523 +Ireland,IRL,1978,93.88465912280707 +Ireland,IRL,1979,103.51764229532166 +Ireland,IRL,1980,100.15193839181286 +Ireland,IRL,1981,97.71093891812875 +Ireland,IRL,1982,97.02648399122809 +Ireland,IRL,1983,95.62378985380117 +Ireland,IRL,1984,94.63376330409356 +Ireland,IRL,1985,99.26536394736841 +Ireland,IRL,1986,107.20378078947365 +Ireland,IRL,1987,108.49592247076018 +Ireland,IRL,1988,107.9151141812866 +Ireland,IRL,1989,111.2454102339181 +Ireland,IRL,1990,116.80488679746934 +Ireland,IRL,1991,121.00459344190187 +Ireland,IRL,1992,121.82738615224652 +Ireland,IRL,1993,124.46751507033512 +Ireland,IRL,1994,129.38869518432185 +Ireland,IRL,1995,131.98127775364046 +Ireland,IRL,1996,139.4662476745615 +Ireland,IRL,1997,145.62920017449682 +Ireland,IRL,1998,156.60219304621089 +Ireland,IRL,1999,165.68754890549718 +Ireland,IRL,2000,171.5233654593572 +Ireland,IRL,2001,182.7274825412862 +Ireland,IRL,2002,181.44129616865524 +Ireland,IRL,2003,176.68163707602352 +Ireland,IRL,2004,179.14558740247978 +Ireland,IRL,2005,186.9773748300113 +Ireland,IRL,2006,190.89543295839758 +Ireland,IRL,2007,196.89311416278724 +Ireland,IRL,2008,196.18559295807597 +Ireland,IRL,2009,179.23219939772625 +Ireland,IRL,2010,178.8926654165655 +Ireland,IRL,2011,168.8945439657829 +Ireland,IRL,2012,166.92028469239492 +Ireland,IRL,2013,163.89589248331413 +Ireland,IRL,2014,163.760282456543 +Ireland,IRL,2015,173.75147276034832 +Ireland,IRL,2016,181.14481115936957 +Ireland,IRL,2017,182.2882521130725 +Ireland,IRL,2018,187.22601432654068 +Israel,ISR,1965,46.47141230362245 +Israel,ISR,1966,48.658479633814125 +Israel,ISR,1967,50.79462031501603 +Israel,ISR,1968,53.22445291270539 +Israel,ISR,1969,55.488019611668555 +Israel,ISR,1970,57.670440311030696 +Israel,ISR,1971,60.008409170821 +Israel,ISR,1972,62.61393995615591 +Israel,ISR,1973,65.5135206092849 +Israel,ISR,1974,66.92459302358151 +Israel,ISR,1975,68.94644706643724 +Israel,ISR,1976,72.79051584923691 +Israel,ISR,1977,76.07279055377764 +Israel,ISR,1978,81.0816809148767 +Israel,ISR,1979,88.7297527783014 +Israel,ISR,1980,94.54403821214612 +Israel,ISR,1981,96.19610340539583 +Israel,ISR,1982,100.00993736807767 +Israel,ISR,1983,100.80486624897087 +Israel,ISR,1984,102.25437406013594 +Israel,ISR,1985,99.39835028989116 +Israel,ISR,1986,104.52813349187325 +Israel,ISR,1987,115.7174592395523 +Israel,ISR,1988,123.8661187622314 +Israel,ISR,1989,128.31971081561665 +Israel,ISR,1990,133.04656915858064 +Israel,ISR,1991,138.03668373131123 +Israel,ISR,1992,150.4070783607868 +Israel,ISR,1993,159.31721930687283 +Israel,ISR,1994,174.40630935374435 +Israel,ISR,1995,194.6197163708772 +Israel,ISR,1996,204.87073592514233 +Israel,ISR,1997,201.03129689977808 +Israel,ISR,1998,214.88902439047612 +Israel,ISR,1999,223.38610046719094 +Israel,ISR,2000,233.7002078872329 +Israel,ISR,2001,232.6157657643001 +Israel,ISR,2002,235.9641922353675 +Israel,ISR,2003,242.5420498360828 +Israel,ISR,2004,245.48430078825058 +Israel,ISR,2005,253.44871062741535 +Israel,ISR,2006,253.20702444173932 +Israel,ISR,2007,267.15869779061245 +Israel,ISR,2008,271.3894798259971 +Israel,ISR,2009,259.89264182380583 +Israel,ISR,2010,275.47884530787974 +Israel,ISR,2011,281.9719099095415 +Israel,ISR,2012,294.4670473265593 +Israel,ISR,2013,273.54993702753507 +Israel,ISR,2014,269.043084527525 +Israel,ISR,2015,283.8058254511087 +Israel,ISR,2016,288.77846023311884 +Israel,ISR,2017,297.52317680993997 +Israel,ISR,2018,298.2089169057165 +Italy,ITA,1965,913.4511737719291 +Italy,ITA,1966,992.5104167982456 +Italy,ITA,1967,1076.6618416959059 +Italy,ITA,1968,1164.611598567245 +Italy,ITA,1969,1255.2176345614075 +Italy,ITA,1970,1387.0834906871394 +Italy,ITA,1971,1461.5892305847924 +Italy,ITA,1972,1533.3262834795328 +Italy,ITA,1973,1601.433751505853 +Italy,ITA,1974,1600.4366531140358 +Italy,ITA,1975,1564.6369789619823 +Italy,ITA,1976,1654.1057277339141 +Italy,ITA,1977,1655.7816210964882 +Italy,ITA,1978,1698.557299707607 +Italy,ITA,1979,1757.7448993128653 +Italy,ITA,1980,1714.4066385818755 +Italy,ITA,1981,1678.6415163450242 +Italy,ITA,1982,1644.6319047660836 +Italy,ITA,1983,1610.1714373976588 +Italy,ITA,1984,1627.8446727192977 +Italy,ITA,1985,1622.1884039619888 +Italy,ITA,1986,1666.3691038157888 +Italy,ITA,1987,1718.6033951461998 +Italy,ITA,1988,1760.902320570177 +Italy,ITA,1989,1812.7562471398228 +Italy,ITA,1990,1821.1689209560416 +Italy,ITA,1991,1860.9283328816105 +Italy,ITA,1992,1859.6488376946925 +Italy,ITA,1993,1829.864373342266 +Italy,ITA,1994,1826.0441126883231 +Italy,ITA,1995,1902.4222835566397 +Italy,ITA,1996,1904.3340995933854 +Italy,ITA,1997,1931.1523035476575 +Italy,ITA,1998,1982.6521498046193 +Italy,ITA,1999,2044.689317133096 +Italy,ITA,2000,2073.8647400787754 +Italy,ITA,2001,2085.033863610406 +Italy,ITA,2002,2069.9036541099426 +Italy,ITA,2003,2138.853507632922 +Italy,ITA,2004,2178.511625550351 +Italy,ITA,2005,2181.9247044904732 +Italy,ITA,2006,2172.418808005553 +Italy,ITA,2007,2132.60316941782 +Italy,ITA,2008,2105.0271680380943 +Italy,ITA,2009,1967.2191199411493 +Italy,ITA,2010,2028.5332609154668 +Italy,ITA,2011,1982.8771343648193 +Italy,ITA,2012,1927.753084356411 +Italy,ITA,2013,1839.600423888473 +Italy,ITA,2014,1741.233859301769 +Italy,ITA,2015,1780.0218999759795 +Italy,ITA,2016,1798.6734670300216 +Italy,ITA,2017,1817.3046648964091 +Italy,ITA,2018,1796.6773401949704 +Japan,JPN,1965,1782.9521738362575 +Japan,JPN,1966,1988.576436462573 +Japan,JPN,1967,2284.370324388309 +Japan,JPN,1968,2533.5607962491235 +Japan,JPN,1969,2905.236462028421 +Japan,JPN,1970,3237.2527177228576 +Japan,JPN,1971,3439.573853434423 +Japan,JPN,1972,3614.8173843132295 +Japan,JPN,1973,4033.011744365189 +Japan,JPN,1974,4024.649244352909 +Japan,JPN,1975,3838.1030723374543 +Japan,JPN,1976,4001.171623955868 +Japan,JPN,1977,3993.692977875024 +Japan,JPN,1978,4139.35312501461 +Japan,JPN,1979,4300.553684097739 +Japan,JPN,1980,4174.106644035572 +Japan,JPN,1981,4106.955604365523 +Japan,JPN,1982,3968.8192956110606 +Japan,JPN,1983,4010.1551052503382 +Japan,JPN,1984,4337.335509785952 +Japan,JPN,1985,4385.401269030519 +Japan,JPN,1986,4390.533561747312 +Japan,JPN,1987,4474.844248536365 +Japan,JPN,1988,4761.360695271244 +Japan,JPN,1989,4923.228478793787 +Japan,JPN,1990,5132.065364981251 +Japan,JPN,1991,5258.028806106323 +Japan,JPN,1992,5323.094463096938 +Japan,JPN,1993,5393.549097802692 +Japan,JPN,1994,5605.010393060399 +Japan,JPN,1995,5821.64364685166 +Japan,JPN,1996,5931.983492821544 +Japan,JPN,1997,6037.062249194426 +Japan,JPN,1998,5902.524418345417 +Japan,JPN,1999,6007.425552221155 +Japan,JPN,2000,6074.773601296689 +Japan,JPN,2001,6022.423236172708 +Japan,JPN,2002,6010.258355534742 +Japan,JPN,2003,5998.041890282436 +Japan,JPN,2004,6072.871123038999 +Japan,JPN,2005,6174.323976074262 +Japan,JPN,2006,6163.023029452268 +Japan,JPN,2007,6108.776690561208 +Japan,JPN,2008,6021.5452956655545 +Japan,JPN,2009,5502.5327463388185 +Japan,JPN,2010,5869.744758917834 +Japan,JPN,2011,5572.214068236492 +Japan,JPN,2012,5532.129712904391 +Japan,JPN,2013,5492.926050216078 +Japan,JPN,2014,5353.511820335408 +Japan,JPN,2015,5272.180919605133 +Japan,JPN,2016,5242.730863621088 +Japan,JPN,2017,5294.092862799763 +Japan,JPN,2018,5281.663479999475 +Kazakhstan,KAZ,1985,794.3318231052455 +Kazakhstan,KAZ,1986,812.6945322196182 +Kazakhstan,KAZ,1987,830.7295840479923 +Kazakhstan,KAZ,1988,860.6823170803942 +Kazakhstan,KAZ,1989,847.10219806645 +Kazakhstan,KAZ,1990,857.0198271911748 +Kazakhstan,KAZ,1991,856.0813299645538 +Kazakhstan,KAZ,1992,845.1385635771114 +Kazakhstan,KAZ,1993,745.5762629011115 +Kazakhstan,KAZ,1994,663.3445742755362 +Kazakhstan,KAZ,1995,595.9758460723077 +Kazakhstan,KAZ,1996,518.7888032563226 +Kazakhstan,KAZ,1997,457.4066651496554 +Kazakhstan,KAZ,1998,430.9799418286409 +Kazakhstan,KAZ,1999,404.9710268078104 +Kazakhstan,KAZ,2000,364.29574229119294 +Kazakhstan,KAZ,2001,418.219268766082 +Kazakhstan,KAZ,2002,425.55186505847894 +Kazakhstan,KAZ,2003,466.2127763362569 +Kazakhstan,KAZ,2004,502.34867129254286 +Kazakhstan,KAZ,2005,528.0817076880251 +Kazakhstan,KAZ,2006,565.9482906388811 +Kazakhstan,KAZ,2007,628.8063604309623 +Kazakhstan,KAZ,2008,656.319337417026 +Kazakhstan,KAZ,2009,591.1484165807391 +Kazakhstan,KAZ,2010,638.6184779616833 +Kazakhstan,KAZ,2011,703.4606594465444 +Kazakhstan,KAZ,2012,729.146219408681 +Kazakhstan,KAZ,2013,738.2657908971116 +Kazakhstan,KAZ,2014,749.3304243450411 +Kazakhstan,KAZ,2015,740.2884524971539 +Kazakhstan,KAZ,2016,752.4589762915318 +Kazakhstan,KAZ,2017,786.1747977743038 +Kazakhstan,KAZ,2018,888.329395984152 +Kuwait,KWT,1965,81.0872982841355 +Kuwait,KWT,1966,84.94587082416932 +Kuwait,KWT,1967,86.62526694077138 +Kuwait,KWT,1968,91.24988199247362 +Kuwait,KWT,1969,93.62173290407637 +Kuwait,KWT,1970,76.31032076728007 +Kuwait,KWT,1971,76.28291416666664 +Kuwait,KWT,1972,84.83244361111116 +Kuwait,KWT,1973,84.64995749999997 +Kuwait,KWT,1974,81.28639666666672 +Kuwait,KWT,1975,73.05962833333335 +Kuwait,KWT,1976,86.19494499999999 +Kuwait,KWT,1977,87.90178055555556 +Kuwait,KWT,1978,96.23138972222223 +Kuwait,KWT,1979,116.79118750000004 +Kuwait,KWT,1980,88.10697722222223 +Kuwait,KWT,1981,111.58926305555553 +Kuwait,KWT,1982,111.61166027777779 +Kuwait,KWT,1983,123.18041666666696 +Kuwait,KWT,1984,131.30873611111144 +Kuwait,KWT,1985,128.0242863888887 +Kuwait,KWT,1986,145.22731444444463 +Kuwait,KWT,1987,135.21986916666702 +Kuwait,KWT,1988,153.5171572222218 +Kuwait,KWT,1989,166.9518716666666 +Kuwait,KWT,1990,79.17798166666671 +Kuwait,KWT,1991,45.13820194444441 +Kuwait,KWT,1992,82.31165527777779 +Kuwait,KWT,1993,111.00268527777781 +Kuwait,KWT,1994,136.41693999999939 +Kuwait,KWT,1995,170.3336475000005 +Kuwait,KWT,1996,168.6700119444449 +Kuwait,KWT,1997,175.6019116056715 +Kuwait,KWT,1998,213.34964207220608 +Kuwait,KWT,1999,220.01777271678216 +Kuwait,KWT,2000,229.62708702566968 +Kuwait,KWT,2001,233.2057480468234 +Kuwait,KWT,2002,237.5319346208763 +Kuwait,KWT,2003,279.2429693190114 +Kuwait,KWT,2004,312.83098122909365 +Kuwait,KWT,2005,346.34786823619277 +Kuwait,KWT,2006,327.26211138402664 +Kuwait,KWT,2007,317.93403591501516 +Kuwait,KWT,2008,345.8391059455183 +Kuwait,KWT,2009,361.26922201743065 +Kuwait,KWT,2010,389.28833305999734 +Kuwait,KWT,2011,390.62984913600116 +Kuwait,KWT,2012,434.25153927957115 +Kuwait,KWT,2013,450.1273726245749 +Kuwait,KWT,2014,412.2353396558784 +Kuwait,KWT,2015,447.3204230693582 +Kuwait,KWT,2016,452.7878023648353 +Kuwait,KWT,2017,450.02930380480603 +Kuwait,KWT,2018,453.0435978161302 +Latvia,LVA,1985,105.31935366207391 +Latvia,LVA,1986,97.79209236300935 +Latvia,LVA,1987,88.91916024657907 +Latvia,LVA,1988,84.08033746088239 +Latvia,LVA,1989,83.86337715968212 +Latvia,LVA,1990,85.0032158579024 +Latvia,LVA,1991,78.61382677093418 +Latvia,LVA,1992,56.21432350370018 +Latvia,LVA,1993,48.219676975870925 +Latvia,LVA,1994,46.54758559507013 +Latvia,LVA,1995,43.61248148657807 +Latvia,LVA,1996,40.8596243409421 +Latvia,LVA,1997,40.81070272710278 +Latvia,LVA,1998,44.0568889227563 +Latvia,LVA,1999,37.69645735223776 +Latvia,LVA,2000,36.83521235867312 +Latvia,LVA,2001,39.794358357543025 +Latvia,LVA,2002,40.30586892282412 +Latvia,LVA,2003,39.73478429477867 +Latvia,LVA,2004,44.78189402958785 +Latvia,LVA,2005,46.13263413714588 +Latvia,LVA,2006,43.94710958242544 +Latvia,LVA,2007,45.22189193591181 +Latvia,LVA,2008,45.64896922309694 +Latvia,LVA,2009,43.153765486922275 +Latvia,LVA,2010,49.13569215098145 +Latvia,LVA,2011,43.914209995856424 +Latvia,LVA,2012,45.357488419432116 +Latvia,LVA,2013,43.69898245181678 +Latvia,LVA,2014,40.21173424636828 +Latvia,LVA,2015,41.17893144790604 +Latvia,LVA,2016,43.909156938037384 +Latvia,LVA,2017,48.20708314834994 +Latvia,LVA,2018,42.795251540675366 +Lithuania,LTU,1985,178.6129505608561 +Lithuania,LTU,1986,164.56887559930217 +Lithuania,LTU,1987,172.65890151227012 +Lithuania,LTU,1988,180.55607718565957 +Lithuania,LTU,1989,195.0180862003358 +Lithuania,LTU,1990,198.24517126866982 +Lithuania,LTU,1991,209.81786584934494 +Lithuania,LTU,1992,127.61723340311997 +Lithuania,LTU,1993,99.58308291066409 +Lithuania,LTU,1994,86.50802911345657 +Lithuania,LTU,1995,96.03703207405815 +Lithuania,LTU,1996,104.31006459253693 +Lithuania,LTU,1997,96.37212455263145 +Lithuania,LTU,1998,103.23055341812854 +Lithuania,LTU,1999,86.11006715204668 +Lithuania,LTU,2000,76.19018672807013 +Lithuania,LTU,2001,89.01248016081863 +Lithuania,LTU,2002,94.88088030701742 +Lithuania,LTU,2003,99.67708145614019 +Lithuania,LTU,2004,100.85045691959053 +Lithuania,LTU,2005,92.18102060818703 +Lithuania,LTU,2006,88.63375375584786 +Lithuania,LTU,2007,97.19619466520456 +Lithuania,LTU,2008,96.5381891856724 +Lithuania,LTU,2009,88.72402379532156 +Lithuania,LTU,2010,65.53977200438597 +Lithuania,LTU,2011,68.04156812280705 +Lithuania,LTU,2012,68.33005530994149 +Lithuania,LTU,2013,63.045383694444396 +Lithuania,LTU,2014,60.82967606286544 +Lithuania,LTU,2015,63.55586201900583 +Lithuania,LTU,2016,64.72135048391809 +Lithuania,LTU,2017,68.38020304532168 +Lithuania,LTU,2018,67.9979407721522 +Luxembourg,LUX,1965,41.775936611111156 +Luxembourg,LUX,1966,40.031913725146225 +Luxembourg,LUX,1967,39.422882362573056 +Luxembourg,LUX,1968,42.63966112865503 +Luxembourg,LUX,1969,45.89454509649126 +Luxembourg,LUX,1970,47.65317728070173 +Luxembourg,LUX,1971,45.82867811988301 +Luxembourg,LUX,1972,47.25600990058479 +Luxembourg,LUX,1973,50.09929117251463 +Luxembourg,LUX,1974,50.86954183918126 +Luxembourg,LUX,1975,42.25505430116963 +Luxembourg,LUX,1976,42.32959168713453 +Luxembourg,LUX,1977,39.489149198830404 +Luxembourg,LUX,1978,41.08481944736845 +Luxembourg,LUX,1979,42.22882641812868 +Luxembourg,LUX,1980,38.92473426023394 +Luxembourg,LUX,1981,33.28254992982461 +Luxembourg,LUX,1982,31.183622122807026 +Luxembourg,LUX,1983,29.149076160818733 +Luxembourg,LUX,1984,31.40542129532168 +Luxembourg,LUX,1985,32.25536848538012 +Luxembourg,LUX,1986,31.52657316081867 +Luxembourg,LUX,1987,29.786514900584802 +Luxembourg,LUX,1988,30.52907374269006 +Luxembourg,LUX,1989,35.08353439181289 +Luxembourg,LUX,1990,37.121465260899804 +Luxembourg,LUX,1991,39.89356749846913 +Luxembourg,LUX,1992,40.01345100460892 +Luxembourg,LUX,1993,40.538802847324014 +Luxembourg,LUX,1994,38.97384849795362 +Luxembourg,LUX,1995,33.89503870843033 +Luxembourg,LUX,1996,34.87109628726885 +Luxembourg,LUX,1997,34.12111192254018 +Luxembourg,LUX,1998,32.93717168168668 +Luxembourg,LUX,1999,34.815567393936625 +Luxembourg,LUX,2000,37.14341503736678 +Luxembourg,LUX,2001,39.8087612636991 +Luxembourg,LUX,2002,43.531307772540494 +Luxembourg,LUX,2003,45.65602424493431 +Luxembourg,LUX,2004,51.71773574743833 +Luxembourg,LUX,2005,52.48932637727131 +Luxembourg,LUX,2006,51.55496772017162 +Luxembourg,LUX,2007,50.05177954260768 +Luxembourg,LUX,2008,49.684336078008236 +Luxembourg,LUX,2009,47.51904540719249 +Luxembourg,LUX,2010,50.042550475761594 +Luxembourg,LUX,2011,48.75372141672244 +Luxembourg,LUX,2012,47.87144226552906 +Luxembourg,LUX,2013,45.609471008495845 +Luxembourg,LUX,2014,44.185796806264236 +Luxembourg,LUX,2015,42.953448936883056 +Luxembourg,LUX,2016,42.396296979496874 +Luxembourg,LUX,2017,44.238365545839905 +Luxembourg,LUX,2018,46.37452962364919 +Macedonia,MKD,1990,29.499792333224303 +Macedonia,MKD,1991,29.171477204289964 +Macedonia,MKD,1992,29.960999439338217 +Macedonia,MKD,1993,30.10960690962455 +Macedonia,MKD,1994,28.21565314498416 +Macedonia,MKD,1995,28.39048204072591 +Macedonia,MKD,1996,33.00371929703541 +Macedonia,MKD,1997,29.72075121520854 +Macedonia,MKD,1998,33.57156976166213 +Macedonia,MKD,1999,32.05196899169684 +Macedonia,MKD,2000,30.46698617964638 +Macedonia,MKD,2001,28.832879559033568 +Macedonia,MKD,2002,28.144042697570946 +Macedonia,MKD,2003,31.606624531222845 +Macedonia,MKD,2004,31.20646641521417 +Macedonia,MKD,2005,32.20094540719113 +Macedonia,MKD,2006,32.73651696195275 +Macedonia,MKD,2007,32.642620239328224 +Macedonia,MKD,2008,31.58118874680562 +Macedonia,MKD,2009,31.05549981401511 +Macedonia,MKD,2010,33.54062807056507 +Macedonia,MKD,2011,33.625340491814846 +Macedonia,MKD,2012,31.255142042995246 +Macedonia,MKD,2013,29.973642748411606 +Macedonia,MKD,2014,27.864222870128625 +Macedonia,MKD,2015,29.348505042391153 +Macedonia,MKD,2016,30.477574345740027 +Macedonia,MKD,2017,29.434250920355122 +Macedonia,MKD,2018,30.771172812656104 +Malaysia,MYS,1965,28.862792764416643 +Malaysia,MYS,1966,33.68862531063892 +Malaysia,MYS,1967,34.04625538655559 +Malaysia,MYS,1968,34.69531059394441 +Malaysia,MYS,1969,36.32006723611108 +Malaysia,MYS,1970,40.59018792555945 +Malaysia,MYS,1971,45.163013976082276 +Malaysia,MYS,1972,50.52907517978705 +Malaysia,MYS,1973,54.62254246660874 +Malaysia,MYS,1974,55.67450202020593 +Malaysia,MYS,1975,57.798909520208554 +Malaysia,MYS,1976,64.01057242756126 +Malaysia,MYS,1977,71.05672762607452 +Malaysia,MYS,1978,97.1387363178295 +Malaysia,MYS,1979,118.77162599483258 +Malaysia,MYS,1980,127.86659753875969 +Malaysia,MYS,1981,131.17310458656326 +Malaysia,MYS,1982,141.3343394250648 +Malaysia,MYS,1983,162.39697420542683 +Malaysia,MYS,1984,175.12017760335877 +Malaysia,MYS,1985,173.32591039269627 +Malaysia,MYS,1986,194.33983176832587 +Malaysia,MYS,1987,200.30663841833308 +Malaysia,MYS,1988,212.53144014517932 +Malaysia,MYS,1989,237.51883216034275 +Malaysia,MYS,1990,256.6939615605875 +Malaysia,MYS,1991,310.90723965116257 +Malaysia,MYS,1992,336.29143100537163 +Malaysia,MYS,1993,350.662295318917 +Malaysia,MYS,1994,382.6091271426624 +Malaysia,MYS,1995,398.8024485839119 +Malaysia,MYS,1996,445.56367814429507 +Malaysia,MYS,1997,518.5980843903851 +Malaysia,MYS,1998,482.15469546919655 +Malaysia,MYS,1999,545.5129566911469 +Malaysia,MYS,2000,607.1999922664223 +Malaysia,MYS,2001,611.6920861699305 +Malaysia,MYS,2002,655.0230435012915 +Malaysia,MYS,2003,712.6396689222082 +Malaysia,MYS,2004,759.4088336773345 +Malaysia,MYS,2005,810.3648299660173 +Malaysia,MYS,2006,842.2156532966138 +Malaysia,MYS,2007,897.9963204847741 +Malaysia,MYS,2008,929.8794932686718 +Malaysia,MYS,2009,903.8923465821782 +Malaysia,MYS,2010,931.4359840046412 +Malaysia,MYS,2011,963.9932235668257 +Malaysia,MYS,2012,1035.1011339844063 +Malaysia,MYS,2013,1082.4110992877754 +Malaysia,MYS,2014,1089.0104203438173 +Malaysia,MYS,2015,1106.317906558808 +Malaysia,MYS,2016,1123.1014731811208 +Malaysia,MYS,2017,1124.9293269297432 +Malaysia,MYS,2018,1154.850234383959 +Mexico,MEX,1965,290.4355701705385 +Mexico,MEX,1966,307.41332887674497 +Mexico,MEX,1967,313.1054467467597 +Mexico,MEX,1968,340.65580595855266 +Mexico,MEX,1969,374.44350626811297 +Mexico,MEX,1970,399.14609191798235 +Mexico,MEX,1971,419.78162184762084 +Mexico,MEX,1972,464.23150254614137 +Mexico,MEX,1973,500.84938070782795 +Mexico,MEX,1974,552.3392530852819 +Mexico,MEX,1975,590.5203443229158 +Mexico,MEX,1976,628.1318341060734 +Mexico,MEX,1977,662.3619838272543 +Mexico,MEX,1978,747.0919993271067 +Mexico,MEX,1979,825.9854796390056 +Mexico,MEX,1980,900.663750873957 +Mexico,MEX,1981,993.8785816123067 +Mexico,MEX,1982,1036.5280683763121 +Mexico,MEX,1983,1025.663333156251 +Mexico,MEX,1984,1072.866603659469 +Mexico,MEX,1985,1124.8076437961722 +Mexico,MEX,1986,1093.0450077680205 +Mexico,MEX,1987,1129.7138755775431 +Mexico,MEX,1988,1137.4049917581306 +Mexico,MEX,1989,1200.5375408940263 +Mexico,MEX,1990,1263.0642091390553 +Mexico,MEX,1991,1312.2814881076956 +Mexico,MEX,1992,1334.4386333860602 +Mexico,MEX,1993,1341.115738368181 +Mexico,MEX,1994,1419.729949287179 +Mexico,MEX,1995,1395.5166237384856 +Mexico,MEX,1996,1439.235915025888 +Mexico,MEX,1997,1464.465419605726 +Mexico,MEX,1998,1530.3521170529218 +Mexico,MEX,1999,1548.4250748707427 +Mexico,MEX,2000,1621.2166351400456 +Mexico,MEX,2001,1602.6966226562274 +Mexico,MEX,2002,1655.147249889814 +Mexico,MEX,2003,1670.05298635881 +Mexico,MEX,2004,1760.5618220507297 +Mexico,MEX,2005,1874.1794489925887 +Mexico,MEX,2006,1934.2899369937925 +Mexico,MEX,2007,1945.290340190903 +Mexico,MEX,2008,1986.8254189796837 +Mexico,MEX,2009,1971.7857960385757 +Mexico,MEX,2010,2030.3438329458265 +Mexico,MEX,2011,2128.925878492728 +Mexico,MEX,2012,2142.0360154622135 +Mexico,MEX,2013,2151.944519176614 +Mexico,MEX,2014,2141.568717637382 +Mexico,MEX,2015,2139.575795967157 +Mexico,MEX,2016,2167.347883580739 +Mexico,MEX,2017,2201.566076383148 +Mexico,MEX,2018,2173.807726627447 +Middle Africa,,1965,33.790227759222404 +Middle Africa,,1966,34.93225668977215 +Middle Africa,,1967,36.53054884543308 +Middle Africa,,1968,38.75861356202762 +Middle Africa,,1969,40.64730999384807 +Middle Africa,,1970,42.48835133881569 +Middle Africa,,1971,49.103223222381686 +Middle Africa,,1972,50.959357468582255 +Middle Africa,,1973,56.86375282726559 +Middle Africa,,1974,58.909051198040885 +Middle Africa,,1975,55.25487055031554 +Middle Africa,,1976,54.63627221543679 +Middle Africa,,1977,57.63519134487213 +Middle Africa,,1978,64.20950996162577 +Middle Africa,,1979,65.1744561626046 +Middle Africa,,1980,67.80875566685862 +Middle Africa,,1981,72.1070998627927 +Middle Africa,,1982,69.68877989123042 +Middle Africa,,1983,77.16380690070415 +Middle Africa,,1984,73.05504431759216 +Middle Africa,,1985,81.88093240029055 +Middle Africa,,1986,81.39081430031207 +Middle Africa,,1987,83.26875457956315 +Middle Africa,,1988,87.53381262820005 +Middle Africa,,1989,91.85944917844951 +Middle Africa,,1990,85.0418490752833 +Middle Africa,,1991,79.88120662492939 +Middle Africa,,1992,81.80592570943818 +Middle Africa,,1993,81.89321653015354 +Middle Africa,,1994,79.58075236012911 +Middle Africa,,1995,81.69136750454848 +Middle Africa,,1996,82.18224221856343 +Middle Africa,,1997,82.02290730711694 +Middle Africa,,1998,79.00580957848379 +Middle Africa,,1999,82.50644566336852 +Middle Africa,,2000,90.05890712488984 +Middle Africa,,2001,101.52126294652004 +Middle Africa,,2002,107.59237027090636 +Middle Africa,,2003,117.07960821899908 +Middle Africa,,2004,131.4342790427874 +Middle Africa,,2005,131.92797973833703 +Middle Africa,,2006,145.3938256187248 +Middle Africa,,2007,149.1697090400252 +Middle Africa,,2008,169.01424774833723 +Middle Africa,,2009,179.6430088240256 +Middle Africa,,2010,193.55408764521977 +Middle Africa,,2011,210.39465044919658 +Middle Africa,,2012,214.59404169763084 +Middle Africa,,2013,228.9487855432747 +Middle Africa,,2014,240.82475422147698 +Middle Africa,,2015,234.47001329047058 +Middle Africa,,2016,244.84730364292847 +Middle Africa,,2017,254.17568254966983 +Middle Africa,,2018,266.2348522785487 +Middle East,,1965,561.4094753361031 +Middle East,,1966,585.3364189259314 +Middle East,,1967,612.4623033901796 +Middle East,,1968,646.450219491899 +Middle East,,1969,680.0805547768631 +Middle East,,1970,714.978789822836 +Middle East,,1971,757.0964813800279 +Middle East,,1972,823.5227715107023 +Middle East,,1973,902.4664005286799 +Middle East,,1974,961.0591368334901 +Middle East,,1975,959.0271123362097 +Middle East,,1976,1085.1335366143264 +Middle East,,1977,1233.7959964641839 +Middle East,,1978,1293.2584952353407 +Middle East,,1979,1518.9456521825502 +Middle East,,1980,1469.7778320185669 +Middle East,,1981,1601.1805385576204 +Middle East,,1982,1773.6107063121424 +Middle East,,1983,1940.440666330837 +Middle East,,1984,2192.492620350803 +Middle East,,1985,2331.5712581869857 +Middle East,,1986,2435.5800171494147 +Middle East,,1987,2605.496637827771 +Middle East,,1988,2767.9652147348124 +Middle East,,1989,2917.693649152668 +Middle East,,1990,3014.4537823019145 +Middle East,,1991,3148.9934558451077 +Middle East,,1992,3433.7478927027887 +Middle East,,1993,3536.005252344063 +Middle East,,1994,3947.067109223678 +Middle East,,1995,4084.6679654680456 +Middle East,,1996,4215.5973808406725 +Middle East,,1997,4417.01265299148 +Middle East,,1998,4489.485602990267 +Middle East,,1999,4570.561476078293 +Middle East,,2000,4801.8999492805215 +Middle East,,2001,5035.957261668717 +Middle East,,2002,5312.897354669109 +Middle East,,2003,5546.521126299047 +Middle East,,2004,5976.944614139297 +Middle East,,2005,6387.858689541813 +Middle East,,2006,6713.692583636376 +Middle East,,2007,7091.871787080568 +Middle East,,2008,7602.660559885327 +Middle East,,2009,7836.487404295822 +Middle East,,2010,8255.216254636349 +Middle East,,2011,8587.724653378496 +Middle East,,2012,8924.21372776715 +Middle East,,2013,9216.91672070288 +Middle East,,2014,9503.66488902628 +Middle East,,2015,9811.90528801844 +Middle East,,2016,10058.873425512096 +Middle East,,2017,10250.507226853251 +Middle East,,2018,10493.619931743013 +Morocco,MAR,1965,17.957445137686413 +Morocco,MAR,1966,22.62252289383678 +Morocco,MAR,1967,24.04677351243769 +Morocco,MAR,1968,26.261629954859128 +Morocco,MAR,1969,28.835760213381178 +Morocco,MAR,1970,29.923720998863743 +Morocco,MAR,1971,31.83256782333327 +Morocco,MAR,1972,34.46996039333333 +Morocco,MAR,1973,38.425873614152 +Morocco,MAR,1974,41.04761629040932 +Morocco,MAR,1975,42.03476286052636 +Morocco,MAR,1976,45.48806896836251 +Morocco,MAR,1977,51.10455708315787 +Morocco,MAR,1978,54.40436018725141 +Morocco,MAR,1979,59.400129681403534 +Morocco,MAR,1980,60.25999619304096 +Morocco,MAR,1981,58.73599557877193 +Morocco,MAR,1982,60.005169381228114 +Morocco,MAR,1983,62.07001819590639 +Morocco,MAR,1984,63.77012949251458 +Morocco,MAR,1985,65.14462286175443 +Morocco,MAR,1986,67.32590904760227 +Morocco,MAR,1987,69.29659430824559 +Morocco,MAR,1988,73.18225631362576 +Morocco,MAR,1989,80.47056559543856 +Morocco,MAR,1990,82.3587607346784 +Morocco,MAR,1991,83.40485619725148 +Morocco,MAR,1992,93.46561942081874 +Morocco,MAR,1993,94.6217378603509 +Morocco,MAR,1994,104.18108164356721 +Morocco,MAR,1995,102.25300851573101 +Morocco,MAR,1996,106.47673592222226 +Morocco,MAR,1997,110.67596227625727 +Morocco,MAR,1998,113.63344277169587 +Morocco,MAR,1999,118.22355533046846 +Morocco,MAR,2000,117.2089010679538 +Morocco,MAR,2001,126.57838743146156 +Morocco,MAR,2002,129.7637491143006 +Morocco,MAR,2003,129.97915365974092 +Morocco,MAR,2004,148.07765633374558 +Morocco,MAR,2005,160.81603978008985 +Morocco,MAR,2006,164.10974999778085 +Morocco,MAR,2007,162.57379965666948 +Morocco,MAR,2008,179.47305925260463 +Morocco,MAR,2009,174.83820455028652 +Morocco,MAR,2010,193.86873708955483 +Morocco,MAR,2011,203.79267807759905 +Morocco,MAR,2012,207.37692279593276 +Morocco,MAR,2013,212.84003230037646 +Morocco,MAR,2014,216.00568215897917 +Morocco,MAR,2015,219.82534236450002 +Morocco,MAR,2016,222.2724897871349 +Morocco,MAR,2017,232.82498091120502 +Morocco,MAR,2018,244.18719264091908 +Netherlands,NLD,1965,413.9600936111114 +Netherlands,NLD,1966,443.3774338888891 +Netherlands,NLD,1967,468.8000280555557 +Netherlands,NLD,1968,524.3718247222222 +Netherlands,NLD,1969,584.7302955555562 +Netherlands,NLD,1970,659.742096666667 +Netherlands,NLD,1971,695.7157786111109 +Netherlands,NLD,1972,808.0853933333335 +Netherlands,NLD,1973,859.4568991666672 +Netherlands,NLD,1974,814.6718530555555 +Netherlands,NLD,1975,821.09644872807 +Netherlands,NLD,1976,895.4260657309949 +Netherlands,NLD,1977,880.0585811695906 +Netherlands,NLD,1978,896.3202823657658 +Netherlands,NLD,1979,926.8887576249512 +Netherlands,NLD,1980,869.9844546159737 +Netherlands,NLD,1981,825.1718659389552 +Netherlands,NLD,1982,762.7461183503299 +Netherlands,NLD,1983,766.5225215962098 +Netherlands,NLD,1984,795.9240555176867 +Netherlands,NLD,1985,821.7862835483805 +Netherlands,NLD,1986,862.4530561862507 +Netherlands,NLD,1987,880.2974413814818 +Netherlands,NLD,1988,883.139387104297 +Netherlands,NLD,1989,887.1087630407333 +Netherlands,NLD,1990,909.5920298005944 +Netherlands,NLD,1991,926.8947869794921 +Netherlands,NLD,1992,937.8260547150554 +Netherlands,NLD,1993,945.5824242898933 +Netherlands,NLD,1994,935.3554542211506 +Netherlands,NLD,1995,973.4321176857287 +Netherlands,NLD,1996,1015.3472964592738 +Netherlands,NLD,1997,997.3492917715522 +Netherlands,NLD,1998,1004.0202074300104 +Netherlands,NLD,1999,991.7449041785895 +Netherlands,NLD,2000,1004.5650916514284 +Netherlands,NLD,2001,1043.1978210086538 +Netherlands,NLD,2002,1043.4607252663445 +Netherlands,NLD,2003,1050.6582681483953 +Netherlands,NLD,2004,1085.8703402323886 +Netherlands,NLD,2005,1108.3119029379357 +Netherlands,NLD,2006,1085.7179820212089 +Netherlands,NLD,2007,1104.2764813093365 +Netherlands,NLD,2008,1090.5515648650455 +Netherlands,NLD,2009,1074.9872943725181 +Netherlands,NLD,2010,1137.983017611443 +Netherlands,NLD,2011,1089.5114335110518 +Netherlands,NLD,2012,1054.1184275573546 +Netherlands,NLD,2013,1022.8494110669366 +Netherlands,NLD,2014,966.4267227609052 +Netherlands,NLD,2015,978.6599893847855 +Netherlands,NLD,2016,996.3340068845852 +Netherlands,NLD,2017,982.7806657443687 +Netherlands,NLD,2018,986.0880219385213 +New Zealand,NZL,1965,81.6801067543859 +New Zealand,NZL,1966,86.75314634502928 +New Zealand,NZL,1967,87.4560188596491 +New Zealand,NZL,1968,89.37743723684216 +New Zealand,NZL,1969,91.01730387426896 +New Zealand,NZL,1970,101.42340472222214 +New Zealand,NZL,1971,105.85871260233921 +New Zealand,NZL,1972,113.01244695906438 +New Zealand,NZL,1973,117.80760040935715 +New Zealand,NZL,1974,118.24964573937245 +New Zealand,NZL,1975,119.26908461599288 +New Zealand,NZL,1976,123.85148766051404 +New Zealand,NZL,1977,126.91877444591739 +New Zealand,NZL,1978,124.99185386159483 +New Zealand,NZL,1979,125.92940736958407 +New Zealand,NZL,1980,126.37513974628786 +New Zealand,NZL,1981,126.71436651753282 +New Zealand,NZL,1982,131.37930761018936 +New Zealand,NZL,1983,136.32389808318348 +New Zealand,NZL,1984,143.94292030458655 +New Zealand,NZL,1985,145.64772133170163 +New Zealand,NZL,1986,152.33767077175295 +New Zealand,NZL,1987,156.9769735375028 +New Zealand,NZL,1988,160.99128588016558 +New Zealand,NZL,1989,164.80481876242487 +New Zealand,NZL,1990,171.21474143104368 +New Zealand,NZL,1991,176.83992854295172 +New Zealand,NZL,1992,178.06717217652232 +New Zealand,NZL,1993,183.4141998276277 +New Zealand,NZL,1994,194.84495237163193 +New Zealand,NZL,1995,201.1000650841631 +New Zealand,NZL,1996,206.67980073814968 +New Zealand,NZL,1997,208.6874181340691 +New Zealand,NZL,1998,208.46733006315753 +New Zealand,NZL,1999,210.66135167770486 +New Zealand,NZL,2000,219.85435785092557 +New Zealand,NZL,2001,219.02409964683858 +New Zealand,NZL,2002,226.98107801958827 +New Zealand,NZL,2003,220.41750365145145 +New Zealand,NZL,2004,228.0788157104949 +New Zealand,NZL,2005,221.2624763145691 +New Zealand,NZL,2006,223.87016286123526 +New Zealand,NZL,2007,223.6653218874445 +New Zealand,NZL,2008,224.7211211171855 +New Zealand,NZL,2009,223.80972223171128 +New Zealand,NZL,2010,231.21717282797204 +New Zealand,NZL,2011,229.66897799727707 +New Zealand,NZL,2012,232.34783238220453 +New Zealand,NZL,2013,235.07851912340848 +New Zealand,NZL,2014,246.54853562733615 +New Zealand,NZL,2015,248.3235525069312 +New Zealand,NZL,2016,250.76116376577716 +New Zealand,NZL,2017,257.80862996936906 +New Zealand,NZL,2018,252.82263129953392 +North America,,1965,16171.820137905172 +North America,,1966,17089.84765381383 +North America,,1967,17697.166772199103 +North America,,1968,18793.134462156027 +North America,,1969,19813.92978079766 +North America,,1970,20559.041491230822 +North America,,1971,21005.634290985683 +North America,,1972,22137.74157152797 +North America,,1973,23103.594598187672 +North America,,1974,22701.772223877928 +North America,,1975,22218.213705152404 +North America,,1976,23443.196883157714 +North America,,1977,24128.849572941657 +North America,,1978,24338.487390029084 +North America,,1979,24699.941461076938 +North America,,1980,24054.38704846231 +North America,,1981,23468.93998842471 +North America,,1982,22696.473668779883 +North America,,1983,22574.869186512005 +North America,,1984,23797.656316393164 +North America,,1985,23877.679354744065 +North America,,1986,23966.241563561936 +North America,,1987,24781.550577697064 +North America,,1988,25859.028995304376 +North America,,1989,26468.39718578985 +North America,,1990,26516.228994800884 +North America,,1991,26531.2317765977 +North America,,1992,26966.84520908619 +North America,,1993,27510.936253056283 +North America,,1994,28133.04487597688 +North America,,1995,28675.043928329622 +North America,,1996,29614.752411788944 +North America,,1997,29864.136533743233 +North America,,1998,30051.03736476611 +North America,,1999,30615.017665030256 +North America,,2000,31375.938859108104 +North America,,2001,30684.4794707478 +North America,,2002,31234.67918099587 +North America,,2003,31377.478792113838 +North America,,2004,32052.04391386819 +North America,,2005,32240.452576358286 +North America,,2006,32065.669940409127 +North America,,2007,32604.651650203537 +North America,,2008,31994.260700870298 +North America,,2009,30506.749864037854 +North America,,2010,31515.213161112883 +North America,,2011,31568.552927292316 +North America,,2012,30905.102744064276 +North America,,2013,31750.8202889215 +North America,,2014,32085.85645773006 +North America,,2015,31822.278028924884 +North America,,2016,31834.14723837123 +North America,,2017,32046.209621687736 +North America,,2018,32935.90731321991 +Norway,NOR,1965,199.10104350777783 +Norway,NOR,1966,204.3975330777774 +Norway,NOR,1967,219.3991582411114 +Norway,NOR,1968,245.63467979666697 +Norway,NOR,1969,246.95988048222208 +Norway,NOR,1970,259.212358175555 +Norway,NOR,1971,273.6116725688885 +Norway,NOR,1972,290.013375638889 +Norway,NOR,1973,306.9035789088893 +Norway,NOR,1974,306.7773764866671 +Norway,NOR,1975,311.5040987422223 +Norway,NOR,1976,333.46135581222177 +Norway,NOR,1977,308.4265118422227 +Norway,NOR,1978,346.03209941333375 +Norway,NOR,1979,370.1233946800003 +Norway,NOR,1980,352.6639100022217 +Norway,NOR,1981,371.14839029555606 +Norway,NOR,1982,366.4330825622218 +Norway,NOR,1983,401.36573559555586 +Norway,NOR,1984,406.9502880400006 +Norway,NOR,1985,402.1257656809345 +Norway,NOR,1986,393.5235154384198 +Norway,NOR,1987,412.7327468772501 +Norway,NOR,1988,424.6586813241512 +Norway,NOR,1989,451.64293560011623 +Norway,NOR,1990,455.8564492532515 +Norway,NOR,1991,420.83581370274703 +Norway,NOR,1992,442.9710760932576 +Norway,NOR,1993,457.4949924435046 +Norway,NOR,1994,442.9942428416684 +Norway,NOR,1995,469.0815064154271 +Norway,NOR,1996,432.74288868653474 +Norway,NOR,1997,454.7943567504043 +Norway,NOR,1998,472.4635223518637 +Norway,NOR,1999,484.1186567332834 +Norway,NOR,2000,534.2051965135344 +Norway,NOR,2001,487.961097330873 +Norway,NOR,2002,508.8442802409884 +Norway,NOR,2003,453.4604904205348 +Norway,NOR,2004,463.4798195627405 +Norway,NOR,2005,529.0139161638015 +Norway,NOR,2006,487.41674381874907 +Norway,NOR,2007,524.7253246566137 +Norway,NOR,2008,539.4345480742497 +Norway,NOR,2009,500.709409408148 +Norway,NOR,2010,483.2746864413113 +Norway,NOR,2011,492.9949293540692 +Norway,NOR,2012,549.8535535804514 +Norway,NOR,2013,515.348866714301 +Norway,NOR,2014,531.6483842264718 +Norway,NOR,2015,541.1740171729516 +Norway,NOR,2016,549.2282559471997 +Norway,NOR,2017,553.9895192407646 +Norway,NOR,2018,551.0421487509285 +Oman,OMN,1965,5.291939166666668 +Oman,OMN,1966,5.5202780555555515 +Oman,OMN,1967,5.759781666666671 +Oman,OMN,1968,6.022882500000005 +Oman,OMN,1969,6.273933333333329 +Oman,OMN,1970,6.561514722222218 +Oman,OMN,1971,15.471502777777827 +Oman,OMN,1972,17.677216666666723 +Oman,OMN,1973,15.375913888888883 +Oman,OMN,1974,14.127883333333378 +Oman,OMN,1975,12.904697222222245 +Oman,OMN,1976,14.856397222222265 +Oman,OMN,1977,14.312168888888948 +Oman,OMN,1978,16.64237638888893 +Oman,OMN,1979,19.17322694444448 +Oman,OMN,1980,17.058377777777796 +Oman,OMN,1981,18.02799749999998 +Oman,OMN,1982,23.881949444444444 +Oman,OMN,1983,22.350086388888922 +Oman,OMN,1984,32.493594722222234 +Oman,OMN,1985,33.571021111111065 +Oman,OMN,1986,31.459568611111095 +Oman,OMN,1987,35.43523500000001 +Oman,OMN,1988,34.38907666666665 +Oman,OMN,1989,39.01986250000003 +Oman,OMN,1990,48.86399166666672 +Oman,OMN,1991,64.8682466666667 +Oman,OMN,1992,62.49089861111113 +Oman,OMN,1993,59.8380080555556 +Oman,OMN,1994,56.84055124294433 +Oman,OMN,1995,65.89965408803272 +Oman,OMN,1996,67.78353564329402 +Oman,OMN,1997,69.71264101147702 +Oman,OMN,1998,71.64712888664364 +Oman,OMN,1999,82.48155384588505 +Oman,OMN,2000,114.5245906918614 +Oman,OMN,2001,126.48572001099987 +Oman,OMN,2002,137.64600530157867 +Oman,OMN,2003,142.57997596349733 +Oman,OMN,2004,132.4522922100182 +Oman,OMN,2005,159.32631457482643 +Oman,OMN,2006,174.04108614090063 +Oman,OMN,2007,173.57794460405268 +Oman,OMN,2008,203.93386142209616 +Oman,OMN,2009,204.33816844106354 +Oman,OMN,2010,240.05752498042315 +Oman,OMN,2011,262.2162777782752 +Oman,OMN,2012,285.0694841427613 +Oman,OMN,2013,318.43206949563324 +Oman,OMN,2014,317.11862984619177 +Oman,OMN,2015,334.98185126917673 +Oman,OMN,2016,336.89659542485634 +Oman,OMN,2017,341.14854042153496 +Oman,OMN,2018,356.9154646492128 +Other Asia & Pacific,,1965,189.65560049091442 +Other Asia & Pacific,,1966,201.37595585646952 +Other Asia & Pacific,,1967,219.0271624127035 +Other Asia & Pacific,,1968,235.77727495706478 +Other Asia & Pacific,,1969,250.31298698420736 +Other Asia & Pacific,,1970,266.9858778409897 +Other Asia & Pacific,,1971,292.71679539165433 +Other Asia & Pacific,,1972,303.64218754906204 +Other Asia & Pacific,,1973,314.4226221561983 +Other Asia & Pacific,,1974,336.21620585199133 +Other Asia & Pacific,,1975,345.40419068170957 +Other Asia & Pacific,,1976,363.3750439774996 +Other Asia & Pacific,,1977,383.96716173056785 +Other Asia & Pacific,,1978,405.64026608648606 +Other Asia & Pacific,,1979,437.24820958676816 +Other Asia & Pacific,,1980,468.78926721806863 +Other Asia & Pacific,,1981,481.3380428565706 +Other Asia & Pacific,,1982,502.10748443663806 +Other Asia & Pacific,,1983,522.142047995243 +Other Asia & Pacific,,1984,531.1286827253125 +Other Asia & Pacific,,1985,566.7546925045198 +Other Asia & Pacific,,1986,572.7170693312663 +Other Asia & Pacific,,1987,557.1205766939619 +Other Asia & Pacific,,1988,565.2513997494997 +Other Asia & Pacific,,1989,558.852138883567 +Other Asia & Pacific,,1990,546.2839804402416 +Other Asia & Pacific,,1991,537.9321534034708 +Other Asia & Pacific,,1992,487.9751851632183 +Other Asia & Pacific,,1993,467.13742763130074 +Other Asia & Pacific,,1994,448.3002103880559 +Other Asia & Pacific,,1995,443.0440141433426 +Other Asia & Pacific,,1996,409.74834171887795 +Other Asia & Pacific,,1997,406.12339773103946 +Other Asia & Pacific,,1998,390.3157871027124 +Other Asia & Pacific,,1999,411.27522757080976 +Other Asia & Pacific,,2000,438.4082159082215 +Other Asia & Pacific,,2001,455.2166495005974 +Other Asia & Pacific,,2002,448.38792013365486 +Other Asia & Pacific,,2003,472.70454205201366 +Other Asia & Pacific,,2004,479.92215337775076 +Other Asia & Pacific,,2005,504.80631647906773 +Other Asia & Pacific,,2006,523.5724886533841 +Other Asia & Pacific,,2007,512.6124021761541 +Other Asia & Pacific,,2008,536.8284504636149 +Other Asia & Pacific,,2009,490.92214143546335 +Other Asia & Pacific,,2010,527.761178859239 +Other Asia & Pacific,,2011,526.1304463994712 +Other Asia & Pacific,,2012,561.4522195345568 +Other Asia & Pacific,,2013,567.137483816757 +Other Asia & Pacific,,2014,613.1754122385938 +Other Asia & Pacific,,2015,627.3375126310706 +Other Asia & Pacific,,2016,704.1099874184868 +Other Asia & Pacific,,2017,725.3637294597162 +Other Asia & Pacific,,2018,760.40987591313 +Other CIS,,1985,385.2375784561139 +Other CIS,,1986,367.76880343078767 +Other CIS,,1987,378.339014421497 +Other CIS,,1988,417.44445062205057 +Other CIS,,1989,400.49582949962917 +Other CIS,,1990,400.6403081877884 +Other CIS,,1991,335.4694223791902 +Other CIS,,1992,282.99198109671664 +Other CIS,,1993,223.82496733989038 +Other CIS,,1994,186.2302125770409 +Other CIS,,1995,162.72859092426006 +Other CIS,,1996,175.1036657634392 +Other CIS,,1997,165.89044600243798 +Other CIS,,1998,165.13590500028872 +Other CIS,,1999,157.38625498457006 +Other CIS,,2000,151.7752372668114 +Other CIS,,2001,149.5869698270477 +Other CIS,,2002,149.9821358231864 +Other CIS,,2003,158.0506996124266 +Other CIS,,2004,171.16261193450555 +Other CIS,,2005,177.91907744688 +Other CIS,,2006,179.43241183646205 +Other CIS,,2007,194.61445470283346 +Other CIS,,2008,188.35049694863014 +Other CIS,,2009,181.27925038791636 +Other CIS,,2010,184.9036243194829 +Other CIS,,2011,197.59388272702566 +Other CIS,,2012,208.76547570221672 +Other CIS,,2013,198.83692828948503 +Other CIS,,2014,203.9076700994507 +Other CIS,,2015,202.88833369076886 +Other CIS,,2016,204.05905314774196 +Other CIS,,2017,209.02108785631597 +Other CIS,,2018,221.358680276232 +Other Caribbean,,1965,174.78273780820115 +Other Caribbean,,1966,182.8118200283623 +Other Caribbean,,1967,190.37164727381054 +Other Caribbean,,1968,195.81217162738665 +Other Caribbean,,1969,207.8317221419787 +Other Caribbean,,1970,224.76100659738105 +Other Caribbean,,1971,321.9597700757386 +Other Caribbean,,1972,332.07845026976054 +Other Caribbean,,1973,361.6224053664168 +Other Caribbean,,1974,359.90317345260956 +Other Caribbean,,1975,347.6347710679376 +Other Caribbean,,1976,361.24300351258046 +Other Caribbean,,1977,372.56884728772457 +Other Caribbean,,1978,385.1228006650773 +Other Caribbean,,1979,405.5341225763542 +Other Caribbean,,1980,448.0614600971784 +Other Caribbean,,1981,454.05952803548274 +Other Caribbean,,1982,411.2543873759835 +Other Caribbean,,1983,407.69619359391174 +Other Caribbean,,1984,412.97796334190383 +Other Caribbean,,1985,384.59958153480983 +Other Caribbean,,1986,383.50839601131486 +Other Caribbean,,1987,395.67039454609886 +Other Caribbean,,1988,396.49246553635027 +Other Caribbean,,1989,411.6457642351271 +Other Caribbean,,1990,411.24634871956255 +Other Caribbean,,1991,399.81818842116115 +Other Caribbean,,1992,379.0731455220565 +Other Caribbean,,1993,377.512725539307 +Other Caribbean,,1994,395.25252971989323 +Other Caribbean,,1995,397.67640476215826 +Other Caribbean,,1996,412.6834163940832 +Other Caribbean,,1997,448.4834658717484 +Other Caribbean,,1998,465.67340569539425 +Other Caribbean,,1999,446.84874662901456 +Other Caribbean,,2000,495.3950693089652 +Other Caribbean,,2001,504.3058654253304 +Other Caribbean,,2002,512.7008029304377 +Other Caribbean,,2003,524.5774402870933 +Other Caribbean,,2004,530.6073697447844 +Other Caribbean,,2005,532.6671888213943 +Other Caribbean,,2006,545.1137263464536 +Other Caribbean,,2007,530.6495080387995 +Other Caribbean,,2008,506.5529505013749 +Other Caribbean,,2009,479.4761296639808 +Other Caribbean,,2010,478.3555936942854 +Other Caribbean,,2011,485.5109394410783 +Other Caribbean,,2012,471.5027219926814 +Other Caribbean,,2013,458.119628909192 +Other Caribbean,,2014,459.56183612965515 +Other Caribbean,,2015,468.3665797248601 +Other Caribbean,,2016,483.7653612148162 +Other Caribbean,,2017,484.63584166553954 +Other Caribbean,,2018,493.24398091148635 +Other Middle East,,1965,71.85889595505549 +Other Middle East,,1966,75.1344438269019 +Other Middle East,,1967,78.77254032977035 +Other Middle East,,1968,82.54602232520618 +Other Middle East,,1969,86.67432620155724 +Other Middle East,,1970,86.18015072640581 +Other Middle East,,1971,92.33321735394959 +Other Middle East,,1972,92.66646372333746 +Other Middle East,,1973,102.68200307415543 +Other Middle East,,1974,114.33771486725584 +Other Middle East,,1975,125.74206078241266 +Other Middle East,,1976,140.86627841641078 +Other Middle East,,1977,155.61312453658897 +Other Middle East,,1978,165.37813876793155 +Other Middle East,,1979,189.8827640497265 +Other Middle East,,1980,182.40141666962916 +Other Middle East,,1981,191.6301996468435 +Other Middle East,,1982,225.15526489379573 +Other Middle East,,1983,240.47320069564455 +Other Middle East,,1984,259.3347079750229 +Other Middle East,,1985,272.4894249571401 +Other Middle East,,1986,276.7917929066761 +Other Middle East,,1987,291.1998977710073 +Other Middle East,,1988,299.9876565897481 +Other Middle East,,1989,305.9102411439141 +Other Middle East,,1990,322.08505330050014 +Other Middle East,,1991,340.66488610247745 +Other Middle East,,1992,354.47954433110004 +Other Middle East,,1993,366.23480336143643 +Other Middle East,,1994,378.24962401790026 +Other Middle East,,1995,406.1777383705827 +Other Middle East,,1996,411.0477494484644 +Other Middle East,,1997,448.9024678022901 +Other Middle East,,1998,475.9120838192482 +Other Middle East,,1999,479.52570078095516 +Other Middle East,,2000,486.6537440464917 +Other Middle East,,2001,499.9978361789408 +Other Middle East,,2002,518.8729808158157 +Other Middle East,,2003,541.5997492065741 +Other Middle East,,2004,558.0941232192957 +Other Middle East,,2005,609.4227944104629 +Other Middle East,,2006,632.2802522662064 +Other Middle East,,2007,654.9117797164843 +Other Middle East,,2008,677.6749511774474 +Other Middle East,,2009,680.1982890419774 +Other Middle East,,2010,677.1531861097455 +Other Middle East,,2011,636.6319395206988 +Other Middle East,,2012,594.4343210704194 +Other Middle East,,2013,584.5051914063176 +Other Middle East,,2014,582.189656841593 +Other Middle East,,2015,562.453819001195 +Other Middle East,,2016,557.7991071437206 +Other Middle East,,2017,558.3064935393877 +Other Middle East,,2018,556.9315343789482 +Other Northern Africa,,1965,17.52508856223459 +Other Northern Africa,,1966,19.19670840500067 +Other Northern Africa,,1967,20.445144929460685 +Other Northern Africa,,1968,23.315377282860506 +Other Northern Africa,,1969,25.994050932137572 +Other Northern Africa,,1970,30.81143310962559 +Other Northern Africa,,1971,28.474137620539047 +Other Northern Africa,,1972,36.067692626828276 +Other Northern Africa,,1973,49.04354032146429 +Other Northern Africa,,1974,53.89957027579855 +Other Northern Africa,,1975,60.192831583046676 +Other Northern Africa,,1976,70.56340968234282 +Other Northern Africa,,1977,80.07725094713565 +Other Northern Africa,,1978,89.16209554033085 +Other Northern Africa,,1979,116.09863267199886 +Other Northern Africa,,1980,120.73186703719423 +Other Northern Africa,,1981,128.71391033232615 +Other Northern Africa,,1982,131.82913162516482 +Other Northern Africa,,1983,138.79324606960878 +Other Northern Africa,,1984,137.5357245961311 +Other Northern Africa,,1985,154.79124701397754 +Other Northern Africa,,1986,158.52014819220196 +Other Northern Africa,,1987,175.55713819581044 +Other Northern Africa,,1988,178.42607841368832 +Other Northern Africa,,1989,192.2446538771723 +Other Northern Africa,,1990,187.9342373293598 +Other Northern Africa,,1991,186.40498301718998 +Other Northern Africa,,1992,186.77345839819301 +Other Northern Africa,,1993,198.25764146737143 +Other Northern Africa,,1994,215.72434690596816 +Other Northern Africa,,1995,227.4880880729179 +Other Northern Africa,,1996,233.19386140018884 +Other Northern Africa,,1997,243.0175773565438 +Other Northern Africa,,1998,253.03127981268406 +Other Northern Africa,,1999,250.2574812996915 +Other Northern Africa,,2000,269.4186178231078 +Other Northern Africa,,2001,275.3139725668877 +Other Northern Africa,,2002,272.6566324353091 +Other Northern Africa,,2003,281.79324611951904 +Other Northern Africa,,2004,304.20521359701655 +Other Northern Africa,,2005,312.29824484991343 +Other Northern Africa,,2006,313.19025536769095 +Other Northern Africa,,2007,304.23793209403266 +Other Northern Africa,,2008,319.09355704596277 +Other Northern Africa,,2009,339.5943014838559 +Other Northern Africa,,2010,348.1911268649572 +Other Northern Africa,,2011,251.06134452075872 +Other Northern Africa,,2012,299.5037873907529 +Other Northern Africa,,2013,323.6818590629265 +Other Northern Africa,,2014,318.5356825956313 +Other Northern Africa,,2015,279.1054036235332 +Other Northern Africa,,2016,268.7972896745987 +Other Northern Africa,,2017,284.35081398743034 +Other Northern Africa,,2018,295.93588485562 +Other South America,,1965,30.776313201852314 +Other South America,,1966,34.95816974089913 +Other South America,,1967,37.25547127561004 +Other South America,,1968,38.65972315658486 +Other South America,,1969,41.21441454467098 +Other South America,,1970,43.7575904737845 +Other South America,,1971,48.2298730352148 +Other South America,,1972,53.91031326952279 +Other South America,,1973,55.71849468412672 +Other South America,,1974,50.802129624658036 +Other South America,,1975,56.75488900471012 +Other South America,,1976,57.59399602419227 +Other South America,,1977,61.400976070602255 +Other South America,,1978,68.10682673955849 +Other South America,,1979,71.24198810831693 +Other South America,,1980,75.27514539709442 +Other South America,,1981,71.21202581960708 +Other South America,,1982,68.92780569790176 +Other South America,,1983,66.1130348909097 +Other South America,,1984,66.88378118258265 +Other South America,,1985,77.17712871266735 +Other South America,,1986,100.34448290849494 +Other South America,,1987,118.04486817829854 +Other South America,,1988,125.4566261511615 +Other South America,,1989,137.41034287027392 +Other South America,,1990,148.20091253980476 +Other South America,,1991,156.5048514860845 +Other South America,,1992,158.75715737565284 +Other South America,,1993,171.7890008635691 +Other South America,,1994,192.23786448071718 +Other South America,,1995,215.78625796434267 +Other South America,,1996,225.797811972918 +Other South America,,1997,244.81898338999451 +Other South America,,1998,254.53446274922177 +Other South America,,1999,254.82511860540453 +Other South America,,2000,249.71100889011845 +Other South America,,2001,232.28031866297331 +Other South America,,2002,241.12185669765992 +Other South America,,2003,253.5424883998591 +Other South America,,2004,250.55225981802917 +Other South America,,2005,253.95914089148027 +Other South America,,2006,254.86443417845615 +Other South America,,2007,275.23061720539033 +Other South America,,2008,284.0454022722826 +Other South America,,2009,292.7662724393725 +Other South America,,2010,308.4551515926872 +Other South America,,2011,318.6458859386119 +Other South America,,2012,328.3297858247919 +Other South America,,2013,338.50617970648125 +Other South America,,2014,333.86128248044935 +Other South America,,2015,340.2577568763926 +Other South America,,2016,369.0155369608513 +Other South America,,2017,363.9987553967819 +Other South America,,2018,368.7916307830972 +Other Southern Africa,,1965,4.368125637560205 +Other Southern Africa,,1966,4.893960434366463 +Other Southern Africa,,1967,5.181055682466851 +Other Southern Africa,,1968,5.766111653954747 +Other Southern Africa,,1969,5.949465211135069 +Other Southern Africa,,1970,6.3601406412973 +Other Southern Africa,,1971,6.56710496497595 +Other Southern Africa,,1972,7.062212809755694 +Other Southern Africa,,1973,7.25614631686588 +Other Southern Africa,,1974,7.632523261771835 +Other Southern Africa,,1975,7.798623815038955 +Other Southern Africa,,1976,8.457215039164968 +Other Southern Africa,,1977,8.199357640156457 +Other Southern Africa,,1978,8.46699200777131 +Other Southern Africa,,1979,8.563322066480566 +Other Southern Africa,,1980,9.125240772629702 +Other Southern Africa,,1981,10.830063195755676 +Other Southern Africa,,1982,10.99136498259778 +Other Southern Africa,,1983,10.433658623542234 +Other Southern Africa,,1984,10.802150162235105 +Other Southern Africa,,1985,12.28367012161679 +Other Southern Africa,,1986,12.817631352700808 +Other Southern Africa,,1987,13.251287403578898 +Other Southern Africa,,1988,14.32614654071802 +Other Southern Africa,,1989,15.410181750834072 +Other Southern Africa,,1990,20.25459562973814 +Other Southern Africa,,1991,24.736556475887795 +Other Southern Africa,,1992,26.565917418378675 +Other Southern Africa,,1993,26.930455111708653 +Other Southern Africa,,1994,27.638063087158834 +Other Southern Africa,,1995,29.904716430840978 +Other Southern Africa,,1996,28.84678621129746 +Other Southern Africa,,1997,29.603615498708734 +Other Southern Africa,,1998,32.815362198013325 +Other Southern Africa,,1999,35.00839405506917 +Other Southern Africa,,2000,36.23226932871573 +Other Southern Africa,,2001,37.21287600301907 +Other Southern Africa,,2002,37.16648128470967 +Other Southern Africa,,2003,37.179727407697946 +Other Southern Africa,,2004,37.37436406444525 +Other Southern Africa,,2005,40.155721824409014 +Other Southern Africa,,2006,39.59362959495739 +Other Southern Africa,,2007,41.206113985741354 +Other Southern Africa,,2008,42.914170768679 +Other Southern Africa,,2009,44.2906637446784 +Other Southern Africa,,2010,40.54692395182359 +Other Southern Africa,,2011,43.64555300007127 +Other Southern Africa,,2012,48.486861392841924 +Other Southern Africa,,2013,50.4407600183525 +Other Southern Africa,,2014,54.63140495736441 +Other Southern Africa,,2015,55.93716340492369 +Other Southern Africa,,2016,56.69334881954999 +Other Southern Africa,,2017,60.05946960684948 +Other Southern Africa,,2018,58.45864391200311 +Pakistan,PAK,1965,81.50971138888889 +Pakistan,PAK,1966,82.12597250000005 +Pakistan,PAK,1967,90.87251166666667 +Pakistan,PAK,1968,103.11285027777782 +Pakistan,PAK,1969,103.55751333333332 +Pakistan,PAK,1970,102.00093777777776 +Pakistan,PAK,1971,98.91317416666668 +Pakistan,PAK,1972,87.0857538888889 +Pakistan,PAK,1973,92.88082083333335 +Pakistan,PAK,1974,99.37520777777773 +Pakistan,PAK,1975,107.0604188888889 +Pakistan,PAK,1976,108.62916444444441 +Pakistan,PAK,1977,117.42874027777727 +Pakistan,PAK,1978,125.42269638888946 +Pakistan,PAK,1979,136.77495916666678 +Pakistan,PAK,1980,151.8402319444444 +Pakistan,PAK,1981,163.32450472222212 +Pakistan,PAK,1982,180.0507463888894 +Pakistan,PAK,1983,192.16013083333343 +Pakistan,PAK,1984,203.44179888888942 +Pakistan,PAK,1985,213.84556444444482 +Pakistan,PAK,1986,227.07887222222212 +Pakistan,PAK,1987,253.995507222222 +Pakistan,PAK,1988,269.9352233333332 +Pakistan,PAK,1989,286.5440113888891 +Pakistan,PAK,1990,299.85172583333275 +Pakistan,PAK,1991,317.6647211111107 +Pakistan,PAK,1992,333.4245966666664 +Pakistan,PAK,1993,369.0924908333334 +Pakistan,PAK,1994,382.25578972222274 +Pakistan,PAK,1995,403.17014583333355 +Pakistan,PAK,1996,429.28986694444404 +Pakistan,PAK,1997,416.788996111111 +Pakistan,PAK,1998,445.92294055555504 +Pakistan,PAK,1999,466.70780805555586 +Pakistan,PAK,2000,477.32636476608207 +Pakistan,PAK,2001,488.6689483333336 +Pakistan,PAK,2002,507.3845904970757 +Pakistan,PAK,2003,552.0908177758171 +Pakistan,PAK,2004,615.2535032141433 +Pakistan,PAK,2005,641.4896436343477 +Pakistan,PAK,2006,677.4650598557517 +Pakistan,PAK,2007,721.2290148484326 +Pakistan,PAK,2008,725.8460326523204 +Pakistan,PAK,2009,734.5198691571189 +Pakistan,PAK,2010,737.8021424161349 +Pakistan,PAK,2011,739.0478083074825 +Pakistan,PAK,2012,745.9788321538374 +Pakistan,PAK,2013,754.394666551063 +Pakistan,PAK,2014,777.4800861684739 +Pakistan,PAK,2015,818.5028169652619 +Pakistan,PAK,2016,891.3705949334167 +Pakistan,PAK,2017,941.8986698253368 +Pakistan,PAK,2018,988.9306144800513 +Peru,PER,1965,55.64911037379443 +Peru,PER,1966,67.74417456268738 +Peru,PER,1967,68.89841367126908 +Peru,PER,1968,70.12456241890801 +Peru,PER,1969,70.59141273556679 +Peru,PER,1970,73.66181898992001 +Peru,PER,1971,76.02742258771934 +Peru,PER,1972,68.03415786549706 +Peru,PER,1973,78.17805621345026 +Peru,PER,1974,90.66974027777783 +Peru,PER,1975,93.33479333333334 +Peru,PER,1976,94.81543517543867 +Peru,PER,1977,95.3300612719298 +Peru,PER,1978,94.84345391812865 +Peru,PER,1979,98.63031709064335 +Peru,PER,1980,105.43572893274857 +Peru,PER,1981,110.61801361111114 +Peru,PER,1982,110.42992036549703 +Peru,PER,1983,97.53522755847952 +Peru,PER,1984,102.41490282163747 +Peru,PER,1985,101.7848035818713 +Peru,PER,1986,108.93302320175434 +Peru,PER,1987,117.05238608187182 +Peru,PER,1988,114.27108321637415 +Peru,PER,1989,104.78937311403494 +Peru,PER,1990,103.64565918128646 +Peru,PER,1991,102.5584216520467 +Peru,PER,1992,100.36182925438588 +Peru,PER,1993,109.05330293859643 +Peru,PER,1994,118.68581445906385 +Peru,PER,1995,129.59051722222173 +Peru,PER,1996,134.01868587719324 +Peru,PER,1997,135.2160021052631 +Peru,PER,1998,135.60758409356743 +Peru,PER,1999,139.4869469298243 +Peru,PER,2000,143.4020381140346 +Peru,PER,2001,141.65097627192958 +Peru,PER,2002,145.45171478070216 +Peru,PER,2003,143.59144682748476 +Peru,PER,2004,153.4863157249328 +Peru,PER,2005,160.81911336455408 +Peru,PER,2006,162.392392007789 +Peru,PER,2007,178.47878130835556 +Peru,PER,2008,192.98584073963582 +Peru,PER,2009,198.24617337987087 +Peru,PER,2010,218.14695688041422 +Peru,PER,2011,243.51379020485535 +Peru,PER,2012,248.11340920873334 +Peru,PER,2013,255.16648623712337 +Peru,PER,2014,262.5408741145902 +Peru,PER,2015,281.5746577965368 +Peru,PER,2016,296.63026889337954 +Peru,PER,2017,295.39458372350236 +Peru,PER,2018,314.0540634993502 +Philippines,PHL,1965,52.202767454444434 +Philippines,PHL,1966,56.78875327555559 +Philippines,PHL,1967,64.33969767111117 +Philippines,PHL,1968,71.83840763377775 +Philippines,PHL,1969,77.1553287693334 +Philippines,PHL,1970,89.36354876933338 +Philippines,PHL,1971,103.44811610022217 +Philippines,PHL,1972,100.88745148666663 +Philippines,PHL,1973,118.79554231999984 +Philippines,PHL,1974,112.47292641466673 +Philippines,PHL,1975,121.11309125911173 +Philippines,PHL,1976,125.45400075244456 +Philippines,PHL,1977,135.47402306139196 +Philippines,PHL,1978,141.6660809890649 +Philippines,PHL,1979,147.30162167007072 +Philippines,PHL,1980,144.50163744385966 +Philippines,PHL,1981,143.56752755766078 +Philippines,PHL,1982,139.66858574526313 +Philippines,PHL,1983,148.0339263883511 +Philippines,PHL,1984,136.47978332898262 +Philippines,PHL,1985,131.67699336709978 +Philippines,PHL,1986,133.71368769257344 +Philippines,PHL,1987,145.53066455023338 +Philippines,PHL,1988,160.38955545498274 +Philippines,PHL,1989,173.58099868962518 +Philippines,PHL,1990,180.451155687462 +Philippines,PHL,1991,174.9526822218241 +Philippines,PHL,1992,203.40394374075996 +Philippines,PHL,1993,210.3197168146663 +Philippines,PHL,1994,223.23669130673207 +Philippines,PHL,1995,248.85938418579076 +Philippines,PHL,1996,267.5454176579391 +Philippines,PHL,1997,288.16050076300695 +Philippines,PHL,1998,292.53392530026997 +Philippines,PHL,1999,297.36536976965914 +Philippines,PHL,2000,296.49226878466754 +Philippines,PHL,2001,292.6770447552891 +Philippines,PHL,2002,291.09556181854714 +Philippines,PHL,2003,301.7916291469074 +Philippines,PHL,2004,312.10520668917223 +Philippines,PHL,2005,311.1657462704264 +Philippines,PHL,2006,301.9606246421186 +Philippines,PHL,2007,314.6128348178494 +Philippines,PHL,2008,325.40431165427924 +Philippines,PHL,2009,329.70667464927476 +Philippines,PHL,2010,340.2437875873777 +Philippines,PHL,2011,347.27000800670976 +Philippines,PHL,2012,359.18271986025144 +Philippines,PHL,2013,385.51481372041206 +Philippines,PHL,2014,405.8598027285071 +Philippines,PHL,2015,445.21539173019744 +Philippines,PHL,2016,486.50578306129114 +Philippines,PHL,2017,531.574890258251 +Philippines,PHL,2018,546.9703627670884 +Poland,POL,1965,775.7649199122814 +Poland,POL,1966,790.8742598830413 +Poland,POL,1967,813.9547182456138 +Poland,POL,1968,876.0247563450295 +Poland,POL,1969,935.7557877777782 +Poland,POL,1970,987.3066814327483 +Poland,POL,1971,1018.5762063742687 +Poland,POL,1972,1074.3169619298246 +Poland,POL,1973,1094.4629182309939 +Poland,POL,1974,1130.4312702339187 +Poland,POL,1975,1219.4970078362603 +Poland,POL,1976,1284.871762441526 +Poland,POL,1977,1339.63471679824 +Poland,POL,1978,1406.5731228216428 +Poland,POL,1979,1427.521900935678 +Poland,POL,1980,1494.7284434795267 +Poland,POL,1981,1347.621556213445 +Poland,POL,1982,1372.4031160964926 +Poland,POL,1983,1378.6397531725192 +Poland,POL,1984,1433.2585368859668 +Poland,POL,1985,1465.6225046783586 +Poland,POL,1986,1507.0944150000012 +Poland,POL,1987,1555.9960274122823 +Poland,POL,1988,1526.2596941812824 +Poland,POL,1989,1468.9459230994103 +Poland,POL,1990,1209.837816988309 +Poland,POL,1991,1183.6537266637392 +Poland,POL,1992,1131.843997236842 +Poland,POL,1993,1131.3291238450288 +Poland,POL,1994,1082.587481230994 +Poland,POL,1995,1108.070615675439 +Poland,POL,1996,1163.2469668319948 +Poland,POL,1997,1151.8071260208164 +Poland,POL,1998,1103.3234384315194 +Poland,POL,1999,1081.9110303399002 +Poland,POL,2000,1016.7137011938241 +Poland,POL,2001,1009.491272205594 +Poland,POL,2002,998.6676904291696 +Poland,POL,2003,1033.688926905748 +Poland,POL,2004,1040.29042426566 +Poland,POL,2005,1063.2520857512036 +Poland,POL,2006,1115.871463446458 +Poland,POL,2007,1112.4265526771599 +Poland,POL,2008,1132.3579670048073 +Poland,POL,2009,1092.3501021891482 +Poland,POL,2010,1163.0304893675054 +Poland,POL,2011,1169.105519542944 +Poland,POL,2012,1134.15189913931 +Poland,POL,2013,1137.5935669844696 +Poland,POL,2014,1095.8020384318374 +Poland,POL,2015,1107.6892180955808 +Poland,POL,2016,1156.2003750311228 +Poland,POL,2017,1202.7127334795305 +Poland,POL,2018,1222.9049117756313 +Portugal,PRT,1965,48.419736491228036 +Portugal,PRT,1966,52.7275796491228 +Portugal,PRT,1967,56.44267931286541 +Portugal,PRT,1968,57.581289078947364 +Portugal,PRT,1969,62.14465489766073 +Portugal,PRT,1970,74.88947074529233 +Portugal,PRT,1971,82.56312567529235 +Portugal,PRT,1972,89.65790087849412 +Portugal,PRT,1973,99.2277917858917 +Portugal,PRT,1974,103.83400000997065 +Portugal,PRT,1975,103.60893457921043 +Portugal,PRT,1976,103.0435678620029 +Portugal,PRT,1977,115.34856361593559 +Portugal,PRT,1978,121.38978875690027 +Portugal,PRT,1979,128.8149829269295 +Portugal,PRT,1980,126.01749224964858 +Portugal,PRT,1981,124.65449994864088 +Portugal,PRT,1982,134.40946107454667 +Portugal,PRT,1983,138.87781998693004 +Portugal,PRT,1984,144.2408471986985 +Portugal,PRT,1985,146.84850886820155 +Portugal,PRT,1986,156.32569990361128 +Portugal,PRT,1987,159.8398091670025 +Portugal,PRT,1988,176.69478951495623 +Portugal,PRT,1989,193.20713323316954 +Portugal,PRT,1990,195.09703745278046 +Portugal,PRT,1991,202.5556766861365 +Portugal,PRT,1992,206.11341403094818 +Portugal,PRT,1993,210.8808690690359 +Portugal,PRT,1994,217.91310308412147 +Portugal,PRT,1995,239.9243258720427 +Portugal,PRT,1996,245.43158024745293 +Portugal,PRT,1997,249.53315544944076 +Portugal,PRT,1998,272.6728259069618 +Portugal,PRT,1999,280.74961658062466 +Portugal,PRT,2000,288.8393543261958 +Portugal,PRT,2001,292.5147520298675 +Portugal,PRT,2002,292.2268388289855 +Portugal,PRT,2003,298.21400557190225 +Portugal,PRT,2004,293.97316102715934 +Portugal,PRT,2005,294.5152052069608 +Portugal,PRT,2006,290.86257976531897 +Portugal,PRT,2007,293.23496538587807 +Portugal,PRT,2008,283.4491483082075 +Portugal,PRT,2009,285.46623092296903 +Portugal,PRT,2010,299.9375947248062 +Portugal,PRT,2011,286.72756370045914 +Portugal,PRT,2012,262.3290422625283 +Portugal,PRT,2013,287.62673854780945 +Portugal,PRT,2014,290.14829730531824 +Portugal,PRT,2015,288.2480972026796 +Portugal,PRT,2016,304.589599676552 +Portugal,PRT,2017,299.55875577927867 +Portugal,PRT,2018,302.03474131233224 +Qatar,QAT,1965,1.4110830555555556 +Qatar,QAT,1966,1.4206977777777807 +Qatar,QAT,1967,2.0353772222222277 +Qatar,QAT,1968,6.4395641666666705 +Qatar,QAT,1969,10.118639999999996 +Qatar,QAT,1970,11.52568722222222 +Qatar,QAT,1971,11.481247222222223 +Qatar,QAT,1972,12.70093583333339 +Qatar,QAT,1973,18.021015833333355 +Qatar,QAT,1974,15.712179444444446 +Qatar,QAT,1975,23.44534777777779 +Qatar,QAT,1976,15.060140277777759 +Qatar,QAT,1977,20.983208611111163 +Qatar,QAT,1978,20.128460555555595 +Qatar,QAT,1979,50.366066111111174 +Qatar,QAT,1980,57.59345305555562 +Qatar,QAT,1981,54.04643805555555 +Qatar,QAT,1982,65.34616944444446 +Qatar,QAT,1983,68.47765166666663 +Qatar,QAT,1984,77.44816999999996 +Qatar,QAT,1985,78.76559666666662 +Qatar,QAT,1986,86.18324833333331 +Qatar,QAT,1987,85.93523611111118 +Qatar,QAT,1988,79.16833500000001 +Qatar,QAT,1989,84.59311638888884 +Qatar,QAT,1990,86.29591250000004 +Qatar,QAT,1991,97.28904805555551 +Qatar,QAT,1992,149.68493166666707 +Qatar,QAT,1993,159.1087041666662 +Qatar,QAT,1994,160.40702777777787 +Qatar,QAT,1995,161.397269444444 +Qatar,QAT,1996,120.00891049955447 +Qatar,QAT,1997,128.0749964300569 +Qatar,QAT,1998,136.9990861156409 +Qatar,QAT,1999,153.0242333628694 +Qatar,QAT,2000,134.40784610513356 +Qatar,QAT,2001,130.99409289135008 +Qatar,QAT,2002,147.97374870333346 +Qatar,QAT,2003,166.32390047730556 +Qatar,QAT,2004,194.9699380430714 +Qatar,QAT,2005,224.38952329276776 +Qatar,QAT,2006,236.40234471971297 +Qatar,QAT,2007,258.51683059136155 +Qatar,QAT,2008,285.8869930084897 +Qatar,QAT,2009,288.84139558367457 +Qatar,QAT,2010,336.2061845909785 +Qatar,QAT,2011,388.8741522460516 +Qatar,QAT,2012,441.3505057592387 +Qatar,QAT,2013,474.94342199671075 +Qatar,QAT,2014,510.1648662815231 +Qatar,QAT,2015,560.9858985699799 +Qatar,QAT,2016,553.2538415258134 +Qatar,QAT,2017,568.2392129526874 +Qatar,QAT,2018,561.2283498485921 +Romania,ROU,1965,278.37751221973326 +Romania,ROU,1966,296.93081184458305 +Romania,ROU,1967,331.25340764004983 +Romania,ROU,1968,352.4663252044331 +Romania,ROU,1969,405.10609735853524 +Romania,ROU,1970,431.0914693800548 +Romania,ROU,1971,457.11317288888836 +Romania,ROU,1972,480.8801030277778 +Romania,ROU,1973,523.371410361111 +Romania,ROU,1974,526.7381805833338 +Romania,ROU,1975,572.7531966944447 +Romania,ROU,1976,619.6996700833337 +Romania,ROU,1977,656.8816414861117 +Romania,ROU,1978,707.3153209166671 +Romania,ROU,1979,721.1296463333339 +Romania,ROU,1980,727.752537666667 +Romania,ROU,1981,729.4416629999997 +Romania,ROU,1982,723.4132189722228 +Romania,ROU,1983,718.9331633055561 +Romania,ROU,1984,713.3153116111112 +Romania,ROU,1985,708.6197360833336 +Romania,ROU,1986,726.576386611111 +Romania,ROU,1987,753.4773968888892 +Romania,ROU,1988,763.2865441111114 +Romania,ROU,1989,765.2701127222216 +Romania,ROU,1990,731.5014722098539 +Romania,ROU,1991,619.6971213930984 +Romania,ROU,1992,546.8654389932161 +Romania,ROU,1993,531.0664623178361 +Romania,ROU,1994,500.6055538840343 +Romania,ROU,1995,549.370584360643 +Romania,ROU,1996,545.9892945446195 +Romania,ROU,1997,516.5094712270164 +Romania,ROU,1998,471.6026767850282 +Romania,ROU,1999,414.148746920233 +Romania,ROU,2000,414.3994194599407 +Romania,ROU,2001,419.51431514450263 +Romania,ROU,2002,435.76235590315787 +Romania,ROU,2003,436.93956168690033 +Romania,ROU,2004,452.45135678034984 +Romania,ROU,2005,452.96265789690045 +Romania,ROU,2006,463.13843397976535 +Romania,ROU,2007,447.49393136783596 +Romania,ROU,2008,448.84862112818666 +Romania,ROU,2009,392.5586151862246 +Romania,ROU,2010,395.623395144614 +Romania,ROU,2011,406.3637397934495 +Romania,ROU,2012,391.26095454251396 +Romania,ROU,2013,364.85278858695904 +Romania,ROU,2014,380.351285555321 +Romania,ROU,2015,381.1859331074264 +Romania,ROU,2016,381.8310966226898 +Romania,ROU,2017,387.929549543859 +Romania,ROU,2018,388.41059585273365 +Russia,RUS,1985,9482.709308825404 +Russia,RUS,1986,9649.311777403102 +Russia,RUS,1987,9964.055736769034 +Russia,RUS,1988,10137.93200181171 +Russia,RUS,1989,10175.776004228186 +Russia,RUS,1990,9997.415997277714 +Russia,RUS,1991,9859.208439820572 +Russia,RUS,1992,9485.795540232313 +Russia,RUS,1993,8837.846676048362 +Russia,RUS,1994,8061.008233551562 +Russia,RUS,1995,7624.158266414346 +Russia,RUS,1996,7340.514066576643 +Russia,RUS,1997,6937.409411566539 +Russia,RUS,1998,6924.988945725306 +Russia,RUS,1999,7009.1909052737665 +Russia,RUS,2000,7133.754796805692 +Russia,RUS,2001,7249.310533008121 +Russia,RUS,2002,7227.856592311627 +Russia,RUS,2003,7383.830940116607 +Russia,RUS,2004,7450.070540512971 +Russia,RUS,2005,7447.247301792633 +Russia,RUS,2006,7775.485210693858 +Russia,RUS,2007,7827.583853045998 +Russia,RUS,2008,7868.457846048519 +Russia,RUS,2009,7480.342188394686 +Russia,RUS,2010,7784.319848864072 +Russia,RUS,2011,8045.620475215919 +Russia,RUS,2012,8069.162721730974 +Russia,RUS,2013,7971.7897787654865 +Russia,RUS,2014,8004.99258784359 +Russia,RUS,2015,7854.540776324906 +Russia,RUS,2016,8030.935623270191 +Russia,RUS,2017,8074.469365061114 +Russia,RUS,2018,8382.311937807206 +Saudi Arabia,SAU,1965,235.13954944444387 +Saudi Arabia,SAU,1966,238.32159444444443 +Saudi Arabia,SAU,1967,241.76488944444475 +Saudi Arabia,SAU,1968,245.51804750000036 +Saudi Arabia,SAU,1969,249.66276916666695 +Saudi Arabia,SAU,1970,262.8554524751127 +Saudi Arabia,SAU,1971,263.2718984125364 +Saudi Arabia,SAU,1972,282.16906728968667 +Saudi Arabia,SAU,1973,301.0003534403013 +Saudi Arabia,SAU,1974,319.35376965550313 +Saudi Arabia,SAU,1975,253.26085302874122 +Saudi Arabia,SAU,1976,292.79430501801806 +Saudi Arabia,SAU,1977,345.76250747517855 +Saudi Arabia,SAU,1978,385.33573003284147 +Saudi Arabia,SAU,1979,466.8432867900824 +Saudi Arabia,SAU,1980,419.9413315451032 +Saudi Arabia,SAU,1981,501.26175702106616 +Saudi Arabia,SAU,1982,552.178152623506 +Saudi Arabia,SAU,1983,598.0070396200707 +Saudi Arabia,SAU,1984,715.3230597924538 +Saudi Arabia,SAU,1985,729.7463049964115 +Saudi Arabia,SAU,1986,784.6714873066925 +Saudi Arabia,SAU,1987,831.7505614461143 +Saudi Arabia,SAU,1988,870.2870766728013 +Saudi Arabia,SAU,1989,856.5577729456577 +Saudi Arabia,SAU,1990,928.3495433842471 +Saudi Arabia,SAU,1991,972.4647546311309 +Saudi Arabia,SAU,1992,981.7688147988545 +Saudi Arabia,SAU,1993,1002.8628299933246 +Saudi Arabia,SAU,1994,1159.5804396460567 +Saudi Arabia,SAU,1995,1130.0058626663663 +Saudi Arabia,SAU,1996,1168.577875412465 +Saudi Arabia,SAU,1997,1190.3003152223341 +Saudi Arabia,SAU,1998,1252.5769866521975 +Saudi Arabia,SAU,1999,1275.4559744220596 +Saudi Arabia,SAU,2000,1334.904620135673 +Saudi Arabia,SAU,2001,1422.357438791023 +Saudi Arabia,SAU,2002,1481.4077113369176 +Saudi Arabia,SAU,2003,1569.2160298677643 +Saudi Arabia,SAU,2004,1702.4726706501806 +Saudi Arabia,SAU,2005,1814.5097936615546 +Saudi Arabia,SAU,2006,1883.8568018793046 +Saudi Arabia,SAU,2007,1965.8059863005572 +Saudi Arabia,SAU,2008,2143.6693667292398 +Saudi Arabia,SAU,2009,2259.358613345962 +Saudi Arabia,SAU,2010,2476.7870285328063 +Saudi Arabia,SAU,2011,2556.738332643404 +Saudi Arabia,SAU,2012,2710.5110061882347 +Saudi Arabia,SAU,2013,2721.6951855160833 +Saudi Arabia,SAU,2014,2917.3702970364943 +Saudi Arabia,SAU,2015,3011.761565652851 +Saudi Arabia,SAU,2016,3049.0403900257143 +Saudi Arabia,SAU,2017,3056.86728194925 +Saudi Arabia,SAU,2018,3014.361651674049 +Singapore,SGP,1965,47.88800608208307 +Singapore,SGP,1966,54.74372472593634 +Singapore,SGP,1967,65.75601814345518 +Singapore,SGP,1968,81.7345380347316 +Singapore,SGP,1969,80.31851645440473 +Singapore,SGP,1970,87.20537276735871 +Singapore,SGP,1971,75.69787498888894 +Singapore,SGP,1972,94.78758629444442 +Singapore,SGP,1973,89.32662162666671 +Singapore,SGP,1974,88.05851921000001 +Singapore,SGP,1975,85.98596349111108 +Singapore,SGP,1976,101.99188484 +Singapore,SGP,1977,102.37463218222226 +Singapore,SGP,1978,105.37364183666672 +Singapore,SGP,1979,112.3333172311111 +Singapore,SGP,1980,111.57115580666672 +Singapore,SGP,1981,128.35980489222254 +Singapore,SGP,1982,124.89365019666637 +Singapore,SGP,1983,132.3115753933333 +Singapore,SGP,1984,139.1025353144444 +Singapore,SGP,1985,141.8936481833334 +Singapore,SGP,1986,164.70839629163737 +Singapore,SGP,1987,173.1890489638598 +Singapore,SGP,1988,200.3819526383041 +Singapore,SGP,1989,228.48990230608158 +Singapore,SGP,1990,273.05594639497133 +Singapore,SGP,1991,278.17759507988353 +Singapore,SGP,1992,298.45011321988267 +Singapore,SGP,1993,326.07458554210564 +Singapore,SGP,1994,372.94617344654944 +Singapore,SGP,1995,388.81507784210515 +Singapore,SGP,1996,392.36287781766106 +Singapore,SGP,1997,412.6979379532167 +Singapore,SGP,1998,418.4181154532163 +Singapore,SGP,1999,414.2465807309939 +Singapore,SGP,2000,442.9463664163383 +Singapore,SGP,2001,502.9030971812112 +Singapore,SGP,2002,494.058255517105 +Singapore,SGP,2003,466.80531672005907 +Singapore,SGP,2004,522.5090069602345 +Singapore,SGP,2005,548.9698220386481 +Singapore,SGP,2006,604.0759049013675 +Singapore,SGP,2007,648.5768508341746 +Singapore,SGP,2008,690.0319429948963 +Singapore,SGP,2009,742.1131711935765 +Singapore,SGP,2010,797.5503177816918 +Singapore,SGP,2011,829.2264222156921 +Singapore,SGP,2012,832.7355053274854 +Singapore,SGP,2013,855.9832544809799 +Singapore,SGP,2014,881.6477824965602 +Singapore,SGP,2015,937.4602697941107 +Singapore,SGP,2016,974.9751933972503 +Singapore,SGP,2017,1005.8378576206902 +Singapore,SGP,2018,1018.3978038199266 +Slovakia,SVK,1965,106.11284396353824 +Slovakia,SVK,1966,109.89042001357255 +Slovakia,SVK,1967,110.56981283386952 +Slovakia,SVK,1968,122.14001976528564 +Slovakia,SVK,1969,127.69210873049988 +Slovakia,SVK,1970,141.0935421923959 +Slovakia,SVK,1971,151.4397955263156 +Slovakia,SVK,1972,159.26610077485347 +Slovakia,SVK,1973,165.7440582017539 +Slovakia,SVK,1974,174.1265241666671 +Slovakia,SVK,1975,182.39190188596467 +Slovakia,SVK,1976,189.1896031725148 +Slovakia,SVK,1977,198.8233715497076 +Slovakia,SVK,1978,208.70799656432692 +Slovakia,SVK,1979,214.4380975146203 +Slovakia,SVK,1980,217.39169757309907 +Slovakia,SVK,1981,215.640265321637 +Slovakia,SVK,1982,213.26003748537963 +Slovakia,SVK,1983,213.78152179824545 +Slovakia,SVK,1984,230.3121438742687 +Slovakia,SVK,1985,237.05884540935637 +Slovakia,SVK,1986,234.6468477923979 +Slovakia,SVK,1987,239.9563530263162 +Slovakia,SVK,1988,241.23400299707606 +Slovakia,SVK,1989,244.54764678362534 +Slovakia,SVK,1990,245.2633335149122 +Slovakia,SVK,1991,219.3230719047949 +Slovakia,SVK,1992,210.8363483261397 +Slovakia,SVK,1993,206.48253457333263 +Slovakia,SVK,1994,202.83233573233872 +Slovakia,SVK,1995,205.80599208643238 +Slovakia,SVK,1996,207.51034088836278 +Slovakia,SVK,1997,203.71859161853754 +Slovakia,SVK,1998,205.7859553369584 +Slovakia,SVK,1999,207.13620785204643 +Slovakia,SVK,2000,213.34873628555547 +Slovakia,SVK,2001,219.81463008508794 +Slovakia,SVK,2002,221.7937961168416 +Slovakia,SVK,2003,215.69620518485374 +Slovakia,SVK,2004,210.3109949373679 +Slovakia,SVK,2005,222.07759222216353 +Slovakia,SVK,2006,214.5615002872509 +Slovakia,SVK,2007,201.73634616543782 +Slovakia,SVK,2008,209.1280457906433 +Slovakia,SVK,2009,190.83470008625727 +Slovakia,SVK,2010,203.52642987608138 +Slovakia,SVK,2011,195.69533345537963 +Slovakia,SVK,2012,188.3129936529239 +Slovakia,SVK,2013,196.32114612918124 +Slovakia,SVK,2014,180.5336911070755 +Slovakia,SVK,2015,182.49823236736847 +Slovakia,SVK,2016,183.56220191029422 +Slovakia,SVK,2017,194.34416435502902 +Slovakia,SVK,2018,189.77262077769967 +Slovenia,SVN,1990,67.37831896948532 +Slovenia,SVN,1991,67.21557120857148 +Slovenia,SVN,1992,62.94952527274258 +Slovenia,SVN,1993,64.85571848226574 +Slovenia,SVN,1994,68.8945399484989 +Slovenia,SVN,1995,72.45526663662318 +Slovenia,SVN,1996,76.02518220283181 +Slovenia,SVN,1997,77.89276950995176 +Slovenia,SVN,1998,77.99963929602514 +Slovenia,SVN,1999,77.12634948962157 +Slovenia,SVN,2000,76.35893936103223 +Slovenia,SVN,2001,80.00493825072839 +Slovenia,SVN,2002,79.83062749324043 +Slovenia,SVN,2003,78.5622754311731 +Slovenia,SVN,2004,83.35880323018228 +Slovenia,SVN,2005,83.63951630717278 +Slovenia,SVN,2006,84.58243317349836 +Slovenia,SVN,2007,84.29229414342514 +Slovenia,SVN,2008,92.34217801735721 +Slovenia,SVN,2009,85.3552331337556 +Slovenia,SVN,2010,85.70565171932716 +Slovenia,SVN,2011,83.43816412470467 +Slovenia,SVN,2012,81.16618246805251 +Slovenia,SVN,2013,80.37153765703188 +Slovenia,SVN,2014,82.54102895160895 +Slovenia,SVN,2015,74.69818676441669 +Slovenia,SVN,2016,79.96326776318249 +Slovenia,SVN,2017,80.06013886012956 +Slovenia,SVN,2018,81.71976185988274 +South & Central America,,1965,1279.7271009268313 +South & Central America,,1966,1356.6058341186042 +South & Central America,,1967,1411.6974386344446 +South & Central America,,1968,1499.929633234299 +South & Central America,,1969,1574.1134419435575 +South & Central America,,1970,1665.5268029973338 +South & Central America,,1971,1843.86526286781 +South & Central America,,1972,1984.6942085243288 +South & Central America,,1973,2181.405520002014 +South & Central America,,1974,2289.36082010341 +South & Central America,,1975,2315.2719568566326 +South & Central America,,1976,2474.81423443973 +South & Central America,,1977,2617.749352410968 +South & Central America,,1978,2764.2448197643184 +South & Central America,,1979,2943.9986759424073 +South & Central America,,1980,3073.952522806584 +South & Central America,,1981,3068.8928483982922 +South & Central America,,1982,3107.004639982422 +South & Central America,,1983,3136.1974050774397 +South & Central America,,1984,3252.103830091413 +South & Central America,,1985,3334.38406172387 +South & Central America,,1986,3554.1439826231685 +South & Central America,,1987,3683.508122575658 +South & Central America,,1988,3790.615078882327 +South & Central America,,1989,3852.5525490383798 +South & Central America,,1990,3867.1900456742783 +South & Central America,,1991,3967.629743259811 +South & Central America,,1992,4150.314644160769 +South & Central America,,1993,4307.676915373711 +South & Central America,,1994,4556.5925512720605 +South & Central America,,1995,4759.688661577169 +South & Central America,,1996,4962.58888309277 +South & Central America,,1997,5227.777552859563 +South & Central America,,1998,5424.772730212119 +South & Central America,,1999,5403.935612765469 +South & Central America,,2000,5548.407361049222 +South & Central America,,2001,5562.61624186774 +South & Central America,,2002,5628.0820478358955 +South & Central America,,2003,5688.2130767633935 +South & Central America,,2004,5994.004763458445 +South & Central America,,2005,6200.749646839556 +South & Central America,,2006,6513.504184201333 +South & Central America,,2007,6779.571489716914 +South & Central America,,2008,6987.503962545049 +South & Central America,,2009,6910.029101538498 +South & Central America,,2010,7292.796799065763 +South & Central America,,2011,7621.154225214953 +South & Central America,,2012,7802.063609242715 +South & Central America,,2013,7977.3971357195 +South & Central America,,2014,8058.338746333165 +South & Central America,,2015,8086.0951451537485 +South & Central America,,2016,8037.623259487872 +South & Central America,,2017,8138.996739731163 +South & Central America,,2018,8164.427125066203 +South Africa,ZAF,1965,354.1191002777781 +South Africa,ZAF,1966,356.3224891666663 +South Africa,ZAF,1967,371.07797055555494 +South Africa,ZAF,1968,391.63696749999934 +South Africa,ZAF,1969,403.2526730555555 +South Africa,ZAF,1970,421.40396333333274 +South Africa,ZAF,1971,453.9394615733765 +South Africa,ZAF,1972,468.73799219244603 +South Africa,ZAF,1973,502.19227180421416 +South Africa,ZAF,1974,518.7013038010691 +South Africa,ZAF,1975,553.0149645977243 +South Africa,ZAF,1976,576.9856878031536 +South Africa,ZAF,1977,591.1289190649284 +South Africa,ZAF,1978,585.3805786136517 +South Africa,ZAF,1979,604.7622409483878 +South Africa,ZAF,1980,645.570898643501 +South Africa,ZAF,1981,751.3882964429765 +South Africa,ZAF,1982,808.3848727661544 +South Africa,ZAF,1983,819.2595350887319 +South Africa,ZAF,1984,894.5310999076569 +South Africa,ZAF,1985,913.2585405418553 +South Africa,ZAF,1986,929.3601288822613 +South Africa,ZAF,1987,944.6547446694094 +South Africa,ZAF,1988,1039.109813810494 +South Africa,ZAF,1989,992.5381639092616 +South Africa,ZAF,1990,1027.6002733517591 +South Africa,ZAF,1991,1019.7207382846435 +South Africa,ZAF,1992,1024.8807478247077 +South Africa,ZAF,1993,1023.7164381500145 +South Africa,ZAF,1994,1066.9625368686227 +South Africa,ZAF,1995,1115.0169767844927 +South Africa,ZAF,1996,1136.8748782056846 +South Africa,ZAF,1997,1162.175644117263 +South Africa,ZAF,1998,1141.575945955568 +South Africa,ZAF,1999,1180.7544129427135 +South Africa,ZAF,2000,1182.0749654223932 +South Africa,ZAF,2001,1188.7589638241645 +South Africa,ZAF,2002,1157.743247554719 +South Africa,ZAF,2003,1255.0428003188144 +South Africa,ZAF,2004,1369.8906232034292 +South Africa,ZAF,2005,1298.0345228528288 +South Africa,ZAF,2006,1324.293744075201 +South Africa,ZAF,2007,1359.9630045728006 +South Africa,ZAF,2008,1458.3589577111545 +South Africa,ZAF,2009,1454.5601040016638 +South Africa,ZAF,2010,1469.3775456782482 +South Africa,ZAF,2011,1449.199406606195 +South Africa,ZAF,2012,1427.4534128781859 +South Africa,ZAF,2013,1432.8988996405174 +South Africa,ZAF,2014,1451.3316880445013 +South Africa,ZAF,2015,1417.2115870912733 +South Africa,ZAF,2016,1440.720113116093 +South Africa,ZAF,2017,1416.6440067603744 +South Africa,ZAF,2018,1413.2006437960856 +South Korea,KOR,1965,74.58588945906426 +South Korea,KOR,1966,90.44770513157893 +South Korea,KOR,1967,103.97435779239761 +South Korea,KOR,1968,119.21718678362588 +South Korea,KOR,1969,143.86669821637403 +South Korea,KOR,1970,167.06857353801132 +South Korea,KOR,1971,180.76065244152045 +South Korea,KOR,1972,187.40769611111133 +South Korea,KOR,1973,231.91933271929844 +South Korea,KOR,1974,240.94950856725163 +South Korea,KOR,1975,265.04951501461943 +South Korea,KOR,1976,296.54853207602343 +South Korea,KOR,1977,341.1812586257309 +South Korea,KOR,1978,381.63854994151995 +South Korea,KOR,1979,439.75539269005856 +South Korea,KOR,1980,452.69093646198854 +South Korea,KOR,1981,473.89479334795374 +South Korea,KOR,1982,474.20624168128666 +South Korea,KOR,1983,514.45100124269 +South Korea,KOR,1984,561.6335399853805 +South Korea,KOR,1985,619.6834888157889 +South Korea,KOR,1986,693.6392939239762 +South Korea,KOR,1987,767.1020035847948 +South Korea,KOR,1988,857.7951333830404 +South Korea,KOR,1989,931.5088478947358 +South Korea,KOR,1990,1053.6208362543857 +South Korea,KOR,1991,1192.8837871637454 +South Korea,KOR,1992,1347.0660483801116 +South Korea,KOR,1993,1477.7308705146197 +South Korea,KOR,1994,1595.1322356052628 +South Korea,KOR,1995,1742.096823307021 +South Korea,KOR,1996,1924.1948554035118 +South Korea,KOR,1997,2114.287416131576 +South Korea,KOR,1998,1948.6998621725156 +South Korea,KOR,1999,2121.7919692309947 +South Korea,KOR,2000,2250.5891694795287 +South Korea,KOR,2001,2303.974427417831 +South Korea,KOR,2002,2412.371252201751 +South Korea,KOR,2003,2491.5472859871297 +South Korea,KOR,2004,2539.6827563967972 +South Korea,KOR,2005,2622.410391496292 +South Korea,KOR,2006,2667.567088417482 +South Korea,KOR,2007,2754.386833963878 +South Korea,KOR,2008,2807.999292179777 +South Korea,KOR,2009,2821.274024512864 +South Korea,KOR,2010,3038.6196506050155 +South Korea,KOR,2011,3179.7044888530163 +South Korea,KOR,2012,3213.602521472998 +South Korea,KOR,2013,3217.7942198929973 +South Korea,KOR,2014,3250.91395551793 +South Korea,KOR,2015,3317.514921253245 +South Korea,KOR,2016,3398.790004175518 +South Korea,KOR,2017,3455.4880061924287 +South Korea,KOR,2018,3500.882556620662 +Spain,ESP,1965,331.9111558333337 +Spain,ESP,1966,374.2080717543865 +Spain,ESP,1967,405.2286703508776 +Spain,ESP,1968,426.1915873976605 +Spain,ESP,1969,481.54221133040875 +Spain,ESP,1970,520.8526739473687 +Spain,ESP,1971,572.9185021052637 +Spain,ESP,1972,615.082326403509 +Spain,ESP,1973,677.5371523830411 +Spain,ESP,1974,706.7947635818715 +Spain,ESP,1975,726.7123025730999 +Spain,ESP,1976,778.3986565643271 +Spain,ESP,1977,801.8580620029245 +Spain,ESP,1978,805.075184912281 +Spain,ESP,1979,866.5519423684206 +Spain,ESP,1980,876.1373226754388 +Spain,ESP,1981,884.8853573391814 +Spain,ESP,1982,883.1727844152044 +Spain,ESP,1983,903.6773203508768 +Spain,ESP,1984,914.3013579678365 +Spain,ESP,1985,906.0048892836259 +Spain,ESP,1986,925.0857547953219 +Spain,ESP,1987,958.6584368859658 +Spain,ESP,1988,997.5828200438601 +Spain,ESP,1989,1050.250815571504 +Spain,ESP,1990,1049.1435284447884 +Spain,ESP,1991,1086.0181039316956 +Spain,ESP,1992,1141.7617360123736 +Spain,ESP,1993,1102.5184272823624 +Spain,ESP,1994,1154.337383733031 +Spain,ESP,1995,1200.6912937487455 +Spain,ESP,1996,1243.5081663124413 +Spain,ESP,1997,1314.6392036966836 +Spain,ESP,1998,1377.3807106531397 +Spain,ESP,1999,1423.2617010123022 +Spain,ESP,2000,1503.5571002124857 +Spain,ESP,2001,1572.8057575422968 +Spain,ESP,2002,1596.1325010748774 +Spain,ESP,2003,1689.7494516841462 +Spain,ESP,2004,1760.3006912610185 +Spain,ESP,2005,1778.871256657398 +Spain,ESP,2006,1804.8998344255479 +Spain,ESP,2007,1845.0234661257261 +Spain,ESP,2008,1796.8429905706835 +Spain,ESP,2009,1667.6175933539967 +Spain,ESP,2010,1703.4489246741873 +Spain,ESP,2011,1673.4844075850076 +Spain,ESP,2012,1665.2822640259965 +Spain,ESP,2013,1580.4892319678515 +Spain,ESP,2014,1553.1131828203756 +Spain,ESP,2015,1574.7866971812025 +Spain,ESP,2016,1592.66319573843 +Spain,ESP,2017,1614.2450000259842 +Spain,ESP,2018,1643.9903646863836 +Sri Lanka,LKA,1965,6.444912959828844 +Sri Lanka,LKA,1966,6.666719102852222 +Sri Lanka,LKA,1967,6.831678476680383 +Sri Lanka,LKA,1968,7.1377182223792985 +Sri Lanka,LKA,1969,7.4715411415720006 +Sri Lanka,LKA,1970,13.999938105847923 +Sri Lanka,LKA,1971,13.147849929385941 +Sri Lanka,LKA,1972,14.21931064576023 +Sri Lanka,LKA,1973,14.324967020906383 +Sri Lanka,LKA,1974,12.522781413450256 +Sri Lanka,LKA,1975,12.410445005847908 +Sri Lanka,LKA,1976,12.428538666549656 +Sri Lanka,LKA,1977,13.308670923099452 +Sri Lanka,LKA,1978,15.357307686456108 +Sri Lanka,LKA,1979,15.93603507970764 +Sri Lanka,LKA,1980,16.08906218544449 +Sri Lanka,LKA,1981,18.513120536684216 +Sri Lanka,LKA,1982,20.535428426456182 +Sri Lanka,LKA,1983,21.024402588070128 +Sri Lanka,LKA,1984,20.748119634239792 +Sri Lanka,LKA,1985,20.1821055890935 +Sri Lanka,LKA,1986,20.718546626461965 +Sri Lanka,LKA,1987,21.38799712897659 +Sri Lanka,LKA,1988,21.999153938742687 +Sri Lanka,LKA,1989,21.78863312459067 +Sri Lanka,LKA,1990,23.671965107017485 +Sri Lanka,LKA,1991,24.465860496257292 +Sri Lanka,LKA,1992,26.764126468918118 +Sri Lanka,LKA,1993,28.586070929321544 +Sri Lanka,LKA,1994,31.359571238128638 +Sri Lanka,LKA,1995,34.19573912231574 +Sri Lanka,LKA,1996,35.787402567058436 +Sri Lanka,LKA,1997,38.59882776900577 +Sri Lanka,LKA,1998,41.83763788622215 +Sri Lanka,LKA,1999,45.414854850374255 +Sri Lanka,LKA,2000,49.204552605163684 +Sri Lanka,LKA,2001,48.278018021046705 +Sri Lanka,LKA,2002,49.45829272175438 +Sri Lanka,LKA,2003,51.39618828282457 +Sri Lanka,LKA,2004,49.749424922964856 +Sri Lanka,LKA,2005,57.192657653999916 +Sri Lanka,LKA,2006,62.19658141680404 +Sri Lanka,LKA,2007,63.43179509946482 +Sri Lanka,LKA,2008,59.310650810286496 +Sri Lanka,LKA,2009,61.27915251909064 +Sri Lanka,LKA,2010,65.75653072100138 +Sri Lanka,LKA,2011,69.11883894517045 +Sri Lanka,LKA,2012,69.65344334884576 +Sri Lanka,LKA,2013,71.12746275521577 +Sri Lanka,LKA,2014,63.99787140711844 +Sri Lanka,LKA,2015,81.46134805135017 +Sri Lanka,LKA,2016,86.64604956589253 +Sri Lanka,LKA,2017,91.27854777835996 +Sri Lanka,LKA,2018,94.26677639746917 +Sweden,SWE,1965,377.91974683041354 +Sweden,SWE,1966,404.34891266591893 +Sweden,SWE,1967,413.23263275310387 +Sweden,SWE,1968,442.60619598704216 +Sweden,SWE,1969,444.77469872820967 +Sweden,SWE,1970,473.075897847598 +Sweden,SWE,1971,478.34171961085906 +Sweden,SWE,1972,492.39446555434955 +Sweden,SWE,1973,519.790814406547 +Sweden,SWE,1974,480.39051804560125 +Sweden,SWE,1975,508.1877751323416 +Sweden,SWE,1976,541.5161350546063 +Sweden,SWE,1977,533.7704392768397 +Sweden,SWE,1978,622.0772440808533 +Sweden,SWE,1979,657.1103063629519 +Sweden,SWE,1980,617.0493973079618 +Sweden,SWE,1981,609.6061458668622 +Sweden,SWE,1982,579.8406647596735 +Sweden,SWE,1983,572.8587315537983 +Sweden,SWE,1984,604.5952002831918 +Sweden,SWE,1985,655.7647170491053 +Sweden,SWE,1986,681.9574577882508 +Sweden,SWE,1987,664.2609781030494 +Sweden,SWE,1988,649.1705971965871 +Sweden,SWE,1989,635.729418381636 +Sweden,SWE,1990,644.2835624514374 +Sweden,SWE,1991,610.4042458843104 +Sweden,SWE,1992,614.3886756664571 +Sweden,SWE,1993,607.7101260691628 +Sweden,SWE,1994,610.3836325073494 +Sweden,SWE,1995,615.4367611496201 +Sweden,SWE,1996,601.6070385549915 +Sweden,SWE,1997,618.8341020454086 +Sweden,SWE,1998,670.1602113304598 +Sweden,SWE,1999,650.6046897045998 +Sweden,SWE,2000,600.5894375812852 +Sweden,SWE,2001,646.954833767115 +Sweden,SWE,2002,609.981866941631 +Sweden,SWE,2003,588.9647270762136 +Sweden,SWE,2004,633.9334718030173 +Sweden,SWE,2005,651.8258378524001 +Sweden,SWE,2006,614.6945211641356 +Sweden,SWE,2007,626.2307478755488 +Sweden,SWE,2008,616.9333097537533 +Sweden,SWE,2009,566.0047426102143 +Sweden,SWE,2010,602.3222860700382 +Sweden,SWE,2011,597.9484593988275 +Sweden,SWE,2012,636.192095812711 +Sweden,SWE,2013,599.1411130989887 +Sweden,SWE,2014,598.8164910171449 +Sweden,SWE,2015,619.3669397328397 +Sweden,SWE,2016,611.2853737218267 +Sweden,SWE,2017,632.4463129746255 +Sweden,SWE,2018,623.4503771084262 +Switzerland,CHE,1965,174.62680250000054 +Switzerland,CHE,1966,187.14934669590653 +Switzerland,CHE,1967,199.7300963596496 +Switzerland,CHE,1968,210.38237738304107 +Switzerland,CHE,1969,218.25464815789513 +Switzerland,CHE,1970,241.1208745760238 +Switzerland,CHE,1971,248.71091511695857 +Switzerland,CHE,1972,241.72293624269025 +Switzerland,CHE,1973,267.5977064327491 +Switzerland,CHE,1974,252.52462937134504 +Switzerland,CHE,1975,262.42674887426955 +Switzerland,CHE,1976,252.98123782163745 +Switzerland,CHE,1977,279.2532520321632 +Switzerland,CHE,1978,274.89388055555514 +Switzerland,CHE,1979,268.3628291374272 +Switzerland,CHE,1980,291.4517058040938 +Switzerland,CHE,1981,289.8311546783632 +Switzerland,CHE,1982,283.45430482456106 +Switzerland,CHE,1983,295.49484178362513 +Switzerland,CHE,1984,286.5782852046784 +Switzerland,CHE,1985,308.52871181223566 +Switzerland,CHE,1986,324.28097859397246 +Switzerland,CHE,1987,321.5869266900292 +Switzerland,CHE,1988,323.84084830654115 +Switzerland,CHE,1989,303.50727818237766 +Switzerland,CHE,1990,316.849335260219 +Switzerland,CHE,1991,325.1938584620442 +Switzerland,CHE,1992,330.34487240115783 +Switzerland,CHE,1993,328.77850666561653 +Switzerland,CHE,1994,344.9686395744836 +Switzerland,CHE,1995,327.1352231513191 +Switzerland,CHE,1996,317.44759412903176 +Switzerland,CHE,1997,338.6690471109986 +Switzerland,CHE,1998,340.7601506914709 +Switzerland,CHE,1999,352.0376471258982 +Switzerland,CHE,2000,343.6391540697126 +Switzerland,CHE,2001,368.0389306075289 +Switzerland,CHE,2002,344.1554070681881 +Switzerland,CHE,2003,341.3076010471752 +Switzerland,CHE,2004,337.439417671801 +Switzerland,CHE,2005,325.03893182455073 +Switzerland,CHE,2006,339.39438637002075 +Switzerland,CHE,2007,335.68050203988327 +Switzerland,CHE,2008,348.01569974031923 +Switzerland,CHE,2009,348.25093864734976 +Switzerland,CHE,2010,339.5255802576776 +Switzerland,CHE,2011,323.6070739775186 +Switzerland,CHE,2012,342.39821871383947 +Switzerland,CHE,2013,352.3434575144884 +Switzerland,CHE,2014,337.5544083862522 +Switzerland,CHE,2015,330.57025933381965 +Switzerland,CHE,2016,311.3757138318392 +Switzerland,CHE,2017,312.6848992229194 +Switzerland,CHE,2018,323.4946040971533 +Taiwan,TWN,1965,72.37542833333337 +Taiwan,TWN,1966,77.54421194444446 +Taiwan,TWN,1967,83.93414527777777 +Taiwan,TWN,1968,96.85181416666666 +Taiwan,TWN,1969,100.38811722222222 +Taiwan,TWN,1970,108.56853120698608 +Taiwan,TWN,1971,134.22208253338854 +Taiwan,TWN,1972,143.30193835887482 +Taiwan,TWN,1973,167.7154378759445 +Taiwan,TWN,1974,160.1684053811113 +Taiwan,TWN,1975,176.39175958672277 +Taiwan,TWN,1976,215.4805213666673 +Taiwan,TWN,1977,236.68954425555606 +Taiwan,TWN,1978,279.00232293333306 +Taiwan,TWN,1979,295.68643971111175 +Taiwan,TWN,1980,312.0369475555556 +Taiwan,TWN,1981,290.9143051888894 +Taiwan,TWN,1982,293.84095353567267 +Taiwan,TWN,1983,329.065829255731 +Taiwan,TWN,1984,348.0357670001748 +Taiwan,TWN,1985,406.37230749220424 +Taiwan,TWN,1986,441.62634490030194 +Taiwan,TWN,1987,474.0482626334722 +Taiwan,TWN,1988,521.0454487128143 +Taiwan,TWN,1989,553.3325035686493 +Taiwan,TWN,1990,587.0940534130566 +Taiwan,TWN,1991,620.3058045376746 +Taiwan,TWN,1992,654.1256405686923 +Taiwan,TWN,1993,694.042176089886 +Taiwan,TWN,1994,734.5329251221256 +Taiwan,TWN,1995,777.9564493611532 +Taiwan,TWN,1996,811.3795232246058 +Taiwan,TWN,1997,865.5435186578187 +Taiwan,TWN,1998,914.9529650721591 +Taiwan,TWN,1999,1011.0289157729976 +Taiwan,TWN,2000,1031.63097009665 +Taiwan,TWN,2001,1065.2037043045348 +Taiwan,TWN,2002,1109.9839399989494 +Taiwan,TWN,2003,1157.7316362664574 +Taiwan,TWN,2004,1219.1193665116366 +Taiwan,TWN,2005,1225.8938999940685 +Taiwan,TWN,2006,1252.8494235628532 +Taiwan,TWN,2007,1309.082067942732 +Taiwan,TWN,2008,1239.3516457518292 +Taiwan,TWN,2009,1217.8812387211378 +Taiwan,TWN,2010,1290.3289848507425 +Taiwan,TWN,2011,1271.3528903297577 +Taiwan,TWN,2012,1268.3423897146579 +Taiwan,TWN,2013,1291.6366583143842 +Taiwan,TWN,2014,1323.0408060031916 +Taiwan,TWN,2015,1313.110270218907 +Taiwan,TWN,2016,1337.3265182863615 +Taiwan,TWN,2017,1361.1787852404482 +Taiwan,TWN,2018,1377.2109363312381 +Thailand,THA,1965,31.10393972222221 +Thailand,THA,1966,36.796854999999944 +Thailand,THA,1967,42.21545194444447 +Thailand,THA,1968,53.469035833333386 +Thailand,THA,1969,56.486598055555575 +Thailand,THA,1970,67.25780000000005 +Thailand,THA,1971,74.49707166666671 +Thailand,THA,1972,90.9693080933333 +Thailand,THA,1973,96.45767683222225 +Thailand,THA,1974,100.3353860833333 +Thailand,THA,1975,107.8818439477778 +Thailand,THA,1976,113.88008929444447 +Thailand,THA,1977,125.79274529333274 +Thailand,THA,1978,137.8032276833329 +Thailand,THA,1979,145.17106713999956 +Thailand,THA,1980,146.45013967333387 +Thailand,THA,1981,147.33300462777834 +Thailand,THA,1982,150.41879322333375 +Thailand,THA,1983,166.48583410888912 +Thailand,THA,1984,184.06604817999994 +Thailand,THA,1985,192.9748406577774 +Thailand,THA,1986,205.49161370210376 +Thailand,THA,1987,236.11232134900013 +Thailand,THA,1988,264.6552951319808 +Thailand,THA,1989,304.03447146521853 +Thailand,THA,1990,359.9651555960608 +Thailand,THA,1991,397.6519872818865 +Thailand,THA,1992,439.0356419016045 +Thailand,THA,1993,500.10805882830414 +Thailand,THA,1994,560.6388285503566 +Thailand,THA,1995,614.3886110627328 +Thailand,THA,1996,694.674562101187 +Thailand,THA,1997,732.2589330734825 +Thailand,THA,1998,678.519878937449 +Thailand,THA,1999,725.5313333101228 +Thailand,THA,2000,741.9738468022564 +Thailand,THA,2001,781.9540745029093 +Thailand,THA,2002,859.7331476510608 +Thailand,THA,2003,931.2313554627605 +Thailand,THA,2004,997.598418634358 +Thailand,THA,2005,1031.035510287184 +Thailand,THA,2006,1033.2407020584792 +Thailand,THA,2007,1094.454311679204 +Thailand,THA,2008,1107.7215776150508 +Thailand,THA,2009,1146.021930027329 +Thailand,THA,2010,1218.6103024712513 +Thailand,THA,2011,1266.467837238018 +Thailand,THA,2012,1354.967457618664 +Thailand,THA,2013,1376.2144435712057 +Thailand,THA,2014,1414.3377210263734 +Thailand,THA,2015,1450.6447927181287 +Thailand,THA,2016,1480.8888108781794 +Thailand,THA,2017,1514.1208435017254 +Thailand,THA,2018,1546.4419471160816 +Trinidad and Tobago,TTO,1965,34.432663786830844 +Trinidad and Tobago,TTO,1966,36.70505356495641 +Trinidad and Tobago,TTO,1967,39.161894375111196 +Trinidad and Tobago,TTO,1968,40.38805762636588 +Trinidad and Tobago,TTO,1969,41.63059653202265 +Trinidad and Tobago,TTO,1970,44.680581821396714 +Trinidad and Tobago,TTO,1971,45.14053665204673 +Trinidad and Tobago,TTO,1972,62.22451387426898 +Trinidad and Tobago,TTO,1973,61.72050884502926 +Trinidad and Tobago,TTO,1974,59.45070225146196 +Trinidad and Tobago,TTO,1975,47.90182964912281 +Trinidad and Tobago,TTO,1976,53.862846666666684 +Trinidad and Tobago,TTO,1977,56.037333538011666 +Trinidad and Tobago,TTO,1978,56.41931801169588 +Trinidad and Tobago,TTO,1979,49.847361067251406 +Trinidad and Tobago,TTO,1980,47.935675774853785 +Trinidad and Tobago,TTO,1981,50.620115555555515 +Trinidad and Tobago,TTO,1982,59.45352369883039 +Trinidad and Tobago,TTO,1983,58.00834248538009 +Trinidad and Tobago,TTO,1984,57.179501081871265 +Trinidad and Tobago,TTO,1985,59.09269184210525 +Trinidad and Tobago,TTO,1986,61.43678077485381 +Trinidad and Tobago,TTO,1987,57.99638839181282 +Trinidad and Tobago,TTO,1988,63.73887790935663 +Trinidad and Tobago,TTO,1989,62.706841052631496 +Trinidad and Tobago,TTO,1990,69.5825728362573 +Trinidad and Tobago,TTO,1991,69.37485020104533 +Trinidad and Tobago,TTO,1992,73.42962831079637 +Trinidad and Tobago,TTO,1993,77.40183427524853 +Trinidad and Tobago,TTO,1994,82.02533671828249 +Trinidad and Tobago,TTO,1995,88.95346379269101 +Trinidad and Tobago,TTO,1996,100.79172063827515 +Trinidad and Tobago,TTO,1997,100.76508895896815 +Trinidad and Tobago,TTO,1998,102.28092979230155 +Trinidad and Tobago,TTO,1999,113.6789657112011 +Trinidad and Tobago,TTO,2000,112.1454045287837 +Trinidad and Tobago,TTO,2001,124.87479187699716 +Trinidad and Tobago,TTO,2002,134.44520385040707 +Trinidad and Tobago,TTO,2003,141.61772213924084 +Trinidad and Tobago,TTO,2004,155.7403892608923 +Trinidad and Tobago,TTO,2005,167.84876787553344 +Trinidad and Tobago,TTO,2006,179.53401356191037 +Trinidad and Tobago,TTO,2007,189.9588344047587 +Trinidad and Tobago,TTO,2008,184.52342709455442 +Trinidad and Tobago,TTO,2009,186.57911888055207 +Trinidad and Tobago,TTO,2010,203.54977423739277 +Trinidad and Tobago,TTO,2011,204.53121808974197 +Trinidad and Tobago,TTO,2012,194.4609676031927 +Trinidad and Tobago,TTO,2013,200.1966251513879 +Trinidad and Tobago,TTO,2014,194.83427124084184 +Trinidad and Tobago,TTO,2015,196.88343797245503 +Trinidad and Tobago,TTO,2016,179.33154243440353 +Trinidad and Tobago,TTO,2017,177.29634671489669 +Trinidad and Tobago,TTO,2018,177.48809398554621 +Turkey,TUR,1965,90.66821286549705 +Turkey,TUR,1966,104.08697875730991 +Turkey,TUR,1967,107.67156178362563 +Turkey,TUR,1968,125.29316169590601 +Turkey,TUR,1969,136.8060665350877 +Turkey,TUR,1970,145.60287890350907 +Turkey,TUR,1971,161.44336649122846 +Turkey,TUR,1972,180.28510769005842 +Turkey,TUR,1973,204.64516451754383 +Turkey,TUR,1974,208.4683611403506 +Turkey,TUR,1975,231.6415793421056 +Turkey,TUR,1976,260.3794051900586 +Turkey,TUR,1977,285.1719439766077 +Turkey,TUR,1978,301.40925225146117 +Turkey,TUR,1979,283.8324946345025 +Turkey,TUR,1980,294.728678114035 +Turkey,TUR,1981,297.02235684210547 +Turkey,TUR,1982,324.0712611403512 +Turkey,TUR,1983,336.0213869152042 +Turkey,TUR,1984,353.33030020467794 +Turkey,TUR,1985,382.1717922368417 +Turkey,TUR,1986,416.83041494152036 +Turkey,TUR,1987,473.52319755847935 +Turkey,TUR,1988,517.9500598391814 +Turkey,TUR,1989,511.7619819152046 +Turkey,TUR,1990,554.4491449269001 +Turkey,TUR,1991,566.3009075146193 +Turkey,TUR,1992,594.6136475146202 +Turkey,TUR,1993,644.5794405409356 +Turkey,TUR,1994,624.9498124561402 +Turkey,TUR,1995,698.8679116666664 +Turkey,TUR,1996,761.820003260233 +Turkey,TUR,1997,797.6455047514617 +Turkey,TUR,1998,817.570797178362 +Turkey,TUR,1999,798.2283096637422 +Turkey,TUR,2000,854.511031023391 +Turkey,TUR,2001,778.1394040058476 +Turkey,TUR,2002,849.8527403801173 +Turkey,TUR,2003,900.7267305555549 +Turkey,TUR,2004,963.1854627777772 +Turkey,TUR,2005,987.5364868421053 +Turkey,TUR,2006,1096.342191929824 +Turkey,TUR,2007,1167.217492616956 +Turkey,TUR,2008,1172.2326980116961 +Turkey,TUR,2009,1188.1175374415197 +Turkey,TUR,2010,1251.7463901023414 +Turkey,TUR,2011,1338.5759503731394 +Turkey,TUR,2012,1422.2023625685126 +Turkey,TUR,2013,1413.2590151618429 +Turkey,TUR,2014,1458.2839030116934 +Turkey,TUR,2015,1595.5374228740898 +Turkey,TUR,2016,1681.5051976927841 +Turkey,TUR,2017,1776.0132139016812 +Turkey,TUR,2018,1785.673547929368 +Turkmenistan,TKM,1985,144.68851076071007 +Turkmenistan,TKM,1986,178.37765740865387 +Turkmenistan,TKM,1987,179.29100880982347 +Turkmenistan,TKM,1988,181.00252738878143 +Turkmenistan,TKM,1989,183.56072227329355 +Turkmenistan,TKM,1990,153.72036641917356 +Turkmenistan,TKM,1991,157.81951905769589 +Turkmenistan,TKM,1992,60.67867631578946 +Turkmenistan,TKM,1993,122.29147933278975 +Turkmenistan,TKM,1994,130.45238865108954 +Turkmenistan,TKM,1995,107.37873970566162 +Turkmenistan,TKM,1996,156.40808039473683 +Turkmenistan,TKM,1997,119.76777178362617 +Turkmenistan,TKM,1998,149.1335350292402 +Turkmenistan,TKM,1999,142.35531706140398 +Turkmenistan,TKM,2000,119.82421428362568 +Turkmenistan,TKM,2001,151.23569223684225 +Turkmenistan,TKM,2002,127.5640214035082 +Turkmenistan,TKM,2003,176.11756890350873 +Turkmenistan,TKM,2004,174.40547334795318 +Turkmenistan,TKM,2005,176.5994800146197 +Turkmenistan,TKM,2006,178.46175001461975 +Turkmenistan,TKM,2007,173.17142862573135 +Turkmenistan,TKM,2008,142.05468751461953 +Turkmenistan,TKM,2009,231.60031918128647 +Turkmenistan,TKM,2010,249.56539828190847 +Turkmenistan,TKM,2011,276.9895773290709 +Turkmenistan,TKM,2012,301.9568132657501 +Turkmenistan,TKM,2013,268.2365938198523 +Turkmenistan,TKM,2014,278.0297032652082 +Turkmenistan,TKM,2015,332.8145965641595 +Turkmenistan,TKM,2016,319.4448284695503 +Turkmenistan,TKM,2017,333.64617909222613 +Turkmenistan,TKM,2018,366.3974046494184 +USSR,OWID_USS,1965,6900.2211236797875 +USSR,OWID_USS,1966,7337.457098910874 +USSR,OWID_USS,1967,7712.827002860533 +USSR,OWID_USS,1968,7998.801732830085 +USSR,OWID_USS,1969,8361.934967824714 +USSR,OWID_USS,1970,8778.396558836379 +USSR,OWID_USS,1971,9209.745801496534 +USSR,OWID_USS,1972,9680.010832686523 +USSR,OWID_USS,1973,10177.22135540317 +USSR,OWID_USS,1974,10737.970806439833 +USSR,OWID_USS,1975,11269.304362428395 +USSR,OWID_USS,1976,11705.678169876024 +USSR,OWID_USS,1977,12227.220069669815 +USSR,OWID_USS,1978,12724.987091396535 +USSR,OWID_USS,1979,13108.235679323503 +USSR,OWID_USS,1980,13375.669192556437 +USSR,OWID_USS,1981,13659.171705131965 +USSR,OWID_USS,1982,14002.626645411206 +USSR,OWID_USS,1983,14293.511008493257 +USSR,OWID_USS,1984,14823.698121847994 +Ukraine,UKR,1985,2673.6673415578534 +Ukraine,UKR,1986,2689.349751282574 +Ukraine,UKR,1987,2748.406640684055 +Ukraine,UKR,1988,2751.3983550221637 +Ukraine,UKR,1989,2637.6187119425904 +Ukraine,UKR,1990,3066.205070347672 +Ukraine,UKR,1991,2792.562158527828 +Ukraine,UKR,1992,2450.443339400482 +Ukraine,UKR,1993,2058.7987139686734 +Ukraine,UKR,1994,1761.473194795905 +Ukraine,UKR,1995,1653.400477292913 +Ukraine,UKR,1996,1628.822844158086 +Ukraine,UKR,1997,1599.502323450533 +Ukraine,UKR,1998,1540.1271722265237 +Ukraine,UKR,1999,1571.7015983066 +Ukraine,UKR,2000,1575.8267658729912 +Ukraine,UKR,2001,1575.9959817903748 +Ukraine,UKR,2002,1552.7775449606781 +Ukraine,UKR,2003,1595.29792285952 +Ukraine,UKR,2004,1606.544749177449 +Ukraine,UKR,2005,1589.5801951229575 +Ukraine,UKR,2006,1607.0661111205584 +Ukraine,UKR,2007,1568.7704602919068 +Ukraine,UKR,2008,1552.6225760056236 +Ukraine,UKR,2009,1319.352538140513 +Ukraine,UKR,2010,1413.0171636791663 +Ukraine,UKR,2011,1469.2054287433452 +Ukraine,UKR,2012,1432.002677393057 +Ukraine,UKR,2013,1364.4749981032994 +Ukraine,UKR,2014,1200.1818741549534 +Ukraine,UKR,2015,996.1977018758467 +Ukraine,UKR,2016,1044.665111126826 +Ukraine,UKR,2017,969.441886505495 +Ukraine,UKR,2018,976.9823728796677 +United Arab Emirates,ARE,1965,0.8656089502471281 +United Arab Emirates,ARE,1966,0.9275648483811441 +United Arab Emirates,ARE,1967,5.4282123613432995 +United Arab Emirates,ARE,1968,6.970712540986252 +United Arab Emirates,ARE,1969,6.994359584019796 +United Arab Emirates,ARE,1970,9.6229608333939 +United Arab Emirates,ARE,1971,14.638030555555606 +United Arab Emirates,ARE,1972,15.65015 +United Arab Emirates,ARE,1973,20.293111111111063 +United Arab Emirates,ARE,1974,22.295511111111143 +United Arab Emirates,ARE,1975,23.859208333333328 +United Arab Emirates,ARE,1976,30.19023611111111 +United Arab Emirates,ARE,1977,49.63149999999997 +United Arab Emirates,ARE,1978,57.31101111111114 +United Arab Emirates,ARE,1979,67.37058333333337 +United Arab Emirates,ARE,1980,108.27922805555555 +United Arab Emirates,ARE,1981,126.54242944444455 +United Arab Emirates,ARE,1982,136.87032861111106 +United Arab Emirates,ARE,1983,131.687569722222 +United Arab Emirates,ARE,1984,164.09868166666655 +United Arab Emirates,ARE,1985,203.43105277777826 +United Arab Emirates,ARE,1986,246.40804333333367 +United Arab Emirates,ARE,1987,275.05324472222173 +United Arab Emirates,ARE,1988,303.81401083333367 +United Arab Emirates,ARE,1989,342.11877416666636 +United Arab Emirates,ARE,1990,347.0181716666661 +United Arab Emirates,ARE,1991,422.98106499999966 +United Arab Emirates,ARE,1992,408.8616330555555 +United Arab Emirates,ARE,1993,425.59165194444466 +United Arab Emirates,ARE,1994,466.97406750000033 +United Arab Emirates,ARE,1995,487.2825838888891 +United Arab Emirates,ARE,1996,502.25580888888925 +United Arab Emirates,ARE,1997,524.3592305555557 +United Arab Emirates,ARE,1998,536.7142563888889 +United Arab Emirates,ARE,1999,541.0691822222216 +United Arab Emirates,ARE,2000,538.8712133333335 +United Arab Emirates,ARE,2001,544.8211554766665 +United Arab Emirates,ARE,2002,595.3836977155555 +United Arab Emirates,ARE,2003,634.8553651555555 +United Arab Emirates,ARE,2004,678.8626384477773 +United Arab Emirates,ARE,2005,708.2373523622217 +United Arab Emirates,ARE,2006,745.0997097088883 +United Arab Emirates,ARE,2007,821.842406914444 +United Arab Emirates,ARE,2008,941.8338930133336 +United Arab Emirates,ARE,2009,929.9252100286542 +United Arab Emirates,ARE,2010,974.4190554211698 +United Arab Emirates,ARE,2011,1027.714905806525 +United Arab Emirates,ARE,2012,1079.2568541220758 +United Arab Emirates,ARE,2013,1137.4465507210427 +United Arab Emirates,ARE,2014,1132.3739142043414 +United Arab Emirates,ARE,2015,1245.8317870517747 +United Arab Emirates,ARE,2016,1291.7367770869387 +United Arab Emirates,ARE,2017,1267.1477579405912 +United Arab Emirates,ARE,2018,1304.9274569485126 +United Kingdom,GBR,1965,2311.6108198830416 +United Kingdom,GBR,1966,2321.8650584941515 +United Kingdom,GBR,1967,2321.8309292690083 +United Kingdom,GBR,1968,2404.829681564327 +United Kingdom,GBR,1969,2491.6815621637475 +United Kingdom,GBR,1970,2544.223331549702 +United Kingdom,GBR,1971,2497.0855466228113 +United Kingdom,GBR,1972,2533.5682391228092 +United Kingdom,GBR,1973,2660.0799886111135 +United Kingdom,GBR,1974,2524.94671067251 +United Kingdom,GBR,1975,2380.767318888886 +United Kingdom,GBR,1976,2428.4486823830425 +United Kingdom,GBR,1977,2473.4346459356757 +United Kingdom,GBR,1978,2488.215578728065 +United Kingdom,GBR,1979,2604.7595503216417 +United Kingdom,GBR,1980,2372.2333553801145 +United Kingdom,GBR,1981,2305.9527779239747 +United Kingdom,GBR,1982,2274.663585994154 +United Kingdom,GBR,1983,2282.6688709941527 +United Kingdom,GBR,1984,2280.857469988034 +United Kingdom,GBR,1985,2376.8894434675703 +United Kingdom,GBR,1986,2443.3591635552925 +United Kingdom,GBR,1987,2440.2214475146184 +United Kingdom,GBR,1988,2471.0585450757603 +United Kingdom,GBR,1989,2472.3929634941505 +United Kingdom,GBR,1990,2492.8820622368366 +United Kingdom,GBR,1991,2544.8583674999963 +United Kingdom,GBR,1992,2527.263744488306 +United Kingdom,GBR,1993,2554.223921578946 +United Kingdom,GBR,1994,2523.0604654678373 +United Kingdom,GBR,1995,2531.705329766077 +United Kingdom,GBR,1996,2654.5616189035036 +United Kingdom,GBR,1997,2607.0031792836276 +United Kingdom,GBR,1998,2634.2342646690317 +United Kingdom,GBR,1999,2621.3164534454845 +United Kingdom,GBR,2000,2645.2770398922453 +United Kingdom,GBR,2001,2675.7832509275895 +United Kingdom,GBR,2002,2617.247250960158 +United Kingdom,GBR,2003,2656.407312745803 +United Kingdom,GBR,2004,2672.6886681798833 +United Kingdom,GBR,2005,2701.794414061309 +United Kingdom,GBR,2006,2673.5811051593396 +United Kingdom,GBR,2007,2597.982905697296 +United Kingdom,GBR,2008,2558.189843653028 +United Kingdom,GBR,2009,2435.01978170145 +United Kingdom,GBR,2010,2496.2193712596536 +United Kingdom,GBR,2011,2351.375192354488 +United Kingdom,GBR,2012,2382.2347688050436 +United Kingdom,GBR,2013,2373.273699223224 +United Kingdom,GBR,2014,2239.032080191118 +United Kingdom,GBR,2015,2268.5054197759328 +United Kingdom,GBR,2016,2250.283722208775 +United Kingdom,GBR,2017,2246.913573338768 +United Kingdom,GBR,2018,2236.2720248148394 +United States,USA,1965,14533.341396740547 +United States,USA,1966,15352.041353080305 +United States,USA,1967,15883.482656651207 +United States,USA,1968,16851.080486445928 +United States,USA,1969,17749.612122044196 +United States,USA,1970,18350.407052222166 +United States,USA,1971,18727.44801636027 +United States,USA,1972,19688.28953509298 +United States,USA,1973,20494.91048831323 +United States,USA,1974,19968.148356625992 +United States,USA,1975,19470.686840551673 +United States,USA,1976,20534.29166745813 +United States,USA,1977,21076.077761219647 +United States,USA,1978,21158.958355000283 +United States,USA,1979,21412.708468309258 +United States,USA,1980,20633.70669690122 +United States,USA,1981,20024.885075525828 +United States,USA,1982,19178.055392757367 +United States,USA,1983,19087.204884583807 +United States,USA,1984,20103.318528844895 +United States,USA,1985,20050.341957950823 +United States,USA,1986,20166.26876098397 +United States,USA,1987,20851.650868654688 +United States,USA,1988,21804.33845459887 +United States,USA,1989,22318.15170343457 +United States,USA,1990,22357.76730657761 +United States,USA,1991,22321.024338032137 +United States,USA,1992,22661.41374853195 +United States,USA,1993,23134.333752672617 +United States,USA,1994,23565.97810318155 +United States,USA,1995,24063.35209431817 +United States,USA,1996,24870.731828030614 +United States,USA,1997,25066.6464081611 +United States,USA,1998,25230.437100871208 +United States,USA,1999,25671.9659852008 +United States,USA,2000,26260.90947481745 +United States,USA,2001,25663.85941908371 +United States,USA,2002,26049.255515995872 +United States,USA,2003,26152.37165467175 +United States,USA,2004,26687.89730411865 +United States,USA,2005,26719.30228656245 +United States,USA,2006,26521.49587872798 +United States,USA,2007,26913.813829472976 +United States,USA,2008,26267.916622151053 +United States,USA,2009,24989.146481681742 +United States,USA,2010,25856.726498033408 +United States,USA,2011,25634.24823870198 +United States,USA,2012,24986.51517390914 +United States,USA,2013,25679.335313090396 +United States,USA,2014,25968.99251261927 +United States,USA,2015,25739.631612420795 +United States,USA,2016,25733.26024155892 +United States,USA,2017,25847.450466029997 +United States,USA,2018,26756.44663941945 +Uzbekistan,UZB,1985,495.5500384231508 +Uzbekistan,UZB,1986,493.8586017730418 +Uzbekistan,UZB,1987,509.82842287921176 +Uzbekistan,UZB,1988,524.6185673645524 +Uzbekistan,UZB,1989,538.0687016996663 +Uzbekistan,UZB,1990,523.5454149569306 +Uzbekistan,UZB,1991,530.1302541261952 +Uzbekistan,UZB,1992,496.3415794380875 +Uzbekistan,UZB,1993,528.9400287063897 +Uzbekistan,UZB,1994,519.852111450777 +Uzbekistan,UZB,1995,505.91507229278756 +Uzbekistan,UZB,1996,521.8476046313071 +Uzbekistan,UZB,1997,517.041685363168 +Uzbekistan,UZB,1998,517.5205067945902 +Uzbekistan,UZB,1999,584.825760161152 +Uzbekistan,UZB,2000,594.3307822209875 +Uzbekistan,UZB,2001,595.6977342710182 +Uzbekistan,UZB,2002,609.5965373252628 +Uzbekistan,UZB,2003,566.2995978251408 +Uzbekistan,UZB,2004,573.7084232471443 +Uzbekistan,UZB,2005,558.8232585384951 +Uzbekistan,UZB,2006,518.6619160900453 +Uzbekistan,UZB,2007,551.9721418999876 +Uzbekistan,UZB,2008,518.3723134369284 +Uzbekistan,UZB,2009,520.7702045281087 +Uzbekistan,UZB,2010,516.4145443338089 +Uzbekistan,UZB,2011,542.1605177345563 +Uzbekistan,UZB,2012,529.0420632157252 +Uzbekistan,UZB,2013,525.3720292057959 +Uzbekistan,UZB,2014,548.3412012210763 +Uzbekistan,UZB,2015,522.3636586944202 +Uzbekistan,UZB,2016,507.1032260782332 +Uzbekistan,UZB,2017,523.5038783489343 +Uzbekistan,UZB,2018,510.6782778500925 +Venezuela,VEN,1965,191.11174294006616 +Venezuela,VEN,1966,192.94984803931803 +Venezuela,VEN,1967,203.35109430628543 +Venezuela,VEN,1968,219.15726072641343 +Venezuela,VEN,1969,221.56988625340094 +Venezuela,VEN,1970,223.1441732315186 +Venezuela,VEN,1971,226.47394217324205 +Venezuela,VEN,1972,239.29238220987574 +Venezuela,VEN,1973,273.9849072998971 +Venezuela,VEN,1974,283.02864668531157 +Venezuela,VEN,1975,294.04427385988765 +Venezuela,VEN,1976,321.26565084261676 +Venezuela,VEN,1977,357.91223072099655 +Venezuela,VEN,1978,365.77037683591124 +Venezuela,VEN,1979,403.04139451064185 +Venezuela,VEN,1980,451.4692915077326 +Venezuela,VEN,1981,468.3951211373887 +Venezuela,VEN,1982,477.5363479840916 +Venezuela,VEN,1983,475.0860490244136 +Venezuela,VEN,1984,483.84423876236036 +Venezuela,VEN,1985,496.4030127668071 +Venezuela,VEN,1986,533.0593008115982 +Venezuela,VEN,1987,530.7803734750736 +Venezuela,VEN,1988,552.1941665202374 +Venezuela,VEN,1989,556.7806715427607 +Venezuela,VEN,1990,591.5201335957534 +Venezuela,VEN,1991,593.1468786422984 +Venezuela,VEN,1992,642.2321588604166 +Venezuela,VEN,1993,635.2074572111082 +Venezuela,VEN,1994,689.6400227032269 +Venezuela,VEN,1995,710.6548104300589 +Venezuela,VEN,1996,691.3402700529973 +Venezuela,VEN,1997,730.7199752573334 +Venezuela,VEN,1998,775.881434915975 +Venezuela,VEN,1999,747.6391918163405 +Venezuela,VEN,2000,762.3184640421242 +Venezuela,VEN,2001,810.0284227153284 +Venezuela,VEN,2002,809.4198197534012 +Venezuela,VEN,2003,727.0861843563185 +Venezuela,VEN,2004,811.2803302857435 +Venezuela,VEN,2005,847.5616449352901 +Venezuela,VEN,2006,943.8543493951231 +Venezuela,VEN,2007,950.8927890562007 +Venezuela,VEN,2008,984.1911814762742 +Venezuela,VEN,2009,981.345350333536 +Venezuela,VEN,2010,926.4978232186407 +Venezuela,VEN,2011,970.1452932276954 +Venezuela,VEN,2012,1011.0120604091549 +Venezuela,VEN,2013,987.4676447279828 +Venezuela,VEN,2014,955.3690534017142 +Venezuela,VEN,2015,922.6339597028164 +Venezuela,VEN,2016,840.4194774998862 +Venezuela,VEN,2017,856.0659148393399 +Venezuela,VEN,2018,751.768822937406 +Vietnam,VNM,1965,29.34432467521292 +Vietnam,VNM,1966,51.354939271379436 +Vietnam,VNM,1967,70.80091423983988 +Vietnam,VNM,1968,73.40988623327776 +Vietnam,VNM,1969,86.71445994649577 +Vietnam,VNM,1970,90.44822575473796 +Vietnam,VNM,1971,80.62496412226284 +Vietnam,VNM,1972,78.19712814814754 +Vietnam,VNM,1973,82.54034989996653 +Vietnam,VNM,1974,61.35350084265996 +Vietnam,VNM,1975,68.18796601609215 +Vietnam,VNM,1976,39.38533910243671 +Vietnam,VNM,1977,42.12982137795981 +Vietnam,VNM,1978,43.64484060799377 +Vietnam,VNM,1979,46.991489267021656 +Vietnam,VNM,1980,53.66561435121792 +Vietnam,VNM,1981,53.78404264109172 +Vietnam,VNM,1982,57.46368862792808 +Vietnam,VNM,1983,60.20393833940605 +Vietnam,VNM,1984,60.61738308733248 +Vietnam,VNM,1985,60.27666197553543 +Vietnam,VNM,1986,66.06425273503888 +Vietnam,VNM,1987,74.48805008736282 +Vietnam,VNM,1988,74.34637474413725 +Vietnam,VNM,1989,70.03269044040022 +Vietnam,VNM,1990,75.05897197597254 +Vietnam,VNM,1991,76.08894899988624 +Vietnam,VNM,1992,83.02228152046773 +Vietnam,VNM,1993,94.83203520467826 +Vietnam,VNM,1994,105.84140865497064 +Vietnam,VNM,1995,122.86987073216328 +Vietnam,VNM,1996,141.0110472444439 +Vietnam,VNM,1997,163.33128348947366 +Vietnam,VNM,1998,176.91047697660767 +Vietnam,VNM,1999,182.13964469882987 +Vietnam,VNM,2000,207.51762641188728 +Vietnam,VNM,2001,234.41929421513467 +Vietnam,VNM,2002,257.2863949894552 +Vietnam,VNM,2003,278.12588765174473 +Vietnam,VNM,2004,341.06649775770154 +Vietnam,VNM,2005,360.4638193818291 +Vietnam,VNM,2006,329.39407071720166 +Vietnam,VNM,2007,360.08026575327995 +Vietnam,VNM,2008,447.4733056833459 +Vietnam,VNM,2009,457.77153818724514 +Vietnam,VNM,2010,518.3489512160959 +Vietnam,VNM,2011,593.3405070593666 +Vietnam,VNM,2012,620.5130876269938 +Vietnam,VNM,2013,665.3426374871724 +Vietnam,VNM,2014,727.7399462035125 +Vietnam,VNM,2015,803.547362602424 +Vietnam,VNM,2016,859.8073419043309 +Vietnam,VNM,2017,881.9921085647925 +Vietnam,VNM,2018,997.7041834395584 +Western Africa,,1965,55.786597421182215 +Western Africa,,1966,60.31823753893795 +Western Africa,,1967,58.98637091680998 +Western Africa,,1968,57.498604585776505 +Western Africa,,1969,64.0236969231645 +Western Africa,,1970,71.88266121321314 +Western Africa,,1971,93.15119157330263 +Western Africa,,1972,100.77081188395286 +Western Africa,,1973,111.10654420105156 +Western Africa,,1974,113.8302196719015 +Western Africa,,1975,122.11125713836664 +Western Africa,,1976,149.5459507093074 +Western Africa,,1977,162.25326361233826 +Western Africa,,1978,175.97029273519024 +Western Africa,,1979,198.8344833962963 +Western Africa,,1980,212.7230312641266 +Western Africa,,1981,224.2554329771512 +Western Africa,,1982,233.7232129043756 +Western Africa,,1983,220.5083352717158 +Western Africa,,1984,204.07979581336497 +Western Africa,,1985,216.13963948892538 +Western Africa,,1986,212.48476175097116 +Western Africa,,1987,222.1850225796082 +Western Africa,,1988,237.25668620703058 +Western Africa,,1989,249.852952920098 +Western Africa,,1990,242.7641601045 +Western Africa,,1991,258.7196016115917 +Western Africa,,1992,279.6789679554933 +Western Africa,,1993,281.36970662301945 +Western Africa,,1994,277.5309884750653 +Western Africa,,1995,285.63497447203105 +Western Africa,,1996,309.2507744476671 +Western Africa,,1997,307.90672839484824 +Western Africa,,1998,314.58154349386774 +Western Africa,,1999,315.3058037930516 +Western Africa,,2000,336.56984007175566 +Western Africa,,2001,365.6693490613182 +Western Africa,,2002,399.06034038378283 +Western Africa,,2003,395.4312450608804 +Western Africa,,2004,409.1710262490764 +Western Africa,,2005,423.196220514847 +Western Africa,,2006,387.7094311391942 +Western Africa,,2007,414.87654065892735 +Western Africa,,2008,445.9782854262575 +Western Africa,,2009,418.616811266932 +Western Africa,,2010,435.4835701978468 +Western Africa,,2011,475.3808230995505 +Western Africa,,2012,498.94331126702065 +Western Africa,,2013,506.06323133673345 +Western Africa,,2014,523.3493449473466 +Western Africa,,2015,601.069469645674 +Western Africa,,2016,638.307259211918 +Western Africa,,2017,669.1180804996087 +Western Africa,,2018,701.2311948974867 +World,OWID_WRL,1965,43070.29159420694 +World,OWID_WRL,1966,45406.99440879813 +World,OWID_WRL,1967,47126.346359528674 +World,OWID_WRL,1968,49985.64442991723 +World,OWID_WRL,1969,53394.06072391861 +World,OWID_WRL,1970,56709.19465230158 +World,OWID_WRL,1971,59090.4323177686 +World,OWID_WRL,1972,62273.7004710136 +World,OWID_WRL,1973,65857.6673315105 +World,OWID_WRL,1974,66173.9356226872 +World,OWID_WRL,1975,66518.51988866489 +World,OWID_WRL,1976,70137.94030575754 +World,OWID_WRL,1977,72630.74555938583 +World,OWID_WRL,1978,75125.75089038622 +World,OWID_WRL,1979,77736.77414185385 +World,OWID_WRL,1980,77171.18108972463 +World,OWID_WRL,1981,76739.23317525088 +World,OWID_WRL,1982,76414.32351228778 +World,OWID_WRL,1983,77623.86889109606 +World,OWID_WRL,1984,81291.51172532169 +World,OWID_WRL,1985,83360.78795116078 +World,OWID_WRL,1986,85194.75038716423 +World,OWID_WRL,1987,88171.09496881852 +World,OWID_WRL,1988,91500.96691610852 +World,OWID_WRL,1989,93310.19026308024 +World,OWID_WRL,1990,94383.40814934133 +World,OWID_WRL,1991,94998.44136208357 +World,OWID_WRL,1992,95643.59277870151 +World,OWID_WRL,1993,96369.90566245181 +World,OWID_WRL,1994,97641.65459703372 +World,OWID_WRL,1995,99620.58045469348 +World,OWID_WRL,1996,102592.21825997006 +World,OWID_WRL,1997,103650.05959109466 +World,OWID_WRL,1998,104270.79783871827 +World,OWID_WRL,1999,106165.3834994446 +World,OWID_WRL,2000,108822.05880317488 +World,OWID_WRL,2001,110048.80353779378 +World,OWID_WRL,2002,112538.20870713833 +World,OWID_WRL,2003,116667.06992825895 +World,OWID_WRL,2004,122395.7885558709 +World,OWID_WRL,2005,126626.721059885 +World,OWID_WRL,2006,130323.33164710835 +World,OWID_WRL,2007,134465.27049606023 +World,OWID_WRL,2008,136130.34057453115 +World,OWID_WRL,2009,134213.75563207068 +World,OWID_WRL,2010,140722.29377284617 +World,OWID_WRL,2011,144255.09090983882 +World,OWID_WRL,2012,146252.98273359356 +World,OWID_WRL,2013,149089.9298026643 +World,OWID_WRL,2014,150489.50214668777 +World,OWID_WRL,2015,151720.06315733574 +World,OWID_WRL,2016,153848.43335585727 +World,OWID_WRL,2017,156709.6232435849 +World,OWID_WRL,2018,161248.58563878245 \ No newline at end of file diff --git a/data/.~lock.transistor_data.csv# b/data/.~lock.transistor_data.csv# new file mode 100644 index 0000000..1c1020b --- /dev/null +++ b/data/.~lock.transistor_data.csv# @@ -0,0 +1 @@ +,ryan,fermi.localhost,15.01.2020 12:23,file:///home/ryan/.config/libreoffice/4; \ No newline at end of file diff --git a/data/archery.jpg b/data/archery.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9f99bbfe01d0293bda17f876744d7149482f4889 GIT binary patch literal 112565 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%0DdQXa;yNSU{?!)QM5zsjB|`B2&$YhWJ7Gtv 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

grT$_F*hDp=%g9GerCdnLBxnL|NPs zccb=JfWUi(-T0U6&xyk+?}^SXjq(S=UlE)+;#N|hxPWwOBSy!mW!$i1f-21kt0md8 z^D`p7z=xxPFw!I4O2&!HELoggb1LqGk`(oSkV?O1{v%S`$8TOivi-poZMfl0oXQBb zyY6jNrc~x565i%wzD-NPYkJi3A!~^J1NH}8!?e|pJNb_Hjv$5tyPy4F&RJ~%`yOP0 zJ@F8^ry7i-1g9UE+v$Z=MQIsfTO&+du%?_!ms*8pQFk2mFgofXyHLbWHw0@?S%3}O z;Yic;264?5zibq*VF^{WTp33#K-O~s(f&RzZJL;lXX@nHkRyYvtR9(OL&2$u#Z77bVN0y zGN>q*hqU|OB!Yk^JAeV(M7*aBF*Yv@zm+@0L=2>)fzxs4Ztip%!^furZT1m-0P0?3ZG`P9{RL7-fS-b<{G>K42?&XHxS} zJhJ-H4Hb4OiEVx^r2;gqVv03dBll?v6`Y~F=Hb9zy$Mb*Sylf4$3!r-qW5XBn z1~+|I{LROJuakkkKIi<5{4Udws}4igO}zu$yROIM{LN-$7d(FE$U%AT+$3;3G)?@O}QuNAGgHCNeUEh zyN@pE>>`(@ViwqxuAfXn62;I=AOz>Q!dXemEf1xl^)bF98bEHUCJB+;Zkny?rEMtR z652;DAShNpm<{fX`k52zvS?R@7+iGdg$%+|3U$=fk5swhQtdKs*i~x?nyN1qzt7?} z10(7cmPebIyyBxpcb!3Uw!J{zw(WvbSWZ0@idsBfK8pw<)$cHR59F|_w~3`&M4~2p z;fpLaae@t!!Wln^1fsn7mUTL}(0Lk9QK?X;9Y=~jXVI7$E;g!xZP{?-SvJq}KGe~2@zl7>v*Y`oT`gK<|`uAy&mYf(jCEbGo>Qs`Ql9vyjSs(%ax;@C%0A=j~F(fmc|7g6FZ66@$|N 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 literal 0 HcmV?d00001 diff --git a/images/robot_design.svg b/images/robot_design.svg new file mode 100644 index 0000000..88df829 --- /dev/null +++ b/images/robot_design.svg @@ -0,0 +1,1397 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + x + y + z + + d + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + x + z + x + z + + diff --git a/notebooks/.ipynb_checkpoints/01_Cheers_Stats_Beers-checkpoint.ipynb b/notebooks/.ipynb_checkpoints/01_Cheers_Stats_Beers-checkpoint.ipynb index e95fca8..fa8752b 100644 --- a/notebooks/.ipynb_checkpoints/01_Cheers_Stats_Beers-checkpoint.ipynb +++ b/notebooks/.ipynb_checkpoints/01_Cheers_Stats_Beers-checkpoint.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "###### Content under Creative Commons Attribution license CC-BY 4.0, code under BSD 3-Clause License © 2017 L.A. Barba, N.C. Clementi" + "###### Content under Creative Commons Attribution license CC-BY 4.0, code under BSD 3-Clause License © 2019 Ryan C. Cooper" ] }, { @@ -14,8 +14,7 @@ "# Cheers! Stats with Beers\n", "\n", "\n", - "\n", - "Welcome to the second module in _Engineering Computations_, our series in computational thinking for undergraduate engineering students. This module explores practical statistical analysis with Python.\n", + "Welcome to the second module in _Computational Mechanics_, our series in computational thinking for undergraduate engineering students. This module explores practical data and statistical analysis with Python.\n", "\n", "This first lesson explores how we can answer questions using data combined with practical methods from statistics.\n", "\n", @@ -23,7 +22,7 @@ "\n", "The data source ([@craftcans](https://twitter.com/craftcans) on Twitter) doesn't say that the set includes *all* the canned beers brewed in the country. So we have to asume that the data is a sample and may contain biases.\n", "\n", - "We'll manipulate the data using **numpy**—the array library for Python that we learned about in [Module 1, lesson 4](http://go.gwu.edu/engcomp1lesson4). But we'll also learn about a new Python library for data analysis called **pandas**. \n", + "We'll process the data using **numpy**—the array library for Python that we learned about in [Module 1, lesson 2: Getting Started](../../CompMech01-Getting-started/notebooks/02-Getting-started.ipynb). But we'll also learn about a new Python library for data analysis called **pandas**. \n", "\n", "[`pandas`](http://pandas.pydata.org/) is an open-source library providing high-performance, easy-to-use data structures and data-analysis tools. Even though `pandas` is great for data analysis, we won't exploit all its power in this lesson. But we'll learn more about it later on!\n", "\n", @@ -34,7 +33,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -57,7 +56,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -90,7 +89,7 @@ }, { "cell_type": "code", - "execution_count": 2, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -99,7 +98,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -108,7 +107,7 @@ "pandas.core.frame.DataFrame" ] }, - "execution_count": 5, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -126,7 +125,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -228,7 +227,7 @@ " ...\n", " \n", " \n", - " 2405\n", + " 2402\n", " 2405\n", " 0.067\n", " 45.0\n", @@ -239,7 +238,7 @@ " 12.0\n", " \n", " \n", - " 2406\n", + " 2403\n", " 2406\n", " 0.052\n", " NaN\n", @@ -250,7 +249,7 @@ " 12.0\n", " \n", " \n", - " 2407\n", + " 2404\n", " 2407\n", " 0.055\n", " NaN\n", @@ -261,7 +260,7 @@ " 12.0\n", " \n", " \n", - " 2408\n", + " 2405\n", " 2408\n", " 0.055\n", " 40.0\n", @@ -272,7 +271,7 @@ " 12.0\n", " \n", " \n", - " 2409\n", + " 2406\n", " 2409\n", " 0.052\n", " NaN\n", @@ -284,7 +283,7 @@ " \n", " \n", "\n", - "

2410 rows × 8 columns

\n", + "

2407 rows × 8 columns

\n", "" ], "text/plain": [ @@ -295,11 +294,11 @@ "3 3 0.090 NaN 2263 Sinister \n", "4 4 0.075 NaN 2262 Sex and Candy \n", "... ... ... ... ... ... \n", - "2405 2405 0.067 45.0 928 Belgorado \n", - "2406 2406 0.052 NaN 807 Rail Yard Ale \n", - "2407 2407 0.055 NaN 620 B3K Black Lager \n", - "2408 2408 0.055 40.0 145 Silverback Pale Ale \n", - "2409 2409 0.052 NaN 84 Rail Yard Ale (2009) \n", + "2402 2405 0.067 45.0 928 Belgorado \n", + "2403 2406 0.052 NaN 807 Rail Yard Ale \n", + "2404 2407 0.055 NaN 620 B3K Black Lager \n", + "2405 2408 0.055 40.0 145 Silverback Pale Ale \n", + "2406 2409 0.052 NaN 84 Rail Yard Ale (2009) \n", "\n", " style brewery_id ounces \n", "0 American Pale Lager 408 12.0 \n", @@ -308,16 +307,16 @@ "3 American Double / Imperial IPA 177 12.0 \n", "4 American IPA 177 12.0 \n", "... ... ... ... \n", - "2405 Belgian IPA 424 12.0 \n", + "2402 Belgian IPA 424 12.0 \n", + "2403 American Amber / Red Ale 424 12.0 \n", + "2404 Schwarzbier 424 12.0 \n", + "2405 American Pale Ale (APA) 424 12.0 \n", "2406 American Amber / Red Ale 424 12.0 \n", - "2407 Schwarzbier 424 12.0 \n", - "2408 American Pale Ale (APA) 424 12.0 \n", - "2409 American Amber / Red Ale 424 12.0 \n", "\n", - "[2410 rows x 8 columns]" + "[2407 rows x 8 columns]" ] }, - "execution_count": 8, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -362,7 +361,7 @@ }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -371,7 +370,7 @@ "pandas.core.series.Series" ] }, - "execution_count": 7, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -389,7 +388,7 @@ }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -408,7 +407,7 @@ "Name: abv, dtype: float64" ] }, - "execution_count": 8, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -428,7 +427,7 @@ }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -437,16 +436,16 @@ }, { "cell_type": "code", - "execution_count": 10, + "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "2410" + "2407" ] }, - "execution_count": 10, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -464,7 +463,7 @@ }, { "cell_type": "code", - "execution_count": 11, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -480,7 +479,7 @@ }, { "cell_type": "code", - "execution_count": 12, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -489,7 +488,7 @@ "2348" ] }, - "execution_count": 12, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -507,7 +506,7 @@ }, { "cell_type": "code", - "execution_count": 13, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -516,7 +515,7 @@ }, { "cell_type": "code", - "execution_count": 14, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -533,7 +532,7 @@ }, { "cell_type": "code", - "execution_count": 15, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -542,7 +541,7 @@ "numpy.ndarray" ] }, - "execution_count": 15, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -560,16 +559,16 @@ }, { "cell_type": "code", - "execution_count": 16, + "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "2410" + "2407" ] }, - "execution_count": 16, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -582,7 +581,7 @@ }, { "cell_type": "code", - "execution_count": 17, + "execution_count": 16, "metadata": {}, "outputs": [ { @@ -591,7 +590,7 @@ "1405" ] }, - "execution_count": 17, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -638,7 +637,7 @@ "## Step 3: Ready, stats, go!\n", "\n", "\n", - "Now that we have numpy arrays with clean data, let's see how we can manipulate them to get some useful information. \n", + "Now that we have numpy arrays with clean data, let's see how we can process them to get some useful information. \n", "\n", "Focusing on the numerical variables `abv` and `ibu`, we'll walk through some \"descriptive statistics,\" below. In other words, we aim to generate statistics that summarize the data concisely." ] @@ -662,7 +661,7 @@ }, { "cell_type": "code", - "execution_count": 18, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [ @@ -672,7 +671,7 @@ }, { "cell_type": "code", - "execution_count": 19, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -698,7 +697,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ @@ -708,7 +707,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 20, "metadata": {}, "outputs": [ { @@ -744,7 +743,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 21, "metadata": {}, "outputs": [], "source": [ @@ -765,7 +764,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 22, "metadata": {}, "outputs": [ { @@ -789,7 +788,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 23, "metadata": {}, "outputs": [ { @@ -820,7 +819,7 @@ "\n", "While the mean indicates where's the center of your data, the **variance** and **standard deviation** describe the *spread* or variability of the data. We already mentioned that the _range_ (difference between largest and smallest data values) is also an indication of variability. But the standard deviation is the most common measure of variability.\n", "\n", - "We really like the way [Prof. Kristin Sainani](https://profiles.stanford.edu/kristin-sainani), of Stanford University, presents this in her online course on [Statistics in Medicine](https://lagunita.stanford.edu/courses/Medicine/MedStats-SP/SelfPaced/about). In her lecture \"Describing Quantitative Data: Whhat is the variability in the data?\", available [on YouTube](https://youtu.be/hlFeEQF5tDc), she asks: _What if someone were to ask you to devise a statistic that gives the avarage distance from the mean?_ Think about this a little bit.\n", + "We really like the way [Prof. Kristin Sainani](https://profiles.stanford.edu/kristin-sainani), of Stanford University, presents this in her online course on [Statistics in Medicine](https://lagunita.stanford.edu/courses/Medicine/MedStats-SP/SelfPaced/about). In her lecture \"Describing Quantitative Data: What is the variability in the data?\", available [on YouTube](https://youtu.be/hlFeEQF5tDc), she asks: _What if someone were to ask you to devise a statistic that gives the avarage distance from the mean?_ Think about this a little bit.\n", "\n", "The distance from the mean, for any data value, is $x_i - \\bar{x}$. So what is the average of the distances from the mean? If we try to simply compute the average of all the values $x_i - \\bar{x}$, some of which are negative, you'll just get zero! It doesn't work.\n", "\n", @@ -868,7 +867,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 24, "metadata": {}, "outputs": [], "source": [ @@ -927,7 +926,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 25, "metadata": {}, "outputs": [], "source": [ @@ -958,7 +957,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 26, "metadata": {}, "outputs": [], "source": [ @@ -975,7 +974,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 27, "metadata": {}, "outputs": [ { @@ -1009,12 +1008,12 @@ "\n", "Thanks to Python and Matplotlib, making histograms is easy. We recommend that you always read the documentation, in this case about [histograms](https://matplotlib.org/devdocs/api/_as_gen/matplotlib.pyplot.hist.html). We'll show you here an example using the `hist()` function from `pyplot`, but this is just a starting point. \n", "\n", - "Let's import the libraries that we need for plotting, as you learned in [Module 1 Lesson 5](http://go.gwu.edu/engcomp1lesson5), then study the plotting commands used below. Try changing some of the plot options and seeing the effect." + "Let's first load the **Matplotlib** module called `pyplot`, for making 2D plots. Remember that to get the plots inside the notebook, we use a special \"magic\" command, `%matplotlib inline`:" ] }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 28, "metadata": {}, "outputs": [], "source": [ @@ -1022,21 +1021,83 @@ "%matplotlib inline\n", "\n", "#Import rcParams to set font styles\n", - "from matplotlib import rcParams\n", + "from matplotlib import rcParams" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(array([ 1., 0., 38., 699., 857., 486., 159., 104., 1., 3.]),\n", + " array([0.001 , 0.0137, 0.0264, 0.0391, 0.0518, 0.0645, 0.0772, 0.0899,\n", + " 0.1026, 0.1153, 0.128 ]),\n", + "
)" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "pyplot.hist(abv)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we have a line plot, but if you see this plot without any information you would not be able to figure out what kind of data it is! We need labels on the axes, a title and why not a better color, font and size of the ticks. \n", + "**Publication quality** plots should always be your standard for plotting. \n", + "How you present your data will allow others (and probably you in the future) to better understand your work. \n", "\n", - "#Set font style and size \n", - "rcParams['font.family'] = 'serif'\n", - "rcParams['font.size'] = 16" + "We can customize the style of our plots using parameters for the lines, text, font and other plot options. We set some style options that apply for all the plots in the current session with [`plt.rc()`](https://matplotlib.org/api/_as_gen/matplotlib.plt.rc.html)\n", + "Here, we'll make the font of a specific type and size (sans-serif and 18 points). You can also customize other parameters like line width, color, and so on (check out the documentation)." ] }, { "cell_type": "code", "execution_count": 30, "metadata": {}, + "outputs": [], + "source": [ + "#Set font style and size \n", + "rcParams['font.family'] = 'sans'\n", + "rcParams['lines.linewidth'] = 3\n", + "rcParams['font.size'] = 18" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We'll redo the same plot, but now we'll add a few things to make it prettier and **publication quality**. We'll add a title, label the axes and, show a background grid. Study the commands below and look at the result!" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -1052,7 +1113,7 @@ "pyplot.figure(figsize=(10,5))\n", "\n", "#Plotting\n", - "pyplot.hist(abv, bins=20, color='#3498db', histtype='bar', edgecolor='white') \n", + "pyplot.hist(abv, bins=20, color='b', histtype='bar', edgecolor='white') \n", "#The \\n is to leave a blank line between the title and the plot\n", "pyplot.title('abv \\n')\n", "pyplot.xlabel('Alcohol by Volume (abv) ')\n", @@ -1061,12 +1122,12 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 32, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -1082,7 +1143,7 @@ "pyplot.figure(figsize=(10,5))\n", "\n", "#Plotting\n", - "pyplot.hist(ibu, bins=20, color='#e67e22', histtype='bar', edgecolor='white') \n", + "pyplot.hist(ibu, bins=20, color=(0.9, 0.5, 0, 0.9), histtype='bar', edgecolor='white') \n", "#The \\n is to leave a blanck line between the title and the plot\n", "pyplot.title('ibu \\n')\n", "pyplot.xlabel('International Bittering Units (ibu)')\n", @@ -1093,7 +1154,24 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "##### Exploratory exercise:\n", + "In the previous two plots we set the colors in two ways:\n", + "\n", + "1. A string 'b', which specifies blue. We could also choose from: a string representation \n", + "one of \n", + "\n", + " {'b', 'g', 'r', 'c', 'm', 'y', 'k', 'w'} = \n", + " {**b**lue, **g**reen, **r**ed, **c**yan, **m**agenta, **y**ellow, blac**k**, **w**hite}\n", + " \n", + "2. A RGB or RGBA (red, green, blue, alpha) tuple of float values in [0, 1] (e.g., (0.1, 0.2, 0.5) or (0.1, 0.2, 0.5, 0.3));\n", + "\n", + "Check out the other formatting options use can use in [Matplotlib colors](https://matplotlib.org/3.1.1/tutorials/colors/colors.html) and [Matplotlib hist command](https://matplotlib.org/3.1.1/api/_as_gen/matplotlib.pyplot.hist.html?highlight=hist#matplotlib.pyplot.hist)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exploratory exercise:\n", "\n", "Play around with the plots, change the values of the bins, colors, etc." ] @@ -1107,6 +1185,7 @@ "A **normal** (or Gaussian) distribution is a special type of distrubution that behaves as shown in the figure: 68% of the values are within one standard deviation $\\sigma$ from the mean; 95% lie within $2\\sigma$; and at a distance of $\\pm3\\sigma$ from the mean, we cover 99.7% of the values. This fact is known as the $3$-$\\sigma$ rule, or 68-95-99.7 (empirical) rule.\n", "\n", " \n", + "\n", "#### Standard deviation and coverage in a normal distribution. Modified figure based on original from [Wikimedia Commons](https://commons.wikimedia.org/wiki/File:Standard_deviation_diagram.svg), the free media repository.\n", "\n", "\n", @@ -1117,15 +1196,15 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "##### Discuss with your neighbor\n", + "## Discussion point\n", "\n", "* How do you think that skewness will affect the percentages of coverage by standard deviation compared to the Bell Curve?\n", "\n", "* Can we calculate those percentages? \n", "\n", - "##### Spoiler alert! (and Exercise)\n", + "## Exercise\n", "\n", - "Yes we can, and guess what: we can do it in a few lines of Python. But before doing that, we want you to explain in your own words how the following piece of code works. \n", + "We can calculate skewness and standard deviation in a few lines of Python. But before doing that, we want you to explain in your own words how the following piece of code works. \n", "\n", "*Hints:* \n", "\n", @@ -1135,7 +1214,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 33, "metadata": {}, "outputs": [ { @@ -1163,7 +1242,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 34, "metadata": {}, "outputs": [], "source": [ @@ -1218,7 +1297,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 35, "metadata": {}, "outputs": [], "source": [ @@ -1234,7 +1313,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 36, "metadata": {}, "outputs": [ { @@ -1262,7 +1341,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 37, "metadata": {}, "outputs": [], "source": [ @@ -1271,7 +1350,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 38, "metadata": {}, "outputs": [ { @@ -1334,180 +1413,6 @@ "* [Describing Quantitative Data: What is the variability in the data?](https://youtu.be/hlFeEQF5tDc)\n", "* [Variability in the data, continued: examples, bell curve](https://youtu.be/qeG0uNI3DBQ)" ] - }, - { - "cell_type": "code", - "execution_count": 38, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 38, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Execute this cell to load the notebook's style sheet, then ignore it\n", - "from IPython.core.display import HTML\n", - "css_file = '../style/custom.css'\n", - "HTML(open(css_file, \"r\").read())" - ] } ], "metadata": { diff --git a/notebooks/.ipynb_checkpoints/02_Seeing_Stats-checkpoint.ipynb b/notebooks/.ipynb_checkpoints/02_Seeing_Stats-checkpoint.ipynb index 3f26a3d..1193c0a 100644 --- a/notebooks/.ipynb_checkpoints/02_Seeing_Stats-checkpoint.ipynb +++ b/notebooks/.ipynb_checkpoints/02_Seeing_Stats-checkpoint.ipynb @@ -24,7 +24,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -59,7 +59,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -92,7 +92,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -101,7 +101,7 @@ "pandas.core.frame.DataFrame" ] }, - "execution_count": 22, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -112,7 +112,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -303,7 +303,7 @@ "[424 rows x 8 columns]" ] }, - "execution_count": 23, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -314,7 +314,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -325,7 +325,7 @@ " dtype='object')" ] }, - "execution_count": 24, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -365,7 +365,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -377,7 +377,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -396,7 +396,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -444,7 +444,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -501,7 +501,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -526,7 +526,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -587,7 +587,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -609,7 +609,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -656,7 +656,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -690,7 +690,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 15, "metadata": {}, "outputs": [ { @@ -758,7 +758,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ @@ -767,7 +767,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 17, "metadata": {}, "outputs": [ { @@ -776,7 +776,7 @@ "pandas.core.series.Series" ] }, - "execution_count": 36, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } @@ -787,7 +787,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -830,7 +830,7 @@ " 'Low Alcohol Beer'], dtype=object)" ] }, - "execution_count": 37, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -855,63 +855,63 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "American Double / Imperial Stout 9\n", - "Schwarzbier 9\n", "Herbed / Spiced Beer 9\n", + "Schwarzbier 9\n", + "American Double / Imperial Stout 9\n", "Belgian Strong Pale Ale 7\n", - "Doppelbock 7\n", - "Bock 7\n", "American Dark Wheat Ale 7\n", "Bière de Garde 7\n", - "American Wild Ale 6\n", + "Doppelbock 7\n", + "Bock 7\n", + "Belgian Strong Dark Ale 6\n", "California Common / Steam Beer 6\n", + "American Wild Ale 6\n", + "Baltic Porter 6\n", "Foreign / Export Stout 6\n", "English Dark Mild Ale 6\n", - "Belgian Strong Dark Ale 6\n", - "Baltic Porter 6\n", "Dortmunder / Export Lager 6\n", - "Dubbel 5\n", - "Irish Dry Stout 5\n", "Euro Dark Lager 5\n", - "Maibock / Helles Bock 5\n", "Mead 5\n", - "Quadrupel (Quad) 4\n", + "Irish Dry Stout 5\n", + "Dubbel 5\n", + "Maibock / Helles Bock 5\n", "English Strong Ale 4\n", - "Dunkelweizen 4\n", + "Quadrupel (Quad) 4\n", "Munich Dunkel Lager 4\n", + "Dunkelweizen 4\n", + "American India Pale Lager 3\n", "Keller Bier / Zwickel Bier 3\n", "English Barleywine 3\n", - "Radler 3\n", - "English Bitter 3\n", - "American India Pale Lager 3\n", - "Shandy 3\n", "Chile Beer 3\n", - "English Pale Mild Ale 3\n", + "English Bitter 3\n", "American Barleywine 3\n", + "Radler 3\n", + "English Pale Mild Ale 3\n", + "Shandy 3\n", + "Rauchbier 2\n", + "Abbey Single Ale 2\n", "English Stout 2\n", + "Euro Pale Lager 2\n", "Old Ale 2\n", - "American Double / Imperial Pilsner 2\n", "Roggenbier 2\n", - "Rauchbier 2\n", - "Euro Pale Lager 2\n", - "Abbey Single Ale 2\n", - "Other 1\n", + "American Double / Imperial Pilsner 2\n", + "Grisette 1\n", + "American Malt Liquor 1\n", + "Low Alcohol Beer 1\n", "Braggot 1\n", + "Flanders Red Ale 1\n", + "Wheat Ale 1\n", "Flanders Oud Bruin 1\n", "Kristalweizen 1\n", - "Grisette 1\n", - "Wheat Ale 1\n", - "Low Alcohol Beer 1\n", "Smoked Beer 1\n", - "Flanders Red Ale 1\n", - "American Malt Liquor 1\n", + "Other 1\n", "Name: style, dtype: int64\n" ] } @@ -923,7 +923,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 20, "metadata": {}, "outputs": [ { @@ -932,7 +932,7 @@ "pandas.core.series.Series" ] }, - "execution_count": 39, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } @@ -943,7 +943,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 21, "metadata": {}, "outputs": [ { @@ -952,7 +952,7 @@ "99" ] }, - "execution_count": 40, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } @@ -979,12 +979,12 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 22, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -1025,7 +1025,7 @@ }, { "cell_type": "code", - "execution_count": 74, + "execution_count": 23, "metadata": {}, "outputs": [], "source": [ @@ -1034,7 +1034,7 @@ }, { "cell_type": "code", - "execution_count": 75, + "execution_count": 24, "metadata": {}, "outputs": [ { @@ -1043,7 +1043,7 @@ "1405" ] }, - "execution_count": 75, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } @@ -1055,7 +1055,7 @@ }, { "cell_type": "code", - "execution_count": 76, + "execution_count": 25, "metadata": {}, "outputs": [ { @@ -1064,7 +1064,7 @@ "1405" ] }, - "execution_count": 76, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } @@ -1090,7 +1090,7 @@ }, { "cell_type": "code", - "execution_count": 77, + "execution_count": 26, "metadata": {}, "outputs": [ { @@ -1140,7 +1140,7 @@ }, { "cell_type": "code", - "execution_count": 78, + "execution_count": 27, "metadata": {}, "outputs": [], "source": [ @@ -1156,7 +1156,7 @@ }, { "cell_type": "code", - "execution_count": 79, + "execution_count": 28, "metadata": {}, "outputs": [], "source": [ @@ -1165,7 +1165,7 @@ }, { "cell_type": "code", - "execution_count": 80, + "execution_count": 29, "metadata": {}, "outputs": [ { @@ -1174,7 +1174,7 @@ "pandas.core.series.Series" ] }, - "execution_count": 80, + "execution_count": 29, "metadata": {}, "output_type": "execute_result" } @@ -1185,7 +1185,7 @@ }, { "cell_type": "code", - "execution_count": 81, + "execution_count": 30, "metadata": {}, "outputs": [ { @@ -1194,7 +1194,7 @@ "90" ] }, - "execution_count": 81, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" } @@ -1223,7 +1223,7 @@ }, { "cell_type": "code", - "execution_count": 82, + "execution_count": 31, "metadata": {}, "outputs": [], "source": [ @@ -1232,7 +1232,7 @@ }, { "cell_type": "code", - "execution_count": 83, + "execution_count": 32, "metadata": {}, "outputs": [ { @@ -1344,7 +1344,7 @@ "[90 rows x 2 columns]" ] }, - "execution_count": 83, + "execution_count": 32, "metadata": {}, "output_type": "execute_result" } @@ -1371,7 +1371,7 @@ }, { "cell_type": "code", - "execution_count": 84, + "execution_count": 33, "metadata": {}, "outputs": [], "source": [ @@ -1380,7 +1380,7 @@ }, { "cell_type": "code", - "execution_count": 85, + "execution_count": 34, "metadata": {}, "outputs": [ { @@ -1399,7 +1399,7 @@ "Name: style, dtype: int64" ] }, - "execution_count": 85, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" } @@ -1417,7 +1417,7 @@ }, { "cell_type": "code", - "execution_count": 86, + "execution_count": 35, "metadata": {}, "outputs": [ { @@ -1455,7 +1455,7 @@ }, { "cell_type": "code", - "execution_count": 87, + "execution_count": 36, "metadata": {}, "outputs": [], "source": [ @@ -1465,7 +1465,7 @@ }, { "cell_type": "code", - "execution_count": 88, + "execution_count": 37, "metadata": {}, "outputs": [ { @@ -1506,7 +1506,7 @@ }, { "cell_type": "code", - "execution_count": 89, + "execution_count": 38, "metadata": {}, "outputs": [ { @@ -1578,6 +1578,33 @@ " scatter plot with `beers_filled`. What differences do you notice between the plots? " ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "2. Gordon Moore created an empirical prediction that the rate of semiconductors on a computer chip would double every two years. This prediction was known as Moore's law. Gordon Moore had originally only expected this empirical relation to hold from 1965 - 1975 [[1](https://en.wikipedia.org/wiki/Moore%27s_law),[2](https://spectrum.ieee.org/computing/hardware/gordon-moore-the-man-whose-name-means-progress)], but semiconductor manufacuturers were able to keep up with Moore's law until 2015. \n", + "\n", + " In the folder \"../data\" is a comma separated value (CSV) file, \"transistor_data.csv\" [taken from wikipedia 01/2020](https://en.wikipedia.org/wiki/Transistor_count#Microprocessors). \n", + " Load the csv into a pandas dataframe, it has the following headings:\n", + "\n", + " |Processor| MOS transistor count| Date of Introduction|Designer|MOSprocess|Area|\n", + " |---|---|---|---|---|---|\n", + "\n", + " a. In the years 2017, what was the average MOS transistor count? \n", + " Make a boxplot of the transistor count in 2017 and find the first, second and third quartiles.\n", + "\n", + " b. Create a semilog y-axis scatter plot (i.e. `plt.semilogy`) for the \n", + " \"Date of Introduction\" vs \"MOS transistor count\". \n", + " Color the data according to the \"Designer\"." + ] + }, { "cell_type": "code", "execution_count": null, diff --git a/notebooks/.ipynb_checkpoints/03_Linear_Regression_with_Real_Data-checkpoint.ipynb b/notebooks/.ipynb_checkpoints/03_Linear_Regression_with_Real_Data-checkpoint.ipynb new file mode 100644 index 0000000..21438c1 --- /dev/null +++ b/notebooks/.ipynb_checkpoints/03_Linear_Regression_with_Real_Data-checkpoint.ipynb @@ -0,0 +1,974 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "###### Modified under Creative Commons Attribution license CC-BY 4.0, code under BSD 3-Clause License © 2020 R.C. Cooper" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Linear regression with real data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Earth temperature over time\n", + "\n", + "In this lesson, we will analyze real data of Earth temperature over time.\n", + "\n", + "Is global temperature rising? How much? This is a question of burning importance in today's world!\n", + "\n", + "Data about global temperatures are available from several sources: NASA, the National Climatic Data Center (NCDC) and the University of East Anglia in the UK. Check out the [University Corporation for Atmospheric Research](https://www2.ucar.edu/climate/faq/how-much-has-global-temperature-risen-last-100-years) (UCAR) for an in-depth discussion.\n", + "\n", + "The [NASA Goddard Space Flight Center](http://svs.gsfc.nasa.gov/goto?3901) is one of our sources of global climate data. They produced the video below showing a color map of the changing global surface **temperature anomalies** from 1880 to 2015.\n", + "\n", + "The term [global temperature anomaly](https://www.ncdc.noaa.gov/monitoring-references/faq/anomalies.php) means the difference in temperature with respect to a reference value or a long-term average. It is a very useful way of looking at the problem and in many ways better than absolute temperature. For example, a winter month may be colder than average in Washington DC, and also in Miami, but the absolute temperatures will be different in both places." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/jpeg": "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\n", + "text/html": [ + "\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from IPython.display import YouTubeVideo\n", + "YouTubeVideo('gGOzHVUQCw0')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "How would we go about understanding the _trends_ from the data on global temperature?\n", + "\n", + "The first step in analyzing unknown data is to generate some simple plots using **Matplotlib**. We are going to look at the temperature-anomaly history, contained in a file, and make our first plot to explore this data. \n", + "\n", + "We are going to smooth the data and then we'll fit a line to it to find a trend, plotting along the way to see how it all looks.\n", + "\n", + "Let's get started!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Step 1: Read a data file\n", + "\n", + "We took the data from the [NOAA](https://www.ncdc.noaa.gov/cag/) (National Oceanic and Atmospheric Administration) webpage. Feel free to play around with the webpage and analyze data on your own, but for now, let's make sure we're working with the same dataset.\n", + "\n", + "\n", + "We have a file named `land_global_temperature_anomaly-1880-2016.csv` in our `data` folder. This file contains the year on the first column, and averages of land temperature anomaly listed sequentially on the second column, from the year 1880 to 2016. We will load the file, then make an initial plot to see what it looks like.\n", + "\n", + "\n", + "Let's start by importing NumPy and pandas" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To load our data from the file, we'll use the function [`numpy.loadtxt()`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.loadtxt.html), which lets us immediately save the data into NumPy arrays. (We encourage you to read the documentation for details on how the function works.) Here, we'll save the data into the arrays `year` and `temp_anomaly`. " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "fname = '../data/land_global_temperature_anomaly-1880-2016.csv'\n", + "\n", + "temp_data = pd.read_csv(fname,skiprows=4)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### Exercise\n", + "\n", + "Inspect the data by printing `temp_data`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Step 2: Plot the data\n", + "\n", + "Let's first load the **Matplotlib** module called `pyplot`, for making 2D plots. Remember that to get the plots inside the notebook, we use a special \"magic\" command, `%matplotlib inline`:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "#Import rcParams to set font styles\n", + "from matplotlib import rcParams\n", + "\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `plot()` function of the `pyplot` module makes simple line plots. We avoid that stuff that appeared on top of the figure, that `Out[x]: [< ...>]` ugliness, by adding a semicolon at the end of the plotting command." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "#Set font style and size \n", + "rcParams['font.family'] = 'sans'\n", + "rcParams['font.size'] = 16\n", + "rcParams['lines.linewidth'] = 3" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "#You can set the size of the figure by doing:\n", + "plt.figure(figsize=(10,5))\n", + "\n", + "#Plotting\n", + "plt.plot(temp_data['Year'], temp_data['Value'], color='#2929a3', linestyle='-', linewidth=1) \n", + "plt.title('Land global temperature anomalies. \\n')\n", + "plt.xlabel('Year')\n", + "plt.ylabel('Land temperature anomaly [°C]')\n", + "plt.grid();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Step 3: Least-squares linear regression \n", + "\n", + "In order to have an idea of the general behavior of our data, we can find a smooth curve that (approximately) fits the points. We generally look for a curve that's simple (e.g., a polynomial), and does not reproduce the noise that's always present in experimental data. \n", + "\n", + "Let $f(x)$ be the function that we'll fit to the $n+1$ data points: $(x_i, y_i)$, $i = 0, 1, ... ,n$:\n", + "\n", + "$$ \n", + " f(x) = f(x; a_0, a_1, ... , a_m) \n", + "$$\n", + "\n", + "The notation above means that $f$ is a function of $x$, with $m+1$ variable parameters $a_0, a_1, ... , a_m$, where $m < n$. We need to choose the form of $f(x)$ _a priori_, by inspecting the experimental data and knowing something about the phenomenon we've measured. Thus, curve fitting consists of two steps: \n", + "\n", + "1. Choosing the form of $f(x)$.\n", + "2. Computing the parameters that will give us the \"best fit\" to the data. \n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### What is the \"best\" fit?\n", + "\n", + "When the noise in the data is limited to the $y$-coordinate, it's common to use a **least-squares fit** [2], which minimizes the function\n", + "\n", + "$$\n", + "\\begin{equation} \n", + " S(a_0, a_1, ... , a_m) = \\sum_{i=0}^{n} [y_i - f(x_i)]^2\n", + "\\end{equation}~~~~~~(1) \n", + "$$\n", + "\n", + "with respect to each $a_j$. We find the values of the parameters for the best fit by solving the following equations:\n", + "\n", + "$$\n", + "\\begin{equation}\n", + " \\frac{\\partial{S}}{\\partial{a_k}} = 0, \\quad k = 0, 1, ... , m.\n", + "\\end{equation}~~~~~~(2)\n", + "$$\n", + "\n", + "Here, the terms $r_i = y_i - f(x_i)$ are called residuals: they tell us the discrepancy between the data and the fitting function at $x_i$. \n", + "\n", + "Take a look at the function $S$: what we want to minimize is the sum of the squares of the residuals. The equations (2) are generally nonlinear in $a_j$ and might be difficult to solve. Therefore, the fitting function is commonly chosen as a linear combination of specified functions $f_j(x)$, \n", + "\n", + "$$\n", + "\\begin{equation*}\n", + " f(x) = a_0f_0(x) + a_1f_1(x) + ... + a_mf_m(x)\n", + "\\end{equation*}~~~~~~(3)\n", + "$$\n", + "\n", + "which results in equations (2) being linear. In the case that the fitting function is polynomial, we have have $f_0(x) = 1, \\; f_1(x) = x, \\; f_2(x) = x^2$, and so on. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Linear regression \n", + "\n", + "When we talk about linear regression we mean \"fitting a function to the data.\" In this case,\n", + "\n", + "$$\n", + "\\begin{equation}\n", + " f(x) = a_0 + a_1x\n", + "\\end{equation}~~~~~~(4)\n", + "$$\n", + "\n", + "The function that we'll minimize is:\n", + "\n", + "$$\n", + "\\begin{equation}\n", + " S(a_0, a_1) = \\sum_{i=0}^{n} [y_i - f(x_i)]^2 = \\sum_{i=0}^{n} (y_i - a_0 - a_1x_i)^2 \n", + "\\end{equation}~~~~~~(5) \n", + "$$\n", + "\n", + "Equations (2) become:\n", + "\n", + "$$\n", + "\\begin{equation}\n", + " \\frac{\\partial{S}}{\\partial{a_0}} = \\sum_{i=0}^{n} -2(y_i - a_0 - a_1x_i) = 2 \\left[ a_0(n+1) + a_1\\sum_{i=0}^{n} x_i - \\sum_{i=0}^{n} y_i \\right] = 0\n", + "\\end{equation}~~~~~~(6) \n", + "$$\n", + "\n", + "$$\n", + "\\begin{equation}\n", + " \\frac{\\partial{S}}{\\partial{a_1}} = \\sum_{i=0}^{n} -2(y_i - a_0 - a_1x_i)x_i = 2 \\left[ a_0\\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i \\right] = 0\n", + "\\end{equation}~~~~~~(7) \n", + "$$\n", + "\n", + "Let's divide both equations by $2(n+1)$ and rearrange terms.\n", + "\n", + "Rearranging (6) and (7):\n", + "\n", + "$$\n", + "\\begin{align}\n", + " 2 \\left[ a_0(n+1) + a_1\\sum_{i=0}^{n} x_i - \\sum_{i=0}^{n} y_i \\right] &= 0 \\nonumber \\\\ \n", + " \\frac{a_0(n+1)}{n+1} + a_1 \\frac{\\sum_{i=0}^{n} x_i}{n+1} - \\frac{\\sum_{i=0}^{n} y_i}{n+1} &= 0 \\\\\n", + "\\end{align}~~~~~~(8)\n", + "$$\n", + "\n", + "$$\n", + "\\begin{align}\n", + " a_0 = \\bar{y} - a_1\\bar{x}\n", + "\\end{align}~~~~~~(9)\n", + "$$\n", + "\n", + "where $\\bar{x} = \\frac{\\sum_{i=0}^{n} x_i}{n+1}$ and $\\bar{y} = \\frac{\\sum_{i=0}^{n} y_i}{n+1}$.\n", + "\n", + "Rearranging (7):\n", + "\n", + "$$\n", + "\\begin{align}\n", + " 2 \\left[ a_0\\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i \\right] &= 0 \\\\\n", + " a_0\\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i &=0 \\\\\n", + "\\end{align}~~~~~~(10)\n", + "$$\n", + "\n", + "Now, if we replace $a_0$ from equation (8) into (9) and rearrange terms:\n", + "\n", + "$$\n", + "\\begin{align*}\n", + " (\\bar{y} - a_1\\bar{x})\\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i &= 0 \\\\ \n", + "\\end{align*}~~~~~~(11)\n", + "$$\n", + "\n", + "Replacing the definitions of the mean values into the equation, \n", + "\n", + "$$\n", + "\\begin{align*}\n", + " \\left[\\frac{1}{n+1}\\sum_{i=0}^{n} y_i - \\frac{a_1}{n+1}\\sum_{i=0}^{n} x_i \\right]\\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i &= 0 \\\\ \n", + " \\frac{1}{n+1}\\sum_{i=0}^{n} y_i \\sum_{i=0}^{n} x_i - \\frac{a_1}{n+1}\\sum_{i=0}^{n} x_i \\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i &= 0 \\\\ \n", + "\\end{align*}~~~~~~(12)\n", + "$$\n", + "\n", + "Leaving everything in terms of $\\bar{x}$, \n", + "\n", + "$$\n", + "\\begin{align*}\n", + " \\sum_{i=0}^{n} y_i \\bar{x} - a_1\\sum_{i=0}^{n} x_i \\bar{x} + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i = 0 \n", + "\\end{align*}~~~~~~(13)\n", + "$$\n", + "\n", + "Grouping the terms that have $a_1$ on the left-hand side and the rest on the right-hand side:\n", + "\n", + "$$\n", + "\\begin{align*}\n", + " a_1\\left[ \\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_i \\bar{x}\\right] &= \\sum_{i=0}^{n} x_iy_i - \\sum_{i=0}^{n} y_i \\bar{x} \\\\\n", + " a_1 \\sum_{i=0}^{n} (x_{i}^2 - x_i \\bar{x}) &= \\sum_{i=0}^{n} (x_iy_i - y_i \\bar{x}) \\\\\n", + " a_1 \\sum_{i=0}^{n} x_{i}(x_{i} -\\bar{x}) &= \\sum_{i=0}^{n} y_i(x_i - \\bar{x}) \n", + "\\end{align*}~~~~~~(14)\n", + "$$\n", + "\n", + "Finally, we get that:\n", + "\n", + "$$\n", + "\\begin{align}\n", + " a_1 = \\frac{ \\sum_{i=0}^{n} y_{i} (x_i - \\bar{x})}{\\sum_{i=0}^{n} x_i (x_i - \\bar{x})}\n", + "\\end{align}~~~~~~(15)\n", + "$$\n", + "\n", + "Then our coefficients are:\n", + "\n", + "$$\n", + "\\begin{align}\n", + " a_1 = \\frac{ \\sum_{i=0}^{n} y_{i} (x_i - \\bar{x})}{\\sum_{i=0}^{n} x_i (x_i - \\bar{x})} \\quad , \\quad a_0 = \\bar{y} - a_1\\bar{x}\n", + "\\end{align}~~~~~~(16)\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Let's fit!\n", + "\n", + "Let's now fit a straight line through the temperature-anomaly data, to see the trend over time. We'll use least-squares linear regression to find the slope and intercept of a line \n", + "\n", + "$y = a_1x+a_0$\n", + "\n", + "that fits our data.\n", + "\n", + "In our case, the `x`-data corresponds to `Year`, and the `y`-data is `Value`. To calculate our coefficients with the formula above, we need the mean values of our data. Since we'll need to compute the mean for both `x` and `y`. \n", + "\n", + "It is good coding practice to *avoid repeating* ourselves: we want to write code that is reusable, not only because it leads to less typing but also because it reduces errors. If you find yourself doing the same calculation multiple times, it's better to encapsulate it into a *function*. \n", + "\n", + "Remember the _key concept_ from [02_Working_with_Python](../../CompMech01-Getting-started/notebooks/02_Working_with_Python.ipynb): A function is a compact collection of code that executes some action on its arguments. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exercise \n", + "\n", + "Calculate the mean of the `year` and `temp_anomaly` arrays using the NumPy built-in function, `np.mean`.\n", + "\n", + "Assign the means to `mean_x` and `mean_y`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that we have mean values, we can compute our coefficients by following equations (12). We first calculate $a_1$ and then use that value to calculate $a_0$.\n", + "\n", + "Our coefficients are:\n", + "\n", + "$$\n", + " a_1 = \\frac{ \\sum_{i=0}^{n} y_{i} (x_i - \\bar{x})}{\\sum_{i=0}^{n} x_i (x_i - \\bar{x})} \\quad , \\quad a_0 = \\bar{y} - a_1\\bar{x}\n", + "$$ \n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We already calculated the mean values of the data arrays, but the formula requires two sums over new derived arrays. Guess what, NumPy has a built-in function for that: [`numpy.sum()`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.sum.html). Study the code below." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "xi = temp_data['Year'].values\n", + "yi = temp_data['Value'].values\n", + "\n", + "x_mean = np.mean(xi)\n", + "y_mean = np.mean(yi)\n", + "\n", + "a_1 = np.sum(yi*(xi - x_mean)) / np.sum(xi*(xi - x_mean)) " + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.01037028394347266\n" + ] + } + ], + "source": [ + "print(a_1)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "a_0 = y_mean - a_1*x_mean" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "-20.148685384658464\n" + ] + } + ], + "source": [ + "print(a_0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### Exercise\n", + "\n", + "Write a function that computes the coefficients, call the function to compute them and compare the result with the values we obtained before. As a hint, we give you the structure that you should follow:\n", + "\n", + "```python\n", + "def coefficients(x, y, x_mean, y_mean):\n", + " \"\"\"\n", + " Write docstrings here\n", + " \"\"\"\n", + "\n", + " a_1 = \n", + " a_0 = \n", + " \n", + " return a_1, a_0\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "def coefficients(x, y, x_mean, y_mean):\n", + " \"\"\"\n", + " Write docstrings here\n", + " Arguments\n", + " ---------\n", + " ??\n", + " Returns\n", + " -------\n", + " ??\n", + " \"\"\"\n", + " # your code here\n", + " \n", + " return a_1, a_0" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now have the coefficients of a linear function that best fits our data. With them, we can compute the predicted values of temperature anomaly, according to our fit. Check again the equations above: the values we are going to compute are $f(x_i)$. \n", + "\n", + "Let's call `reg` the array obtined from evaluating $f(x_i)$ for all years." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "reg = a_0 + a_1 * xi" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the values of our linear regression, we can plot it on top of the original data to see how they look together. Study the code below. " + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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//137ebmpr/66iuttdZRUVH6ueeeKzH+Ll266HfeeafE7YW/X/PmzdPu7u760KFD9rITJ05oT0/PAjEb+Z45iqN+L6pKfHy8q0OoMaSujJF6Mk7qyjijdQX8rCuR98iAESdQSpX4mD9/vn2/+fPno5SiYcOGxe6bX2hoaInnnDBhQlW/RQYOHFjgdefOnTl58qT99YYNGxgwYAANGzYkOzub7Oxs/Pz8CA0N5eeff7bv9/XXX9O7d28aNWqEh4eHvf/c77//XuD8kZGReHl5GYqt8L7p6els2bKFu+++2x5LdnY24eHheHp6smPHDgC2b9/OgAEDCvRJHDp0aLHXCA0NJSgoqEDZhg0biImJwc3NzX6Ntm3bEhISYn/P3bt356OPPmL27Nn8+uuvWH+Hr+nevTtz5szh/fffL1IHxdm2bRu33HIL7dpdm0CgZcuW9OnThy1bthTYt6zvmRBCCCGJoaiQxo0bF3hdr149rly5Yn997tw5li1bhqenZ4FHfHw8J06cAKyJ2NChQ2nZsiWLFy9my5YtbN26FaDAuQACAwMNx1Z43wsXLpCTk8MTTzxRIJb69euTlZVljycpKYlmzZoVONbLy4sGDRqUeY289zxr1qwi7/nw4cP2a0ybNo0nn3yS999/n5tuuolWrVrxr3/9y36Of//73wwfPpwZM2Zwww03cP311/PppyUvPnT69OliYwkMDOTChQsFysr6ngkhhBDSx9AJCrcClWTChAlMmDCB1NTUAn3BipPXqlVT+Pv7M3ToUF5++eUi2/Le64oVK2jWrBnLli2zt5AeO3as2PMVbkEtTeF9GzdujFKKuLg4hgwZUmT/Fi1aABAUFMTZs2cLbLty5QppaWmG4vH39ycmJoZx48YV2ZY3YMTLy4sZM2YwY8YM/vjjDz744AOeffZZbrjhBgYPHkzjxo155513eOedd/j111+ZPXs2999/P926daNz585Fznvdddexd+/eIuVnzpyhSROZa14IIUT5SGIonCIyMpLPPvuMLl26lDhdTEZGBp6engWSrKVLlzo8Fl9fX3r27MmBAwd45ZVXStzv1ltvZeHChQWmuPnyyy8NXycyMpI9e/bYb/uX5frrr+eNN97gvffe47fffmPw4MEFtnfr1o05c+awdOlS9u/fX2xieNttt/Hxxx9z5MgR2ra1zi2fmJjIjz/+yNSpUw3HLoQQQoDBxFAptRn4APhMay3zW9QyV69etY/Mza9fv34VPudzzz3HkiVLuOOOO5g4cSLBwcGcOXOG7777jvDwcEaNGsWAAQOYO3cuzz77LNHR0fz4448sWbKkMm+lRLNnzyYyMhI3NzdMJhN+fn4cP36c1atX8+qrr9KxY0eeffZZ3nvvPaKjo5k0aRJJSUm8/vrr+Pj44OZWdq+LuLg4wsLCiIqKYuzYsTRt2pTExETWr1/PmDFjiIiIICYmhtDQUG6++Wa8vb0xm81kZ2fTt29fAMLDw4mJieEvf/kLSikWLFiAr68vYWFhxV5zzJgxzJo1izvvvJMZM2bg7u5un9Lm4YcfdmgdCiGEqP2MthhmAYuAuUqpRcB8rfV+54UlqlJqaiojR44sUh4fH1/hczZt2pStW7fy0ksvMWnSJP7880+uu+46wsPD6datGwBDhgxh1qxZvPvuuyxYsIBevXrx1Vdf0bFjxwpftyTh4eFs2rSJ6dOnM3r0aHJycmjTpg2DBw+299ELDg5m9erVPPPMM4wYMYJOnTrxn//8xz6IpiwdO3Zk69atTJs2jQkTJpCRkUFwcDCRkZF06NABgN69e7Ns2TLmzJlDbm4unTt3xmKx0KNHDwB69erFRx99xNGjR3F3d+fmm2/m66+/LnFS6/r167Nhwwaee+45HnnkEbTWREREsHz5cvz9/R1Ue0IIIeoKZbQ/nFLqBuBR4EGgCfA9MA9YrrXOclqELtajRw+dfxRtfvv27aNTp06VvoaRPobCqqrr6ocffuD2229n48aN9O/fv8qu6wiu+rly1O9FVUlISCAiIsLVYdQIUlfGSD0ZJ3VlnNG6Ukrt0Fr3qOh1DPcx1FofAJ5TSk0F7gYmAJ8A55RSC7G2Ih6uaCBCVAcvvPACN998M0FBQRw4cICZM2fSrVu3St1WF0IIIWqKcg8+sfUxXKyU2gu8BfQFngcmK6VWABO11kmlnUOI6iozM5MpU6Zw5swZ/Pz8GDhwIG+99ZahPoZCCCGqj3ff3cWpU5eLlLdo4cvEid1dEFHNUK7EUCnlDYwCHgNCgf3AM8DnQDQQBywFIh0apRBVZO7cucydO9fVYQghhKikU6cuExxcdB7axMSiU5CJa4yOSu6KtX/h/YAv8AXwgtY6/+iEBUqpJKxJohBCCCFEjSCti9cYbTH8P+AUMBdrX8LTJex3ENhSwjYhhBBCiGpHWhevMZoYjgRWaq1zSttJa70PqFlDNytJa12uVTmEqM2MznIghBCiejLUo15rbSkrKayLPD09ycjIcHUYQlQbeavZCCGEqJlKbDFUSpW8dlhRWms90wHx1CjNmzcnMTGR4OBgvL29peVQ1FlaazIyMkhMTLRPGC6EEM5WWt/AFi18i70V3KKFb1WEVmOVdis5rhzn0UCdSwzzVsM4deoUWVkVn+P7ypUreHl5OSqsWk3qyriqritPT08CAwMNrRIjhBCOUFrfwNde6+OCiGq+EhNDrbVM3GZAw4YNK/2PMCEhgZtvvtlBEdVuUlfGSV0JIYQx0rp4TbknuHYFpVRL4AWgB3AT4A201VofNXCsm+3YR4Eg4AAwQ2ttcVrAQgghhKgx6tqUNKWpEYkh0AHrMnw7sK7RPLAcx84EJgMv2Y6/F/hcKXWX1nqNowMVQgghRN1R2+ZANJwYKqUmAI8DNwD1C2/XWrs7MK7CNmmtA21xjMNgYqiUao41KXxda/2GrTheKdUBeB2QxFAIIYQQhhVOBHfuTMbHxxM/P0/CwoLs5TV1DkSjK588CLwLLMJ6K/c/gCcwFDiLdRk8p9Fa51bw0EFAPWBJofIlwH+UUm211kcqFZwQQgghXMIVfQMLD3jZv/8Cfn71SE296rRrViWjLYbPAq9hvS07Dnhfa71TKdUESADOOye8SusCZGJdkSW/vbavnQFJDIUQQogaqCbeqq3ujI48vh7YBOTaHvUAtNYXgFeBZ5wSXeX5A3/qossxpOTbLoQQQgghMN5imAG4aa21UioJaAdstW1LA1o4IzgHUFjnWCyuvOSDrP0pJwAEBgaSkJDg+MjySUtLc/o1agupK+OkroyRejJO6soYqSfjamJdJSWdJyvrWvqUlpZBTo4bGRm5HD161F5+/ny2Q99bVdWV0cRwN9aRwRuwjgr+m1LqCJCNdSLs/U6JrvJSgCZKKVWo1bBJvu1FaK3nA/MBevTooSMiIpwaZEJCAs6+Rm0hdWWc1JUxUk/GSV0ZI/VkXE2sq3XrNhfoY3jmTBJpaVm4uWXh6dnUXn7LLb5ERDjuVndV1ZXRxHA+1lZCgJexJog/2F6nAsMdHJej7MU6gro9BfsZdrZ9/a3KIxJCCCFqsdo2fUthhQe8tGzZwF5eG96focRQa70s3/ODSqkuQC/AB/hRa33OSfFV1lrgKnA/8Pd85Q8Ae2REshBCCOFYpS1TVxvUhuSvNBWa4FprfRlrq2GVUUqZbE9DbV/vVEqdBc5qrb+z7ZMNLNJaP2KLM1kp9TYwVSmVCuwE7gHuAIZVZfxCCCGEKF1tb22sCcqVGCqlWgGtAK/C27TWGx0VVAk+L/T6fdvX74AI23N32yO/l7AOkHmGa0vi3a21XuWcMIUQQghREbW9tbEmMDrBdTusk1iH5RXZvmqujfx15sonaK1LHUlc0j5a6xzgH7aHEEIIIYQogdEWw/8FWmOd6Ho/1n57QgPjg5QAACAASURBVAghhBDVgjNvQ9elW9xGE8NbgTFaa4szgxFCCCFEzeaKZerAsbeha/t6yKUxmhieRFoJhRBCCFGG2tCCVtvXQy6N0cTwn8ALSqmNthHJQgghhBAOVbi1cd++FDIysvH29mDq1M0F9qsNCWh1ZHQew8VKqRuBo0qprcCForvohxwenRBCCCHqjMLJ3tSpm50ySrku9RksL6OjkscAU4Ec4BaK3lYubj1iIYQQQohqR6bFKZnRW8l/B1YAj2it/3RiPEIIIYQQ5VbWoJf8rYQ7dyazf7/15mfhASXFadDAk9TUq6SnZxW4hrMH1LiC0cQwAHhfkkIhhBBCVEdl3QLO30qYN5gEKHZASW1fD7k0RhPDH4BOwLdOjEUIIYQQwuVqe/JXGqOJ4TPAZ0qpC8Baig4+QWud68jAhBBCCFG3uWpOxLrMaGK4z/b14xK263KcSwghhBACcM0I4bw+g0CBfoOScBpP5mYgI4+FEEII4WCuGCF8220FVy957bU+TrtWTWN0HsM4J8chhBBCCOE0clvamHLf/lVKNQCaACmyCooQQgghqkplbjvX5QEl5WE4MVRKDQJeBboDCtBKqZ3AS1rr9U6KTwghhBA1WGnJXNeu5TuXTEztfEZXPhkErAYOAjOBJOA64B5gjVJqiCSHQgghhCistGSuvImhcD6jLYZxwDfAXfmnpVFKzQC+wroyiiSGQgghhCgX6ftXvRhNDG8CRhaeq1BrnauUeh/4zOGRCSGEEKJacOaUMtL3r3oxmhhmAg1L2OZn2y6EEEKIWkj69tUdRhPDBGCmUmqr1vpIXqFSqjXW28zxjg9NCCGEEOIaue3sfEYTwxeAzcABpdRW4DQQBPQE/rRtF0IIIYQooPRk7s9ynaum3nZOT0/nypUr+Pv7uzqUMhmd4Pp3pVQ34K/A7cAtQArwL+BtrfVp54UohBBCiJqqtGQuISGh6gKpYpmZmaxYsQKLxcKaNWt46qmnmDVrlqvDKpPheQxtyd9kJ8YihBBCCFFjXb16lXr16gGQk5PDI488Qnp6OgBHjhwp7dBqo9wrnwghhBCibpG+fSU7f/48X375JWazme3bt3PixAnq16+Pj48PU6ZMoXHjxowYMYLWrVu7OlRDyrPyyUPAKKA14FVos9Zat3dkYEIIIYSoHmpq3z5nSU5Ott8m3rhxIzk5OQC4ubmxY8cOevfuDUBcXJwLo6wYoyufvIx1Eus9wC5kehohhBBC1EHHjh2jXbt25OZap3Z2d3dn4MCBmEwmhg0bRvPmzV0cYeUYbTF8BPiX1nqSM4MRQgghhKgujh8/zvLly9m7dy8LFiwAoE2bNnTt2pXg4GBMJhNDhw4lICDAxZE6jtHEMABY5cxAhBBCCCFc7dChQ1gsFiwWC9u2bbOX/+1vf6Nt27YA7NixA3d3d1eF6FRGE8PvsC6Lt9GJsQghhBCiBnLmknlVZf/+/dx333388ssv9jIfHx+ioqKIjY0lMDDQXl5bk0Iwnhg+CyxXSp0H1mCdw7CAwusoCyGEEKJuqGlL5mmt2bt3L3/88QcxMTEAtGzZkn379uHn50d0dDSxsbEMHjwYHx8fF0dbtYwmhr/bvi4sYbsux7mEEEIIIaqU1ppdu3ZhNpuxWCwcOHCAxo0bExUVRb169WjQoAHfffcd3bp1w8ur8OQrdYfRZG4G1uRPCCGEEKLGOHbsGO+99x4Wi4XDhw/bywMCAoiJiSE1NdU+eCQsLMxVYVYbRpfEi3NyHEIIIYQQlZabm0tycjJBQUEAXLx4kTlz5gAQGBjIiBEjMJlM9O3bFw8PudlZmNSIEEIIIapM/oEqSUnnWbduM1C5gSrZ2dl8//33WCwWli9fTuvWrdm6dSsAXbt2Zfr06URGRtK7d+9aPXDEEcqz8kk94E7gBopf+WSmIwMTQgghRM1QniXz8g9UycrysD8v70CVrKws4uPjMZvNrFy5krNnz9q31a9fn8uXL+Pr64tSqkauQOIqRlc+aQH8AIRg7WuobJvy9zuUxFAIIYSog1wxJY3ZbOa+++6zv+7QoQMmkwmTycQtt9yCUqqUo0VJjLYYzgHOAn2B48BtttdjgXuAgU6JTgghhBB1WkZGBuvWrcNisdCsWTPeeustAKKioujevTvR0dGYTCa6du0qyaADGE0MbwcmA6dsr3O11keBV5RS7sA7wDDHhyeEEEKIuuby5cusWbMGs9nM6tWruXzZ2icxICCA2bNn4+HhQcOGDQtMRi0cozxL4p3SWucqpS4DTfJt2wg85fDIhBBCCFEpNXFFkiVLljBhwgQyMjLsZaGhoZhMJmJjY2UksZMZrd2TQFPb80NYbx1vsL0OA644OC4hhBBCVFJ1XJEk/0CVU6f+ZP/+z/Hy8qNfv0EAdO7cmYyMDHr27InJZGLEiBH2NYqF8xlNDOOBfsBK4EPgPaVUdyALGGQrE0IIIYQo1ahRLVm5ciUWi4X169eTk5NDeHg4Eye+AMDNN9/MyZMnCQ4OdnGkdZPRxHAa4A+gtZ6nlPLAOujEB5iNdWUUIYQQQohirV27ljfeeIOEhARycnIAcHNzIzIykrvvvhutNUoplFKSFLqQ0ZVPzgHn8r1+F3jXWUEJIYQQomY7efIkOTk5tGnTBoDk5GS+/fZbPDw8GDx4MCaTiaZNmzJsmIxdrU6kB6cQQghRQ1W3wSVHjx7FYrFgNpvZunUrjz76KB988AEAQ4cO5aOPPmLo0KE0aWIdw5qQkFDlMYrSSWIohBBC1FBlDS4pz4okFXXo0CE+//xzzGYzO3bssJd7e3uj9bV1MBo3bsxDDz3ksOsK55DEUAghhKil8rca5m9dPHXqMlOnVnyN4pycHPuawx9++CFz5swBwNfXl7vuuguTycSdd96Jr6/jElBRNWpMYqiUagW8DQzAuiTfBuBZrfVxA8fqEjbdrLXe5bgohRBCiOqpMlPXaK3ZvXs3ZrMZs9nM448/zsSJEwG45557OH36NCaTiYEDB+Lt7e3w2EXVqRGJoVLKB+tE2pnAQ1jXaP4HEK+U6qa1LtrBoqiPKDqtzu+OjFMIIYSoLbTW7Ny5054MHjx40L5t3bp19sQwNDSUxYsXuypM4WDlTgyVUg24thJKluNDKtZ4oB1wg9b6oC2OX4E/gEeBtwycI1FrvdV5IQohhBC1x8MPP8yiRYvsr5s1a0ZMTAwmk4mIiAjXBSacynBiqJS6C+t8hTdhbbELA3Yqpf4X2Ki1/sQ5IQIwFNialxQCaK2PKKU2Y12j2UhiKIQQQtQqjhhckpubw6ZNmzCbzYwaNYpevXoB0LdvX7755htGjBiByWTi9ttvt/crFLWXocRQKTUcsADfAi9gndQ6zxGst3edmRh2Ab4opnwvMNLgOR5XSk0BcoCtwHSt9fcOik8IIYSwK2saGUdNM1PRKWlycrI5eHAHu3Zt4JdfvmX27BQAcnNz7Ynh6NGjGTNmDG5ubhW6hqiZjLYYTgcWaq3H2VY9yZ8Y7gGecHhkBfkDF4opTwGaGDh+CfAVcApoA0wBNiqlBmitExwVpBBCCAFlD/RwxRrGea2LmzbN55dfviAj46J9W7t27YiNjWXUqFH2Mk9PT6fFIqovo4lhJ+B52/PCI3wvYO1z6GzFjSxWhg7UenS+l98rpb7AmtD+AwgvclKlJgATAAIDA50+AWdaWppM8mmQ1JVxUlfGSD0ZJ3VlTFpaGklJmWRlFf0Xe/58NgkJCSQlnS91u6NcvXqVn3/+mc6dO9O1a2O6doWDB9P58ceLtGrVin79+tG3b186dOiAUoqLFy9W6fdYfqaMq6q6MpoYXgKalrAtBDjrkGhKdgHbWs2FNKH4lsRSaa1TlVKrgUdK2D4fmA/Qo0cP7exOtgkJCdKR1yCpK+OkroyRejJO6sqYhIQEgoKaFNsi6OmZRkREH9at21zq9spIT09n7dq1mM1mvvrqK1JTU5k3bx7Dhw8HICQkhLi4ODp37oxShtpXnEZ+poyrqroymhiuB6Yqpb4GUm1lWilVH3gK+NoZweWzF2s/w8I6A79V8JyK4lshhRBCiBrHbDazbNky1qxZQ3p6ur28e/fuNGrUyP46JCTEBdGJmsJoYvgSsA04AKzBmlC9CHQDGgHDnRLdNV8Cbyil2mmtDwMopUKAPrY4ykUp1RCIAn5yYIxCCCFElbl48SJ+fn72wSHz589n/fr1AISFhREbG0tsbCzt27ev0Pmr2zrMomoYSgy11keVUrcAfwcGYR3Z2xdYC7yitT7lvBABWIC1ZfILpdQ0rInpTOAE+SatVkq1AQ4BM7TWM2xlk4EbgHiuDT6ZDAQB9zs5biGEEHVQWdPIVHSamZSUFL744gvMZjPr169n48aNhIdbu8pPnDiRIUOGMGLECFq3bl3p9+CKATLC9YxOV9MIOKu1LrZPnrNprS8rpe7AuiTeYqy3gb/FuiRe/p9QBbgD+cfWHwBibI9GWPtLbgYe0Vpvq4LwhRBC1DFltaiVp8UtOTmZlStXYjabiY+PJzs7GwA3Nzd++eUXe2IYHR1d8YCFsCkzMbRNT3Mea2K1yukRlcC2JnJsGfscpdBIZa31KlwYtxBCCFFRWmtuvfVWjh8/DoC7uzsDBgzAZDIxfPhwmjdv7uIIRW1TZmKotc5WSp3BevtYCCGEEE5w/PhxLBYLK1aswGKx0KxZM5RSjBw5kn379mEymRg6dCgBAVUxQ5yoq4wOPlkCjMM68EQIIYQQDnDo0CEsFgsWi4Vt2671blq5ciXjx48HYM6cOfZpZawDQvYXOY8MCBGOYjQxPArcp5TajnVputMUmupFa/0fx4YmhBBC1E5ZWVn07t2bn3/+2V7m4+NDVFQUsbGxDBkyxF6ef67BqhwQ4oh1mEXNYzQxfM/2NRgILWa7BiQxFEIIIQrRWrN3715Wr17NlClTcHNzw9PTEz8/P/z8/IiOjsZkMjFo0CB8fHwqdS1HTjEjLZB1k9HEsK1ToxBCCCFqEa01u3btwmw2Y7FYOHDgAAB9+/alV69eAHz00Uc0b94cLy8vh11XppgRlWV0HsNjzg5ECCGEqOnS0tL48MMPeeSRRzh8+LC9PCAggOHDhxdYgcQRcw0K4WhGWwyFEEIIUUhubi779u2jSxfrqq3e3t6sW7eOCxcuEBgYyIgRI4iNjaVfv354eMi/XFH9GZ3g+ghlrCustW7nkIiEEEKIaiw7O5vvv/8ei8XC8uXLOXv2LGfOnMHf3x93d3eefvppIiMj6d27N+7u7g69tgwIEc5m9OPLdxRNDAOA3kAasNGRQQkhhBDVSVZWFvHx8fZ5Bs+ePWvf1qZNGw4dOoS/vz8AERER3H777U6Jw5kDQsozcEXWUa69jPYxHFNcuVKqMdb1kjc4MCYhhBDC5bTW9qlizp07x+DBg9Ha2kbSoUMHTCYTsbGxhIaGFphSxpUq06JYnoErMsil9qpUhwet9Z9KqTnAq8AnjglJCCGEcI2MjAy++eYbzGYzv/76K7t27UIpxXXXXcdDDz1Eq1atMJlMdO3atdokg/lJa52oLEf0hL0CtHTAeYQQQogqd/nyZdasWYPFYuGrr77i8uVrt0h3795Nt27dAFi4cKGrQhSiylQ4MVRKeQB/AeKAvY4KSAghhKgqe/bsISwsjIyMDHtZjx49iI2NJTY2luuvv96F0QlR9YyOSs6l5FHJl4Aoh0UkhBBCOMGFCxdYtWoVx44d4+WXXwbgxhtvxM/Pj+7du9uTwZCQENcGKoQLGW0xnEHRxPAKcAz4Wmt90aFRCSGEEA5w7tw5Vq5cicViYcOGDWRnZ+Pp6cnTTz9No0aN8PDw4ODBg/j5+bk6VJcrz8AVmTan9jI6KjnOyXEIIYQQDrN7924mTZpEfHwCubk5ACjlRps2odx4Y38WLNjL5Mm9ASQptCnPwBUZ5FJ7Gb2VvBF4Qmu9v5htHYEPtNZ3ODo4IYQQwoiTJ09y7Ngx+vTpA4C/vz/ffvstbm7udOrUh+7dI+naNQI/P+tcgzVpWhWZM1BUJaO3kiOAhiVs8wP6OSQaIYQQwqCjR49isVgwm81s3bqVdu3acfDgQZRSBAcH8+WXX7Jxowft27dweiz5k7ekpPOsW7cZcEzyJnMGiqpUnlHJJQ0+aY919RMhhBDCqRITE1m8eDFms5kdO3bYy729venevTtpaWn2W8PR0dH8+OPmKokrf/KWleVhf16dkzdpiRTFKTExVEo9DDxse6mB+Uqp1EK7eWOdsuZb54QnhBCirrt8+TK+vtZBDXv37mXq1KkA+Pr6ctddd2Eymbjzzjvt+whjpCVSFKe0FsNcIMf2XBV6nec8MA+Y5fjQhBBC1EVaa3bv3o3ZbMZsNtOxY0dWrlwJQP/+/Rk3bhx33XUXAwcOxNvb28XRClG7lJgYaq0XAYsAlFLxwOPFDT4RQgghKktrzc6dO+3J4MGDB+3bLl68SFZWFp6ennh6erJgwQLD55VpVYQoH6PT1fR3diBCCCHqrg8//JDHH3/c/rpZs2bExMRgMpmIiIjA09OzQuetDX3lJLkVValcS+IppW4CbgC8Cm/TWn/sqKCEEELUTjk5OWzevBmLxUJISAiTJk0CYMiQIbRo0cKeDN5+++24u7u7OFrj8idv589n4+mZZi+vrNqQ3Iqaw+g8ho2B1UDPvCLb1/wjlSUxFELUejKSs2Ql1U1gYH26dr2I2WxmxYoVnDlzBoCOHTvy7LPPopSidevWnDx5EqVUkeNdpTzf6/yvExISiIjo4/T4KktaIkVxjLYY/hMIAPoC3wMxwEVgLNALuNcp0QkhRDUjIzlLVlzd/PTTl/zrX2+SkXFt5dR27doRGxuLyWQqsG91Sgqh9n+v6/oHGVE8o4nhIODvwFbb65Na6x1AglJqHvAM8KAT4hNCCFFDZGdnsnv3Dho0aEzbtjcB0KBBEzIyLtKxY0dMJhMmk4nu3btXuyRQCGFlNDG8Djistc5RSl3ButpJnuXApw6PTAghRLWXnp7O2rVrMZvNWCxfcPVqOjfdFMm4cW8CcMMNPXnkkY9ZsOABSQaFqAGMJoZJQGPb82NYbx8n2F53cHBMQgghqrkNGzbw4YcfsmbNGtLT0+3lLVveSLt2125Renh40qxZO0kKhaghjCaGP2BNBr8CFgPTlVIhQDbwEPClM4ITQoiKqu2DRKr6/V28eJGLF6/1E/zll18wm80AhIWFYTKZOHy4DV263ODwawshqo7RxPDvQN4q5HOwDkS5B/DBmhROdHxoQghRcc4aOFBdRnJWxcCIlJQUvvjiCywWC9988w333Xcfw4YNA+Duu+9my5YzBAX1olGjIFJS4PTpFA4fPoy3twedOvnbz1NTR7lWl++1EFXJ6ATXh4BDtudZwF9tDyGEqFNqQ2tjaZKTk1m5ciVms5n4+Hiys7MBcHNz49y5c/b92rRpww03xBRITvOeJyam8dpr1X+6lrKU9b0uqdX26tWLREQ4KSghnKzMxFApVQ9rH8MxWmu5ZSyEELXYlClT+Phj67S07u7uDBgwAJPJxPDhw/ntt99cHF31UlKr7Y4dSS6IRgjHKDMx1FpfVUplA1eqIB4hhBBV4Pjx4yxfvpx3311Et26x3HijdeXTjIyutG/fi9tuG8Q77zxFQECA/RhJDIWo/Yz2MVwJmIBvnBiLEEIIJzp8+DAWiwWz2cy2bdvs5U2aBBEZGQ1AcPAA+vYdQGJiWoGkUAhRNxhNDL8G3lFKmbEmiacpuBweWuuNDo5NCCEqrLYPHCjv+xs9ejRLliyxv/bx8SEqKoqrV/9CePj/OC3O6q62j14XoryMJoYW29cRtkcejXXdZA3UnNXOhRC1Xnn+qdfE5KCkuLTW7NmzB7PZzP3338/1118PQOfOnfHz8yM6OprY2FgGDx6Mj48PU6duxsurYslybUi+a/uyd0KUl9HEsL9ToxBCCBeq6cmB1ppdu3ZhNpsxm838/vvvAHh4eDBt2jQAnnrqKSZNmoSXl1eFr7Nq1UXWrdtcpLw6J9DOVFJi7O9v9F+rENWP0elqvnN2IEII4SyltQh27VrxY6tDMjRz5kwWLlzIkSNH7GUBAQEMHz6c/v2vfab38/Mr7vBySUnJJjS05ibQjlbS9z8hIaFIWXX/ORIiT7k+1iilmgI9sU5wvUprnaKU8gKuaq1znRGgEEJUVmktgmUlhtWpNTE3N5ctW7Zwyy234O3tDcD+/fs5cuQIgYGBjBgxgtjYWPr164eHh7E/77XhdnBVqUxyV51+joQojaG/HMq6yOVsrCuc1MPap/BWIAX4AuuSeTOdFKMQQtRZOTk5fP/995jNZpYvX87p06dZvnw5MTExgHXewccee4zevXvj7l7+rt7SWmWcJHeiLjDaYjgVeAqYAawHfsq3bRUwGkkMhRC1xE8/JZGWlkV6ehYA+/dfAMDPz5OwsCCnX19rzYYNGzCbzaxYsYKzZ8/at7Vp04aMjAz76+7dJbGrjOrYYiq3nYUrGU0MxwEztNavKaUKfyQ9CLR3bFhCCFF1CicHycnp+Ph4EhjoQ2pqFn5+9QBITb1arvMW/ge/b18KGRnZxa4l/NhjXfD09ARAKcXkyZP59ddfAejQoQMmk4nY2FhCQ0Ox3sQRjlAdEy1pmRSuZDQxDAa2lrDtKiCdUYQQNVbh5GDq1M32f8zffnuiwuct/A9+//4LBAb6kpp6leDgBly9eoX9+7ewatVaXn55K9u2baNjx46AdRTxiRMnMJlMdO3atcqSwdJaq/z9Papd61ptULjOd+5MZv/+C1XWQi1EfkYTw0TgL0B8MdtuAo4UUy6EENVC4RbB/C13SUlX7VOwFHerrkEDT3tLYXp6lv08FU2GsrKukJi4hYULf2Hv3u/JzEy3b4uPj7cnhuPHj6/Q+SurtNaq6OhGRET0cUFUNV9pt6yL+wDh51ev3C3UQjiC0cTwc+AVpdROrrUcaqVUR+CvwHxnBCeEEI5QWovg0aNH7c+L+8d9223XWmwSE9N47bWKJ0a5uTmsWPEQmZkX7WWtWnWmXbvbWbDgr/bJqEX1VJn+iKXdsp46tejckEK4itHEMA7oDWwCjtnKPgdaAT8Crzs8skKUUq2At4EBWFdb2QA8q7U+buBYL6yDYx4AGgO7gBe01pucF7EQoi67cOECu3d/zdq1P/Hgg6/i6VkfNzd3goK6c+lSEv36RXHTTZE0bRpMYmKaJIXl4KrBGdWxP6IQjmZ0gusMpVQEcB8wCOuAk/NYk62lWutsp0UIKKV8gI1AJvAQ1uly/gHEK6W6aa2L/oUo6P8BUcAU4DDwJLBOKdVLa73LeZELIWqiirYMnTt3jpUrV2KxWNiwYQPZ2dY/jWFh0XTt2g+A8PAXuHw5h8jIVo4PvI6o7YMz8rov5O+6ANKXU1QNwxNca61zgMW2R1UbD7QDbtBaHwRQSv0K/AE8CrxV0oFKqZuwJrRjtdYLbWXfAXuxTr8z1LmhC1Hz1bXpM8r7ntLS0hg+fDgJCQnk5OQA4O7uTseOYYSE3I6XVzsSE9PQWnP27BW8vT3kH74oUV73hcp2XRCiIsq78kkHIAzrKOWTwPa8RM3JhgJb819La31EKbUZGEYpiaHt2CxgWb5js5VSnwIvKqXqa60znRS3ELVCbW+hKa+TJ0+SkJDAAw88AECDBg04ffo0SikGDx6MyWRi2LBhNG3a1MWRll/praV/Ou26de3DR37VcS5FUXcZXfnEC3gf60TW+ecxzFFKLQKedHJy1QXrCiuF7QVGGjj2iNY6vVD5XqyruHSwPRdC1BH5/xGfP5+Np2fZI42PHj2KxWLBYrGwZcsWAHr37k27du0A+OSTT2jdujVLlhzj4MHLvPnmAeBAgWvWhASntBiLWwPYUeryh4+a8HMh6g6jLYZvAPcD04FPgTNAIDAKeAVIB552RoA2/sCFYspTgCaVODZvuxDCBcpqJXJWK1L+YxMSEkqcguXSpUvMmzcPs9nMzz//bC/39vbmzjvv5MqVK/aym266CYBTp36rswmOEKLmM5oY3gv8XWv9z3xlh4FXbZOuTsK5iSFYB5wUZmTGV1XeY5VSE4AJAIGBgU79lAzW/knOvkZtIXVlnCPrKinpPFlZRf9cnD+fXe5rrFp1kZQU66CMQ4cyqV/fDQBvbzc6dqwPwM6dSSQk/MnOnecJCCh63bztJZ03P39/D6KjG5UYT+F6SklJwd/f+nkxIyOD6dOnk5mZiZeXF7169aJfv36EhYXh7e1NcnIyycnJBc7nyLqqbpz5+1eeert69SI7diQV2dff36Na1LH8nTJO6sq4qqoro4lhfWBbCdt+wnpL1pkuUHzLXhOKbw3MLwVoXcKxedsL0FrPxzY3Y48ePXRERIThQCvC2mLh3GvUFlJXxjmyrtat21xsK5inZ1q5Jzxet24zoaHWc/3554kCy82FhLQqcN7yXDf/efNLTCw9xvj4eJo0aYLFYsFsNnPq1CmSk5OpV88a1+zZs2nTpg0DBw7E29vb0PtzVF1VB/lbbZOSMgkKsv7pdPSt8fLUW+Ef6/wxrlt3rdxVt+/l75RxUlfGVVVdGU0MNwADbV8LG4h1Khln2ou1r2BhnYHfDBwbo5TyKdTPsDPW5fyqYvCMEDVabescr7Vmx44dWCwWFi9eTGJion1bkyZNOHDgAF27dgXg6aedfTOkesvf9y8ry6PUycBdpS73TxTC0Ywmhm8Bi5VSvlgnts7rY3g3MAR4QCnVLm9nrfVhB8f5JfCGUqpd3rmVUiFAH+BFA8f+HesglUW2Yz2Ae4BvZESyEGWrbZ3j9+3bx6233mp/3axZM2JiYjCZTERERODp6VklcbhqJG51HAFc2z58CFFTGU0Mv7N9fRx4LF+5KrQ9jzuOtQB4CvhCKTUNa5/BmcAJ4EN7tI0enwAAIABJREFUMEq1AQ4BM7TWMwC01ruUUsuAuUopT6zrOj8OtMU6oEaIWmnVqov2NYDzqymjYx0hNzeH48d38cwzn3H8+HFWrFgBQKdOnYiIiKBLly506NCBp556Cg+Pcs3eVaLyJDiuaumqji1sdeVnUojqzuhfwoedGkUZtNaXlVJ3YF0SbzHWhPRbrEvi5f9LprAmpW6FTvEw8CrW1VIaA/8HDNZa73R27EIUVri1Zt++FDIysvH29qBTp2tdaSubwKWkZJfY5666yFvhASiwykNeElWRVqScnGwOHtzBrl0b+L//20hq6nn7tuPHj9O6dWuUUsTHxwPWfjuOSgrBcQlOdWzVc6Ta/v6EqKmMLom3yNmBGIjhOBBbxj5HKWa0sdY6A3jO9hDCpQq31uzff4HAQF9SU68WKK9OCVxlFJcI79yZbCgRLk+C0KKFL9u3b+Pzz6eQkXHRXh4Q0JJHHrmP2NhYWrVy/DJ0zkpwCv+c/PRTEmlpWezcmVzgejU1kaqOrZZCiHKufCJEdSAtDTVL4QQg/+CFyiz3lZmZyfr160lOTmbs2LFMnNidS5fasWzZRDp27MjIkSOJjY2le/fu2KbVcoqqSnDS0rLsI7ir8gNERSYDr2rSP1EIxzGcGCqlBmMdwNEK8Cq0WWut+zkyMCFKIi0NdVd6ejpr167FYrGwatUqUlNT8ff3Z/To0Xh6etKwYUN+//13WrVq5dRksC4xOhm4K8kHQiEc5/+3d+/hUVX3/sff30AwCUQTkIsKcr+oVEEEbLUYvHFRi5jRarX682i99frraevhsbVoPUdP1baWY7W2x+rRelAnqFCLCirUqqhAUVRAEdQiASQgJgZCSNb5Y+0kk2ESdpKZJJN8Xs8zzzB7r9l7zZfJ3t9Za+21w94S7yfAbcCn+Old9qayUiLStprSKtsaLbhvvfUWt9xyC08//TTl5XWzTo0dO5ZIJEJFRUXtlcRHHplo2tL2qbGWrkQxbY39tkfqJRBpPWFbDL+Dv/r3O865qhTWR0SSpGfPrs0++TelVTYVLbi7du2iuLiYUaNGAVBVVcXjjz8OwIQJE4hEIhQWFtbepzhdNZbUzJq1/xXlrbHf9iI2GVy5chs5OT7xz83NZMKEfoB6CURSIWxieDDwuJJCkZaLb61xzrF16xdkZ9dP5FraenPOOYe0y26/hpSUlDB//nyi0SiLFi1i/PjxvPyyT47GjBnDvffey9SpUxk4cCBQkzh03Ol44r8n5eWVgE+MOoIDtVrG/uBYu3ZnvTvkiEjqhE0MnwVOJPV3OBHZT/1bcpWweXNGcKKoazlIJx0haWmKxhKA7du3M2/ePKLRKC+88AJVVf63Z0ZGBllZWezdu5du3bphZlx99dX13t9expqmqlu2sS77A/2AaI9dr+2xTiKyv6Z0JT9hZg54jgT3J07B3U5EgP1vybVvXxZlZZVs3Vqe1BY2SY34k351dTUZGX6q0Yceeqg24evSpQtnnHEGkUiEc889lz59+tR7X3xisXLltnbxA6G1kpqm7Ke9JM2x2mOdRGR/YRNDB5RSN0l0Ism+24lIQhMn1o0vasl0J9J88eO/1q71vxUbStI+/vjj2pbB0aNHc++99wJwzjnncPbZZ3Peeefxta99jV69ejW4z0TzP+bmdlPXoohIEoVNDB8AvoK/88hadFWySIfWlPFfmzaVUVbmx7/FtuJ267aT22+/nWg0yuuvv167jY8//hjnHGZGXl4eCxYsSPXHkTR3oDvkiEjyhE0MC/BXJD+QuqqISHvRlG7LmhZcqGvF/fWvf80Pf1h3o6GcnBymT59OJBJh+vTpmmMwydprN3tLxP446d+/R73lGpMokjphE8PtwNZUVkRE0o9zjuLiD1i1ahF9+w6hXz/ftX/yySeTm5vL2WefTSQSYerUqeTk5CR13zWtSLEtSNA5W5E6Yje7kj+RthE2MfwtcJ2ZPeucq05lhUQau7dufn77vCVXZ+KcY8uW91i58mVWrXqebds+BGDYsHFEIj4xPOGEE9i2bRtZWfE3SUoejTVtWHtMmltrUm1d/SzSMmETw3xgNPCumS1i/6uSnXPu50mtmXRajd1bd8qUyrSam6+jefDBB7n55pvZsKFuEoLu3fM49tjJjB17Ru0yM0t6Uphud+toS+0xaW6tpExXP4u0TNjE8IaYf49IsN4BSgwlrahloXHV1dW8+uqrHHrooYwcORLwrYUbNmwgN7cXw4Z9lZEjCzjyyDFkZPhDSSqTNP2fiIikXqjE0DmXkeqKiLS2zt6ykCgxrq6uYvfu96iuXsW8efMoLi7muuuu4+677wbg3HPPZciQIZx00kl06aIZqiT96AehSOPCthiKSAcTmxh/8ME/eOONv/DWWy9SWrqjtszAgQPp379/7eu8vDwmTZrU6nWVxqmbPbzO/oNQ5EBCJ4bm55c4B5gE9AJmO+c+MrNTgPedc5tTVEcRSbK9e/dSWVkB+BPkm2++wMsvFwGQn9+fq6++hEgkwvHHH6+pZdKAWrpEJFlCJYZmlg/8FZgIfA7kAnOAj4BvATuA76WojtLJNN768VnrV6iD2L17N8899xzRaJQFCxYwceIVDBp0KQDjx5/FQQdlM2bM6Th3GLfeenIb11akedR6KtIyYVsMbwcGACcBb1D/zieLgR8nuV7SiTXW+rFkyZLWq0gH8MUXX7Bw4UKi0ShPPrmAiory2nXvvPMWOTn/DCZBHsWAAaMAdalJ8rTFeD61noq0TNjEcAbwI+fcq2YWP+L8Y3zSKJJWOkPLwoUXXshf/vKX2tcDBhzNmDGnM2bMaaxenZH2kyBL+5Zu4/l0YYpI+MSwB/BJA+uyAA1CkrTTkQ70O3fuZP78+RQVFXH99ddz0kl+7roZM2awfft2IpEI69cfyTHH1M021aPHltpJkBcv/pjdu/cBkJ3dlVmzXgZ0QpSOp7EfhOmWyIqkQtjEcB1wJr7bON4pwOqk1Ug6JP0ST77t27fz1FNPEY1GWbx4Mfv2+cRu8ODBtYnhFVdcwZVXXglQm+zViJ0EGdAJUTqFxo438X8jIp1R2MTwbuBuM9sFPBIsyzOzy4HvAFelonLSceiXeHJdeumlPPLII1RVVQGQkZHBaaedRmFhITNnzqwtpyuKRUSkKcJOcP0HMxsK3ATcHCxeBFQDv3TO/TlF9RPp9DZt2sS8efO46KKL6N27NwD5+fmYGVOnTqWwsJAZM2bQu3dv5sxZxV13fQB8wJYtJTz7bF2XsIiIyIGEnsfQOfdvZnYPcAbQBygBFjnnNjT+TpH9vfbaFsrKKikvr6zXfaOuZe/DDz+kqKiIaDTKsmXLAMjKyuKqq3zj/KxZs5g9ezb5+fn13hfbMltZ2bXefaYPNLZKJNk6wwVeIh1N2HkMJwErnXMfAX+MW9cDON4597cU1E86qLKySnJzuwH1x7Z19q7lO+64g7lz57JixYraZVlZWUybNo1hw4bVLuvXr1+Tt62xVdLa0u1HnhJZkfAthi8CXwZeT7BuZLBeN05NQ7oopG2tXbuWESNGkJHhb0f+zDPPsGLFCrp3787ZZ59NYWEh06ZNo0eP/cdnJpNOiCLpl8iKpELYxLCxEewHAVVJqIu0gda6KCQ+8SgvrwQgNzczqftp75xzrF69mmg0SjQaZc2aNbzyyit8+ctfBnwX8Xe/+13OPPNMsrOzD7i9+MR+5cptrF27k9zcTPr0CV8vnRBFRAQaSQzNbBAwJGbRCUG3caxs4F/wk1yLNCg+8Zg16+WECWlH5Jxj5cqVtcng+vXra9fl5+fz0Ucf1SaGp512WpO2HZ/Y+6TQT1rdlMRQREQEGm8xvAz4OeCCxxzqtxy64PU+4NupqqBIY9qqK/xA+3XO1U4V45zjnHPOobi4GIDevXszc+ZMCgsLmTx5MpmZyWs17dEjs3bS6pKSajIzy2rrJe2bhnWISHvQWGL4ALAEn/y9gE/+3o0rUwG855zbkYrKSceVrDFtbTU/YqL9VldX8dprr7B+/Z+YP38+y5cvp1evXtx991sMGTKVww7bxciRBQwYcCwZGV1Zt647Z56Z3K702Emrp0yppKDgpKRuP9U6c3KkuT5FpD1oMDEMrkD+CMDMJgMrnHM6QkmDmnJS7ygn+aqqfaxfv4JVqxbz5psvUFpaUrtu4cKFXHLJJWze/AUXXvj9/d6rE/7+lByJiLStsBNcL011RaRtJPNq1M52Ut+7dzezZ59FaWldg3le3uF861sXE4lEGD9+fLO225lbzUREpG2FnuBaOqb2kGikQyK0Z88eFi1axOLFi/nNb34DQLdu2fTtO5js7FzGjDmdMWPOwOwIbrvt5Bbtq7EEOz5Wa9bsYOXKbWRnd+Woo3rWLveJ/WctqoeIiHQ+SgylzbXXlsby8nKeeeYZioqKWLBgAaWlpQBcfPHFtWWuuuo3ZGX1qL3QpLXHNsbe2eTWW+uPJ1yyZElK6yIiIh2PEkNJa6mYmLmkpIRrr72Wp59+mvLy8trlY8eOpbCwkP79+3P44duC/RpQ14Knq3+luTTJuIi0B0oMJa3FdzXXdLVu3vxF6Hsw79q1i+XLl9fOIZiXl8eSJUsoLy9n/PjxRCIRysqOorKyJ2VlMGfOxlDbjS2jE344nTlW7WXYhIh0bkoMJWliT+pr1uxg9+59AGRnd61N0lI9bjBst/SOHTt46qmniEajLFq0CIBt27aRl5dHly5deOSRRxg+fDgDBw4EGp6QO0zXcWc74bdkzGhni5WISHvT2J1PXmjCdpxzrmm3bJBGpcMFGfFi69WSRCpVPv/8c+bOnUs0GuXFF19k3z6fuGZkZDBp0iS2bt1KXl4eAKeffnqb1bOxVrNE34n2pr2OGRURkQNrrMUwA393kxojgX7Ah8BWoC8wCCgG1qWmep1XZzq5prL7cO/ePXTrlgVAaWkpV199NQBmXRg0aDyjRhUwfPgkhg/vz8iRI1u8v2RoLPGfM2dVp+1qleZLxx+aItI2GpvguqDm32Z2LnAXcKJz7vWY5ROBR4N1Is2S7BPTjh3FvPnm86xatZjPPy/hxhvnA3DEEUcwYcJFDB8+ki99qYDu3fNq35MuCbdO4tIcnemHpoi0TNgxhr8AfhabFAI4514zs9nALcBTSa6bSGgffPABRUVFPPjgAxQXr6ld3rVrN0pKPgF8Enjqqd9OeIJsKbXIiIhIRxA2MRwOfNrAum3AsORUR6TpXnnlFU46qW4Ov8zMLIYMOZGRIwsYOvQrVFTktLir9UDd3WqRERGRjiBsYrgRuBpYmGDd1fhxh9IC8S1OK1duY+3aneTmZjJhQr82rFnzpGLcoHOOjRs3snTpUnbt2sWvfvUrAMaPH8/gwYM58cQTiUQiTJ06lZycnGbvJxG1+oXXmaecERFJd2ETw5uAP5vZ20CUuotPIsAo4OJG3ishxLc4bdpURllZJVu3ltc7ybb05NpaXZ7J2pZzjlWrVlFUVEQ0GmXdOn+d00EHHcTs2bM5+OCDyczMZP369WRkZOz3/o6WcKcDJdEiIukrVGLonJtrZtvxCeIsIBOoBN4Apjjnnk9dFTum2IRly5YSNm/OqJewTJzok5ZEtzpr7n7AJ0Y5OZn7JUbtscvz73//O5dddhkbNmyoXXbwwQdz/vnnE4lEyM7Orl2eKCmE1ku4RdozteKKSFihJ7h2zi0GFptZBnAosN05V52ymsUI9nk9vtu6H356nJudc0Uh3vsAcFmCVXc5536QzHo2RWzCUlnZlc8+60JubjdKS/e2eNuxyWBNIgiQm5sZJIXJ2U8yVVdXs2zZMnbu3MlZZ50FwMCBA9mwYQN9+/Zl5syZRCIRgNo7lDRHshJukXSiVlwRCavJdz4JksFtKahLY34B/Ai4AVgBXAg8bmZnO+f+GuL9nwJfi1tWnNwqth+xSadvhewGECoZbM2ra6uqqnjppZeIRqM88cQTbN68mWHDhjF9+nTMjAEDBrB8+XLGjBlDly5dAFiyZElS69CYpsRCLTIiItIRhE4MzWwIcAFwJJAVt9o5565IZsVi9tsHnxTe5py7I1j8opkNA24DwiSGe51zy1JRv46mNa6uffvtt5kzZw5PPvkk27bV/cYYOHAgM2bMoKKigqws/xUbN25c0vbbVE2JhVpkRESkIwiVGJrZDOBx/N1QtgEVcUXcfm9KnilAN+DhuOUPA/eb2WDn3MYU7r9V9OiRSWnpXsrLKzvc2LeKigp27NjBYYcdBsCmTZu47777ABg2bBiRSITCwkLGjRuHmbVlVUVERDq1sC2GtwBLgIudcw3NZ5gqx+AT0fVxy98Jno/GT6fTmD7BxTN5wAbgv4E7nHNVyaxoS7TW2LfWSkB3797Nc889RzQaZf78+Zx66qk88cQTAJx66qn8/Oc/Z+bMmRx77LEpTQbbqos3WV3ymjhbRERaU9jEcAjwr22QFAL0BD5zzsW3Su6IWd+YVfhxie/gu8BnArfiJ+2+Mon1bJLYhKWkZB+ZmWW1y5uqsSlZahJBgPLySkaNyq/dT1MTiwMlKV988QULFy4kGo3y9NNPU1ZWl5AVFxdTXV1NRkYG3bp1Y/bs2U3+nM3RVslTsrrkNXG2iIi0Jts/30pQyGwFvoXtf1u8Q7PTgUUhii51zhWY2R+As51zh8VtZzjwHnCpc+6hJtbh18APgBHOufcTrL8KuAqgb9++4+bOnduUzTdZWVkZPXo0/zZtDz5YQq9edTn+unUV7NlTTUVFNUOHHlS7vGfPrpxzziFN2laNkpJ9AA2uu+yyXjz22GPcc889tctHjBjBKaecwqRJk+jfv3+TP1ciLY1VUzQWi8su65Wy9yZrO60Zq3SmOIWnWIWjOIWnWIUXNlaTJ09e4Zw7obn7Cdti+BPgN2b2mnNuwwFLN+4V4KgQ5cqD5x1AvplZXKthfsz6pvpffGJ4ArBfYuicuw+4D+CEE05wBQUFzdhFeEuWLKEl+3j22ZfrtSoNGuSfm9MtvXp14lbB44/vXtt6VV7+OatXL2XVqsUMGjSa0aMvoqDgJAYOHMg//vEPIpEI5513HoMHD272Z2pIS2PVFI3FoqCg8ZbI+P+TGpmZZRQUhP8/acl2WjNW6UxxCk+xCkdxCk+xCq+1YhU2MZwN9ALWmNn77J+MOefcKWE25JwrB9aGrqHvAj4IGEr9cYZHB8/vNmFbNWoGtaXyopm0FNv1Gtt1vH79Jyxe/Fe2b1/Gp5++Sc3wzJKSTYwefREAgwcP5tVXX239SqeIxvCJiEhnEzYxrMJPKt0WngH24m+7d1PM8kuAt5t5RfI38EnhGy2vXsdV00K4ePGfWLDgv6iurrlWJ4MRIyYyZsxpHHfcqZSWtmk1RUREJEnC3hKvIMX1aGzf24IxgbPMrBRYCXwdOBWYEVvWzJ4HBjrnhgWvBwIPAXPxrY0H4S8++X/A751zH7TW50gXn3zyCfPmzWP06NH4WYKgX7+hgNGnz/EMGTKJ/PwTmD59NK+9toU33thNefnnzJr1cu02dMVs8q6G1sTZIiLSmpp855M2cgNQBnyfulviXeCcWxBXrgv1P1Mpvtv7eqAvvpVwDfA94HcprnOraWny8OGHH1JUVERRUVFtV/D555/P0KHfB2DUqC9z660vsHp1OWVllbVT3WzbVk5OTiZ9++bUGwenK2aT1w3d2RNsERFpXU1KDM0sHz/NS/ydT3DO/S1ZlUqw7Sr8XIq3HKBcQdzrHcC5qapXe9Hc5OGhhx7irrvuYsWKFbXLsrKymDZtGhdccAE1i7t2zaRr10wmTjwYqLuoZdasxBdGiIiISHoKe+eTLOB+/C3xGpqNuEuyKiWpsWbNGvLy8mrvQPLJJ5+wYsUKunfvzllnnUUkEmHatGm1l8OvWPFyY5sTERGRDiZsi+HPgALgMvyYvW8De/Bj9Q7Dd/FKCsVeIbxmzQ527/bzCmZnd+Woo/wc3/Fj+5xzrF69mmg0SlFREe+++y433XQTN954IwAXX3wxo0aNYsqUKWRnZ++3z842vk13GRERkc4ubGJYCNyMv4jjIeA159xK4E9m9jgwFViYmioK1L8Dxtq1O+nb1ydnpaV7a5fXJHGrVq3i0UcfpaioiPffr5umsWfPnvVuPzdgwAAGDBjQ4D47WzKku4yIiEhnFzYxPBJ4xzlXZWaVQGyT0f3An1CrYZuprq4mdkrGO++8k4cffhiA3r17M3PmTCKRCAUFBWRmZiZtv52tRVFERKSjC5sYlgA1TSn/BI4DXgpeHwrs3w8pKVVdXcWnn77L+vVLWbLkdQoLf0Lv3hMBuPTSSznkkEOIRCKcfPLJdO2amovPO1uLooiISEcXNmNYBozFdxcXAb8ws1xgH/CvwN9TUz2JVVW1j/XrV/Lmm09QXLyMPXt21q5bt25ZbWJ4xhlncMYZZ7RVNUVERCRNhU0M/xPfnQx+yphh+DGHXfBJ43XJr5rEu/vua3n//bqbtfTo0Y9+/b7CjBkzGThwdMILJ0RERETCCnvnk+XA8uDfpUChmR0EHOSc+zyF9euU9uzZw6JFiygqKmLWrFmMHDmSww/vTr9+x1FSsoVevU6kV6+J5OYOJicnk8zMnmze/IXG9rWQxkyKiEhn1+zBZ865CqDCzE4HfuWcOzZ51ep8ysvLefbZZ4lGoyxYsIDS4AbEw4cP54YbbuC73x3DNdf8jq5du9a7sliSR2MmRUSks0vGVQmHAMckYTud1i9/+UuWLl1KeXl57bKxY8dSWFjI17/+9dplybyiWERERCReutwruUPbs2cP5eXlTJgwgcLCQgoLCxk6dGhbV0tEREQ6GSWG7cDll1/OAw88wJFHHnngwiIiIiIpktHWFRB/BxIlhSIiItLWGmwxNLMhIbfRL0l1EREREZE21FhX8npi77PWMAtZTkRERETascYSw8tbrRYiIiIi0uYaTAydcw+2ZkVEREREpG3p4hMRERERAZQYioiIiEhAiaGIiIiIAEoMRURERCSgxFBEREREACWGIiIiIhIw5zQ3dWPM7FPgoxTv5lBge4r30VEoVuEpVuEoTuEpVuEoTuEpVuGFjdVA51zv5u5EiWE7YGbLnXMntHU90oFiFZ5iFY7iFJ5iFY7iFJ5iFV5rxUpdySIiIiICKDEUERERkYASw/bhvrauQBpRrMJTrMJRnMJTrMJRnMJTrMJrlVhpjKGIiIiIAGoxFBEREZGAEsMWMLP+ZjbHzF41s3Izc2Y2KEG5I83sQTP7OCj3npndYmbd48rlmNlNwfrdZvZPM/ufBrZ5spm9EpTbYma/MrPsVH3WlmhCnAabWdTMPjOzL8zsRTPb7wosM8sws1lm9qGZ7TGzN82ssIF9f8vM1ppZhZmtM7Nrkv8JkyeZsTKzEWZ2l5m9ZWZlZlZsZvPN7LgG9t1pY5XgPRcF29vUwPq0iVUq4mRmR5jZ/cGxp8LMNprZrQnKpU2cICXHql7B3+CG4Fi90cz+y8z2m0rEzM41s38Ex7SPzOynZtYlNZ+0ZcwsYmZFQT13B/+3t5pZbly5fDP7o5ltD+K02My+lGB7WWZ2e3CM2h3Ef1KCcqGP/e1BMuNkZieY2X3B31O5+Xziz2Y2OMF+WxYn55wezXwABcBW4K/As4ADBsWV6Q68B2wELgMmAz8BdgOPxpV9BCgHfhyUuwz4EPgA6BFT7tjg/U8CpwFXAjvjt9deHiHj1Av4BFgLfB04B3gRKAWOiiv770AF8KMgTr8HqoHpceW+FSz/96DcLcHra9s6Jq0RK+A7wFvAvwaffybwKrAHGKdY1f9exbwnD9gCFAObEqxPq1il4O9vUFD278AFwCn4Y9Uv0jlOyY4VYMDLwKfAtcG2rwNKgr9Diyk7BajCjyGbDPww+Dv9z7aOSQNxWgY8Blwc/P//APgsWJ4R8/lfAjYBFwFTgaX4efj6x23vz8H7v4U/p83Dn+PGxJULdexvL49kxgm4I/g+XRds6xvAmuD7NCCZcWrzwKXzo+Y/Nvj3lQ0cRM4Mlp8Zt/w2YB+QE7zODl7/R1y5qcH7p8QsewJ4H8iMWXZpUO74to5LM+P00+DzD4tZ1h1/kH4sZlmf4At/U9z7nwfeinndFdgGPBhX7v7gDy6zJZ8pTWJ1KDEnn2DZIfgfEf+jWNXFKu499+GTggeISwzTMVbJjhPwDPB6Y581HeOU7FgBI4L3XxX3/muC5SNjlv0DWBpX7kZgL9CvreOSIE69EyyrOQedGryeEbyeHFPmEGAH8NuYZccF5S6P+/6sA+bHLAt17G9PjyTHKdG2BuITvpuTGSd1JbeAc646RLFuwfPnccs/w3flW/C6K9ClgXIEZTGzTHyy+JhzrjKm3GP4g8iMUJVvRSHjdCLwvnNufcz7vsD/kjrbzLoGi6fgY/pw3PsfBr4U06z+ZaB3gnIP4X/xn9ykD9FKkhkr59x2FxwRYsrtwrdgHxGzuNPHqoaZnQRcAny7ge2lXaySGSczG4r/G5wTd/yJl3ZxgqR/pxo79kPdMX0AMIbEscoEpoX+AK3EOfdpgsVvBM81x5avAZudcy/GvG8XsID656mvAZXAozHl9gFzgSlmdlCwOOyxv91IZpwSbcs59xG+RTr2eN7iOCkxTL3F+Na9/zSzo82sh5mdCnwfuDc4oOCcK8UfCL5nZpODcscAtwNv4rN9gKFAFvB27E6cc3vwXc5Ht8aHSoEqfGIbrwLfmjo0eH1MsGx9XLl3guejY8pBXJwSlEtHYWO1HzPrCYzGd0HUUKyo/dF1H3B77Ek/TkeNVdg4nRQ87zazRcHYwZ3mx0L3inlfR40ThI/VO8DfgJ8F48N6mNkEfEvgQudczd9gwlg55zbihxalS6xOCZ5jP1f8/z/4uBxpZj1iym10zpUnKNcNGBZTLsyxv71rbpz2Y2ZH4Vv0EZVHAAAJFElEQVQI44/nLYqTEsMUCxK2k/Gxfgc/DuV54C/4MWCxLsd3E78QlHsb/4vxDOdczYGoZ/C8M8HudsSsTzfrgOGxJxczywAmBC97xjx/Ft8Shv/s8eVg/zjFl0tHYWOVyBx8K/VvYpYpVt71wEHAfhdRxOiosQobp8OD5/vxLc/T8HE7C3g2eE9s+Y4WJwgZq+AYNT0o/wb+mP4asAGIvRCgsWP6TtIgVmZ2BHAzsNg5tzxY3JOGz1MA+SHLNfXY3261ME7x2+oK3ItvMfzvmFUtjpMSwxQzsyx8E3kf4Jv4Xws/xg9avjuu+C34bqwfBeW+ie92WWh1VzDXdD3H/6fHrktH9+K/j/9jZkPN7DDgt0BNs3dNF48R7rM3Fqd0FzZW9ZjZLPyA5e/EtYh1+liZ2TDgBnxs9jSyvY4aq7DfqZpzxhLn3Ledcy845+7DD4gfh+/Ggo4bJ2ja398f8F3P1+CP6dcAJwDRmCQ6rY/pQYvWU/hxl5fHriL8sTqZ5dqlJMQp3n8BXwEucc7FJpYtjpMSw9S7An812nTn3MPOub855+7AXyl6jQVThwTdxv8G/NA5d2dQ7mH8L85x+IHQ0HjWnx+zPq045zbgr9wah28C34wfp/TroEhx8LwDyDez+C95fsz62Of4OPWMW592mhCrWuanCfkP4KfOufvjVitW/sT+ArDMzPLMLA/fjWXB65qpoDpkrJoQp5LgeVHcJp4LnscGzx0yThA+VmZ2Fv4q0286534fHNN/j//BPx1/NTM0fkzPox3HKmj4mA8MwV8gGTu9U0M9WDXH6p0hy8Ue08Mc+9udJMUpdnu3AlcB/+Kcey5udYvjpMQw9b4E7HTOfRC3/PXg+aiYclA3MBUA59z7+MHKNeU+wI8fOCa2XPDFGwK8m5xqtz7nXBF+EO3R+Cv+xgE9gH865z4Oir2D7+6LH0dXM27i3ZhyEBenBOXSUshYAWBm3wR+B9zpnPv3BJtTrPy66fiDcM3jInzX6U7qupc7bKya8PcHDbcEVseV63BxgtCxSnhMZ/9jf8JYmZ8/MYd2GqtgTG4Rvgt9unNudVyRd9j//x98zD52zpXFlBtsZjkJyu2lbqxc2GN/u5LEONVs7wZ8I9L3nXMPJXhfi+OkxDD1tuCz92FxyycGz5/ElIO6cSqAn6QY/6vxE4BgrOEzwAVxV1RG8F+G+cmreutzzlU559Y45z4ws8PxXe73xBR5Bn+wuDjurZcAbwcDtsHPE7a9gXI78PNBpbUQscLMZgJ/Av7onPtRA5tSrOBC/HxfsY9n8XGZjO+2gQ4eqxBxWoY/Vk2Ne2vN65okqEPHCULFKuExnbhjf5BIvkniWFUCC5Na8SQIusH/jJ9zcIZzblmCYvOBI8zslJj3HYxvKZ0fVy4TOD+mXFd8PJ9zzlUEi8Me+9uNJMcJM/sefsjZDc65OQ3stuVxSjSHjR5NmqcoEjzuwf+KvjZ4fUqwfhB+uoL3qJvg+sfBsuXUTXLZBVgF7KL+BNc1LYZHxuxzDH7yz3n4L9wV+IPt420djxbEKRPfFXMucCrwXXwXzUtAt7ht3Yaf/PWH+G76e/AtFefElbsmWH5LUO7m4PW32zoerRErYFIQp5X4sSgnxjzGKlb1v1cJtv0AiSe4TrtYJfnv77JgG/fi52m9Dt+q+iL1J21OuzglM1bAwfjkb3OwjcnB8xbgY+rftGB6EJvfB7H6/8Hf7u1tHY8GYlQTm1vijisnEkzKjG94egX4J/6H1xRgCf5cFT8h89zgO3Ql/pwWDT7/8XHlQh3728sjmXEK1lXjfyjEb+voZMapzQOX7o/gPz3RY0lMmaPx8wz+E5/QvYefxTw/blu9gDvxyeDuoPyjxEyEGlN2EnV3sdiKv8o0p63j0dw44edx/EvwWSrwXea3JPpM+CT6p8BHQdm3gEgD+706iHdFENfr2joWrRUrYHYj2/pQsTrgth8gQWKYjrFKdpzw4+TeDsoW469275GgXFrFKdmxAgbgrxjdiD9Wb8RfkHJEgrLn4VsOK/CJ441Al7aORwMx+rCROM2OKdcTfwX7DvzUO88DxyXYXjbwK3zSvAd/9XZBgnKhj/3t4ZHMOAXHowPmG8mIkwUbEREREZFOTmMMRURERARQYigiIiIiASWGIiIiIgIoMRQRERGRgBJDEREREQGUGIqIiIhIQImhiEgTmFnUzHaYWd8E6wrMrNrMvt8WdRMRaSnNYygi0gRBQvgO8KJzLvY2Xtn4iWS3AV91zlU3sAkRkXZLLYYiIk3gnNsK/ACImNm5MatmA/2Bf2mtpNDMusTdM11EpEWUGIqINJFz7mH8bdF+Z2Z5ZnY8/r6ks51z62LLmtnXzex1Mys3s51mNtfMjogrc6mZLTWzT82s1MxWmNk34spkmZkzsxvN7Gdm9hGwFxie2k8rIp2JupJFRJohSO7eAZ4AxgD7gBOdc1UxZX6AvwfsH4AngTzgZvz9Tcc458qDcj/Hd0GvD946GbgeuMI590BQJgt/D/XNwDr8/Yn3AK8750pS+VlFpPNQYigi0kxmdiU+6asExjnnVsesywM+AR50zl0Xs3wE8C7wHefcvQm2mYHvzfkTMMI5NzFYXpMYfgwMd87tTdkHE5FOS13JIiLN5Jz7I1AMPBmbFAa+CuQAfzazrjUPYEPwmFRT0MyOMrPHzGwzvuWxErgEGJlgt08rKRSRVNGgZRGRltkbPOL1CZ7/3sD7NkJty+IiYAfw42D5XoILXBK8r7gllRURaYwSQxGR1KgZ9/cN4P0E6z8Pnr8KHAGc65xbXrPSzDIb2K7G/4hIyigxFBFJjb/hxwQOcc79byPlcoLnypoFZtYHmJ7CuomIJKTEUEQkBZxzO8zs34A7zexw4FmgFN86OBlY6JyLAi8BXwC/N7ObgYOBG4Gt+HkRRURajRJDEZEUcc79Nphv8IfApUAX/JXKS4HVQZnNZlYI/BIoAjbhp7gZiB9nKCLSajRdjYiIiIgAmq5GRERERAJKDEVEREQEUGIoIiIiIgElhiIiIiICKDEUERERkYASQxEREREBlBiKiIiISECJoYiIiIgASgxFREREJPB/PPfNQsBA/34AAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10, 5))\n", + "\n", + "plt.plot(xi, yi,'s', color='#2929a3', linewidth=1, alpha=0.5,label='Measured anomoly') \n", + "plt.plot(xi, reg, 'k--', linewidth=2, label='Linear regression')\n", + "plt.xlabel('Year')\n", + "plt.ylabel('Land temperature anomaly [°C]')\n", + "plt.legend(loc='best', fontsize=15)\n", + "plt.grid();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Step 4: Apply regression using NumPy" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Above, we coded linear regression from scratch. But, guess what: we didn't have to because NumPy has built-in functions that do what we need!\n", + "\n", + "Yes! Python and NumPy are here to help! With [`polyfit()`](https://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.polyfit.html), we get the slope and $y$-intercept of the line that best fits the data. With [`poly1d()`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.poly1d.html), we can build the linear function from its slope and $y$-intercept.\n", + "\n", + "Check it out:" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "# First fit with NumPy, then name the coefficients obtained a_1n, a_0n:\n", + "a_1n, a_0n = np.polyfit(xi, yi, 1)\n", + "\n", + "f_linear = np.poly1d((a_1n, a_0n)) " + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.010370283943472659\n" + ] + } + ], + "source": [ + "print(a_1n)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "-20.148685384658457\n" + ] + } + ], + "source": [ + "print(a_0n)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " \n", + "0.01037 x - 20.15\n" + ] + } + ], + "source": [ + "print(f_linear)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The assignment `f_linear = np.poly1d((a_1n,a_0n))` creates a 1D polynomial. This means that the function only has one independent variable i.e. f(x) = (some value). You can create your own polynomial functions in a similar way using _anonymous functions_ i.e. `lambda`.\n", + "\n", + "```python\n", + "f_linear = lambda x: a_1n*x + a_0n\n", + "```\n", + "\n", + "In the line of code given above, we create the same assignment for `f_linear(x)`. One benefit of writing this out yourself is that you can see how each input is used directly. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exercise\n", + "\n", + "Use the `lambda` function to assign `f_linear` to our 1D polynomial instead of the `np.poly1d` assignment. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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//137ebmpr/66iuttdZRUVH6ueeeKzH+Ll266HfeeafE7YW/X/PmzdPu7u760KFD9rITJ05oT0/PAjEb+Z45iqN+L6pKfHy8q0OoMaSujJF6Mk7qyjijdQX8rCuR98iAESdQSpX4mD9/vn2/+fPno5SiYcOGxe6bX2hoaInnnDBhQlW/RQYOHFjgdefOnTl58qT99YYNGxgwYAANGzYkOzub7Oxs/Pz8CA0N5eeff7bv9/XXX9O7d28aNWqEh4eHvf/c77//XuD8kZGReHl5GYqt8L7p6els2bKFu+++2x5LdnY24eHheHp6smPHDgC2b9/OgAEDCvRJHDp0aLHXCA0NJSgoqEDZhg0biImJwc3NzX6Ntm3bEhISYn/P3bt356OPPmL27Nn8+uuvWH+Hr+nevTtz5szh/fffL1IHxdm2bRu33HIL7dpdm0CgZcuW9OnThy1bthTYt6zvmRBCCCGJoaiQxo0bF3hdr149rly5Yn997tw5li1bhqenZ4FHfHw8J06cAKyJ2NChQ2nZsiWLFy9my5YtbN26FaDAuQACAwMNx1Z43wsXLpCTk8MTTzxRIJb69euTlZVljycpKYlmzZoVONbLy4sGDRqUeY289zxr1qwi7/nw4cP2a0ybNo0nn3yS999/n5tuuolWrVrxr3/9y36Of//73wwfPpwZM2Zwww03cP311/PppyUvPnT69OliYwkMDOTChQsFysr6ngkhhBDSx9AJCrcClWTChAlMmDCB1NTUAn3BipPXqlVT+Pv7M3ToUF5++eUi2/Le64oVK2jWrBnLli2zt5AeO3as2PMVbkEtTeF9GzdujFKKuLg4hgwZUmT/Fi1aABAUFMTZs2cLbLty5QppaWmG4vH39ycmJoZx48YV2ZY3YMTLy4sZM2YwY8YM/vjjDz744AOeffZZbrjhBgYPHkzjxo155513eOedd/j111+ZPXs2999/P926daNz585Fznvdddexd+/eIuVnzpyhSROZa14IIUT5SGIonCIyMpLPPvuMLl26lDhdTEZGBp6engWSrKVLlzo8Fl9fX3r27MmBAwd45ZVXStzv1ltvZeHChQWmuPnyyy8NXycyMpI9e/bYb/uX5frrr+eNN97gvffe47fffmPw4MEFtnfr1o05c+awdOlS9u/fX2xieNttt/Hxxx9z5MgR2ra1zi2fmJjIjz/+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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10, 5))\n", + "\n", + "plt.plot(xi, yi,'s', color='#2929a3', linewidth=1, alpha=0.5,label='Measured anomoly')\n", + "plt.plot(xi, f_linear(xi), 'k--', linewidth=2, label='Linear regression')\n", + "plt.xlabel('Year')\n", + "plt.ylabel('Land temperature anomaly [°C]')\n", + "plt.legend(loc='best', fontsize=15)\n", + "plt.grid();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## \"Split regression\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you look at the plot above, you might notice that around 1970 the temperature starts increasing faster that the previous trend. So maybe one single straight line does not give us a good-enough fit.\n", + "\n", + "What if we break the data in two (before and after 1970) and do a linear regression in each segment? \n", + "\n", + "To do that, we first need to find the position in our `year` array where the year 1970 is located. Thankfully, NumPy has a function called [`numpy.where()`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.where.html) that can help us. We pass a condition and `numpy.where()` tells us where in the array the condition is `True`. \n" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'numpy' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mnumpy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwhere\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0myear\u001b[0m\u001b[0;34m==\u001b[0m\u001b[0;36m1970\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mNameError\u001b[0m: name 'numpy' is not defined" + ] + } + ], + "source": [ + "numpy.where(year==1970)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To split the data, we use the powerful instrument of _slicing_ with the colon notation. Remember that a colon between two indices indicates a range of values from a `start` to an `end`. The rule is that `[start:end]` includes the element at index `start` but excludes the one at index `end`. For example, to grab the first 3 years in our `year` array, we do:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "year[0:3]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we know how to split our data in two sets, to get two regression lines. We need two slices of the arrays `year` and `temp_anomaly`, which we'll save in new variable names below. After that, we complete two linear fits using the helpful NumPy functions we learned above." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "year_1 , temp_anomaly_1 = year[0:90], temp_anomaly[0:90]\n", + "year_2 , temp_anomaly_2 = year[90:], temp_anomaly[90:]\n", + "\n", + "m1, b1 = numpy.polyfit(year_1, temp_anomaly_1, 1)\n", + "m2, b2 = numpy.polyfit(year_2, temp_anomaly_2, 1)\n", + "\n", + "f_linear_1 = numpy.poly1d((m1, b1))\n", + "f_linear_2 = numpy.poly1d((m2, b2))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "plt.figure(figsize=(10, 5))\n", + "\n", + "plt.plot(year, temp_anomaly, color='#2929a3', linestyle='-', linewidth=1, alpha=0.5) \n", + "plt.plot(year_1, f_linear_1(year_1), 'g--', linewidth=2, label='1880-1969')\n", + "plt.plot(year_2, f_linear_2(year_2), 'r--', linewidth=2, label='1970-2016')\n", + "\n", + "plt.xlabel('Year')\n", + "plt.ylabel('Land temperature anomaly [°C]')\n", + "plt.legend(loc='best', fontsize=15)\n", + "plt.grid();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Discussion exercise\n", + "We have two different curves for two different parts of our data set. A little problem with this and is that the end point of our first regression doesn't match the starting point of the second regression. We did this for the purpose of learning, but it is not rigorously correct. \n", + "\n", + "How would you fix this issue? \n", + "\n", + "What would your new function, $f(x)$, look like?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## We learned:\n", + "\n", + "* Making our plots more beautiful\n", + "* Defining and calling custom Python functions\n", + "* Applying linear regression to data\n", + "* NumPy built-ins for linear regression\n", + "* The Earth is warming up!!!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## References\n", + "\n", + "1. [_Essential skills for reproducible research computing_](https://barbagroup.github.io/essential_skills_RRC/) (2017). Lorena A. Barba, Natalia C. Clementi, Gilbert Forsyth. \n", + "2. _Numerical Methods in Engineering with Python 3_ (2013). Jaan Kiusalaas. Cambridge University Press.\n", + "3. _Effective Computation in Physics: Field Guide to Research with Python_ (2015). Anthony Scopatz & Kathryn D. Huff. O'Reilly Media, Inc.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Problems\n", + "\n", + "1. There is a csv file in '../data/primary-energy-consumption-by-region.csv' that has the energy consumption of different regions of the world from 1965 until 2018 [Our world in Data](https://ourworldindata.org/energy). \n", + "We are going to compare the energy consumption of the United States to all of Europe. Load the data into a pandas dataframe. *Note: we can get certain rows of the data frame by specifying what we're looking for e.g. \n", + "`EUR = dataframe[dataframe['Entity']=='Europe']` will give us all the rows from Europe's energy consumption.*\n", + "\n", + " a. Plot the total energy consumption of the United States and Europe\n", + " \n", + " b. Use a linear least-squares regression to find a function for the energy consumption as a function of year\n", + " \n", + " energy consumed = $f(t) = At+B$\n", + " \n", + " c. At what year would you change split the data and use two lines like we did in the \n", + " land temperature anomoly? Split the data and perform two linear fits. \n", + " \n", + " d. What is your prediction for US energy use in 2025? How about European energy use in 2025?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "energy = pd.read_csv('../data/primary-energy-consumption-by-region.csv')\n", + "CAN = energy[energy['Entity']=='Canada']\n", + "USA = energy[energy['Entity']=='United States']\n", + "EUR = energy[energy['Entity']=='Europe']\n", + "plt.plot(USA['Year'],USA['Primary Energy Consumption (terawatt-hours)'],'-o')\n", + "plt.plot(EUR['Year'],EUR['Primary Energy Consumption (terawatt-hours)'],'-s')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "2. We plotted Gordon Moore's empirical prediction that the rate of semiconductors on a computer chip would double every two years in [02_Seeing_Stats](./02_Seeing_Stats.ipynb). This prediction was known as Moore's law. Gordon Moore had originally only expected this empirical relation to hold from 1965 - 1975 [[1](https://en.wikipedia.org/wiki/Moore%27s_law),[2](https://spectrum.ieee.org/computing/hardware/gordon-moore-the-man-whose-name-means-progress)], but semiconductor manufacuturers were able to keep up with Moore's law until 2015. \n", + "\n", + "We can use a linear regression to find our own historical Moore's Law. \n", + "\n", + "Use your code from [02_Seeing_Stats](./02_Seeing_Stats.ipynb) to plot the semilog y-axis scatter plot \n", + "(i.e. `plt.semilogy`) for the \"Date of Introduction\" vs \"MOS transistor count\". \n", + "Color the data according to the \"Designer\".\n", + "\n", + "Create a linear regression for the data in the form of \n", + "\n", + "$log(transistor~count)= f(date) = A\\cdot date+B$\n", + "\n", + "rearranging\n", + "\n", + "$transistor~count= e^{f(date)} = e^B e^{A\\cdot date}$\n", + "\n", + "You can perform a least-squares linear regression using the following assignments\n", + "\n", + "$x_i=$ `dataframe['Date of Introduction'].values`\n", + "\n", + "and\n", + "\n", + "$y_i=$ as `np.log(dataframe['MOS transistor count'].values)`\n", + "\n", + "a. Plot your function on the semilog y-axis scatter plot\n", + "\n", + "b. What are the values of constants $A$ and $B$ for our Moore's law fit? How does this compare to Gordon Moore's prediction that MOS transistor count doubles every two years?\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "anaconda-cloud": {}, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.5" + }, + "widgets": { + "state": {}, + "version": "1.1.2" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/notebooks/.ipynb_checkpoints/03_stats_and_montecarlo-checkpoint.ipynb b/notebooks/.ipynb_checkpoints/03_stats_and_montecarlo-checkpoint.ipynb deleted file mode 100644 index b1bea65..0000000 --- a/notebooks/.ipynb_checkpoints/03_stats_and_montecarlo-checkpoint.ipynb +++ /dev/null @@ -1,19908 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "# Statistics and Monte-Carlo Models\n", - "\n", - "Monte Carlo models use random numbers to either understand statistics or generate a solution. \n", - "The main element in a Monte Carlo model is the use of random numbers. We can generate random numbers in many ways, but most programming languages have 'pseudo'-random number generators. \n", - "\n", - "In Python, we use the numpy library as such\n" - ] - }, - { - "cell_type": "code", - "execution_count": 45, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "\n", - "x=np.random.rand(10)" - ] - }, - { - "cell_type": "code", - "execution_count": 48, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(array([2., 0., 1., 0., 0., 2., 1., 1., 0., 3.]),\n", - " array([0.13831169, 0.22124331, 0.30417493, 0.38710655, 0.47003817,\n", - " 0.55296979, 0.6359014 , 0.71883302, 0.80176464, 0.88469626,\n", - " 0.96762788]),\n", - " )" - ] - }, - "execution_count": 48, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXgAAAD4CAYAAADmWv3KAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAOnElEQVR4nO3dcYhl5XnH8e8vu5tsi1ZLdkpkXZ2UGKiRGu1glEBra1pUgvtHbVkhMYrtgsQ2aaUQUtDW/pWWJmCU2A2KGlJjYoLdBkVsY9CU7tbRqFG3wtamcVBwomaN6Jpu+vSPe9MOs3f3npm5M3d87/cDF8+557nnPPPu3d8c33vu2VQVkqT2vG3cDUiSVocBL0mNMuAlqVEGvCQ1yoCXpEZtHNeBt2zZUtPT0+M6vCS9JT3yyCM/rKqpLrVjC/jp6WlmZ2fHdXhJektK8l9da52ikaRGGfCS1CgDXpIaZcBLUqMMeElqlAEvSY0aGvBJNif5tySPJ3kqyV8OqHlHkjuT7E+yN8n0ajQrSequyxn8m8BvVdXpwPuB85OcvajmCuCVqnoP8DngM6NtU5K0VEMDvnpe669u6j8W30R+O3Bbf/ku4LwkGVmXkqQl6zQHn2RDkseAF4H7q2rvopKtwHMAVXUIOAC8c8B+diaZTTI7Pz+/ss4laQUOHmz/2J0Cvqp+WlXvB04Ezkpy2qKSQWfrh/1TUVW1q6pmqmpmaqrTrRQkaVVs3gzJeB6bN6/Nz7ikq2iq6kfAt4HzF22aA7YBJNkIHAe8PIL+JEnL1OUqmqkkx/eXfw74EPDvi8p2Ax/rL18MfKv8x14laay63E3yBOC2JBvo/UL4alV9M8l1wGxV7QZuBr6UZD+9M/cdq9axJKmToQFfVU8AZwx4/poFyweB3xtta5KklfCbrJLUKANekhplwEtSowx4SWqUAS9JjTLgJalRBrwkNcqAl6RGGfCS1CgDXpIaZcBLUqMMeElqlAEvSY0y4CWpUQa8JDXKgJekRhnwktQoA16SGmXAS1KjDHhJapQBL0mNMuAlqVEGvCQ1yoCXpEYZ8JLUqKEBn2RbkgeS7EvyVJJPDKg5N8mBJI/1H9esTruSpK42dqg5BFxdVY8mORZ4JMn9VfX0orqHqurDo29RkrQcQ8/gq+qFqnq0v/xjYB+wdbUbkyStzJLm4JNMA2cAewdsPifJ40nuTfK+I7x+Z5LZJLPz8/NLblaS1F3ngE9yDPB14JNV9eqizY8CJ1fV6cDngbsH7aOqdlXVTFXNTE1NLbdnSVIHnQI+ySZ64f7lqvrG4u1V9WpVvdZfvgfYlGTLSDuVJC1Jl6toAtwM7Kuqzx6h5l39OpKc1d/vS6NsVJK0NF2uovkg8FHge0ke6z/3aeAkgKq6CbgYuDLJIeANYEdV1Sr0K0nqaGjAV9V3gAypuQG4YVRNSZJWzm+ySlKjDHhJapQBL0mNMuAlqVEGvCQ1yoCXpEYZ8JLUKANekhplwEtSowx4SWqUAS9JjTLgJalRBrwkNcqAl6RGGfCS1CgDXpIaZcBLUqMMeElqlAEvSY0y4CWpUQa8JDXKgJekRhnwktQoA16SGmXAS1KjDHhJatTQgE+yLckDSfYleSrJJwbUJMn1SfYneSLJmavTriSpq40dag4BV1fVo0mOBR5Jcn9VPb2g5gLglP7jA8AX+v+VJI3J0DP4qnqhqh7tL/8Y2AdsXVS2Hbi9evYAxyc5YeTdSpI6W9IcfJJp4Axg76JNW4HnFqzPcfgvAZLsTDKbZHZ+fn5pnS5w8OCyX7pi4zy21s64/px9f2mUukzRAJDkGODrwCer6tXFmwe8pA57omoXsAtgZmbmsO1dbd4MGXTENVDL7lpvJeN6j/n+0ih1OoNPsoleuH+5qr4xoGQO2LZg/UTg+ZW3J0lari5X0QS4GdhXVZ89Qtlu4NL+1TRnAweq6oUR9ilJWqIuUzQfBD4KfC/JY/3nPg2cBFBVNwH3ABcC+4HXgctH36okaSmGBnxVfYfBc+wLawr4+KiakiStnN9klaRGGfCS1CgDXpIaZcBLUqMMeElqlAEvSY0y4CWpUQa8JDXKgJekRhnwktQoA16SGmXAS1KjDHhJapQBL0mNMuAlqVEGvCQ1yoCXpEYZ8JLUKANekhplwEtSowx4SWqUAS9JjTLgJalRBrwkNcqAl6RGDQ34JLckeTHJk0fYfm6SA0ke6z+uGX2bkqSl2tih5lbgBuD2o9Q8VFUfHklHkqSRGHoGX1UPAi+vQS+SpBEa1Rz8OUkeT3JvkvcdqSjJziSzSWbn5+dHdGhJ0iCjCPhHgZOr6nTg88DdRyqsql1VNVNVM1NTUyM4tCTpSFYc8FX1alW91l++B9iUZMuKO5MkrciKAz7Ju5Kkv3xWf58vrXS/kqSVGXoVTZI7gHOBLUnmgGuBTQBVdRNwMXBlkkPAG8COqqpV61iS1MnQgK+qS4Zsv4HeZZSSpHXEb7JKUqMMeElqlAEvSY0y4CWpUQa8JDXKgJekRhnwktQoA16SGmXAS1KjDHhJapQBL0mNMuAlqVEGvCQ1yoCXpEYZ8JLUKANekhplwEtSowx4SWqUAS9JjTLgJalRBrwkNcqAl6RGGfCS1CgDXpIaZcBLUqMMeElq1NCAT3JLkheTPHmE7UlyfZL9SZ5Icubo25QkLVWXM/hbgfOPsv0C4JT+YyfwhZW3JUlaqaEBX1UPAi8fpWQ7cHv17AGOT3LCqBqUJC3PKObgtwLPLVif6z93mCQ7k8wmmZ2fnx/BoSfHwYOTeexJM66xfuON8RwXfH+tpo0j2EcGPFeDCqtqF7ALYGZmZmCNBtu8GTJopNdA+Se1Zsb151zl+6tFoziDnwO2LVg/EXh+BPuVJK3AKAJ+N3Bp/2qas4EDVfXCCPYrSVqBoVM0Se4AzgW2JJkDrgU2AVTVTcA9wIXAfuB14PLValaS1N3QgK+qS4ZsL+DjI+tIkjQSfpNVkhplwEtSowx4SWqUAS9JjTLgJalRBrwkNcqAl6RGGfCS1CgDXpIaZcBLUqMMeElqlAEvSY0y4CWpUQa8JDXKgJekRhnwktQoA16SGmXAS1KjDHhJapQBL0mNMuAlqVEGvCQ1yoCXpEYZ8JLUKANekhrVKeCTnJ/kmST7k3xqwPbLkswneaz/+IPRtypJWoqNwwqSbABuBH4bmAMeTrK7qp5eVHpnVV21Cj1Kkpahyxn8WcD+qnq2qn4CfAXYvrptSZJWqkvAbwWeW7A+139usd9N8kSSu5JsG7SjJDuTzCaZnZ+fX0a7kqSuugR8BjxXi9b/EZiuql8F/gm4bdCOqmpXVc1U1czU1NTSOpUkLUmXgJ8DFp6Rnwg8v7Cgql6qqjf7q18Efm007UmSlqtLwD8MnJLk3UneDuwAdi8sSHLCgtWLgH2ja1GStBxDr6KpqkNJrgLuAzYAt1TVU0muA2arajfwx0kuAg4BLwOXrWLPkqQOUrV4On1tzMzM1Ozs7LJfn0GfDKyBMQ0XMJk/8ziNY7yrJuu4Pzv2uLwVf+Ykj1TVTJdav8kqSY0y4CWpUQa8JDXKgJekRhnwktQoA16SGmXAS1KjDHhJapQBL0mNMuAlqVEGvCQ1yoCXpEYZ8JLUKANekhplwEtSowx4SWqUAS9JjTLgJalRBrwkNcqAl6RGGfCS1CgDXpIaZcBLUqMMeElqlAEvSY0y4CWpUZ0CPsn5SZ5Jsj/JpwZsf0eSO/vb9yaZHnWjkqSlGRrwSTYANwIXAKcClyQ5dVHZFcArVfUe4HPAZ0bdqCRpabqcwZ8F7K+qZ6vqJ8BXgO2LarYDt/WX7wLOS5LRtSlJWqqNHWq2As8tWJ8DPnCkmqo6lOQA8E7ghwuLkuwEdvZXX0vyzHKaXmVbWNT3QpP4a2vAz3zUMdL/WfI4jev9Ncb39ZZk8t5Lyxjvhe+lk7u+qEvAD2qlllFDVe0CdnU45tgkma2qmXH3sZ45Rt04TsM5Rt0sd5y6TNHMAdsWrJ8IPH+kmiQbgeOAl5fajCRpdLoE/MPAKUneneTtwA5g96Ka3cDH+ssXA9+qqsPO4CVJa2foFE1/Tv0q4D5gA3BLVT2V5Dpgtqp2AzcDX0qyn96Z+47VbHqVresppHXCMerGcRrOMepmWeMUT7QlqU1+k1WSGmXAS1KjJjbgO9x+4U+TPJ3kiST/nKTztaetGDZGC+ouTlJJJvJyty7jlOT3+++np5L8/Vr3OG4d/r6dlOSBJN/t/527cBx9jlOSW5K8mOTJI2xPkuv7Y/hEkjOH7rSqJu5B78Pi/wB+GXg78Dhw6qKa3wR+vr98JXDnuPteb2PUrzsWeBDYA8yMu+/1OE7AKcB3gV/sr//SuPteh2O0C7iyv3wq8P1x9z2Gcfp14EzgySNsvxC4l973js4G9g7b56SewQ+9/UJVPVBVr/dX99C7/n+SdLlFBcBfAX8NHFzL5taRLuP0h8CNVfUKQFW9uMY9jluXMSrgF/rLx3H4d22aV1UPcvTvD20Hbq+ePcDxSU442j4nNeAH3X5h61Hqr6D3m3OSDB2jJGcA26rqm2vZ2DrT5b30XuC9Sf4lyZ4k569Zd+tDlzH6C+AjSeaAe4A/WpvW3lKWmludblXQok63VgBI8hFgBviNVe1o/TnqGCV5G707h162Vg2tU13eSxvpTdOcS+//BB9KclpV/WiVe1svuozRJcCtVfW3Sc6h972a06rqf1a/vbeMzrn1M5N6Bt/l9gsk+RDw58BFVfXmGvW2Xgwbo2OB04BvJ/k+vTnB3RP4QWvXW3n8Q1X9d1X9J/AMvcCfFF3G6ArgqwBV9a/AZno32NL/65RbC01qwA+9/UJ/+uHv6IX7pM2ZwpAxqqoDVbWlqqarapre5xQXVdXseNodmy638rib3of2JNlCb8rm2TXtcry6jNEPgPMAkvwKvYCfX9Mu17/dwKX9q2nOBg5U1QtHe8FETtFUt9sv/A1wDPC1/q3tf1BVF42t6TXWcYwmXsdxug/4nSRPAz8F/qyqXhpf12ur4xhdDXwxyZ/Qm3a4rPqXjkyKJHfQm8bb0v8s4lpgE0BV3UTvs4kLgf3A68DlQ/c5YWMoSRNjUqdoJKl5BrwkNcqAl6RGGfCS1CgDXpIaZcBLUqMMeElq1P8CQgzPgUaeJ00AAAAASUVORK5CYII=\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "import matplotlib.pyplot as plt\n", - "plt.hist(x,bins=10, color='b', histtype='bar', edgecolor='w')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The `numpy.random.rand(10)` function generates 10 random numbers between 0 and 1. The pyplot function `hist` then displays a histogram of these randomly generated numbers. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Exercise\n", - "\n", - "Try generating more random numbers and plotting histograms of the results i.e. increase `10` to larger values. \n", - "\n", - "What should the histogram of `x` look like if Python is generating truly random numbers?" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Examples of Monte Carlo models:\n", - "\n", - "Monte Carlo models have a wide array of applications. We are going to use Monte Carlo models in later modules to explore how uncertainty in measurements can be incorporated into computational models. Here is a brief list of Monte Carlo model use cases in real-world applications:\n", - "\n", - "- [Eigenvlaues in supercritical systems](https://link.springer.com/chapter/10.1007%2FBFb0049064)\n", - "- [average time between failures for reliability](http://www.egr.msu.edu/~mitraj/research/pubs/proc/singh-mitra_em_stdby_ias95.pdf)\n", - "- disordered materials (physics)\n", - "- [Calculation of the energy output of a wind farm](http://www.mdpi.com/1996-1073/9/4/286/pdf)\n", - "- [US Coast Guard rescue missions](https://en.wikipedia.org/wiki/Search_and_Rescue_Optimal_Planning_System)\n", - "- [Radiation shielding](http://www.sciencedirect.com/science/article/pii/S0920379612000580)\n", - "- [Predict number of asteroids that hit body of water](https://cneos.jpl.nasa.gov/sentry/intro.html)\n", - "- [Financial modeling](https://en.wikipedia.org/wiki/Monte_Carlo_methods_in_finance)\n", - "\n", - "We will explore Monte Carlo modeling through the use of three examples:\n", - "\n", - "1. Calculate the value of $\\pi$\n", - "\n", - "2. Calculate the integral of a function\n", - "\n", - "3. Propagate uncertainty in manufacturing into uncertainty in failure load" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "\n", - "\n", - "# Example 1: Calculate $\\pi$ with random numbers. \n", - "\n", - "Assuming we can actually generate random numbers (a topic of philosophical and heated debates) we can populate a unit square with random points and determine the ratio of points inside and outside of a circle.\n", - "\n", - "![Unit circle and unit square](../images/MonteCarloPi.gif)\n", - "\n", - "![1/4 Unit circle and 1/4 unit square](../images/MonteCarloPi_rand.gif)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "The ratio of the area of the circle to the square is:\n", - "\n", - "$\\frac{\\pi r^{2}}{4r^{2}}=\\frac{\\pi}{4}$\n", - "\n", - "So if we know the fraction of random points that are within the unit circle, then we can calculate $\\pi$\n", - "\n", - "(number of points in circle)/(total number of points)=$\\pi/4$" - ] - }, - { - "cell_type": "code", - "execution_count": 65, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np" - ] - }, - { - "cell_type": "code", - "execution_count": 66, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([0.65636947, 0.58895963, 0.82791297, 0.19407244, 0.6149529 ,\n", - " 0.07214425, 0.51728665, 0.74773674, 0.35505096, 0.72987358])" - ] - }, - "execution_count": 66, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "np.random.rand(10)" - ] - }, - { - "cell_type": "code", - "execution_count": 67, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - }, - "slideshow": { - "slide_type": "fragment" - } - }, - "outputs": [], - "source": [ - "def montecarlopi(N):\n", - " '''Create random x-y-coordinates to and use ratio of circle-to-square to \n", - " calculate the value of pi\n", - " i.e. Acircle/Asquare = pi/4\n", - " Arguments\n", - " ---------\n", - " N: number of random points to produce between x=0-1 and y=0-1\n", - " \n", - " Returns\n", - " -------\n", - " our_pi: the best prediction of pi using N points\n", - " '''\n", - " \n", - "\n", - " x=np.random.rand(N,1);\n", - " y=np.random.rand(N,1);\n", - " R=np.sqrt(x**2+y**2); # compute radius\n", - " num_in_circle=sum(R<1);\n", - " total_num_pts =len(R);\n", - " our_pi = 4*num_in_circle/total_num_pts;\n", - " return our_pi" - ] - }, - { - "cell_type": "code", - "execution_count": 68, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - }, - "slideshow": { - "slide_type": "slide" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "mean value for pi = 3.123600\n", - "standard deviation is 0.056948\n", - "actual pi is 3.141593\n" - ] - } - ], - "source": [ - "test_pi=np.zeros(10)\n", - "for i in range(0,10):\n", - " test_pi[i]=montecarlopi(1000);\n", - "\n", - "print('mean value for pi = %f'%np.mean(test_pi))\n", - "print('standard deviation is %f'%np.std(test_pi))\n", - "print('actual pi is %f'%np.pi)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Exercises\n", - "\n", - "1. Why is there a standard deviation for the value of $\\pi$ calculated with a Monte Carlo method? Does it depend upon how many times you run the function i.e. the size of `test_pi`? or the number of random points `N`? Alter the script above to discover correlations\n", - "\n", - "2. How well does our function `montecarlopi` converge to the true value of $\\pi$ (you can use `np.pi` as a true value)? Plot the convergence as we did in [03-Numerical_error](https://github.uconn.edu/rcc02007/CompMech01-Getting-started/blob/master/notebooks/03-Numerical_error.ipynb)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Example 2: Calculate the integral of a function\n", - "\n", - "One way to calculate the integral of a function, $f(x)$, is to approximate it as a Riemann sum as such\n", - "\n", - "$I=\\int_{a}^{b}f(x) dx \\approx \\Delta x \\left(f(a)+f(a+\\Delta x)+f(a+2\\Delta x)+...+f(b)\\right))$.\n", - "\n", - "Another way to integrate this function is with a [Monte Carlo approach](https://en.wikipedia.org/wiki/Monte_Carlo_integration). We can approximate the integral as such\n", - "\n", - "$I=\\int_{a}^{b}f(x) dx \\approx \\frac{1}{n}\\sum_{i=1}^n f(x_i)$. \n", - "\n", - "where $x_i$ are uniformly random values of $x$ over the interval $[a,b]$. We were actually doing this in two dimensions in Example #1 when we compared the area of the circle to the area of a square. \n", - "\n", - "Visually, this approximation can be represented by the following figure.\n", - "\n", - "![Integration approximation](../images/integrals.png)\n", - "\n", - "The figure above shows the exact integral on the left as compared to two approximations, the Riemann sum (top-right) and Monte Carlo method (bottom-right). \n", - "\n", - "## Exercise (Discussion)\n", - "\n", - "Why does the Monte Carlo method work? Is there a benefit to random numbers as opposed to using an ordered set divided into equally-spaced intervals?" - ] - }, - { - "cell_type": "code", - "execution_count": 114, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3.0821347195510826\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "f= lambda x:4/(1+x**2)\n", - "\n", - "n=10\n", - "xi=np.random.rand(n)\n", - "\n", - "plt.bar(xi,f(xi),width=1/n,color=[0.1,0,1,0.5],edgecolor='white')\n", - "plt.plot(np.linspace(0,1),f(np.linspace(0,1)),color='k')\n", - "#plt.hist(f(xi),cumulative=True)\n", - "#plt.hist(xi,cumulative=True)\n", - "\n", - "mypi=sum(f(xi))/n\n", - "print(mypi)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "### Example 3: Determine uncertainty in failure load based on geometry uncertainty\n", - "\n", - "In this example, we know that a steel bar will break under 940 MPa tensile stress. The bar is 1 mm by 2 mm with a tolerance of 1 %. What is the range of tensile loads that can be safely applied to the beam?\n", - "\n", - "$\\sigma_{UTS}=\\frac{F_{fail}}{wh}$\n", - "\n", - "$F_{fail}=\\sigma_{UTS}wh$" - ] - }, - { - "cell_type": "code", - "execution_count": 96, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - }, - "slideshow": { - "slide_type": "slide" - } - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "N=10000;\n", - "r=np.random.rand(N,1);\n", - "wmean=1; # in mm\n", - "wmin=wmean-wmean*0.01;\n", - "wmax=wmean+wmean*0.01;\n", - "hmean=2; # in mm\n", - "hmin=hmean-hmean*0.01;\n", - "hmax=hmean+hmean*0.01;\n", - "\n", - "wrand=wmin+(wmax-wmin)*r;\n", - "hrand=hmin+(hmax-hmin)*r;\n", - "\n", - "uts=940; # in N/mm^2=MPa\n", - "\n", - "Ffail=uts*wrand*hrand*1e-3; # force in kN\n", - "plt.hist(Ffail,bins=20,)\n", - "plt.xlabel('failure load (kN)')\n", - "plt.ylabel('relative counts')\n", - "plt.title('Failure load is {:.2f}+/- {:.2f} kN'.format(np.mean(Ffail),np.std(Ffail)));" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "Normally, the tolerance is not a maximum/minimum specification, but instead a normal distribution that describes the standard deviation, or the 68% confidence interval.\n", - "\n", - "So instead, we should generate normally distributed dimensions." - ] - }, - { - "cell_type": "code", - "execution_count": 97, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - }, - "slideshow": { - "slide_type": "slide" - } - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "N=100000;\n", - "wmean=1; # in mm\n", - "wstd=wmean*0.01; # standard deviation in mm\n", - "hmean=2; # in mm\n", - "hstd=hmean*0.01; # standard deviation in mm\n", - "\n", - "\n", - "wrand=np.random.normal(wmean,wstd,size=N);\n", - "hrand=np.random.normal(hmean,hstd,size=N);\n", - "uts=940; # in N/mm^2=MPa\n", - "\n", - "Ffail=uts*wrand*hrand*1e-3; # force in kN\n", - "plt.hist(Ffail,bins=20)\n", - "#plt.xlabel('failure load (kN)')\n", - "#plt.ylabel('relative counts')\n", - "plt.title('Failure load is {:.2f}+/- {:.2f} kN'.format(np.mean(Ffail),np.std(Ffail)));" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In this propagation of uncertainty, the final value of failure load seems to be independent of wheher the distribution is uniformly random or normally distributed. In both cases, the failure load is $\\approx 1.9 \\pm 0.03$ kN.\n", - "\n", - "The difference is much more apparent if you look at the number of occurrences that failure will occur whether the dimensions are uniformly random or normally distributed. \n", - "\n", - "For the uniformly random case, there are approximately 500 parts out of 10,000 that will fail at 1.9 kN. \n", - "\n", - "For the normally distributed case, there are approximately 17,500 parts out of 10,000 that will fail at 1.9 kN. " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "# Thanks" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "# Using data from Dart board experiment" - ] - }, - { - "cell_type": "code", - "execution_count": 173, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "Gnuplot\n", - "Produced by GNUPLOT 5.0 patchlevel 3 \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t \n", - "\t \n", - "\t\n", - "\t\n", - "\t \n", - "\t \n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\t\n", - "\t\t-20\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-15\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-10\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-5\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t5\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t10\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t15\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-20\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-15\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-10\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-5\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t5\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t10\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t15\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\t\ty position (cm)\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\tx position (cm)\n", - "\t\n", - "\n", - "\n", - "\n", - "\tgnuplot_plot_1a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_2a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_3a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_4a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_5a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_6a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_7a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_8a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_9a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_10a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_11a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_12a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_13a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_14a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_15a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_16a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_17a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_18a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_19a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_20a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_21a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_22a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_23a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_24a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_25a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_26a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_27a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_28a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_29a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_30a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_31a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_32a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_33a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_34a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_35a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_36a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_37a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_38a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_39a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_40a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "darts=dlmread('compiled_data.csv',',');\n", - "x_darts=darts(:,1).*cosd(darts(:,2));\n", - "y_darts=darts(:,1).*sind(darts(:,2));\n", - "\n", - "colormap(colorcube(length(darts(:,3))))\n", - "\n", - "scatter(x_darts, y_darts, [], darts(:,3))\n", - "xlabel('x position (cm)')\n", - "ylabel('y position (cm)')" - ] - }, - { - "cell_type": "code", - "execution_count": 174, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "mu_x = 0.90447\n" - ] - } - ], - "source": [ - "mu_x=mean(x_darts)" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "s_x = 4.2747\n" - ] - } - ], - "source": [ - "s_x=std(x_darts)" - ] - }, - { - "cell_type": "code", - "execution_count": 175, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "mu_y = 0.88450\n" - ] - } - ], - "source": [ - "mu_y=mean(y_darts)" - ] - }, - { - "cell_type": "code", - "execution_count": 177, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "s_y = 4.6834\n" - ] - } - ], - "source": [ - "s_y=std(y_darts)" - ] - }, - { - "cell_type": "code", - "execution_count": 180, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "Gnuplot\n", - "Produced by GNUPLOT 5.0 patchlevel 3 \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t \n", - "\t \n", - "\t\n", - "\t\n", - "\t \n", - "\t \n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t5\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t10\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t15\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t20\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-20\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-15\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-10\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-5\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t5\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t10\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t15\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\n", - "\tgnuplot_plot_1a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_2a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_3a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_4a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_5a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_6a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_7a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_8a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_9a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_10a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_11a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_12a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_13a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_14a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_15a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_16a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_17a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_18a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_19a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_20a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_21a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_22a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_23a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_24a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_25a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_26a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_27a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_28a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_29a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_30a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_31a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_32a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_33a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_34a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_35a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_36a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_37a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_38a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_39a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_40a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_41a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_42a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_43a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_44a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_45a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_46a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_47a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_48a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_49a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_50a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_51a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_52a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_53a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_54a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_55a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_56a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_57a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_58a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_59a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_60a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_61a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "hist(x_darts,30,100)" - ] - }, - { - "cell_type": "code", - "execution_count": 182, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "Gnuplot\n", - "Produced by GNUPLOT 5.0 patchlevel 3 \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t \n", - "\t \n", - "\t\n", - "\t\n", - "\t \n", - "\t \n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0.05\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0.1\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0.15\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0.2\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-20\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-15\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-10\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-5\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t5\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t10\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t15\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\t\trelative counts\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\tx position (cm)\n", - "\t\n", - "\n", - "\n", - "\n", - "\tgnuplot_plot_1a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_2a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_3a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_4a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_5a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_6a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_7a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_8a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_9a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_10a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_11a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_12a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_13a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_14a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_15a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_16a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_17a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_18a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_19a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_20a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_21a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_22a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_23a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_24a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_25a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_26a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_27a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_28a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_29a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_30a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_31a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_32a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_33a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_34a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_35a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_36a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_37a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_38a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_39a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_40a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_41a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_42a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_43a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_44a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_45a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_46a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_47a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_48a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_49a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_50a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_51a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_52a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_53a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_54a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_55a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_56a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_57a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_58a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_59a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_60a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_61a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_62a\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_63a\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_64a\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "x_vals=linspace(-15,20,30);\n", - "hist(x_darts,x_vals,1);\n", - "[histFreq, histXout] = hist(x_darts, 30);\n", - "binWidth = histXout(2)-histXout(1);\n", - "bar(histXout, histFreq/binWidth/sum(histFreq));\n", - "pdfnorm = @(x) 1/sqrt(2*s_x^2*pi).*exp(-(x-mu_x).^2/2/s_x^2);\n", - "#cdfnorm = @(x) 1/2*(1+erf((x-mu_x)./sqrt(2*s_x^2)));\n", - "#hist(x_darts,x_vals,trapz(x,f))#,cdfnorm(max(x_darts))/2)\n", - "hold on;\n", - "plot(x_vals,pdfnorm(x_vals))\n", - "n=2; # n=1, 68# confidence, n=2, 95% confidence, n=3, 99% conf\n", - " plot([mu_x+n*s_x,mu_x+n*s_x],[0,0.1],'r-')\n", - " plot([mu_x-n*s_x,mu_x-n*s_x],[0,0.1],'r-')\n", - "\n", - "xlabel('x position (cm)')\n", - "ylabel('relative counts')" - ] - }, - { - "cell_type": "code", - "execution_count": 183, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "Gnuplot\n", - "Produced by GNUPLOT 5.0 patchlevel 3 \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t \n", - "\t \n", - "\t\n", - "\t\n", - "\t \n", - "\t \n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0.05\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0.1\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0.15\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0.2\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-20\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-15\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-10\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-5\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t5\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t10\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t15\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\t\trelative counts\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\tx position (cm)\n", - "\t\n", - "\n", - "\n", - "\n", - "\tgnuplot_plot_1a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_2a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_3a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_4a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_5a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_6a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_7a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_8a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_9a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_10a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_11a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_12a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_13a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_14a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_15a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_16a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_17a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_18a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_19a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_20a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_21a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_22a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_23a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_24a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_25a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_26a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_27a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_28a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_29a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_30a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_31a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_32a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_33a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_34a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_35a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_36a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_37a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_38a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_39a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_40a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_41a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_42a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_43a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_44a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_45a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_46a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_47a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_48a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_49a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_50a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_51a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_52a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_53a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_54a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_55a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_56a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_57a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_58a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_59a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_60a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_61a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_62a\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_63a\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_64a\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "y_vals=linspace(-15,20,30);\n", - "hist(y_darts,y_vals,1);\n", - "[histFreq, histXout] = hist(y_darts, 30);\n", - "binWidth = histXout(2)-histXout(1);\n", - "bar(histXout, histFreq/binWidth/sum(histFreq));\n", - "pdfnorm = @(x) 1/sqrt(2*s_y^2*pi).*exp(-(x-mu_y).^2/2/s_y^2);\n", - "#cdfnorm = @(x) 1/2*(1+erf((x-mu_x)./sqrt(2*s_x^2)));\n", - "#hist(x_darts,x_vals,trapz(x,f))%,cdfnorm(max(x_darts))/2)\n", - "hold on;\n", - "plot(y_vals,pdfnorm(y_vals))\n", - "n=2; # n=1, 68% confidence, n=2, 95% confidence, n=3, 99% conf\n", - " plot([mu_y+n*s_y,mu_y+n*s_y],[0,0.1],'r-')\n", - " plot([mu_y-n*s_y,mu_y-n*s_y],[0,0.1],'r-')\n", - "\n", - "xlabel('x position (cm)')\n", - "ylabel('relative counts')" - ] - }, - { - "cell_type": "code", - "execution_count": 76, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "Gnuplot\n", - "Produced by GNUPLOT 5.0 patchlevel 3 \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t \n", - "\t \n", - "\t\n", - "\t\n", - "\t \n", - "\t \n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0.2\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0.4\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0.6\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0.8\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t1\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-15\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-10\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-5\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t5\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t10\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t15\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t20\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\texperimental CDF\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\texperimental CDF\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tNormal CDF\n", - "\n", - "\t\n", - "\t\tNormal CDF\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "x_exp=empirical_cdf(x_vals,x_darts);\n", - "plot(x_vals,x_exp)\n", - "hold on;\n", - "plot(x_vals,normcdf(x_vals,mu_x,s_x),'k-')\n", - "legend('experimental CDF','Normal CDF','Location','SouthEast')" - ] - }, - { - "cell_type": "code", - "execution_count": 185, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "Gnuplot\n", - "Produced by GNUPLOT 5.0 patchlevel 3 \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t \n", - "\t \n", - "\t\n", - "\t\n", - "\t \n", - "\t \n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t-20\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t-15\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t-10\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t-5\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t5\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t10\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t15\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t20\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t-20\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t-15\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t-10\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t-5\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t5\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t10\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t15\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t20\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t0.2\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t0.4\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t0.6\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t0.8\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t1\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\tgnuplot_plot_1a\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_2a\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\t\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\t\tx position (cm)\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\ty position (cm)\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# plot the distribution in x- and y-directions\n", - "gauss2d = @(x,y) exp(-((x-mu_x).^2/2/s_x^2+(y-mu_y).^2/2/s_y^2));\n", - "\n", - "x=linspace(-20,20,31);\n", - "y=linspace(-20,20,31);\n", - "scatter3(x_darts, y_darts,ones(length(x_darts),1))\n", - "xlabel('x position (cm)')\n", - "ylabel('y position (cm)')\n", - "hold on\n", - "[X,Y]=meshgrid(x,y);\n", - "view([1,1,1])\n", - "\n", - "surf(X,Y,gauss2d(X,Y))" - ] - }, - { - "cell_type": "code", - "execution_count": 187, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "Gnuplot\n", - "Produced by GNUPLOT 5.0 patchlevel 3 \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t \n", - "\t \n", - "\t\n", - "\t\n", - "\t \n", - "\t \n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t-20\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t-15\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t-10\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t-5\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t5\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t10\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t15\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t20\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t-20\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t-15\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t-10\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t-5\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t5\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t10\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t15\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t20\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t0.2\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t0.4\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t0.6\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t0.8\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t1\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\tgnuplot_plot_1a\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_2a\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\t\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\t\tx position (cm)\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\ty position (cm)\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "gauss2d = @(x,y) exp(-((x-0).^2/2/1^2+(y-0).^2/2/5^2));\n", - "\n", - "x=linspace(-20,20,71);\n", - "y=linspace(-20,20,31);\n", - "scatter3(x_darts, y_darts,ones(length(x_darts),1))\n", - "xlabel('x position (cm)')\n", - "ylabel('y position (cm)')\n", - "hold on\n", - "[X,Y]=meshgrid(x,y);\n", - "view([1,1,1])\n", - "\n", - "surf(X,Y,gauss2d(X,Y))" - ] - }, - { - "cell_type": "code", - "execution_count": 190, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "Gnuplot\n", - "Produced by GNUPLOT 5.0 patchlevel 3 \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t \n", - "\t \n", - "\t\n", - "\t\n", - "\t \n", - "\t \n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t10\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t20\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t30\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t40\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t50\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-100\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t100\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t200\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t300\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t400\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\n", - "\tgnuplot_plot_1a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_2a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_3a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_4a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_5a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_6a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_7a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_8a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_9a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_10a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_11a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_12a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_13a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_14a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_15a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_16a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_17a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_18a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_19a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_20a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_21a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "hist(darts(:,2))" - ] - } - ], - "metadata": { - "celltoolbar": "Slideshow", - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.5" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/notebooks/.ipynb_checkpoints/04_Linear_Regression_with_Real_Data-checkpoint.ipynb b/notebooks/.ipynb_checkpoints/04_Linear_Regression_with_Real_Data-checkpoint.ipynb deleted file mode 100644 index ad94b7d..0000000 --- a/notebooks/.ipynb_checkpoints/04_Linear_Regression_with_Real_Data-checkpoint.ipynb +++ /dev/null @@ -1,1246 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "###### Modified under Creative Commons Attribution license CC-BY 4.0, code under BSD 3-Clause License © 2020 R.C. Cooper" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Linear regression with real data" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Earth temperature over time\n", - "\n", - "In this lesson, we will apply all that we've learned (and more) to analyze real data of Earth temperature over time.\n", - "\n", - "Is global temperature rising? How much? This is a question of burning importance in today's world!\n", - "\n", - "Data about global temperatures are available from several sources: NASA, the National Climatic Data Center (NCDC) and the University of East Anglia in the UK. Check out the [University Corporation for Atmospheric Research](https://www2.ucar.edu/climate/faq/how-much-has-global-temperature-risen-last-100-years) (UCAR) for an in-depth discussion.\n", - "\n", - "The [NASA Goddard Space Flight Center](http://svs.gsfc.nasa.gov/goto?3901) is one of our sources of global climate data. They produced the video below showing a color map of the changing global surface **temperature anomalies** from 1880 to 2015.\n", - "\n", - "The term [global temperature anomaly](https://www.ncdc.noaa.gov/monitoring-references/faq/anomalies.php) means the difference in temperature with respect to a reference value or a long-term average. It is a very useful way of looking at the problem and in many ways better than absolute temperature. For example, a winter month may be colder than average in Washington DC, and also in Miami, but the absolute temperatures will be different in both places." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "data": { - "image/jpeg": "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\n", - "text/html": [ - "\n", - " \n", - " " - ], - "text/plain": [ - "" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from IPython.display import YouTubeVideo\n", - "YouTubeVideo('gGOzHVUQCw0')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "How would we go about understanding the _trends_ from the data on global temperature?\n", - "\n", - "The first step in analyzing unknown data is to generate some simple plots using **Matplotlib**. We are going to look at the temperature-anomaly history, contained in a file, and make our first plot to explore this data. \n", - "\n", - "We are going to smooth the data and then we'll fit a line to it to find a trend, plotting along the way to see how it all looks.\n", - "\n", - "Let's get started!" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Step 1: Read a data file\n", - "\n", - "We took the data from the [NOAA](https://www.ncdc.noaa.gov/cag/) (National Oceanic and Atmospheric Administration) webpage. Feel free to play around with the webpage and analyze data on your own, but for now, let's make sure we're working with the same dataset.\n", - "\n", - "\n", - "We have a file named `land_global_temperature_anomaly-1880-2016.csv` in our `data` folder. This file contains the year on the first column, and averages of land temperature anomaly listed sequentially on the second column, from the year 1880 to 2016. We will load the file, then make an initial plot to see what it looks like.\n", - "\n", - "\n", - "##### Note:\n", - "\n", - "If you downloaded this notebook alone, rather than the full collection for this course, you may not have the data file on the location we assume below. In that case, you can download the data if you add a code cell, and execute the following code in it:\n", - "\n", - "```Python\n", - "from urllib.request import urlretrieve\n", - "URL = 'http://go.gwu.edu/engcomp1data5?accessType=DOWNLOAD'\n", - "urlretrieve(URL, 'land_global_temperature_anomaly-1880-2016.csv')\n", - "```\n", - "The data file will be downloaded to your working directory, and you will then need to remove the path information, i.e., the string `'../../data/'`, from the definition of the variable `fname` below.\n", - "\n", - "Let's start by importing NumPy." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "To load our data from the file, we'll use the function [`numpy.loadtxt()`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.loadtxt.html), which lets us immediately save the data into NumPy arrays. (We encourage you to read the documentation for details on how the function works.) Here, we'll save the data into the arrays `year` and `temp_anomaly`. " - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "fname = '../data/land_global_temperature_anomaly-1880-2016.csv'\n", - "\n", - "year, temp_anomaly = np.loadtxt(fname, delimiter=',', skiprows=5, unpack=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "##### Exercise\n", - "\n", - "Inspect the data by printing `year` and `temp_anomaly`." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(137,)" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "temp_anomaly.shape" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Step 2: Plot the data\n", - "\n", - "Let's first load the **Matplotlib** module called `pyplot`, for making 2D plots. Remember that to get the plots inside the notebook, we use a special \"magic\" command, `%matplotlib inline`:" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "import matplotlib.pyplot as plt\n", - "%matplotlib inline" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The `plot()` function of the `pyplot` module makes simple line plots. We avoid that stuff that appeared on top of the figure, that `Out[x]: [< ...>]` ugliness, by adding a semicolon at the end of the plotting command." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.plot(year, temp_anomaly);" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "collapsed": true - }, - "source": [ - "Now we have a line plot, but if you see this plot without any information you would not be able to figure out what kind of data it is! We need labels on the axes, a title and why not a better color, font and size of the ticks. \n", - "**Publication quality** plots should always be your standard for plotting. \n", - "How you present your data will allow others (and probably you in the future) to better understand your work. \n", - "\n", - "We can customize the style of our plots using parameters for the lines, text, font and other plot options. We set some style options that apply for all the plots in the current session with [`plt.rc()`](https://matplotlib.org/api/_as_gen/matplotlib.plt.rc.html)\n", - "Here, we'll make the font of a specific type and size (serif and 16 points). You can also customize other parameters like line width, color, and so on (check out the documentation)." - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "plt.rc('font', family='sans', size='18')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We'll redo the same plot, but now we'll add a few things to make it prettier and **publication quality**. We'll add a title, label the axes and, show a background grid. Study the commands below and look at the result!" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAApEAAAF6CAYAAABBQAMXAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJzs3Xl8XHW9//HXJ3uzNEvXdE03aItQoCwiWwGVTVFBxR2UK15FVO69Ktflqly96nUF1Ot2/SG4cFEQqLLTlgIKpYWWHboladMkTdomk339/v44Z5pJMjOZk8xk6/v5eMxjkvM958x3ziz55Lt8vuacQ0REREQkiLSxroCIiIiITDwKIkVEREQkMAWRIiIiIhKYgkgRERERCUxBpIiIiIgEpiBSRERERAJTECljyszKzcyZ2ZqxrksQZlbm17t8FB7rSv+xbknCuUaz3qP2WCISjJltiPbdG2u7SDQKIkVk3DCzNf4fsA1jXZcjRcQ/cmVjXRcRmVgyxroCIiIiMm58BMgFKse6IjL+KYgUERERAJxzCh4lYerOlgnFzN5sZj8zs+fN7KCZtZvZLjP7uZktjHHM4TE+ZnaamT1gZg1m1mpmT5rZW+I83glmttbfv9nMnjKz94zwOXzQzDb5j3/AzO42s1XDHftoZu8ys0fM7JCZdZjZTjO72czmDHFcppl9xcxe96/jXjO7ycyKo+xbYGafMLN7/fO3mVnIfx6fNbMR/0PqP+/1/q9n+9cifNswYN80M/uIma3z3wcd/vvgRjObFeXch6+tmU3z30N7/eexzczeH7HvGWb2oH89m83sPjNbHuWch7vezSzfzH5gZhURr8ENZjYlzvM908z+bGbVZtZpZjVmdoeZHR9l38PjS/3X7Utm9pJf/60R+13mP8eXzazRL3/VzL5vZtOj1R8If252D7jmZf5+X/d//3qM53GLX35lrO1mttp/n+83s14ze+eAfd/uX+c6/1rsMbPfmNniWNcvRl0Cv08HXNs0M/ucf23bzazWfx6D3lMRxyf8+RvwWOlm9gUze8WvZ7mZfSNcRzNb6D92tV+XZ83s4hh1CPy9GOf5xBwTaQE/d/4xl/rXZ6+/f42ZbfbfkzOC1E3GIeecbrqN2Q0oBxywJsH9dwCtwNPAn4F78bpdHHAAODrKMRv88v8GuoAX/WNf8Ld3A+dEOe5coN3f5wXgj8A//N9/7N+XB3y+N/jH9eAFTH8EXgXagJ/6ZbcMOObKaNv9su/7ZV3Ao/75dvnbaoFjB+xf5pdVAHf7j/s34E/Afr/sJaB4wHFn+GVVwDr/cdb5xztgLWAxHiuhawT8E/CAf0wNcEvE7fqI/bL8x3NAk38d7wR2+tv2AotjXMN7gNf9ff4PeAzo9cs+CFzqX8ut/nskfM5aYPqAc67xy/4ObAIa/Wv6FyDkl20AsqI81y9HvA+eBu4ANvvbOoC3x7iWlf7r1eZfq/8D/hKxXzfQADzpl90X8bruBmZE7Lvcv7bNfvmfB1zz6f5+X/fLvx7jdbvFL78yxvb/BTqB1/DeNw8DF0fs9wt/v3bgCbz34kv+tgbglACfrxG9T4Hf432/bPBfyzr6PhPZSfz8lfvPswnvO+yvEa/Dr4Cl/vHlwF3AM8T/rhrJ9+KaBLcP53P3Lfre048Cf8B73273t78xyPenbuPvNuYV0O3IvhE8iHwHMHXAtgzgm/55HohyTPhLsRf4aMR2A272y9YPOCYX2OeXfWlA2Xvw/vgHCiKBU/w6tABnDKjHd/zzJRxEAm/ztx8CThxwPf6Hvj9+aRFlZRGPUwUsiygriLhWvxzwWPOAsxn8B7gUeM4/5n0DysKPFeQarfGP2RBnnx/4+zwIzIrYnhbxR2tjjGvo8P7QZ0WUfTzij+CByOcBZOP9sXTA12LU1eH9YxJZl9nAyzHeP5fQF9QdP6Ds7XgBSQNQEuN12w2Uxbg27wZyBmybAvw//9ifx/kMxjrn1xlZEOmArw187/j7XOuXb2FwAPLPftlOICPB989I3qcO7x+MyM/ETPqCwiuS/Pl7GZgdUXYMXrDV45fdFPm8gW8T5bvKLxvJ9+KaBLcH+twBOXjBe2jga+uXrwJmJvrdoNv4vI15BXQ7sm8EDCKHOFeV/wVcMGB7+EvxD1GOme6XdQKZEds/Ql9wEO2P350ED5Bu8Y/5UZSyTLzWwSBB5Dp/+/VRzjcFrzXPARdGbI/8I/aJKMe9AS/QbQeKEnxeb/HP96cB28OPFeQarSFOEOm/Xu14wV5xlPI0YJt/juOiXMNGYNqAY9Lpa3G6Lco530H0fzTCdXXA+VGOu9gvq458D+EFTA44K8ZzDP9j85kYr9v7oh03xHXNxQtO66KUlZPaIPJlIgKpAde9Fq91bVCQ4e8Tbvm6JOhzHsb71AFvjXLcv5Kaz9+boxz3F79sFxHfR35ZEVG+qxJ43kN9L64ZajvD+NwBM/zft470tdNt/N40sUYmHH+Mz8XAUXitZ+l+UQbel9lSvFaHgR4YuME5V29mB4BpeF+U1X7R2f79H53/jTjAbXhdn0Gc6d/fEaUeXWZ2J3BdIifyx029yf/1d1HO12Zmd+C19JwN3B/lNH+MctyLZrYNOB44Fa/VIfyYBpzlP485eH8oDe81AO/1SLVz8FoH1zrnDg0sdM71mtnjwHHAG4HnB+yyxTl3YMAxPeblspyO19U60A7/PtYY04POuQcHbnTO/c3MDuG1Sh4FvOaPATsRL5jbGON8jwGf9ut/U5Tyu2McB4CZrQDOB5YAefSNfe8EpptZcbRrl0L3OOd6o2w/Ea+lb7NzbleMYx/Da/F7I14X7ZBG8D7twgsMB3rNvy+NeIyRfv666Bv/Gyn8XtvgnOsacM4GM6vHe59GfleF6zTc78VEBP7cOefqzKwCWGVmPwR+5Zx7ZZiPL+OUgkiZUMzsm8D19H1BRjM1xva9MbY34wWR2RHb5vr35TGOibU9nvA5K2KUx9oeTbi+nXgtDdGE/zDPjVLW4JwLxTiuHC+InBfeYGaz8YKXU+PUKdZ1T6Yy//7d/qSQeKIN2o/1HmiJUx4uy45SBvFToVQAxXjX8jX66j9jmPXf75xrj7azH9j8AvjYEOeditcFO1piXZ8y//6kYV6LQUb4Pq1xznVH2d7s30e+/iP9/NU453qibI/3PgyXTx9Ql5F+LyaizL8P+rn7MHA73j/H15lZHd641/vweoZaR1AnGQcURMqEYWbvxpuQEAI+h/effE34j6qZ/R04Da/VIZporSFDGeoLM5li1Xuk+0Z7DvGel0XZ59d4f5gfxxvf9gJeINptZkfhBUhB6jRc4Va1l/EmG8TzUpRtQ70Hkv0eGXgtw/U/iNdVG8+rUba1xdn/c3gBZBXeH+1/4AWdnQBmtg+vNS3Zr9NQWT5i1Tl8XCXRW+UiPZ1gXUbyPg3y2o/085e092ESvhcTMazPnXPucTNbhtcyfj7exKd3+bevmtlZzrkg/zzLOKMgUiaSd/v3X3bO/b8o5UuT+Fjh1oWyGOWxtg91zsV4KVX2RSlfEOBc9XiD8LPxWjqitVws8u+jPVaxmU2N0Rq5MKK+mFkecCHeuKq3O+caB+yfzOs+lD3+/bPOuStH8XHjWRinLPyaht9P4fq3pqD+4c/HPzvn/hpZYGa5eN3qw9Hp3+fHKJ8/zPOGr0VlMq7FKL9PR/r5S6bR+F4c9ufOb238i3/DzBYAP8d7rb4DvD/20TLeKU+kTCQl/v2egQVmdh4Jdnkl6DH//n3+GKuBPjiMcz7u3793YIGZZQKXJXoiv9vt7/6vH4pyvpyIx3lsYLnv8ijHrcSbNdlBX+tPId53RVOUP8yQ3D8C4YAl1j+46/DGk11gZrGCmtFWYlFyjZrZhXhd2bV4s35xzu3Dax2bZ2bxulyHVQ//ftDnA+81itUSNdQ1DwdBRw8sMLNpeGMbh+MZvBbZU8xsuIFopFF7nybp85cso/G9mLTPnfOSmX/T//W4kVZMxpaCSJlIwt17HzezrPBG85Ii/0+SH+vPeAPXjwW+EFlgZpcSfFINwM/wurauNrPTI85nwH8SrCUS4Ef+/RfM7PAfcjNLx0vHMRt4hYjJMQN8zcyWRByXD/wEL9i4zTnX4BfV4qWcKTKzD0SewMw+xPAC6ljCLXZLLUpiaOdcDd5rPR34i0VJRm1msy1JCdAD+EFk4mQzmwl8z//15gGTs77m3//RzM5mADPLNbP3+xNkggh/Pj4Z+Y+PecnLvx3nuPA1j/V4G/BnGUcGvmZWgNd9PKyxdv7EkW/i5R+8x8xWDdzHzIrM7J9iJbIeYDTfpzDyz1+ypPx7cTifO/OSpV/lv08Gert/32+8rJk9al5y/Hclo96SeurOlvHiZ2YWa6JHk3PuLXgzVa/Am4G43cyexpuFuAYv2XMdfTMmR8Q512pmH8ZL7PwdM/sgXrqfMrzxRTcBnwl4zk3+APivAhvN7DG8NCAn+uf9OV5uvM6YJ+l/vrVm9gO8FCRPm7eqSx3emLDF/s+Xx5gZW4mXUPtFM3sUL1HxGrxWi1eICJz92cv/hZes/fdmdg3ehJEVeBNwvoM3qH/EnHMVZvYccALwvJltwWsVfc05Fw7KPo83UeVS4FV//3K898ICvCTa6XiTTKJNlEi2p/C+S7eb2Tq8IPxcvOBqI33BJADOub+Y2RfxArsNZvYyfkslXtfwcrxZ1RfivRaJ+g5wAfAJYI15K9nMxJupfAfeZyNa1/tf8F7735vZQ3iBGMAXnXMHnHPlZva/eMngHzOzjXjv0VPwUr7cg5cGKTDn3I/MbBHeLOZnzcsMsBMvx+B8vPdYln9fO8S5Ru196j/eSD5/yTRa34tBP3fFeP9k/DRi3wy81sej8CYsfY3+luC9RwuTUF8ZBWqJlPFiBd6Xb7TbyQDOuR3AarxWwgy8/2YXAd8F3orX3ZI0zrlH8b58/4b3xfYO/3E/QF8rRNBz/gde99ezeKkwLsBbveE0+lqE6gOc79/wusE34l2ny/CCmJ8CJzjnXoh1KF7S9O/iffm/A+/6/QQvEXq/2bt+APc+vC7I44CL8IKNi/H+aCTTpXhBTwleF+RV/uOE69LpnLvM3+9BvNfmXXjPvwdvxY8LYs1iToEOvKDxFuAkvGtzEK+V7YLwxJZIzrn/9uv7W7wcjhf658jHm7n6IfqGPyTEOReeQPEA3rV7O94s4n8jSpdrhJ/g/WNThZdO5yr/FtmC9Em8P/hVeMHJCXgrrpxGX9A5LM65z+A99zvxgt5LgNPxcqf+Ee913pnguUbzfTqSz18y6zAq34vD+NztBP7F33emX6+34gWYP8ZbzWdTMuomY8eip8ATkdFmZg8Dbwbe45z781jXR+Izb23h9cBjzrk1Y1sbEZHRp5ZIkVFkZkeb2dQB2zLM7Hq8ALIer+VTRERkXNOYSJHR9XHg02b2LN5sygK8yTvz8MaZfcw5Fy8XoIiIyLigIFJkdK3FG4R+Ct6YrUy8CQO/A77vnNs2hnUTERFJmMZEioiIiEhgGhMpIiIiIoEpiBQRERGRwBREioiIiEhgCiJFREREJDAFkSIiIiISmIJIEREREQlMQaSIiIiIBKYgUkREREQCUxApIiIiIoEpiBQRERGRwBREioiIiEhgCiJFREREJDAFkSIiIiISmIJIEREREQlMQaSIiIiIBKYgUkREREQCUxApIiIiIoEpiBQRERGRwBREioiIiEhgGbEKzKxnBOd1wFudc+tGcA4RERERGadiBpGAAY8DuwKeMwd477BrJCIiIiLjXrwgEuAXzrk/BDmhmU0HLh9+lURERERkvIs3JvJBYN8wztnhH1s/rBqJiIiIyLhnzrmxroOIiIiITDBDdWfLEKZPn+7KyspS+hgtLS3k5eWl9DEmC12rxOg6JU7XKnG6VonRdUqcrlViglynLVu21DvnZiTjceMGkWaWDnwLKHfO/TzOfp8E5gNfdqPUtGlm/w6cCKwGFgEVzrmygOcoBxbGKJ7hnBuyS76srIzNmzcHedjANmzYwJo1a1L6GJOFrlVidJ0Sp2uVOF2rxOg6JU7XKjFBrpOZVSTrcYdqifwQ8HnglCH22wT8BHgRCDQRZwT+CzgIPAsUjeA8r+IFygM1jeCcIiIiIpPaUEHke4FHnHNb4u3knNtiZg8C72f0gsglzrldAGb2IpA/zPPUOud+l7xqiYiIiEx+Q61Ysxp4JMFzrQdOGll1EhcOIJPBzDLMbGqyziciIiIy2Q0VRJYA+xM8V52//0RzKtAKNJpZg5n91szmjHWlRERERMazuCl+zOwA8F/OuR8MeSKzfwW+5JyblsT6JSTcnT2MiTV/A/6BNy4yA1gD/BNQA5zinIuaJ9PMrgauBpg1a9bq22+/fdh1T0RzczP5+cPtrT+y6FolRtcpcbpWidO1SoyuU+J0rRIT5Dqdc845W5xzSek5HiqI3Ai0OefOH/JEZg8Auc65s5JRsSCGG0TGONcHgN8Dv3bOfXyo/U866SSn2dnjh65VYnSdEqdrlThdq8ToOiVO1yoxAWdnJy2IHKo7+y7gzWb2jiEqdAnwFuDOZFRqLPnLPJYDF49xVURERETGraGCyF8AO4A7zOxbZlYWWWhmZWb2TeAO4HV//8mgHJg+1pUQERERGa/ipvhxzrWZ2cXAX4F/B643syYgBBQAUwEDXgPe5pxrT3F9R8tSoHasKyEiIiIyXg3VEolzbgdwPPBZ4AmgG5gN9ACP+9tPdM7tTGE9R8TMFpjZcjPLjNgWdSa5mV0DzAPWjlb9RERE5Mi2Z08To7ToX9IktHa238J4s38bF8zsw/QtWTgDyDKzr/i/VzjnbovY/VbgbLzlEcv9bR8xs6uAB/xt4dnZ7wR2Al9LYfVFREREAKiubuHyyx9g48bLyMiwsa5OwhIKIsepq/ACw0j/6d8/BtxGfM8A5wKX4wWhBuwGvgt8xznXkLyqioiIiES3fv1ezj57LhkZQ3YQjytDBpFmlg2sAHY75xpTX6XEOOfWjGRf59yTwCVJrJKIiIhIYOvW7eXyy5eNdTUCixvymtnJeK1z64B9Zva+UamViIiIyBEgFOpk27Z6Tj994i2WN1S76a+BB51zJcCXgV+ZWWHqqyUiIiIy+T3+eBUnnzyT3NyJN8IwZhDpd2MfC/zZ33Q3kAccPQr1EhEREZn01q3by7nnzhvragxLzCDSOdcBVAJn+JtOx0vrUzEK9RIRERGZ1Do7e3jyyWrWrJmYQeRQbaefBm43s/PxJtd8wzmnJNwiIiIiI7RpUy2LF09l+vQpY12VYRlqxZq/mtnRwKnA6865F0enWiIiIiKT27p1eznvvPljXY1hS2TFmirn3F0KIEVERESSwznH+vUTdzwkJBBEioiIiEhyvfTSQXJzM1i0aOImvYk3O3uOmeUEPaF55kSuUy0iIiIifR59dM+EboWE+C2Re4BLh3HOEv/YM4dVIxEREZFJbtOmWs44Y+IlGI8UL4g0wA3zvBNn9XARERGRUVZb28rcufljXY0RGWpM5O/MrCfIDdjP8INPERERkUnNOUd9fRvTpgUeNTiuxEvx89sRnnvfCI8XERERmXSamrrIykpnypSJt9RhpJi1d859dDQrIiIiInIkqK9vY/r0id0KCUrxIyIiIjKqvCByYq5SE0lBpIiIiMgoqq9vVxApIiIiIsGoO1tEREREAlNLpIiIiIgEpjGRIiIiIhLYEdedbWYfNLPsVFZGREREZLKrqzvyurNvA6rN7GYzOyFVFRIRERGZzOrr25gx4whqiQTeB2wCPglsNrMtZvbPZjY1NVUTERERmVx6enppbOyguPgICiKdc3c45y4AyoBvAMXAz/BaJ39rZmelpooiIiIik8PBgx0UFmaTkTHxp6UEfgbOub3OuRucc4uBtwL3Au8F1pvZa2b2BTObmeyKioiIiEx0k2VSDYxwdrZz7hHgh8BawIBlwHeASjP7qZnlj7yKIiIiIpPDZMkRCZAxnIPMrAT4EHAV8AagA/gd8Ev/52uBfwZKgPcnpaYiIiIiE9xkyREJAYNIM3sLXuD4DiAbeBH4HHCbc64hYtePmFkF8JlkVVRERERkoptM3dkJB5FmVg7MB9qA24FfOuf+EeeQF4GCEdVOREREZBKpr29nzpy8sa5GUgRpiWwAvofX6hhKYP+1wKJh1UpERERkEqqvb+O446aNdTWSIuEg0jl3fJATO+dagYrANRIRERGZpCbTmMiJn6RIREREZII4ImZnm9m6YZzPOefOG0F9RERERCatI2VizWLAjVZFRERERCaz9vZu2tt7mDo1a6yrkhQxg0jnXNko1kNERERkUjtwwOvKNrOxrkpSaEykiIiIyCiYTF3ZoCBSREREZFTU1U2eSTUQfMWaYrwVa04FihkchGpijYiIiEgUk60lMsiKNQuBJ4E5QCMwFThIXzBZD7SkoI4iIiIiE95kyhEJwbqzvwkUAecBywADLscLJr8NNAFnJruCIiIiIqnyox89x8MPV47KY9XXtzNjxpEZRJ4H/Mo5t56+1D/mnGt1zn0ZeAH4brIrKCIiIpIqTz9dy4svHkho302barjnnl3DfqzJ1p0dJIicBrzo/9zl30eG0w8Db0lGpURERERSrbfXsWNHA3v2NCe0/8aN+/jb38qH/XiTabUaCBZE1gEl/s9NQDtQFlGeRf+gUkRERGTcqq5uobW1m717mxLav7w8xI4dDcN+vCN5TORLwCrwpmADm4BPmdkCMysDrgZeTXYFRURERFJh+/YGVq4sobIysZbIioomampaaWzsCPxYzjnq69uYNu3I7M6+BzjNzMIh9A14E2x2Azv9n/8zudUTERERSY3t2xs4+eRZdHf3DhkY9vT0smdPE0cdVcSOHY2BH6upqYusrHSmTAmUXXFcSziIdM79zDm3xDnX5v++DjgNuBH4IXCWc+7e1FRTREREJLiWli4+9KEH6e11g8q2b2/gqKOKmD+/gKqq+K2R1dWtlJTkcOyx09i+PXiX9mSbVAMjXLHGObfZOfcvzrnPO+f+nqxKJcLM/t3M/mRmu8zMmVn5MM/zETN7zszazKzWzH5tZjOSXF0REREZAxUVIZ59to6dOwe3Hm7f3sCyZUXMn58/ZJd2RUWIhQunsmxZ0bDGRU628ZAwsZc9/C/gXLyu9EPDOYGZXQf8Fi95+meBXwDvAzaYWV6S6ikiIiJjZO9ebx2ULVv299ve1dVLeXkTixcXMn9+Pnv3xg8iy8ubKCsrYOnSomG2RE6umdkQfNnDhXgTaJbhpfyxAbuM5rKHS5xzu/x6vQjkBznYzKbjJVB/BjjPOdfjb38GuBcvqPyvpNZYRERERtXevc0UFWWzZct+3ve+ow5vr6xsYubMKeTmZjB/fgGvvHIw7nnKy0MsXFjAsmVFbN/eiHMOs4FhUHTOOcrLQ5OuOzvIsoeXAH8CMoEQw2z9S5ZwADkC7wRygZvDAaR/3rVmtgv4EAoiRUREJrSqqmYuuqiMdev29Nse7soGmDcvn4ceir9qTUVFiNNPLz0cCCay+szzz9fz8MOVPPRQJb29jm98440jeCbjT5Du7O8Ce4BVzrki59yiaLcU1TMVTvbv/xGl7ClguZkFat0UERGR8WXv3mZOP72Urq5e9u1rObw9MoicP7+APXvi54qsqGiirGwqZsayZYVDdmlv3FjFNddsID09jR/96EweeuidvOlNpSN/QuNIkCCyDLjJOfdCiuoy2ub491VRyqrwuurnRCkTERGRCaKqqpl58/JZvXpmv3GRO3b0BZGlpbns399GV1dv1HN0dvZQU9PK3Lle21Iik2vWrt3NJz95LJ/73PGsXDkt4a7viSTImMjdQHaqKjIGcv37aImh2gfs04+ZXY03NpRZs2axYcOGpFcuUnNzc8ofY7LQtUqMrlPidK0Sp2uVGF2nxI30Wjnn2LMnxM6dzzJ1agtr1x6goKACgG3bajj11E42bCgHYOpU4y9/WcfMmYNDo+rqLoqK0njyyY0A9PY2s3HjXhYsqI36uJ2dvaxbV82ZZ3awYUP1sOufqDF7TznnErrhBU2vAXmJHjNaN7w1vcsDHrMWcMCUKGX/7ZcdNdR5Vq9e7VJt/fr1KX+MyULXKjG6TonTtUqcrlVidJ0SN9JrtX9/izv99Ducc8699FK9e9vb7nXOOdfW1uVWrfq96+joPrzvlVc+7J54oirqeR59tNJ94hOPHv598+Zad/nl98d83PvvL3cf+9jDI6p7EEGuE7DZJSn+Srgl0jn3SzObCrxkZr8FyoGeKPvdOvyQdlTt8+/nAjsGlM3FCyL3ISIiIhPS3r0th7ugjzqqmNraVhoaOti3r4UFCwrIyko/vO+CBfns2RM9zY+X3mfq4d+XLi1kx44GensdaWmDu6nvv7+ciy4qS+6TGYeCzM6eBVwKLAC+GmM3B0yUIPIZvNbV0xgcRJ4KvOacS2wxTREREQmsu7uXjIzUpazeu9cbDwmQkZHGqlXT2bJlPy0tXYfHQ4bNm5cfc3JNRUWI5cuLD/9eWJhNQUEW1dV9QWpYc3Mnf/97zaSbiR1NkFfu53gzmn+EF0yeE+V2brIrmAxmtsDMlptZZsTme4A24NNmlh6x79uBJcDvR7maIiIiR4ydOxt5z3vuS+ljVFU19wvywpNrImdmh82bVxCnJdJbrSZSrBna69bt5eSTZ1JUNJmmkUQXZGLNecCNzrl/S1VlgjCzDwML/V9nAFlm9hX/9wrn3G0Ru98KnA0swuuGxzlXZ2ZfBb4PPGJmf8Trxv5X4FXgxyl/EiIiIkeoiooQr7/eQEtLF3l5mUMfMAx79zZz3HHTD/++evVMvv/9Zykuzubd717Wb9943dnh9D6RwivXrFkzr9/2++4r5+KLJ1LGw+EL0hLZweBu37F0FfCf/m0mUBTx+1WJnMA59wPgo0AJcBPwSeAO4Gx1ZYuIiKRObW0rzsGrrwZfu6S6uoVbb31lyP3C6X3Cjj12Gjt2NPDSSwdjdmd7c0/6tLR0EQp1Mnt2/4Qt3so1/VsiGxo6ePbZOs49t39gOVkFCSL/BrwlVRUyoTF7AAAgAElEQVQJyjm3xjlnMW5rYuxbHuU8tzjnVjnncpxzM51zH3PO7R+4n4iIiCRPdXUrZgy53GA0f/3rbr7znS08/XRN3P327u3fnZ2Tk8Hy5SW0tHQxb15ev30LC7PJyEjj0KH+mf8qKpqYP79g0ASa8PKHkR5+uJI3vak0ZS2r402QIPJfgPlmdpOZLbHJmDVTRERERkVtbSvHHz+Dl18OHkQ+8cQ+3vOepdxwwyY6OwcligG8STv797dRWtq/BXH16pksWVJIevrgEGj+/MFd2l5XdsGgfRcvLqS8PER3t5egvLOzh7Vrdx8Rs7LDggSR9cBq4BrgdaDbzHoG3LpTUksRERGZVGprW1mzZi6vvBKsO7u5uZOXXjrI9defRFlZAb/5zctR96upaWXatJx+aXwALrhgIZddtjTqMdGWP6yoGDypBiA3N4OZM6dw++2vc/31T3LWWXeSlmacddaRs9hdkIk1t+Kl8BEREREZkZqaVs48cy7/8z8v0NnZMyjYi+Wpp2o54YQZTJmSwZe+dDLvec/9XHhhGQsX9m8tjEzvE2nlyhJWriyJeu558/LZu7d/S2R5eYiTT54Vdf83vamURx7Zw1vesoDrrjuBWbOiLnQ3aQVJNn5lCushIiIiRwjnHLW1rSxYUMCCBQVs397AMcdMS+jYJ57YxxlneK19c+fmc9VVK/nmNzfxy1+e22996oGTahIxf34+zz1X129beXkT73nPsqj7f+1rpwY6/2STugyfIiIiIlE0NHSQnZ1Obm4GK1eWJDwu0jnXL4gE+MhHVlBX18ZDD1X223fgpJpEzJ9fMKglsqIiNCi9j3gCB5Fmdo4/ueav/u0mMzsnFZUTERGRyaempvVwypwVK0oSHhe5e3cI52Dx4r6gLjMzjU9/+jh+97vX+u0bqzs7nsiJNc45nn12P729jpKSyZ84fDiCLHuYBvwW+ABgQK9flAZcY2a/B65wAxMsiYiIiESoqWk9PH5wxYoS/va38oSO81ohSxmYIObss+fxjW9sory8r9VwOC2Rs2fncvBgO9/97mYeeWQPaWnGtdeuGvR44gnSEvmvwAeBPwMnAFP82/F4Cbo/iJcGSERERCSm2tq+lsjly4vYvv3Q4VQ58TzxxD7OPHPw7OfMzDQuuWQRd9218/A2ryUyb9C+8aSnp/Hudy8lNzeTn/xkDQ888A4+9KHlgc5xJAkSRF4JPOScu9w5t8051+XfnnfOvR94GPhYSmopIiIik0Zkd3Z+fhYzZ+aye3co7jHt7d0891w9p546O2r5ZZct5e67d9Ld3UtbWzdNTZ3MnBl8tvRXv3oK1167iqOPLlYL5BCCBJGLgbVxytf6+4iIiIjEVFvbyqxZfa2E3rjI+JNrnnlmPytWFFNQkBW1fPHiQubPL2DjxiqqqpopLc0btMqMJFeQILIFiJ4oyTPb30dEREQkppqaln5rUa9cOXQQOXBWdjSXXrqEO+/cOaz0PhJckCDyceDTZnbMwAIzW4m3ks3GZFVMREREJqfI7myAFSuKh5yhnUgQecEFC9myZT9bt9YHnlQjwQVZseY/gKeA58zsHiC8ztAxwNuBTuBrya2eiIiITCbhROORq7uEu7Odc1HHITY2drB/fxvLlxfHPXdeXiZvect8fv/717j66jckve7SX8Itkc65F4CzgWeAy4Cv+rdL/W1r/H1EREREomps7CQzM428vMzD20pKcsjLyxyU6Dts164QixdPTWiM42WXLaW5uUstkaMgSEskzrnNwOlmNgNYhJcvcpdzri7+kSIiIiLhruzBqXdWrPBWrpk/v2BQ2c6dDSxZUpjQ+Vetms7xx09n2bLE9pfhCxREhvlBowJHERERCaS2tqVfV3ZYeFzk+ecvHFS2c2djwkGkmfGHP1ww4nrK0AIHkWaWC5QB0/BaIvtxzmlyjYiIiEQ1cFJN2MqVJdx++/aox+zcGYqZH1LGTpBlD3OBHwIfjXGcAQ5IT07VREREZLKJF0TGmlyzc2cjixere3q8CdISeSNwFXAfsA44kJIaiYiIyITU1dVLZ2dPv0kzA9XWtrJ69cxB22fNyqW311FX19ZvpZmWli4OHWpn7txgSxhK6gUJIt8J/NE598FUVUZEREQmrvvuK+epp2r49rffFHOfWC2RZna4NTIyiNy9O0RZ2VTS04OktpbREOQVmQJsSFE9REREZIKrrm6hvr4t7j7eajXRWxXDM7QjBZlUI6MrSBC5GViWqoqIiIjIxFZX10ZDQ0fM8nCi8WgtkRBOOt5/5RoFkeNXkCDyeuCjZnZyqiojIiIiE9dQQWQo1El6elrMMZMrVhRHaYlMPEekjK4gYyKvBvYC/zCzfwC7gJ4B+zjn3FXJqpyIiIhMHHV1bTQ2dsYsr6lpjZojMmzBggJCoU4aGjooKsoGvPQ+mpk9PgUJIq+M+Pl0/zaQw5vBLSIiIkeY+vo2mpu76OrqJTNzcGdnTU0rpaWxg8i0NOPoo4t55ZWDnHZaKZ2djpqaFhYsGLyKjYy9IGtnpyVwU45IERGRI5Bzjvr6dnJzM2hsjN6lXVsbvyUSwvkivXGR+/d3MX9+QdSAVMaeXhUREREZsVCok8zMNGbNyo05LjKRINJb/tAbF1ld3a3xkOOYgkgREREZsbq6NmbMmEJRUTYNDdHHRVZXt1BaGj9peDhXJEBNTZeCyHEs0NrZZlaMN+bxVKCYwUGoc86dl6S6iYiIyARRX9/OjBlTyMvLGFFL5KJFhVRXt9DS0kVNTTfnnacgcrwKsnb2QuBJYA7QCEwFDtIXTNYDLSmoo4iIiIxzdXVtTJ+eQ1ZW+ojGRGZmprF0aRGvv95AdXWXZmaPY0G6s78JFAHn4SUdN+ByvGDy20ATcGayKygiIiLjX//u7FhBZBszZ04Z8lzLlxfz/PP11Nd3U1ammdnjVZAg8jzgV8659XipfADMOdfqnPsy8ALw3WRXUERERMY/ryXSCyKj5Ypsbe2mq6uHqVOzhjzXypUlPPhgBcXFGeTkBBp5J6MoSBA5DXjR/7nLv4/8d+Jh4C3JqJSIiIhMLPX18VsiDxzwgkwzG/JcK1aUsHVrPbNnK4Acz4K8OnVAif9zE9AOlEWUZ9E/qBQREZEjRDiIDK84M7i8nenTEwsTjjqqiPR0o7Q0+vKIMj4ECSJfAlaBNwXbzDYBnzKze/FaNK8GXk1+FUVERGS8C3dnp6VZjCDSm3iTiJycDBYvLmT27KFbLWXsBAki7wH+1cymOOfagBuAB4HdfrkDLk1y/URERGQCCE+s6e11cYLIxDssr79+NQcOvJzMKkqSBVn28GfOuSV+AIlzbh1wGnAj8EPgLOfcvamppoiIiIxX7e3ddHT0UFiYFXNMpNednVhLJMBpp5WSn6/VlMezEY1Ydc5tBjYnqS4iIiIyAYXHO5rZ4dnZzrl+k2jq69tYsaIkzllkotGyhyIiIjIi4a5sgOzsdDIyjNbW7n77BO3OlvFPQaSIiIiMSHhSTVhh4eAubW9ZxMS7s2X8UxApIiJyBHPO8eije3DODb1zDJEtkeAFkQOXPhwYaMrEpyBSRETkCFZX18a11z7Gxo1Vwz6HlyOyr5XRm1zTt2qNc44DB9qZNk0tkZOJgkgREZEj2K5dIXJzM7jppm309g6vNXJgS2RRUVa/7uzGxk5yctK1hOEkoyBSRETkCFZeHuKii8pISzMeeWTPsM4xsKvam6HdF0RqUs3kFDiINLNFZvZPZvZlMyvzt2WZ2QIzG3pVdRERERk3du1qZNGiqXzmM8dz883b6OnpDXyOwS2R/SfWBM0RKRNDoCDSzL4LvA78Em/FmsV+UQ7wMvCppNZORERERmzTphqeeGJf1LLy8hCLF0/ljDNKKSzM4r77KgKfP3oQ2TcmMryutkwuCQeRZvYJ4PPAT4G3AocziDrnQsC9wNuTXcE49Ukzs+vM7FUzazezPWb2AzPLS/B4F+PWnOq6i4iIjKY//3kHd921M2rZrl0hFi0qxMz4zGdW8dOfPk9XV+KtkT09vTQ2dlBS0tfSWFiYNaAlUt3Zk1GQEa6fAv7inPucmU2LUv488OnkVCshPwI+A/wF+AGwwv/9BDN7s3MukU/A43itqpG6klpLERGRMbZtW32/1WPC2tq6OXCgnblzvfaXU06ZzZw5edx77y4uu2xpQuc+eLCdwsJsMjL62qWid2criJxsggSRRwH/E6e8Dpg+suokxsyOAa4F7nLOXRaxfTdwE/A+4A8JnGqXc+53qamliIjI2DtwoJ2Ghg66u3tpbu4kP79v+kJFRRPz5+eTnt4XAF5xxXJuueWVhIPIaPkfBweRbSxdWjjCZyLjTZAxke1AvK7ihUDDyKqTsPfjdaf/eMD2XwGtwIcSPZE/KSg/iXUTEREZN55/vp7jjpvOsmXFvPrqoX5lu3d7k2oiLVw4lX37WhI+/8DxkKCWyCNFkCByE/CuaAVmlgN8GHgyGZVKwMlAr1+nw5xz7cBWvzwR78YLOpvMbL+Z3Wxm+ldJREQmja1b61i1ajorVhTzyisDg0hvPGSkWbNyqa1tTThnpLec4eAgsrGx/8QaBZGTT5Ag8nvAaWZ2G3Ccv222mZ0PbADmAd9PbvVimgPUO+c6opRVAdMTSDe0Cfg6XiB5BbAOb0zn42qZFBGRyWLbtnpWrZrBypUlvPzywX5lu3d7M7MjTZmSQW5uJgcPtid0/mgtkQUFmbS0dB1OF+QFkUrxM9kkPCbSOfeImX0SuBH4gL/5Nv++E/i4c+4fSa5fLLlAtAASvG738D6dMfbBOXfqgE23mtnzwLeAz/r3UZnZ1cDVALNmzWLDhg2J1XqYmpubU/4Yk4WuVWJ0nRKna5U4XavERF6nffu6yM1No6gofdB+vb2O11/vYPny4QdfPT2Obdv209SUTmtrN888c6jfa/T887Ucc0wrGzZU9juuoKCXv/3tcRYuHDr989ath5g1K5MNG/qPaMvJMe6/fz1TpqTR0NDB888/RVra4Mk98eg9lZgxu07OuUA3YDbepJafAj8DrgPmBj3PSG7AC0BtjLI7AAdkDeO8mXjB6d8TPWb16tUu1davX5/yx5gsdK0So+uUOF2rxOlaJSbyOv3Lv2x0v/nNS1H32779kDvjjD+N6LFefvmAu/jie5xzzrW3d7vjj/+Da2vrcs4519PT60488Y8uFOoYdNynPrXePfRQRUKPce21G9wDD5QP2n7++Xe7XbsaXG1tizvzzOE9D72nEhPkOgGbXZLisYRaIs0sGzgVqHbObQduTl4YOyz7gJVmlu0Gd2nPxevqjtkKGYtzrsvM9jFKs8xFROTIVlnZxLx50UdQNTR0EAp14pyLmp4nEeGubIDs7HTKyqayfXsDxx47ndraVvLzMykoGNzaWFqaS01Na0KPESuReDjheFtbt8ZDTlKJjonsAR4FLkxhXYJ4Bq/up0Ru9Cf4HA9sHs5J/ePnAbUjraCIiEg8zjkqK5v6zWKOdOhQB11dvbS19Qz7Mbwgsq9dZMWK4sPjIr1JNVOjHldamkd1dWIztKONiQQoKvISjtfVaWb2ZJVQEOmc6wZqiFilZoz9H16X9ecGbP843ljI34c3mNkSM1seuVOMZOkA/4k3TnRt8qoqIiIyWENDB01NXTGDyPD2xsZYUwCGtnVrHccf3xdErlxZcniGdrwgcvbs3ISCSOdczPQ94TQ/mlQzeQVJNv4n4L1mdrNLbDWYlHHOvWBmPwU+bWZ3AffRt2LNY/RPNP4oXg7LyAD4K2b2RmA9UAnkAxcB5wBPM/bd9SIiMslVVjZh5rU4RhPe3tjYSWlpQiv69uMFcO0sWdKXwmfFihLWrt0NDBVE5iXUnd3Y2ElmZhpTpgwOJ7w0Px10dPSqJXKSChJE/hovyHrYzH4MbMfLsdiPc65y4LYU+RxQjjdL+mKgHi/4+48EgtwNwEq81D7T8LrrtwNfBn7ovHyTIiIiKVNR0cSyZUUJBJHDa4nctq2OY4+d1m81muXLi9mxo4Gurl52727k7LPnRj22tDSxIHLz5v284Q3RO/fCYyJbWrpYsKBgWM9BxrcgQeSLeF3IBqyJs9/gPAUp4JzrwVsz+wdD7FcWZds9wD2pqZmIiMjQKiubOO646axfvzdqeV93duB5ooA3HjKyKxsgLy+TWbNy2b27MWqOyLCZM6dw4EA7XV29ZGbGHvm2bt0ezj13XtSyoqJsXn31EI2NHZx44oxhPQcZ34IEkTfgBZEiIiIyQpWVTZxyyizuvnsnvb1uUA7FQ4famTYtZ9gtkVu31nPFFcsHbV+5soQtW/bT0NARs5s8IyONadNy2L+/lblzo88e7+7u5bHHqrjmmuOilhcWehNrDhzQxJrJKkiy8a+nsB4iIiJHlMrKZt73vqOYMiWDpqZOCguz+5U3NHRSVjZ1WC2RPT29vPDCgcPpfSKtWFHC/fdXsHBhQdzk3+E0P7GCyK1b65g9OzdmeWGhNyZSE2smryDLHoqIiEiSVFY2sWBBweGxgwMdOtROWVnBsFoid+xoZPr0HIqKsgeVrVhRwubN+wetmT3Q7Nnx0/w8+uhezj13fszyvtnZaomcrBJuiTSzsxLZzzm3cfjVERERmfwaGzvo7Oxh2rQciotzaGhoZ+HC/pNPGho6KCubSkVFU+DzP/vsfk44Ifo4xJUrSwBizswOmz07dsJx5xzr1u3hxz+OHRoUFWVTXd1Kd3cv+fmZCdZcJpIgYyI3kNiYyFGZWCMiIjJR7dnTzIIFBZgZRUVZg2Zoe0nGu5k7N5/nn68PfP4tW/Zz2mmlUcuKirIpLc0bMogsLc2joiIUtWzHjkZ6ehzLlxfHPL6oKJtQqJO5c/OGveKOjG9BgsiPxjh+CXAlXrqdX4y8SiIiIpNbuCsboLg4Z1AQ2dDQQWFhtp9rMdiYSOccW7bU8elPr4q5zzXXHMepp86Oe57S0lyeeqo6atmjj+7hnHPmxQ0Op0xJJysrTV3Zk1iQiTW/jVVmZt8Dnk1KjURERCa5yCCyqCg7ahBZVJRNYWFW4DGRVVUtdHf3Duoej3TppUuGPI83JjJ6d/b69Xv53OeOj3u818qarSByEkvKxBrn3CG8ZORfSMb5REREJrPKyqbDQV5xcfagpQ8bGjooLs72ZzgHa4ncsmU/q1fPHHEXcqyE47W1rVRUNHHSSbOGPEdhYbZmZk9iyZydfQhYnMTziYiITEr9u7MHB5GHDoWDyOAtkeEgcqRKSrJpbe2ira273/b16/dy1llz4iYhDysqylJL5CSWlCDSzHKADwM1yTifiIjIZFZREb87+9ChdoqKssnNzaCry9HR0ZPwuZMVRJoZs2blUlPTP82Pt0pN7NQ+kYqKspk2TS2Rk1WQFD+/iVFUApwGzAA+n4xKiYiITFbt7b20tHQxY4bXQldcnM2hQ+399jl0yBsTaWYUFmYRCnUwY0bukOc+cKCd+vo2jj66KCl1nTPHGxcZzinZ0NDB1q31/OhHCWX94xOfOJZZs4aut0xMQWZnXxlj+0HgdeA659wfRlwjERGRSayurpv58/tWiwkn5Y7U2NhxOPgqLPSSkScSRD777H5WrZpBenpyRqsNTDj+8MOVnH56KXl5ieV9DOeklMkpyOxsrW4jIiIyQnV13Ye7siF6ip9DhzpYvtwLwIqKshKeXJOsruywgQnH77uvgg984KiknV8mtoQDQzNbYGYxR8ea2RQzW5CcaomIiExOXhDZt950YWEWTU2d9Pb2recR7s4Olyc6uSbZQaQ3Q7vFr3crr7xykDPPnJO088vEFqR1cTfwrjjll/j7iIiISAwDWyIzMtLIzc0kFOprbQzniQQSTvPT0tLFrl2NHHvstKTVNbIl8sEHKznnnHnk5AQZCSeTWZAgcqiEU2kktiyiiIjIEWtgEAmDx0WGU/xA4i2R27bVs2JFCdnZyVt9uLS0b0zk/fdXcOGFC5N2bpn4go5zjBckrgAaRlAXERGRMdHQ0DEolU2q1NX1DAoivRnafYFiONk4JN4SmeyubPCWPqyubqWqqpny8lDM9bjlyBS3TdrMrgCuiNj0FTP7eJRdS4A3AH9JYt1ERERGxd1376Sioomvfe3UlD5OW1s3zc09zJ7df6Z1ZJqfzs4e2tt7yM/3ZkAXFmZRWzt0G82WLfv52MdWJrW++flZpKcbd9yxnTe/eX5CCcblyDHUwIYiYJH/s8PLBTkwx4ADmoHfAF9Oau1ERERGQUNDZ78xiamyd28z06ZlDErBE5lwvLGxg6KirMPLFibSEtnb63jhhQMcf/yMpNd59uxcbr/9dW666eykn1smtrhBpHPuRuBGADPrBT6nXJAiIjLZhEKdNDWlPojctauRmTMH/+mNHBMZOTM7XDbUmMja2lby8jKYOjUruRXGGxfZ0NDBSSclt6tcJj7liRQRkSNeKNRBKNSV8sd55pn9LFmSPWh75PrZkZNqIDyxJn6AW1HRRFnZ1ORW1jdnTh4LFhQkLYG5TB6apy8iIke8UKhrVFoiN22q4bLLogeRFRVNQHhSTd960153dvyWyPLyUMqCyGuuOY6srOTN+JbJI1AQaWZLgOuAU4FiBs/uds65JUmqm4iIyKgYje7s+vo29u9vY/78/EFlRUV9q9YM7M5OrCUyxMKFBXH3Ga7p02OuMyJHuCAr1hwLPAv8E5AFLAZagBygDOgBKpNfRRERkdQKhTpoakptd/amTbWcdNLMw2tmR4rszo5M7wOQn59Je3s3XV29Mc9dUdHEwoWpaYkUiSXIAIcbgE5gFXCev+2zzrk5wCfwZnJfk9zqiYiIpF4o1ElHRw8dHT0pe4ynn67h1FNnRy2LN7HGzCgoyIrbUup1Z6emJVIkliBB5BnAL51zr9GXdNwAnHO/Au4HvpPc6omIiKSWc45QqJP8/MyUdmk/9VQNb3xj9CAyMtn4oUPt/VoiIf6qNV1dvVRVtTB/voJIGV1BgsgCYKf/c/hTlhdR/iReoCkicsS7//4KXnihfqyrMS7deusro7Y6TCJaW7vJyEhj2rScYQWRf/97NX//e3Xcfaqqmmlt7Wbp0sKo5VOnei2NPT29NDR09muJhPi5Iquqmpk5c0pSlzsUSUSQILIWmA3gnGvCGw95VER5MaB3sIgIcMstL/Pkk/EDiyPRpk01fOc7W3jhhQNjXZXDQqFOpk7NYurUrGGl+Xn88SruuGN73H02barllFNmHU4gPlBGRhr5+ZmEQp00NARriUxleh+ReILMzt4KnBzx+2PAZ81sE14w+mlgWxLrJiIyIYVCnbz00kGOOWbaWFdlXOns7OGGGzZRWpo3ZMqa0dTU5AWRQ407jKWxsZMtW/bjnIsZJMYbDxkW7tL28kTm9CuL1xLpzcxWECmjL0hL5B+AaWYWnuv/VaAQWA88ijex5kvJrZ6IyMSzeXMt6elGbe346bIdD37zm5dZsKCA889fMGTKmtEUbon0xkQGb4lsbOzkwIH2w3keB3LO8fTTtUMGkeGlD72JNf1XnomX5qe8vCll6X1E4kk4iHTO/Z9z7iznXJv/+3PAMXh5Iz8DHOeceyI11RQRmTiefrqWs8+eS21t21hXZdyorGzi1ltf5ctfPjmhtaBHU2NjX3f2cFoiQ6FOZs3KZcuW/VHLKyqaMIMFCwbnh4xUXJzN/v1tdHb2kpeX2a+ssLBv9vbg86cu0bhIPAkFkWaWbWZnmdmyyO3OuT3OuZuccz91zu1KTRVFRFKjt9dx9dXraG5ObkDz9NM1XHLJYmprW5N63qA6O3v41KfW45wbeucUcs7xzW8+w1VXrWTu3Py44/vGQrglsqBgeLOzQ6FOzjlnXswgMjwrO1ZXd1hRUQ7l5Y0UF2cP2neolkil95GxkGhLZA9el/WFKayLiMioqqlp5Ykn9nH//RVJO+eBA+1UV7dw1llzaGzspLMzdXkHh1JT08qGDVW0tKR+Teh4HnqoktraVj7ykRWAFxCFQuOnJbIviBxevUKhTs49N3YQmch4SPBaInftCg2aVAOxlz5sb+/mwIE25szJG1QmkmoJBZHOuW6gBj8vpIjIZLB7dyO5uRnceefOoXdOUHhVkqysdKZNy6Gubuy6tKuqmgGor28fszp0d/dy441b+eIXV5OZ6f3JGW/d2ZGzs4c3JrKDE06YQSjUSV1d/9bn3l53eGb2UIqLs9m9O1YQGb0lsrKyiXnz8klPDzLFQSQ5grzr/gS818z0ThWRSWH37hAXX1xGTU0L27c3JOWcka1Os2blsn//2AWR+/Z5E3vq68euDmvX7mbGjCmcdlpfS9x4685ubOyksDB7WLOzOzt76O525OZmcOKJM9i8ua5f+caNVcyZk0dp6dAthUVFXhBZWJh4S6SWO5SxFCQg/DWQCzxsZm83s+VmtmDgLUX1FBFJut27QyxdWsQ737mEu+7akZRz9g8ip1BTM3bjIsNBZF1dcloig46t7Ozs4Wc/e55rrz2+3xg/Lx/j+GmJDKf4mTo1+JhILwDNwsw48cSZg7q0f/vbVw934w+lqCibtrbuQC2RWu5QxlKQIPJF4DjgHOBu4CVgd5SbiMiEsHt3iEWLpnLppUtYu3b3iMcvVle3EAp1smxZEQAzZ+ayf//YBZFVVc3k52cmpSVy7drdfP7zwRJw3HXXThYtmspJJ83st328dmfn5wfvzg6FvCAS4KST+geRr756iPLyEOefn1j7Sjh4jBZEFhVFb4n00vuoJVLGRpBk4zfQt2a2iMiEFw4i587NZ+nSItav38v55y8c9vmefrqGU06ZRVqa1+o2e3bumM7Q3revhWOPnZaUIPLFFw/w0EOVHDjQzrRpOUPu397ezS9+8SI33XTWoLL8/Eza2rrp7u4lI2PsR0iFQp0UFGTFbCF1znHddY/zve+dcXhcZyucXAAAACAASURBVOSxU6d6QeSKFSXs2dN0eNutt77C+99/FFlZiS3m1hdEDr6+BQWZNDd30dvrDr+/wEvv8453LEr4uYokU8JBpHPu6ymsh4jIqGpp6aKxsePwWLVLL13CnXfujBtE3n7765x55hzmzo2e729gQumZM3N55ZWDya14AFVVLVxyyaKkjMvcvr2BmTNzuffeXXz0oyuH3P+OO7ZzzDElHHvs9EFlaWnmJ/bujBowjbZwl3SsFD+trd089FAl//7v7cyalTvg2I7DQWRWVjrHHjuN556rY+XKEtat28sDD7wj4XqEr8XAdbMB0tPTyMvz6hc5ZlJLHspYGvt/AUVExkB5ubdUXLhV561vXcALL9RTXR19lZm9e5v59rc385nPPEZHx+Bub29VEi8fYNhYjons6uqlvr6NY45JTkvk9u0NXHfd8dx5584hx0a2tnbzq1+9xLXXroq5z3jq0g6FOuIuexieYX/w4OCxpZEtkcDhcZG33/46F164MGpAGEtBQSZm0YNI8MZFNjT01S8U6qS1tZsZM6ZE3V8k1QIFkWZWYGb/YWZPmNl2MzvN3z7d3748NdUUEUmuXbu8ruywnJwMLrywjLvvjp7u53e/e5UPf3g5ZWVT+da3nhlUXlHRhHP0W35u1qy8MZudXVvbyvTpUygtzR1xEHnwYDudnT1cdFEZvb29bNtWH3f/TZtqWLq0kKOPLo65T7zk2aMtHAjm5mbQ2dlLV1dvv/JwiqRDhwaPSfRWu+kL+lavnsk//lHNHXds5yMfCfYnMT09jcLC7KhjImHwrHZvzeyCIZOYi6RKwkGkmc0ANuOtmT0NWAxMAXDO1QNXAFenoI4iIklXXt4/iAS4/PJl/PGPrw+awNDc3Mndd+/igx88mhtueCPPPlvHnXf2zeZ+5plaPvnJ9bzznYv7/UGfNWsK+/e3jsmKMfv2NTNnTh7Tp08ZcZ7IHTsaWLasCDPj0kuX9nvu0WzdWs8JJ8yIu894SfPT3t6Nc5CTk46ZUVCQNWgFo3AQfuBA9JbI8MQagFWrpvPqq4d4wxumsWhRYeD6XHLJIubPjz5cYmDrrbqyZawFaYn8JjAbOBU4k8GJx+8BzktSvUREUmrXrkYWL+7/B/joo4t561sX8MMfPtdv+5137uT000spLc0jLy+TG288ix/+8Dk2barh619/mi984Un+7d9O5LOfPb7fcTk5GeTkZERtwUq1qqoW5s7No6Qkh0OH2unp6R36oBi2b29k6VJvxvk73rGYhx/eE3cVnG3b6lm1Kn4QOV7S/ITT+4SD/4KCTEKh/s8tHEQeOjQ4iGxs7OgXROblZXLuufO46qpjhlWf668/KWqeSBgceCu9j4y1IEHk24CfOeeeJfos7V3A/KTUSkQkxcIzswf67GeP57HHqnjuOS9pdE+P43e/e5UrrujL9bdkSSFf+copXHnlIzjnuOeet3HeedG//sZqhnZVVTNz5+aTmZlGQUH/sXRBbd/ecDht0YwZU1i9eiYPPBB9qcienl5efPEAq1YNnlATabyMiQxPqgmLNi6yvr6dnJz0mC2RkWMiAW688exBaY2SIfKa1dS0sGFDFYsXB2/tFEmWICl+pgPx+jB6gbGfZiciMoSenl4qK6Pn1ysoyOKLX1zNN77xNH/600Vs29bGzJm5HHdc/6DowgsXcvLJM5k+Pf6khnCuyBUrSmLu89prh/j97187/LsZfPSjK0fUVblvXwurV3uBjNel3ZZQap5oduxo4KKL+matX3bZEv73f1/mssuWRtm3kRkzcoacUDJeurPD6X3Coq2fXV/fxtKlhVFblKMFkalSWJjFoUPt3H7769x88zbe//6jRpSSSmSkgrRE1gBL4pSfAFSOrDoiIqlXXd1KUVE2eXmZUcsvuGAhM2ZM4bbbXmXduuaYEySGCiAhsRna3//+s2Rne+lhjj12GocOdXDvvbuGfiJx7NvXwpw5eX49c4Y9ucY5168lEuCss+ayd28zO3c2Dtp/69a6IbuyYfx0Zw8MAqOtWlNf38ZRR/3/9s47PI7qatzvUW9WsyzZso1t3LsBF4oxNhgSSiBAIKEGQgghJEAg+T4IJSShpEAgIUBC+VFCAqF9EEoAx2CwARsDtnGvyE2WJVu9t/v7487Kq9XuakfaVT3v8+wj+86dmTtHo9kzp2YEiYkMPQO7M6SlxfPEExt49dUdPPXUyfz4x9Pb1K1UlK7Ezd33FnCFiAzx3SAic4BLsXGRiqIoPZpArmwPIsKtt87mb39bS2lpU0BXdSi01z9769ZSNm8u4ec/P5LzzhvLeeeN5ZJLJrBsWX6HzwmH3NlAp5Jr9u+vJj4+ulU9x5iYKM44YySvv962SZmNhwzuyoae4872VSIDubPHjUsPEBPZdZbIuXNzufnmmfzjH6e0UuoVpbtwo0T+CmgEVgH3YOMivysizwEfAvnA78K+wiCISJSI/FRENolIrYjsFpH7RKT9Tvdh2F9RlN7JV1+VtZs5O2LEAG644QjOOiutU11VcnKCx0Q+88xGvvOd1l1Npk/PYufOCr+Wr1BobGymsLCGwYNtYezOWCK3bi3zq7CcfvpI/vOfvDaZ52vWHGDGjFAtkd3vzvYfE9k2sWbcuAyKi/2V+GmdWBNJRo9O4/zzxxIdrdZHpWcQ8p1ojCkAjgZWAN/DZmdfApwPvAscb4zp6tYM9wN/BDYAPwFeBK4FXheRUK6ts/sritIL8a0RGYhvf3scs2YltTsvGNnZgZXIgwdrWbRoN9/+9rhW43Fx0cyePZiPP97XoXMWFtaQmZnQoph6YiI7gq8r28PEiZlERQnr1h1sGauqamb//mrGjGk/2aPnWiJbu7Obmw3FxXWMHZseUrFxRelPuFKUjDG7jTFnAZnYUj9HA4OMMd8wxuyJxAIDISKTsYrfK8aYc4wxjxljbgBuABYA34nk/oqi9F781YiMFMGys//1ry2ccsphfhNe5s4d0mGXdn5+JUOHHnKodMad7akR6YuIcNppI3nrrUNZ2nl5dUydOjAky61v95VI8PzzW9pVxD0lfjzYxJpDlsjS0jpSUmLJzIyntraJ+vpD3YpqaxsBW8pJUfojHbK2GWPKjTErjTGfdoP10cMFWGvoAz7jjwHVwMUR3l9RFB/eeiuvpUVcT8ZfjchIESgmsr6+ieef38Ill/hP2pk7N5ePPsqnudl9ofK9e6taeoJDZ93ZpS01In059dQRvP32zpY1fvVVfZss9kCkpUXenf3ss5u4++6VQWtkWkviocSY1NTWMZEHDtSQlZWAiJCREd/KGtmVSTWK0hNxrUSKyGwRuUdE/uV87nESa7qaWdiyQp96DxpjaoHVzvZI7q8oihfNzYa7717Jhx/u7e6lBKWiop6qqkZycjrnpg6VtLQ46uqaqK5ubDX+5pt5jB+fETBBYujQFNLT49m40f17urVEHup6kpWVSFGRe0tkU1MzO3aUBXRPjxmTTlpaHF98YWtq7thRH1I8JFhlrays3nU3n02bSmhsbL9wemFhNQcO1JKeHs+bb+YFnGcTYw5l6fu6sw8cqG3Jws/MjG8VF9mVSTWK0hMJ2QYvItHAo8BltO1W8z8i8gzwfWNMk+++ESIXOGCM8fcquxc4VkTijDGB/CUd3l9EfoDT4jEnJ4clS5Z06AJCpbKyMuLn6CuorEIjEnLataue4uI6Fi1ay8CBXRrd4oq8vHqysoQPPvggpPnhkFVqKrz++vvk5FhlxRjDQw8VcvbZaUGPPXJkM8888xGnnurOavrZZ8WMGhXHkiWlAFRWNlFQUO76OgoLG0lKgpUrPwo4Z8KEZh5//CPKy9PJy6ujsnIzS5YEb4t4iGYWLXqfuLjQ7BnV1c384hf7uOyyTGbMCF5e6dNPqxk1Kop58+Dee1eQnLyT6Oi2PaZ37y5kx45aliyxJZW2b69j9+6yFlmtWFFFU1MdS5YsQaSGJUs+pbDQhh9s21YH1LiWqz6nQkdlFRrdJSc3gRy3ApcDrwK/xyajAEwG/gdb4icPm8XdFSQBgXwhtV5zAimRHd7fGPMoVqFm5syZZv78+SEst+MsWbKESJ+jr6CyCo1IyOmvf13LxIkNlJdH9+jfwWuv7WDatHzmz58b0vxwyGrEiHcZOXIqc+YMBuCTT/aRkFDJj370tVa9tn2Jicnnr39d6/r8Tz/9XxYsmMRxx+UC1kr8i188xzHHHE98fHQ7ex/iv//dzdSpwX+fhx9ewUUXvUNu7gwGDCjgG98IvfttRsbLTJs2h8GDQyuI8cQT64mNLaKkJIP5849uZ+2fcMYZo7noovGsWPFfiouHcd55Y9vMu//+N5g3bw4TJmQAMGRICW+88VHLNW/fvp7Jk2uZP/8o3nxzGcOG5TJ//uEANDfvZvjwba5/P/qcCh2VVWh0l5zcuLO/ByxyklCWO3GR5caYT4wxZwPvOXO6imogUDBKgtecSO2vKIoXy5bl8/3vT2Hz5tJO9Wn2ZteuCp54Yj3f+c7b/O53nwWcd+ml71JYGNqfa3s1IiOBb5mfZ57ZxKWXTgiqQALMnJnNpk0lroty+7qzo6KkQ3GR27YFjof0cNhhA8jNTebRR9cxapS7+EA3GdoNDc384x+b+eUvZ7Ns2b523eArVhQwZ04OANdeO4NHHllLXV1bR1l7dSJbu7MTWnWt0ZhIpb/jRonMBv4dZPurzpyuIh/IEhF/f8FDsa7qYE+nzu6vKIpDeXk9mzaVsGDBULKyEsjLq+jU8Q4cqOG8897iooveYffuSk44IZdNm0r8zm1qambVqqKQy+Fs21ba5UpkdnZiixL51VdlrF17gDPPHNXufgkJMRx5ZDbLlxeEfK6mpmYKCqpbJdaAJ7nGXVzkli3+M7N9Oe20kbz99k5GjXIXH+ima8277+5k+PAUTj99JGDLNAViz55KamubGD3axnJOn57FxIkZvPDC1jZzy8vrfOpExraqE+lJrAHIyIhvVbtTy/so/R03SuQWYHCQ7UOcOV3FSuz6Z3sPikgCMAMIbLYIz/6KojgsX17AkUdmk5AQw8SJmWzY0LmiDb///eccdVQ2S5acwx13zGHhwsMCZn2XlNTR1GRYsWJ/u8etrm7k00/3t7iVu4rBg5PZv9+u/+9/38z5548NuSzM8cfnuir1U1RUQ1paXBu3dUdqRQaqEenL178+AhFcK5Gh9s82xvDMM5v47ncnIiLtlj9asaKAo48e3MrS++MfT+exx9a1lOUBmyFfX99MUtKh30Vyciw1NY0tyTvelsiBAxNada3RxBqlv+NGibwHuEZEpvtuEJEjgB8Bd4drYSHwL2zXnOt9xq/ExjL+wzMgIqNFxLeORsj7K4oSnGXL8jn+eBt/N2lSZocyij18/PE+vviiiGuvndHSmWPQoMB1Dg8cqCUlJZYVKwradXF+8MEeZszIIjOzbV3GSJKdnUhhYTWlpXW89VYeF1wwrv2dHDwKU6hZzPn5Va1c2R7cKpH19U3s2VMZktU2JyeJhx6az7Bh/nuRB8KTod0eq1YVUVZWz/z5w4D2FWtvV7aHiRMzyc1NYe3aQ8XRKyoaGDAgrpWyGRUlpKTEUllprZEHDtQwaJBVIjMyElqV+FElUunvuFEixwE7gM9E5E2nPeC9IvIWtkzODmC8iNzu9bktEosGMMasBR4CzhGRV0Tk+yJyH7YDzQfAP72mLwY2dmJ/RemzNDY2t7LOuMUYw7Jl+cydOwSwX9YbN/p3PbdHXV0Tv/nNp9x666xW1qG0tDhqahr9rrOoqIZp07IwBnbuDO5Gf+utnZx66sgOra0zeGIiX3hhKwsWDGPQoNDLC40cmUpdXVPICuDevVWtCo17cOvOLiioJisrIeREnPnzhxEVFTzG05dQYyKffnojl1wyoeX4c+YMZtWqImpq2t4PxlirtD9r84wZWaxeXdTy//LyOr9KoHeZH293tm+JH19XuKL0N9xkZ9/h9e9TnY83RzofbwzwG/fLCpnrsRnhPwBOBw4ADwK3G2NCiezv7P6K0ut57bUdfPZZIffcc2yH9t+2rYzoaGHkSGuxmjgxg40bizHGtJs44stjj61j3Lj0FouTBxFp6boybFhrK1tRkbUUZWUlsGJFQcs6fKmoqGfFigLuuusYV2sKBzk5SeTnV/Hcc1t4+OH5rvYVEYYMse7wUJTPvXsryc31b4ncurU05PMWF9cycGDwMjqdJRR39p49laxcWcjddx+6PwcMiGPSpExWrtzPvHlDW83/6qtyYmOj2twnANOnD+LNN79q+b9NjPGnRNrkmvr6JqqqGluSZzIzE/wUG1clUum/uFEi248C72KcmpT3OZ9g80Z2Zn9F6Q6ef34L99+/quX/UVHCU0+dzPjxGWE9z7ZtZZ1yP1srZG6LwpiVlUhCQnRAt2ogvvqqjH/+cwuvvHKa3+1ZWQkUFdUEVCJHjUpl6dL8Nn2oPSxevJvZs3O6xf2YlZVIcXEts2blMHFipuv9c3KSKCioYsqUgW22vfjiVp5/fgsLFw7n5JMPY9++Kr/nyMpK5JNPQk/QKS6uJTMzspnHaWlxAVtCenjqqY2ce+5okpNbu8rnzrUubV8l0rqyB/t9gZkxI4u7717Z8oITyB1tu9Y0cPBgLQMHJrRYQK0S6VtsXLOzlf5LyO5sY8zOjnwiuXhF6cts2FDMNddMY9Gis1m06Gxmzsxhx46ysJ9n164Kduwop6GhY8Z3jxLpzaRJ7pNr7r33C666akrAmoE2LrKtS7eoyLobZ8/O4dNPCwK2CXzrrZ2cdtpIV2sKF7GxUQwalMill/pvcdgegwcnUVDgX9lat+4gM2YMori4jiuvfI9XXtnu1wrntsSPVSIjGzvanjs7P7+KN9/8issum9Rmm0eJ9MW6snPajIOVY3S0sHdvFRA4uzolxbqzvV3ZYN3cdXVNLaWCNDtb6e90qHe2ovR0Ghub+fe/d7huqdaTKCioYsSIVFJT40hNjSM3N7ldq01H2LXLxhHu3Bm4ZEogqqsbWbPmAEcf3Tr+zMZFulMiN2wo4eSTDwu4fdCgRL8Z2p7Eh6FDU0hOjmXbtrYu25KSWlavLmrjJu9KnnnmFBYs6Nj5Bw9OCvi7z8+vYt68odxyyywWLz6bl146rc3vA9wn1hQX10VciWyvxM/f/raW888fy8CBbdcxYUIGFRUN7N59KA62udkEzb4XEWbMGNQSFxlICbTramiVme3Z38ZF1gbdX1H6C66USBEZISJ3icgLIrJYRN7z+SyO1EIVxQ0PPriGm276uJXrqbeRn19Nbu4hq5xNznBXoqU9mpsNe/ZUMnt2Dlu3urdyrlxZwJQpA9u4Gv2V+amvb2Lv3sqA6zh4sLaV1ceX9pRIgKOPHuy31M+77+7i+ONzWyXrdDWHHTbAdYyoB+vO9q9E7ttX1XKfREUJ48dnEBPT9tE+cKBNrAn1xaq4uJaMjMi7swPFRO7cWcGiRbu5/PK2Vkiw1zp3bi4ffXSoPujKlfvJyIgP2hd92rQsVq8+AARWAj0xkb6WSLAZ2iUlVo5lZRoTqfRv3PTOPhN4EYgFyoGOpV8qSoRZvHg3r7/+FSNGDGDPnkq/VoyejjGGgoIqBg8+9GWYk5PIunUHg+zlnv37q0lLi2PatIGOBW+Eq/0/+6zQr+vQJte0fkTcd98qNmwo5u9/P6XN/JKSOlJSYomLC5wJnJWVyJdfHmgzbt3ZVomcM2cwb76ZxyWXtHYb/+c/O7n44o65knsCgdzZxphWSmQwkpNjiY4WKittWZv2KC6uZdIk9/GbbkhNDezOfuSRL7noovGkpwdWZOfOHcK//rWV4uJaFi3axYEDtVx3XZsqdK2YMSOLt9/OA6wS6e/5MGBALOXl9VRXN7SyRIJVxg8erKOmponYWAl6zypKX8eNJfJ3wG5gujEm3Rgzyt8nQutUlJAoLGzkl79czv33H8+ECRkBLV89nYqKBkSk1Zd9Tk5SyK39QmXXrgoOO2wAY8emu8rc9bBhQzGTJrVN9sjNTaa+vqnFcrhhw0FeemlbwPX7s/j44i8m0hjTklgDMHt2Dp99tr+lUDRAYWE1mzaVtNSx7I3YYuVtZVdaWkdsbHQbS3Ag3Li0S0rqyMiIdEykf3f2tm2lLFuW324M6XHH5VJT00hZWT233DKbJUvO4Vvfatsf25tJkzLZvr2M2trGoO5sa4msbaNEZmTEU1JSS1lZnSbVKP0eN0rkSODPTn1FRelx1NQ08thjB7n66mlMnz6IYcNS2LOndyqR+/ZVMWRIa5ecb//lcOBRIseMca9EGmPYuLHEr7VKRFriIpuamrnjjhXceOMRFBbW+HWneiuCgfDnzq6qssq2R4nKykokJyepJR6zuLiW3/xmJQsXDg+53mFPxPO7900asvdJ+1ZID25qRdrM5MgqSQMGxFJV1dCm1/pDD33JZZdNatdimp4ez4svnsbNN89k5szsluL0wUhIiGHMmHTWry8O6s6urGzw+3JjLZG1Gg+pKLhTIr8C9LVL6bH89refMWRIDBdeaEu8DB3ae5VI68purRxkZydRWFgTMPu4I3iUyJEjUykoqHZVdHzfvmpiYiSg8ufJ0H7++a0kJMRwwQXjiIuL8uu+7KgS6W+/OXMGs3x5AW+88RVnnfUGw4al8ItfzAr5unoi8fHRpKTEtqpRCDapJhRXtgdfS+Q//7mZL74o9Du3KyyR0dFRJCe37lW9dWspn31WyIUXjo/YeadPt0XHAyuR1p3t3xKZQElJnSqRioI7JfIB4PsiEvoTS1G6iJUr97N0aT4XXJDRkrzQuy2R1W0skfHx1m1ZUhK+ZCGPEhkbG8WIEQNclRCyruzAMXMTJ2awbFk+Dz/8JbffPhsRYdCgJL/JMaEokZmZCZSW1rWyWgVSIh9+eC2PPbaehx6az//+71HdmlATLvxZou19Evoj2dM+0hjDn/60mrvuWsnSpW3L5BhjuqTED3iSaw69WCxevJszzhgZ0d/Z9OlZrFlzIGBiTOvEGt+YSJudrUk1iuKuTuSjwGPAehH5lYhcLiKX+n4it1RF8U99fRO/+tWn3HzzTBITD93Sw4al9NqYyEBuypycxLC6tD1KJODERYauRG7cWBy0cPakSZl88UUR5503ljFj0oHA6/f3Ze1LbGwUqalxrTLuPTUivZk7dwi33z6bF188lWnTskK+np7OkCFJ7NvXWnb5+ZVtXjaCkZVlrbn33vsFS5bs5frrZ/j9fVRWNhAXF90lIQC2f/ah36m/uqPhxlPmx1oT2zrYBgyIcyyR/rOzrRLpv2WiovQnQlYiRSQHOAc4DLgNeAJ4yufzZJjXpyjt8uSTGxk+PIWFC4e3Gs/NTaagoLpNvFVvoKCgulVmtodwxkUaY9i1q5LDDrOFqd3GRW7cGNwSOWJEKldcMYmrrprSMuZxyfsSiiUS2rq0/e2XkBDD2WeP7nNZszk5bZNr9u2r9tviMBBZWQk8//wWVq7cz5NPLmTChEy/vw9bI7JropfS0uJbkmvKyurYvLmUmTP9FwsPF7m5yRhjqxMESqyx2fDSJmnJ07VGWx4qijt39l+BWcD9WGVygZ/PieFeoKIEY9euCp5+eiO33jqrTQ2+uLhoMjMTAtbX68ns29c2JhLCq0QeOFBDUlIMKSn2i3Ds2DSXSmRJUEtkVJRw441Hkph4yC2ZnZ3oN0O7o0rkgQO1Ie3XF/D3u8/PryQ3N3RL5IQJGRx1VDZPPLGQ9PT4gJbhrnJlQ+takcuXF3DkkYMibgH1FB03xpCS0jazfcCAWMrK6v1WDPD0z9aYSEVx1zv7JOBPxpifRWoxiuIGYwx33rmS731vUsAezUOHJrN3b6WrHs49gYIC/7Fu1pIXHiVy587KFlc24KrMz8GDtdTUNDJ0qLsQ6ezsJLZvb+syD1WJ9E0MKSqqYcyYNFdr6K0MGZLUps2ftUSG/juYPHkgjzyyoOX/2dn+X0q6om+2B++uNV3hyvYwfXoWK1fub+mL7Y1HsfR3T3o61pSX13P44f3j3lOUQLixRNYB2yK1EEVxy/vv76GgoIrvfndiwDk2uaaqC1fVeZqbDfv3+3dnB+uh7BbveEiw2exlZfVUVARuQ+fBxkNmuO7AEsgSabNg27d8eWL6PHgXGu/r+Hatqa1tpKKinoEDO379aWlxNDY2U1XV0GrcdqvpKkukLThujGHZsn1dVs9zxoysgO7o6OgoUlJi/d5bKSmxNDQ0U1hYo+5spd/jRol8Ezg5UgtRFLesWLGfb35zNLGxgW/joUN7X3LNwYM1DBgQ69elFyimsCNYJfKQhTYqShgzJo1t29pPrtmwIXhSTSD8WVKtAmNCKpjtW3A8VAtmX8DXnV1QUE1OTpJfS1qoiIjf30lX9M324Ems2batrKVKQFdw5JHZ/OUv8wNut0pkWxnY/tkJ5OWVqztb6fe4USJvAIaLyJ9FZLR0tAmsooSJ7dvLGD06uDspHGV+6uqawt4pJhjByraEMzvb1xIJoSfXtJeZHQhriWxb6zErKzEkq2bbmMj+o0QOHmyVSE+xdrc1IgORk5PYxrpdUtJ17mxPiZ+lS60ru6u+WqKihLFj0wNuT02NC2jlzsyMZ9euCrVEKv0eN0rkAeAo4BpgC9AoIk0+n9ArFStKJ9m+vazdeLhwlPn5z3/yuOuulZ06hhtsZnYgJTJ8iTX+lEh/yTX+ipu3VyMyEFlZiRQX17ZqS+jGmuipcwi2tFNVVWPQ3sp9iYSEGJKSYltKHLntVhMI206ztWJ/8GBXJtZYd/ayZfk9qjXlgAFxAUMsMjMTaGhoVkuk0u9xk1jzDBC+VhmK0gkqK+spL69r90s0HF1r8vIqOHgwtFZx4cBmZvvPuE1NPRTDFmq/ZH/Y8j7+lMh0Pvhgb8v/ly8v4Kc/ThPUMwAAIABJREFU/ZC//e3ElpqLnp7CI0e6dzvGxkaRlmYTE7Kz7TW6sSZ6x0R6akR2xp3b27AvEVUMHJhAfn74lEjfF5OSkq5zZ6elxVFQUMXOnRXMnh3Z0j5umDgxg9Gj/VsqMzLsi0taWv94gVGUQISsRBpjLovgOhTFFdu3lzNqVFq7CkROTiIlJXXU1TV1uGzIrl0VlJaGr0tMexQUBFYOvGPYRo3qeGZoZWUz0dHS5kvQO0N72bJ8brrpI84883DuuGMFL7xwKjExUWzaVML48ekh9Sn2R3a2dcl7lEg3yTEed7Yxxm8h6L6OJ7Fq0qSB7NtXxVFHZXf6mNnZSeTllbcas5bIrnNnb9xYwpw5gzv1YhRugrXKHDjQ3nft9fZWlL5Ox74FFKWbCSUeEmyW5eDBSeTnd9wauWtXRVhbDbaHv5aH3ti4yM4l1xQVNbaxQoJV0hobDS+/vI2bbvqIBx+cz003HUVaWjz//OdmoOPxkB583adu3NlJSTHExERRUdFAUVH/qRHpwTs7P1yWSE+spTc2JrLrEmvAdhrqLWRkJJCUFBM0qU9R+gOu/gJEJNppb/isiCwSkSOc8QxnfGhklqkordmxoyzkGm2dKfPjcfuWldV3WeebQIXGPYQjLjKQEilikw3+8IcveOSRBRxxxCBEhNtvn8Vf/7qOgoKqDsdDegil60zw/RM4cKAmpFaJfQ3vMj/79oUnscY3O9v2ze5Kd7a1ePakeMj2GDgwQeMhFQV3bQ+TgA+w7Q3PwnanyXA2lwO/Ba4O8/oUxS+hWiKhc8k1JSV1REUJKSmxVFQ0tL9DGLCFxoNZIiOnRAJcffVUnnnmZKZOPdR3etSoNC68cBx33/2Z06kmw+++oeC7frddZzxxkf2pvI8Hj9WwudkELEjvFt/s7IqKBhISorusbWRCQjR33DEnaKZ0TyMjI14zsxUFd5bIO4CZwNnA4UBLMJoxpgl4BfhaOBenKIEIJTPbQ2eSa3btqmDEiAFkZMRTUhL55Jr6+iZKSuqCKkfh6FpTVNQYsB7fsccOYdy4tkrilVdOYevWUvLyyhkzpuNf+L5lftwWDPdYMvtToXEPgwcnU1BQxYEDNaSmxoWlPWBWViKlpfU0NFhLuy003nUJIyLC+eeP7bLSPuFgwoRMvva1Ed29DEXpdtwokecBjxpjXgP8+fW2ASPDsShFCUZNTSNFRTUMGxZaK8PO1Ir0ZDBnZMRTWtp+J5fOUlhok0WCJa2Eo2tNMEtkIOLjrcXohBOGdspKNWhQayXYvTu7f1siCwqqw+bKBoiJiSIzM76liHtX9s3ureTmJvPDH07t7mUoSrfjpsRPLrAmyPZqoGtaDSh9lieeWE9lZQM//OHUgFaWr74q57DDBhATE9o7UGe61uzcaZXI6uqGLrFEFhS0rxyExxLZxPDh7v9c58wZzJw5gzt1bu/Emvr6JiorG1xZvjxda/pToXEPHtnt3RuepBrv4+7fb93jXRkPqShK78aNJfIgECxxZjKQ37nlKP2dl1/exuefF3LOOW/y+eeFfue4iYeE8Fgi09MTuiRDOz8/cI1ID53Nzi4srKapyXRZCRdfvPtnHzxYy8CB7mo99ueYyMTEGBISotmwoTgiSiR4LJFa/1BRlPZxo0QuBi53EmxaISKjgO8Bb4drYUr/48CBGoqL63jyyYVcf/0MbrxxKXfeubJNVvSOHe6UyMzMeOrrm6msdO+OPqRExnVJrchg3Wo8ZGXZ2peeGDY3NDU1c8stnzBvXkq3xaBlZMRTXd1IbW1jS8FwNwwaZGMqi4trW+r19ScGD05i1aqisLmzoXVPdnVnK4oSKm6UyF9hs7FXYrOwDfB1EbkH+AKoA+4J+wqVfsMXXxQxY0YW0dFRnHzyYbz22hl8/nkhS5e2NnBv3x56eR+wgftDhyZ3qMzPoZjIrrFEhpJx6xvD5oaHH15LQ0Mz3/hGakeX2GlEpFNxjYMGJbJlSykpKXFdlkHck8jJSWLduoNhtkQe6sneld1qFEXp3YSsRBpjtgEnAY3Ar7HZ2T8D/hfYDZxkjNkdiUUq/YPPPy9s1YEjLS2eiy4ax8svb281z01mtoeOuLRLS+tobLRuX5udHXklMljLQ29sbJy7uMgPPtjLK69s59575xId3b2ZsLZrTcfiGgcNSqS0NHgGe19m8OBkGhqaw2qJ9HVnd2V2tqIovRdXxcaNMZ8bY6YD04BvA98BjjLGTDPGBEu6UXo511yzhNWriyJ6ji++KOTII1u3cTv11JGsXLm/xepWX9/E3r2VAcvTBKIjyTW7d1dw2GHW7ZueHt9F7uyqoDUiPWRnu8vQ3ru3kltv/YT77pvbI8riZGcnUVRU3aEyPWlpccTERPVjJdLeH5FUIvtjmICiKO5xU2x8nogMAjDGrDPGvGiMecEYs8rZniUi8yK1UKX7aGpqZvnyAr788kDEzlFV1cCOHeVMnTqw1XhyciwnnTSc117bAdhs6dzcZNduzI5YIj2ubMAp8dMVlsjQCkj7tg4MRmNjMzfcsJTvf39yGyW9u/D0z+6IO1tEyMpK6Hd9sz3k5CSRmBgT1mLXbS2R/VO2iqK4w40l8n3g5CDbT3LmKH2MHTvKqalpZOvW0oidY/XqIiZNyvSrHJ577mheeWU7xhgnM9t9oeuhQ1PYtavC1T7eSmR6eseKjW/eXMInn+wLaW5VVQP19U2kp7fvSvSOYWuP557bQlJSDJdeOiGk+V2BRwnuaOvCQYMS+60lMicniSFDksOaGOVJrPG0PFRLpKIooeBGiWzviRWN/yLkSi9n3bqD5OYms3VrWcTO4RsP6c0RRwwCYNWqItflfTzMmpXN2rUH2bkzdEVy167KVpZItzGRxhhuv305f/nLlyHNLyioJicnKSTlINTWh/v3V/PII2u5/fbZPaojiCexxm3LQ+/9+6sSOXNmNnfddXRYj5mUFEN8fDSlpXWUlNRpTKSiKCHhKiYSm5EdiGOByPk7lW5j3bqDnHXW4WzbVkpzc7BbIDSqqtr2oA6mRIoI55wzmpdf3u66vI+HtLR4Lr54PI88EppCB4daHgKkpsZRWdnQptxQMJYs2UtNTSNbtpRSVta+ArpzZ3nIBcBDVSLvueczLrhgHKNGuZdZJMnOTuqwOxvgvPPGMHdubgRW1vOJi4tm+vRBYT9udnYi27aVdWnfbEVRejdBlUgRuU5EdojIDmfoAc//fT4l2LI/b0R8xUqXs27dQY45ZggDBsSxb5/7Mjne7NtXxbx5L5GXV94yVl/fxLp1xRxxRFbA/c4663AWL97NunUHGT26Y+VpLr10AsuW5bNtW2hueW93dnR0FAMGxFFeHlqtyeZmw5//vIbrrpvBzJnZfPxxQbv7bN5cwoQJbXtW+yMUJfKDD/awcWMxP/jBlJCO2ZV43PEHDtR2KLbxhBOGuSrzpLRPTk4SGzcWa3kfRVFCpj1LZCmw0/mA7Vqz0+eTBywFbgOui8gqlW6jvr6JrVtLmTQpk7Fj0zodF7ljRxkNDYY771yJMdaquX59MSNHDiAlJXCiQFZWIrNm5bBnT2WHrWopKXFcfvkkHnqofWtkZWU91dUNraxkblza7767i7i4KE48cRhz5+aybFn7zZw2by5l3LjQ4j1zcpIoKqqhsdG/ZbSmppE771zJL385J2D7yO4kOzuJPXsqSU6OUatXDyEnJ4lNm0q0W42iKCETVIk0xjxtjFlgjFmAVRhv8vzf63OiMeZMY8zdxpjONfRVehxbtpQyfPgAkpJiGDMmvdNKZF5eBd/85uEcPFjLW2/lAcFd2d5861ujGTYshcRENy3fW3PBBeP5/PNCNm4sDjpv165Khg8f0CqO0CbXtK9ENjU185e/rOHaa6cjIi1KpEdpDsTmzSWMHx+aJTIxMYYhQ5LZvt1/nOrTT29k+vQsjj12SEjH62qSk2NJSortt3GNPRG1RCqK4hY3xcZHGWP+HcnFKD2PdesOMmWKLbszdmw4lMhyRo9O4447ZvP7339BeXl9yErkvHlD+fvfT+nU+ZOSYrjyyin85S/By5p6u7I9hKpEvvlmHhkZCS0K3IgRA0hIiGbLlsCyq65uZP/+akaNCt1VP2XKQNatO+h327Jl+ZxzzpiQj9UdZGf33+SYnkh2diLbt5epEqkoSsi4TaxR+hnr1h1sqd1olcjOZWjv3FnByJEDmD59ECeeOIw//nEVq1YVhaREigjZ2e0X4m6P888fy8aNJaxZEzgPzJ8SaWtFBi/z09DQzEMPfcl1101vZcU8/vjgLu2tW0sZNSqVmJjQ/ySnTBnI2rVtlciGhmY2bixh2rSBfvbqOWRnJ/aIwueKZfDgJBobjWZmK4oSMqpEKkHxtkQefngaeXnlAePwQmHnznJGjLDWtuuvn8HixbvJyIjvUmUiPj6aK6+czGOPrQs4J5AS2Z4l8pNP9pGZmcDMmTmtxtuLi3TjyvYwZcpA1q9vq0Ru3lzC8OEpQWNMewLZ2UlqiexBeF7QtEakoiihokqkEpDq6kZ27apoSfZISoohOzvRddFuD/X1TezfX83QoSmALbtzxx1z+Na3ut7tetZZo1m1qihg3chA7uz2uta8994eFi4c3mZ81qwc1q496Le8EcCWLe6VyAkTMti+vYz6+qZW46tXFzF9euBM957C7Nk5zJgR/lI1SsfIybFKpHarURQlVFSJ7MWUltbxne+8TUFB58ruBGLjxmLGjElrlT3bmbjI3bsrGTIkmdjYQ7fdSScN54orJnd6rW5JSorh3HPH8Oyzm/xu70hMZHOz4f3393DSSW2VyOTkWKZNy2LFCv+lfjZtcq9EJibGMGJEKps2lbQaX7PmQETqCIabc88d41fhVrqHjIx4YmOj1BKpKErIqBLZS2lqauZ//mcZGzYUs3598EzjjrJ+/UGmTGlt0eqMErlzZzkjR3asxmMkuOii8bz++ldtaj/u319NeXk9OTmtXa3t9c9et+4gAwbEBbxG69Ju2wLRGMOWLaWMH+++nePUqW2Ta6wS2fMtkUrPQkQYMiS53/YkVxTFPapE9lIeeWQttbVNXHjhuIBlXjrL2rWH4iE9jB2bzrZtHTtfXt6hDjA9gZycJObNy+Wll7a1jDU0NHPjjUu58srJREe3/vPIyEgIaol87709nHjisIDbjz8+l6VL97Yp9ZOfX0VSUkyH3IiTJ2e2UiIPHKihvLzeVZa3onh48smFjB3r/mVGUZT+SUAlUkTmdeTTlYvvr3z44V5eemkb9913POPGZbBjR2SUSO/MbA99yRIJ8N3vTuQf/9jckiz0xz+uIiUllquumtpmbnuJNYsX7+akkwIrkWPGpNHYaFp164GOubI9TJ3aOkN7zZoDTJs2kKiontMnW+k9DBmS3KN6rCuK0rMJVrV5CcF7ZQdC209EkL17K7nllk+4//55DBqUyOjRaTz33Oawn6e8vJ7Cwpo2Fq0RIwaQn19FXV2T604oO3dW8PWvjwjnMjvN5MkDyc1NZtGi3URFWUXwhRdO9auEBUus2bmzgrKyOqZODexGFhFOOmk4r7/+FddeO6NlvCNJNR7Gjs0gP7+SqqoGkpNje008pKIoitL7CebOvhz4ntfnCmA1UA08BvwUuAF4HKgCVjlzlAixaNEuLrroHa66agozZ9q6iocfnsqOHeU0N3dE3w/MunUHmTgxo03dwri4aIYPT+mQ9TMv71B5n57Ed787gYce+pJf//pT7r//eNLT/dfJS02No6qqwW+Jo/fe282CBcPatQBefPF4XnhhK7W1jS1jmzd3LB4SIDY2irFjM1o68KxZU8SMGRoPqSiKokSegEqk0/Kw5QOkAoOA8caYHxpj/myM+ZMx5ipgEpADdGnAm4hcKiKrRKRGRPaLyOMiErIZRkTyRMQE+PSYb+Kysiauv/5D7r9/FffeezwXXzyhZduAAXGkpsaxb194MrTz8sp5/PH13HPPZ21qHXroiEu7qqqB8vJ6Bg/ufLHwcLNgwTBE4IYbjmDy5MAFuqOihNTUOMrK6ttss/GQ7WcajxyZyrRpWfz731+1jHXGnQ2Hio43Njazfn1xUGuooiiKooQLN02IfwL8zRjTpmKyMWaPiPzNmfNguBYXDBH5KfBH4APgOmAY1jJ6jIjMNsaEqlVtAu7yM96xYohhZtWqIu66az8XXDCR3/3uOL8u5NGj09i+vayl/qIbjDFs3VrKokW7WbRoFwcP1rJw4XBuvnkms2cHViLdJtfs3GlL5vTEWL3o6CheffX0Nok0/rBxkbWtyqCUlNSyZUsJRx89OKTzXXrpRO68cyXnnTeG6upGCgurOxUrOmVKJkuX5rNlSylDhiSTmtqzi4wriqIofQM3SuRwrCs7EFXOnIjjWAnvBFYCJxljmpzxlcC/sUrl3SEebr8x5tmILDQMjB2bxk9+ksUllxwRcM7hh6eyfXsZ8+YNDfm4zc2GRx9dx2uv7aC+vpmTTx7OrbfO5ogjstpVpsaMSefll7cFneOLbXfY81zZHkJRIMF/XOSSJXs55pghIceIzpmTQ2yssGzZPlJTYzn88DRX7Q59mTJlII88spYvv9TSPoqiKErX4UaJ/Aq4WEQeMca0aiAsIgnApUBeGNcWjG8CScCDHgUSwBjzuojsAC4mdCUSEYkBkowx5e1O7mJSUuIYPjy4ZWn06DS/PZSD8cQT63n//T38/vfHMWXKQFcZmR1xZ+/cWd6meHdvxF+Zn8WLd3PKKYeFfAwR4dJLJ/L00xs55ZTDOuXKBhg1KpXi4jo++GBv0OxwRVEURQknbswf9wFHACtF5IciskBE5ovI1cBnwDSse7krmOX8/MTPtuXABBEJ1bc7B2thLRORUhF5WkRyw7HIrmL06HRXiS7Llxfw979v4oEH5jF1apbrkh7DhiXT3GxYs+ZAyPvk5fW88j4dIT09rpUlsr6+iU8/3e/KCgxw+ukj2bKlhDff/KrDSTUeoqOjmDQpgw8/3KuZ2YqiKEqXEbIl0hjzuKOY3Qk8zKHyPwLUAD83xjwW/iX6xaPk7fWzba+zplxgSzvHWY/NLt+ElcV84PvASU5cZZv4TwAR+QHwA4CcnByWLFnicvnuqKysDHqOysomNm8+yPvvv9+uQlha2sRvf7ufyy7LZPPmlWzuYHWgBQvi+NWv3ufaa0NTWtauLWTs2EqWLNndsROGSHuy6iwVFWV8/nkRgwbZW2/TploGDRJWr/b3PhOco4+O4403Cjn22GaWLNnfqXWlpVUTHy/s3r2KvXvbfymItJz6Eiqr0FFZhYbKKXRUVqHRXXJy487GGPOAiDwJnAIcjlXWtgOLjDGuK1CLSDpwvYtd/myMKca6sgH8Fe3zuNrbTQM2xpzuM/S8iHwI/AP4FXBlgP0eBR4FmDlzppk/f377K+8ES5Ysob1z/Pa3LzJ58hyyswNfdn19E5ddtojLL5/GVVdN6dSajj22iTPOeJ3k5InMmuU/Acebm29+gbPPPoHMzMi2VAtFVp1hx44NFBXVMH/+UQCsXPk5p5+ey/z501wfa9q0WlaseJNvf3tBwLJCodLYuJuGhm2ceOKCkOZHWk59CZVV6KisQkPlFDoqq9DoLjm5UiIBjDFlwIthOn868EsX858FijmU4BOPtYJ649FSgiUBBcQY808RuQvwVTB7NKNHp7FtW1lQJfKhh74kPT2eK6+c3OnzxcVFc8010/jzn9fwzDMnt7KAPv/8FrKzE1tK3pSW1tHcbMjI6Jyi1BPIyIhvFQ+6bNk+fvObozt0rMzMBBYvPrtTSTUeTjppGPPm9aooDEVRFKWX0629s40xecYYcfHxpAR73Mz+AtGGYl3tfl3RIZIH9Ko01/biImtrG3nhha3ceuvssJXZOeOMkZSU1PLxx/sAWy7o4Ye/5KmnNnLbbctblC1PPGRfaKfmKfEDUFBQRVFRDZMnZ3b4eOFQIMEm68TFabMoRVEUpetw9Q0mIt8RkY9EpFBEmvx8Gts/SlhY6fw8xs+2OcBmY0xlJ44/BuhckFoX4ynzE4h3393F1KlZ5OYmh+2c0dFRXHPNdP70p9UYY3jggdW8884unn32FH72syO5/voPqapqYOfOCkaM6P2Z2WBL/Hiysz/6aB/HHTck5PJAiqIoitKXCNmdLSI/B34LHMRmQLurKRNeXgP+DPxYRP7pVSfyG8Bo4DbvySJyGDZGcrsxpsEZy3TiK/GZew22cPkjkb2E8DJ6dBrvvrsr4PZXXtnOBReMC/t5v/a1w3j00bVcccViSkvreOqphWRkJHD22aNZvbqIW2/9hBEjUvtEZja0rhO5dGk+CxZoSR1FURSlf+ImJvIaYAW2uLdvHGKXYowpEpHbgHuB/4rIc1g39o3YTOsHfHZ5BjgBGMWhWpaXisgVwNvOmCc7+5vYZCE3sZrdzpgxaQHd2bt2VbBtW2lEFJ6oKOHGG4/kySc38OSTC0lLOxT3+ItfzOKii97hk08KuO22WUGO0nvIyLBKZGNjM8uXF3DLLX3juhRFURTFLW78cIOBZ7tbgfRgjLkPuBzIxFolrwZeAE4I0ZW9EltA/dtYZfR3wATn50xjTFEk1h0psrISaWw0FBfXttn2yivb+cY3RkUsZm7u3FyeeKK1AgkQHx/NAw/MIzpaGDeucwW1ewoDBsRRU9PIF18UMnRoMoMGJXb3khRFURSlW3BjidyGzabuMRhjngKeCmHefD9jHwFnhn1R3YSIcPjhqezYUdaqjE5jYzOvvrqdxx47qVvWNWxYCu+/f06fSfqIihLS0uJ544085s7VbGhFURSl/+K2Y80VItI3MiT6IJ4yP9589FE+gwcnM3Zs9+n/fUWB9JCWFs877+zk+ONViVQURVH6L24skU1AIbBRRP4f1hXc5DvJGPNMmNamuGT06LZxkS+/vJ1zzx3dTSvqm2RkxLN/f7W2GFQURVH6NW6UyKe8/n1rgDkGm8SidAOjR6fzwQd7qaysB6C0tJ5PP93P3Xf7q4SkdJSMjHiOOWYwsbFa2kdRFEXpv7hRIkPrp6Z0GxMmZLBlSykLFvxfy9j5548hJSWuG1fV9xg/PoNRo/pGySJFURRF6SghK5HGmA8iuRCl8wwalMhHH53X3cvo81xzjfs+2YqiKIrS11B/nKIoiqIoiuIaN+5sAERkJra1YAZtlVBjjPlNOBamKIqiKIqi9FzctD1MBF4BTgEEm0QjzmbjNaZKpKIoiqIoSh/HjTv7dqwCeRc2yUaA7wKnAkuxHWAmhXuBiqIoiqIoSs/DjRL5LeBFY8ztwDpnbK8x5h1gIRAHXBbe5SmKoiiKoig9ETdK5HDAk6HtKTIeB2CMaQSeA74TvqUpiqIoiqIoPRU3SmQFh2IoK4BmwLvvWxkwOEzrUhRFURRFUXowbpTI7cA4AGNME7Ae6+JGRAQ4B9gd7gUqiqIoiqIoPQ83SuR/gXNFJNr5/9+Ar4vIdmArNi7yiTCvT1EURVEURemBuKkT+Vvg7zhlfYwxD4tIAnAxNkbyMeAPYV+hoiiKoiiK0uNw0/awEtjsM/ZH4I/hXpSiKIqiKIrSsxFjTHgOJHIVcJ0xpl/VihSRImBnhE+TBRyI8Dn6Ciqr0FA5hY7KKnRUVqGhcgodlVVouJHTCGPMoHCc1HXbwyBkAePDeLxeQbh+EcEQkc+MMTMjfZ6+gMoqNFROoaOyCh2VVWionEJHZRUa3SUnN4k1iqIoiqIoigKoEqkoiqIoiqJ0AFUiewePdvcCehEqq9BQOYWOyip0VFahoXIKHZVVaHSLnMKZWHML8GtjTHS7kxVFURRFUZReTdDEGhG5wcWxjuvkWhRFURRFUZReQlBLpIg0uzyeUUukoiiKoihK36e9mMgFLj8nRmylvQgRuVlEXhSRHSJiRCSvnfmnishiESkQkSoR2Swi94pIjp+5h4nI30Rkm4jUiMheEXldROYFOPalIrLKmbtfRB4XkYiXJQoFN3ISyw+9rqVURN4WkaMDzI8XkV+LyFciUici20XkVhGJDTC/x8oJIicrETnSude+EJES57NSRH4URFZzROS/IlIhIuXOsWeE8XI7TCTvKZ99hzjzjYj8LMCcHisniLysRGSYiDwqIrucv8ECEfmPiLSpJSwip4nIx87zr9hZ16gwXWqniPBzKktEfi8im0Sk2pHReyJyVoD5PVZOACIyznnuLheRIufeXy0it4hIsp/540XkVee5UyUiS0XErx4hImki8qDY77xaEVkvIleLiPiZGyUiP3XkWisiu0XkPn9r6A4iJScROUFEHhKRtc4xi0TkIxG5wJ+cnH06d08ZY/QT5g9ggIPAIqAYyAsy90pn/mfAT4EfYFtINgI7gGSvublAEVCCbUN5BXAbsAvbevJ0n2P/1Dn2Eue4vwYqgfXex+0lcnrEmf8+8BPgf4HtQB0w38/8V535TwDfd34a4Ck/c3u0nCIpK+B5bIHax4GrgR8Dbzv7v4PjrfCafzRQ6xzvp85nO1ABTO2rcvKz70vONRvgZ36292g5RVpWwBHOsfOAO4DvAT9z7rcTfOaeAzQDq4AfATcD+4F8ILevyglIArYANcCfsc+p/wE2OMe4ujfJyVnjb517/B/O9f8Q+JdzPWuARK+5ox257neu5UfOtTUAC32OGwd86mz7I/Z78xXnuHf4WcefnG2vOHP/6Oz7HhDVh+W0HNgDPIj9LvupM2aAx/yso9P3VLffdH3xAxzu9e917Tx0Nju/sASf8TudX/w3vcZudsbO8pk7xhl/1WssC6hy/vCivca/4cz9RW+REzDDWfN/8FJqgHSgAPsgjvIaP82Zf5/Pce5zxo/tTXKKsKyO8733nPFnneOc4TP+KVAODPUaG+qMvdtX5eSz75nYl7afE1iJ7NFyivA9lQBsxX4xpbazhlhgL7Y7j3u6AAANqUlEQVTrV4rPOZuAR/uwnC5w5l/nc5x07Evs6t4kJ2c9M4E0P+Oe77Mfe4294Kx9htdYinONm31k+CNn/5/4HPdloB7bgcUzNhmrGL3sM/cnzjEu7MNyOgGv7zFnLAr4wDnulHDfU1riJwIYY3a4mJ4KlBhjan3G852fVT5zvbd5KMD+0XjP/Sb2TfdBY0yT19pex1o4L3axxojgQk4LnJ9PG+cud/YvBV4DxtI6setC5+cDPsfx/N/72nu8nCBysjLGfOTn3gP7VgwwxTMgImOAWcCLxpi9XsfYC7wILBSRwSGuMyJE8J4CQEQGAA9hLU4r/R24N8jJWU+kZHU+9sX2dmNMudjQkvgAxz4B62F53BhT6XXs1VjPwLclQFhFVxFBOQV6npdhn+Xez/MeLycAY8xnxpgyP5taPU8cl+2ZwBLnGjz7V2K9IuOwf0MeLgSqsV46bx7AKkPf9hq7ABDaPv8fc47R7c/0SMnJGPOB9/eYM9aM9Zy0HNchLPeUKpHdzzvAJCdeY6KIDBeRc7Bu6g+w5nfvuQAPO7EPQ0VkFvAc9s31Pq+5nhvrEz/nXA5MEJGUsF5J5PB8AVX72eYZ8445mgXsNcbs9p7o/D+f1g+nviQncC+rQAxzfu73GmtPVgIcFcKxewIdldM92KoWtwQ5dl+SE7iX1WnOz1IR+RDrrq114gS/5rN/e7JKxX5R9gbcyuk9bNjSPU5c2jARmYoNvUkH7vKa29vl5Ps8mYaVV6DrAeeaRSQKOBJY5eeF91OsAcX3md7sbGvB2Xe1z9yeRofl5PK43vt16p5SJbL7uQ5rnbgOGwuzC2ui/w9wso91bAlwDTAK+6awB/uHMh442hjzhddxc52fe2nLXuwXWa6fbT2R9c7PVoHETqDwCc5/h3ttysX/deOMD/WZ6xn3N7c3yQncy6oNjtL8c6xF5DWvTe3JClrLtifjWk5OcsTVwPUBrAge+pKcwL2sxjs/X8beQ9/Byi0LeFNEFnrN7UuyciUnY8xWrAUtHngT2A18iVXCTzTGvOV1mF4rJxGJBm7HKsz/dIbdXE8GkOhvrjGmDhsv6PtMP+Bs83fsLBGJc3MNXUEY5BTouLnAVVjP2jKvTWG5p4LWiVS6hAas4vh/wOvYN9avYQPRm7BBwd4UYZNw/ouNsRmH/cJ/U0RO8LK+JTk//f0h1frM6en8B6tg/0hE8rHB0knADRwyz3tfSxL+rxvstfvOJcD83iYncC+rVjgPsmexLyoXGmOKvTb3JVm5kpPj1nkM+K8x5l8Epy/JCdzfUwOcn5uAMz2uXRFZ7BznLuzzy3u/viCrjvztlWIVx8exVrKhwI3AayJykjFmjc9+vVFOD2AtsL8wxmx2xtxcT7C5nvlunv+eOfVB1twddFZObRCRJKxukQx8wxjT4LU5LPeUWiK7EcdM/zZwLHC+MeYZY8xLxpgrgT8A3/d+axeRK7FvKD8zxtxrjPm3MeZeYCH2Dfcer8N73Cf+YpESfOb0aIwxjcCpwEfA77BB+2uwGaA3OdPKvXapxv91g732ap+5BJjfq+QEHZJVC879+P+As4BbjDHP+UzpM7LqgJz+Fxvn96MQDt9n5AQdklWN8/MZn9jArcDHwCyvMiZ9RlZu5eS49hdh47F/ZYx5zRjzMDZuMgYbe+uhV8pJRH6DrfjwqDGmo99PweZ65vs+04PN9T5mjyBMcvI9ZgK2SslM4HJjzFKfKWG5p1SJ7F7mAsdjs8iMz7YXnZ8neI3dDGwyxqzznmiMWYt96/ee6wnW9meOHorN1PIN6O6xGGN2GWMWACOw1znFGDOdQ29Mm7ym5xPYDD+U1ub7PiUncC0roMXl9jhwKfArY8zdfg7dnqwgcBhBjyNUOYnIEGwM5NP2vzLGSZ7xXPNAZ8yjGPUpOYHre2qP87PAz6H2YUNE0pz/9ylZuZTT/wJVxpi3fY5RACwFjvFyu/Y6OYnIHcCtwJPYEjbeuLmeEuyLSZu5TsLWQNo+07MCJHMNxbq6e4wVMoxy8j6mR4FcCFxpjHnWz/5huadUiexePL8of11+Ynx+euYH6ggU4zPXkzl6jJ+5c4DN3hlZvQXnIf2hMcYTf3QaNoj6Ha9pK4GhIuIb0zYcGwfymc9c6GNygpBl5a1AXg7caYy5I8Ahg8nqaKzC/Xln193VhCCnHOyb+VVY65Ln43kw3+T8/1Tn/31SThDyPeVJaBhGW4ZhY748YRLtyaocG7bTqwhRTkOBqABFoGOw38+e7+heJScR+SXwS+AZ4Pt+jCRrsW7UQNcDznPayS7+AjjCj2I4Gysj32d6lLPNe00J2PI13nO7lXDKyeuY8VgX9inAD4wx/y/A6cNzT5keUFuqL38IXldsOoeKi8b6bPMUrT3Ha2wVNk7yaJ+5xzjj//YaG4Q1Ra/Af/3DW7tbNqHKKcg+Z+KngDhwOsHrRM7trXKKgKw8CqQB7grhOCudh0uu11iuM/bf7pZNJOSEtZp9y8/nl87cp53/e9eE7DVyisA9NR6rKH4GxHiNT3eeU+96jcViLSK+teo8cx/vbtlEUE7/54yf7zM+Clve58veKCdscojBKkYBC3tjvW1NwHSvMU/9wy20rn94DYHrRDYAo7zGphK8TuTF3S2jCMopHhub24xVIIOdPyz3VNDe2UrHEJFLsO4MsDduHIfK7+w0xvzda+5LwLnY4OpnOZRY8w1smv1c42Roi8iZ2AdPNfBXrPVjLDbzMdqZ+7nXsW8E7sVmcj/HoaDt3cAs080WNpdyegKr8KzGujbmAhdh31BPNj7ZsiLyOnAGtlzGJ1hF+wrgWWPMJT5ze7ScIHKyEpF7sde6BisDX7YbYz7xmn8sthuHpyuCZz05wHHmUCJAtxDJe8rPueZjZfFzY2OTvbf1aDlBxP/+7saG33yM7VKTCVzrnOM4Y8yXXnPPw9bHW4NNXkrlUBepo4xXrc3uIIJ/e7OAD7HPbk9izTDs8zwT21TiDa/5PVpOACJyDfAXbLLobVhlxpv9xphFztwxHOpCcz/2BetKrBJ4ujHmHa/jxmHvpenY7j4bsdbds7Hek9t81vEgNsbw/4C3gInY++8jbOa777q6lAjKyaNP/Bf7cuvLl2H/2+tubbwvfrDKiAnwWeIzNw7b6moN9qFTh327uBs/Lfew5SP+gy1r0IjN1n4Zr2r2PvMvc45dCxRiEyeyu1tGHZDTVdgHcZkjp7XAL/BqD+UzPwFb/T/PkekO7B9rbID5PVZOkZRVO8dtYz1x9jkGWIytTVqBddEd2d0yivQ95edc8wnQsaany6krZIVtu+b5myrBZitPDjD3DOxLc7Uz9yVgdHfLKNJywibdvISt39foXPvbBGi72ZPl5KzvqXaeJ77ymogtI1bqXNMyfFr5ec1Nxype+dhn+gasoih+5kZjX443O3P3YlsfpoT7mnuSnLDfd8GOe0e47ym1RCqKoiiKoiiu0cQaRVEURVEUxTWqRCqKoiiKoiiuUSVSURRFURRFcY0qkYqiKIqiKIprVIlUFEVRFEVRXKNKpKIoiqIoiuIaVSIVRVEURVEU16gSqSiKoiiKorhGlUhFUZQwICIviUiTiMwNsH2us/2lrl6boihKJNCONYqiKGFARAYB67AtDqcbY6q8tiVhWwCmYlv/HeieVSqKooQPtUQqiqKEAWNMEbZ38mjg9z6bfweMAa7qDgVSRAZ09TkVRen7qBKpKIoSJowxrwJ/B64WkYUAIjIfuAZ4xtmOM54oIreLyAYRqRWRYhF5VUSmeh9TRGJF5DYRWSYi+0WkXkTyROQvIpLhM3eCiBgRuUlELhaR1SJSC/wh0teuKEr/Q93ZiqIoYURE0oG1gAGOAZYCscAUY0yZMyceeA84CngaWAVkAj8AsoDjjDFrvI63A3gZ2AhUA0cDFwFfAnOMMY3O3AnOnDXAMOARYBdQYozRWExFUcKKKpGKoihhRkROAd4BDmCVwq8ZY9712n4zcCew0Bjzvtd4JrAeWGOM+bozFgXEGWNqfc5xDfAX4CxjzL+dMY8SWYdVWrdF7ioVRenvqDtbURQlzDgK46NYBfJRbwXS4WKstXKtiGR5Pthn8mJggYjEOMdq9iiQIhItIunO3PecY83xs4RXVYFUFCXSxHT3AhRFUfoon2Dd0594D4qIAOOBaKAoyP4Znu0ichHwU2A6bZ/bGbRlS8eWrCiKEjqqRCqKonQt4nw+B24KMs8TP3kh8CxWGf0xsBeoBRKBf+Pfo1QdxvUqiqL4RZVIRVGULsQY0ywi27Gu7sWm/cD0S7C1JxcYY+o8gyIyI4LLVBRFaReNiVQURel6ngFGYEv/tEFEcrz+2wQ04/W8dlzit0RygYqiKO2hlkhFUZSu5w/AScCDIvI1YAlQCRwGnAwcBE515r4EnA4sFpF/APHAuUBcF69ZURSlFapEKoqidDHGmDqnDNBPsPUef+1sysfGPj7lNfcpEUnGxkPeBxQDrwK/Agq6cNmKoiit0DqRiqIoiqIoims0JlJRFEVRFEVxjSqRiqIoiqIoimtUiVQURVEURVFco0qkoiiKoiiK4hpVIhVFURRFURTXqBKpKIqiKIqiuEaVSEVRFEVRFMU1qkQqiqIoiqIorlElUlEURVEURXGNKpGKoiiKoiiKa/4/V7AVksLKKocAAAAASUVORK5CYII=\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "#You can set the size of the figure by doing:\n", - "plt.figure(figsize=(10,5))\n", - "\n", - "#Plotting\n", - "plt.plot(year, temp_anomaly, color='#2929a3', linestyle='-', linewidth=1) \n", - "plt.title('Land global temperature anomalies. \\n')\n", - "plt.xlabel('Year')\n", - "plt.ylabel('Land temperature anomaly [°C]')\n", - "plt.grid();" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "collapsed": true - }, - "source": [ - "Better, no? Feel free to play around with the parameters and see how the plot changes. There's nothing like trial and error to get the hang of it. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Step 3: Least-squares linear regression \n", - "\n", - "In order to have an idea of the general behavior of our data, we can find a smooth curve that (approximately) fits the points. We generally look for a curve that's simple (e.g., a polynomial), and does not reproduce the noise that's always present in experimental data. \n", - "\n", - "Let $f(x)$ be the function that we'll fit to the $n+1$ data points: $(x_i, y_i)$, $i = 0, 1, ... ,n$:\n", - "\n", - "$$ \n", - " f(x) = f(x; a_0, a_1, ... , a_m) \n", - "$$\n", - "\n", - "The notation above means that $f$ is a function of $x$, with $m+1$ variable parameters $a_0, a_1, ... , a_m$, where $m < n$. We need to choose the form of $f(x)$ a priori, by inspecting the experimental data and knowing something about the phenomenon we've measured. Thus, curve fitting consists of two steps: \n", - "\n", - "1. Choosing the form of $f(x)$.\n", - "2. Computing the parameters that will give us the \"best fit\" to the data. \n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### What is the \"best\" fit?\n", - "\n", - "When the noise in the data is limited to the $y$-coordinate, it's common to use a **least-squares fit**, which minimizes the function\n", - "\n", - "$$\n", - "\\begin{equation} \n", - " S(a_0, a_1, ... , a_m) = \\sum_{i=0}^{n} [y_i - f(x_i)]^2\n", - "\\end{equation} \n", - "$$\n", - "\n", - "with respect to each $a_j$. We find the values of the parameters for the best fit by solving the following equations:\n", - "\n", - "$$\n", - "\\begin{equation}\n", - " \\frac{\\partial{S}}{\\partial{a_k}} = 0, \\quad k = 0, 1, ... , m.\n", - "\\end{equation}\n", - "$$\n", - "\n", - "Here, the terms $r_i = y_i - f(x_i)$ are called residuals: they tell us the discrepancy between the data and the fitting function at $x_i$. \n", - "\n", - "Take a look at the function $S$: what we want to minimize is the sum of the squares of the residuals. The equations (2) are generally nonlinear in $a_j$ and might be difficult to solve. Therefore, the fitting function is commonly chosen as a linear combination of specified functions $f_j(x)$, \n", - "\n", - "$$\n", - "\\begin{equation*}\n", - " f(x) = a_0f_0(x) + a_1f_1(x) + ... + a_mf_m(x)\n", - "\\end{equation*}\n", - "$$\n", - "\n", - "which results in equations (2) being linear. In the case that the fitting function is polynomial, we have have $f_0(x) = 1, \\; f_1(x) = x, \\; f_2(x) = x^2$, and so on. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Linear regression \n", - "\n", - "When we talk about linear regression we mean \"fitting a function to the data.\" In this case,\n", - "\n", - "$$\n", - "\\begin{equation}\n", - " f(x) = a_0 + a_1x\n", - "\\end{equation}\n", - "$$\n", - "\n", - "The function that we'll minimize is:\n", - "\n", - "$$\n", - "\\begin{equation}\n", - " S(a_0, a_1) = \\sum_{i=0}^{n} [y_i - f(x_i)]^2 = \\sum_{i=0}^{n} (y_i - a_0 - a_1x_i)^2 \n", - "\\end{equation} \n", - "$$\n", - "\n", - "Equations (2) become:\n", - "\n", - "$$\n", - "\\begin{equation}\n", - " \\frac{\\partial{S}}{\\partial{a_0}} = \\sum_{i=0}^{n} -2(y_i - a_0 - a_1x_i) = 2 \\left[ a_0(n+1) + a_1\\sum_{i=0}^{n} x_i - \\sum_{i=0}^{n} y_i \\right] = 0\n", - "\\end{equation} \n", - "$$\n", - "\n", - "$$\n", - "\\begin{equation}\n", - " \\frac{\\partial{S}}{\\partial{a_1}} = \\sum_{i=0}^{n} -2(y_i - a_0 - a_1x_i)x_i = 2 \\left[ a_0\\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i \\right] = 0\n", - "\\end{equation} \n", - "$$\n", - "\n", - "Let's divide both equations by $2(n+1)$ and rearrange terms.\n", - "\n", - "Rearranging (6) and (7):\n", - "\n", - "$$\n", - "\\begin{align}\n", - " 2 \\left[ a_0(n+1) + a_1\\sum_{i=0}^{n} x_i - \\sum_{i=0}^{n} y_i \\right] &= 0 \\nonumber \\\\ \n", - " \\frac{a_0(n+1)}{n+1} + a_1 \\frac{\\sum_{i=0}^{n} x_i}{n+1} - \\frac{\\sum_{i=0}^{n} y_i}{n+1} &= 0 \\\\\n", - "\\end{align}\n", - "$$\n", - "\n", - "$$\n", - "\\begin{align}\n", - " a_0 = \\bar{y} - a_1\\bar{x}\n", - "\\end{align}\n", - "$$\n", - "\n", - "where $\\bar{x} = \\frac{\\sum_{i=0}^{n} x_i}{n+1}$ and $\\bar{y} = \\frac{\\sum_{i=0}^{n} y_i}{n+1}$.\n", - "\n", - "Rearranging (7):\n", - "\n", - "$$\n", - "\\begin{align}\n", - " 2 \\left[ a_0\\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i \\right] &= 0 \\\\\n", - " a_0\\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i &=0 \\\\\n", - "\\end{align}\n", - "$$\n", - "\n", - "Now, if we replace $a_0$ from equation (8) into (9) and rearrange terms:\n", - "\n", - "$$\n", - "\\begin{align*}\n", - " (\\bar{y} - a_1\\bar{x})\\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i &= 0 \\\\ \n", - "\\end{align*}\n", - "$$\n", - "\n", - "Replacing the definitions of the mean values into the equation, \n", - "\n", - "$$\n", - "\\begin{align*}\n", - " \\left[\\frac{1}{n+1}\\sum_{i=0}^{n} y_i - \\frac{a_1}{n+1}\\sum_{i=0}^{n} x_i \\right]\\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i &= 0 \\\\ \n", - " \\frac{1}{n+1}\\sum_{i=0}^{n} y_i \\sum_{i=0}^{n} x_i - \\frac{a_1}{n+1}\\sum_{i=0}^{n} x_i \\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i &= 0 \\\\ \n", - "\\end{align*}\n", - "$$\n", - "\n", - "Leaving everything in terms of $\\bar{x}$, \n", - "\n", - "$$\n", - "\\begin{align*}\n", - " \\sum_{i=0}^{n} y_i \\bar{x} - a_1\\sum_{i=0}^{n} x_i \\bar{x} + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i = 0 \n", - "\\end{align*}\n", - "$$\n", - "\n", - "Grouping the terms that have $a_1$ on the left-hand side and the rest on the right-hand side:\n", - "\n", - "$$\n", - "\\begin{align*}\n", - " a_1\\left[ \\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_i \\bar{x}\\right] &= \\sum_{i=0}^{n} x_iy_i - \\sum_{i=0}^{n} y_i \\bar{x} \\\\\n", - " a_1 \\sum_{i=0}^{n} (x_{i}^2 - x_i \\bar{x}) &= \\sum_{i=0}^{n} (x_iy_i - y_i \\bar{x}) \\\\\n", - " a_1 \\sum_{i=0}^{n} x_{i}(x_{i} -\\bar{x}) &= \\sum_{i=0}^{n} y_i(x_i - \\bar{x}) \n", - "\\end{align*}\n", - "$$\n", - "\n", - "Finally, we get that:\n", - "\n", - "$$\n", - "\\begin{align}\n", - " a_1 = \\frac{ \\sum_{i=0}^{n} y_{i} (x_i - \\bar{x})}{\\sum_{i=0}^{n} x_i (x_i - \\bar{x})}\n", - "\\end{align}\n", - "$$\n", - "\n", - "Then our coefficients are:\n", - "\n", - "$$\n", - "\\begin{align}\n", - " a_1 = \\frac{ \\sum_{i=0}^{n} y_{i} (x_i - \\bar{x})}{\\sum_{i=0}^{n} x_i (x_i - \\bar{x})} \\quad , \\quad a_0 = \\bar{y} - a_1\\bar{x}\n", - "\\end{align}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Let's fit!\n", - "\n", - "Let's now fit a straight line through the temperature-anomaly data, to see the trend over time. We'll use least-squares linear regression to find the slope and intercept of a line \n", - "\n", - "$$y = a_1x+a_0$$\n", - "\n", - "that fits our data.\n", - "\n", - "In our case, the `x`-data corresponds to `year`, and the `y`-data is `temp_anomaly`. To calculate our coefficients with the formula above, we need the mean values of our data. Sine we'll need to compute the mean for both `x` and `y`, it could be useful to write a custom Python _function_ that computes the mean for any array, and we can then reuse it.\n", - "\n", - "It is good coding practice to *avoid repeating* ourselves: we want to write code that is reusable, not only because it leads to less typing but also because it reduces errors. If you find yourself doing the same calculation multiple times, it's better to encapsulate it into a *function*. \n", - "\n", - "Remember the _key concept_ from [Lesson 1](http://go.gwu.edu/engcomp1lesson1): A function is a compact collection of code that executes some action on its arguments. \n", - "\n", - "Once *defined*, you can *call* a function as many times as you want. When we *call* a function, we execute all the code inside the function. The result of the execution depends on the *definition* of the function and on the values that are *passed* into it as *arguments*. Functions might or might not *return* values in their last operation. \n", - "\n", - "The syntax for defining custom Python functions is:\n", - "\n", - "```python\n", - "def function_name(arg_1, arg_2, ...):\n", - " '''\n", - " docstring: description of the function\n", - " '''\n", - " \n", - "```\n", - "\n", - "The **docstring** of a function is a message from the programmer documenting what he or she built. Docstrings should be descriptive and concise. They are important because they explain (or remind) the intended use of the function to the users. You can later access the docstring of a function using the function `help()` and passing the name of the function. If you are in a notebook, you can also prepend a question mark `'?'` before the name of the function and run the cell to display the information of a function. \n", - "\n", - "Try it!" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "?print" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Using the `help` function instead:" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Help on built-in function print in module builtins:\n", - "\n", - "print(...)\n", - " print(value, ..., sep=' ', end='\\n', file=sys.stdout, flush=False)\n", - " \n", - " Prints the values to a stream, or to sys.stdout by default.\n", - " Optional keyword arguments:\n", - " file: a file-like object (stream); defaults to the current sys.stdout.\n", - " sep: string inserted between values, default a space.\n", - " end: string appended after the last value, default a newline.\n", - " flush: whether to forcibly flush the stream.\n", - "\n" - ] - } - ], - "source": [ - "help(print)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's define a custom function that calculates the mean value of any array. Study the code below carefully. " - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "def mean_value(array):\n", - " \"\"\" Calculate the mean value of an array \n", - " \n", - " Arguments\n", - " ---------\n", - " array: Numpy array \n", - " \n", - " Returns\n", - " ------- \n", - " mean: mean value of the array\n", - " \"\"\"\n", - " sum_elem = 0\n", - " for element in array:\n", - " sum_elem += element # this is the same as sum_elem = sum_elem + element\n", - " \n", - " mean = sum_elem / len(array)\n", - " \n", - " return mean\n", - " " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Once you execute the cell above, the function`mean_value()` becomes available to use on any argument of the correct type. This function works on arrays of any length. We can try it now with our data." - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1948.0\n" - ] - } - ], - "source": [ - "year_mean = mean_value(year)\n", - "print(year_mean)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.0526277372263\n" - ] - } - ], - "source": [ - "temp_anomaly_mean = mean_value(temp_anomaly)\n", - "print(temp_anomaly_mean)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Neat! You learned how to write a Python function, and we wrote one for computing the mean value of an array of numbers. We didn't have to, though, because NumPy has a built-in function to do just what we needed: [`numpy.mean()`](https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.mean.html).\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "##### Exercise \n", - "\n", - "Calculate the mean of the `year` and `temp_anomaly` arrays using the NumPy built-in function, and compare the results with the ones obtained using our custom `mean_value` function." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now that we have mean values, we can compute our coefficients by following equations (12). We first calculate $a_1$ and then use that value to calculate $a_0$.\n", - "\n", - "Our coefficients are:\n", - "\n", - "$$\n", - " a_1 = \\frac{ \\sum_{i=0}^{n} y_{i} (x_i - \\bar{x})}{\\sum_{i=0}^{n} x_i (x_i - \\bar{x})} \\quad , \\quad a_0 = \\bar{y} - a_1\\bar{x}\n", - "$$ \n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We already calculated the mean values of the data arrays, but the formula requires two sums over new derived arrays. Guess what, NumPy has a built-in function for that: [`numpy.sum()`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.sum.html). Study the code below." - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "a_1 = numpy.sum(temp_anomaly*(year - year_mean)) / numpy.sum(year*(year - year_mean)) " - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.0103702839435\n" - ] - } - ], - "source": [ - "print(a_1)" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "a_0 = temp_anomaly_mean - a_1*year_mean" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "-20.1486853847\n" - ] - } - ], - "source": [ - "print(a_0)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "##### Exercise\n", - "\n", - "Write a function that computes the coefficients, call the function to compute them and compare the result with the values we obtained before. As a hint, we give you the structure that you should follow:\n", - "\n", - "```python\n", - "def coefficients(x, y, x_mean, y_mean):\n", - " \"\"\"\n", - " Write docstrings here\n", - " \"\"\"\n", - "\n", - " a_1 = \n", - " a_0 = \n", - " \n", - " return a_1, a_0\n", - "```" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We now have the coefficients of a linear function that best fits our data. With them, we can compute the predicted values of temperature anomaly, according to our fit. Check again the equations above: the values we are going to compute are $f(x_i)$. \n", - "\n", - "Let's call `reg` the array obtined from evaluating $f(x_i)$ for all years." - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "reg = a_0 + a_1 * year" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "With the values of our linear regression, we can plot it on top of the original data to see how they look together. Study the code below. " - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\nzMzMzEr+D3e5KbvwEdppAAAAAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.figure(figsize=(10, 5))\n", - "\n", - "plt.plot(year, temp_anomaly, color='#2929a3', linestyle='-', linewidth=1, alpha=0.5) \n", - "plt.plot(year, reg, 'k--', linewidth=2, label='Linear regression')\n", - "plt.xlabel('Year')\n", - "plt.ylabel('Land temperature anomaly [°C]')\n", - "plt.legend(loc='best', fontsize=15)\n", - "plt.grid();" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Step 4: Apply regression using NumPy" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Above, we coded linear regression from scratch. But, guess what: we didn't have to because NumPy has built-in functions that do what we need!\n", - "\n", - "Yes! Python and NumPy are here to help! With [`polyfit()`](https://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.polyfit.html), we get the slope and $y$-intercept of the line that best fits the data. With [`poly1d()`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.poly1d.html), we can build the linear function from its slope and $y$-intercept.\n", - "\n", - "Check it out:" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "# First fit with NumPy, then name the coefficients obtained a_1n, a_0n:\n", - "a_1n, a_0n = numpy.polyfit(year, temp_anomaly, 1)\n", - "\n", - "f_linear = numpy.poly1d((a_1n, a_0n)) " - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.0103702839435\n" - ] - } - ], - "source": [ - "print(a_1n)" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "-20.1486853847\n" - ] - } - ], - "source": [ - "print(a_0n)" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " \n", - "0.01037 x - 20.15\n" - ] - } - ], - "source": [ - "print(f_linear)" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAogAAAFOCAYAAAAFEOyOAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl8nHW1+PHPN5NtsifN0jbdS6G0QBe6AKU0lNJiC6XQ\nqKCyKQJXL6BeRVRE0XtdwItcBQX5KbigKIltURBlaUGUtdACpYXuW9okzT57Zub8/ngyk20mmUkm\nzdLzfr36avM8zzxz5kmgp9/v95yvERGUUkoppZQKSRrsAJRSSiml1NCiCaJSSimllOpEE0SllFJK\nKdWJJohKKaWUUqoTTRCVUkoppVQnmiAqpZRSSqlONEFUSimllFKdaIKolFJKKaU60QRRKaWUUkp1\nkjzYAQwXhYWFMmnSpAF9D6fTSWZm5oC+x0ihzyp2+qxio88pdvqsYqPPKXb6rGIX67PavHnzMREp\n6uv7DMsE0RgzBngEWCEi5ni856RJk3jzzTcH9D02bdpEWVnZgL7HSKHPKnb6rGKjzyl2+qxio88p\ndvqsYhfrszLG7O/P+wy7BNEYczlwL9Dah9fuAxojnPqyiDzXz9CUUkoppUaEYZcgAl8FLgS+AZwU\n74tFZHbCI1JKKaWUGkGGY4K4SET8xhyXmWWllFJKqRPOsKtiFhH/YMeglFJKKTWSGREZ7Bj6xBjz\nKHBNPEUqbWsQ/wScCxQC+4D7ReTJKNffANwAUFJScubjjz/ev6B74XA4yMrKGtD3GCn0WcVOn1Vs\n9DnFTp9VbPQ5xU6fVexifVbnn3/+ZhGZ19f3GY5TzP1RA7wF3A7YsJK/DcaYm0Xk/q4Xi8gvgF8A\nzJs3Twa6wkqruGKnzyp2+qxio88pdvqsYqPPKXb6rGJ3vJ5V1ATRGHN1H+/pFpEn+vjaASUiCzp8\nGQQeMMasBL5njPl/IuLp672bm5upqamhtTXu4uqw3Nxctm/f3ufXn0j0WcUu0c8qJSWF4uJicnJy\nEnZPpZRSQ0tPI4iP9vGeR4EhmSBG8RqwEpgJbO7LDZqbm6murqa0tBS73U5fC2haWlrIzs7u02tP\nNPqsYpfIZyUiuN1uDh8+DKBJolJKjVA9JYjbsRKneBhgQ9/DGTjGGDtgExFHl1OBtt9tfb13TU0N\npaWlZGRk9Dk+pYYDYwwZGRmUlpZSVVWlCaJSSo1QPSWIPhGJuwu3MSbYj3gSxhhTAtSKSCiejwNn\nAzd2ufRMwAu839f3am1txW639/XlSg07dru9X8splFLqRNXU5CUnJ7XPs43HS09tbromUrHq6+sS\nxhizCKgCHuhy6kpjzPwO130cWAPcHWFkMd737M/LlRpW9OddKaXi19oa5I9/3InHE+j94kEWdQRR\nRF7vyw37+rpYGWPuwdpJZULb11vaTi0QEV/bnx1AE3Ckw0v/BtwD/MwYkwLkAQ3ATW3VykoppZRS\nA+bQoRaKiuzY7UO/iUyPjbKN5Yy2X+MjnJ9gjJk6cOF1JyJfEZHZIlIgIqbtz7M7JIeIyNa289/p\ncKxaRL4rIvPbrp8kInM0OYTDhw9TVlZGXl4eeXl5lJWVhYsQutqwYQMTJkzA6XQe5yhVT376058y\nZ86cwQ5DKaVUD3bvbmbKlNzBDiMmve2kcjawBat34OcinD8F2GGM+VKiA1PHT2lpKZs2bWL27NnM\nnj2bTZs2UVpaGvHagoICTjnlFNLT049zlKonJSUlzJgxY7DDUEopFUUwKOzf38yUKcOjuK+3Mc7L\ngG3AGhHZ3fWkiDxrjLkc+KUx5j0R+cdABKmGjsWLF/Pss88Odhiqi4997GN87GMfG+wwlFJKRVFV\n5SQ7O5Xs7NTBDiUmvY0gXgBcFSk5DBGRvwBXAl9MZGBq6HnyySc566yzMMawadMmAH7xi18we/Zs\njDGsX7+e8vJy5syZw8KFC3n//c6F4YcPH+aKK65gzpw5lJWVsWzZMt58883weYfDwec+9znmz59P\nWVkZ8+bN47vf/S6BQPti3ssvv5zRo0ezcuVKfvKTn7By5UqKiopYs2ZNxJhD15eVlUW8vqmpiRtu\nuIFZs2ZRVlbGeeedxz/+0fnfOe+99x7nnnsu06dP58ILL+SnP/0pkyZNYtKkSdx4440cOHCAsrIy\n0tPTuf3227n11lu54IILSEtL47777gNg+/btrFy5kvnz57NkyRJWr17Nzp07w+/R3NzMNddcwznn\nnMPSpUtZtGgRP/nJT8Lnt23bxooVKygrK+P8889nxYoVPPPMM92+B/v27Qu/pqmpiRtvvJEFCxaw\nYMECFi5cyNNPPx0+/53vfIfp06djjOG5557jsssuY+bMmSxbtizqEgOllFJ9s3t307CZXgasxrfR\nfgF7ejrf5dotsV47HH+deeaZEs37778f8TgQ9ddDDz0Uvu6hhx7q8dqO5s6dG/W6z372s1FjjMWS\nJUtkyZIlPV6zd+9eAWTjxo3hYxs3bhRAPv3pT0sgEBARkVWrVsmyZcvC1zidTjnppJPk5ptvlmAw\nKCIiTzzxhNjtdtm7d2/43lOnTpXm5mYREWlqapKZM2fKPffc0ymGa665RrKzs+VPf/qTiIi8/fbb\n8olPfCJqzNGuDwaDsmjRIrnsssvE5/OJiMirr74qycnJ8sorr4iIiMvlknHjxskNN9wQvt+3v/1t\nsdls8q1vfavT+0ycOFFKS0tl165dIiLy05/+VH72s59JVVWVjBo1Sn70ox+Fr73nnnukpKREmpqa\nRETk5ptv7vQZtm7dKlOmTAl/ffrpp3f6mbn//vvlmmuu6fY9CD3L0GdbunSp1NbWiojI3//+d0lK\nSpJnn302/LpHHnlEAPn2t78tIiI+n09mzZol119/fdTnGRLt53646vgzrXqmzyo2+pxiN9KfVTAY\nlEce2SZ1de5+3yvWZwW8Kf3Ie3obQWyII9ccEv0P1eC5+uqrSUqyfqS6jg7+/ve/Z9euXdxxxx3h\nFinl5eVkZ2fzs5/9DGhfCxna9SMnJ4dLLrmEdevWdXuvvLw8PvrRjwIwe/ZsHnvssR5jy8/P73b9\n888/z7/+9S9uv/12UlJSAFi4cCFz587l3nvvDcd96NAhbrvttvC9Ov65qwsuuICpU626rf/8z//k\nP/7jP3jggQfwer184QtfCF/3uc99jurqan73u98BcODAAY4ePYrDYXVbOuOMMzp9pgMHDrB3716C\nQes/s2uvvZb/+q//ihpH6LN99atfJS0tDYDly5ezYMECvvOd73S7/tprrwWsbfTKyso6fe+UUkr1\nT02Nm5QUGwUFw2f9fm9rEI0xJk1EvL1clE4/diIZqawEvnc33HADN9xwQ0xbom3e3KfdAI+LcePG\nhf+cm5tLY2Nj+Ou33nqLpKSkbuvkcnNzaWpqAqzk5G9/+xuPP/44Xq+X5ORk9u3bF7HnXsf3isWE\nCRO6HXvrrbcA+OIXvxhOEMHami5Upb1t2zZsNhuTJ08On7fb7ZSUlMT1PsFgkAsuuKDT8cmTJ1NX\nVwfAHXfcweWXX87YsWO5+OKLWbt2LatXrw5fe++993LzzTfzu9/9jjVr1vDxj3+cc889N+rnDX22\nk08+udPxU045hSee6L4TZk/fO6WUUv1jTS8Pj+KUkN4SxOeAbwB39nLd7cDzCYlIDVs2W/u/EaI1\nUn7uuedITo78Y3fffffx5S9/meeff54lS5YA8O1vf5tHH320x/eKN7aufvvb3zJlypS47hfv+4wa\nNSq8bjOSefPmsWfPHv7+97/z+OOP86lPfYpp06bxr3/9i+zsbD796U+zdu1a/vznP/P73/+exYsX\nc+211/LII48kPG5jTMz/uFFKKdW7vXubWbasW7fAIa23KeZ7gBuMMY8aY+YaY8LXG2OSjDFnGmMe\nAT4DfG8gA1WDZ8uWLfzgBz/o1z3OPPNMgsEgO3bs6HT80Ucf5Y9//CNgTYtOmDAhnBwC+Hw+BsqZ\nZ54J0K2Y5qmnnuL+++8H4LTTTiMQCLB3797webfbTXV1dVzvc+TIkW6jcnfffTcbN24ECE+jr1q1\nit/+9re8+uqrvPvuu+GK8SeeeILc3Fyuu+46nn32We677z4effRR6uvre/xsH3zwQafjH3zwQfic\nUkqpgVdf76G1NUBx8fDakrfHBFFEaoGPAGXAG4DTGHPIGHMIcAKvA+cCy0Xk2ADHqgZJY2Njt8Qu\nXldeeSUnn3wyd955Z3gP3927d3PXXXeFGzzPmjWLQ4cOsW3bNsCqav7rX//av+B7sHTpUhYvXsz3\nvvc9WlpaADh27Bi33XYbp59+ejjucePGcffdd4df9+Mf/7jTlHRvPv/5z5Ofn883v/nN8Mjc66+/\nzs9//nPOOOMMAP7v//6Pv/zlL+HX+P1+kpKSmD59OgDXX389+/fv73R+zJgx5Ofn9/jZ7r77brxe\na4XIP/7xD15//XW++c1vxhy7Ukqp/tmzx6peHnZblMZSyQJkArcAT2H1RdwGPA38J5DenyqZ4fKr\nL1XM8QpV7x5vBw8elIULF0p2drZkZ2fLwoULO/069dRT5ZprrpENGzbIwoULBZBZs2bJQw89JI89\n9pjMmjVLAFm4cKH8+9//loceekhOOeUUAWTJkiWyY8cOERGpqqqSK6+8Uk4++WQpKyuTZcuWyUsv\nvRSOw+VyyfXXXy+lpaWybNky+fjHPy7l5eWSlpYmS5YskcbGRrnqqqukpKREcnNzZcmSJfLvf/+7\nx8/W2/VNTU1y0003ybRp0+S8886T8847T9avX9/pmnfeeUfOOeccOeWUU2TFihXy61//WiZMmCD/\n/d//LSIidXV1smTJEklLS5OJEyfKkiVLxOVydbrHjh075OKLL5bp06fL0qVLZdWqVfLuu++Gz//h\nD3+QsrIyOf/882XJkiWyYMECeeKJJ8Ln77zzTjnrrLNk6dKlsmjRIlm+fLls2bJFRKwq+I7fgw0b\nNoQ/24033ijTp0+XefPmyYIFC+Svf/1r+J7/+7//2+n7tGfPHrnrrrtk4sSJnZ55NFrFfOLSZxUb\nfU6xG8nP6qmn9srOnQ0Ju9/xqmI2omuNYjJv3jyJVtm5fft2Tj311H6/RyxFKspyPJ9VdXV1p6KU\nQCBAZmYmjzzyCFdeeeVxiaE/BupZJernfqjYtGkTZWVlgx3GsKDPKjb6nGI3kp9VRcVOFi0ay5gx\nmQm5X6zPyhizWUTm9fV9eluDqNQJb/HixZ3W8j3wwAMUFBSwcuXKQYxKKaXUcOB0+snMjH1Z0lDR\nYxWzMaYY+CHQCNwuvbS7UWok+tSnPsWVV15JXl4eHo+H/Px8nnvuOXJzh1FHfKWUUsediOBytZKR\n0VvTmKGnt4gfAvYCpcAdgK5uVyecO++8kzvv7K3Tk1JKKdWZ1xsgOTmJ5OThN2HbW4I4WUQuM8bk\nAANXTqqUUkopNcI4nX4yMobf9DL0niDa2qaZp2BNMyullFJKqRi4XK1kZg6/6WXoPUG8D9iNtc/y\nmoEPZ/gSkeHX40ipPtLuB0op1TuXa4SOIIrIL40xmwC3iFQdn5CGn5SUFNxuNxkZGYMdilLHhdvt\njqtZuFJKnYiczuFZoAIxtLkRkd2aHPasuLiYw4cP43K5dGRFjWhWRZ6Lw4cPU1xcPNjhKKXUkOZy\nDc8WN9DDCKIxxkgfsp2+vm44y8nJAaCqqiq8jVxfeDwe0tPTExXWiKbPKnaJflYpKSmUlJSEf+6V\nUkpF5nL5KSoaXnswh/Q07rkZmNuHe/b1dcNaTk5Ov//C3LRpU3hfYtUzfVax02ellFKDY0RPMfeB\nVmoopZRS6oQ3IqeYgZnGmD19uOfwfBJKKaWUUgk0XHdRgZ4TxD8AfVlL2NTHWJRSSimlRoTW1iB+\nf5C0NNtgh9InURNEEbn2OMahlFJKKTViWKOHKcO2R/Lw2xxQKaWUUmqIs9YfDs/pZdAEUSmllFIq\n4YbzLiqgCaJSSimlVMIN5xY3oAmiUkoppVTCDecWN6AJolJKKaVUwg3nFjcQR4JojFk/kIEopZRS\nSo0UTqf/xEgQgY8YY/5ojFlljNGRR6WUUkqpKFyu1hNminkH8DDwceBDY8yPjTG6watSSimlVBdW\nFfPwHUGMJ/LPisjrwHPGmExgLfAjY0wh8FvgMRE5MhBBKqWUUkoNF8Gg4Hb7sduHb4IY8whiW3IY\n+rNTRH4DrAH+DHwfOGCM+bsx5pPGmPTEh6qUUkopNfS53X7S0mzYbMN3RV48RSrfbfs9yRjzEWPM\n74EjwLeALcB/Af8NzAfeNsZcOgDxKqWUUkoNacO9xQ3EN8X8qbap5SuBEuAg8BPgNyKyo8N1/zTG\n5AGbgA2JClQppZRSajgY7k2yIb4EcSLwGaASKync1MO1JwHF/YhLKaWUUmpYGu4FKhBfgvghMFtE\nPDFcezXwq76FpJRSSimVWFu21BIICGeeOfDjV8N9H2aIL0Fc3VNyaIy5SESeARCRW/odmVJKKaVU\nghw54sQYE9O1tbUudu1q4uyzx/TpvZzOVvLyUvv02qEinirmD3u55Hv9jEUppZRSakDU1XlobvbF\ndG1VlZUg9tWIHkE0xgSOZyBKKaWUUgOhtTVIS4uP5OQkRKTXkcTGRg9NTV58vgCpqba432+478MM\nPU8x1wAPxngfA9zQ/3CUUkoppRKrocFDfn46LS0+PJ5Arw2sGxt9GGOor/cwenRm3O830tvcvCUi\nd8V6I2PM/ATEo5RSSinVJ9FG/I4d8zBqVDrGQHOzL4YE0cuYMZl9ShBFZES0uYm6BlFEVsV5r//o\nZywxM8aMMcY8Y4yR4/WeSimllBq6RITf/GYHDkf3dYb19R4KCtLJzU2jqcnb4318vgBut59Jk7I5\ndiyWxi2dtbYGMcb0aWp6KEnkHjDrE3ivqIwxlwOvAFP78NoUY8x3jTE7jDHvGWP+bYw5N/FRKqWU\nUup4crn8eDx+qqqc3c7V1VkjiLm5qTQ19Vyo0tTkIycnlcJCO/X18SeII6EHIsSZIBpj1hhjnjLG\nbDfG7On4C5gxQDF29VXgQuBffXjtT4GPA4tF5DSsXo3/MMbMTmB8SimllDrOQolfpATx2DF3zAli\nY6OX/Pw0Ro1Kp67Og0h8k5UjYXoZ4tuL+WrgYaAZa5eUF9t+fQCMA54diAAjWCQiO+N9kTHmFKxC\nmh+ISC2AiPw/YC/wP4kNUSmllFLHU3Ozj/z89G4JosvlJxgUsrJSYppibmz0kpubFk7yXC5/zDE0\nNXnZtatx2Le4gfgaZd8CnC0iu4wxb4vIdaETxphzgOuivzRxRCT271Rnl2FVW2/scvwF4CZjTJaI\nOPoVnFJKKaUGRXOzlylTcnjvvbpO07x1dW5GjbJjjIl5BLG0NAtjDAUF1ihiTxXJwaDw1lu17NrV\niNPZyuTJOSxYUJLQzzYY4plitonIrkivE5F/A9MSFtXAOAMIAge6HN+LlSgfrylypZRSSiVYc7OP\n3Nw0Ro/OpKqqfbynvt7DqFFpAGRmpuDzBfD5ord6Dk0xA+Fp5p4cONDCzp0NLF48luuum8HSpeMZ\nNSo9AZ9ocMU1SW6MMWJNxruNMdNCU73GmFLg5IEIMIEKAZeIdP2paG77fVTXFxhjbqCtv2NJSQmb\nNm0a0AAdDseAv8dIoc8qdvqsYqPPKXb6rGKjzyl2iXhWr7/u5JRT0mhsDHDgQJBDh+wAbN3qJi/P\nRmiMq7rawTPP1JCT073KWETYvLmF3NyDfPBBEgcO+KivD9DUZI/6vm+/7SY/38bOnUfYGfcCuPgd\nr5+reBLED4BHjDG3AE8DLxpj/th27mPAq4kObrCJyC+AXwDMmzdPysrKBvT9Nm3axEC/x0ihzyp2\n+qxio88pdvqsYqPPKXaJeFZ7977P8uUn4XS2smnTYcrKrHGr2tqdLFo0lrFjrX6GTudepk8vYOrU\n3G73cDpb2b37Q5YvnwnA0aNOXnyx/V5d+XwBdu7czsc+Nv24FaYcr5+reD7N94GLgHTgHqwp2f8E\nbMA/sdYoDmXHgAxjjK3LKGJO2+91gxCTUkoppfrJ7w/i9QbIzEwhIyOZpiYfHo+f1FQb9fXeTlO+\nOTlpUfdk7ji9DFBQkE5Dg5dgUEhK6r493759zYwenTkiqpa7ivkTichWYGuHQ1cYY9KBFBFpSXhk\nifcOcCUwHtjX4fhkwA+8PwgxKaWUUqqfWlp8ZGWltCVxhtGjMzhyxEl+fjrp6TbS0tqnk3NzU6P2\nNwxVMIekptrIzEyhqclLfn73dYUfftjIySfnJfzzDAX9apQtIp5QcmiM+WFiQkoMY0yJMabj51sH\nCFDW5dLzgX9oBbNSSimVeMGgsG3bwE7ShZpbh5SWZlJV5Qw3yO7IanUT2wgiRC9UcbutptyTJ+d0\nOzcSxNsoO8cYc4Ex5pPGmKs7/sJqQD0kGGMWAVXAA6FjIvIB1nrCrxljCtuuuw5rR5ZvDEacSiml\n1EjncLSyceMhPJ6+dqnrnVXB3J4gjhkTShDdFBR0TRBTo04xNzR4ycvrnCCGWt10tXt3ExMnZg/7\nLfWiiXmK2RhzGfAbIAOrn2BXx2VfZGPMPVg7qUxo+3pL26kFIhL6jjuAJuBIl5ffDHwL+JcxphVo\nAZaLyBaUUkoplXAtLdZfzbW1bsaPz4779W63H7u953SludlHTk57YldSkkF9vZe0NBvTp+d3ujY7\nOwWHw0cgEMRm6zxO1tjYPUEcNSqdXbsau73nhx82MmdOYbwfZ9iIZ1XlPVgjck9gFXR0TAgN8FQC\n44pKRL4SwzVbgYIIx1uBO9p+KaWUUmqAOZ2tANTUxJ8gVle7WLduN1deeXKntYFdNTf7GD06I/x1\ncnISRUV2Dh50sGjR2E7X2mxJZGWl0tLS2ikZDASCOBytnUYiwUoQX3218whic7OPhgYPEybEn/AO\nF/FMMTtF5HYR2Swi+0Rkf4df+4AvDlCMSimllBqmWlpaycxMobbWHfdr9+1rJj3dxosvHu5xT+Su\nU8xgrUNMSoK8vNRu1+fkdN9RpbnZR2ZmCsnJnVOjvLw0nM7WTs21d+5sZMqU3G4jkCNJPJ/seWPM\nuB7On9nfYJRSSik1sjgc1vZzfUkQ9+9v4YILxuNy+fnww+7TvGA1t7aKVDqPMI4bl0VBQXrEJM7a\ncq/znsxWBXP3ZDIpyZCfn0Z9vYeaGhevvHKELVtqOeWU/G7XjiTxTDF/BfimMSYL2AW4upy/EatX\nolJKKaUUAA6Hj1NOyeeDDxrxegOdWs70xOlspanJy9ixmZx//jieemofEyZkd1uP6HYHsNlMt/uW\nlmZx2WVTI947UiVzY6MvYisbgFGj7GzYsJfMzGSmTMnl4osnU1KSEfHakSKeBHEN8DUg2o7Vx6VI\nRSmllFLDh8PRSnZ2KoWF6dTWuhk3Lium1x040MK4cdnYbEmUlGQwbVoe//pXFcuWTeh0XXOzt1OL\nm46iVRjn5KR22q8ZoKHBQ1FR5C31zjqrhLlzi7pVRI9k8Uwx3w38CJgHTMFqMB36NQXYkfDolFJK\nKTWsORytZGWlUFRkp6am6+RjdPv3tzBxYnsRyMKFJVRVOTlwoPPeHFYFc+QEMRprirn7CGLXCuaQ\nrKzUEyo5hPhGEF0iErVfoDFGi1SUUkopFdbaGsTnC5CRkUxxcQb79zfH9LpgUDh0yMHixe0VyKmp\nNs4+ewxvvFHdqXq4LwliTo7VC1FEMMYgIhGbZJ/I4hlBfMUYU9rDeS1SUUoppVSY09lKVlYqxhiK\niuwxF6ocPeoiOzuFzMzOq9qmTMmhudnXqXF1U1P3CubepKbaSE21sWtXEy+9dJjf/GYHWVnd3+9E\nFs8I4tvAX40xzwG70SIVpZRSSvXA4WgNJ135+Wk4nf6YClX2729m4sTuW9jZbElMn57P++/Xh0cX\nm5t9fdoPubjYzltv1YSLTgoK0jAm0j4gJ6Z4EsTQtnWzopzXIhWllFJKhbW0+MjOthLEpCRDYWE6\nx465KS3tuVBl//4WliyJPGk5Y0YBFRW7OPvs0SQnJ/Vpihng4osnx/2aE0k8U8zb6VyYokUqSiml\nlIrK6WztNG1bWGinpqbnaWaHw4fD0Rq1jUxubhpFRXb27GkiEAjicllFMCqx4hlB/ImI7I920hhz\nVwLiUUoppdQI0dLSSmFhe/VvcbG1/V1PDhxoYfz4LJKSok/3zphRwLvv1lFcnEFWVuqI3tFksMT8\nREXkoY5fG2PsXc7/KVFBKaWUUmr4C7W4CYmlUMVqb9N9/WFHkyfn0NDg5cCBlvAUtkqsuFJuY8xM\nY8x6Y4wDcBhjHMaYdcaYGQMUn1JKKaWGKYfDR1ZW+/rAgoJ0Wlp8nfY17khEqKpyMm5cZo/3DRWr\nvPlmTZ/WH6rexZwgGmPmAK8CZwH/BB5v+/0s4DVjzOwBiVAppZRSw1LXEcRQoUq0UUS3O4AIMbWb\nmTGjAJertdsezCox4lmD+H2snVT+R0T8oYPGGBvwDeCHwIrEhqeUUkqp4cjnCxAICOnpnVvaFBXZ\no1Yy19d7yM+Prd1MXl4aEyZkU1CgCeJAiCdBnCYiF3U9KCIB4DvGmD2JC0sppZRSw1lo9LBrsldU\nlMHhw5ELVerrPYwaFfuWdhdfPLnHYhbVd/GsQeztWi0hUkoppRRgVTBnZ3dfH9hToYo1ghh7gqjJ\n4cCJJ6l7zxjzQ2NMp7FcY0y6MeYe4N3EhqaUUkqp4crp9EVcS1hQkEZzc+RClfp6r04ZDxHxTDF/\nDXgZuMEYsw1oAAqAmVi7qCxKfHhKKaWUGmpEBJfL32MxiTWC2P28zZbEqFHpHDvmYezY9mplEaG+\n3kNBQewjiGrgxNMH8T1gHvAUMBW4CGsHlb8A80Xk/QGJUCmllFJDyuHDTp55JureGUD3CuaOIk0z\nu1xW/WtGRjxjV8OL0+mkvr5+sMOISVzrBkVkl4h8SkTGiEhK2+9XiciugQpQKaWUUkOLw9GK2+3v\n9ZqOPRA7Ki62U1vr6nSsocFLQUF6TBXMw4nH4+EPf/gD5eXlFBUV8b//+7+DHVJMEpamG2MeFZFr\nE3U/pZR12NjyAAAgAElEQVRSSg1NTmcrHk/kZtchvY0gbt16rNOxujrPiFl/6PP5SE21kmO/38+n\nP/1pPB4PAHv37h3M0GIWV4JojJkGLAFKAFuX08sTFZRSSimlhi6nsxWvN0AwKBEriUWElhZf1G3w\nCgrSaWqyClVSU610oqEhvgrmoebYsWNs2LCByspK3nrrLQ4cOEBqaipZWVl8+ctfprCwkMsvv5zx\n48cPdqgxiTlBNMZ8HvgJEG3sVxISkVJKKaWGNKfTj4jg9Qaw27unEl5vgKQkE07+urLZkigoSKeu\nzsOYMVahSn29l5NOyhvQuBOturqadevWUVlZycaNGwkErFHVpKQk3n77bRYuXAjAd7/73cEMs0/i\nGUH8MnAT8GegXkQ6JYTGmLcTGZhSSimlhiaXqxUAj8cfMUGMVsHcUahQZcyYzHAFc37+8Jli3r17\nN9OmTSOUDiUnJ7NixQrKy8u59NJLKSoqGuQI+yeeBLFJRB7u4fwn+huMUkoppYY+l8tKDN3uAPn5\n3c87na297qdcXGznyBGrUMXrFYwZuhXM+/fvp7Kykg8++ICHHnoIgClTpjBz5kwmTZrE2rVrWb16\nNQUFBYMcaeLE8514zRgzUUSi1bWvAbYnICallFJKDVEigtPZyujRGXi9kSuZrfWHkSuYQ4qK7Lz7\nbh0ADkeQ/PyhVcG8a9cuKisrqays5I033ggfv+OOOxg/fjzGGLZs2YLNFnkafbiLJ0HcCmwwxjwP\n7ARcXc7fCHw/UYEppZRSaujx+YIkJRmyslJxuyNXMvdUwRxSUJBOY6OX1tYgLS0BJk8eGtPL27Zt\n45Of/CRbt24NH8vMzGTVqlWUl5dTWFgYPj5Sk0OIL0G8v+33M6Kc1yIVpZRSaoQLTR/b7TY8nsgj\niA5HK+PGZfV4n+TkJPLz06irc+NwBAdlBxUR4b333mP37t2sWbMGgPHjx7N9+3ays7NZvXo15eXl\nrFixArvdftzjG0zxJIjbgZVRzhmsHVaUUkopNYI5na1kZCSTlpYctRdiLCOI0F6o0tJy/BJEEeHt\nt9+moqKCiooKdu7cSUFBAatWrSIlJYWcnBz++c9/MmvWLNLShsao5mCIJ0H8SQ/rDzHG3JWAeJRS\nSik1hIX2YLbbbTQ3eyNe43TGliAWF2dQXe3C4QgMeAXzvn37eOCBB6ioqGDfvn3h44WFhVx22WW0\ntLSEi0wWLFgwoLEMBzEniCLyUC+X9LznjlJKKaWGPWuKOZn09OgjiE6nn4yM2EYQ33ijGjAJr2AO\nBALU1tYyevRoAOrr6/nRj34EwOjRo7n88sspLy9n8eLFJCcPzerpwdSnJ2KMKQG6pvrfweqRqJRS\nSqkRyun0k52dQnq6LWKC6PMFEBFSU5N6vdeoUem43X6ys5MSUsHs9/t56aWXqKioYN26dUydOpWX\nX34ZgDlz5nDnnXdy4YUXcs4555CU1Ht8J7J4dlJJA34IfAbIGLCIlFJKKTVkOZ2tlJTY20YQu08e\nhqagY0n4kpOtHVUCgb4naz6fjxdeeIHKykrWr1/PsWPtezxnZGTgdrux2+0YY7jrLl0NF6t4RhDv\nBOZi7ajy9bavAcYA1wNPJjY0pZRSSg01oQQwPd2G2909QQwVscRqzJhMWlv73i7mj3/8I1dffXX4\n62nTplFeXk55eTlz5swZUr0Vh5N4EsRVwGIRaTHG3Cgivw6dMMY8CvS2RlEppZRSw1yozU16ug2v\n15pO7piEuVz+uBLEJUtK2bRpZ6/Xud1unnnmGSorKxkzZgz33HMPABdffDGzZ8/m0ksvZe3atZx2\n2mmaFCZAPAliUERaIr1ORI4aY8YmLiyllFJKDTWhXVQyMpKx2ZJITk7C5wuSltY+AmgliL0XqMTC\n4XDw9NNPU1FRwdNPP43T6QSguLiYH/zgB9hsNvLz83n77bcT8n6qXTwJojHG5IhIM1BnjLlURDa0\nnVgGjB6QCJVSSik1JLS2BjHGkJpqJYTWfsz+TgliqMq5v379619z00034fF4wsfmz5/P2rVrWbt2\n7YjexWQoiOc7+DLwL2PMRcAvgT8bY97F2kHldOAnAxCfUkoppYaIrslfWpo1zdyRy+UnLy++Wtbm\n5mYeffRRioqKWLVqFQCnnnoqHo+Hc845h7Vr13L55ZczadKkfn8GFZt4EsRvAycB9SLyO2NMFnAV\nVrub/wG+l/jwlFJKKZUoXdcLxqtrf8NIhSouV2tMU8y1tbWsX7+eiooKnn/+eQKBAGVlZeEEcf78\n+Rw6dIjS0tI+x6v6Lp5G2XVAXYevHwQeHIiglFJKKZV4f/jDhyxdOo7RozP79HqXq/MIot3evVm2\nVeUcPb14+umn+dGPfsSLL75IMBgEICkpiWXLlvGxj30sfJ0xRpPDQaStw5VSSqkTgNvtp77ewyuv\nHGXNmil9Gkl0Oq0WNyHWFLO/yzWdRxAPHjyIiDBhwgQAjh49ysaNG0lJSWHFihWUl5czatQoLr30\n0j5+MjUQNEFUSimlTgANDV6Kiuw4na0cPOhgwoTsuO8RanETYhWptI8gBoOC1xvgyJEDrFv3Zyor\nK3nttdf4/Oc/z/333w/AmjVrSElJ4ZJLLiEvLw+ATZs29e/DqYTTBFEppZQ6ATQ2ehg1ys7Eidm8\n+upRxo/PinsU0elspajIHv46Pd1GXZ1VZbxr1y4ee+xxHnnkD3z+8++Hr7Hb7YhI+OuCggKuuuqq\nfn4aNdA0QVRKKaVGCI/Hj8vlp6Agvdu5+nov+flpnHRSLm+9VcOuXU1Mm5YX1/1Du6iAVfCSkmLC\naxB/9rOf8eMf/xiArKwsLr74YsrLy7nooovIzOzbmkc1eDRBVEoppUaI7dsbOHCghUsvndLtXEOD\nl7FjMzHGcPbZY3jppcNMnZpLUlLso4gOh489e7bx4IN/obKykquuuoEZM1YDcMUVV7Bv3xFOPfV8\nvvnNq0lP756kquEj7gTRGGMH5gN5IvKkMWZUW4XzcWGMKQZ+DMxrO/Qu8AURORTDa/cBjRFOfVlE\nnktYkEoppdQgOHrUSW2tO2I7m8ZGb3hkcfz4LDIzU9ixo54ZM0b1eE8R4c0336SyspJf/er31NYe\nDJ/75z9fYMoUqy3NggUL+O//vp8jR1yaHI4AcSWIxpg7gNuATOAo8CTwoDEmBbhSRNyJD7HT+6cC\nzwIfAjOxmnT/CthojJkjIo7e7iEiswcyRqWUUmowiAhHjrgIBITmZh+5uWnhc62tQZzOVnJyUgGr\nhcyCBSW89NLhXhPEq666isceeyz8dXFxMZdddhnl5eXMnXs2Tz65P3zO6pOok5MjQVKsFxpjvgTc\nAjwAXEP7SNyngH3AdxMdXATXAGcAXxURv4gEgK8CU4D/OA7vr5RSSg1Jzc0+jIFx4zKpre08XtPY\n6CUnJ7XTdHJRkZ2mJl+4gCQQCPDiiy9y88038/rrr4evO++88xg7diw33PA5vv71X1NVVcWDDz7I\nsmXLyM624/EEwveItUm2GvriSfOvBxaLyAcQThgREa8x5svA6z29OEHWAgdEZE/ogIgcNca833bu\nnuMQg1JKKTXkHD3qYvToTEaNSqO21s1JJ7UXoDQ2esnP7zzta+2nHOCpp/7OX/+6nnXr1lFTUwOA\nzWZjwYIFAFx77bVcf/31HDni4rXXqjvtgZySYo0ztbYGSU214XL5KS3VEcSRIK7vYig5jHDc3zb9\nO9DOwJpe7movcEEsNzDG3A2cCxRijXzeLyJPJipApZRSajAcPepkzJgM8vLSeOedY53ONTR4yM9P\n63Tsa1/7Gvff/yAOR/vS/KlTp1JeXs4VV1wRPpaaav317nJFnj5OT7f2Y05NtXVrkq2Gr3gSxGRj\nzMki0i1BM8ZMA47HT0QhsDnC8WYgwxhj72UdZA3wFnA7YANuADYYY24Wkfu7XmyMuaHtGkpKSga8\nkafD4dBmoTHSZxU7fVax0ecUO31Wsen4nHy+IMEgpKdHXtnV3BwgJ8cW8VysXnrJwemnp2O3J/Hq\nq06ys/eHC1Vee62R6uqtVFfPJjc3F4APPvgAh6ORsWPHc8EFZZx33nlMnToVYwyNjY3dvsd79nhx\nu4VNm/Z2On7ggIMXXjhCbq6Nd95pwW4/yIcfxryCDdCfqXgct2clIjH9Ar4O1AJ3ASuA7cAi4PNY\nI3FfjvVeff0F+IC/RDj+O6yCFXsf7vkUVoKZ3tN1Z555pgy0jRs3Dvh7jBT6rGKnzyo2+pxip88q\nNh2f0yuvHJGXXjoc8brW1oDcf/9W8fsDfX4vr9cvP//5O+F7/PKX26Sqql4qKirkiiuukPT0DAHk\n4YcfDr9m9+7d8uijL8iWLTUxvcfLLx+WzZurux1fv3637N/fLMFgUH7+83fE6/XHHb/+TMUu1mcF\nvCn9yLniGUH8PjAOuKPtawO81PbnB0TkR31JUON0DIi0N1AO4JK+VVG/BqzEqoqONDqplFJK9Utj\noxebLXK/QY/Hj4jg8QTIzIxv5C2kutpFUZEdmy2JJ554gl/+8ld8/vMv4vG0/7U4Z85ccnJywl9P\nmTKFxsYsWlpaY3oPp9PPqFH2bset/ZgD+HxBkpJM29pGNdzFnCC2ZaOfM8bci7XerxArYXtORHYP\nUHxdvQNMj3B8MlY/xKja+jfapHsrnNAmkvoTrZRSakA0Nnqjtn9xu/0AeL2BTvscx37vRqqq3IwZ\nY+1W8vOf/5x//3sjAAsXLmTVqjWkp8/lK19Z3u212dmpVFfHNrbicrWSmdn9M9jtNtxuf9v6Qy1Q\nGSli/k4aY/7c9sdbROShAYqnN38GHjLGTBKRfW1xlQCnAl/reGHb8VoRCbYd+jhwNnBjl3ueCXiB\n91FKKaUSTERoarJa0ETidgfafvfHfM+6ujo2bNhARUUFzz33HP/zP39g7dplANx6662ce+5yJk48\nl8985lz27WvuVrQSkpWVgsPhi+k9nU5/xAQ2PT05vMVfXxJcNTTFM5b9EeA3WA2yB8ujWCOFPzTG\nJBtjkoAfYFUx/zx0kTFmEVCF1bOxoyuNMfM7XPdxYA1wd4SRRaWUUqrfXC4/fn8wvGdxVx5P+whi\nT6qrq3nwwQe58MILKSkp4TOf+Qx/+9vfCAQCbNnyNqNHWyOIl156Kbfd9iUgHxGhoaF7i5uQ7OyU\nmKaYRSTqCGF6ug2PJ9DWA1FHEEeKeL6TW0VkfbSTxphSETmcgJiiEhGfMeZCrK323scqTHkPWNol\nwXMATcCRDsf+htUn8WdtO7/kAQ3ATSLyi4GMWyml1ImrsdHLqFHpNDZ6I54PjSBGSyCBULEkhw9b\nf80mJyezYsUKysvLOffc5bzxhqtTchYayXM4Wqmv91BSkhHxvhkZKXi9VgKbnBx9zKi21k1GRjJp\nad1XY6WnJ1Nd7W7bRUVHEEeKeBLEF4wx54nIS1HO/wWYm4CYeiQi1cAnerlmK1AQ4XXf5fjs+KKU\nUkoB0NTko7DQShBbW4Ph5tIhXUcQ9+/fT2VlJevWrWPDhg0UFBRgjOGjH/0oO3fupLy8nNWrV1NQ\nYP019957dYwZ0/k9jTEUF2dQW+umsdHL9On5EWNLSjJkZqbgcLSSl5cW8RqAPXuamTIlt9v+ztBx\nijnyGkU1PMXznfQDvzPGbAF2YI3SdTQ6YVEppZRSI0Rjo5fc3DTsdiuRSknpvK+Ex+PH4aji4Yf/\nxBtv/IM333wzfG7Dhg1cd911ANx7770RE7SjR53h6eWOiors1NS4e5xiBsjKSo0hQWxi6dJxEc+1\nTzFHrnJWw1M8CWKovc044OII56X/4SillFIjS1OTj5NOyiU93ar2zc5uTxC9Xi/XX/8Rdu16L3ws\nMzOTVatWUV5ezkc+8pHw8UjJIcCRIy7mzCnudryoyM7mzdbWeXZ79EYd1jrE6IUqDQ0evN5A1Glq\nK0H043Qm6RrEESTeNYhzop00xrydgHiUUkqpEaWpyUtubirp6Tbefvsdtm59ia985SsYY0hLSyM1\n1U5mZjYLFlzALbdcw4oVK7DbYxuJc7n8eDx+Cgq6j/4VF9upqXExZkxm1OQSQpXM0QtVrOnlnKj3\nsNuTcbsDJCdH3opPDU/xfCfv7OX8zf0JRCmllBppgsEg77zzNm+//Ssee+xPHD5sbVN3/vnnM3++\n1VTjxht/wNlnn8zhw17WrJka1/2rqhyMHh05AczKSsFuT+62B3NX2dmp1NS4op7fs6eJs86Kvoos\nJSWJYDBIS0urtrkZQeJplP2XXi7J6mcsSiml1IjQ0tLCgw8+yHXXXce+ffvCx/PzR1FefjnZ2e2b\ngmVljaaoKIfdu+PvIldV5aS0tPv6Q7CmpIuK7D2uP7TeP4U9eyKPIDocPpqafIwdG/k9Qu+TlpaM\n1+snPV33nBgpEjkW/D3gmQTeTymllBoWAoEAO3bsYObMmQDY7XaeeeYZmpqayMsr4hOf+CinnbaU\n009fyLnnthd7iAher5+8vLRwNXM8qqqclJWVRj1/9tljep32zc5OjdoLcc+eZiZNysZm67ltst1u\nIykp+jpJNfzEs5NKzx08lVJKqROI3+/npZdeoqKignXr1lFXV0dtbS25ubkkJydzyy23MG3aQoqL\nZ7JixSTee6+OY8c6b2vn81n9BzMyknvsgxiJx+OnqclHUVH09Yo9nQsJFamISLcEb8+eJk4/vbDX\ne6SlJffYR1ENP/GMINYAD3Y5lom1N/IZwK8TFZRSSik1FLW2tvLCCy9QUVHB+vXrOXasfQu7SZMm\nsXv3bubOtVoCL126lNTUU0hNtaZdQ1XMHbndftLTk0lJSUJEIvZJjObIESejR2f0OrrXm9RUGzab\nweMJYLe3pwVut5+aGjcTJmT38GqL3W4jGNQEcSSJJ0H8k4jcFemEMWYesDYxISmllFJDR8eRterq\nai666KLwuWnTplFeXk55eTlz5szpNgLX2Ohl2rQ8oL3atyO324/dbuu0jq9rn8Roelp/GK/s7FQc\nDl+nBHHfvmbGj8+KKWFNT9fq5ZEmniKVW3s496Yx5meJCUkppZQaXG63m2eeeYbKykref/99Nm/e\njDGGcePGcfXVVzNp0iTKy8s57bTTelx319TkDTegDu040pHH4w8nV3a71XA6K8aSz6oqJ+ecM6b3\nC2MQ2pO5qKj92J49TUydmhfT6zMzk0lK0hHEkSQhKb8x5nx0JxWllFLDmMPh4Omnn6aiooKnn34a\np9MZPrd9+3ZmzJgBwK9/HduKKhGhqclHbq41Ihh5ijkQThCtEcTY1iH6fAHq671Rm1fHKyurc6GK\nx+Pn8GEnF144IabXn3lm90bdaniLp0hlT6TDQD6QDXw/UUEppZRSx9PWrVs566yz8Hg84WPz58+n\nvLyctWvXMnVqfP0JATweITXV1mkNotcb6DRl7fH4w7uchLasi8WRIy6KiuwJKwzJzk7B4WjfTWX3\n7ibGj88Ox96b/q6DVENPPCOIucCTXY4FsIpXXhSRvycsKqWUUmqA1NfX8+STT3L48GG+8Y1vADBj\nxgwyMzOZO3cu5eXlXH755UycOLFf7+N0Bjvtb2yzJZGSkoTX2z5q6PF0HEG04fXG1uqmqsqRsPWH\nEGqW3V5h/eGHjcya1Xv1shq54t1q77oBi0QppZQaILW1taxfv56KigpeeOEF/H4/aWlp3HLLLWRn\nZ5OSksLevXs7NbDuL6czyLhxnQtOrEKV9nWHbrc/nERGKmKJpqrKyYIFJQmL1dpuzxpBdDh81NV5\nYqpeViNXPAnimkgHjTHTgIVYVc7Rd/tWSimljrOtW7fyxS9+kRdffJFgMAiAzWZj2bJllJeXdyqs\nSGRyCN1HEKE9CczPt74OVTFDaASx9wSxtTXIsWOehK0/hPYiFYCdO5uYMiVH+xqe4OJJEDcBcyMc\nzwZuxEogyxMQk1JKKdUnBw8e5ODBg5xzzjkA5Ofns3HjRlJSUlixYgXl5eWsXr2awsKBnz51OoPh\nApUQa51h+zRyxyrm9HQbTU3eXu9bXe1i1Ki0mNcHxiIjIwWPx4/fH+TDDxtYtGhswu6thqd4EsSI\ndfwi8haw2BjzTmJCUkoppWK3d+9eKisrqaio4LXXXuPkk09mx44dGGOYMGECGzZsYPHixeTn51Nb\n62bfvmaOQ36Iy9V9BLFrqxu3u705dawjiFVVDsaOjbEXToySkgyZmSkcOuTA5fL3uPeyOjH0mCAa\nY84AZrd9mW+MuYruiaIBxmGNJCqllFID7tChQ/z2t7+loqKCt956K3zcbrdz+umn43K5yMy0kpzV\nq1eHz9fVeThwwMG8eYlbvxdJMCi4XEFycyNPMYdYI4i2iOeiqapyMnt2Ua/XxSsrK5XNm2uYNi2P\npCTdU/lE19sI4mXAt9r+LETfTs8NfCFRQSmllFIdiUinpO+dd97h61//OgBZWVlcfPHFlJeXc9FF\nF4WvicTrDeDzxbfncV84HK2kpppuu5B07IUYCARpbQ2SltZxDWLvVcx1dZ6Y9liOV3Z2Ch980MB5\n5+n0suo9QbwPeBRrlPApYGWEa1qBahEZ+P/ilFJKnTBEhK1bt1JRUUFlZSUzZ86koqICgGXLlnH9\n9ddzySWXsHz5ctLT02O6p9frj7kZdX9UV7vIyem+RtBuT6a+3uq1GGpxE+qJGEsfRI/HTyAgZGQk\nfmu7rKwU8vPTKSxMfPKphp8ef8JEpAloAjDGfENE9h+XqJRSSp2QRITNmzdTUVFBRUUFu3fvDp9z\nOBz4/X6Sk5NJTU3l4Ycfjvv+Hk/guCSIhw45KCyMnCCGppE9nkC4ghnad1Lp2Ei7q8ZGa+u+nrb3\n66uJE3MoLLQPyL3V8BPPXszrezpvjPmeiHy9/yEppZQ6UT3wwAPcfPPN4a+Li4u57LLLKC8vZ8mS\nJSQn92/kzOezppiDQRnQdXZWgtg91o5VzB37IQLh6ejW1mDUCuWGBi/5+WkRz/WXFqaojuL6L81Y\n/6yYB0wBuv6EfgLQBFEppVSvAoEAL7/8MhUVFUybNo1bbrkFgJUrV/L973+ftWvXsnbtWs4991xs\ntsS1cwlN4fp8gU7JWSI1NXlpbQ2SldW9j6BVxWzF0DVBtM5blczREsTQCKJSAy2evZjHAn8B5mAV\nrHT8p5ckOC6llFIjTGtrKy+++CIVFRWsW7eOmpoaAGbOnBlOEKdMmcKhQ4cGbJozNL3ccbu7RDt0\nyMH48VkYU9PtXGgnFei8D3NIKIGM1rO7sdHHSSflJjxmpbqK57+Oe4AXgU8ClbQXrIwBbgNeTmxo\nSimlRopf/epXfOUrX6G+vj58bOrUqaxdu5by8vJO6+4Gcg2c1xvAZjMDWsl88KCDCROyqemeH5Ka\nmkQgEMTvD3bahzmkt16IjY0e8vKKEx2yUt3EkyCeDnxKRMQY4+1QsLLfGHMFVpXzvQmPUCmlhrDm\nZh/BoOi0Xwcej4d//OMfpKfnsXjxOdjtyRQWFlJfX8/06dMpLy9n7dq1zJo167gXRFijc6l4vcG4\nX+t0tuJ2+3us8hURDh92sGjRmIgJojGGtDSrWbbb7Y+400pohLGrYFBoavJ1e41SAyGeBNErIqGp\n5BRjTJKIBAFExGeMGZf48JRSamjbvLmGpCRYsuTE/l+g0+nkmWeeoaKigr/+9a84HA7mz7+Ihx/+\nLbNmFbJ8+XK2bdvGjBkzBi1GEcHnC1BYmN5pN5NY7dnTxJ49zVx66ZSo1xw75iEtzUZ2dvQkLiPD\nqmT2eAKMHt11DWJy1BHElhYf6em2hG6xp1Q08SSIQWPMTBHZBuwCfmCM+Z+2c18C9CdWKXXCOXTI\nwahRsfXgG4meffZZHnroIZ5++mncbnf4+LRppzNp0hnhxs/p6emDmhwC+P3WGEdmZkqfppi93gBH\njjgJBILYbN0LUKB9/WFPQpXMkYpU0tKi90JsbPSRn3/i/qyp4yueBHED8E9jzFnA3cALwH91OH9j\nIgNTSqmhrqnJS1OTN7wTxomgsbGR5ubm8NdvvvkmlZWVACxcuJDy8nIWLbqIDz5IYubMUVGnSweD\n1+snNdXWts4v/ilmjyeA3x+kpsbNmDGRW8IcPNjCzJmjerxPqBDF7Y5UpBJ9itmqYNbpZXV8RP4n\nUAQi8j0RKRCRD0XkFWAh8EPgx8CFIvL/BipIpZQaig4dcjBuXBYOR+tghzKg6urq+NWvfsXKlSsp\nLi5mw4YN4XNXXHEF9913HwcOHODVV1/lC1/4Env2pLB4cWnbWr+hs8mW1xskPd3WayFINKGikqoq\nZ8Tzfn+Qo0ddlJb23E/QbreSQGsf5u5tbqLtx2wVqOhaV3V8xNPmJlSA8gMRqRGRd4B3BiYspZRK\nrFdfPcrpp48iMzMlYfc8eNDBySfn8eKLh3ucdjwe/v3vI8yfX9Jt79++qq6uZv369VRUVLBx40YC\nAStpSUpK4tixY+HrJk+ezK233hr++q23asjPT2Pq1Fz27Wvudeu448nj8ZOWZq3ha2z0xv16ny/A\npEnZVFU5OfPM7uerq13k56f12j4nPT25LUHsXsVsrUGMNoLoY9IkbXGjjo94/k9yC3AAaBmgWJRS\nakAEg8KWLbVs396QsHuGqlXHj88mIyMFp3PwplJDn6+52Zewe37pS1/ipptu4rnnnsMYw/Lly/nF\nL37B0aNH+eIXvxjxNQ0NHt59t47zzhsLhFq2DKUp5gBpadYIYl/WIHo8ASZNyuHIESfBYPf2vwcP\nOigt7Xn9IVhJYEuLNercNaHveQ2iTjGr4yeeBHGLiNwnIu5IJ41u3qiUGqJaWqzEafv2etqbMfRP\nx2rVrKyUQZ1mdjhaCQYFlyv+GPbv38+9997LokWLWL++fUfVK664glWrVvHII49QXV3N3//+dz77\n2c9SVFQU9V6vvHKUuXOLycqykhirGGPojCBazbFtpKUl9WmK2ev1k5eXRlZWCseOdf+r0PoHQ+8J\nYuwRE1AAACAASURBVEZGMg0NHjIyIm3FF7mK2eez1iz2VB2tVCLFU6TypjHmVBHZHuX8ZmBuAmJS\nSqmEamjwMnZsJi6XP9zEuL86VqtmZqbgdA5eghhKgGMdxdy1axeVlZVUVlbyxhtvhI//+c9/Zs2a\nNQBccsklXHLJJTHHcPSok5oaF8uXTwgfS0uL3rJlMFgjiMmkpvZnDaKNsWMzqapyUlycET7X0OCh\nsdEbtXilo/R0Gw0NkbfMi5ZUh/ofDuT+0Up1FE+CuBWoNMY8B+wAHF3OFyQsKqWUSqDQX8aTJ+fw\n/vv1CUkQO1arDvYIYlOTlSDGMoJ45ZVX8vjjj4e/zszMZNWqVaxdu5aVK1f28MroRIRXXjnKggUl\nJCe3T0yF9hXuuEvKYPJ4AqSlJfXYa7AnoQSztDSLnTsbmT27fTR169ZjnHbaqE6fP5r09OS2vaC7\nV7+HpuW7PjPdg1kdb/EkiA+0/T49ynndj1kpNSQ1NHgoLs5g2rQ8Xn31KC6XP+L0XqxC1aqh0bKs\nrJTwmrLB0NLiIzXVhsvVPoIoIrz33ntUVFRwzTXXMGWK1dx5xowZZGdns3r1asrLy1mxYgV2e/vO\nIEeOOHnllaNcfvnUmN//4EEHLpef6dM7jxMkJRlSUpLw+YJDohWQ1xsgLy+tT1PMra1WW5yUlCTG\njs3kxRcPh5M4l8vPzp2NfPKT0f567CzU2sZu7/4zmJycRFJSEq2twU4NsRsbveTmaoKojp94/g+5\nnfb9l7syWFvtKaXUkNPQ4OWUU/JJS7MxeXIuO3bUM3du3/ez7VqtmpmZwpEjrkSFG7eWFh8lJRk4\nHD42b95MZWUlFRUV7Ny5EwC73c7tt98OwK233sptt91GWlrkZKO62kVVlYPaWhdFRRkRr+nIGj08\nwoIFJRGnP62ef/4hkyCGdiKJliC+8MJBzjprTLd/QPh8gfBnyMxMIS3NRl2dh8JCO++9d4yTTsqL\n+R8doZ+baNXOoWnmrgniuHG9r29UKlHiSRB/0mH/5W6MMXclIB6llEooEem03mvmzAKef/4gc+YU\nRZ323L69nvz8NEaPjtYMuXO1alZWCk5n4iqI49Xc3MrTT/+cv/zlj9TUHAofLyws5LLLLmPJkiXh\nYzk5OT3eq67OQ25uGtu21VNW1nuCuGtXE8YYTjopcvuVvvYcHAihKuaUlCSCQYnYmmjPnmamTy/o\nluyF1h+GlJZa6xBzc9N49926uEZck5OTSEmxdWuSHdJe/d1ekNLQ4OW003puwK1UIsXTKPuhXs7/\nqf/hKKVUYoWaDof+wh89OgObzURtduzx+Hn55Sr+9rf9OBz/n703D2+ruvO4P0eLLcnyvmZ1Yich\nO9nIUgJJ2KFAITYdZkqndHkLnc4wTNfpdIFOpy1T4J3OtJ0Z6HSbtlNesAlrgZQmIUmBlJCQkI3E\nieM43ndbuyWd948ryZIsyZItO3F8Ps+jx9G9514dHSn3fvVbY4u+6GzViY5B9Pv97N27F5fLBUB/\nv5vW1jO0t5+nrKyMv/mbv2HHjh20tLTw5JNPsmHDhqTP3dXlYv36Murq+kYsBeP3S/bta2X9+rK4\nYvtiymR2uzVLphAiZjcVr9cfaoEXjcvljbDoTZ9upbnZzgcf9FBWZkm5BZ7ZrI9rQTSbDRHFsqWU\nKgZRMeGkVFFVCLFACPFzIcQZIcSZwLZ/FkJsHZ/pKRQKxdjo6XGRn58ZEjBCCBYvLuDo0e6Y448e\n7Wbu3ByWLSvi1Vcb8HojRYTL5aWz0xWRrWqxaIWPY9XGSxder5cdO3bw+c9/nhkzZnDVVVfxhz/8\nAZ/Pj9Pp5Z/+6Wt8+cu/4vz58/zkJz9hy5YtGAypxVn6/Zq1tbw8m7IyC3V1fQnHd3VpAjVRaZeL\nyYKoJaloIi8jY3gtxGAMZyyBGHRPB5k+PYumJhvvvdcRkaySLGazIWYMIgxfM4fDi14v4o5XKMaD\nVDqpXAHsBHrQspiD9vQ/AT8UQggpZW36p6hQKBSjJ1Y5kcsuy2f//vZhcXZer5/Dhzu57ba5FBaa\n6OhwsHdvM5s3zwSgoWGA3bubWLKkICJbVa/XMmMdjsFQDcB0IKVk+/bt1NbWsm3btogOJnPmzMHh\ncDAwoL3mhg3LOHzYhN8v0I8y3K+/34PZrMXoLVlSwLvvtrN4cfwCFa2tdqZNy0qYoZyot/BEE3Qx\nQ2zhGswCj21B1DKYg+TkZGAw6MjM1MrepMqiRQWUlJhj7tOsrkNzUNZDxYUglZ8jjwAPAf8mpfQL\nIQ4ASClfE0LcADwFKIGoUCguKnp63OTnR95cTSYDGzZMY+fOJqqr54WSK06d6qWw0ERRkXbjvvba\nWTzzTB0HDrTT2emirc3B1VfPoLx8eJmcoJt5rAJxcHAQo1FrByiE4Atf+ALHjh0DYP78+VRXV1NV\nVcWqVasQQtDYOEB2thEhBBaLJlJHm+3a2emksFBzlZaX5/DGG010djpD6xFNMn2HL5ZaiFLKCCtg\nbIHojfgbTrQFEbR41pISy6hK+CSKJ4yem8pgVlwIUnExz5ZSPi6l9EfvkFI2AqkFYCgUCsUE0NPj\noqBg+OVp0aJ8MjJ0HD6sWeWklMPchRkZem65pZyDBzuwWo3cffeCmOIQxhaH6HQ6ee6557jnnnso\nKirizJkzoX0PPPAA3/rWtzh8+DAffPAB3/ve91i9enVIlPT3e0LdNSwWw5ha/nV3D62VTidYtKiA\nY8diu+JBE4jxEnmCXCwxiIODfnQ6EUpKiSUQ7fZBMjNjWzxjCcQ1a0rTUlMzmvAYxK4urX1hcXFs\nka5QjBepWBCNQghdLIEohDACRemblkKhUKSHeB0rhBBs3jyT2to6Kipy6ejwIYQYFk+Xn2/iU59a\nPKKVKJluKh0dDt54owm/H1wuOwcPvsHJk2/wxhvbsduHkmZ27twZqlt43333JTxnf7+HnJygQDSO\nqt1ekK4uF/Pm5YWeL1pUwNNPn2LDhmnDegbb7YO43b5h1tloMjP1MdvSTTTRAi+eBbGw0BxHIHrJ\nypoYO0hmpp7WVgdvv93K0aNdrFtXxpIlqheFYmJJRSDuA2qEEF+UUtYHNwoh8oAfAnvTPTmFQqEY\nC8H+tUEBFU1eXiaXX17Mrl3nOXPGzR13xC59k4wLMRkL4p//3Mbs2dlMn25m+fIKenqGrHNXXHFF\nyH1cWZl8yZSBgcGQFSsryxDTPZosXV0u1q0bEkE5ORmUllo4fbqPhQvzI8a2tjooLR3ZvXqxWBC1\nMjVDt7z4AtFEU1N0o7DIBJfxxmTSU1fXS2VlHnffvYCsLOOEvK5CEU4qAvFLaAkpdUKIdiBHCFEH\nzASagY3jMD+FQqEYNX19mvUwUf/alSuLqKvrxW73M39+7Fp+yWC1GunoGG4p6+7u5oUXXmDbthe4\n5ZZvccMN5RiNOq65ZgtNTc3MnHkl3//+55g3r2JUrzswEGlBHG1P6MFBPzbbILm5kWJ64cJ8jh/v\njiEQ7Un1Hb5YYhDd7sjC07GKZdvtg8ydm0NdXW/M48OTVMaTmTOz2bp13qiSXxSKdJH0t11K2SiE\nWAF8AbgWzaXcCfwfWuJKz/hMMRIhRAnwb8CawKb3gQellOfjHxU61gh8C7gL8AL9wFeklMr6qVBc\ngnR3j5z9qdfruOGG2RgM54YVTU6FrKwhC2JHRwfPPfccNTU17NixA69Xs+pt2VKF0bgCgKeeegqD\nwUBtbR0ZGamXSQnS1+chJ0ezMFksBlpbR9fRpafHRV5e5rA1mDMnh127zmO3D0ZYslpbHaxfXzbi\neS8WC+JwF7NuWJ1Lh8NLQYEJt9uH3y8jflhEF8oeT4Lt/BSKC0lKP4eklN3ANwKPCUcIkQH8ATgJ\nLEHr//xzYKcQYqWUcrhfIJIfAdcAV0opO4QQnwG2CyE+JKV8bzznrlAoJp5YGcyxKCgwUVQ0NuuQ\n1Wqks7OHa6+9ll27duH3a+Haer2eLVuuZfr0D7F167Wh8cEaheXlOTQ0DIwq2WFw0I/H4wsJt6ws\n46hdzJ2drlAGczhGoy5kVbv8ck3I+nySjg5nUokTmZmRJVvGA79fIkTiUIBgkezwecUqc2O1GkOJ\nKuGCOLxEjkIxFUj557IQ4hohxNeFED8RQvyTEGLLeEwsDp8AlgNflVJ6pZQ+4KtABfC5RAcKIS4D\nPgs8IqXsAJBS/g9QD3x3XGetUCguCD097pgZzOmisbGR3/72t4Amzny+DM6fP49er+fmm2/mZz/7\nGW1tbXz/+7/hM5/5LLNnD7e4lZdn09DQP6rXt9k8ZGUZQ8IoWOZmNHR1xRaIAPPn53Py5JDbta/P\nR0GBKcJlG4+gEJNy/IqI79/fxs6diZ1I0TGE0S5mKSVOpxeLxRDIIo4UtbGymBWKS5lUCmUXo9U5\njI41lEKIvUCVlLJz+JFppQo4J6UM1YCQUrYKIY4F9j2a4Ng7AYFW7DucHcD9QghrEhZIhUIBvP12\nKyUlZioqRh+zNxH09rrIyytJ6znr6+upra2lpqaGffv2AbBx40bKy8vJzDTwy1/+hkWL5pOXp2UD\nDw76OXLkeNxevUVFJgYH/aMqhtzX54mIGRxLmZvubhezZsUuRjFrlpXXX/eE5tjT42P+/JH7NIPW\nd1iv1zE46E9KUI6Gs2cH6O52sWJFcdwfBLGymMM7qTidWoyiXq8bJhD9fonH4xu3+SsUFyOpWBD/\nC8gGPorWRaUAmAf8JZAD/GfaZzec5WgWv2jqgWVJHOsHzsU41gAsHvPsFIopgJSS48e7aWwcuNBT\nSYjfL+nr86SlA0Vvby/f//73Wb16NRUVFXz5y19m3759mM1mqqqqcDq15BSr1Uhl5ZKQOAQ4caKb\nadOy4vbqFUIwe3Y2DQ2pr+fAwFANRNDq57lco2v5pxXEjj1HnU4wf34ep05pVsSeHl9SCSpBRhOH\n+N57HaFWfolwOr309rpZs6aUffta446LTlKJnpPDMRjq1x0tED0eH0ajLmGyk0JxqZFK0M0WYK6U\nMtwX0gucEUJsB06ldWaxKQLejbG9H7AIIcxSyngFt4oAR8AtHX0swLCy9kKIz6K5pSktLWXXrl2j\nmnSy2Gy2cX+NSwW1VsmT7rXq6/Nx/Lid5mY9Utal7bzpxmbz0dzs4E9/6kpy/NA6SSnp6emhoECr\nPWe323nooYcYHBzEbDazYcMGrr76atauXYvZbKa1tZXW1lbOnXOwY0cDZWVa7JrfL3njDRuXX25m\n166zcV+7vX2Q/fs99PSklphw/LgLo1GgFZTQaGoaYPv2Tkym5H//u91+6upsvPNOe9w4vp4eL4cO\nubDZsmhrc1BXd4CmpuReo6HBxs6dzeTmJmeBc7n87NhhY86cDBYvThwi0NIySG/vIH19Hbz5pg23\n+zR5ecNf58ABB6WlRrq7jaHXOH7czq5dmqjs6PDS0OBm164W6uqctLToaG7WflzY7X4aG+3s2pWa\nk0xdp5JHrVXyTNRapSIQz0aJwxBSyl4hxNn0TOniQUr5JPAkwJo1a+TmzZvH9fV27drFeL/GpYJa\nq+RJ91rt39/OjTe6OXWql6uvXpo2q4qUkq4uF16vP253jrY2B4WFpog+yPGor+9Dym42b56b1Ovv\n3LmTvLw8ampqqK2tpb29ndbW1lDbux/84AdUVFRwww03YDLFswaeJz/fxPLlmqv29Ok+li1r5847\n542QQOHjV786zpVXLh5WkDoRLlcDFRU5LFgwVIKmtfUkq1fPjOgxPRKNjQPY7e1s2RK//qKUEpvt\nA2bNKsNk2sNNN21JusVcb+9pVq0qYdas5BJx3nqrhXXr7LhcPjZvvizh2F27zrNoUSYrVhRTVtbF\nqVO9bN48/H3095/h8suLQ51wvF4/9fVH2LRpGUIIjh/vJi/PxubNs8nKasPr9bNhwzRA+97Z7U1s\n3jw/qfkPzU1dp5JFrVXyTNRapVQoWwhxnZTy9egdQojriYrtE0LUSimrxjrBKDrR3NzR5KBZBxOV\n6+9EszLqo6yIOYG/yZkZFIopTkNDP2vWlNLa6qC72xW3T2+yaNaoXs6c6Q9l5N5994KYY3fuPM+q\nVcURgige3d0jZzBLKdm/fz81NTX85je/obm5ObSvoKCAuro6Fi1aBMCDDz444mtmZWVEFMsOtu4b\nSUhlZuopLjbT1GRjzpychGPDCe+iEiQYh1icQuWc7u74CSpBhNDczG++2UJ+vj6l/sOZmYakXcwe\nj49jx7qpqprHs8+epq8vcR/ixkZbqK/xokUFHDzYQWPjwDAxqiWpDIlvg0GHEAKvV2I0ChyOoaxl\ns9lAe7sj4liVoKKYaqQiEPuBWiHEn4Bjgec5aOVmLgf+RwjxrbDxG9I2yyEOAwtjbJ+LVg9xpGP/\nEpgFnI061ov2nhQKRQJcLi9dXS6mT8+iuNhMR4dzTAKxrc3BSy/Vs3RpITfdNBuLxchTT52MO95u\nH6Sx0ZaUQGxttUe0jYvF+++/z9q1a0PPS0pKuPPOO6murmbTpk0h62GyWK1GGhu1uLmWFjsOhzfp\nRJ5gNnMqAjE6BhGC7fZSS1Tp7HRRWjqyxXHBgjz2728jPz81sWQyDS8pE4/jx3uYPt1KXl5mKDZz\n+fLYArG/34PH4wuJW51OsG5dGW+91crMmdYIEaslqUTe8jIy9KH4QofDS3b2kECMjkFUJW4UU41U\nBOJXAn9vCjyiia6NOB41DZ4FnhBCzJFSngUQQpQCi4CvhQ8MbO8I6x29DfgesBn4ZdjQLcB2lcGs\nUIxMY6ON6dOzMBp1FBebaW93EjCwpYzP52fnzvNs3Didyy7TBJ/fL3G7ffh8/mEFm30+Py6Xj/Pn\nbUgpE1qwXC4vTU12rr9+duBYH3v37qWmpoaWlhZqamoAWLZsGVdddRWXX345lZWV/N3f/R16/eiF\nQHi7vffe6+Dyy4uSdsGXl+fw8sv1I763IB6Pj8FBfyixIshoSt10dblYvHjkXr8FBaZAvcbUYvG0\nWogjC0S/X3LoUAc33KB9buXl2Zw40RNy2Udz/rxmKQxfr3nzctm/v43mZjszZgz11Y5VxzBYgifY\nR7u0VPuxEy0QXS6vsiAqphypZDEfklLqkn2gWezSzS/RLIX/KoQwCCF0wCNomcj/FRwkhLgSrf3f\nT4LbpJQfoMUTfk0IURQY90m0jOyvj8NcFYpLjoaG/lAMV0mJmc7ORFEdiTl0qBOLxcCCBUNWPp1O\nxKxBB4Rq1EmpZScn4vTpPqZNM7F7907uv/9+pk+fzubNm/nxj39MbW0tTU1NgOY23b17Nz/60Y9Y\nsWLFmMQhDAnE3l43zc32Ye3pElFQkBnKvE6GgYFBsrMzhonJrKzUSt1IKZNyMQe5/fYKcnJGY0Ec\neU6nT/eRlWUMxaDOmmWlpcXO4KA/5vjz5+3MnGmN2CaEoLw8h5YWe2iblDKOQNSFLJvhLmaLxYDT\nOSRoozOgFYqpQCoC8VsjDxnT+BGRUnqA6wEfmkv4OJqb+5ooC6AN6ANaok7xd8AzwJ+EEEfQMpRv\nUF1UFFOB/n4Phw6NvlSplDKi40dRkZnOTteoSqr09ro5eLCDTZtmxBA4xpgCx27XbuAzZ2aPWGLn\nxRd38Nd/vZbrr7+eJ554gvb2diorK/nqV7/KO++8w/Tp01OeczJo8X+DvPdeB0uWFKYkKoQQ5Oeb\nkhaI/f3uYfGH2hxSczF7PH50OjGuAiiZMjdSSt57r4OVK4eCJ00mA0VFZpqb7THHa7GG1mH7ysos\ntLQMxRB6PP6YZWrCi2UnKnOjxSBOTB9mheJiIZVezC8m2i+E+Fcp5VeTHT9apJRtwF+NMOYQWp3G\n6O2DXMBWgQpFLPr7PRw71h2xbfHigpg3/7HQ3Gzn0CHN7TkaOjqcmM2GUMJAZqYei8VAT487aesT\naDf2N95oYuXK4pjJB0GRFY3drt3AZ860Ul/fz7Jl2vtwuVxs376d7u5u7r33Xmw2DxbLTOx2GwsX\nLqS6uprq6mqWL1+eUmLFaMjI0GMw6Dh5spePfSxx9m0sNAtkbIE4MODh7FktRjE7O4P+/sFQD+Zw\nUnUxO51ezObxFT+ZmYYRYxCbm+243T7mzo2MwQzGZgYt10G6ulxkZOiHxWAClJZa+OMfG0Pu+ngu\nYpNpaF52uxeLRVvPjAwdPp+fwUFNWLpcvnHtyKNQXIykdFUQQuQAVwBlQPT/tr9Aa3unUChSoL6+\nj6YmW+gG2NAwgMViiBt3NVp6e92hoP7RWIti9QsuKdESVVIRiB980IvT6WXFithptvH6CQddgLNm\nWfnjH0/zzDPv8Oyztbz00kvYbDaKi4u55557OHWqj6VLZ1JXV8fs2bNTe5NpwGo1UlJijujjm8qx\n4VnQ4Zw508/hw538+c9tIVE0b97wBJhU+zE7HN5hcYzpZiQLopSSffvaWLWqZJiILy/P5pVXGobF\nZp4/b4tpPQRtDUwmQ6jVYjwXcdDF7PForQAzMjSnmhAiVHTcaMzA7VYxiIqpRyqt9u4E/hewoLWs\ni2b8Gm0qFAmY7C2wBgYGmTs3h1Wrgi3hRFyRMBb6+tyAZnlJpQtGkIaGftati+wlrCWqOFKKtTt5\nsoe1a0vjJm9oMXSxLYhNTSf4xCce5KWXfo/bPRT/uGrVKqqrq/F4PJw82cOVV04fFps2USxdWhhX\nuIxEdraR5mZHzH0DAx6WLClgxYpiWlrs1Nf3DxPsMGSBTTbZZWIsiIljEM+ds+F0emN+jwoLTfh8\n/mFdcRobbSxaFP97N22ahdZWe0ggxhJ4wSzm4I+P8PUKupmzszNwu/0qi1kx5UglBvFRtKSPtUAF\nWnmY4KMCOJH22SkUI9DZ6eQXvzhOb6/7Qk9l1ASTDYJYrcaYAmms9PZqruDu7pHbl0XjcHjp7nYP\nE5YlJRY6OlJLVLHbBxO6zy2Wofff29vLiRMnQscZDJLa2lrcbidLl67i0Ucf5cyZM7z77rt87Wtf\nw+XSypVMn566AE4XS5cWJqzbl4isrIy4n33we6LTCWbMsLJx4/SYJYYyMrQahR5P7MSOaCZCICay\nIEopefvtFtati/2jIZh00tAw1KfB5/PT0jI8QSWcsrKsUByiVgNx+HsMZjHHsqKazYaQJVazIKoY\nRMXUIpVvvF1K+Y/xdgoh/iEN81Eoksbl8vLKKw0YDILeXndaeu5eCGw2D1brkDsykZtxtAQzf5cv\nL6KzM3WB2NRkY8aMrGEdTIqKTKFEleDNvanJxrvvtnP77RUxzxUe6xULt7uP5557msce283rr7/O\nhg0beOONN7DbvaxdewX/9V//xdKlG+nqsvCRj0S+xqlTvcyfnzdpe+ZmZxsZGIgfgxis0zcSwTjE\nZKxeExmDGMuqWVfXhxCCysr49SLLy7M5cqSL8vIczpzp48yZPoqKzAlFW1mZJZSUpWUwD7eHZGbq\n6e11B+JbI9dWy2TWBGJ0kW2FYiqQylXhj0KImVLK83H2rwa2p2FOCsWI+P2SP/yhkTlzclIqDXIx\nolmGxlcgOhxedDrB9OlZ7N/fnvLx7e0OSkuHW+VMJgMWi4HeXi3Wy+v1s2tXEwMDnphiwOv1Mzjo\nw2yOFC4dHR08++yz1NTUsHPnTnw+zdqk0+nIyMhgcHAQh2MQqzWD+++/H7fbxy9/eRyv1x8SrVJK\nTp7s5cYbJz7uMF0EP/tYaxerKHY8gnGI+Ul4/h0O77j/uAq2Dwx2LQni8/nZt681ZjZ7ODNnWtm+\n/RzPPnuaioocrriijBkzEluJCwpM2O2DOJ3emEWyIZjF7I9rQQwKRE1gKguiYmqRyjf+y8A3hRBW\noA6IDpS5D/h+uiamUCTi1Ck3JSV+PvShMt5/v4v+/skpEL1eP263NyKhIdUYsmTQ4rcyQi7mVM/d\n3u4Mi5GMJNhRpaDAxLvvtlNQkIndPojHMzxuS7sRa7Fefr8fnU4TDi+99BL3338/AAaDgaVLr+SB\nBz7BHXfcQXGgZ5xmedQuWZmZegoLM2ltdYTcjKdO9SKENp/JSkaGHr1e4HL5Iqx68Ypix0OzICaX\nqOJ0ToxLPhiHaDQOidwTJ3rIzs4YsUdzRoaej398IRaLIenvrU4nKCuz0NbmSJCkEoxBHCQrK7ZA\nDNZgTKVHtkJxKZCKQLwDrVtJPB+HSlJRTAj19X2cPz/IPffMRq/XkZOTQVPT5GyEY7NpVrHwm16w\nVEq0SBgLvb1aP1stEF+L57Nak7NGSSnp6HBSUhJbeAU7qhQVmTlypIu/+Iv5PP98PTbbcBfnBx+c\nZufOX/Pkk2+wcuVKfvzjHwPwkY98hNtuu42tW7dy66238fTTTXz608tCrmK/X+JyRbqmg/UQ8/Mz\n2b27mc5OJ9deO2vcS9mMN9nZWj/n8M9e+54Yk35v0aWCtB8FxMw2nwgXMwzFIVoDYYNer5933mnj\n5pvnJHX8aLLCy8osNDfbcbm8MeNegzGIdruX6dMjWw2azQa6u1243V6VoKKYkqRyVfgB8BhQC3QT\nKQgF8HIa56VQxMTl8rJzZxMrVw6VEdFqwk1OC2Lwxh9N0NWYrht3X99QjGZhoYmuLnfSArGvz0Nm\npj7uXIqLzbzzThvt7Q7Wri3Fas0Izb+w0MTp06epra2lpqaGd955J3RcS0tLyJJZUFDACy+8ENpn\nMrXhdA5ZVp1OLUkgPLZw1izN7XjsWDdLlhRy3XWzLgkrT1aWVgsx3BLa3+9JqS5meKmb5mY7L79c\nT0VFLtdeO2vY2IkSiNG1EM+ft5Gbm5lUD+jRUlamhVSYzYaYIm8oSWV4DGIwScXt9qsSN4opSSpX\nBYeUMm5LOpWkopgI3nyzhcrKXKQciqPLzc2gry92zNvFTrzEg2Bv2HS5S3t7PVRWagWICwvNdHU5\nhxUejkci6yFoArGlxc60aVksXVoIDJWqefTRR/nKV74SGmsyWVi//ho+97mPc8stt8T9vILHm1ig\nAgAAIABJREFUBwVisEh2OKWlFubOzWHZsqKU6jBe7GRnD49BtdkGk44/BAIFzF00Ng6wffs5Fi4s\noKcndnLSRFsQgzQ0aEW/x5PSUi3LvrjYPIJA9A5zMQeTVFwur4o/VExJUvnWvyWEmCGlbIqzXyWp\nKMaVpiYbjY02/vIvF/Dmm6dC2zMy9BiNuoheqpOFoIs5mnQnqkRaEDNjti6LR/AGGw+z2UBlZS7Z\n2Z08/PDDLF26lJkzN2K3D7Jx40ays7O5/fbbqaqqIi9vOdnZVtasKU34muGlboAIsRjEYNCxefPM\npN/HZMFqNTIwEPnZ9/cnn8EM2vqdP2+joWGAm24qJzNTz/bt54aN8/tl3BqB6Sa8FmKwbeOtt6a3\nGHys18zNzaC93RGnDqIOj8eH3U5MC2IwwUVlMCumIqkIxIPAS0KI14HTqCQVxQTi9frZufM8V189\nPWaweU6O5maebAJxYMAT08WWToEYLHETrM1XWGjm8OGupI9vb3fE7HoipeTgwYPU1NRQU1PDqVOa\naL/mmmv4t3/bQne3i6uvXkdHRweZmdprv/56Y1KJFllZkUkWWh/mqWHFsVozhvWattkGk7b4gmZV\n9/vhttvmUlJiweXyxvw+OZ1afN1ElAUKtyD29LiREvLzx780VVmZhc5OZ0wLol6vQ6+PHe8bFIjx\naigqFJc6qXzrfxL4e3mc/SpJRTFu7N/fTmGhmblzY9dKCwrE0XQIuZDYbINUVg63IGZlGVOy8iXC\n7ZYYDCJ0gywoMNHb646oXRiPoQSVSBH785//nO985zucPXs2tK2oqIg77riDj370o1itRs6dG0Cn\n04XEIRAz1isWQRd7+HGTTfyPllgWxIEBT8xY1Xjk5WXyyU8uCrnwMzP1+P1yWNehiXIva3MwhARi\nQ8MA5eXZExISUlaWxZEjXXETTTIzdRiNumH/FwwGTTz293tUDKJiSpLKleE4cEucfSpJRTFu9PS4\nOHq0i7vvXhB3TFAgTjaiayAGSWc3FbvdH1HnzmjUkZVlDNUuTERfnwe9Hg4ceJuSkhIWLNA+A7/f\nz9mzZykrK2Pr1q1UVVVx9dVXYzBol5S2NkfM+ScbBmCxGCIKetvtXoqKLp04w0TE+uxTTVIBIsSX\nECJklS4ouDAC0WTSh4qANzT0c/nl4+teDlJWZkEIkUAg6uMKVbNZ6+dcXDw1vnsKRTipXBn+Q0rZ\nEG+nEOLbaZiPQjGMc+dsVFTkJhQWubkZcXvYXqxIKeNahtLpYrbb/UyfHunKKyoy0dXliisQvV4v\ne/bs4X/+57e88soL9PR08MADD/Dv//7vAFRVVbFw4UI2bNiAXj/8xhtv/rGSTWKRlaVZIMOPS8XF\nOpnR1m4o6crn8+NyjT2+dkggDn3mE2tB1FzMHo+PtjYnM2ZMTK/s3NwMPvKRirgiMCNDH7eXu8Vi\noK/PzcyZk8szoVCkg6SvDFLKJ0bY//TYp6NQDKenJ76QCZKTk8mJE71jeh0pZUr1AceKy+XDYNDF\nvDkl6qiRKg6Hn7y8yPdUUKAJxPnzI8fu2bOHX//612zbto3Ozs7Q9rlz5zJjxozQ8/z8fDZu3Bj3\nNc1mAx6PD5/Pj16vBfj7fH48Hl/SAtFuH4pBnIwJSKMl+J0IvueBAc29PtY4wViifaItiG63l8ZG\nG9OmWeKKsnQjhEjYszlRCSez2UBHx4Dqw6yYkqSUmiWEWCCE+LkQ4owQ4kxg2z8LIbaOz/QUCuju\ndo9YxkRzMbvH9DrNzXZ+//u4RvK0kyiuLCNDjxDg8fjH/Do2mz+UoBJEq4XoxO1243Q6AS2jtaam\nhp/+9Kd0dnYyf/58qqo+x4svvsHp06cjytWMhE4nMJsNw0Se2ZxcJ4zoQs/JWh4vFcLFXCot9hIR\nHdcJ4HQmJ9jTQTBJpaGh/6KyBptM+rhrYDYb8Hr9EyZmFYqLiaQFohDiCuAAcD1aFnOQPwHfFUJU\npXluCgVSSrq7XSNmO1qtRpxOL17v6AVVb68bhyO9PZATES/+MEi63MzRFkSn08m+fX/ge9/7e0pK\nSvj1r39NR4eTX/3qOJs23cG3vvUtDh8+zIkTJ7jpps+zZcuGUVkxo2PpNJGXnBXQYjHgcnnx+yV+\nv8TpHN4r91Im2E0Fgt+TsQvEC21B1JJUvIEElfGtf5gKBQUmiopil3EKro1KUlFMRVK5MjwCPAT8\nm5TSL4Q4ACClfE0IcQPwFFqXFYUibTgcXoRgRHGg0wmsVu2mGp6QkQp9fR5cLt+EFdy22TwJ3dnh\n3UhGi+Y296PXD/L0009TW1vLyy+/jN0+lCH9pz/9Gb3+SpYsKeT4cfja176JyaTFXun1YtSuXa0j\nSLhATL5UjV6vuVmdTs0CmZmpD7mqpwLBbioQv5h6qlitRs6ejSyfM9EuZpttkNzcTHJzJyaMIxni\n9RiHIYGoWu0ppiKpXBlmSykfj7VDStkohFBpXoq0o1kPTUkJtmBHldEKxN5eN16vn8HBiXEpjWRB\n1FyCY8vMttsHMRgEH/vY3bz66quh7WvWrGHBgs1UV1fR3Z3NtdfOYs6cHNxuL2+91cqWLTNHLJA9\nEmMtVaO1ixsM/XsqkZ09VOpmYGCQ6dPHniQRKzt6IgVisJTMRJW3SQfBH6bKgqiYiqTyk9wohIg5\nXghhBCamZoFiStHd7aagIDnBN9Y4xL4+7dig1Wq8Gcl1OBoXc3d3N7/85S+59dZbefvtt+nt9ZCV\npeOOO+5gw4YNPP7449TX1/POO+/wyU8+QEeHlZtuKg+1PFu/fhoNDf00NdlGbLE3EtECUbMgptIN\nRIthtNunlnsZYsUgjl0gZ2VlDPs+ORwTt7ZCCEwmw0XlXh6JYMysikFUTEVSuTLsA2qEEF+UUtYH\nNwoh8oAfAnvTPTmFIpkM5iDZ2aOvhRjsNpKfb8Ll8pEbux53WtFczIljENvaRi7d09HRwXPPPUdN\nTQ07duzA69UE7mWXXcanPjWfrCwdn/3sZ7nvvvsijlu1qpiVK4sjXNiZmXquumoGu3Y1YbEYWLFi\n9L/7rFYjnZ3O0HO7fZCysuFdY+IRtCBKOfUsiFq4RLiLeewuWbNZH7KQG43ab/2JtCACXHPNzElV\nMsZsNpCRMbyItkIxFUjlyvAltISUOiFEO5AjhKgDZgLNQPyaFwrFKOnqcjFvXl5SY3NytJ6ro8Fm\nGyQzU092tnGCLYiJXcwjWRA/9rGP8dRTT+H3a8k5er2e6667jqqqKu68807q6txkZeliuvTiCe/K\nylxOnuzh9Ok+brhhdgrvaPj8x1KqJvz4qScQtc/e79dKL6XDgiiECFl18/IyGRz04/P5yciYuNjO\noKV6spCbm8EVVyTuG65QXKqkUgexUQixAvgCcC2aS7kT+D+0xJWe8ZmiYqoipaSnZ+RuH0GCMYij\nobfXTW5uJmbzUDuw8cTr9eN2JxZM0TFjjY2NPPvss9xzzz0UFhYCkJeXh16v58Ybb6S6uprbb7+d\noqIhq9+7754lKyt1AXDVVdMxGvVjEmaxsphT6adssRjo7ta6qST7HbhUyMrS+gAPDHgwmQxpS9AJ\n/ujIy8vE5Uq+7NBUxWDQxexDrlBMBVLyLUgpu4FvBB4ACCHyASugBKIiafbvb6OhYYBNm2bELTER\nzGA2m5OL/wm22xtNFrKW3JKB0ajH5Rp/C6LNphXkTjRPLeu0nscee5Gamhr27dsHQHZ2Np/61KcA\n+MY3vsF3v/td8vJiW1l7e92jEohWawbXXTcr5ePCCdYyDH4eqZS5AU3MnD9vQ0rJrFkXT928iUCv\n12EyGWhrc6TcYi8R4bGNE+1eVigUk4ukrw5CiKellB+NsesKYJsQ4vtSyn9J39QUlzINDQMUFpp4\n/vkzLF5cwJo1paG4qCCpZDADmEwGhNA6lKR64wtaEKWUE+Ji1gRibLEkpeQHP/gBTz/9NAcOHAht\nN5vN3HLLLVRWVoa2TZs2Le5r2O2D9Pd7KCm5MOVhMjL06PUCl8tHRoYOjye1zyUra6hYdiqWx0uF\n7GwjLS32tMQfBgkXiMHC5QqFQhGLVO4c82NtlFJuB8qAu9MyI8Ulz+Cgn85OF1deOZ27715AX5+H\np546ycBApHtY66CSWsmaoBUxVfr63OTlaS7miRCI0Zmpx48fR0oJaLFir7zyCgcOHMBksrB1613U\n1NTQ0dFBTU0NmzZtGvH8Pp+fV19tYM2aEgyGC+dCDMa8OZ1eTCZDSsH+Fot2bKqWx0uFrKwMWloc\nCROZUj/nUOmkqVZ8XKFQpEZCgSiEyBFCzBZCzEYrczMr+DzsUQ4sB5JPT1RMadraHBQVmTAadWRl\nGbnppnJmz87myJGuiHFBC2Iq5ORkjkog9vZ6yM3NwGSamBjEgQEPzc0n+eY3v8miRYtYvHgx+/fv\nD+3/+te/zvPPP8+vfvUOP/zhz6iqqiIrK/nszz17mjGbDaxeHb8I8EQQtFiNplSNxaKJ9akqZLKz\njXR1uZSLWaFQXBBGujr8A1r3FBl4fjbB2J+lY0KKC8vAgIfMTP241v1qarIxbVqk2Fm2rJDnnjvD\n2rWloYD87m4X8+cnl8EcZDSJKn6/ZGDAQ25uJm63b9wsiFJK9u/fT21tLb/+9VM0Nw/1fS4oKODs\n2bNcccUVAFx//fUAvP76uZRrIR471k1Tk5277pp3wRMQghZEKWXKCS8Ggy70PTQYpk4XlSBWqxEp\nZVotiEogKhSKZBnp6vAcmigUwLeBb8UYMwjUSynfSu/UFBeC3bubmDHDOq6Ze83N9mHtrQoKTOTm\nZnD27ACVlbmhHsypZq+OptSNlimqx2jUpT2LOTxhxu/38+EPf5iOjg4AioqKqaraSnV1NZs2bcJo\nHC4EootNj0R7u4O33mrhzjsrL4rivkMCcXSlaqai5TBIUBiOpwVxqmWHKxSK5El49ZVSHgIOAQgh\n5kkpfzUhs1JcEKSUtLU5ycwcv5uy1+unvd3JtGnDIxKWLCnk2LFuKitzcTi86HQiZYGQk5NBXV1v\nSsf09WnWQyDgYh6bBdHn87F3715qa2t58cUXOXDgAPn5+ej1eu677z56e3vJzV3L3//9VoqLE7uN\nrVbNzZgMg4N+XnvtHJs2zbhobvxWq5H2dkdAIKb+vZpq9Q/DCQrEdFoQzWYDHo8Pr9evklQUCkVC\nUqmD+I2RRykmMzbbIA7HYKj23HjQ1uYgPz8zpnWrsjKXvXub6e/30NeXfP3DcPLyMunqcuH1+pN2\nSwYTVEDruep2+/D7ZUoJFadOdbFt22ucObObbdu20d7eHtr32muvcffdWg7Xd77zHaSUPPHEEXJz\nR35/VquRhoaBpObwzjttlJSYky4sPhFomchehBCj6us8FZNTguTmZpKfb0qrJVj70TWUODSVLbQK\nhSIx6uqgCNHa6mDmTCutrY6UBVKytLTYmT49ttXMaNQxf34ex493YzLpk+7BHE5OTgbTpmVx5EhX\n0m7yYIIKaDfQzEw9Lpcv6ZtnX18/q1cvYGCgO7StsrKS6upqqqqqWLNmTcR4p9MXEV+XiGT7MXd0\nODl+vJu7716Q1JwnimCxbCFgzpzUaxlmZxuRcuRxlyJms4GPfeyytJ83+J1SMYgKhSIRUy/yWxGX\n9nZNIGZlGenrc4/5fIcOdeL1+iO2NTfbmTEjvlt1yZICjh/vprMz9QzmIOvWlfHuu+14PMnFEoZb\nECGxm9nlcvHCCy/w4IMPhsrSnD8/yIwZc5gxo4K//dsvc/DgQU6dOsUjjzzCFVdcMSxRRMvOTk78\nZmVljBiD6PdLdu48z4YN0y46l2x4qZrRzG3lymJWrVKdLNJJdOkhhUKhiIW6OihCtLU5WbOmhLY2\nB11doxdoAC6Xlz17mnA6vaxfXwZotflaWx0J+/sWFZmxWo2cOtXLwoX5o3rtwkIT5eXZvPdeB2vX\nlo04PlgkO4jJpI/IZHY4HLzyyivU1NTw0ksvYbPZAPjrv/5rli1bwTvvtPH88y8yMKDHZhtkxYqZ\nCV+vs9MZt3tMNGazHo/Hx+Cgf1gh8SDvv9+J0ahj0aLRrdd4YrFoMW8DA6NLOLkYEm0uNbKzjXR3\nu9HrdXG/UwqFQqGuDgpAs0J1dDgpKTFTWGhOOjEiHkHRdfRoV+hcHR1OcnIyRrRaLF5ciNfrH5NA\nveKKUg4f7sLhSJxw4vdLbLbBkIsZCGUyd3R0cNddd1FcXEx1dTVPPfUUNpuNVatW8b3vfY9p06Zx\n5EgXpaUWFiyYzpw5uTQ0DIQsi/Ho7HRSXJzcexNCkJeXSW9v7M+jv9/D/v3tbNky84KXtImFEFrM\nm9vtm9LxhBcTVquRjg6nci8rFIqEpE0gCiFWpetciomnu9tFVpYBk8lAYaFpzIkqPT1uSkstrFtX\nxq5d55FS0txsH1b/MBbz5uWybFnhmALoc3MzmT8/j3ffbU84rr/fg9lswGDQ0dvbyx//+EdMJq0f\nc15eHjt37sThcLBu3ToeffRRTp8+zbvvvsvXvvY1CgpKOHCgnXXrNCtlQUEmUmrvPRGdna6kLYgA\nJSUW2tqcMfcdPdrFwoX5ES7yiw2r1YjZnFoXFcX4kZWlZZarBBWFQpGIdFoQ/yeN51JMMO3tDsrK\ntNIzhYUmOjvHbkHMz89kyZICAI4c6aK5OX6CSjgZGXo2bUrspk2GNWtK+OCDnoSdVc6ebWH//he4\n5ZZbKCkp4ZZbbsHnc+J0+jAajfzud7+joaGBt99+my996UtUVFSEjj14sIPy8pxQtrUQgvLy7IRZ\nx16vn97e1DK0S0sttLXFru2oJRalnvwxkVgsRiVGLiKsVqNKUFEoFCMS9wohhDiT4rmmj3EuigtI\nW5uTkhJNIOblZWK3D+Lx+EYdA9bb62HevFyEEGzZMpNt207j80m2bBm78EuWrCwjS5YUsH9/G9dc\nMyu0va+vj6eeeoqamhp27tyJz6cls+h0OjZt2oTD0YPJZAWGOppE4/H4OHKki49+NLJFeXl5NocO\ndbJyZezEip4eF7m5GSl1BiktNfP++53Dtvt8Wk3JoLC/WLFajcOSlRQXjmBdRSUQFQpFIhLdpXKB\nN6IeWWidU94LPD8UeF4M/G5cZ6oYV9raHJSWakJDp9Pi3kZylSait9dFXp4W11dQYGLp0kKysowT\nnmW7YkUxp0/30dnZH9rW19fH/fffz+uvvw4INmzYzJNPPklrays7duzgsssWjFgsu6FhgJIS87Au\nFzNmWGlrc8bNoE7VvQza+vX1eYadU+vTayQz8+JO5MjONqa12LNibFgsRoQQSiAqFIqEJLpCnJJS\nfjL4RAjxZeAtKeWT0QOFEPcBs6K3K9LHqVO9zJxpHZeLusfjo7fXTWHhkNuzqMhEV5czJBpTQUoZ\n0Z0EtKSRpUsL0zLfZGloaKC2tpZf/OJ3/Mu/9HD27CmEEMyePZsvfOELLFu2DKNxOR/6UCVz5+aG\njovOYo7FmTN9VFTkDtuekaFn2jQLjY02KiuH7x+NQNTrdRQXm2lvdzJzpjW0vaXFQVnZyC77C83i\nxQV4vVO0mOFFiE4nyMoyKIGoUCgSEteCKKVcH7VpayxxGBj7BHBjOiemGOL06T5ee62Bs2f7Rx48\nCjo6nBQWmiLcngUFJrq6RmdBHBgYxGTSR7intZvS+FuR6urq+Nd//VfWrl3LnDlz+OIXv8iRI/tp\naTlPXV19aNzjjz/Ovffei99vGZbgMVI/Zq/Xz7lzA8ydmxNzvxaHGPuz6ux0RgjxZNESVSLjEFtb\n7Re9exk00axiEC8urFYVF6pQKBKTyhWiUghhkFIOM60IITKA8vRNSxGku9vFrl3nqazMG5PLNxHt\n7UPxh0EKC82cO5c4AzgePT3uC5JVu3v3bjZt2hR6brFY+PCHP0x1dTUGwxKczkhBd+xYFzqdGOYm\nDmYxx+P8eRsFBaa4gre8PIcDBzqQUkaUnpFSplQDMZzSUjOnT/dFbGttdYQyqBWKVFi+vGhS/LhQ\nKBQXjlQE4mHgRSHEN4GDUkqfEMIArAK+jRaXqEgjHo+PV15pYMOGaZhMeo4e7R75oFHQ1uZgzpxI\n8VRYmDnqWojBDObxQkrJmTNn2LlzJ3a7ncceewyA9evXU15ezsaNG6mqquLGG2/EYtFugi0tdl5/\nvZGlSwvR6QRtbQ7eequVrVsr0esjDelmswGnM74FMZ57OUgwCaWz0xXRf3hgYBCDQTcqy01JiYU3\n32wJO5cHr9cfUb9RoUiWBQsuvqLqCoXi4iKVO9XngD8A+wCEEA4g+BP0LBA73VMxKqSUvP56IzNn\nZrF4cQG9vW56esZWeiYe7e0O1q0rjdiWlaX1wB1Ni7Te3vRbEKWUHDx4kJqaGmprazl58iQAJpOJ\nhx9+GKvVSkZGBmfOnEGnGx45MW1aFhaLgTNn+pg+3cqrrzawZcvMmMW4jUYdfr8/ZvcSv19SX9/P\n6tUlcecqhGDOnBxOn+6LEIijtR6CJjq9Xhn6PFpbHUyblnVRFsdWKBQKxeQnaYEopTwlhFgA3Aus\nB8qAFuAt4FdSysQNYxVJ43J52bu3GafTy403am3pcnIycDi8Yyo9EwuHw4vb7Rsm6IQQFBaa6Opy\njUoglpenrzbf7t27uffee6mvH4ohzM3N5a677qK6uhqTaUjkxRKHQVasKObAgXbef7+Lyy7Lj2sF\nDGZ4ulxejMZIC11Li52sLGNEAk4sli0rpLa2jtWrS0IiUxOIo+sOI4SgpMRMW5uDiopcWlsdykWo\nUCgUinEjJV+XlNIDPBl4RBAvPlGRPFJKTp7sYe/eFiorc7nttrkh92d46ZnRZBbHeq3OTidHj3ZT\nWmqJaYkqKNA6qsyenZrYG4uL2e/38+abbzIwMMDNN98MwKxZs6ivr6esrIw777yT6upqpJRce+21\nKZ177twc3nqrhcxMPWvXliYcazJpAjE7O1IgnjnTT0VF7OSUcPLyMpk2LYsTJ7pZtqwI0DKY58/P\nS2nO4QQLZmsC0c6VV6rSowqFQqEYH9KZxvZntHjEcUUI8SDwWcAbePyzlPK5JI57GPgUEB3It1tK\n+UC655kqdvsgf/6zg/LyDm65pTxm+ZJgC7zRCkS/X9LSYufMmX7q6/sQQlBRkcPVV8+IOb6oyERL\nS+wOHvEYHPTjdA4XVonwer3s2bOHmpoatm3bRktLC4sWLQoJxLlz5/LOO++wcuVK9HrNerpr166U\n5gWayL7ttrlJtX2LFYcopaS+vo9bbpmT1OutWFHMH//YyJIlWtxjZ6eTD31oWsrzDlJaauHQoU4G\nB/10dUXGNyoUCoVCkU6SFoiBhJR7gc1AKRDt55yXtlnFn8M/Al8C1kkpTwshrgd+L4S4XUr5ShKn\n+JaU8pfjOslRYjDoKC42cNdd84YlTQTJzx9dj+SmJhsnTvRw9mw/VquRiopcbrllDoWFpoQxbAUF\nppQTY3p73eTmZiTVd/fw4cP8+Mc/Ztu2bXR2DnUKmTNnDh/+8IfxeDxkZGhCc82aNSnNIx4juYaD\nxMpk7ux0hlzvyTBtmgWzWU99fT8zZ1pxOn3DMqZToaTEQnu7g/Z2B0VFpmHxkQqFQqFQpItULIg/\nBj4NnECzwk1o7ywhRB7wTeBxKeVpACnlH4QQ24HHgGQE4kVLZqaeiorMuOIQoKAgk6NH7Smdt6nJ\nxquvNrBmTQlXXFGakkAJWiz9fpmU4IPECSput5vu7m6mTdOsaOfOneOnP/0pAPPnz6e6uprq6mpW\nrlx5wZMvTKbhFsSgeznZuQkhWLGimPfe68Bk0lNYmJn0OsbCYjFgMhk4frxnUhTIVigUCsXkJRWB\neBuwXEp5PNZOIcSf0jOluNyEljW9M2r7DuAxIcRCKeWJcZ7DBaWgwJRSJrPN5mH79nNcd93sUSWN\nZGToyc3N4Px5W9JxiH197ggrndPp5LXXXqOmpoYXX3yRG264gWeeeQbQ+hw//PDDbN26laVLl15w\nURiO2Ty8m0p9fX9cd3w8KipyeeutVo4c6Rp1BnM4JSVmTp3q4frrZ4/5XAqFQqFQxCMVgdgQTxwC\nSCmvTMN8ErE88Lc+ant92P6RBOJNQoiPAyVoPaRfAh6RUqYWaHeBSCWT2ev18+qrDSxbVjimjOI1\na0rZt6+VWbOsSQm4nh43+fnwzDPPUFNTw8svv4zdPmT1bG5uDhWQzszM5KGHHhr13MYTs9kQUQfS\nZvNgsw2mnDms0wkuv7yI3bub2Lx55pjnVVpq4dSpXqZNUxZEhUKhUIwfQsrkeqQKIb4EHJNS/j7O\n/lopZVU6Jxd1/ieB/wcoklJ2hW2/Dq0+499IKf8rwfFfAS4Dviil7BVCrARqgTbg6lhleoQQn0VL\niKG0tHT1U089lc63NAybzYbVak04Zs8eG8uWmcnLSywQ33/fidstWb3aPCbLnJSSPXvszJ+fybRp\nI5e72bvXxgcfPMdvfvOz0LaFCxdy9dVXc/XVVzNjRmoWuHgks1Zjobl5kJaWQVav1gThuXMeurq8\nrFyZeoKQ1yvZscPG2rWWET+3keju9vLee06uuSZ50T/ea3WpoNYpedRaJYdap+RRa5U8ya7Vli1b\n3pVSjj6AX0qZ1AP4BdAEHACeAn4e9ehM9lyB810HyCQeuwLjnww8L4xzns+l8vqBY+8KHPuxkcau\nXr1ajjc7d+4cccz27Q3y2LGuhGNOnOiWv/nNCel2e9Myr/r6Pvnb356QPp8/Yvt7752VjzzyE3nr\nrbfK73//+9Lv98snnnhfvv/+cblhwwb5+OOPy/r6+rTMIZpk1mosNDYOyGefrQs9//3v6+WJE92j\nPl+6Pgu/3y8djsGUjhnvtbpUUOuUPGqtkkOtU/KotUqeZNcK2C9T1EXhj1RczH8FNAP5wLoY+1OV\n/m8Ci5IYF3T/BtNcs4GusP3BonTh25JlX+DveuC3ozh+whkpk1lKyYED7WzaNCNtBbVgWZTiAAAT\nnklEQVTLy7M5cKCDEyd6KC728dxzz/G///sUb721G59Pi9NrbGzk7/7ui+j1gqVLF/Lmm2+m5bUv\nFOFZzD6fn/PnbWzaNHoXcbo+i2ARb4VCoVAoxpNU7jTHpJQr4+0UQhxM5YWlFveXSlLJ4cDfOWit\n/YLMjdofEyFEsZSyI2pzME01fa1JxpnCwkyOHImfydza6sDnk8yYkb4YNSEE69eX8cADX2fbth/h\n92sJ7Hq9no0btzB37lU8/PBnxqXF3oUivA5iS4uDvLzMUfVQVigUCoViMpJKIbXPjLB/3OIPA7yK\nZk3cHLV9C5p4DYlNIYRFCBHdR61BCBEtBFcH/h5I50THk5EsiEePdrN4ccGYM4IbGxv593//d954\n4w0Apk/P4rLLFqHT6Vm+/Cp+9KP/prW1lT17dvDAA3/DwYNuurpcSdcZvNgJWhCllDQ09Ke1daBC\noVAoFBc7SQtEKeW7IwwZSUCOCSllL/Ad4PNCiAoIJajciFY8O5yDQJ0QItyMZga+HRSJQohy4BHg\nA+D/xnPu6SQnJwOnU8tkjsbt9lFf38fChQWjOnd9fT2PPfYY69evZ/bs2Tz44IM88cQTof2f//zd\n/OIX+9i793X+9m/vo6hIayG3enUJZrOBt99uHXWLvYsNvV6HwaDD7fbR0DBAefnI7fUUCoVCobhU\nSMlnJjSz1BqgAohWAn8F/FOa5hUTKeUjQggX8JIQwovmIr5LDu+i0sJQK74gHwvM8b2ASLSgWSW/\nKSdJmRvQyqbk58fuyXzyZA+zZmWn7Ar91a9+xX/8x39w4MCQIdVsNnPzzTdTXV0d2jZ9ei733DM8\nykAIwXXXzaK2tu6Sav9mNhtob3fidHopKbl03pdCoVAoFCORSqu96cCLwEq0zN9wH2ZytXLSgJTy\nh8APRxizOca2/2MSWQoTUVBgoqsrsiezlJKjR7u58sqRe/0eO3aMgoICysrKAM2dfODAAaxWK7fe\neitVVVXcfPPNZGUlH8eYkaHn7rsXXFTFrseK2azn5MkeysuzL6n3pVAoFArFSKQSg/go8AawGC25\nZG7g8SHgeeDLaZ+dIiaxOqq0tzsZHPQzc+bwZHIpJYcOHeKb3/wmixYtYsmSJfz85z8P7f/4xz/O\n888/T0dHB7/73e+orq5OSRwGudRElMlkoK6uT7mXFQqFQjHlSMUXuQy4R0ophRBuKWVDYHuDEOJu\n4GXg/037DBXDKCjI5P33bRHbjh7tYtGiyOSUAwcO8PTTT1NTU8Pp06fDji8I1oEEoLy8nPLy8vGf\n+CTDZDLg80lmzVLFWxUKhUIxtUhFILrlkKowCiF0Uko/gJTSI4QYex8xRVIEXczNzVq5Gyklp0/3\ncffd8/H5fOj1WrL2o48+SrD7S0lJCVu3bqWqqopNmzZhNI7cFWWqYzbrKSuzYDKp8jYKhUKhmFqk\ncufzCyGWSCmPAnXAI0KI7wb2fYFJVEtwspOTk0FxsZm33mrB5/PxwQfv8v77O/j2t1/lP//zP7n9\n9tsB+MQnPkFRURHV1dVs3LgxJBwVyTFjhpWSktRb6ykUCoVCMdlJRSA+D+wRQqwHfgDsAL4Ytv++\ndE5MER+fz4fJdJqXX67l2Wefpb29PbTv9ddfDwnEm266iZtuuulCTXPSM2eOij1UKBQKxdQkaYEo\npfwe8L3gcyHEOuBuIAP4vZRyR/qnp4jFNddcw549e0LPKyoqqK6uprq6mjVrRt+XW6FQKBQKhQJS\nrIMYjpTysBDifeAqACHE1VLK3WmbmQKXy8X27dupqanhoYceorKyEtAEYnt7e0gUXn755ZdcBrFC\noVAoFIoLx1ij7w3AtwP/XodWfFoxBhwOB6+88gq1tbW8+OKL2GxatvKSJUv46le/CsDXv/51Hnro\nISUKFQqFQqFQjAtjEohSykG0XsgIIerTMqMpzCOPPMKePXtwOIYau6xatYqqqqqIjiYqA1mhUCgU\nCsV4ks76HRPWTeVSxel04nA4WLduHdXV1WzdupWKiooLPS2FQqFQKBRTDFXg7SLi05/+NL/5zW+Y\nNWvWhZ6KQqFQKBSKKUzCVntCiE9M1EQUMHv2bCUOFQqFQqFQXHBG6sX89xMyC4VCoVAoFArFRcNI\nLuYVQgjfhMxEoVAoFAqFQnFRMJJA7AFeSOI8Atg69ukoFAqFQqFQKC40IwnEc1LKTyZzIiHEpjTM\nR6FQKBQKhUJxgRkpBvGGFM61fiwTUSgUCoVCoVBcHCQUiFLKjmRPJKVsG/t0FAqFQqFQKBQXmpEs\niAqFQqFQKBSKKYYSiAqFQqFQKBSKCJRAVCgUCoVCoVBEoASiQqFQKBQKhSICIaW80HOYFAghOoCG\ncX6ZIqBznF/jUkGtVfKotUoOtU7Jo9YqOdQ6JY9aq+RJdq3KpZTFo30RJRAvIoQQ+6WUay70PCYD\naq2SR61Vcqh1Sh61Vsmh1il51Folz0StlXIxKxQKhUKhUCgiUAJRoVAoFAqFQhGBEogXF09e6AlM\nItRaJY9aq+RQ65Q8aq2SQ61T8qi1Sp4JWSsVg6hQKBQKhUKhiEBZEBUKhUKhUCgUESiBmCaEENOE\nEK8KIZRJdgTUWiWHWqfkGa+1EkL8ixBCCiHuTed5LxTqO5U8aq0UUx0lENOAEGIr8BZQOcK4BUKI\nZ4QQJ4QQ7wsh3hNC3B9j3DQhxP8Exh0WQhwVQvyTEMIYY+yDQohjgXEHhBB3pO+dpZ8U1mq5EOJF\nIUS9EOKMEGK3EOLKGOOMQojvBNbqiBDiTSHExjjnnDRrlc51Cnyfvh1430cCa/WsEGJZnHNOmnWC\n9H+nwsbPBL4wwjknzVqNxzoJIS4XQjwfeO8nhBAfCCF+EGPcpFknGJfr1CV5TRdCrBBC/FQIcTxw\nTzsmhPgPIURx1DirEOLHge/HMSHEdiHEkhjnu1Sv52lbpwm9nksp1WOMD2AfMB/4pbakMcfkAueA\nPwKWwLabAT/wt2HjdMBB4AhQGNi2EnACj0Wd8x/RimVWBp5fDwwCN1/oNRnjWi0EBoAfMxQn+9XA\nGqyOGvvfwEmgOPD8M4ADWDGZ1yqd6xS2RrMCz03AM4F1WjaZ12k8vlNhx/wv8BIggXtj7J9UazUO\n//c+BDQDV4Zt+zxwdjKvU7rXikv4mg6cAGqBrMDzGYFtJwFz2LhXgL0M3fu+A3QAM6LOd6lez9O2\nTkzg9fyCL9yl8AAMgb+JLia3oN1o7ozafgh4K+z54sC4f4ga9zzQEvY8D7AD/xw17mXg6IVekzGu\n1f8CbiAnbJsOTWC/GrbtMjSB/amo448CL0/mtUrzOv038JmoYysD37MfTeZ1Svdahe1bDZwGbiSG\nQJyMa5Xm75QAjgNfjjreSNjNZzKu0zis1SV7TUcTOfOitn068H6rAs+vDzy/JmxMBtAN/CRs26V8\nPU/nOk3Y9Vy5mNOAlNKbxLDgGEPUdgOgH8W4mwALsDNq3A5gsRBiYRJzmnCSXKs1QKOUsj/sOD/a\nheI6IYQlsPlOtBtVrDW4QQhhDTyfdGuV5nX6W+DnUcc2B/7mh22bdOsEaV+rII8DX0cTALGYdGuV\n5nXaiGZBeynqNQallK+EbZp06wRpX6tL+Zq+XEpZF7Ut+tpShWa12hscIKX0AH8K7AtyyV7PSe86\nTdj1XAnEiWMHsBv4YjDuQAjxcWARmosCACnlSeD/gPuEEHMC465B+3Xxo7DzLQ/8rY96nfqo/ZMR\nO7G/m360C+q8wPPlgW3nosbVo118F4eNC26PHhe+f7KR1DpJKb2BG1c4CwJ/d4Vtu1TXCZL/ThGI\n0TED/1+C812qa5XsOn0o8Dc3EIN4NBDj9C9CCHPYcZfqOkHy//8u2Wt6QMBEswDNmrU78Hw50Bxj\nbD1QKoQoCRt3SV7P07lOE3k9VwJxggj8Ir0VOAM0CyHagMeAj0op/zdq+CeA3wOnhBDNwHPAg1LK\n74SNKQr8HYg6NvhrtjCd859gDgIzhRDB94gQQg8Eg3BzAn+LAIeU0hd1fPQaXKprlew6xeKzaJaO\nX4dtu1TXCZJcq0DSwL8CX5QBf0wcLtW1SvY7NSvw93fAd6WUS4CPA/eiuU6DXKrrBKn9/5sS1/TA\n+/808LOAMAbtfUW/J4h9nZ4S1/MxrlMsxuV6rgTiBBGwGr4NWIESKWUp8FfAf4uwEhpCCBOaSXgt\nMEdKOR3YDHxNCPH1iZ73BeK7gAf4DyFEVuCm/RBD5nPnBZvZxcWo1kkI8f+3d/chdlRnHMe/PzSJ\npgktaI1WNzZBobWKwVaNirrBCL7TKq1iIxKxQuk/aWuKLRpsKioKoqAYsUUDpZY2NrSoDWtLhWql\n9W1dJW7SSNtoGxPXSlMVBdOnf5xzk5nJXbybvS/eub8PXA5z5ty5Mw+z5z535szZs4BLST9OJruF\nWjetxuqbpPE5TzbZxiBoNU4H5PInEfEXgIh4kZRcny3pzC7uc6+0FKsB69NvIN0mXdHrHfmYa1uc\nOtmfO0HsnpWkS+Tfioi3ASLi96SMf42kebndVaTxPSsj4p+53fOkq40/krQot5vI5dzK5zR+tb7V\nkaPogoj4BykGB5Ie4vkzaWxKY/qM13I5AczOv8aKqjGoZaymEKfdJB0PrAUuioiNldW1jBO0FitJ\nnwK+T3oS9aPUMlZTOKcaVyVGK5t4IZcn5rKWcYIpxWog+nRJy4GvkR5SerewaoK9jwma99O178/b\nEKfitjranztB7J7jgA8iovqlvRmYxZ7xAI3bE39t0k7s6XjHcvnZSrsFlfV9KSJGI+IrEXFURJwQ\nETcAhwGvRsSO3GyMdA4PVd6+gDQwfGOhHdQwVi3GCUhztpFubV0WEX9qsrnaxglaitVi0nnzS6U5\nSkeBH+e3r851q/JybWPV4jk1nsvqd8iuSn1t4wQtx6r2fXoeT/9d0hO4Oyqrx4DPSJpZqV8AbB+k\n/rxNcWpsq+P9uRPE7tkBzCoMyG04MpdvFdoBzP+IdhtI8x4NV9otATZGxDh9StKnJZ1SqduP9FTW\n/YXq9aRBvsOVTSwBRiLinbxcy1hNIU6NzuTXwBWN26d5wtX7Cs1qGSdoLVYRsSEihiJiUeNFmocN\nYFWuW52XaxmrKZxTj5GSwepA92Nz+UwuaxknmFKsat2nS1pGuuq+NCLeyHUXSLomN/kVafqjUwvv\nmQmcRpobsKHW/Xkb49S9/rw6741f05rr6EEmnzNrMWnMwVpgZq47jjTH0VPsmWh1AWkQ6QgwN9fN\nB7aQ5mUrTqp5HWkSzYV5eSkf48lCpxCrYVKnemRengHcSRrDOavSdg2wCTg4Ly8njf1pNrFq38Wq\nHXHK59mbOVbLCq8VwBN1iFM7z6km79trHsR+jlUb//buALYBR+flw0lXyUbqEKd2xYoa9+nA10n9\n7bWVvuU+4MZCuw3AH9kzAfQPmXyi7Nr15+2ME13sz3seuDq8gNtJY3H+TfoyGc2vmZV2J5HmDRsH\nXiI9dXQz8MlKu88BP8/txkgT0t4DHNrks1eQLr2Pkcb/fLnX8ZhurICFOU5bSWN7RkmD3+c02d4M\n4KbcqbxM+vdYp0/y2X0Tq3bGifTLNCZ5PdHPcerEOZXbH5LbbMnb3JqXv9SvserA395+wA9ISeE4\nKdm5jULC049x6lCsatmnF+LT7HVjod2cfLyb87E/Dnyhyfbq2p+3LU50sT9vXLUyMzMzMwM8BtHM\nzMzMKpwgmpmZmVmJE0QzMzMzK3GCaGZmZmYlThDNzMzMrMQJopmZmZmVOEE0MzMzsxIniGZmZmZW\n4gTRzGyKJB0j6UVJIel9SaOShgrrb5X0mqQJSWt6ua9mZvvC/0nFzGwfSVoPXAScFBHPVdb9Abg+\nIp7qyc6ZmU2DryCame27bwMfAPdK2t2fSroc2Ork0Mz6lRNEM7N9FBF/B24BTgS+ASBpLnA98L1G\nO0kHSrpD0t8kjUsay0kkhTYnSPpFvl09Kuk5ScsqbR6QtDXf2h6W9EjeXki6oNPHa2aDY/9e74CZ\nWZ+7DbgSuFnSw8B1wJqI2A4gScB6YCFwSkS8IekM4HeSiIif5e2cB7wLfDEidkn6PPCkpJ0R8RuA\niFgu6WrgfuA7wOURsVPSo108XjMbAB6DaGY2TZLOBx4BRoCDgJMjYldedw7wW2B5RDxYeM86YFFE\nHJWXDwPei4j/VNrMiogLC3WNBPHiiFif6+bl9/63owdqZgPDVxDNzKYpIh7NV/HOB85uJIfZ0lxW\nxyO+DFwi6YiIeB3YCayUdC4wG9gFzAe2TfKxrxQ+f3sbDsPMbDcniGZm7fEsKUHcUqk/OJcPS/pf\noX42sD2vfx1YC5wKLImITQCSfgosnuTz3mnTfpuZ7cUJoplZZ03k8pyI+FezBpLmABcDdzaSQzOz\nXvJTzGZmnfV4Lo8vVkoakvSQpP2BGYCA6qDwQ7uwf2Zme3GCaGbWWSPAY8BN+WESJH0CuAvYFhEf\nRsTbwNPApZIOz21OB4Z7s8tmNuj8FLOZ2TRJehY4AphHenhkXUSsKqw/AFgNfJU0dvBDYB1wa+Fp\n5/nA3cDJwGZgU97mkrzNC0lT21wCDAEbgacj4uouHKKZDRgniGZmZmZW4lvMZmZmZlbiBNHMzMzM\nSpwgmpmZmVmJE0QzMzMzK3GCaGZmZmYlThDNzMzMrMQJopmZmZmVOEE0MzMzsxIniGZmZmZW4gTR\nzMzMzEr+D3e5KbvwEdppAAAAAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.figure(figsize=(10, 5))\n", - "\n", - "plt.plot(year, temp_anomaly, color='#2929a3', linestyle='-', linewidth=1, alpha=0.5) \n", - "plt.plot(year, f_linear(year), 'k--', linewidth=2, label='Linear regression')\n", - "plt.xlabel('Year')\n", - "plt.ylabel('Land temperature anomaly [°C]')\n", - "plt.legend(loc='best', fontsize=15)\n", - "plt.grid();" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## \"Split regression\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "If you look at the plot above, you might notice that around 1970 the temperature starts increasing faster that the previous trend. So maybe one single straight line does not give us a good-enough fit.\n", - "\n", - "What if we break the data in two (before and after 1970) and do a linear regression in each segment? \n", - "\n", - "To do that, we first need to find the position in our `year` array where the year 1970 is located. Thankfully, NumPy has a function called [`numpy.where()`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.where.html) that can help us. We pass a condition and `numpy.where()` tells us where in the array the condition is `True`. \n" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(array([90]),)" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "numpy.where(year==1970)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "To split the data, we use the powerful instrument of _slicing_ with the colon notation. Remember that a colon between two indices indicates a range of values from a `start` to an `end`. The rule is that `[start:end]` includes the element at index `start` but excludes the one at index `end`. For example, to grab the first 3 years in our `year` array, we do:" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([ 1880., 1881., 1882.])" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "year[0:3]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we know how to split our data in two sets, to get two regression lines. We need two slices of the arrays `year` and `temp_anomaly`, which we'll save in new variable names below. After that, we complete two linear fits using the helpful NumPy functions we learned above." - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": { - "collapsed": true - }, - "outputs": [], - "source": [ - "year_1 , temp_anomaly_1 = year[0:90], temp_anomaly[0:90]\n", - "year_2 , temp_anomaly_2 = year[90:], temp_anomaly[90:]\n", - "\n", - "m1, b1 = numpy.polyfit(year_1, temp_anomaly_1, 1)\n", - "m2, b2 = numpy.polyfit(year_2, temp_anomaly_2, 1)\n", - "\n", - "f_linear_1 = numpy.poly1d((m1, b1))\n", - "f_linear_2 = numpy.poly1d((m2, b2))" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\nAAAASUVORK5CYII=\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.figure(figsize=(10, 5))\n", - "\n", - "plt.plot(year, temp_anomaly, color='#2929a3', linestyle='-', linewidth=1, alpha=0.5) \n", - "plt.plot(year_1, f_linear_1(year_1), 'g--', linewidth=2, label='1880-1969')\n", - "plt.plot(year_2, f_linear_2(year_2), 'r--', linewidth=2, label='1970-2016')\n", - "\n", - "plt.xlabel('Year')\n", - "plt.ylabel('Land temperature anomaly [°C]')\n", - "plt.legend(loc='best', fontsize=15)\n", - "plt.grid();" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We have two different curves for two different parts of our data set. A little problem with this and is that the end point of our first regression doesn't match the starting point of the second regression. We did this for the purpose of learning, but it is not rigorously correct. We'll fix in in the next course module when we learn more about different types of regression. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## We learned:\n", - "\n", - "* Making our plots more beautiful\n", - "* Defining and calling custom Python functions\n", - "* Applying linear regression to data\n", - "* NumPy built-ins for linear regression\n", - "* The Earth is warming up!!!" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## References\n", - "\n", - "1. [_Essential skills for reproducible research computing_](https://barbagroup.github.io/essential_skills_RRC/) (2017). Lorena A. Barba, Natalia C. Clementi, Gilbert Forsyth. \n", - "2. _Numerical Methods in Engineering with Python 3_ (2013). Jaan Kiusalaas. Cambridge University Press.\n", - "3. _Effective Computation in Physics: Field Guide to Research with Python_ (2015). Anthony Scopatz & Kathryn D. Huff. O'Reilly Media, Inc.\n" - ] - }, - { - "cell_type": "code", - "execution_count": 28, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - "\n", - "\n", - "\n", - "\n" - ], - "text/plain": [ - "" - ] - }, - "execution_count": 28, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "# Execute this cell to load the notebook's style sheet, then ignore it\n", - "from IPython.core.display import HTML\n", - "css_file = '../style/custom.css'\n", - "HTML(open(css_file, \"r\").read())" - ] - } - ], - "metadata": { - "anaconda-cloud": {}, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.7" - }, - "widgets": { - "state": {}, - "version": "1.1.2" - } - }, - "nbformat": 4, - "nbformat_minor": 1 -} diff --git a/notebooks/.ipynb_checkpoints/04_Stats_and_Montecarlo-checkpoint.ipynb b/notebooks/.ipynb_checkpoints/04_Stats_and_Montecarlo-checkpoint.ipynb new file mode 100644 index 0000000..7e22206 --- /dev/null +++ b/notebooks/.ipynb_checkpoints/04_Stats_and_Montecarlo-checkpoint.ipynb @@ -0,0 +1,958 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "###### Created under Creative Commons Attribution license CC-BY 4.0, code under BSD 3-Clause License © 2020 R.C. Cooper" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Statistics and Monte-Carlo Models\n", + "\n", + "Monte Carlo models use random numbers to either understand statistics or generate a solution [1]. \n", + "The main element in a Monte Carlo model is the use of random numbers. Monte Carlo methods are very useful if you can easily execute a function lots of time or even in parallel. \n", + "\n", + "We can generate random numbers in many ways, but most programming languages have 'pseudo'-random number generators. \n", + "\n", + "In Python, we use the numpy library as such\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "\n", + "x=np.random.rand(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "#Import rcParams to set font styles\n", + "from matplotlib import rcParams\n", + "\n", + "#Set font style and size \n", + "rcParams['font.family'] = 'sans'\n", + "rcParams['font.size'] = 16\n", + "rcParams['lines.linewidth'] = 3" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(array([3., 1., 0., 0., 1., 0., 0., 2., 1., 2.]),\n", + " array([0.34837708, 0.41148652, 0.47459596, 0.53770539, 0.60081483,\n", + " 0.66392427, 0.72703371, 0.79014314, 0.85325258, 0.91636202,\n", + " 0.97947146]),\n", + " )" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.hist(x,bins=10, color='b', histtype='bar', edgecolor='w')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `numpy.random.rand(10)` function generates 10 random numbers between 0 and 1. The pyplot function `hist` then displays a histogram of these randomly generated numbers. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exercise\n", + "\n", + "Try generating more random numbers and plotting histograms of the results i.e. increase `10` to larger values. \n", + "\n", + "What should the histogram of `x` look like if Python is generating truly random numbers?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## Examples of Monte Carlo models:\n", + "\n", + "Monte Carlo models have a wide array of applications. We are going to use Monte Carlo models in later modules to explore how uncertainty in measurements can be incorporated into computational models. The three main applications for Monte Carlo models are used in three main classes: optimization, numerical integration, and generating population distributions [1]. \n", + "\n", + "Here is a brief list of Monte Carlo model use cases in real-world applications:\n", + "\n", + "- [Eigenvlaues in supercritical systems](https://link.springer.com/chapter/10.1007%2FBFb0049064)\n", + "- [average time between failures for reliability](http://www.egr.msu.edu/~mitraj/research/pubs/proc/singh-mitra_em_stdby_ias95.pdf)\n", + "- disordered materials (physics)\n", + "- [Calculation of the energy output of a wind farm](http://www.mdpi.com/1996-1073/9/4/286/pdf)\n", + "- [US Coast Guard rescue missions](https://en.wikipedia.org/wiki/Search_and_Rescue_Optimal_Planning_System)\n", + "- [Radiation shielding](http://www.sciencedirect.com/science/article/pii/S0920379612000580)\n", + "- [Predict number of asteroids that hit body of water](https://cneos.jpl.nasa.gov/sentry/intro.html)\n", + "- [Financial modeling](https://en.wikipedia.org/wiki/Monte_Carlo_methods_in_finance)\n", + "\n", + "We will explore Monte Carlo modeling through the use of three examples:\n", + "\n", + "1. Calculate the value of $\\pi$\n", + "\n", + "2. Calculate the integral of a function\n", + "\n", + "3. Propagate uncertainty in manufacturing into uncertainty in failure load" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "\n", + "\n", + "# Example 1: Calculate $\\pi$ with random numbers. \n", + "\n", + "Assuming we can actually generate random numbers (a topic of philosophical and heated debates) we can populate a unit square with random points and determine the ratio of points inside and outside of a circle.\n", + "\n", + "![Unit circle and unit square](../images/MonteCarloPi.gif)\n", + "\n", + "![1/4 Unit circle and 1/4 unit square](../images/MonteCarloPi_rand.gif)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "The ratio of the area of the circle to the square is:\n", + "\n", + "$\\frac{\\pi r^{2}}{4r^{2}}=\\frac{\\pi}{4}$\n", + "\n", + "So if we know the fraction of random points that are within the unit circle, then we can calculate $\\pi$\n", + "\n", + "(number of points in circle)/(total number of points)=$\\pi/4$" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0.61262684, 0.8262925 , 0.59955407, 0.43229944, 0.66224665,\n", + " 0.61154899, 0.34189469, 0.94126304, 0.41459117, 0.6400169 ])" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.random.rand(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [], + "source": [ + "def montecarlopi(N):\n", + " '''Create random x-y-coordinates to and use ratio of circle-to-square to \n", + " calculate the value of pi\n", + " i.e. Acircle/Asquare = pi/4\n", + " Arguments\n", + " ---------\n", + " N: number of random points to produce between x=0-1 and y=0-1\n", + " \n", + " Returns\n", + " -------\n", + " our_pi: the best prediction of pi using N points\n", + " '''\n", + " \n", + "\n", + " x=np.random.rand(N,1);\n", + " y=np.random.rand(N,1);\n", + " R=np.sqrt(x**2+y**2); # compute radius\n", + " num_in_circle=sum(R<1);\n", + " total_num_pts =len(R);\n", + " our_pi = 4*num_in_circle/total_num_pts;\n", + " return our_pi" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "mean value for pi = 3.188800\n", + "standard deviation is 0.041097\n", + "actual pi is 3.141593\n" + ] + } + ], + "source": [ + "test_pi=np.zeros(10)\n", + "for i in range(0,10):\n", + " test_pi[i]=montecarlopi(1000);\n", + "\n", + "print('mean value for pi = %f'%np.mean(test_pi))\n", + "print('standard deviation is %f'%np.std(test_pi))\n", + "print('actual pi is %f'%np.pi)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exercises\n", + "\n", + "1. Why is there a standard deviation for the value of $\\pi$ calculated with a Monte Carlo method? Does it depend upon how many times you run the function i.e. the size of `test_pi`? or the number of random points `N`? Alter the script above to discover correlations\n", + "\n", + "2. How well does our function `montecarlopi` converge to the true value of $\\pi$ (you can use `np.pi` as a true value)? Plot the convergence as we did in [03-Numerical_error](https://github.uconn.edu/rcc02007/CompMech01-Getting-started/blob/master/notebooks/03-Numerical_error.ipynb)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 2: Calculate the integral of a function\n", + "\n", + "One way to calculate the integral of a function, $f(x)$, is to approximate it as a Riemann sum as such\n", + "\n", + "$I=\\int_{a}^{b}f(x) dx \\approx \\Delta x \\left(f(a)+f(a+\\Delta x)+f(a+2\\Delta x)+...+f(b)\\right))$.\n", + "\n", + "Another way to integrate this function is with a [Monte Carlo approach](https://en.wikipedia.org/wiki/Monte_Carlo_integration) [2, 3]. We can approximate the integral as such\n", + "\n", + "$I=\\int_{a}^{b}f(x) dx \\approx \\frac{1}{n}\\sum_{i=1}^n f(x_i)$. \n", + "\n", + "where $x_i$ are uniformly random values of $x$ over the interval $[a,b]$. We were actually doing this in two dimensions in Example #1 when we compared the area of the circle to the area of a square. \n", + "\n", + "Visually, this approximation can be represented by the following figure.\n", + "\n", + "![Integration approximation](../images/integrals.png)\n", + "\n", + "The figure above shows the exact integral on the left as compared to two approximations, the Riemann sum (top-right) and Monte Carlo method (bottom-right). \n", + "\n", + "The main benefit in using a Monte Carlo integration over a Riemann sum (or another non-random method e.g. trapezoidal) is that the integration converges as \n", + "\n", + "$error \\approx \\frac{1}{\\sqrt{n}}$\n", + "\n", + "independent of the number of dimensions in the formula. Non-random methods have convergence rates that depend upon the step size along each axis, so with two dimensions reducing the step size to 1/3 increases n by 4, in three dimensions its 8, in 4D its 16, and so on. We'll do an example with a 1D function to introduce the concept. \n", + "\n", + "You can even integrate functions that are not easy to evaluate, such as the [area of light shown by the bat signal](http://leios.github.io/Batman_Montecarlo)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exercise (Discussion)\n", + "\n", + "Why does the Monte Carlo method work? Is there a benefit to random numbers as opposed to using an ordered set divided into equally-spaced intervals?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this example, we will calculate the integral $I=\\int_{1}^{3}f(x)dx$ where\n", + "\n", + "$I=\\int_{1}^{3}\\frac{x}{1+x^2}dx \\approx \\frac{1}{n}\\sum_{i=1}^n \\frac{x_i}{1+x_i^2}$\n", + "\n", + "Our first objective is to take random numbers between 0 and 1 and turn them into random number between 1 and 3. This process is called _scaling_ or _transforming_ our variable $x_{i}$" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ri=np.random.rand(100)\n", + "\n", + "xi=1+(3-1)*ri # scaling equation for our uniform distribution 0..1 to 1..3\n", + "\n", + "plt.hist(xi,label='x_i: our scaled var')\n", + "plt.hist(ri,label='r_i: our original var')\n", + "plt.legend();\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exercise\n", + "\n", + "Compare the scaled histogram to the original histogram. What is similar? What is different?\n", + "\n", + "Make a scaling equation to get uniformly random numbers between 10 and 20. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Performing the integration\n", + "\n", + "If you have been doing a lot of calculus lately, you may know that \n", + "\n", + "$\\int\\frac{x}{1+x^2}dx = \\frac{\\log({x^2+1})}{2}$. \n", + "\n", + "If not, Python's [Sympy: Symbolic algebra](https://docs.sympy.org/1.5.1/modules/integrals/integrals.html) can help you jog your memory [4]. It will also give us an exact solution to judge our convergence. \n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\frac{\\log{\\left(x^{2} + 1 \\right)}}{2}$" + ], + "text/plain": [ + "log(x**2 + 1)/2" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import sympy\n", + "\n", + "x=sympy.Symbol('x')\n", + "\n", + "sympy.integrate(x/(1+x**2),x)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle 0.80471895621705$" + ], + "text/plain": [ + "0.804718956217050" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sympy.integrate(x/(1+x**2),(x,1,3)).evalf()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "So the exact integral that we are approximating is\n", + "\n", + "$I=\\frac{\\log{10}}{2}-\\frac{\\log{2}}{2}=0.80471895621705$\n", + "\n", + "_Note: We won't be using sympy for general numerical methods. It is helpful to do some algebra for us, but in general we want to use arrays so that our solutions can be scaled up and solved quicker by the computer._" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.7824846191561594\n" + ] + }, + { + "data": { + "text/plain": [ + "Text(0, 0.5, 'f(x)')" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "f= lambda x:x/(1+x**2)\n", + "\n", + "n=10\n", + "ri=np.random.rand(n)\n", + "\n", + "xi=1+(3-1)*ri # scaling equation for our uniform distribution 0..1 to 1..3\n", + "# we scaled our variable by a factor of 2 so we scale the bins accorcdingly\n", + "bin_scale = 3-1 \n", + "\n", + "my_I=sum(f(xi))/n*bin_scale\n", + "print(my_I)\n", + "\n", + "plt.bar(xi,f(xi),width=bin_scale/n,color=[0.1,0,1,0.5])\n", + "plt.plot(np.linspace(0,4),f(np.linspace(0,4)),color='k')\n", + "plt.title('Graphical illustration of Monte Carlo'+\\\n", + " ' integration\\n I={:.4f}'.format(my_I))\n", + "plt.xlabel('x')\n", + "plt.ylabel('f(x)')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "def montecarlo_integrate(f,a,b,N):\n", + " '''Estimate the integral of a function f(x) from a->b with N \n", + " randomly chosen points\n", + " Arguments\n", + " ---------\n", + " f: a function of the form f=lambda x: ...\n", + " a: the lower bound of the integration\n", + " b: the upper bound of the integration\n", + " N: number of random points to produce between xi=a-b\n", + " \n", + " Returns\n", + " -------\n", + " our_I: the best prediction of the integral using N points \n", + " '''\n", + " ri=np.random.rand(n)\n", + "\n", + " xi=a+(b-a)*ri # scaling equation for our uniform distribution 0..1 to 1..3\n", + " # we scaled our variable by a factor of 2 so we scale the bins accorcdingly\n", + " bin_scale = b-a\n", + "\n", + " our_I=sum(f(xi))/n*bin_scale\n", + " \n", + " return our_I\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the above function, we have defined a general Monte Carlo integration function. Now, we can create a for loop to try the function multiple times and get an average and standard deviation. " + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "mean value is I = 0.81410075695566\n", + "standard deviation is 0.028138512733038436\n", + "actual I = 0.80471895621705\n", + "error in mean = -0.009381800738609947\n" + ] + } + ], + "source": [ + "test_I=np.zeros(10)\n", + "for i in range(0,10):\n", + " test_I[i]=montecarlo_integrate(f,1,3,500);\n", + "\n", + "print('mean value is I = {}'.format(np.mean(test_I)))\n", + "print('standard deviation is {}'.format(np.std(test_I)))\n", + "print('actual I = 0.80471895621705')\n", + "print('error in mean = {}'.format(0.80471895621705-np.mean(test_I)))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "### Example 3: Determine uncertainty in failure load based on geometry uncertainty\n", + "\n", + "In this example, we know that a steel bar will break under 940 MPa tensile stress. The bar is 1 mm by 2 mm with a tolerance of 10 %. What is the range of tensile loads that can be safely applied to the beam?\n", + "\n", + "$\\sigma_{UTS}=\\frac{F_{fail}}{wh}$\n", + "\n", + "$F_{fail}=\\sigma_{UTS}wh$" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "N=10000;\n", + "r=np.random.rand(N,1);\n", + "wmean=1; # in mm\n", + "wmin=wmean-wmean*0.1;\n", + "wmax=wmean+wmean*0.1;\n", + "hmean=2; # in mm\n", + "hmin=hmean-hmean*0.1;\n", + "hmax=hmean+hmean*0.1;\n", + "\n", + "wrand=wmin+(wmax-wmin)*r;\n", + "hrand=hmin+(hmax-hmin)*r;\n", + "\n", + "uts=940; # in N/mm^2=MPa\n", + "\n", + "Ffail=uts*wrand*hrand*1e-3; # force in kN\n", + "plt.hist(Ffail,bins=20,)\n", + "plt.xlabel('failure load (kN)')\n", + "plt.ylabel('relative counts')\n", + "plt.title('Failure load is {:.2f}+/- {:.2f} kN'.format(np.mean(Ffail),np.std(Ffail)));" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Normally, the tolerance is not a maximum/minimum specification, but instead a normal distribution that describes the standard deviation, or the 68% confidence interval.\n", + "\n", + "So instead, we should generate normally distributed dimensions." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "N=10000;\n", + "wmean=1; # in mm\n", + "wstd=wmean*0.1; # standard deviation in mm\n", + "hmean=2; # in mm\n", + "hstd=hmean*0.1; # standard deviation in mm\n", + "\n", + "\n", + "wrand=np.random.normal(wmean,wstd,size=N);\n", + "hrand=np.random.normal(hmean,hstd,size=N);\n", + "uts=940; # in N/mm^2=MPa\n", + "\n", + "Ffail=uts*wrand*hrand*1e-3; # force in kN\n", + "plt.hist(Ffail,bins=20)\n", + "#plt.xlabel('failure load (kN)')\n", + "#plt.ylabel('relative counts')\n", + "plt.title('Failure load is {:.2f}+/- {:.2f} kN'.format(np.mean(Ffail),np.std(Ffail)));" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this propagation of uncertainty, the final value of failure load seems to be independent of wheher the distribution is uniformly random or normally distributed. In both cases, the failure load is $\\approx 1.9 \\pm 0.25$ kN.\n", + "\n", + "The difference is much more apparent if you look at the number of occurrences that failure will occur whether the dimensions are uniformly random or normally distributed. \n", + "\n", + "For the uniformly random case, there are approximately 500 parts out of 10,000 that will fail at 1.9 kN. \n", + "\n", + "For the normally distributed case, there are approximately 1500 parts out of 10,000 that will fail at 1.9 kN. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Where does a normal distribution come from?\n", + "\n", + "\"Everybody believes in the exponential law of errors: the experimenters, because they think it can be proved by mathematics; and the mathematicians, because they believe it has been established by observation\" [5].\n", + "\n", + "In the previous example, we drew dimensions from uniformly random distributions and normally distributed random distributions. Why do we use the \"normal\" distribution to describe data with a mean and standard deviation? There are exact statistical methods to derive the normal distribution, but let's take a look at a Monte Carlo approach. \n", + "\n", + "Let's say there are 10 different independent factors that could change the dimensions of the steel bar in question e.g. which tool was used, how old the blade is, the humidity, the temperature, and the list goes on. \n", + "\n", + "Let's consider one dimension. \n", + "Each of these factors could change the dimensions of the part, let's use a uniform scale of -1/2-1/2.\n", + "If the effect is 0, the dimension is exactly as specified. If the effect is -1/2, the dimension is much smaller. Conversely, if the effect is 1/2 the dimension is much larger. Now, we use a Monte Carlo model to generate 10 effects on 10,000 parts as shown in the next block." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "factors = np.random.rand(10000,10)-1/2 # each row represents a part and each column is an effect (-1/2-1/2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, we have created 10,000 parts with 10 uniformly random effects between -1/2-1/2. \n", + "\n", + "We sum the effects and look at the final part distribution. The x-axis is labeled \"A.U.\" for arbitrary units, we are just assuming an effect of -1/2-1/2 for each of the 10 factors. " + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0, 0.5, 'number of parts')" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "dims = np.sum(factors,axis=1)\n", + "\n", + "plt.hist(dims,30)\n", + "plt.xlabel('effect A.U.')\n", + "plt.ylabel('number of parts')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, depending upon which random numbers were generated, you should see what looks like a normal distribution. \n", + "\n", + "Normal distributions come from the assumption that we have a large (or infinite) number of uncontrollable factors that can change our desired result. In our case, ideally each factor would have an effect of 0, because then it is exactly as specified, but the reality is that we can't control most factors. As engineers, we always have to consider the uncertainty in our models and measurements. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## We learned:\n", + "\n", + "* How to generate \"random\" numbers in Python$^+$\n", + "* The definition of a Monte Carlo model\n", + "* How to calculate $\\pi$ with Monte Carlo\n", + "* How to take the integral of a function with Monte Carlo\n", + "* How to propagate uncertainty in a model with Monte Carlo\n", + "* **Bonus**: use Sympy to do calculus and algebra for us! *no need for Wolfram, sorry Stephen*\n", + "* How to generate a normal distribution using uniformly random numbers\n", + "\n", + "$^+$ Remember, the computer only generates pseudo-random numbers. For further information **and** truly random numbers check [www.random.org](https://www.random.org/randomness/) " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# References\n", + "\n", + "1. [Why the Monte Carlo method is so important today\n", + "Dirk P. Kroese, Tim Brereton *et al.* Wiley Interdisciplinary Reviews: Computational Statistics, 6, 6, 11 2014](https://onlinelibrary.wiley.com/doi/full/10.1002/wics.1314)\n", + "\n", + "2. [Wikipedia: Monte Carlo integration](https://en.wikipedia.org/wiki/Monte_Carlo_integration)\n", + "\n", + "3. [Weinzierl, S. (2000). \"Introduction to Monte Carlo methods\"](https://arxiv.org/abs/hep-ph/0006269)\n", + "\n", + "4. Meurer A, _et al._ (2017) SymPy: symbolic computing in Python. PeerJ Computer Science 3:e103 https://doi.org/10.7717/peerj-cs.103\n", + "\n", + "5. Whittaker, E. T. and Robinson, G. \"Normal Frequency Distribution.\" Ch. 8 in The Calculus of Observations: A Treatise on Numerical Mathematics, 4th ed. New York: Dover, p. 179, 1967." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Problems\n", + "\n", + "1. Calculate the area of a unit circle using the Monte Carlo integration method that we devloped in Example 2. Calculate the area of a quarter of the circle, then multiply the final result by 4. \n", + "\n", + " _Hint: You have to create a function that describes the perimeter of the circle._\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "2. 100 steel rods are going to be used to support a 1000 kg structure. The\n", + "rods will buckle when the load in any rod exceeds the [critical buckling\n", + "load](https://en.wikipedia.org/wiki/Euler%27s_critical_load)\n", + "\n", + " $P_{cr}=\\frac{\\pi^3 Er^4}{16L^2}$\n", + "\n", + " where E=200e9 Pa, r=0.01 m +/-0.001 m, and L is the \n", + " length of the rods supporting the structure. Create a Monte\n", + " Carlo model `montecarlo_buckle` that predicts \n", + " the mean and standard deviation of the buckling load for 100\n", + " samples with normally distributed dimensions r and L. \n", + "\n", + " ```python\n", + " mean_buckle_load,std_buckle_load=\\\n", + " montecarlo_buckle(E,r_mean,r_std,L,N=100)\n", + " ```\n", + "\n", + " a. What is the mean_buckle_load and std_buckle_load for L=5 m?\n", + "\n", + " b. What length, L, should the beams be so that only 2.5% will \n", + " reach the critical buckling load?" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "def montecarlo_buckle(E,r_mean,r_std,L,N=100):\n", + " '''Generate N rods of length L with radii of r=r_mean+/-r_std\n", + " then calculate the mean and std of the buckling loads in for the\n", + " rod population holding a 1000-kg structure\n", + " Arguments\n", + " ---------\n", + " E: Young's modulus [note: keep units consistent]\n", + " r_mean: mean radius of the N rods holding the structure\n", + " r_std: standard deviation of the N rods holding the structure\n", + " L: length of the rods (or the height of the structure)\n", + " N: number of rods holding the structure, default is N=100 rods\n", + " Returns\n", + " -------\n", + " mean_buckle_load: mean buckling load of N rods under 1000*9.81/N-Newton load\n", + " std_buckle_load: std dev buckling load of N rods under 1000*9.81/N-Newton load\n", + " '''\n", + " \n", + " # your code here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "3. Generate your own normal distribution using uniformly random numbers between -1/2 and 1/2. \n", + "\n", + " a. What is the effect of changing the number of factors?\n", + " \n", + " b. What is the effect of changing the number of samples?\n", + " \n", + " *Hint: for a-b try plotting histograms of the results.*\n", + " \n", + " c. How would you change the mean in your generated distribution?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "celltoolbar": "Slideshow", + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/notebooks/01_Cheers_Stats_Beers.ipynb b/notebooks/01_Cheers_Stats_Beers.ipynb index 0de1a15..fa8752b 100644 --- a/notebooks/01_Cheers_Stats_Beers.ipynb +++ b/notebooks/01_Cheers_Stats_Beers.ipynb @@ -14,7 +14,6 @@ "# Cheers! Stats with Beers\n", "\n", "\n", - "\n", "Welcome to the second module in _Computational Mechanics_, our series in computational thinking for undergraduate engineering students. This module explores practical data and statistical analysis with Python.\n", "\n", "This first lesson explores how we can answer questions using data combined with practical methods from statistics.\n", @@ -23,7 +22,7 @@ "\n", "The data source ([@craftcans](https://twitter.com/craftcans) on Twitter) doesn't say that the set includes *all* the canned beers brewed in the country. So we have to asume that the data is a sample and may contain biases.\n", "\n", - "We'll process the data using **numpy**—the array library for Python that we learned about in [Module 1, lesson 2: Getting Started](https://github.uconn.edu/rcc02007/CompMech01-Getting-started/blob/master/notebooks/02_Getting-started.ipynb). But we'll also learn about a new Python library for data analysis called **pandas**. \n", + "We'll process the data using **numpy**—the array library for Python that we learned about in [Module 1, lesson 2: Getting Started](../../CompMech01-Getting-started/notebooks/02-Getting-started.ipynb). But we'll also learn about a new Python library for data analysis called **pandas**. \n", "\n", "[`pandas`](http://pandas.pydata.org/) is an open-source library providing high-performance, easy-to-use data structures and data-analysis tools. Even though `pandas` is great for data analysis, we won't exploit all its power in this lesson. But we'll learn more about it later on!\n", "\n", @@ -34,7 +33,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -57,7 +56,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 2, "metadata": {}, "outputs": [ { @@ -90,7 +89,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 3, "metadata": {}, "outputs": [], "source": [ @@ -99,7 +98,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -108,7 +107,7 @@ "pandas.core.frame.DataFrame" ] }, - "execution_count": 24, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -126,7 +125,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -228,7 +227,7 @@ " ...\n", " \n", " \n", - " 2405\n", + " 2402\n", " 2405\n", " 0.067\n", " 45.0\n", @@ -239,7 +238,7 @@ " 12.0\n", " \n", " \n", - " 2406\n", + " 2403\n", " 2406\n", " 0.052\n", " NaN\n", @@ -250,7 +249,7 @@ " 12.0\n", " \n", " \n", - " 2407\n", + " 2404\n", " 2407\n", " 0.055\n", " NaN\n", @@ -261,7 +260,7 @@ " 12.0\n", " \n", " \n", - " 2408\n", + " 2405\n", " 2408\n", " 0.055\n", " 40.0\n", @@ -272,7 +271,7 @@ " 12.0\n", " \n", " \n", - " 2409\n", + " 2406\n", " 2409\n", " 0.052\n", " NaN\n", @@ -284,7 +283,7 @@ " \n", " \n", "\n", - "

2410 rows × 8 columns

\n", + "

2407 rows × 8 columns

\n", "" ], "text/plain": [ @@ -295,11 +294,11 @@ "3 3 0.090 NaN 2263 Sinister \n", "4 4 0.075 NaN 2262 Sex and Candy \n", "... ... ... ... ... ... \n", - "2405 2405 0.067 45.0 928 Belgorado \n", - "2406 2406 0.052 NaN 807 Rail Yard Ale \n", - "2407 2407 0.055 NaN 620 B3K Black Lager \n", - "2408 2408 0.055 40.0 145 Silverback Pale Ale \n", - "2409 2409 0.052 NaN 84 Rail Yard Ale (2009) \n", + "2402 2405 0.067 45.0 928 Belgorado \n", + "2403 2406 0.052 NaN 807 Rail Yard Ale \n", + "2404 2407 0.055 NaN 620 B3K Black Lager \n", + "2405 2408 0.055 40.0 145 Silverback Pale Ale \n", + "2406 2409 0.052 NaN 84 Rail Yard Ale (2009) \n", "\n", " style brewery_id ounces \n", "0 American Pale Lager 408 12.0 \n", @@ -308,16 +307,16 @@ "3 American Double / Imperial IPA 177 12.0 \n", "4 American IPA 177 12.0 \n", "... ... ... ... \n", - "2405 Belgian IPA 424 12.0 \n", + "2402 Belgian IPA 424 12.0 \n", + "2403 American Amber / Red Ale 424 12.0 \n", + "2404 Schwarzbier 424 12.0 \n", + "2405 American Pale Ale (APA) 424 12.0 \n", "2406 American Amber / Red Ale 424 12.0 \n", - "2407 Schwarzbier 424 12.0 \n", - "2408 American Pale Ale (APA) 424 12.0 \n", - "2409 American Amber / Red Ale 424 12.0 \n", "\n", - "[2410 rows x 8 columns]" + "[2407 rows x 8 columns]" ] }, - "execution_count": 25, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -362,7 +361,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -371,7 +370,7 @@ "pandas.core.series.Series" ] }, - "execution_count": 26, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -389,7 +388,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -408,7 +407,7 @@ "Name: abv, dtype: float64" ] }, - "execution_count": 27, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -428,7 +427,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -437,16 +436,16 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "2410" + "2407" ] }, - "execution_count": 29, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" } @@ -464,7 +463,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 10, "metadata": {}, "outputs": [], "source": [ @@ -480,7 +479,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -489,7 +488,7 @@ "2348" ] }, - "execution_count": 31, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } @@ -507,7 +506,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 12, "metadata": {}, "outputs": [], "source": [ @@ -516,7 +515,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -533,7 +532,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -542,7 +541,7 @@ "numpy.ndarray" ] }, - "execution_count": 34, + "execution_count": 14, "metadata": {}, "output_type": "execute_result" } @@ -560,16 +559,16 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "2410" + "2407" ] }, - "execution_count": 35, + "execution_count": 15, "metadata": {}, "output_type": "execute_result" } @@ -582,7 +581,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 16, "metadata": {}, "outputs": [ { @@ -591,7 +590,7 @@ "1405" ] }, - "execution_count": 36, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" } @@ -662,7 +661,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 17, "metadata": {}, "outputs": [], "source": [ @@ -672,7 +671,7 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -698,7 +697,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 19, "metadata": {}, "outputs": [], "source": [ @@ -708,7 +707,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 20, "metadata": {}, "outputs": [ { @@ -744,7 +743,7 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 21, "metadata": {}, "outputs": [], "source": [ @@ -765,7 +764,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 22, "metadata": {}, "outputs": [ { @@ -789,7 +788,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 23, "metadata": {}, "outputs": [ { @@ -868,7 +867,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 24, "metadata": {}, "outputs": [], "source": [ @@ -927,7 +926,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 25, "metadata": {}, "outputs": [], "source": [ @@ -958,7 +957,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 26, "metadata": {}, "outputs": [], "source": [ @@ -975,7 +974,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 27, "metadata": {}, "outputs": [ { @@ -1014,7 +1013,7 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 28, "metadata": {}, "outputs": [], "source": [ @@ -1022,22 +1021,83 @@ "%matplotlib inline\n", "\n", "#Import rcParams to set font styles\n", - "from matplotlib import rcParams\n", + "from matplotlib import rcParams" + ] + }, + { + "cell_type": "code", + "execution_count": 29, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(array([ 1., 0., 38., 699., 857., 486., 159., 104., 1., 3.]),\n", + " array([0.001 , 0.0137, 0.0264, 0.0391, 0.0518, 0.0645, 0.0772, 0.0899,\n", + " 0.1026, 0.1153, 0.128 ]),\n", + "
)" + ] + }, + "execution_count": 29, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAD4CAYAAAAXUaZHAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAATY0lEQVR4nO3df4xl5X3f8fcnrAGbyN4FBoR3110sb9LgyMZ0gmldRS2bHwYqL1JAwWnLiqy0kUrauG4ar5NIjqP+AVFUWqSKahWSLFFioCQWq4CckrWTtlEgGX54bUzIjjFhJ0vZsYF1bOQfON/+cZ8xw+zMzt2ZOzM7T98v6eo85znPued7Z+d+5uxzf5xUFZKkvnzPWhcgSRo9w12SOmS4S1KHDHdJ6pDhLkkd2rDWBQCcf/75tW3btrUuQ5LWlUcfffTLVTU237bTIty3bdvGxMTEWpchSetKkr9ZaJvTMpLUIcNdkjpkuEtShwx3SeqQ4S5JHTLcJalDhrskdchwl6QOGe6S1KHT4hOq0mK27X1gTY777C3XrMlxpeXyzF2SOmS4S1KHDHdJ6pDhLkkdMtwlqUOGuyR1yHCXpA4Z7pLUIcNdkjo0VLgn+fdJnkzy+SSfSHJ2kouTPJLkcJJ7kpzZxp7V1ifb9m0r+QAkSSdaNNyTbAb+HTBeVT8InAHcANwK3FZV24GXgN1tl93AS1X1DuC2Nk6StIqGnZbZALwxyQbgTcDzwJXAfW37fuDa1t7Z1mnbdyTJaMqVJA1j0XCvqr8Ffh14jkGoHwceBV6uqlfbsClgc2tvBo60fV9t48+be79J9iSZSDIxPT293MchSZplmGmZTQzOxi8G3gqcA1w1z9Ca2eUk217rqNpXVeNVNT42NjZ8xZKkRQ0zLfMjwJeqarqqvg38AfBPgI1tmgZgC3C0taeArQBt+1uAF0datSTppIYJ9+eAK5K8qc2d7wC+AHwGuK6N2QXc39oH2jpt+6er6oQzd0nSyhlmzv0RBi+MPgZ8ru2zD/gI8OEkkwzm1O9su9wJnNf6PwzsXYG6JUknMdSVmKrqY8DH5nQ/A1w+z9hvANcvvzRJ0lL5CVVJ6pDhLkkdMtwlqUOGuyR1yHCXpA4Z7pLUIcNdkjpkuEtShwx3SeqQ4S5JHTLcJalDhrskdchwl6QOGe6S1CHDXZI6NMw1VL8/yROzbl9N8qEk5yZ5KMnhttzUxifJ7UkmkxxKctnKPwxJ0mzDXInp6aq6tKouBf4R8ArwSQZXWDpYVduBg7x2xaWrgO3ttge4YyUKlyQt7FSnZXYAX6yqvwF2Avtb/37g2tbeCdxVAw8zuJD2RSOpVpI0lFMN9xuAT7T2hVX1PEBbXtD6NwNHZu0z1fokSatkqGuoAiQ5E/gA8NHFhs7TV/Pc3x4G0za87W1vG7YMrbFtex9Y6xIkDeFUztyvAh6rqhfa+gsz0y1teaz1TwFbZ+23BTg6986qal9VjVfV+NjY2KlXLkla0KmE+wd5bUoG4ACwq7V3AffP6r+xvWvmCuD4zPSNJGl1DDUtk+RNwI8CPzOr+xbg3iS7geeA61v/g8DVwCSDd9bcNLJqJUlDGSrcq+oV4Lw5fV9h8O6ZuWMLuHkk1UmSlsRPqEpShwx3SeqQ4S5JHTLcJalDhrskdchwl6QOGe6S1CHDXZI6ZLhLUocMd0nqkOEuSR0y3CWpQ4a7JHXIcJekDhnuktQhw12SOjRUuCfZmOS+JH+V5Kkk/zjJuUkeSnK4LTe1sUlye5LJJIeSXLayD0GSNNewZ+7/FfhUVf1D4N3AU8Be4GBVbQcOtnUYXEh7e7vtAe4YacWSpEUtGu5J3gz8MHAnQFV9q6peBnYC+9uw/cC1rb0TuKsGHgY2Jrlo5JVLkhY0zJn724Fp4LeSPJ7kN5KcA1xYVc8DtOUFbfxm4Mis/ada3+sk2ZNkIsnE9PT0sh6EJOn1hgn3DcBlwB1V9R7g67w2BTOfzNNXJ3RU7auq8aoaHxsbG6pYSdJwhgn3KWCqqh5p6/cxCPsXZqZb2vLYrPFbZ+2/BTg6mnIlScNYNNyr6v8CR5J8f+vaAXwBOADsan27gPtb+wBwY3vXzBXA8ZnpG0nS6tgw5Lh/C/xukjOBZ4CbGPxhuDfJbuA54Po29kHgamASeKWNlSStoqHCvaqeAMbn2bRjnrEF3LzMuiRJy+AnVCWpQ4a7JHXIcJekDhnuktQhw12SOmS4S1KHDHdJ6pDhLkkdMtwlqUOGuyR1yHCXpA4Z7pLUIcNdkjpkuEtShwx3SerQUOGe5Nkkn0vyRJKJ1ndukoeSHG7LTa0/SW5PMpnkUJLLVvIBSJJOdCpn7v+8qi6tqpmLduwFDlbVduAgr100+ypge7vtAe4YVbGSpOEsZ1pmJ7C/tfcD187qv6sGHgY2zlxIW5K0OoYN9wL+Z5JHk+xpfRfOXPi6LS9o/ZuBI7P2nWp9r5NkT5KJJBPT09NLq16SNK9hL5D9vqo6muQC4KEkf3WSsZmnr07oqNoH7AMYHx8/YbskaemGOnOvqqNteQz4JHA58MLMdEtbHmvDp4Cts3bfAhwdVcGSpMUteuae5Bzge6rq71r7x4BfBQ4Au4Bb2vL+tssB4GeT3A28Fzg+M30jrTfb9j6wZsd+9pZr1uzYWv+GmZa5EPhkkpnxv1dVn0ryl8C9SXYDzwHXt/EPAlcDk8ArwE0jr1qSdFKLhntVPQO8e57+rwA75ukv4OaRVCdJWhI/oSpJHTLcJalDhrskdchwl6QOGe6S1CHDXZI6ZLhLUocMd0nqkOEuSR0y3CWpQ4a7JHXIcJekDhnuktQhw12SOmS4S1KHhg73JGckeTzJH7b1i5M8kuRwknuSnNn6z2rrk237tpUpXZK0kFM5c/854KlZ67cCt1XVduAlYHfr3w28VFXvAG5r4yRJq2iocE+yBbgG+I22HuBK4L42ZD9wbWvvbOu07TvaeEnSKhn2zP2/AL8A/H1bPw94uapebetTwObW3gwcAWjbj7fxr5NkT5KJJBPT09NLLF+SNJ9Fwz3JvwCOVdWjs7vnGVpDbHuto2pfVY1X1fjY2NhQxUqShrPoBbKB9wEfSHI1cDbwZgZn8huTbGhn51uAo238FLAVmEqyAXgL8OLIK5ckLWjRM/eq+mhVbamqbcANwKer6l8CnwGua8N2Afe39oG2Ttv+6ao64cxdkrRylvM+948AH04yyWBO/c7WfydwXuv/MLB3eSVKkk7VMNMy31VVfwL8SWs/A1w+z5hvANePoDZJ0hL5CVVJ6pDhLkkdMtwlqUOGuyR1yHCXpA4Z7pLUIcNdkjpkuEtShwx3SeqQ4S5JHTLcJalDhrskdchwl6QOGe6S1CHDXZI6NMw1VM9O8hdJPpvkySQfb/0XJ3kkyeEk9yQ5s/Wf1dYn2/ZtK/sQJElzDXPm/k3gyqp6N3Ap8P4kVwC3ArdV1XbgJWB3G78beKmq3gHc1sZJklbRMNdQrar6Wlt9Q7sVcCVwX+vfD1zb2jvbOm37jiQZWcWSpEUNNeee5IwkTwDHgIeALwIvV9WrbcgUsLm1NwNHANr24wyusTr3PvckmUgyMT09vbxHIUl6naHCvaq+U1WXAlsYXDf1B+Yb1pbznaXXCR1V+6pqvKrGx8bGhq1XkjSEU3q3TFW9zOAC2VcAG5PMXGB7C3C0taeArQBt+1uAF0dRrCRpOMO8W2YsycbWfiPwI8BTwGeA69qwXcD9rX2grdO2f7qqTjhzlyStnA2LD+EiYH+SMxj8Mbi3qv4wyReAu5P8J+Bx4M42/k7gd5JMMjhjv2EF6pYkncSi4V5Vh4D3zNP/DIP597n93wCuH0l1kqQl8ROqktQhw12SOmS4S1KHDHdJ6pDhLkkdMtwlqUOGuyR1yHCXpA4Z7pLUIcNdkjpkuEtShwx3SeqQ4S5JHTLcJalDhrskdWiYKzFtTfKZJE8leTLJz7X+c5M8lORwW25q/Ulye5LJJIeSXLbSD0KS9HrDnLm/CvyHqvoBBtdOvTnJJcBe4GBVbQcOtnWAq4Dt7bYHuGPkVUuSTmrRcK+q56vqsdb+OwbXT90M7AT2t2H7gWtbeydwVw08zOBC2heNvHJJ0oJOac49yTYGl9x7BLiwqp6HwR8A4II2bDNwZNZuU61v7n3tSTKRZGJ6evrUK5ckLWjocE/yvcDvAx+qqq+ebOg8fXVCR9W+qhqvqvGxsbFhy5AkDWGocE/yBgbB/rtV9Qet+4WZ6Za2PNb6p4Cts3bfAhwdTbmSpGEM826ZAHcCT1XVf5616QCwq7V3AffP6r+xvWvmCuD4zPSNJGl1bBhizPuAfw18LskTre8XgVuAe5PsBp4Drm/bHgSuBiaBV4CbRlqxJGlRi4Z7Vf0f5p9HB9gxz/gCbl5mXZKkZfATqpLUIcNdkjpkuEtShwx3SerQMO+WkbQGtu19YE2O++wt16zJcTVanrlLUocMd0nqkOEuSR0y3CWpQ4a7JHXIcJekDhnuktQhw12SOmS4S1KHDHdJ6tAwV2L6zSTHknx+Vt+5SR5KcrgtN7X+JLk9yWSSQ0kuW8niJUnzG+bM/beB98/p2wscrKrtwMG2DnAVsL3d9gB3jKZMSdKpWDTcq+p/AS/O6d4J7G/t/cC1s/rvqoGHgY0zF9GWJK2epX4r5IUzF72uqueTXND6NwNHZo2ban1eIFtaJ9bq2yjBb6QcpVG/oDrftVZr3oHJniQTSSamp6dHXIYk/f9tqeH+wsx0S1sea/1TwNZZ47YAR+e7g6raV1XjVTU+Nja2xDIkSfNZargfAHa19i7g/ln9N7Z3zVwBHJ+ZvpEkrZ5F59yTfAL4Z8D5SaaAjwG3APcm2Q08B1zfhj8IXA1MAq8AN61AzZKkRSwa7lX1wQU27ZhnbAE3L7coSdLy+AlVSeqQ4S5JHTLcJalDhrskdchwl6QOGe6S1CHDXZI6ZLhLUocMd0nqkOEuSR1a6ve5aw2t5fdtS1ofPHOXpA4Z7pLUIcNdkjpkuEtShwx3SerQioR7kvcneTrJZJK9K3EMSdLCRh7uSc4A/htwFXAJ8MEkl4z6OJKkha3E+9wvByar6hmAJHcDO4EvrMCxJGnZ1vKzI8/ecs2K3O9KhPtm4Mis9SngvXMHJdkD7GmrX0vy9Cke53zgy0uq8PRg/WvL+tfWvPXn1jWo5NSN9Ge/zMf8DxbasBLhnnn66oSOqn3AviUfJJmoqvGl7r/WrH9tWf/aWs/1r5faV+IF1Slg66z1LcDRFTiOJGkBKxHufwlsT3JxkjOBG4ADK3AcSdICRj4tU1WvJvlZ4I+AM4DfrKonR30cljGlc5qw/rVl/WtrPde/LmpP1QnT4ZKkdc5PqEpShwx3SerQaRnui319QZKzktzTtj+SZNusbR9t/U8n+fHVrLsdf0m1J/nRJI8m+VxbXrnatbc6lvyzb9vfluRrSX5+tWqec/zl/O68K8mfJ3my/TucvZq1txqW+vvzhiT7W91PJfnoatfe6lis/h9O8liSV5NcN2fbriSH223X6lX9uhqWVH+SS2f97hxK8pOrW/k8quq0ujF4EfaLwNuBM4HPApfMGfNvgP/e2jcA97T2JW38WcDF7X7OWCe1vwd4a2v/IPC36+lnP2v77wP/A/j59VQ/gzcXHALe3dbPW83fnRHU/1PA3a39JuBZYNtpWP824F3AXcB1s/rPBZ5py02tvWkd1f99wPbWfivwPLBxNeufezsdz9y/+/UFVfUtYObrC2bbCexv7fuAHUnS+u+uqm9W1ZeAyXZ/q2XJtVfV41U183mAJ4Gzk5y1KlW/Zjk/e5Jcy+BJuRLvjhrGcur/MeBQVX0WoKq+UlXfWaW6Zyyn/gLOSbIBeCPwLeCrq1P2dy1af1U9W1WHgL+fs++PAw9V1YtV9RLwEPD+1Sh6liXXX1V/XVWHW/socAwYW52y53c6hvt8X1+weaExVfUqcJzBmdYw+66k5dQ+208Aj1fVN1eozoUsuf4k5wAfAT6+CnUuZDk//+8DKskftf92/8Iq1DvXcuq/D/g6gzPG54Bfr6oXV7rghWprTuX5t9bP3ZHVkORyBmf+XxxRXUtyOl4ge5ivL1hozFBffbCCllP7YGPyTuBWBmeSq2059X8cuK2qvtZO5NfCcurfAPxT4IeAV4CDSR6tqoOjLfGkllP/5cB3GEwJbAL+d5I/rvYFfqtkOc+/tX7ujqSGJBcBvwPsqqq5/ztZVafjmfswX1/w3THtv6FvAV4cct+VtJzaSbIF+CRwY1WtxV/95dT/XuDXkjwLfAj4xfZhttW03N+dP62qL1fVK8CDwGUrXvECtTWnUv9PAZ+qqm9X1THgz4DV/v6T5Tz/1vq5u+wakrwZeAD45ap6eMS1nbq1nPBf4EWNDQzmbS/mtRc13jlnzM28/kWle1v7nbz+BdVnWN0XVJdT+8Y2/ifW489+zphfYW1eUF3Oz38T8BiDFyM3AH8MXLOO6v8I8FsMzj7PYfAV2+863eqfNfa3OfEF1S+1f4dNrX3uOqr/TOAg8KHVrPmkj2etC1jgB3c18NcM5qx+qfX9KvCB1j6bwTsyJoG/AN4+a99favs9DVy1XmoHfpnBnOkTs24XrJf659zHr7AG4T6C351/xeDF4M8Dv7ae6ge+t/U/ySDY/+NpWv8PMThD/jrwFeDJWfv+dHtck8BN66n+9rvz7TnP30vX4jHM3Pz6AUnq0Ok45y5JWibDXZI6ZLhLUocMd0nqkOEuSR0y3CWpQ4a7JHXo/wHy1WOPssdV+QAAAABJRU5ErkJggg==\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "pyplot.hist(abv)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we have a line plot, but if you see this plot without any information you would not be able to figure out what kind of data it is! We need labels on the axes, a title and why not a better color, font and size of the ticks. \n", + "**Publication quality** plots should always be your standard for plotting. \n", + "How you present your data will allow others (and probably you in the future) to better understand your work. \n", "\n", + "We can customize the style of our plots using parameters for the lines, text, font and other plot options. We set some style options that apply for all the plots in the current session with [`plt.rc()`](https://matplotlib.org/api/_as_gen/matplotlib.plt.rc.html)\n", + "Here, we'll make the font of a specific type and size (sans-serif and 18 points). You can also customize other parameters like line width, color, and so on (check out the documentation)." + ] + }, + { + "cell_type": "code", + "execution_count": 30, + "metadata": {}, + "outputs": [], + "source": [ "#Set font style and size \n", "rcParams['font.family'] = 'sans'\n", "rcParams['lines.linewidth'] = 3\n", - "rcParams['font.size'] = 16" + "rcParams['font.size'] = 18" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We'll redo the same plot, but now we'll add a few things to make it prettier and **publication quality**. We'll add a title, label the axes and, show a background grid. Study the commands below and look at the result!" ] }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 31, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -1062,12 +1122,12 @@ }, { "cell_type": "code", - "execution_count": 54, + "execution_count": 32, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -1154,7 +1214,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 33, "metadata": {}, "outputs": [ { @@ -1182,7 +1242,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 34, "metadata": {}, "outputs": [], "source": [ @@ -1237,7 +1297,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 35, "metadata": {}, "outputs": [], "source": [ @@ -1253,7 +1313,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 36, "metadata": {}, "outputs": [ { @@ -1281,7 +1341,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 37, "metadata": {}, "outputs": [], "source": [ @@ -1290,7 +1350,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 38, "metadata": {}, "outputs": [ { diff --git a/notebooks/02_Seeing_Stats.ipynb b/notebooks/02_Seeing_Stats.ipynb index 3f26a3d..1193c0a 100644 --- a/notebooks/02_Seeing_Stats.ipynb +++ b/notebooks/02_Seeing_Stats.ipynb @@ -24,7 +24,7 @@ }, { "cell_type": "code", - "execution_count": 20, + "execution_count": 1, "metadata": {}, "outputs": [], "source": [ @@ -59,7 +59,7 @@ }, { "cell_type": "code", - "execution_count": 21, + "execution_count": 2, "metadata": {}, "outputs": [], "source": [ @@ -92,7 +92,7 @@ }, { "cell_type": "code", - "execution_count": 22, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -101,7 +101,7 @@ "pandas.core.frame.DataFrame" ] }, - "execution_count": 22, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -112,7 +112,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -303,7 +303,7 @@ "[424 rows x 8 columns]" ] }, - "execution_count": 23, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -314,7 +314,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -325,7 +325,7 @@ " dtype='object')" ] }, - "execution_count": 24, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -365,7 +365,7 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 6, "metadata": {}, "outputs": [], "source": [ @@ -377,7 +377,7 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -396,7 +396,7 @@ }, { "cell_type": "code", - "execution_count": 27, + "execution_count": 8, "metadata": {}, "outputs": [ { @@ -444,7 +444,7 @@ }, { "cell_type": "code", - "execution_count": 28, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -501,7 +501,7 @@ }, { "cell_type": "code", - "execution_count": 29, + "execution_count": 10, "metadata": {}, "outputs": [ { @@ -526,7 +526,7 @@ }, { "cell_type": "code", - "execution_count": 30, + "execution_count": 11, "metadata": {}, "outputs": [ { @@ -587,7 +587,7 @@ }, { "cell_type": "code", - "execution_count": 31, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -609,7 +609,7 @@ }, { "cell_type": "code", - "execution_count": 32, + "execution_count": 13, "metadata": {}, "outputs": [ { @@ -656,7 +656,7 @@ }, { "cell_type": "code", - "execution_count": 33, + "execution_count": 14, "metadata": {}, "outputs": [ { @@ -690,7 +690,7 @@ }, { "cell_type": "code", - "execution_count": 34, + "execution_count": 15, "metadata": {}, "outputs": [ { @@ -758,7 +758,7 @@ }, { "cell_type": "code", - "execution_count": 35, + "execution_count": 16, "metadata": {}, "outputs": [], "source": [ @@ -767,7 +767,7 @@ }, { "cell_type": "code", - "execution_count": 36, + "execution_count": 17, "metadata": {}, "outputs": [ { @@ -776,7 +776,7 @@ "pandas.core.series.Series" ] }, - "execution_count": 36, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" } @@ -787,7 +787,7 @@ }, { "cell_type": "code", - "execution_count": 37, + "execution_count": 18, "metadata": {}, "outputs": [ { @@ -830,7 +830,7 @@ " 'Low Alcohol Beer'], dtype=object)" ] }, - "execution_count": 37, + "execution_count": 18, "metadata": {}, "output_type": "execute_result" } @@ -855,63 +855,63 @@ }, { "cell_type": "code", - "execution_count": 38, + "execution_count": 19, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ - "American Double / Imperial Stout 9\n", - "Schwarzbier 9\n", "Herbed / Spiced Beer 9\n", + "Schwarzbier 9\n", + "American Double / Imperial Stout 9\n", "Belgian Strong Pale Ale 7\n", - "Doppelbock 7\n", - "Bock 7\n", "American Dark Wheat Ale 7\n", "Bière de Garde 7\n", - "American Wild Ale 6\n", + "Doppelbock 7\n", + "Bock 7\n", + "Belgian Strong Dark Ale 6\n", "California Common / Steam Beer 6\n", + "American Wild Ale 6\n", + "Baltic Porter 6\n", "Foreign / Export Stout 6\n", "English Dark Mild Ale 6\n", - "Belgian Strong Dark Ale 6\n", - "Baltic Porter 6\n", "Dortmunder / Export Lager 6\n", - "Dubbel 5\n", - "Irish Dry Stout 5\n", "Euro Dark Lager 5\n", - "Maibock / Helles Bock 5\n", "Mead 5\n", - "Quadrupel (Quad) 4\n", + "Irish Dry Stout 5\n", + "Dubbel 5\n", + "Maibock / Helles Bock 5\n", "English Strong Ale 4\n", - "Dunkelweizen 4\n", + "Quadrupel (Quad) 4\n", "Munich Dunkel Lager 4\n", + "Dunkelweizen 4\n", + "American India Pale Lager 3\n", "Keller Bier / Zwickel Bier 3\n", "English Barleywine 3\n", - "Radler 3\n", - "English Bitter 3\n", - "American India Pale Lager 3\n", - "Shandy 3\n", "Chile Beer 3\n", - "English Pale Mild Ale 3\n", + "English Bitter 3\n", "American Barleywine 3\n", + "Radler 3\n", + "English Pale Mild Ale 3\n", + "Shandy 3\n", + "Rauchbier 2\n", + "Abbey Single Ale 2\n", "English Stout 2\n", + "Euro Pale Lager 2\n", "Old Ale 2\n", - "American Double / Imperial Pilsner 2\n", "Roggenbier 2\n", - "Rauchbier 2\n", - "Euro Pale Lager 2\n", - "Abbey Single Ale 2\n", - "Other 1\n", + "American Double / Imperial Pilsner 2\n", + "Grisette 1\n", + "American Malt Liquor 1\n", + "Low Alcohol Beer 1\n", "Braggot 1\n", + "Flanders Red Ale 1\n", + "Wheat Ale 1\n", "Flanders Oud Bruin 1\n", "Kristalweizen 1\n", - "Grisette 1\n", - "Wheat Ale 1\n", - "Low Alcohol Beer 1\n", "Smoked Beer 1\n", - "Flanders Red Ale 1\n", - "American Malt Liquor 1\n", + "Other 1\n", "Name: style, dtype: int64\n" ] } @@ -923,7 +923,7 @@ }, { "cell_type": "code", - "execution_count": 39, + "execution_count": 20, "metadata": {}, "outputs": [ { @@ -932,7 +932,7 @@ "pandas.core.series.Series" ] }, - "execution_count": 39, + "execution_count": 20, "metadata": {}, "output_type": "execute_result" } @@ -943,7 +943,7 @@ }, { "cell_type": "code", - "execution_count": 40, + "execution_count": 21, "metadata": {}, "outputs": [ { @@ -952,7 +952,7 @@ "99" ] }, - "execution_count": 40, + "execution_count": 21, "metadata": {}, "output_type": "execute_result" } @@ -979,12 +979,12 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 22, "metadata": {}, "outputs": [ { "data": { - "image/png": "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\n", + "image/png": "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\n", "text/plain": [ "
" ] @@ -1025,7 +1025,7 @@ }, { "cell_type": "code", - "execution_count": 74, + "execution_count": 23, "metadata": {}, "outputs": [], "source": [ @@ -1034,7 +1034,7 @@ }, { "cell_type": "code", - "execution_count": 75, + "execution_count": 24, "metadata": {}, "outputs": [ { @@ -1043,7 +1043,7 @@ "1405" ] }, - "execution_count": 75, + "execution_count": 24, "metadata": {}, "output_type": "execute_result" } @@ -1055,7 +1055,7 @@ }, { "cell_type": "code", - "execution_count": 76, + "execution_count": 25, "metadata": {}, "outputs": [ { @@ -1064,7 +1064,7 @@ "1405" ] }, - "execution_count": 76, + "execution_count": 25, "metadata": {}, "output_type": "execute_result" } @@ -1090,7 +1090,7 @@ }, { "cell_type": "code", - "execution_count": 77, + "execution_count": 26, "metadata": {}, "outputs": [ { @@ -1140,7 +1140,7 @@ }, { "cell_type": "code", - "execution_count": 78, + "execution_count": 27, "metadata": {}, "outputs": [], "source": [ @@ -1156,7 +1156,7 @@ }, { "cell_type": "code", - "execution_count": 79, + "execution_count": 28, "metadata": {}, "outputs": [], "source": [ @@ -1165,7 +1165,7 @@ }, { "cell_type": "code", - "execution_count": 80, + "execution_count": 29, "metadata": {}, "outputs": [ { @@ -1174,7 +1174,7 @@ "pandas.core.series.Series" ] }, - "execution_count": 80, + "execution_count": 29, "metadata": {}, "output_type": "execute_result" } @@ -1185,7 +1185,7 @@ }, { "cell_type": "code", - "execution_count": 81, + "execution_count": 30, "metadata": {}, "outputs": [ { @@ -1194,7 +1194,7 @@ "90" ] }, - "execution_count": 81, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" } @@ -1223,7 +1223,7 @@ }, { "cell_type": "code", - "execution_count": 82, + "execution_count": 31, "metadata": {}, "outputs": [], "source": [ @@ -1232,7 +1232,7 @@ }, { "cell_type": "code", - "execution_count": 83, + "execution_count": 32, "metadata": {}, "outputs": [ { @@ -1344,7 +1344,7 @@ "[90 rows x 2 columns]" ] }, - "execution_count": 83, + "execution_count": 32, "metadata": {}, "output_type": "execute_result" } @@ -1371,7 +1371,7 @@ }, { "cell_type": "code", - "execution_count": 84, + "execution_count": 33, "metadata": {}, "outputs": [], "source": [ @@ -1380,7 +1380,7 @@ }, { "cell_type": "code", - "execution_count": 85, + "execution_count": 34, "metadata": {}, "outputs": [ { @@ -1399,7 +1399,7 @@ "Name: style, dtype: int64" ] }, - "execution_count": 85, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" } @@ -1417,7 +1417,7 @@ }, { "cell_type": "code", - "execution_count": 86, + "execution_count": 35, "metadata": {}, "outputs": [ { @@ -1455,7 +1455,7 @@ }, { "cell_type": "code", - "execution_count": 87, + "execution_count": 36, "metadata": {}, "outputs": [], "source": [ @@ -1465,7 +1465,7 @@ }, { "cell_type": "code", - "execution_count": 88, + "execution_count": 37, "metadata": {}, "outputs": [ { @@ -1506,7 +1506,7 @@ }, { "cell_type": "code", - "execution_count": 89, + "execution_count": 38, "metadata": {}, "outputs": [ { @@ -1578,6 +1578,33 @@ " scatter plot with `beers_filled`. What differences do you notice between the plots? " ] }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "2. Gordon Moore created an empirical prediction that the rate of semiconductors on a computer chip would double every two years. This prediction was known as Moore's law. Gordon Moore had originally only expected this empirical relation to hold from 1965 - 1975 [[1](https://en.wikipedia.org/wiki/Moore%27s_law),[2](https://spectrum.ieee.org/computing/hardware/gordon-moore-the-man-whose-name-means-progress)], but semiconductor manufacuturers were able to keep up with Moore's law until 2015. \n", + "\n", + " In the folder \"../data\" is a comma separated value (CSV) file, \"transistor_data.csv\" [taken from wikipedia 01/2020](https://en.wikipedia.org/wiki/Transistor_count#Microprocessors). \n", + " Load the csv into a pandas dataframe, it has the following headings:\n", + "\n", + " |Processor| MOS transistor count| Date of Introduction|Designer|MOSprocess|Area|\n", + " |---|---|---|---|---|---|\n", + "\n", + " a. In the years 2017, what was the average MOS transistor count? \n", + " Make a boxplot of the transistor count in 2017 and find the first, second and third quartiles.\n", + "\n", + " b. Create a semilog y-axis scatter plot (i.e. `plt.semilogy`) for the \n", + " \"Date of Introduction\" vs \"MOS transistor count\". \n", + " Color the data according to the \"Designer\"." + ] + }, { "cell_type": "code", "execution_count": null, diff --git a/notebooks/03_Linear_Regression_with_Real_Data.ipynb b/notebooks/03_Linear_Regression_with_Real_Data.ipynb new file mode 100644 index 0000000..21438c1 --- /dev/null +++ b/notebooks/03_Linear_Regression_with_Real_Data.ipynb @@ -0,0 +1,974 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "###### Modified under Creative Commons Attribution license CC-BY 4.0, code under BSD 3-Clause License © 2020 R.C. Cooper" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Linear regression with real data" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Earth temperature over time\n", + "\n", + "In this lesson, we will analyze real data of Earth temperature over time.\n", + "\n", + "Is global temperature rising? How much? This is a question of burning importance in today's world!\n", + "\n", + "Data about global temperatures are available from several sources: NASA, the National Climatic Data Center (NCDC) and the University of East Anglia in the UK. Check out the [University Corporation for Atmospheric Research](https://www2.ucar.edu/climate/faq/how-much-has-global-temperature-risen-last-100-years) (UCAR) for an in-depth discussion.\n", + "\n", + "The [NASA Goddard Space Flight Center](http://svs.gsfc.nasa.gov/goto?3901) is one of our sources of global climate data. They produced the video below showing a color map of the changing global surface **temperature anomalies** from 1880 to 2015.\n", + "\n", + "The term [global temperature anomaly](https://www.ncdc.noaa.gov/monitoring-references/faq/anomalies.php) means the difference in temperature with respect to a reference value or a long-term average. It is a very useful way of looking at the problem and in many ways better than absolute temperature. For example, a winter month may be colder than average in Washington DC, and also in Miami, but the absolute temperatures will be different in both places." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "image/jpeg": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAUDBAoKCgoICgoJCQgJCAkJCAgJCgkICAkICAgJCAkICQgIChwLCQgaCQgIDSENDh0dHx8fCAsgICAeIBweHx4BBQUFCAcIDwkJDxUVEhUVFRcXGBUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFRUVFf/AABEIAWgB4AMBIgACEQEDEQH/xAAdAAABBAMBAQAAAAAAAAAAAAAAAwQFBgIHCAEJ/8QAUxAAAQQBAgMFAwYJCgMFBwUAAQACAxEEEiEFMUEGEyJRYXGBkQcIFDJCoVJUYpKUsdPU8BUYIzNDU3KCwdEWF+EkRJOi8QljpbK1wtKDlaOzxP/EABsBAAIDAQEBAAAAAAAAAAAAAAAEAgMFAQYH/8QAOBEAAgICAAQCBwYGAQUAAAAAAAECAwQRBRIhMRNBBhQVIlFhkVJTcYGhsSMywdHh8EIWM0Ni8f/aAAwDAQACEQMRAD8A4yQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQsmtJ2Av2K3cA+TfiWSA4QGGI/2uQe4bXQhr/G4erQVXbdCtbm0vxZdTj2WvUIt/ginoWy3/I3mj/vGD7pJ/3dYf8AJ/M/GML8+f8AYJb2jjfbQ77HzPu2a3Qtkf8AJ7N/v8P8+f8AYIPyP5v9/h/nzfsEe0sb7aD2Nmfds1uhbFd8kWYP7fD/AD5v2Cx/5S5n99ifnzfsUe0Mf7aD2Nmfds14hbD/AOUuZ/fYn5837FH/ACmzP77E/Pm/YrvtDH+2g9jZn3bNeIWw/wDlNmf32L+fN+xXn/KfM/vsX8+X9ij2hj/bQexsz7tmvULYP/KjM/vcb86X9isHfJZlj+1xvzpf2SPX8f7aO+xcz7tlBQry/wCTPKH9rj/nSfski/5PMgf2sH50n7NTWZS/+SO+xM37tlMQrh/wBkf3kHxk/Zo/4AyP7yD4yfs0et0/aQexM37uRT0K4f8AAGR/eQfGT9mj/gDI/vIPjJ+zR63T9pB7Ezfu5FPQrh/wBkf3kHxk/Zo/4AyP7yD4yfs0et0/aQexM37uRT0K4f8AAGR/eQfGT9mj/gDI/vIPjJ+zR63T9pB7Ezfu5FPQrh/wBkf3kHxk/Zo/4AyP7yD4yfs0et0/aQexM37uRT0K4f8AAGR/eQfGT9mvf+AMj+8g+Mn7NHrdP2kHsTN+7kU5CujPk7yD/a4/50n7JLM+TPJP9rjfnS/slx5tK/5IPYmb93IoqFsBnyVZZ/tsX86X9il4/khzTymxPz5v2Ci+IY67zRH2Nmfds1whbPj+RXPdynwvz5/3dLt+QviJ5T4P/iT/ALuq3xXFX/kj9Tj4Rlr/AMbNUoV17R/JhxTEtzsZ00Q/tcc9+2vMtZ/SNHq4BUxzSOY+KbqvrtW4STXyexK2iyp6nFr8UYoQhWlQIQhAAhCEACEIQAIQhAAhCEATXYjgTs/Nx8FpozSU5w5tiY0ySvF8yImPNeismd8m8n8rTcIjlZEQGyY0mT3mmSOd0bceN0kERaJS6Zkeo0C4Fotxa0rfNwi18ewWc9Tcwf8Aw7KU385fIlxeNO7mWWBx4fDG50T3ROdHJrLo3FhssPVpSjyH6yqf/Xf66HVTD1XxPPm1+Wig9o+yc2HjYeZI+FzM5jnsZE5z5IQI4ZWNn8Olj3RZETw0E7E3SrydZnEZpWsZLNLKyMyGNskj5GsMz+8lLA400uf4iRzO5TVNiQIQhAAhCEACFlGwkgAEkmgBuSTyFeav/Zb5O3PAmzHGKPYiBpBmcPyjyjHLzPsVN2RClbmxzDwbsqfLVHf7L8WUjh2BLO8RQxvlkdyYxpcT60OQ9VsTs38lLzUmdMIG8zBEWyTH0L/6uPpuNSumA6HGZ3WLEyJnXSPE6ur3nxPPtSc2U93MlYeRxO2fSv3V8fP/AAe3wPRGuGpZD2/gui/ySXBcLAwQPo0EbXgf17v6Sc+f9K7dvLk2k4yOOk9SoArxZUqeZ7m238z1VOJVUuWEUl8iWdxYrwcVKiliXdOq6qY/AvaiibHFkO4z5kD3qAd4uVn/AAmvutLcOwC47a3GwOQBp/mXenku+r1pbYvOzXZEzHxLULFnn0O9cwB19yzj4gCAb+tVXt/B9Fl/I2wHjBYR/aCM2/ZwDfrOGne/ytlaeF9kzs8+LYvs2A2IWR9WiR1v1dzSdttMEJWZjT0tFWbkSFpNCN2otY14c6yNubfXp6hO8XHnc3UbGxFDSHa29Ghw8R9hV84P2Rc2Nj+6k0PNNIZJI9zXAVKRHbwwuLfr77hbA7Edi8d4eGuY6aJxjydT2Ola9mxElGwLN0PM9bSzyXLpVByfyWzLu4rCH80jTHDuEvfTSHa/DqDnFhF8vACSDvVGuSl8PsfkHdxr0aCf/mcRyW9W9kOHRu1vc1shrUY3PYTp5ajG4Xy6+QUdl5+FjcQxsfX/ANjyMXKfPLNJbYsmOXFZisa+V9tL++yBo3vuRVUU0uEcTtXNGvX46MqfpNUnrezUsvY6SvrOB8w1v/3NpRWf2SIOovl5fVDg1vt8ItdOP4HBKLjIPp1VS7Q9nKsafuWRlRzcKWrotDuLxyu9nOXEeBUKt+3XU4n7yq3xfDMQ7wvpo/COxPQe1bt7T8METS5w60G20Fzt6aC8hurbqqDlcIdlPA7p8Ihdb2y1btbfCQ1p328/P2J7Cz21zS7G08yOtR7+RR2RvoFwA9ln/RZUr7k8B9E0HBPRN+vwZpQtSXcqLMdx6JB7nA6dDg4k6Q7w6q516evqr9HwmuiSyeHDqAaNixe/n7VyOdHZGdjf8rKNBrd9gt52CfEK/Jrl/usyCOYpWfJx/TdQ+fCmI3KfZFlbeurI591tRPqaHxASMve0NPdg9dWoj2Ch5JdCvT0SnDm8zGPV10+6/wDVZJtG5znHo3mCD05VQ+1YvflYS7Wgf6ldktEa57XT9TIJORzgdmgiud1R9R5V1CDLW5BHwseux39ySLnHTpIaL31g6iPyTyBXYxI2WLXRiwlrmCPvHxTiDK9b/Wmn0Ztl3i1HmdTtx5UDVf7pTQPIX7FGSiyUefz0S+NnqWxM4KnAO1WBTeRBPPfYgcgl45nD/of91RZjJnOkvI2DiZgUvi5YWssXir2/Wb7gQSpLE41yIkrqNRO/u5Devis67h7KJw32NnQ5DSoTtV2J4dxAH6RjxukI/r2Du5x/+qzd3Pk6woThXGtQ2fyIDvquBI51pFqexeKNNDUAegOx9wO5SHhXY8uaDafyEbcaFsdSSa+Zpbtp8hs8WqTBlGQwbiCbTFOBtsJP6uTrudPsWp+KcOmx5DDNG+GVv1mSNLHD1ojl6rtETagojtL2fx8xndZELJm76dQ8bb6skHiYfYt/B9JbYe7kLa+K6P8AsedzPRqufWl8r+D7f4OO14trdu/khmh1TYRdPELJx3V9IaPJlbSjn5HlsVqyRhaS0gggkEEUQRsQQeRXsMbLqyI81b2eQy8K3Gly2LX7P8zBCEJgVBCEIAEIQgAQhCANofNVj1dpeGt8/pv/ANNy1avnQ42MO0mRHlahGOCudEWvEdZbOHzy4gd4DrYclsTNIq9Y3CgPmexau1XCm+bs3/6XmFTHz44tHaadtURhYX/9F/6rOdT9dU9dOTX6jHifweT57/Q1z2y4fw+LD4c7FlEmc9uQOJNEneNa9vcd3po6a1uyWWALEba1CnuqSe8M4VNOJXRMLxBC6aY20BkTBqc7xHxHSHHSN6a49CnvEOyXEYIG5k2BnQ4b2xuZlS4uRFjObMA6JzZ3x6HNc1wIIO9iloi5CoQhAApXs7wKbMk7uJo83yO8MbB5udX3BWDsJ2Fky6yJtUWGDs6qfNXNsQP2ems7e1bHfBFEwQQMbFG3lp8x9ouu3O2G58lmZXEY1vkh1f6I9Lwf0dsyv4lnSH6v/fiRXZ3gmPg7Mb3uRsHZLxvZFlsbT/Viuo8+akcjIJ5m/ifTYDmkmNsVsehO+9bdTZ9pWYFbk+3c195WLZJzlzS6s+iYuLDHr5K0kv8AfqZV/HILwsB6D/1WAnbenUNXRt7/AA9x+CUtQ00NqUZdjHQPX13P+/NeFp/CNewX8SKr/dZoRsORCYi83OJ87rrY2ApelpA2O9Vv/vSzWUbbICOZnPDRhw3DlLmAMabJBcHO0t2uyK3HT3q9cI7O5Dg0Ax2HaurQfwQTpLgP8PmU37OQgUticEeG1pY57zWljdIPlZc86Wt62fLazssbiGdJPUUZmUuSLW2K9luycrnAyyNiLg+OOId2C41oa+NxFsvZ2kWdmet23gXZzHuPFllbJlYkLrHj72dkTO5HemD+jgYZnsdbweTwBsSpvslwl8rAyeRp1V4GsjfGDsQXF0YdI8OBNjT0281O2hlhNtIjc9vdRxtEYjcWtAj1gN7xxABdsTsx29bJ30b4XHiNjla+i8kfPuL8SnB6RB9os04IYcfJmkyItJZJO8OikfpqRksTG7scPssG2kkUarXvyh9tpJnwvZKzHyw4ONEtfJGK1xCVg8I1aPEQb0tHsje1MMokZJqeJBzc91wy2WteyTSDokN2Hfkn1VYm4dLPOBIG92xxdysvjeCGwuFkOb3jdV7f1TNvL65h8Lx8eGq4JHi7suc3tsseN2xmyBruRpstc0m6c3ZwDgdLhdix5FRfEc2fLyBi0Xw6WNyC5xpgeS+2sLNJfprcn7TNlYeDcDugBQ6ADYDyAHIJ9LwmHDyvpU5McMuI4GZxLceN2MdbxKQdOt0TwQXD/u8gscjoXcqik/zFa+ZvZsPsZxaW2gk/FX3+VMbIDo2PjnyIzofFC5kkrXGtpADUYpzTb6WpcMCd/dMcw4kZjOS9pLjM4/0gxAR4Qyu7c472Hhtbq7YvHWRANbpY0V4WgNGwobNFcqHuWDxThtedHklHaNLFvdXXZ72j7HmcDvo4Rp8WzpJGhxbTjyaHN3cPF8FUouC4YbrimikDyR3neNeXll+FtHcAEkNbtvtzWwcTtO140uotcCHA8iCKI+Ccdn+EY7Iu5gPdx63v8LI+81SPdI4awNJbbq3BNAbr53xD0Ntqi3VLp8D0eJxtpmq8ngTXN1DS5pvcbg0aP3gj3KHyOEhvTl0W3eK8KZEHNaPtOc4klznOduXEnr/sFQeKPGkOcO6ura8ttpcdIa4tdp1WQKHmF4WfPXNxfkz12Fnu1FRyYWt6Kpdq+ImMBkIY7IffdtfdU0jW4gEeENPn1bzJpWHtnxPuGsput8sndxtvSNQY+QlzgCQNEbjsCeSpWZE9ru8leHyuaBbWljGhtOLGNJJa3Vv66W3yWxgU71Of5fM1lJ2e5Hv5v4f5I7Kx6GuaQyu+s5rnOEId5MjaQ0N9HWozJLAfBbdq8FBpO29HbkAFjxfILiQS0BsjQLFmzQvfa7dt7kg6gALryHUm728za9DXBpbY7VTCLf7+YNkve/iNJ/UvC8nYeXP/AKL10YJvcH0KyaK2/wCv61ZtDSUn0Yn3Zu6b6mjd8rsL1jDRBN+7p70ohc5mSVaEpDQF2T0IaT+dpFAe1eFljSRbTR28JBBu6Bv12SyF3mOeHsAhCFAsBCEIAEIQgBSKZzeRUnhcWI2d/wBPvUQhRlWpdzjimXrhnEmnehfsFqexJNW+p1Vs3wUPUW279vktY4OSWkb7K4cFzLpZGVi8vVCltC7osbsG99biPIkfdp2+KpPb/wCTjGzgXEd1kgeDIY0WdthK0D+kb7d/VXzFn5CiSQTQrkKvmfUfFLxlshc2qq9P5QFaiARtRIHxSNGXdjy54PWjMvqqsXh2La+Zxx2u7L5PD5O6yGUDfdytt0UgHMsfW/sO+4UIuw+1HAcfIYYZmd8yQ6e71OI1aSQRRqNwAJ1bclz38pXybT8PJnjDpsIn643fDfITAD6vTXy9hpe84XxuvJShPpL9H+B4jinBJ4+51dY/qvxKAhCFunnwQhCABCEIA2/8zSQN7W8IcdgHZt//ALXmK3/O64rDB23izZWGXGxzwfImja1rzJDB3ckkYZIdDiWscKdtutefNgm0douHv/B+mn/4blD/AFVv+cXwd3Eu00cPfQwiePhuOZZHtcWuyHOhYWQsPeznVQ8A2sai0bq3w/4fP89EOf3uX5GsflC7SjJyzNjzZDwcHGw8nLkuGfiDoYI45p8hjZCSHPjGzySRGwu3un3ysdqcbNkjbj4+NTMLhEb89oy25csuHwXEw54ZGzT9yIxPE9vgYL7lhvc2w4h2Lki4TDxp8lCfMbjtxzGWkMkjyJGTd6Xb39GcdNcpIzZvaqKomehbd+S75LHSBudnsLYvrQYjgQ+Tq2SYHdsX5PXbpzsvyG/I+9oj4pn473E6X4eI7Q0AHduRkNkcDXIhleRPkt2ZPDXuBtrWnf7RePQnYemy8hxn0gUG6aH+L/ov7nqeC8JhJq2/8l/c1xxSGhpApoFAAUAANgANgK6Ko52lpp1bnYHqegpbT4hwBxJLnEjo1vgYOX4PiPLqeqhZ+zzG76Gje+Q5+ftWNi5sEurPfV3dNI18A7cta72EAX7quktBhPdu+udgN1BrfTnv/wCit02AxvMBMciVreS0Fl838qLlFP8A3oQj8JrQfCOdnYc+h9uwUHxecxyMa3w959b1GqvPbqrFlTWoDi7aLSXNBMzdNjlGG72a28e9/wCFOYr3L3hfiMWqfd6dUSgKEA3uhVM0IvoCVxh4kkFIYGOeahN6QN6LFwQ8le+zsrmkuolp08iCRQokNqyK6ehVK4RAdle+zzKpebz5LqZmXpo2p2Tzmga9QIaNR0+IgAWdm7k7HYKQYz6aBlCOaNj4g8RztLXxySb6ixw1MmMbnNLXXpDY6qyFTcVkpc1jGgskMbZXUBphDnPm1OJ3toDdIHN7egNbP4VnN0hh+r0HQexaHo1xSGDb7z6S/Q+d8XxnOTNTdr+yxe5pBLSxxds0OuxpIN/klw9/sVPwuAGLPhgLXn6TjSuMrxs+bHkYWxh/Iy6JpT3YHJhrYbdHZuBE4aiWgeZIH61Vu0vB8V4cybXKxsZcYIBqc1102QyM8TH3yFi9LjRo19dp4vXZDmi19TycsNp9SP4B2YDaJH3J9xXBaxp26VX+itHBcSRmPCJd5hBH33If0mga+QA+tfRV/teaaVKrJd0zs6VCJr3Onjgb3cTGRRjUQyNrY2DUS40xooGyT7yq1l8YdfNZ9pJnFx9qrzY3EreqrSRlWTbZa+EcUdY3W0+w2cXVa1V2e4W5xGy2/wBieEloBKz+IShGD2N4ik5D/tlsxz9r0XuaGw6u6D1Wh8PikuT/AEmQAHMnyIXQsa7uGyY8oDZdTh4iQyN7QTt3p8rW3PlNjdM+Fmgy4zRL37NTRE4juzCHsLwS4SNDw8XXdu2sgjUvE2sbLK0nTTdOxDre8teSZL1veHVVgVuvgma63fY49dv6dz6NwiMtLZDdqYWShodzjlZLGd/DJHu12x3G5FepVC4plt7028WW0Rfm46SByZ9Vwr8oKycd4g8gBuoOvxu0htAO01TrokkbiwKdZVW4jgxglxHitxMl6XW9xLjba6k/FPYEOWOpfkevri29wS8t7ITLjDnOc4ahRrUOQHKmkbc3c0jFEAACL36iifcNj7B5JzIGuq9zQu7u/Ufx0WDRROx25b9D6E87BW2pdNDqqW1IUBQsLN3W1ctrJ8/gswbVbQ0mCELEP9DXn/G9I0G9GSCf+iTc6yKJq9+Yvy9efVZ6R5e1d0cUt9j1CxDPV3puf9efvXpdXP8AUVzR3fxPUIC8BB6hB3Z6hYtd7lkCjRxMEIWLL8/P2bGuiNBs9caF+SmOBSDZri7lWznD28iohovb4hP+G4dfVJbY2/BaT5BV2pOOmV2LZsXgjW2HW7bkNbqF1Yq+XLblsFZ4sTvNV/VcxoH+Uk+/xEfcqT2WmNBruY2vzrb47X7wth8GbdD/ANQvKZu4TMjIS1tCUOAK0V4mDnXO78VgbE0fvTLM4UHAgtDmuBBBALXNIogjkRSteNj3Np2sQaiPTWA13PYHxCvyCpD+R2kbNAvyFfq9p+KS8WUXszlmJdH2OQflh+R90OvP4ewuh+tPiNBc+LqZIQBbofyeY36ctKlfRufgjrsVp67HVe+93RHLb2rnP5wfyJvHecV4dCdrkzMSMAgitT8iBg387YB0JC9zwL0j8RqjIfXyl8fk/wC55nivDoP+LR+a/qjm9CEL2h5wEIQgC/fN9k08bw3eTMz/AOn5KkfnLy6+Kh3nhQfc6Uf6Kt/JLxKPH4pizSnTHc0RdYbRyMeXHYS5woDXK3c+qtPa/tPg/wAtfSJY3Tw40ccTXFmNnQuc2KV0rJsKYBmQ3vZhH4Xtru3OBJqmlJeBrz5v6CzT8ffly/1NWEron5rHyLnNLOO58f8A2GN5ODjPbYypWGu/kBG+M110PtOb5Ahx8iXYTB7SPGJDhyY+FicSObxDMdFAyV+LJ9KdFw9mWx/ed4deNEImBrQ3Elk+s4NHa+BwZkUbIIY2RQxRtjiijaGRxxxtDWRsY3ZrA0AUPJeP9IOJTrh4FP8AM+7+C/uzVxIR5uaRVn8M9E0yOF+ivn8mHyTHPwaB2XzqzDtgtyTN+viHXWzWnE8EC9lS+OU21s3tDDVrWnaKI7oxX73U9Pg2c62yh8YyDuq7K8kqycTxSSUwZg9SvV0TjGJvwaSIruUy4jj2NIHipwB6C2kb/k7/AKlYZYQFGZI6+f8AFJuq3rs7OKsXKxjjwBrQ2yaA3JJsgc+eyVZHe2/xKVihJUvw/h91su2W66s6oxgtIaYPDr8/iVYuHcK5fW+JT7hvDuWyseBgeixsnN+ArbaiKxsGRu0YJGhztb9DmtcOTd3h3Xr5Ke7NZbGmnSlw0tcXP07PeQNDXRtAO5FCr3FJ79CBbo0gh3hcCARVH6wOxbYGycNxfE5jIvCBydTIi5xEmsFos+OnE8yQPK1lyuVi1IxsmyW+hbOGy0AQdqsG+YPVSX8sBgO4Ja0uI1UA0C7J6KmueyBuqaS2UGNYRUVgbBkLebqbyA6FINmEocS2SOMPc0QkGBkgDdJe9oAe9h1uGl23hG3VJKtLr5GdOjxH8y0cR7WwiZ0eQ9hjjjEjKDtLJHeH+llYSY5QORFf1hUrxPiUk8YLIop45mRtGPkPfjCON4a6Rz9LNQl2G/MaW1W6oOC1kdfacAPGQ27aKaQ0DS0+oCm8Tim/NNLNnVrw2/qKz4Qn1ZsTsFkSsxIYskgzDWX07Vp1yOe1mr7QDXNbf5ISnazhxe0kb2FW+GcWG26tnD+KNc3S7cea9V6P+lDqs5b30/Y8/n8MaXRGouM9n3Fx2PPySHDey7i4eH7lumXhsL9wWrKLh0LN7avpX/UmNyb519Tzvs6W+xWuzXZgNAJH3Kz5UrYmaG863KTy+JNaNLNh5qu8R4jzXzz0i9K/HTqpfTzZuYPDdNNoZ9oMmwVqrtO0h+ou/oS8U1tM0ONNbq0tt4Mh52K1D2q3dp+IvAbosguIfp0d4GhjnW3vDp5trfzVS4wHO5vtux0uYOjtQstOx2r3LxFG0+Z+Z7bBp5VrRT+ORgggtBaOTa8vL1VSzi4girFWXknbfatYBd7R6K55rHvJrSG1z3eHXd8625cvNQj8bdzObWBoO51crDgKraqr0XoMWxRXU3lL4FTkh1GwSRtRO9k+Wn2j4rKLDeeR2J2sEny8/RTR4XRJZo7uidJH2gdTjE+/CdneAjmU8ZjNBJcSwHoPF4gXaumx2WlLJXkShel/MVqOA73fhNOIFgbHc+lghKPwSSGgG73OwoDc7c62r3q2cPx2OuvE47lopx08m7jbp19U5PDWj7JYfwq3P+YH7il5ZqTJK9tdymTYBr+DuEz9xoHTe2m7ra+Y9it+TjloN06uul7QdruwKv2eRUXJiDamkFoOnUCCWkXp9dqHuV1WRtdS3xuZ9CDldp3P/r7AvQU7yMe/s89JHSqOq9QH3JMYx6WPQj+CQmOZaLVZt/IQQlJIiK2NnaqP8H3Lx0Lqvwm/ab/3QiXiR7CBbZ9PMHny2KzHka9PL4FZRwuA+rXp+r31Sy7gn7P3LrkgivMwAXhCWGK/oPivHQPH2fh/1XNr4ktrzEi0fxv+tYsPQDbzGw/6pU47j0rrvz+FUnOPim+SHJJEfwMsDE1FWTC4aQAbFWBy3NmvZaacOgogbWeQ6n3Kz4jXOADGsc4PA1vB0NJIbtX1neLkPI8ll5N730Fsi3lW0GFw8gmtjTTtYvc+W45D4K7dmZLa0+L/ADc/iOaj8HDINmtRobXQA9vtJ96eYmM5xkgbcT3DVHI0uA0nbUADRIIurB3NLCus8TozJybemy+cBp7nEbtDWM1D6pcNTiB57ObuPM+SsePiKD7LwhjGRCgGNDRQDRTRX1RsPYFbcRo2S1UFOWjyeXY4swHCdQ5JvNwYjorPDVbL2166n0brtrUoy6mV67OLODvnafIgcFz+O8Pj/wCwSPBzsVjaGJM8138YA2xXOIsfZc7yIDebF9euJcNhyI5IJo2SwzRvimikaHxyRSNLXxvY7ZzC0kUfNfOH50HyRP7O8R0xB7uE5mqXh0zjqLQK7zEkcd+9YXDc8w5h53XqeGSthHwbntrs/iv7iVum+ZGo0IQtUpPU+7P8JmzMiDCx4zLk5M0cEEbeb5JXBjRfQWeZ5bpgutv/AGf/AMnIfLP2lyGeGEvw+Gahzmez/teU0Eb1E8QhwP8AazjmFTkXKqDk/wDWditvR0z8i/yeQcC4Zj8Lh0uewd5mThuk5OZIG99OetbNYAeTY4x0V1oBejkkpFm4mLGb5592WzlpaRkJUz4wwabTiKNM+NTCtPkkvSPwoYzXTZZjbciidoo+a11xzGu1snjjwbVI4sBuvmdctSPecNk0ig5+H6KKyog1WfiVbqrcVl5rdxpuR6KptkLxJ9B3sP6lHE2VnxCa7CaYTiDRs1W/ofP4LdrhqOxn+Xqyc4di3WytHC+H8tlHcDjBrz8gDf5vNXrhGICARyIse9YubkOPQVvuSE8HBqtlLQY9J1BjUlXR0sOVjkzNnbsSZslRIkXGk0d/SgggiNwI03TntIINkbtbVHbf2clFL4lb6jfs9LK6ITyv1ySF7mhrrYyN7yWNaGnT9TSNr+rz5krZMyX7sBoa0BrQKa0CmgDYADyTOdqslLmk2SpgooamcpXHyT5pCSNYtCs5UxnSZYcDPI6qx8N4qfNUWAlSuFIUtOGhK/HjI2HjcV25rOfOcdOl+kAkubQOvybqP1W8+XoqthyFSDXlRVkl5mNZhxTHs+aSBexoWLujW4ut1EZ+Tz3Sk7lEZrzvYoDkbuxXOum+3uUe4zRSkyG49M8kFup2zmuaNO+rT4rc4b00jb8IqEz80ObbeRH1nW1gHUl1fqUlxCUkkDysnyHIV67Hf0UHlBuoAN3BBNAbA2Nz8TXon6UtLZr1w12G0rReqnuNUDRoCyQGjl1qx5BNWt8Rprrcat2nSHBgIBo3WmjYtShSIiOoVu4P1Udg4OBaNx9WgK3/AAfVORmMPoug1xcDW4l4aQCAG0K1ULJN79Ezy+FysfHTO9ZH3pDQwl5icWhrA8g6pQ1zhvVgOu7Vtw28g4BrugsEH/Cev/VOZYGuB1sDowSfMgtsatNeh3G6hHMlGXyFrkpLuVvs82o+7ex7ZI3aHHu3APA3Y9pA38BaaO43T2dzRQ3JOwprjZAsiwOdfqKlg6NjfCWta3oBRrl9WrUVkuZbXRFrm6nPkLCCfqGr39Dt6KHP4km9MITcYpbIjirdQLRG9xrUCC1nI8gS4OB2I+Kh5cMDS5pL2tFAO3IPmNtnAWKVikfvvYcdqIoUCaq+fO90wkFEjzLnA+02QfWz+pO1WNLQ5DvtldOMRYA2snxX1NkAdB/uvG498xpIBN9K6m+Vbjmp3uwV4MUW0kAi63A5mqP3V7016wM82kQ44WX1ceoEUCTQ6USNVj3eQTiHhu/9W7QPC55rS0tsbEnVp5hWnHxwBZ9gFbk+QA3J9ikY+GkMBNkjxPDTpLtV6gD7T/5Qlp57XQUss5XtFQPBfRZs4J6K8w8KDXBgbTS0kcq1A70LsuIN/wCVPmcIHklJcQkjvrhr5vBPRJy8F9Fsr+SvRN8jhnooLiMtnFmbNZv4T6LFvD66K9ZPD/RM34PomY5zZesjZVzgGrOqtQOoHS4cwGChZsurbzU7w+B8boqb/RPlYLc63QPe0inNcacwvptg7GQUFI42EDsfbfUEbg/FO48VszHwO7xhBaHObqjcCCHMljd5amg2L5KueVzdH28xHIfwJ3EhsXVb6T1o2BX3j4hPMeJznPDRTWMIDxRt/geNIB5jfn/qqxm400ETIopCIiypMiVxnk+klrtEknfXqjL2sHXd8W1CjYOCcIAYI5pJJQWPa9hedLjLo169ADZd49rA+u/ajQRlXCK5ub8DIttnL3dFz4ZsQRyO/wAVZMWXZVvC2AFVQAAHkNh91KWx5dlRVPlZj5UeYnYMyvYnjMtpVaMyybkLZxuM209EzOliplnEzfNUz5aewuPx7heRwubS17x3mHkEajjZsYd3M4614nMIHNskg6qRbklLMyStBekNjaZS8XR8qOP8Jmw8ibCyGGLJxpnwzxnm2SJxY4XyIscx6Jgurfn4/J+GyQdpIGbTFmJxPSP7ZrKxclwA2uNhiLjt/RQDmVykveYWVHJpjZHz/fzEJw5Xoc8NwpJ5YseJpfNNKyKKMfWfLK4MYwX1LnAe9fU35NezkXCeHYfCoa7vEx2Rlwod5Nu+eY19p07pH/51wZ8zvs+MvtFjSOAMeBFNnvBFguhAigI8iMmeB9/kLvx2T6rzHpLxHwrI1L4bf9P9+Y1i0uS2T7ckLGTOYFW5M6uqj8vioaCSdvifgNyvP/8AUN0VqI7DBcizZfFfLZV7iPEOe6hcniwIsOBFkWCCLBIIsdbBHuUNncT9Vj5ObbkPc2a2Lw3XkOuK5vNVLimTzWfEM/1Vf4hlWoU1bZ6TGx+UY8WyOaqPFpeam+ISWoDOZa9BiQUTYqjogJjZSuKw3z0ivrVY62K/wlyVfiEnkpbhuASNPKyOl8jdexak7VFFl3WDLb2XjsCxRuiPIj/Tr7wrrh4+lpcCfDb9O1VdvGw32vn5qrdmsfRo1fWcAHC9tTRWoC/8INfkq8YWy8nmT9/p2MXJk2jCHVKXaXBkLSGhzSO8kc0nXR5Ni5Cxuady2tnxPg7XvY58kz2MLiIC4d0dTNBDw1uqVvWnk72pLAAaxoHUaifNz/E4/nErDJmbemwD0BIB3HQcylVY0/dEIx3/ADERNA1hYGgtbI5zC0E6ADE93hZ9VviYNx5lZ4mQ17iwOGtrWue3ewHjY+zY/BIcTzWOJgDZHOHiIH9GHBhJ2efqt1MPi2Hh5rLAYXPM7C8gOp0JY5jmM7tg0hp2eNYLw4beI0Sr/DbjuRZ4qT0iTc1N5Ik+YWvFtIcAaNdDQNHyNEbHzWQgSu9FqsId+OsRjKeZh2lo8D0XfE0deQkQcOIpPDxFKQcP9FI42D6KDnsVty0M8XH5J82FPosako6JR0Zs79shsmNVjib5Rdhn1m1R8ThvbdJ2DtgOfmVcc1iqnFZBbjbfD4QLq3k0b61yH5ynX3G8eWysZbyXb+AuG5Gk1pIpt3+Udz5poYq5f7kk9SSpTMgDWkAAEMIsDyamwx9Owst95cPfzcE7GS10Nit6GgiSsMPjbtvpd7di3/dPY4R7R6clk6Lcafrjp0o/h7bN2+5c59k52dBxBF0PLqnDohpLeQojbbnz96Tje4GtB2AJIcDzJHhHN1VvdelpR0gqwb/0PkfIpd7F3LbGzn2AfQH4hQudq7yjfd07xggECQtGnldBzDuOWtnuePywGt5/Vb0d5exR+fM17a0l92HNrnG7aQEOI20/fSapi0yfL02Nc9oquigOJRk6TbiGO1aQS0nY7eE7n2qclJotJvTVO/CaRbXe3/YqJy1oUPQ9BKSE8LIFAk+GrD+hA338nV5qZwWCRgc0mnUWkgjcG92uF8xyKgMHHcHHQSGudqc0Bt2frUS4UD578yrRwbDaAwUKcAAW3Gfq3vpO4oH7lLJcYraZVOcl0ZLcGx9QD7JNEdK50aoCxtzU5iwajVeFrhfq4U4CudXR38gmePgjTTXPa6vC7U52kgeFwa86T7CnmBOWue6Xw6SxhcG6Y3F76j076j9Zos7eI+SxpvmbaM66x9iVOEHsc3lYIvy9dt79iWjxyyvD4eRBNxg19mQDU0bfaFcuSWxndE/gcl1LXQzrZMiG5TXaw1gcWODS1rg4+IgB1MFaNwefK004ix7Hf3jdJdJQDdFAm2mt7oinH7KO1fFxA/TG1080hjaYou9M8YkBZ3oEO3dgsjJ1eu+wBcSO72JzrrvbDTR2aPCLs24GibFfXTEq+WKlroymm2TlrZEZcITB8Kc5meB4Xf1llpY3nYNBwBOzDbSL/CCafTWihIWxE1pD3MAde9NN0TtyUYwkbVdnQVggSUGK12YHt5xYrxKATu7Iki7sltUTpxX7+vqlGcSZ3ghY18z9JJ7oB0bPSSW9EZ60T0KdYeE9jtbiS+Z7TK5rnFrS13giDaoQiIvGrqdzuVZHcdt9NroU3WqXYdZDW02M6SZHta1jjQeB43jlZAja416Kax4d7TfDhI5ku3J5AUL2AA9NlKYzP4+7/RKyfkK2zHeMKF+Q/Un7CkMZqdsauIyrZdTAlFpQMXojUtFe0DCnEZSbGJZjFZFMqk0Q/b7s1FxTh+ZwuatGXjujDiAe7l+vBML+02Zsb/8AIvmJxLCkglkx5Wlk0Mr4pWHmySJxY9hrqHNI9y+qwXAfzxOzow+0WTI0AR58UOewAVTpgYpyfMnJgndf5a9t6J5b5p0P8V+z/wB+Rl5kOnMbN+YpwwR4/EuInnLPDhsPkIGGeUX6nIg/NC6Mmz/Vab+bZj/RuA4bSAHTmfJfXUyzvDCfXumRK9ZGcvNcdud2dY/g9fTp/Q9Hw/B/gx38N/UmsniPqorK4j6qKyMxMMjKWXGts2qsVIXkn0ve8EAPrU0CreNtZPnpoe5M8rN9U0nyEymlTcK99x+ulIzyslReTJaUlem0idrgkNRQ0nFpq/HtSBasmRplT0Wp6I6LBtS/DcOq2SuPCFJ4sYVF17K52dB9hQbAirabF8jz2P8AHkp7EnHLk78E7GvPyI9QonHcnRlBFEX/ABzHkVlT6vqZ1sWx1JO9jTTQ4NDi0lxaNIsgGmkgjYbJjHPqlEYb4Wt72R52tzj4BQ2Isk7+Q8knKB9kAE1qu7kA+y93M+0ppjC3lpjAc6nB+o91pZ4GtDWnd4bXQX6KyEVpi8oNFliFjn7dr2TNmFTX6I3ghx0R95GI3B2xAcWktj+0WHbms+HSU2i7Vu4A/k6iACb3Pr7E6fOAFSpOL0iEq+Yb4TpmtaHN1HxB4JjBto8GgsAFbAbjqE+wskmtcZj1ODW7h9k8r0bAb/ceSi/5RYeT2mxY3HLz9ieNlDmFuxJLNNixr1tLCR1GrSfciXV9UQlU4x2mWTHgtP4cNJcMcDX8fqU7DHsqYx2ZN9zi9DGPF9E5ZAAnBYsHGlZy6FHY5GJam+VK1o1OIaLAJJoeIgDf2kD3rKWZNJ5bBF1YIvbr1o7fFRbROEGxtnuvl/H8bqq5MLQ6TZtmTWBTbFsYXV1+tbr/AC1YJzQq75myALJNknSKVSyMtrnvjc3S9srgJvCTrAJY4hviaO7bVO6A9N1KuLe9GnR7utiWRFdpLHitrT+SD91rOANdVPcXaQSNe49oaed/6LOJpPhZ4WN8JefETQ5Ms+6z5FT1roanidBL6OWkaSAHHcEWAac620duXJOI4gP9T1J8ysIXbhpJdKAbY4gVXN+zfq7jcfhrMynloff+WvztWn3LktnFIHDxD/C/9bEx4oNnOBLXBpOptXsORBFO96dwSWXA7PGklpokMN6OW3R3vtMuLC6bvTnU6rGwa51WOW4A95XYL3iUOpE5j6FeQAs/Dek1inSnEuqjBLV30+PuHmtCuG0aMYrRlLIA3XYaI9nnkx0IsB2+23P/ACuTedrXCwbFX7b5VfNDsQu0SEjVGxzdLbaHMc2nNcboivPqnmDGHMYAx1taANQLQKBZ9YjfkeSZbUVtFcJuL0xniREEaqY09bujzG52Bq/grRwSEHS7fSG0zcjbq4tujtXPyTPHxg3xOO4HKthfkALPL9asGHHSSyLtroQtlsfwhZZMYe1wppcWOaNQsWQQL95WAcvdaz1tCUo7JHEnsA+YB+O/xT1uTVAfWPIegq3H8ncfcoLEfRLfI23/AAu3r87UPgnWJILceuqifMUCB6DeqHquOItOvZORP0tqydySTzJJsnbbmTyVek/oHSgv/wCzkGaMOJPc1/XMB59zbmODemp4G1ASPf8AqoXiBillpzA5+Ppexzq8JkDuVH8kbHyClW97T7eZVGnT6EZObqXeUvaA76pAoXTSdmtuxsmeNCC4hwBl0OZG9wbegkGRjL+qdx8G86XkOewGaNvi7qZ7XaBsyo2yBprkAx8TbHmEsyEuLXOdEWOLCKBDi4mg5hLq+o7n+SE7px7/AJDq04k1wPH7uKOP8Boa0GiQ0fVbYFGm0L9FJTkhh0gFxGkAkhtuIaLI3rfomnDH6mNd5gX8N/vS3FCBE91tGgd40v0hjXxnWxzi7YDU0c0l1lPr8SifRdCRwTbQSKNbjycNiPiCpfEYqN2W4+XSDFkaxliQwvDt3hk3dhjmhta9zvfRX7CCLqZVy0xCyzceg8gjToM2/j4LyJqXOwNCzRpu2/pvsuwiZk5bZgG9fgvdCyYKAB5gAXtzrnsK+CC9T0kQ2etC9tJmRJSzI5tHOVsVfIuXfn78ID8fhnERzinmw5D5ieMTxD3HHn/OK6QyMlaj+dPh/Sez+aAAXwGDJZ6d1Oxrz7e5klWjwTJ8LOrfxevr0JX4zlVL8Br2J/oeH4MHWPAxWH/EIGatum9p7NlqKgk0sYz8FjW7cvC0Db02SUkyosj4ljm/Nt/U9vTQoRS+A/kyk2kmTKSSxXT4fqWBkU41DChocvkTd7lgXrAuVsY6JpA8pFxWbikXK1ImjwlZMekHuSJkVnLslolYpgnkWUFXDkI+mV1UXj7OOvZbGZo80oM31VQGf6rNvEPVVPDIugthy15JKXCg7Q4EFrtzVdCAQaqx71WWZ/qneNneqg8Zx7Fc6emiZh4zI1pZ3XjYdo9VuMQ8ifA40K2P4NpxLnd4wyEHTVsa6xsCdT/UkXR/w8rUV9OAFk0ALJJ2AG5PsSeNkHQzp4G7e5RdS7paFlj9dNkjiloDarUBRc0g3tVF1bigPgE/xg4DvGySGjrewuGl7QADGOjBTefqVXAac0jbxUQCQD4XdBt5fBTGDI51t0gUbLnG2jTTmnQN3ez2qNkGupG2qPLo2XwHL1AHceh2IPUEdCrbiu2C1hw7Ka0Oe53dksa4DUWAuc0m7Dqc/Vt/kCuHCeKblhdqDa0P2t45OBDRVg0LHms/l5Xs85mUtvoWV6Z5BWDc9vmkpsgFclJNCMKpJ9RtPImUsqWndaZPVJo1wEp39FX+J4TI3vy42NbM/Q2Z9E6meGMPeAdy1tG/Jrh1U88JF7VOubi+g2kivvcXPY3xB4c9veN0eKItcS9u58OtkbfbXRKxYpBDC8uZodVamOHibWpzHU47nfbkn0uGbBYQADyN02/raaPI7eH0Xhx33esDajTPeCCXbHnz81c5ryLE35kdwyLYcvCy3Hq90rrLief2OZ806kAG52Hn7rSv0JrR4BTtqNk8jYB3+rzFepSBYS+pGNLdALT9ZjXAm93AEurSbA+yVxtSeyUZ8qGzGlrtTrGtpIaG2eYoHTvYBA28ym+dA5wJqqBLG2bLgbaX7bch4fUqVeadfPWA1tVu5upxAs19Wz/kKScx7gCAynAOskgtsXWn7XtsLvM+5OE0uhV8uLULHsI6gjmCPNQuTB4mto7nVfTw7gX53Rr8kq35WDICXAscSN2kFgscjdnoK9/oonLxi4CmltuFOdoIa4cjQdv4hXvTlVuh+F3TTI+GO9jyOx9hTzCxwwBpDtAutJNCze4b4id/1rN0Tm/YJPoRR6CievIUU6jjIouq/stH4XSz15XyROeyU5JjnDx2gnSKAptAVvzJ9eY+CkGbJpAKH6/adz96V1JOb2yjQuXrEvSBesC9cUQ5RxrqiN9NiuZ0noPeG/Be4GQ+3NdX1nFteVMJB8zbufomGA6mny7yU+8yOJ+8lOGkXq6+0106XV7Df0U2tbRW699SU75NJZAHnbd41X56Kb8aLVgJEllbtO+k0adQtu3PcKuKDkSIrGgDMud17zlr9JBAAEUcYc131XbxkHqNUfmnuHglr9nP7sAafF9RpLi+NnUCwzc7jkPRtOGyBr3UQHNLJGkfVcAXttv5ID9uYAUlDMG+Cy52ssFAuIJYZG63AeHwD6zvTqU1ZKWvy19CtJLoSMBAAaNgBQ9AkeJMEunHJphLZJd6c5kbw5rAOZBe1t9KBHVIx5Apv4TgTo5m20Ht222cavlyTOGOYvY7TGJXSSN78OcQ2NhvudJbbxXS+bHnZU1we9ld2tHvEOEh2S10UgZJDGJBqFsY+MW0vc93Lu9XI34nbjmtocNcHNa4cnNa4exwvp7VVeFcJjjgc1xc/wALpJpSSZJH93pc91ne2DTp5VsrZgCgG0Glv2AQdLLIYaHIFrf1rt9viJL4GNcuVv5kjG4bgEagBY8rur+CWuuf8BJMPxKHOUdpCGtg96R767roaO4O9A9D6okem8j1XKRbCBlLICCDRFURz59CPYmOZL9qgSPM1+ob7F3xRI4CztZ3PqareuewA9wTHJlVfMOVU7Y3kzd6JBsammx4gTv4efOvzgqr8pA7/hvEIOsvD8pg6+I479O3+KlLZr633Jv1PPatvs8tlCcWfqZIzbxxvab5U5pG/pur6JclkZryaf0NOGMpQa+RWDdD2JJ4Kk8XH1sY8faY11jl4mg7fFBwjv8A7J7xEmbasWiHc1Y6f+iln4Z8lj9E9FNWonzojNKO7UkMX0WQxfRHioOdEX3SxdCphuIfJZ/Qj5LnjJB4iK5LAmk0RVsfw/0TWfhvorYZKJRtRUZmFNZAVap+GHyTKXhh8k3XkRLo2orptehxUw/hp8kk7h58kwrolimiLlmeB4RZsbE1t196dwZBSj8MpP6OQuuUWjnQdifUQ0nnvz50RQ/19yfY+QQfEQW7DVypx6O3ry3/ACgobuLe3pQNGvwtnURydX+qmcbYAADcgNHTf/SrPuKWtSSF5Lux7jQNe4uvV9UtI0nTXVprnYU7w2PT52dyTzJ9f9lGcOg02SdRc7UTQb0AoAdNuqlYjSzL5b6IWaJLDLGfZF1VnxHSfsgu3Da6JPinFpY5IpGGPumBzXM0PfNI+QhoYxzNo2cjZ2sC+Sjp8qlE5fFa6quqpt77lEsRTLpB2oGvun6o5CLaHUWyC6PdvBp25G2x3Gym8bid9Vp/+VWucCQ0kAtBIBoOrUBfnQ+CtHA8sbFlA9RyaR7uR9Vy/E5VtELcHS6mycebUlZI1GcAl1gH2gjnuDR39oKn+7We1oxrfclojSxYmNSToVg6BcOK0jHRJJ0aknxJvKxBdGzYyc1MZse3s1Hwtje52w0ucXsOrxfVA0//AMiknBN8uIPaWnqDXvFfCjXvKshLTLO6GUEUfjLA12px7tzSHU6RhLgHE+HfUaHQqREW1KOwp3nS+QUDpLaa1rWueNPiPeFx5kf5lKQzNJLQQSOYBFj2jmFK3eziekM86Gmud5A1/i5NH51D3qMkxgWsIa7RYcXHSbG5BOl1nxUb9qseZEHMcKB2sWNQtviHh+1uOSxMLQ0Bv1Q0Addq25LkZaR2Nz2VXPiDW6ugLCKrxeNtBt7FxOwHqFgyCtyPERv1r8keikcqMiZrAPAWSSHnQeCxnhNVye7b1tYSMVm9JDtc+YaUsHFKyiv489v9UgQd7N7mtqodBz39vqhFyZg5yRdIs5U3kKsiixIzidV8uZO23M/rSzHpo0paNdkjuh2wpZoSMSdxNVLKpEeIA2RzXBro5WjYtsE6twSdqDnNNf8AvHeSQ4NiOx55onTve2YRux2SOD3M0NeH1TKa3SIx4uZaTzO82cdrq1C6Nj0NFtivyXOH+YptnRNc6OCaLvWu1PDqa9vhaRRBOrvBr6DzPsvhbtOPxXX8hKxJPZjgYjXukcRI13ePafE6PUNVteKOoCtIv8jyUiYhs0A/0Le96fW8QjBLtzZEl15HfdIiOAbu0sDWsGsu7qmbtDS8uBFeR9FIY0DS1zmObI5+kAmQE6oxqjaHN5nVR381Btt76lNk1rR7w2YiQQzuyAytZfp1xukiMLnxudGzVGdUgOkGqaeSefSsiF+ROyMyCXLx2MB1ASY3csPeQu0+Kbu9exuy0C72WXZeGZspf4for4Iw0B39I2Ul8kmttVsXEWPwgpI8MhY502oskDQ50kkr3aI2B1Gnv0tj875hptXKcIvTXkYlqbexQ9pYQQ29XjYyQwnvWwmVpfH3tDXGTy0uF2QpBuW1wsG6qxR1NJ28TK1N3vmq1wyHTLN3MT4pmRRSd1OG9zcrZI2QxzwfV0shDdtQAkFDc3Ixzxz6ZBRHdk213iaXGnN1xnZwLXAgHoVVdCK7HK4t9x4/NZYaTTy0uEZ/rC1vMiP6x5dFi6SwCNwRYPoVGzZUsZMel0xNmN3h1Bm39YAbdTtrA5aeZtMcWAwmXI0NijeWudAwABoDrkyCQB4vE55Fb15lVeGmv2+ZfFaJadyjctyemQOAc0hzTfiBsbGq/X8E0yWqjWmPU6ILiA1At8//AFtQ2USQfPe1YsiFRfEotLJHn7Eb3b8qa0u39NldW/I1K5pIT+T/AB+/4bw/IreXh+I93+J2Owu3rfxWph3CfRQ/zUsn6X2dwXEguxzkYslcwYch7o22f/cPi+IW0Dwokkg7VWktFAjfUHDc7ED3dE3xCiVeTZD4Sf7mHRxT3I7fkigS8L9Eg/hnp/H8fqWxJeFeibS8K9EjuSHIcSTKCeHeiBw/0V0l4cBd0ABZJ5AeaaZWIWiw2xV6uYAsXsNz4b5Lqk2XevoqruHHYjmOm1EVyPlvW/onTOH+inseFrvqkHZpOnetXK65cjsU7Zhei5KT7M48wrjeGei8fwj0VviwgnDeHjyXE2UPiGjX8vBvRNJOCei2WeGDyST+FDyUlOSJx4oawk4J6JtLwX0W0ZOEjyTSfhA8lNXyQxDiaZqvI4P6KPyOGV0W0cvhPoobM4X6K+GY0PVZil5mupcDy59Pb0+9LQQWARsbtpI5EdD9495VnyeHUmJxNBN/VO9gbNPXV6db9qaWTzIZdqY3xnnkW+K+QvTXnrI5J02S2313seoNH7wvRD4m/wCB9fFiMjH6jwu8x12rxDk4e1VNple+pHZ8irPE3ndWfIbqFj3+hq69u6g+IYtp7GaT6jdTRWWSu1e9Xbs7OQBzPKh5k7AfEqtxYXi5K2cCxQHs9Gu9nNm9cr/3KYzJxcSeRJcpsvsmaAv2n2k2fdZVvjCqXZ1tUrRBIvLyfU8hmr3+g60LF0ayY5ZErpnbaY0kjTOeNSciavF/D2c/Q7hRaL65sipY01kClpI1G8Q8ILjyAJPuFoQ9XPZFNqnNP4br6c3F4quWzh8F61zWFrgNm6gSAXOAcHE78yNX602fbQAedeI+bvtE++00knBLWkmiTdOc29jtbTfnt6K5LqOeFuJYIc5rw0Ndu4jbdrwOvhPiaduq8yZ+7LWlw7oj7X1m7gNGq/EN+u+x3UdJIxzQHC9wG0AXX5NtevyyS2S28w0M3D2up5DTqF2dWmq/BXYxQrKtxZ7lTNL43N8V64w5v1AXN13q5H+prbzSUhvdpB3IPtFtIvodQ+4pzmG3RjmdZd7Ghjml3xc0f5kyzjRcyMHvn7aw0lsZP9o9xGiwDqo7mghLehiEuUHNSL41ngQta0saCGNe5oJ+0RWt3qe817+dpZ7Vx9HoYhLZGysTWRik5Y01kYpxkXxkMgz+P9EvEF6Y1mwKbeybYvCnkaZRlOI3qplMh7EUuADsQCPUAj4FMmPSrZVWUThsejFjIojw/ggnRYNg6L03YBSEvB3GnMyspr2f1fjjoCgCyzFu00NzvsN14ydLxZKlGyUewrZjqQvFgPLgO8yG7AySGZwZz+o2KEhryQHW94vdvXk9zTiwxtEx8HQO7yTV3REu0bBvRYHUAoTJ4w4ytxccsM9h073jUzHgG5c5rXAvkJLWhgPUk7BSOPrkNzsYWx33e4cHOJe0ymMimHu9Nbn+skCtbl0cn+XmZ8qVvoSTuKwyBgbI13fMcWNDiHuaB4yGjxNIuj5H1UPxDFaNGOwvEUx0yM1ybMja5xIk16mgktaRv9YeqR4qQMmKZ3hDIpWh2lha50mm9cn1o3AMAA5HvJElkT6i57C0uaxmhzt2WD3h3abojR9y4vdacX/9Jwo2upJ5bXs3gYw6W+CO9FUP6toJ092Rp8NiiwHdK8FneWhsoc2XQ1zmOb9UuFuAkaS17dRI9K5nmkcPJ1Bp5agDXOrF1fvUnE7ZVOzppr8zs6uVkHPwowEHGc6zI6R0DnanSs1tL2NL3AFovYvsjWa8lKTN3Da2de97WK28y7TqP+Up6E2zJdL4GeKpXltjTpvbwODjZ21O2/uyu8zs0mV8ygInFvooD5R29xwviORW8XDst7enibjyFu9beKlfYcRaw+djxSPE7PZrNbGz5XcY0TC4B7xJkRul0tvUf6BkqZ4bju3JrjrvJfuVZGbywf4FN/8AZ2cTa+HinDzQdFPBljay+OeN0D632p+PDv8A+8XWGO1pdKCBTHtaOXWNjze/5XIr55fMq7SjB7S4rHENi4hFNw95JoB0zRNAB5uOVBAyvy19D5XL61PhlFs3OUVtnk1a4rR6cVhHr6cr/wBAkJ+GitiPehkydRSJLJ9Hcaa6LROGTIhpuHnqK/j0TF2CASaO/Pc1ttsCab7lbXNBHJRWbDXL77PReL4lwf1fquw/VktlakwAKoaa6CwNj6fxuUMiA25bnbzN3tYslSU4TKR3T+B/1XnpLRowk2KxMCdRtCj2zpePJRCSRGcJEi2MIMITePJSrchNKUBZxkD4Am8uOE575YueoyUWdUpIicrEChs3BCtMrVH5UKUnDQ/Re0UrMwVGTYSueVjqMycVRUmjaqyehTJcTQ8EXpO1dBrPi26eIR/FGRFQ5eQ8uZA/1U1xLGona/AduX2m73Vg7j4JjJw9o/xCvF+UN9VctV/FMqaaTY3C3fYhJMcl5sAeAEUSQfEfTmNvzgmeThX0U9kQWdJFOo6Hj0q9rsb1t7EgwBw6WCWmgRu01yPx94V0bWuqGa7ddCuR8P3U1wnH8d/ggN9LPiP3aViMcyUWudGy+bWjW+j07xpDWc+l8qIUxgY4aOp3uzzPqf46KV1u11Z2y1yJ3hLqU3DOoDENJ9HKs1mTdDmZOR5CVE6h2TJUTLgnKkkjKvNVpi2VLRvQQdehfSo3isQLXNPIgg+w7f6qTYUz4kNvchHan7xSMyBlfVaCNiAKAI2NAexQ8zLcW6ngANIpx527ezv0CnuIt8Tx/hNe0V/9v3KuvkAc49dZbsCSabfTeqv709Vtm7Uk49ST4a/SdJLidywucXHTsSLcbu6/8qkBOdVAXqcyMEjwtcGvk1HqeYHtIULit1kOcPCPqDkb5a9t/YFI8PkD2hrfEGybu5gFj9VEk2XVXxXJLrsrtiS8MQF1zO7nH6zj5uPVJREAOPQOcR6gc/8AzAj3BLNKbsOzWUdqDjRAAZuKJ2O4by8yl11KTOKKgB7z/iJt33krDUDyst0tcHfZOq9h1vb7wldSxe5c2WJMbvamsrE7eUhKpIuixo4LAlKSlNZXq1LZchXvFk2RMHSr1sqlyEuUk2ypQTKPjelwVBxIOKHEuWGguJoAWT6LGDOLvqtd/ie0sF7j6rvEfh1CjnTMfKY7BfC1ry38EyWGurldA/Ep1G5ScEl1RDl2THDy1vIC3VqdQBcR1dXM8/ipFuQoTHcnJk2VElti8qkK584ILSAQQQQeRBFEV1CYxTgbDl7bPxO5SOVImzX7qcY9C6FS0SfBMs39HcD3kTI7dsGSMNtD2Vy3Ybb09easuPLt7OSpVBkjMirIb3LgLJc2R40AC62kI5/hlWfElXLl5oStr8iYfPpa59F2lpdpbWpwaLIbZrV/0TvFlbLXduDi10Um+oDQ4/W/KGjvK9W+YTHFepjhGM1gpjQ0Ek0Lq3GzQ6CyTQ8yoQa/MyclaRMYkNrln5/07ceHh2C0kuysrJzpBZpjYWNhiGm63flZRv8AJA6LrThsXJfP3563aUZvaXKjaQ6Lh0UPD4yDduhaZpwR0cMnInZX5C9v6MYe7PEfkefy7PI05w3NkgliyIXGOaCVk0Mja1MlieHseL6hzQfcvqV8n/aqLivDsPikNd3l47JS0G+7l3ZPCa21NmZIz/IvlYurvmGfKLofP2byH+GYvzOGajyma3/teM23dY2NmDQP7Kc8yvf1vqZsux1+nmKmAen2I5W29iEe48JoWonOnT/PdTVXcyVfMvSHMfiOBr4texDLlUTk5KyzplBZuQvHyltnoMbHJB2Z6r1ud6qszZaTGb6o5WaXqey4x5/ql2Z/qqWzNPmnEed6o00VTwS5x5n8fcnMeTap0GcpLGzF3mYpZh6LKJLWEoTDGyE8DrUubYk6+VjSZiY5UalXhM8ph/j/ANPJQaGKplY4tGNQBBpw07XydLGHDb0r702yGbqQ4w0ij1aHu/NAd8LAHvKZ5A3Un2RqUSIbizWgazqsbN0l4PiI2pm5bsD/AJVHySMiZq1W3w+IeLUXENbWnpdDb0UrxWwA4Au0uBIFXW4NWauioXKiDnB2k6Wu10QQO8AIa4DkdiTf+FMVdV1Hod+gvit0gN62T5/WcXUPyRde4KSxyodkm6ksR6jYi6cdIlYSnUaaY6fRNS7EZ9BRiVavYo0qAoi7Z41OYQk2BO4GWgonI9akczknehN8lmyCmDWyn8bidYc2rJDXagaLd63G4Nn/AMygji0bIbrJNkepurqyOQ9wVt4vAS12n61bDYXW9Wdhyq1DTRuPJhA/KLWn4Nv70zXN6NmixEbGSHadNtDbcaPry6c9q57qV4fDpHKiSXEXe59Tz5c1hj4xsF1bcmiyAaqySNzzUhHGuTn5InOW+pkOSTc5KlqReFUiuOjEuWLnLErwrvcsSPHFN5Sl3BIytUkTQznKj53p/O1R87UxAZiN3OWcZWOlLwRFXNpIsbHEATprV7jQp4yBKyl1F5TI4R+NxoWWs3rfYvG56paONLtZ4j4XaiaAo6dLSaOs+HqT57paLHeTRDWj8JrtZI9jmUESZV4qMYWLKQpU4Q6jV/iJd9x2UVkTGN5g8dvkZ3bn+INjcGh2lzj4gCHc+Woc1yEefsVuxLuZypJjU9kiSUjCOQt5+oDYBNcyQNm+q6mMc6SBrLLW77ODzRrZvIGumrp6FTeIeSj8TGrmdRPM8rPoOjfRS2FCq5yFbZIlcAclZeGs5KI4Zj8lYODU9z2C9UbgHAgjmLDmnk5vMWOrXKWPU5y6I89m2pCfbftPFwjhmZxaau7w8Z8oaSB3kxpkEIv7Tp3xM/zhfLDiebJPLLkyuMk08sk00h+s+WV5e95rqXOJ966s+f58ooc/H7MY7/DAWZnFNJ2Mz2XiYriHb1G90xaRX9LjnmFyUvrHBsV0Y633Z5i6XNIE+4DxWbEyIczHeYsjGmZNDI3m2SNwe01yIscj6pihaxUfS75Je38PGuHQcSi0tc8aMqAO1HHy2Ad9CetWWuBPNsjD1V6wcpfOX5vHynv4FnXIXO4ZlaY86IDUW1fd5UbefeNLjsOYc8c6rvHhHGGyhskZEkEkccsOQxzXwzRyN1NdG5p3FEG/yhS0atWx+YtPcGX941sr0Vb4jERafcK4hyFp9n4okGpvOl4L0o4JKX8WC/E1cLJSKFntKgM9pV24jheir+dg+i+byi4vTPWYl8SnZVppan8zBPko2TDKsjJG1Xamho1xS8bys2YqcR4h8l1yRKUkELypHFlKbx4hTyDHKrbFbJRZK4cql8Z9qFxY1MYYUUZOQkOw1EsFhOYI7UjDhWE3Vjys6JGZK7lKDx3GqyboxytroTp7y69kZHvTPJxSpb5WR9GwZ8oukibjhsr5Imue9kbXASODWm3DQ51+lrLh0bZYmyNJLdLfE5rmFw0Nc15DwCLY5rv8y5ZjThBNrzaHsfNWyq5Ebi5zAy9LWu1lwDSH6ug8XNh6KKysMtAHkK/gdFfOC8I/ozuHBz36CGNZUbXFrG+H61AfW62kOI8F57KttxNLHzo76muTCbT7DaVM5PCCDyXkGBXRErNmk8iLRlhsUrBEscPE9FKwYypb2Zl1yEYYkoYN0+igShh3RoRd3UZQ4/v/AF+0p9i46XhhT/FgVtdXMxW2/oRz4E0yIlPTQphkRLtlTiQqu2VnLhUbNjqyZEKZSQKnsa1VxCtx0uyFSH0f0Sjcdc2WyvIp8SbSxKdfjJtLjLuzsLiEdEsO6Us7GXgxvRd5i9XEV3STkhU19FWD8X0RzEleV2WBM5cdWaTD9E3fheisVmi+N6K63FT3Gw/RS8XD/RSeJw30RK0jZlJIicbD9E8ZieinYeH+iXGF6KttiE8xEA3D9Eq3E9FOtwvRZHE9FzqUvLK+/F9EwzcKwaoHbci9g4O0nrp2r3q0y4yZy4vohNplkMhMp8jn6mmo+7c8xF1uLmzatLRprxCwdvfdJ7Dgm7O5O3KgAOgF+/4KQ4dwdwdrkEWsDbuxZLiKfI+QtBc6y7YAUHHmpWLC9FbZJdok1k9NsisfEUzw/B9E6gwwAXOIa1oJc5xAa1oFkknYChd+im+G4hNFrTR3BIokDqGEg16urmFPHxrL5KMUIZWckjDBxQ0E1ZDdWkburlYbzIVa+VDtPi9m8PN447T3sojayIu2zeIBj2Y+PDbthoDS54H1cZx3PK45sWLDH9NyhDF9GidM+aZzaxmNYXyvfNyoNBs8tjWy+enzm/lbf2h4hqiL28Kw9UXDoXDTqBI7zLkb0leWjY8mtYOd39J4PwCONHns7s8xkZLsZrTtBxefMyJ83JkMuTkzSTzyO5vllcXuNcgLPIeiYIQvSCgIQhAAuhPmtfK/9Eezgee+sKV5GFkvNDFmeb7iQk7YzncnfZc7yJLefF4rK7HCW0RlFSWmfULFnLSrLwriHQrjz5svy4B3dcE4rLTvDHgZ8jtj0Zi5Lz15Bsh9AehXU8JLStJ8l0BVbrZbp8dsgsbFQmdwyuiXwM4jZS8U7XiivD8Y9F4Wtzr6M1cbOcSjZfDPRRU/DPRbIyOHtdyUVlcNrovAZfCb8d6kjdo4l8yjt4b6fcnMXDfRWQ4PolosL0SCpkxmXECus4b6fclRgeitDMA+Sxkwq6K54ViW9C7ztldjxqT7HjpO5MelixiqVbTOSu5kP8CK1MtAaFD4D6KmH7he09GoVuXXuZGS2Q3bDCGTiZMHdNmkdA8xQvOmOWVjdcUUhqu6MjWNIO1E2qv8j2bHxLhkGVpZHqjbDPjs1aYJ4I2wT4p1tDw9rmaDYG4KuMtgrVfaDgmdwnOm4twwSZHD817peKcMjY2R8GQ5sbZM/EhbH3kttia4wtJNh1A6tvWZXBMe7q0JwyJRNpcMx2BpeXB7S492bBuPkCSBR3BPsI3WUuNDJsKB+5a+7KfKDjZUDR38fftAa+BwdDksOm9EuJIO9ieNLxRH2LtN8UPZluyxlZRZIL+iOkBxLLGtDmxllt+qXVfN5Ktr9GMSdfLykJZ04y3sumfwDqACPMKLfweuimeE8ZJq1Nt0PG4XlOJehjre6n+TNKji0mupT4uHV0TuPDU7mxsjbrLXltgHu2OlLQftFjBqLfUJY4YWC+AXQ7oYlm8xAtx16ca1KyQUV42NKvBafKznjsZwYaf42NpTmGFLaFtYnCdLm0Lzu2RmWxReQ1T2TDfwUZkY6y+IYsoy7FtM0Qk7E1dEps4trEcPJ6FZHgTfZGhHISRDCFKNg+7p03/1/wB1MfyY7yKVZwt/krI4Vz7Rf0OPKj8SEMCQlxQd/wDUjzG/nzVnbwl38UvHcIcrvZeTrfI/oRWZFeZVDio+iKzHhTvJZx8Id5V9yrjw69vSg/oWevRS7lN4O/v4mTd1NDrv+iyGGKZulxaQ5h5bg79diE6diK1t4Qb3LQKFb73vdiuXL717/JHq1NPguU+qrZBcRivMp7sJYjh/p9yuP8jerVkzhA6uauR4HmN/9t/Ql7TivMq2Nw30UnjcP9FYIsBg5utOmRsHJaWP6MZMusloUt4lvsV8YPovfoforFoajuWpiXo1Yhf1wr30X0WD8ZWPuWrF2K0qqfo9al0R1ZRV5cVIHCVpdghYnh4SU+B3r/iXRzNeZWW4ScQYXop1mAP4+CX+isAIIDgQQQRYIOxBB5jmrsb0fuslprRyeb0IiXgDJo9EtiMujedJpxMbxI2nVbTqa06hvttSkJHNjFNHoSSXONcrc46jzSk0xquvoK+AvZce/Ov+cF/XcC4RNZ8UXEeIxO/yvxMV7T7Q6UeoHUr6BwvhFWHDb7mVdfKxlf8Anf8Ay4HOkk4Bw+S8CJ4GflMdYzJmEHuI3A0cRrxu77Tm/ggF3M6ELTlLbKkgQhCidBCEIAEIQgAXTPzb/nCfR+64RxmQuxfqYvE3kufj2QGQ5ZO78bmBLzbsDbd28zIU4TcXtHHFPufVeFgIa9pDmOAc17SHNcxwtrmuGxaQQbCfY0hC4I+bv8vuTwNzcHL7zM4K539TeqfCJPikxC813fUwHY7kUSb7n7J8fxOI40efgzx5OLKLZLGTseZjkYRqilF0WOAI6ptWqaKeTlLJjzJ1seajIn0ncUwSGVixtWmi6E2jybEHREEAThsoXuoLzFnA+WfNFDau2jIABeFoOyxfKPNNJs4N6rXq4epw5XEplbrzDLxBzCjZISCn0fFmcjSV/o38jS89xL0Zt3zVoYqy0RsMZtTOIDW68ja1u9gptmcRa3qruDcBtrlzy6Eb8iLFshoTUpuOIg9U4ikBXtlW4LqIcyZGZ2AxzhIWMMg+rIWt1jYjZ9WNiR71DZnDN7AVy7kFR/HZY8eF88nJjSQANb3uALgyNgNyPoHwjfYq2vJUCEquYhuHYpBVkwjQ32A5k7AKtcFOVJJGDjudGXl00uQ5kRxy0OaI2Y8Td3fWF26jz9LmyAVRAIqiDVV7FTkZUWiddTRkCvda9DABQAAGwA2AA6AeSa5UlJCtRtL22hYEEkHltv6nmB6cviV7paFCvzwDzSUnEh5rr4NVKXM4kPWdE5JkALGPIBVZm4j6rPF4gPNPxwVGOkirx+pamvBWMkIKioMxORlrNyeEwt6NF8L9DpsLW81hLlNb5KI4hxOlWOJ8bPmr8LgVUO0Su3LLrJxVo6pnPx5o6rW+b2grqoHO7SHzW3XwqHwEpZrNq5Xado6pBnaxvmtJ5vaQ39b76TU9oXeadXDIa7C7zXs307tg0DmozO7ctGwd960dkdo3fhfeoybjrj1KlDhdS66IyzZM3i/tuPwvvXje235X3rRP8snzSkfFz5/er/Ua/gV+tTN7N7aflfelou1t9fvWjYeLmwC6ieQJolTGDxEmjex6qLwofA6sqRuaHtJfVPIu0I81qTG4kfO/enA4ufNUSw4stWSzbcXaAeaew8cb5rTkfGSNyeXM+Xv6LN3aA1YdsRt7FVLh8WWLLZuKXtDGOoTGXtU3kCtPS8cc40CnOBkPceZQuG1x7g8yT7G3cbtAHdVK43EgVrrg0TjXNW7huOa3Sd+NWhiq2TLE3JBSWTkta1z3Oa1jWlz3OIa1rWi3Oc47NbQuyoPtT2hxOG40mfnTx42LCLfLIeZrZkbGjXLKa2YwEnouFfnGfOByuOudg4ne4XBWu/qdWmfNLT4ZMwsNd31EA2GxNkAjNcIw7DSbZdfnO/OSOT3vB+CSOZibx5fFGEskyaJD4cQjdmLyBl5u3Apu7uWUIUG9ktAhCFwAQhCABCEIAEIQgAQhCABXH5K/lJ4jwLI+lYE2kOoT4suqTEyWjkJoQ4WR0e0hws0RZVPQu7A+jvyJfLdwztAxsUbvonFA25eGzOGskC3OxZaAyotidvEOoHM7TYvklBM5jmyMc5j2Oa9j2Etex7Tqa5rhu1wIBseS6X+Rb51uViaMPjbH5+KKa3PjoZ8Qsi5gToy21W+ztjZcVbGz4kHE7baUPVd7D9tOH8Wh+k8Py4cuKhr7t1SxE7hs0DwJYXejwFPkqejg1yXFQnEJ3bqenIAJcQB1JNAe0lVrtNxjFxw0ySDxkNaGeOySBvp2aN+vkUzVJLuUzi32IXN4g5vmkcbtK5polP58YytD42sdE5mpkmvUHWBpruwQW7ne+igeIcBncbaWt23G7m3fMAssfHoFpQlXJdRSSmuxZMftTYolNc3jd9VV28Iym8yw+uh3kR0f50fcUscSaiHBvSiNTem5og17N1JVVrqjjnPzJaHjJBq//VWLhPFrrdazxuyo7wvIIsjTpcWuiLeRaWt3PPn5q3cF4O4EHvJjXK3mveK3681CyMWiUJPZsXEzPCSAXkCw1unU70GsgX7Sofikjcp7HxvI7h12x4fEInFrXyyxiMlszTuBsQWNPK0rh4j9Nd69o6uAYHVpI2dp287PklMbAhc6zkue4gttphY42HA6pImBxJDj186WDk1rfQ0a5dCQ4Y1mPphMcUbZHeCWFumOWQgDxg7tlNDmTe26lbURxKJpjOP3T5AQPDboxd6g5sxI0uDvFbNxQS7HuDWhx1ODWhzqrU4AW6um+/vSSw1J72W+JoeSyKE4nk80vPOVD8QcStTGx1AXts2QPE80glRjuKHknnE2i6J8XPSPE+rAvSN63G6jXYLz0LB6gF366HTna2YKOjPlvYu3PurcBfKzV/H3fFOsTiEYIHeNtxpovqBfu2I5+YTSDh9EEgkjkT6iia5XRPxKk8WGhVbcq6V5V5Ino7ElsXMA/CPq1rnD4tFJ4c0eT/8Aw5P/AMaTLGaU9bGUlNIYiyM4jkA9H/8Ahyf/AIqrcVBN0159wb9zyCrxNikqLz+Gk9FfTYkV2Q2as4prG2nfzBGke3e/Pl5KtcQDt/ER/hA/+61tHivBSb2VY4hwA+S06rExCyDNdSM08rPmXEuJoVuXbpkWuGwLq6C7r3uFq9zdnHHok29lnn7KY54lXLIoNvJI3I5D8InqdhQHt9VkMZ59PvP+wWxYeyDz9lSGN2Kcfs/co+JFeZ3w5PyNXs4c419bb1I/+XmPan2Pwdx6E+2yttYPYUn7Kn8DsMBzb9yqllVxLI482acweAnamddvD5qWxuCOG+j7tj6kciVuSLso1vRE3Z4DkFQ86D7FqxZI1FJw5w3og+Ytt8hvpO/IJBuBW1Hc3zdd3zsm9Xqtqz9nSeib/wDCpPRSWTA54EjWhg/JB9SASfaTzWH8nPds0Ob/AISWj20NltaDskOoUhD2ajZRdQ6DbcmiaAG5NAmh5FQlmQR1Y0mas4VwGWgPrHzddnfqb8lb+BcODb7xroy00S5rtFXs4SadJb6q58O4VdlrY2sBpryRKTXO2xnS3f1Tbtl2i4bwmE5HEsyLHhI8LJS3VKWiy2HHib3uQ78kApK7P+AzXi67kjwnhbWbjezq8xyA29wVG+Wr5beGdnmGKRwy+KFtxcNhcA8Ei2vypQCMWLcHxW49Aea57+Wb51eVlB+HwRjsDFNsdnyAfT5W7C4Wg6MRtXuLduKLeS5pnmc9zpHuc973F73vJc973G3Oc47ucSSbPmsq29yHoVpFu+VX5SuJceyfpWfNqDLGPixao8TGaebYYS40fN7iXGhZNBU1CEsWAhCEACEIQAIQhAAhCEACEIQAIQhAAhCEACEIQBI9nuN5OFMzKxMibFyYz4JoJHRSDcEjUw7t23adiujvkx+d3mwaIOMYzc+IUDmYwZj5rRv4nw7Y+Qfqiho67lcwrxdUmjmj6c9g/lV4JxlrRh8QhM7t/okj/omaDVFv0eUh0o3+xqHJXODHjYK1eE8mksDR6BoFV1XyVa4gggkEGwRsQRuCD5raXYT5wXaLhgayPPflQNFDHzx9NjroGySHv2NFcmOAU/EOcp9G5ICTTTGRX1nN1uv1awgV7FmcOIC3Fg8yaYL9jjYXDJ+eFx7rh8EPtxs0/wD+9Dfnh8eH/cuB/ouZ+/rjsl5M7yo7l+gQHkWH2Fp39x5pOTg8B8lxF/PH4/8AifBP0bN/f1i/54vHjzw+Cfo+b+/pK63NX/bkvzJKFfmjtn+QoehanEHCWt5ELho/O+47+J8G/R839/QPnf8AHfxTg/8A4Gb+/KpZXEuzUPqzvh0+R3nFjAJOfhzXHUDodYNhsbgSDqvTI0gG+oXCbfnh8fH/AHXg/wD4Gb+/LIfPH4/+KcG/R839/XHLLl3S+pJKCO58rh7XeINYXi/q64rs8nFjvFy5FN54cg7U1t14mgEgeVOfRK4h/nk8f/FOC/o+b+/r3+eV2g/FOC/o+b+/q2h5Ef5tEZcrO0ZsBzrtpdYILn02gQAQwsfbBt0TPG4VIzULBaTbWl73BnoC9uoj3rjo/PK7QfinBf0fO/f1gfnjcf8AxPgn6Pnfv60o5El5FTrTOxXcFPRxb4tRDQdJ3sinO9vxXruF+i44PzxeP/inBf0fO/f15/PD49+KcF/R839/Vyy2iDpR2OOGeiWj4f6LjH+eFx78U4L+j5v7+vR88Pj34nwX9Hzv39Dy2c8FHbEOGnkWIuHR88bj/wCKcF/R839/WX88jtB+KcF/R879/VMr2yxVpHcww147h4K4bHzyu0H4pwX9Hzv39e/zy+0H4pwX9Hzv39UO63yJckTtmbggd0TSTsu0+S4w/nldoPxTgv6Pnfv6P55PaD8U4L+j537+uet5S7JfU46a2dmN7JM9EvH2WiHQLiz+eV2g/FOC/o+d+/r3+eX2g/FOC/o+b+/rvrmW/gHg1/A7bj7PxjoE4j4RGOgXDf8APL7QfinBf0fO/f0fzy+0H4pwX9Hzv39Rd2Q+7JckF5HdrMNg6BZmJoXBx+eT2g/FOC/o+b+/rE/PH7QfivBv0fN/f1xKf/KR3p5I7vewJB8QXCp+eJx/8V4N+j5v7+vP54XH/wAV4N+j5v7+r4y15kWjuZ0DViYguGv54PH/AMV4N+j5v7+j+eDx78U4N+j5v7+rPFI8p2w2Z2tzXMkYzbQWt16x1JdHeg3Y0+gN9BTflE+UvgPChfEMyD6RGPDiNJys2yCK+itJfHe+8lDnuuIu3XzgO0XEg5kme/FgcKOPgD6FHXVrpIz372+j3ELVziSSSbJNkncknqfVRdoKJ058pnzucyfXBwbGbgQmwMzJDMjNI28TId8fHdzFHX03C5y7Q8byc2Z+VlzzZWTJ9eaeR0sh3JDdTzs3fZo2HRRyFU5Nk9AhCFwAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCABCEIAEIQgAQhCAP/2Q==\n", + "text/html": [ + "\n", + " \n", + " " + ], + "text/plain": [ + "" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "from IPython.display import YouTubeVideo\n", + "YouTubeVideo('gGOzHVUQCw0')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "How would we go about understanding the _trends_ from the data on global temperature?\n", + "\n", + "The first step in analyzing unknown data is to generate some simple plots using **Matplotlib**. We are going to look at the temperature-anomaly history, contained in a file, and make our first plot to explore this data. \n", + "\n", + "We are going to smooth the data and then we'll fit a line to it to find a trend, plotting along the way to see how it all looks.\n", + "\n", + "Let's get started!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Step 1: Read a data file\n", + "\n", + "We took the data from the [NOAA](https://www.ncdc.noaa.gov/cag/) (National Oceanic and Atmospheric Administration) webpage. Feel free to play around with the webpage and analyze data on your own, but for now, let's make sure we're working with the same dataset.\n", + "\n", + "\n", + "We have a file named `land_global_temperature_anomaly-1880-2016.csv` in our `data` folder. This file contains the year on the first column, and averages of land temperature anomaly listed sequentially on the second column, from the year 1880 to 2016. We will load the file, then make an initial plot to see what it looks like.\n", + "\n", + "\n", + "Let's start by importing NumPy and pandas" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import pandas as pd\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To load our data from the file, we'll use the function [`numpy.loadtxt()`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.loadtxt.html), which lets us immediately save the data into NumPy arrays. (We encourage you to read the documentation for details on how the function works.) Here, we'll save the data into the arrays `year` and `temp_anomaly`. " + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [], + "source": [ + "fname = '../data/land_global_temperature_anomaly-1880-2016.csv'\n", + "\n", + "temp_data = pd.read_csv(fname,skiprows=4)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### Exercise\n", + "\n", + "Inspect the data by printing `temp_data`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Step 2: Plot the data\n", + "\n", + "Let's first load the **Matplotlib** module called `pyplot`, for making 2D plots. Remember that to get the plots inside the notebook, we use a special \"magic\" command, `%matplotlib inline`:" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "#Import rcParams to set font styles\n", + "from matplotlib import rcParams\n", + "\n", + "%matplotlib inline" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `plot()` function of the `pyplot` module makes simple line plots. We avoid that stuff that appeared on top of the figure, that `Out[x]: [< ...>]` ugliness, by adding a semicolon at the end of the plotting command." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "#Set font style and size \n", + "rcParams['font.family'] = 'sans'\n", + "rcParams['font.size'] = 16\n", + "rcParams['lines.linewidth'] = 3" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAoYAAAFyCAYAAABoYRvrAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdeXydZZn/8c/VNEnbNE2apk2679CAUKAooAilyOoCsrjOAI77CKOO/sZdCzqODo46IszgMgqCigiyKJvQFgEppQXKVqBb0jVt0iY5SZo99++P+zntydnyJDmnWfp9v17nleZZ7uc6zzmn58q9mnMOEREREZFRgx2AiIiIiAwNSgxFREREBFBiKCIiIiIBJYYiIiIiAigxFBEREZGAEkMRERERAZQYimSdmVWaWWWWyr7KzJyZXTWAMpYHZSzNXGQ9yv91UP6cbJQvMpIk+0yb2Zxg268HLzI5UigxlGEr5j/LewY7FskMM1savKbLBzuW4czMVpmZJqkVkT4bPdgBiIiISFo7gQqgYbADkZFPiaGIiMgQ5pzrAF4b7DjkyKCmZDkimNlRZna9mb1gZnVm1mpmr5jZ180sN8nxlcGj0Mx+Yma7g3OeNbN3pLjGWWb2lJkdMLO9ZvZLMyvpR6zzzewuM2sws4iZPWJmi/vaV8/MPhrE2xyU8zczu6iXcz5tZhuC57o1uD+j444pMrMvm9kTZlZtZu1mts3Mbjaz8r4+35hylwMrg1+/FTxXF98kamblwWuyxczazGyPmd1mZnOTlOmCZtUZZnaHme0P7uudZlYWHHOqma0ws0YzqzGzHyZ5zgf7fZnZ5Wb2nJm1mNkuM/svMytI8ZwuDa7fEBz/vJl9Itlzj/bzNLOPmdmLwWvw62D/NDO7zszWBDG2mdkmM/uBmRXGP2fgzJjnH30sj38uSeJI27/NzI4zsz8Hn6H41+UsM3vAzPYFsb8avE9CVUCYWZ6Z/YuZ/dXMdgbvq91m9lszW9jLPfuwma0PrrvDzL5jZjlJzhkf7HsjuIc15j9rxyU5dlVQ/hgz+76ZbTf/2X7KzN4S87rcHpTTbGZ/SvYZMLN/MrP7zKwquG6tmd1rZieHvDcp+xia///iV8Hzbg9+3mRmk5Mc+47g/lbH3KuHzew9YeKQI4NqDOVIcQnwEWAF8CiQj//y/DZwMnBxknNygUeACcAfgInAB4EHzOxk59yL0QPN7FzgL0AH8DugFnhncK08oD1MkGY2E3gKmALcB7wKnAD8DXgh7JM1sxuAq4Eq4OYghsuBe8zsC865HyY57YvA24HfA38G3oO/PwuBK2OOqwCuxd/LPwItwGLgE8C5ZnaSc64ubKwxVgFzgms9Hvwe/7wWBtvLgQeBu4CZwPuA88zsVOfc5rjTJgJPADuAXwEnApcBM83sX4G/BmX9DLgA+Dy+ye7aJDFeDpwN3IF/b5wD/Ctwopm9wznXHRPr9fh7WhUcfyA4/mYzq3DOfT5J+V8CTse/9g8C1cH2M4K4HgP+DjjgFOALwBlm9ragVokg7quA2XHPYVWS6/XFAvx7cx3wC2BGdIeZXQ38BP++vxeoC57HfwBvwX/+elMC/BD/Xr8f/xocjX9tzzezJc65rUnOuwZ/X+/F/2HxHuBr+O+3L8fEOAb/nn0z8Az+vTMjpvzznHNPJin/Dvx7/k9BjB8AHjGztwIPANuBW/GfgYuBYuCsuDJuxH9+HwH24V+bi/Hv2aXOudUh7k8CMzsNeAgYg3/PbAUWAZ8Kyn6zc25/cOy7gmOqg3u1H/85OgV/z+7rTwwyAjnn9NBjWD7wSYQD7glx7HQgL26bAT8Pyjg9bl9lsP0uIDdm+5XB9ptjto3C/4fcCbw5Zvto/Be5AypDPqfbg+M/E7f968F2B8yJ2X5VsO2qmG1nBtvWA+Njtpfj+yp1APNiti8Pjj8ALIrZPgZYE+xbFrO9CChJEvs/BMd+PW77r+PjTvP8lwbHLk+x/2mgDTgjbvtpwfP6c9z26D37z7jt9wXb64B3xmwvAHbjv7xjX/erYso6M+61vyfY/k8x28+LvjeBMTHbc2OOj32vRF+DhtjXIGb/FKAgyfbo++If4ravAlyKe5jwnunl/TQn5rl/Nck5xwb3fjVQFPf5+mlw3mUhXvt8YFqS7WfiP1u/iNsevWf7gQUx20uC16+RmM888K3g+F8CFld+N7ARGBV/D/F/pIyN2f6FmPdOqvfVSXHb5yZ5XhVBjI/24TX4dcy2PPwfHfuBirgyLg+O/2nMtrvxn53JSWKZ1Nvro8eR81BTshwRnHM7nXPtcdsc8D/Br0mbh4EvuEM1MeATt058LWPU6fj/uO92zj0bU34n8I2wMZpZPnApvgbi5rjd/4X/AggjWrv3DedcU0w81cD1+IT1w0nOu9U591rM8a34L1/wSV90e4MLaiHi3I5PbFLdywExs5OAU4GfO+f+FrvPOfc0vhbkAjMriju1iUPPI+oPwc/nnHN/iSmnGV/zW0JMjViMh51zj8cc3w18Nfj1H2KO+wz+i/kTwX2MHt+BT+YA3p+k/J/FvgYx5+0NYot3U/AzK/c8zm78+yfeJ/HvqaudcwcHRwSfr6/i78MHeivcOdfmnNuVZPvj+JrzVM/xJ865TTHH78cnaOPxNY5RVwKt+OTWxRz/eHD8AuBtScr/unOuJeb3O4Kfo0n9vloc9xwSajqdcxvwNZxvN7O8FM8tnXcBs4DvBmXFln0nvmY3/r53BI/4WPb14/oyQqkpWY4IZjYK+Cj+r/Fj8c3DFnPI1CSn1TvnKmM3OOc6zWwPvrkoKvol8ESSMlbjE8kwFuFrTdYESWXsdVvM7AVgWYhyTgh+rkqyb1XcMbGSNaNFt/X4ojOzs4HP4ZsJJwGx/bmS3ctMOCX4OcOST2czFV+DtxBYG7N9o3PuQNyx0Sba9UnKie6bhq8JjpVwj5xzr5pZHT3v0SlABPhnM4s/JdqndVGSa69Nsg0AM7scn4SdgG8ej/3DPlv3PNb6uD+Sok7BJ3/vCZor47WQ/LkmMLMlwL/hE7QpHLpXkLo7xvNJtu0MfhYH5U4A5gLPO+f2JDl+FXAR/t7Gf47j3yPR90e699W02I1mtgCfJJ8V7ItPBCfhE+++iH4e3pTi8zAWmGRmpc65WnxC+17gZTP7Pf45P+mcq+/jdWWEU2IoR4obgH/GN73cjf8PvB3/xfFZfEIWL9XUEJ30TISiNVR74w90znWbWW3IGKODCGpS7E8oP4UJQKtzLpJkX3XMMfESruuci5hZa+zxZvY+fD/ERnz/pkr8lz/4ZDHZvcyE6ECei4JHKvEDQZLdh84Q+xIGJZH6tdmDr3GKKsH///qtFMdDYpyQ4jU2s/8H/Gew/0F84hOtifwW2bvnvcaGf65G+trxpINzYpnZ6fiuF93Aw8AmoJmgWRXfLy+ZZJ/T6GsY/ZxG37/JkkJI87mI/xwFfxxCyPdO0C92Df7z/Si+r2IT/nlejP+Doj+vX/TzcGXao/y9r3XO3WFmnfg+sZ/HN4l3mtn9wOecc9v6EYOMQEoMZcQzP/r00/i//E+LbRYys1PwieFARL+YpiS59iiglEM1GOk0Bj8TRhOmKj+FCDDfzCYkSQ7LYo6Jl2wUYyG+r2Hs8d/CJ4InuZiBHua/Lf8tZIz9EY3h4865X2TxOumkem3K6HmPIkCLcy5Zc3Q6Ln5DMKr368AuYHFQ+xPdV0b65DOZ6ACZhFG7JP+DIWVsgQjQhe8D2dbHWGJ9BV+T9taga8BBZpas2b0voq9NWYr96T4XA/U5/B+gH3LO/S52R/D/z+KkZ/UuGus5zrlHw5zgnLsLuMvMJuIHmn0Q39w8z8xOjG1ilyOX+hjKkWAuvkbj0bi+QpC8T1FfRZua3p5k36mE/wPsNXzn8LfET/FhZmMJ/wUSHb18RpJ9Z8YdE+v0JNuizym2OW0+sMEljv49Ed98NRBdwc9kScua4OepA7zGQCTcIzM7Bt+0G3uP1gDTg1HmA1WKT9iejk0KA6nev11BbMnuY7TpcHqSfSf2I741+Nfrzf04N9Z8YF+SpLAs2NdvwR9IW4GKZNO4kP5zMVDR2O+P3Rh8pk8aQLn9/jw45+qcc/c55z6Ir6VdjO+vKKLEUI4I0SaS0yymw5eZHYWvpRiop/DNqZeY2cEvxyC5+3bYQoLalj/hp1/5ZNzuf8X3Qwrj1uDntWY2LiaeKfgavU7gt0nOu8LMFsUcP4ZDnetvizluG7AwKC967ATgv0PGl050UEtC0uKcewb/ZfgRM3t3/H4zyw2aI7PpPDOLJhHRGuF/D36NvUc3BD9/mWQwDGY218KvHb2XoIY2SCaiZUwFvpvinJT3EXgOX/v3/mDAU7S8t5B8UFJvbsInojcGMfVgZmVmVhGinG1ASeyxwaCMn5K8Wb+vbsXXfl8XF9/p+CbdzfjPcqZF//85mMQH/w99l/CtAMncgx+o9uXgtevBzMYGNZLR35fFvt7BttEcapJujdk+38wWWZI5XmXkU1OyjAQnWerF5R9xzv3WzP6E73j9rJmtxHcAfw++L9OlA7m4c67LzD6Fn/vvcTOLncewnb51Kv8yfp68G8xPpL0B3yH+bfhO8W/nUFNgqnhWmdn/4JvPXw6eex5+vrYpwL8lqe0DP8fbM0HH9Aj+/hyFH628Iua4n+KTwOfM7C58/6gL8E2dCaNK++h1/P36gJk1EzTBO+e+F+z/EH4k531m9gS+hqcT3//s7fiEKNRAh356AHjYzO7AP9dz8bU+q/DT8hDE+4CZ/Qf+D49NZvYwfh7FyfhpSk4NnktlbxcM+qn+L75f2PNmFh01/S78nH9HJzltJX6uxjvM7CF8TfSTzrknnXM7gtftMvzn4a/4BPIi/IjsZHN6povvJTO7Bv++eMPMHgie10T8QKDT8f0PN6QsxPspfj7Cp4L724kfiZyLr43tb5Nr1Pfx9+xTZnY8/t5Nx48Ob8VPN5T2s9VP/4ufQ/Xu4Hk14N+rc/Hvm6X9KdQ51xYMSHoQWG1mj+BHb4/Gz5JwJn56p/ODU36IH7i1Cv/65ODv75uA2+IG5TyG/0zNJcR7VEaYwZ4vRw89+vug5/xqqR4/Do4tBH6MH3zSCrwC/Av+P74e84MFx1eSYu7BVPvwI4b/jq/dqQH+D/8FnrKsFOUvwNccRoLHI/gvxfuDWCfGHHsVSeakwzedfxw/ZcUBfGf3J4BLklxveVDGUvwAnWiTdiX+C310krI/g/8SasHXWvx3cI8Tnit9mMcwOP6tQaxN0dcxbv8k/MTJ0etH8EnHL4Gz4451wKok11hKivkSY+9HsvuMnyPu+eDau/FfuAlzDAbnXYBPtmrxfyTsxM+L9wWgNN0148rJA76JH5DRiq/dWh5sT3iO+GTqv4LXpjP+ueIHJPwPh2ojn8EnEAnvJ5LMoZcixtOAO4N70o4f0LE6iHtWyNf+fcG9PRCc/2t8/79VSd4HKe9Zqn3Be/S7wX1sx893eDe+72Z8GQnX7O/7Cv/H3t/x/Yj34edHXUiSz0ZfXwN8E/BPg/dEG35+xZfwtdaxc2W+Hz+dzubg/u7D18B/ksTPeGV8XHocOQ8L3gQiMoQFTZZbgHHOuYE0P0k/mF8i7lfAR5xzvx7caEREskd9DEWGmGT9tPB9A2fjJ3EWERHJCvUxFBl6NpjZGnxT6Sj8JNKn4OdgWz6IcYmIyAinxFBk6LkZP3DlFGAcvq/VL4HrnHNh5kMUERHpF/UxFBERERFAfQxFREREJKDEUEREREQAJYYiIiIiElBiKCIiIiKAEkMRERERCSgxFBERERFAiaGIiIiIBJQYioiIiAigxFBEREREAkoMRURERARQYigiIiIiASWGIiIiIgIoMRQRERGRgBJDEREREQGUGIqIiIhIQImhiIiIiABKDEVEREQkoMRQRERERAAlhiIiIiISUGIoIiIiIoASQxEREREJKDEUEREREUCJoYiIiIgERg92AENdaWmpmzNnTlav0dzcTEFBQVavMVLoXoWnexWO7lN4ulfh6D6Fp3sVXth7tW7dulrn3OT+XmdYJIZmNgP4EnAysBgYC8x1zlWGOLcSmJ1k13udc/f0dv6cOXNYu3Ztn+Ltq1WrVrF06dKsXmOk0L0KT/cqHN2n8HSvwtF9Ck/3Kryw98rMqgZynWGRGAILgPcB64AngHP7eP7DwPK4ba8PPCwRERGRkWO4JIZ/c86VAZjZx+h7YljrnFud+bBERERERo5hMfjEOdc92DGIiIiIjHTDIjHMgHeb2QEzazOz1WZ28WAHJCIiIjLUmHNusGPok6Ap+eeEH3xyA/AssBUoA64GzgT+0Tl3W4pzPgF8AqCsrGzJ73//+8wEn0JTUxPjx4/P6jVGCt2r8HSvwtF9Ck/3Khzdp/B0r8ILe6/OOuusdc65k/t7nRGfGCY5PwdYDZQ752b2dvzJJ5/sNCp56NC9Ck/3Khzdp/B0r8LRfQpP9yq8PoxKHlBieKQ0JR/knOsC7gRmmNnUwY5HREREZKg44hLDgAU/h1d1qYiIiEgWpZyuxsy29aM8B7zTOfdy/0PKLjMbDVwObHPOVQ92PCIiIiJDRbp5DGcADwA1IcsaBfwDkDfQoJIxs8uCfy4Jfl5gZjVAjXPu8eCYTuAW59xHg98/CFyEfx7b8YNPPhOU8cFsxCkiIiISb8eOJqZPL8DMej94EPU2wfV1zrk1YQoKauL+ceAhpXRn3O83BT8fB5YG/84JHlFbgSnA9UAJcAA/Qvl859zDWYtUREREJNDe3sVllz3An//8bkpLxw52OGmlSwy/ga9lC8U512lm3wB2Djiq5OX3mmLHHxOsdrIsG/GIiIiIhLFmzR7mzy8a8kkhpEkMnXP/3tfC+nOOiIiIyEi2YsUOli2bMdhhhJJ2VLKZHWdmKZ+Jmc00s+MyH5aIiIjI8Nfd7VixYjtnn93r1MlDQsrEMFg2bi0wOc35k4C1ZnZhpgMTERERGe5eeWUf48fnMmfOhMEOJZR0NYYfAX7nnHs+1QHOuReA24GPZzowERERkeHONyMPj9pCSJ8YngLcH6KMPwOnZiYcERERkZFjOPUvhPSJYQmwJ0QZe4NjRURERCSwbVsj+/e3cvzxpYMdSmjpEsM6oDxEGeVAfWbCERERERkZVqzYzrJlMxg1amhPah0rXWK4Br90XG/eFxwrIiIiIoHh1owM6RPDm4DLzexzqQ4ws88DlwI3ZjowERERkeGqrq6V116r49RTpw52KH2SboLrB83sR8APzewj+IEoVcHu2cC7gTcBP3bOPZT1SEVERESGiVWrdnLaaeXk5+f0fvAQknatZOfcF8zseeArwFfjdm8ArnDO3Z6t4ERERESGozVr9nD66dMGO4w+S5sYAjjnbgNuM7OpQHQinu3Oud1ZjUxERERkmNqz5wDTp48f7DD6rNfEMCpIBJUMioiIiPSitraF0tIxgx1Gn/W2VvJ0M3uvmb3pcAUkIiIiMtzV1rZSWjp2sMPos3RrJb8XeBH4MPCImX3jsEUlIiIiMky1t3fR1NRBcXH+YIfSZ+lqDP8L+Ffn3GXABcC3zEwrnIiIiIiksX9/KyUl+cNqYuuodIlhMVAd/HtPcGxh1iMSERERGcaGazMypE8MbwZuMLPPAL8HVjnnqtIcLyIiInLEG64DTyD9BNdfMbP1wNuAe4D/PWxRiYiIiAxTPjEcnjWGvU1w/Xt8baGIiIiIhDBSm5JFREREpI+Gc1NyuulqrjCzSX0pLDhn4sDDEhERERmeRmqN4a+AeWELMrOc4Jy5Aw1KREREZLgaqX0MDfiYmV0Qsiw1S4uIiMgRr6Zm+DYl97ZW8scPSxQiIiIiI0RtbSuTJ4+wGkPnnGoARURERPqgubkDcIwb11vd29Ck5E9EREQkQ6IDT8yG33J4oMRQREREJGOG88ATUGIoIiIikjHDeQ5DUGIoIiIikjHDeQ5DUGIoIiIikjGqMRQRERER4AjpY2hmT5nZP5pZfrYDEhERERmujpSm5A7gFmCXmf3QzBZlMSYRERGRYemIaEp2zi0FKvDJ4RXAK2a2yszeb2a5WYxPREREZNg4UmoMcc697pz7V2A6cBWQA/wW2GFm3zOzedkJUURERGTo6+527NvXyqRJI7zGMJZzrs059xvgs8ATwGTg34A3zOxOMyvPcIwiIiIiQ15DQxsFBaPJy8sZ7FD6rU+JoZmNNbN/MrM1wLP4pPCzwDTg08BbgdszHqWIiIjIEDfcm5EBQq3wbGbHAZ8EPgwUAPcCX3LOrYw57OdmVg3cmfEoRURERIa4mprhPVUNhEwMgfXALuDHwM+cc7tTHLcJeDoTgYmIiIgMJ8N9RDKETwwvB+5xznWlO8g5twE4a8BRiYiIiGTAnXdupKmpg4985JisX2skNCWHna7mrt6SQhEREZGh5tln9/Dii7Whjt26tYFf/OKVfl9rRNcYmtk3+1COc859OwPxiIiIiGTMxo0N5ORYqGOffXYvf/zjJj72sWP7da3a2hYWLZrYr3OHinRNycv7UI4DlBiKiIjIkNHZ2c3WrQ2MGROu51xlZYTt2xtpaelk7Niwve0OGdFNyc65UX14DN8Je0RERGRE2ratkbKycXR3O+rr23o9vqqqEedg8+aGfl1vJDQl93mCaxEREZHhYOPGehYuLGbGjPHs2NHU6/FVVRGOPrqYjRvr+3W9EV1jKCIiIjIcXHHFI0lrBKOJ4axZhWzfnj4x7OzsZseOJpYtm9mvxLC9vYumpg6Ki/P7fO5QEjoxNLNPmNnzZnbAzLriH9kM0sxmmNkNZvZ0cH1nZnNCnjvKzL5iZpVm1mpm683s0mzGKyIiIodHU1M7a9fuZd26vQn7YmsMt29vTFvO7t3NTJo0luOOm8SmTX1PDPfvb6WkJJ9Ro8INdBmqQiWGZnYFcAN+GbwxwK+A24AIsBm4LlsBBhYA7wPq8Osz98W38QNpfgpcAKwG7jSzCzMZoIiIiBx+O3Y0A6RNDGfO7L0pubKykTlzClm4sJiNG/vex3AkNCND+BrDzwH/gV8PGeAm59yVwDygBdiXhdhi/c05V+acu5A+LLlnZlOALwLfc879wDm30jn3SWAl8L0sxSoiIiKHyY4dTRQX5yckhq2tneza1czs2YXMnFnYa41hZWWE2bMnMHVqAY2N7TQ09D5YJf784T7wBMInhguBvwHdwSMPwDlXB/w78NmsRBdwznX389Tz8LHeFrf9NuA4M5s7oMBERERkUO3c2cQ558xk06Z6DhzoPLh9y5YIs2YVkpeXEzQlp68xrKqKMGdOIaNGGQsWFLNpU++1hps3N3DTTS/y3vf+me9/fx0XXDBnoE9n0IVNDFuAUc45B1TjawqjmoBpmQ4sQ44F2vBrOMeKTmue/fVxREREJGt27Ghi3rwiFi0q6bHCyaZNvhkZYOrUAmpqWmhvTz0koqqqkdmzJwCwcGFRrwNQtmxp4MMffpiGhna+9rW3sGrVJVx00by05wwHYRPDl/D9/MD38fuqmZ1mZm/G9997LQuxZUIJUB8ktLH2x+wXERGRYWrnziamTx/PkiVTejQnR/sXAuTmjqKsbBy7djWnLMc3JRcCsHBhca8DUP7yl0ouvngeX/nKyZx88hRyckbGRC9hp/X+GYdqCb8BPAo8GfzeCFyc4bgyxfCrsiTbnvoks08AnwAoKytj1apVmY8sRlNTU9avMVLoXoWnexWO7lN4ulfh6D6Fl4l79frre6iu7iA3t4tHH23i2GN93c/q1bW87W0FrFrlh0GMH9/BX/7yd449NrEfYEeHY8+eZjZvXkdlpXHgQCvPPhth1aoDSa/pnOOuu/Zw5ZUTD9trfdjeV865Pj+AAuAdwHuA0v6U0d8H8DF8sjcnxLHfB1oBi9v+lqCMd/ZWxpIlS1y2rVy5MuvXGCl0r8LTvQpH9yk83atwdJ/CG+i96u7udied9DvX2Njm6utb3ZIlv3Pt7V3OOeeWLbvbVVZGDh77zW8+7X7729eSlrNxY5274IJ7Dv6+d+8Bd9ppf3Dd3d1Jj3/llX3uHe+4O+X+bAh7r4C1bgB5Vt8XAvTJZDO+1nCoewXIB+bTs59htG/hq4c9IhEREcmI/fvbyMsbxfjxeQDMmDGeDRv2M2/eBOrrW5kxo+DgsbNmFbJtW/IBKH6qmgkHf4+OLq6tbWXy5MQpaB58sJILLpiD2fCeszCZPiWGZjYTmImfy7AH59yKTAWVQQ8B7cCHgWtjtv8D8LJzbuugRCUiInIE6OzsZvTo7PW927GjiRkzxh/8PdrPsLvbMW9eUY9+fzNmjOeFF2qTFUNV1aH+hQBmdnAASnxi6JzjgQequPHGpZl9MkNEqMTQzOYBt+ObYOFQHz3HoX58ORmPrmcMlwX/XBL8vMDMaoAa59zjwTGdwC3OuY8COOf2mtmPgK+YWSPwHPB+YBlwUTbjFREROZI1N3dw/vn3smLFJeTmZic5jA48iVqyZAoPPFDJ+PG5BweeRM2cmXr1k8rKCMceO6nHtugAlLe+dWqP7evX1zJ2bA5HH92z/JEibI3hL4BZ+ImuX8PXwh1u8RNb3xT8fBxYGvw7h8QE9Wv4KXU+C5QDrwPvc87dn50wRUREZPfuZvbta2XLlgaOPnpiVq6RrMbwO995lvLyAhYsiE8M/XrJzrmEJuCqqkbe+c6eUxsvWFDMK68krt/xwAMjtxkZwk9X82bgX5xzNzjn/uqcezz+kc0gAZxzluKxNO6Yq+LO63LOfcc5N9s5l++cO94598dsxysiInIk27PHj+h99dX9vRyZqLm5gxtvfJHu7mQTixyyc2fPxLCsbBzjx+eyYsX2hBrDwsI88vJGsW9fa0I5lZV+cutYyZbG6+rq5qGHqrjggtl9fUrDRtjEcAeDU0soIiIiw1B19QHMYMOGvieGTz65ixtvfJE//Wlz2uN27OjZlAy+1rC6+gALFxYlHD9rVmHCmslNTe00N3cwZcq4HtsXLChi06b6Hsnp2rV7KS0dy7x5iWWPFGETw+8CXzKzgl6PFBERkSNedfUBTjhhcr9qDJ98cheXXE3sY58AACAASURBVDKfH/3oefbvT6zhi/JNyT1TkyVLJlNYmEtZ2biE45MtjbdtWyOzZvml8GIVFeVTWJjH7t1+Uuyurm7uuWcLF144p8/PZzgJ1cfQOfcbM1sEVJrZaqAu8RB3ZcajExERkWFpz54DnHnmdH7+81fo7nYJiVcqzjmefHI3v/rVOygszOUHP3iO7373rQnHdXV1U119gGnTetYYnnHGdHbvPpC0D6DvZ9hzAEpl5aGl8OItXFjE3XdvZv/+Vh57bDuTJo3l858/IdTzGK5C1Ria2VXAV4Bi4CTg7UkeIiIiIoCvMTz66GKKi/PYti35aOBkNm1qIC9vFLNnF3L11YtZvbqaNWuqE47bs6eFiRPzyc/vOeZ0ypRxXHPN4qRlz5w5PqEpOXYpvHinnFLOk0/uYvr08dx667n86U/vTGhyHmnCNiVfC/wJmOycm+6cmxv3GP6rRouIiEjGVFc3U15eQEVFSZ/6GT7xxC5OP30aZkZBQS5f/erJXHvtGtrbu3ocFz/wJIwZM8YnJKl+4EnyGsOPfvRY7rjjAj72sWNTHjPShE0MJwE3OefSrygtIiIigm9KLisbxzHHlPSpn+GTT/rEMOrss2cyZ04ht9yyocdxyQae9GbmzMTBJ1VVjUdM0hdG2MTwSaAim4GIiIjIyNDc3EFHRzdFRXlUVExkw4b4oQmpz3vxxVre8payg9vMjM9+9gR+97s36OrqPrg9fg7DMMrKxlJf30ZraycAW7c2sHVr4lQ1R7KwE1x/FviDmdXhl5lLeIWdc90JZ4mIiMgRp7ra1xaa2cEaw2QTS8d79tk9HHdcKQUFuT22H3XURCZPHstTT+3mjDOmAz4xPOWU8j7FlZMzimnTCvje99bx3HN7aWho5wMfOIri4vy+PcERLGxiGK2/vTXFfteHskRERGQE27PnAOXlfhqZyZPHkZNjVFcfYOrU9LPe+WbkqUn3XXLJfO6+e/PBxND3Mez7LHrvfvdcIpEOrr32VBYvLg09WvpIETaZuw6f/ImIiIikVV19gPLyQ6N3o7WGvSWGTzyxixtuODPpvgsvnMMPf+jnNSwpGdOvPoYAn/708X0+50gSdh7D5VmOQ0REREaIPXuae0wwHR2ZfPbZM1OeU1XVSFtbV8JSdlGFhXksWzaT++7bwgc/eDR1dW09kk/JjLCDTw4ys/FmNlOroIiIiEgyyWoMe5uyJjoaOV0/xEsvnc9dd21m164mysvHkZPT5zRGehH6jprZeWa2FqgHKoEGM1tjZudkKzgREREZfuITwzAjk+OnqUlmyZIpdHZ288ADVf1qRpbehV355DzgL8B44NvAPwPfAQqBB5QcioiISFR0DsOoGTPG09zckXLdY+cc69fXsmTJlLTlmhmXXDKfW27Z0OepaiScsDWGy4FHgGOcc9c6524O+h0eC/wVvzKKiIiISEKNoZmlXQFl//42nHOUlo7pteyLL55HS0unagyzJGxiuBi4MX6uwuD3m4CRvaK0iIiIhNLc3EFbW1fC3IAVFalXQNm8uZ7584t6necQ/PQ3558/m0WLkg9SkYEJO11NG5BqvZjCYL+IiIgc4fbuPTS5dayKiomsWrUz6TmbNzcwf35R6Gtcf/3pA4pRUgtbY7gK+LaZzY3daGaz8M3MKzMbloiIiAxH8c3IUenWTN68OdKnxFCyJ2xi+CWgCHjdzP5mZneY2ePARqA42C8iIiJHuFSJ4dy5E6ipaaGpqT1h3+bNDcybp8RwKAiVGDrn3gCOB34C5AMnAWOA/wZOcM5tzFqEIiIiMiQ456ivT997LH5EclROziiOOqqY115LnLYm2sdQBl/oeQydc7udc190zp3inFsY/Pw359zubAYoIiIiQ8MLL9Tymc+sSntMqhpDiE503TMxbGhoo6WlS6uYDBGaMlxERERC2b27mdralrTHVFc3U16efHG0ioqJCf0Mt2yJMG/ehFAjkiX7wo5KxsyuBD4IzMI3I8dyzrn5mQxMREREhpaampZ+NyWDrzG87bbXe2xTM/LQEioxNLNv4Cexfhl4AU1PIyIicsSpqWmhsbGDzs5uRo9O3uiYril5wYJitm1rpLW1kzFjfArS16lqJLvC1hh+FPhv59znsxmMiIiIDF01Nb4ZORJpp6QkcZWSlpZOWlo6mTgxP2EfQF5eDnPmTGDjxnqOO64U8FPVvOUt5dkLWvokbB/DScD92QxEREREhrZo/8JUzcnRZuR0/QXjV0BRjeHQEjYxfBy/LJ6IiIgcoWpqWhg3bnTKxDBdM3JU7Mjk1tZu6upamT49+WAVOfzCJoafAz5iZleYWamZjYp/ZDNIERERGXw1NS0sWFDca41hOhUVE9mwwdcYVld3Mnv2BHJylEYMFWH7GL4R/PxViv2uD2WJiIjIMNPe3kVzcydz5hRSX5+4egn46WxSTVUTdfTRE9m0qZ6Ojm6qqztYsEDNyENJ2GTuOnzyJyIiIkeg2tpWSkvHMHFiftoaw4ULi9OWU1CQS3l5AVu3NlBd3cmiRUoMh5JQiaFzbnmW4xAREZEhrKamhdLSMRQVpU8MTz99Wq9lRfsZ7t7dwYUXKjEcStSoLyIiIr2qqWlh8uSxFBfn09CQOjGcMmVsr2UtWuRXQKmu7tSI5CGmLyuf5AEXAEeTfOWTb2cyMBERERk6amtbKC2NJobJ+xjW1rYyeXLvieExx5TwyCMvUFfXyaxZhZkOVQYg7Mon04AngTn4vobRCYpi+x0qMRQRERmhYmsMkzUld3X5qWeSTXwdr6KihJde2kd5+Whyc9V4OZSEfTWuB2rw6yQbcAowD/h3YFPwbxERERmhamt9YlhUlJc0Mayvb2f8+Dzy8nJ6Lau4OJ9p0wqYOjU3G6HKAIRtSn478EVgV/B7t3OuEvimmeUAPwEuynx4IiIiMhT4wSepawx9U3PvtYVRFRUl5OXVZzJEyYC+LIm3yznXDTQDE2P2rQCWZjguERERGULim5Kd6zmLXbQPYlif+tSbOO00rXgy1IRNDHcApcG/NwPnxux7C9CayaBERERkaIkmhmPHjsbMaGnp6rE/Os9hWMceO4nSUq2NMdSEfUVWAmcC9wA3Azea2QlAB3BesE1ERERGoO5ux/79bUya5BO/6JQ148YdSiP6WmMoQ1PYxPDrQAmAc+5/zGw08H5gHPCf+JVRREREZASqq2ujsDD34MCS4mI/AGXq1ENNwX5wSvp1kmXoC7vySS1QG/P7DcAN2QpKREREho7owJOoZANQamtbqagoOdyhSYZp8iAREZER7okndtHW1tX7gSlE+xdG+WXxek5yrabkkUGJoYiIyAjW3e343Oce5w9/2NjvMqJzGEYVFeUlLItXUxNu1RMZ2pQYioiIjGDV1QcA+PnPX+bAgc5+lRFfY5i8Kblv8xjK0KTEUEREZASrrIxw/PGlvPnNZfz2t6/3qwzfx/BQ0hcdlRzV3t7FgQOdFBXlDzheGVxKDEVEREawLVsamDNnAp/5zPH8+tev0tjY3vtJcZLXGB4qp7a2lUmTxjBqlGUkZhk8fU4MzWy8mc02My1wKCIiMgRs2lTPffdtSbqvsjLCvHlFzJtXxBlnTOfWW1/rc/nxfQzjm5L9fjUjjwShE0Mze5eZPQc04Fc/OS7Y/gsz+1CW4ou9/kwz+6OZNZhZxMzuNrNZIc91KR4nZDtuERGRbHvooaqUCd+WLRHmzp0AwKc/fRy33/560rWO04mfrqaoKC8hMdSI5JEhVGJoZhcD9+LnMvxS3HlbgSszH1qP64/Dr8m8KLjWPwILgZVmFnahxV8Dp8U93sh4sCIiIofZiy/W8sYb9bS3J05Js3XrocRw5sxCzj13Fv/3f6+GLts5F6LGsFWJ4QgRtsbwW8CvnHPnAj+O2/cy8KaMRpXo48A84GLn3D3OuXuB9wCzgU+GLGOnc2513ONAtgIWERE5HLq7HS++uI/i4jw2b27osa+5uYOGhp4rlFx55SL+/Oetoctvbu4AjIKCQz3IkjUla0TyyBA2MawA7gj+7eL21QGTMhZRcu8BVjvnNkU3OOe2Ak8BF2X52iIiIkPW1q0RioryOPXUcl59dX+PfZWVEWbPLuwxKGTGjEJqa1vp7OwOVX78wBOACRPyaGrqoKvLl6Eaw5EjbGIYAUpT7JsD1GQkmtSOxddMxnsFOCZkGZ82szYzO2BmK8zs7ZkLT0REZHC88EINixeXUlFRwoYNdT32+Wbkoh7bcnNHUVKSz969LaHKr61NnLh69OhRFBTk0tjYERyjPoYjRdjE8K/AV8ysOGabM7N84GrgwYxH1lMJvmYy3n5gYojzbwP+GXgH8Al8DecKM1uaqQBFREQGw/r1tSxePJljjilhw4aeNYax/QtjlZcXUF3dHKr8ZDWG0HMAipqSR47RIY/7GrAGeB14AN+c/GXgeKAIuDgr0fUU34QNEGrCJOfcP8b8+oSZ3YuvgfwOcHpCoWafwCeQlJWVsWrVqj4H2xdNTU1Zv8ZIoXsVnu5VOLpP4elehRN7n/bv76S93VFennyGtw0bWqmoGFhC9fe/V7NgQYR9+0bz6qu1rFix8mDT8TPP7GPx4rGsWtWzbmX06GZWrFhLJDKu1/KffrqR1tauhNc+J6eNlSufZu7cfLZvr2Pz5heJRMKmFZ7eU+EdtnvlnAv1AGYAvwR2AO3AbuBXwMywZfT3AewBbk6y/Sagpp9l3gS09XbckiVLXLatXLky69cYKXSvwtO9Ckf3KTzdq3Bi79OPf/y8W758ddLj2to6XUXFb1xTU3u/rxWJtLmTTvqda2/vcs45d845f3KbN9cf3H/xxfe7V16pTTjve99b637xi5dDXeP669e5n/3spYTtH//4Y27Vqu2uu7vbnXjib/v1PPSeCi/svQLWugHkXKFSezMrChKwj2Y0Kw3vFXw/w3jHAOHH3PdkJK+FFBERyYht2xrp7k7+VRNtho1E2nuM+O2Ll17axzHHlJCb63uGRZuT580rorvbUVXVyOzZiU3JU6eOY9u2plDXqK1tYcGCooTtxcV51Ne309zcwahR1u/nIENLr30MzWw0sA84N/vhpHQfcKqZzYtuMLM5wNuCfX1iZhOAdwLPZCg+ERGRBNu2NaacTLquzm9vaOj7EnVR69f7gSdRixZNPDgyeffuZoqL85MmbFOnDryPYXTKGo1IHll6TQydc534ptzEWTMPn58DlcC9ZnaRmb0HP+H2duDm6EHBUn2dZvbNmG1fNLOfm9mHzGypmV2Jn+amHPj6YX0WIiJyxHDOpU0Mo9sbGvq2CkmsF16o5YQTDiWGvsbQ9yeMXfEkXnn5OHbvzlRiqIEnI0nYUcm3AR/LZiDpOOeagWX4lUp+A9yOX3FlmXMuti7cgBx6Pq/X8U3OP8GPrv5hcO7pzrknsh+9iIgcierr22hq6jhYMxhvoDWGzjlefLG2R41hRUUJr766H+cclZXpEsMCqqt7X+PBOcfevcmnoikuzqehoZ2aGtUYjiRhhw9VAh8ys2fxNXW7ieuf55z7v8yG1pNzbhtwaS/HVBI3Utk5dz9wf/YiExERSbRtWyMLFhRTWRnBOYdZz4k0BlpjWFkZoaAgl8mTD40snjx5LPn5Oeza1cyWLQ0sWFCc9NxJk8bQ3NxBa2snY8akTgU2bWpg/PhcJk7MT9jXs8ZQieFIETYxvDH4OR1YkmS/A7KaGIqIiAwnVVWNLFxYxI4dTRw40JnQ16+urhXof43h+vU9m5GjKiomsmHDfrZujXDOObOSnjtqlFFWNo7q6gPMmZO8VhHgsce2s2zZjISkFtSUPFKFbUqe28tjXupTRUREjjzbtjUya1YhEyfmJ21OrqtrY9KkMf2uMXzhBT+xdbxoP8NUk1tHhelnuGLFdpYtm5l0X3SC62Qro8jwFSoxdM5V9fbIdqAiIiLDSc/EsDVhf319G3PmTBhAjWHPEclRFRUlrFmzh6amDsrKUk9g7Ucmp+5nuGfPAbZvb2LJkilJ96vGcGQKW2MoIiIifbBtW9PBxLC+PjH584lhYb9qDJubO9i2rZFFixJXhT3mmBLWrdvL3LkTDq6Akkx5eUHaGsOVK3dwxhnTD86RGM8PPlEfw5Em7ATXW+llMmjnnJqTRUREAtEaw+Li5DWGdXVtnHJKOU88savPZb/wQg0VFSXk5eUk7Js2rYAJE/LSNiODb0qOznmYzGOPbeeyyxak3D9u3Gg6Ohw7dzYrMRxBwtYYPp7k8TIwIShjVTaCExERGY4aGtpob+9i0qQxB5tc49XVtTF7dv9qDNet25uyidfMqKgo6TUxTDfJdWNjOy+8UMvpp09Leb6ZUVycRyTSTkmJmpJHilA1hs65q5JtN7Ni4CHg0QzGJCIiMqxt3+6bkc0s7eCT2bP718dw3bq9fPSjyVaK9a68chHTphWkLWPq1HHs2pW8j+GTT+7ipJMm97rMXXFxPl1dLmVzsww/A3olnXP1wPXAN3s7VkRE5EgRbUYGmDhxTEJi2NbWRWdnN9OmFfS5xrC9vYuXX97PiScmjkiOWrp0Bkcdldj/MJaf5LoZ5xJ7iq1YsYNly2b0Gktxcb6akUeYTKT4rUDv7x4REZEjRGximKwpub6+jYkT8w/202trC7/q7Cuv7Gf27EIKC/MGFGNhYS5mRmNjR4/t7e1dPPHErlCJYVFRvkYkjzD9TgzNbLSZnQAsB17JWEQiIiLD3LZtjcyeHa0xTEwM6+p8YmhmFBXlEYmErzVM17+wL8ws6VyGa9fuZc6cCT1WVEmluDhPNYYjTKjE0My6zawr9gG0AeuABcDnsxmkiIjIcBJfYxjflFxX10pxsV9mrqgo+XQ2qWQqMQTfzzB+AIqf1DpcQ2BxcT6TJqnGcCQJuyTedSROV9MKVAEPOucaMhqViIjIMFZVFdvHMHG6mvr6toOJYXFxXugBKN3djuefr+G6607NSJxTpxawe/ehAShdXd088sg2brnlnFDnX3bZwozEIUNH2FHJy7Mch4iIyIjQ2tpNc3PHwWXifB/DdpxzB9cc9n0MfU1bUVFe6AEoGzfWU1ycn7El6OKbkteu3cvkyWOZO7co1PnR5nIZOcI2Ja8ws0Up9h1lZisyG5aIiMjwVFPTycyZhQdXHcnLyyE/P4empkODPKJ9DME3JYetMcxkMzJERyYfqjF84IFKLrxwTsbKl+En7OCTpfjJrJMpBM7MSDQiIiLDXE1N58Fm5Kj4ASh1dW0xfQzD1xhmOjGMneS6o6Obv/51O+efPztj5cvw05dRyamWxJsPNGUgFhERkWHPJ4bje2wrLs7rMQAlto9h2BpD51wWagzHHawxfPrp3cydO4Hp08f3cpaMZCn7GJrZR4CPBL864Gdm1hh32FjgTcBj2QlPRERkeKmp6eSEE3rWGBYX95zkumdTch579tT3Wu7Onc10d7uEpHMgoolhd7fjwQeruOAC1RYe6dLVGHYDXcHD4n6PPvYB/wN8NLthioiI9F9bWxeVlZHDcq0wTcnRCa4hfI1htLYwOoAlE8aMGU1hYS67dzezcuUOzjtPieGRLmWNoXPuFuAWADNbCXzaOffa4QpMREQkU556ahe33/46v/zlO7J+rZqarqSJYeyUNf3pY5jpZuSo8vIC/vCHjVRUlGRstLMMX6H6GDrnzlJSKCIiw1V9fTuRSPhJpPurpaWTpqYuyst7rhoSP8l1fX1rzHQ14WoMX3yxlhNOSL0+cn+Vl4/j979/gwsvVG2hhJ/gGgAzWwwcDSRMc+6cuzVTQYmIiGRSJNJ2WBLDysoIpaWjycnpWe9SXJx/cL7AlpZOurocY8fmHNzXW41hd7ejqqqRuXNTTRDSf1OnFtDS0sk558zKeNky/IRKDM2sGPgLEJ1qPdrBIXakshJDEREZkiKRdhobO3o/cIDWrt3L/Pn5Cdtj+xhGJ7eO9hX0Tcnpk9bq6gMUFeVRUJCb8ZinTSvgtNOmHmzaliNb2BrD7wKTgDOAJ4D3Ag3APwGnAR/ISnQiIiIZEIl00NjYc/WRbHjmmWqOPjp5YhhtSo6dqgZg/PhcWls76ejoJjc3eQ+vysoIc+ZkvrYQ4PLLF/Cud83JStky/ISdx/A8fHK4Ovh9h3NulXPuCuBR4LPZCE5ERCQTIpE2urocLS1dWbtGV1c3a9fu5aijkiWGh6ariZ2qBsDMKCzMo7Exda1hVVUka8vPjR+fx+TJ43o/UI4IYRPDqcAW51wX0Ipf7STqbuCdmQ5MREQkU6L9C9MlXwO1YUMdU6aMZcKEnIR9fr3k2KbknsljbyOTq6oamT07OzWGIrHCJobVQHHw7yp883HUgoxGJCIikmHRxDCbA1CeeaaaU04pT7ovmvg553pMVXNof/qRyb4pOTs1hiKxwvYxfBKfDP4Z+A3wLTObA3QCVwL3ZSM4ERGRTIhE2hk/PjerNYbPPFPN+953FLA5YV9eXg5jxoymsbGDurrWJIlh+hrDykrVGMrhEbbG8FrgoeDf1wM34puPP4hPCq/JfGgiIkPXs8/uYdWqHYMdxpD0l79s5dVX9w12GD00NLQzffr4fiWGr79ex333bUl7THt7F88/X8ub35x6AuroAJT6+vYkTcmpaww7OrrZvbuZmTO1hrFkX9gJrjc7554I/t3hnPuCc26Gc67EOfch59zQ+h9ARCTL/vCHjTzyyLbBDmPIqapq5Gtfe5qnn64e7FAOcs4RibQzY8Z4IpG+T1nz3HN7+dWvNqQ95qWX9jFnTiFFRamnfPH9DFuDya2T1RgmTwx37myivHwceXmJfRdFMq3XxNDM8sxsv5m953AEJCIy1DnnWL26mr17WwY7lCHFOcd3vrOGSZPGhlrJ43Bpa+vCDCZPHtuvGsOGhnbeeKMubf/EdP0Lo6I1hn5Ucs91IoqKeq6lHKuyMqJmZDlsek0MnXPt+L6Erb0dKyJyJNi8uYFIpJ3q6gODHcqQ8tBDVezd28I//dMxodb+PVwikXYmTMgL+hj2vcawoaEd5+D552tSHhMmMYwui+cHn+T12JeuxtAnhhp4IodH2D6G9wCXZTMQEZHh4pln9nDmmdPZu1eJYVRjYzvf//46li8/hZKSMUOqxrChwSeGEyaknyswlUiknbKycaxbtzfp/paWTl5+eT8nnZR+HePo6id+guvEGsNUyXRVVWPWJrcWiRc2MXwQuMDM/mhm/2BmZ5vZsthHNoMUEemvL33pKaqqGjNa5jPPVHPOObPo7OymuTn7y6yl84UvPDEkauf++7/Xc+aZ0znxxMmhlng7nKI1hoWF/RuVHIm0c9ZZM3juueSJ4fPP11BRMbHX5eqKi8cEg09SzWOYqsawUVPVyGETNjG8C5gOXIJfE/mv+BVPYn+KiAwpXV3dPPxwFX/848aMlrlmzR5OPbWMKVPGsWfP4NUadnZ288gj29i5s2nQYgB49dV9PPJIFZ///ImAT3IikcFPVqOiieGECXn9mscwEmnjjDOmsWHDftraEldOCdOMDL7GcPfuZgDGju05W1z6GsPsLYcnEi9sYnhWiseymJ8iIkPKrl3N5OSM4t57t9DR0Z2RMl9/vY7S0rFMnjyOsrKxg5oY7tlzgK4uR03N4HYB//GPX+Cf//n4g3Pz9TZZ8+F2qMYwr999DMvLC5g/v4iXXkqchGP16mpOOaWs13ImTsxn69ZIwhyGkLrGsKWlk7q6NsrLtWSdHB6hJrh2zj2e7UBERDJt69YIJ544mdbWTv72t52cffbMAZe5erWvLQQoKxs3qCOTo7VPtbWDF8PatXvZujXCJZfMP7htaDYl5/e6HnH68/NYsmQK69bt5eSTD81VuHlzA7t2NXPCCen7F4IffLJ1a/KBJMXFyWsMt21rZMaM8eTkhK3HERmYPr3TzKzUzN5lZleaWUmwbYyZ6R0rIkPO1q2+Ce6SSxZw992bMlJmbLNhWdm4QR2ZvHNnNDHMTI2hc67Px//kJ762MHaOvYKCXFpbOzNWSztQkUg7RUV5TJjQvz6GDQ3+/GhiGOvWWzfwgQ8cFWqOweLifFpaOhP6FwIUFubS1NRBd3fP18AvhadmZDl8QiV05l0P7MCvdPJ/wJxg973A17ISnYjIAGzdGmHevAmcd94s1q2roaZmYElce3sXzz1Xw5vf7GsMp0wZN6gjk3fubGL8+NyM1BiuX1/LBz7wUJ+Sw6efrqa2toV3v3tuj+2jRlm/a+ey4dB0NX1vSu7o6Kajo4tx40Zz0klTWL++hq4un/DW1bXy8MPb+MAHjgpVVjQhTJYY5uSMoqAgMXH1S+Fp4IkcPmFr+r4CXA1cB5wCWMy++4F3ZTguEZEB27q1gTlzJlBQkMu5587innvSL2vWm5df3sesWeMP9hErLx/cwSe7djVz3HGTMpIYvvzyPl56aR+vvLI/1PG+tnA9V1+9mNGjE79K+jvQIxsikXYKCw8NPkmW/C5f/kzSPxyiSaWZUVIyhsmTx/L66/UA3HHHRt7xjplMmjQm4bxkoquixE9Vc2h/YhO8H3iixFAOn7CJ4ceA65xz3wWei9u3CZifeIqIyODassXXGAJceul87r57c9oasQcfrOSVV1Kv8Bk/+nTwawybOf740ow0JW/cWM+0aQXcdVe4JvfHH99JS0sn558/O+l+n+QMjZHJkUgbEybkkZ+fgxlJRxY/9th2KisTpzVqaPDnRkWbk9vbu/jd797giisWhY4jN3cUEybkJa0xhOT3THMYyuEWNjGcDqxOsa8dKMhMOCIimRGJtNPS0klZmR/NefzxpYwePSrlJMXNzR18+9vPcs01j7NvX/JE65ln9vRIDMvKxg5qH8Ndu5pYvLg0IzWGmzbV8y//spgHH6yipaUz7bHR2sJrrlnMqFGW9Bi/xNvQqDGM9hEEkjZxd3Z2s39/K/v3J77u5PBteAAAIABJREFU0YErUdHE8MEHq1iwoIijjprYp1iKivKSjkr2+xLvmZbDk8MtbGK4E3hTin2Lga2ZCUdEJDOiA0/MfOJiZlx66Xzuumtz0uPvvXcLJ588hYsumscXv/jkwX5kUa2tnbz00r4eI1JLS8dSX98+KIMsurq6qa4+wHHHDbzG0DnHxo31nH76NBYvLuWvf92W9vitWyM0NLRz9tkzUh7j5zIcGolhtDkYok3cPfsZ1tW14hzU1SXWcEZXTYmKJoa33LKBK66o6HMsEyeOCV1j2NDQRltbF6Wl4ZqqRTIhbGJ4J/BNM3tbzDZnZkcBXwB+n/HIREQGoLIywty5PWtaLrpoHo8/vpPKykiP7d3djt/85jWuuKKCq68+HjP4yU/WH9y/cWM9V131KEuXTu+xusXo0aMoKckflOliampaKC7Op6Qkn87Obg4cSF/Ll86ePQfIy8uhpGQMl166oNfm5BdeqOXEE0sPJt3JDK2m5EPJXWFhHk1NPRPW6DyQyWqKoyOao6ZNKyA3dxTt7V28/e3T+hzL2WfPYNGi5LWM8fM/RpuR091nkUwLmxguB14D/gZElxC4E3gp+P17GY9MRGQAtmxpONi/MGrixDF86lNv4tpr1/Toa/j44zsZPz6XJUsmk5Mzih/84HTuv38rDz9cxQ03rOeqq/7KJZfM5/rrT0+4TlnZ4AxA2bmzmenTCzAzSkvHsG9f/5PTjRsbWLiwGIClS6ezZUsk7TKC69fXsHhx+nn7htLgk8bG2MQwN6HGMJrY19UlJoYNDW09EkMz49xzZ/HJTx6Xshk9nY9//E3Mm1eUdF98Mu2nqtHAEzm8QiWGzrkWYClwFfB3/DJ4zwKfAM5xzg2NT7+ISMA3JSd+AX/oQ0fT0NDGn/9ceXDbrbdu4MorKw7WzJSUjOFHP3o7/+//PcVrr9Vx993v5H3vW5g0ERi8xLCJ6dPHA75JeyDNyRs31h9MDPPycnjXu+amnfdx/fpaFi8uTVvmUFn9pL29i46ObsaN8+s5JOtjWFvbypgxOSlrDGObkgG+/OWTE6boyYTYexaJtPPAA5Upk0iRbAm18gmAc64L+E3wEBEZ0qJzGMYbPXoUy5efwtVXr+KMM6axfXs7lZVNnHdez9G1ixdPZsWK9zJp0pi0TXl+ZHL62rrq6mZuvvlluroO1VJecsn8UKtlpLJrVzNTp/pxfz4x7H+N4aZN9Zx00qFYLr10Ph/72GNcc03iVDTNzR1s396Ysjk0qqgojw0bwk19k03RqWqir6GvMYxPDFtYsKAoaR/DSKT9sC1HF71njz66ne98Zw1nnTWDK6/sez9GkYEInRgCmNkC4C34Uco7gGedc5lZTkBEJEM6O7vZvj31xMDHH1/KOefM4kc/eoGqqiY+9KGjyM1NbEApLR3b67X8yOTmtMf8/OevEIm0c+qpfkTzyy/v47bbXhtwYnjssSVBnGMGlBhu3FjP+99/aJLmBQuKmTq1gCef3MXSpT0HmLz4Yi2LFpX0utLHUGlKjq/xmzAhWY1hC0cdNZH162uTnn/00X0bedxfRUX5PPzwNtavr+X6608/OJG6yOEUduWTMWb2f8AG4Dbg+8DtwAYz+4WZJR9ilUFmNtPM/mhmDWYWMbO7zWxWyHPHmNn1ZrbbzFrM7GkzOyPbMYvI4Ni5s5nJk8cyZkzqv30/+9kTWLlyBy++2MLlly/s97V6Wy+5vr6Nv/ylki9/eQmXX76Qyy9fyKc/fRx//3t1wsjnvshUU3JXVzdbtjSwYEHPJsuLL57HffclTjgRphkZhk5Tcnxi6JuS4/sYtnLUUcUp+hgmNiVny/HHl3LNNYv505/eqaRQBk3YwSc/AD4MfAtYABQGP5cD/whcn43gosxsHLACWARcGVxzIbDSzMLMofhL4OPAN/GrtOwGHjazE7ITsYgMpq1bG5g7N33frAkT8rjuulM4//wJKeeVC6O3PoZ33rmRpUunM3nyoebI8vICJk8ey8sv97+pddeuZqZNizYl///2zjs8jupq3O9Vl6xqq7nbsmRcscE2NmDcqHECGMiPJMCXBEihpJEGJAQCMQl8ISRAygeEGkILJqEEMKYYbIpNc2+yZEs2km313nV/f9xZabtmV7uq532eeVY7c2fm7tHszNlTg7cYHj7cwMiRcS7Z1gBnnTWBjRtLaGhwVaK2bi23ZelMTvbs4tEfONcwBN8Ww9zcVGprWz2Udffkk3AyalQcV1wxw+8PGkEIN3YVw68Ct2qtf6u1LtRaN1ivt2Pa5F0SvikCRqnLAVZprf+jtX4BOA+YCHzX345KqTnW/K7TWj+otX4TuBgoxsxdEIQhRmGhZ6kabyxdOo4zz+xd1qc/xbCtrZMnn9zntd7d4sWj2bixJKhzdnZqSkudFcPgYwydE0+cSUuL44QTMli//nDXOq21bYthaurAKFfjbjFMTPTsR1xe3kR2dgIjRkR7KLPekk8EYShjVzGMBTb72LYJCPe35jzgQ+d4Rq31AeA94Hwb+7YBzzjt246pvXh2X7jBBUHoW7zVMAwXjuQTb6321q4tYuLEJGbMGOmxbfHiMUErhuXlTSQlxXRZlnrjSt6/v5rcXE/FEGDlykm88kpR1/uysnbi4iK7usn4IznZuJL9tSDsLW+9dYgXXvDf/9qUqum+zScleRa4Li9vJj09nlGj4jy6n4hiKAw37CqGbwBn+dh2FsbNG05mAju8rN8JzLCx7wGttftP+p0YhTa399MThOHB+++Xkp9f3d/T6BFvNQzDRUJCFLGxkR6WJq01jz++22cv3XnzMtm/v4bq6sCtap9/3m0tBONKLisLrcUQYMWKcXz00dEuy9+BA622rIUAsbGRREUpmpo8+xKHiuee28/vfvex3ySXnpJPmpraaW3tICkpmrQ074phSorYD4Thg13F8G7gYqXUX5RSy5RS063Xv2LcsncppXIcSxjmORKo8rK+EugpXczfvo7tgiDY4L77tvLSSwO/A2ZfWgwBMjM9eyZ/+mkZtbVtHlm9DmJiIlmwIJMPPigN+HwlJd2JJ2AshhUVzUFZ5/wphklJMSxalM2bbxp3cmFha0CZ1CYBJTDF98CBGo+4Rm+0t3fy8cfHOPHEDB57bLfPcTU1rSQldcdPJiW5upIrKoy1UCnFyJGxVFZ2z7elpYOODk1cnP8MbEEYStiNcH3Her0auMppvXLb7iAc3yJvdzw7ZedVoPsqpb6DKd5NVlYW69evtzO/oKmvrw/7OYYKIiv7hFpW9fUdbNtWTmtrHSeeWBOy44aa+voOGhtb2bFjk61WYqGQU0xMM2+88SFHjnSXt7n//nIWLYrj3Xfdb4/dZGU18K9/fUp8/MGAzrdhQy0dHZ0u846K0rzyytuMGGH39z60t2uKimo4dGgLR454l9XEiY3885+fMnLkIQoKmlm0qJj164/aOn5kZCtvvvke48bZc8V2dmpuueUIS5Yk9hj7eeBAC8nJsGJFB3feuZPJk8tJTPR89OzbV0l7eyzr15cBUF3dQXl59/+8sLCFmJg21q9fT3NzFZs21REXZ3781NR0EB8P77zj+3/oDblP2UdkZZ++kpVdxfDysM6iZ6rwbtlLw7s10JlKwFtZmzSn7S5orR8AHgCYP3++XrZsme2JBsP69esJ9zmGCiIr+4RaVq++epBp05o5erSRpUuXDtj+rZ99VkZeXivLly+3NT4UcnrjjQ/Iykpn2TJT9ubQoTqKil7j738/2yPb15mcnDouu2xtwPJ8++0PmTMnjWXLjutaN3r0i0ydeqJP65838vOrGT++jjPP9C2rhQvbefbZNeTmzqe8/AUuvfSMHmsYOnj44deZOvV4Tjop29b4deuKaW4+RklJfI//k337dnD66aP48pfns3PnJvbujeYnPznRY9yaNe+wYMFkli0zj4GmpnZuvfVfXcdvby8mJ6eQZcuWsX37VpSCZcvmACb+Mj393YCvD7lP2UdkZZ++kpXdlniPBbKEYZ47MbGC7swAdtnYd7JV8sZ931ZACnQLgg02bCjhwgtNSG6oWsAdO9bIU0/t5fLL3+D73/dtlfnZzzaybZtn8WFvHDjQt25kMJnJzq7kJ57Yy4UXTvGrFAJMmJBEQkI0e/cGFrdpMpITXdYFk5mcn+878cRBfHwUS5aM5e67P2Ps2GjbSiEEXsvwscd2c+ON89m+vbxHd/KmTUdYuNDU+rvqqtk899x+r3GWtbUtLjGGcXGRdHRoWltN7KMj8QRMK0Tn7icSXygMR+z7HPqXF4FFzvGLSqlJwKnWtp72jQb+n9O+UcBXgNe11v1fT0EQBjhaazZuLOG008YwY8ZIdu/uyVDvn5aWDr797Tc577yX2bKlnLPOGs/OnRU+x+/YUeFSNsUf+/dXM2lS3yqGmZnxHDtmFMO6ulZeeKGQSy89roe9DMFkJ3/+eQNjx7qWcDW1DAPLTN63z3d8oTMrV07itdeKmDw5sOzcQLqfbN9ezpEjjZx33mRmz05n82bf7urW1g62bi1n/nyjGGZlJbBqVQ4PPOCZo+iefKKUsuIMjeJZVtZEenocACNHxrr0S5aMZGE4YlsxVEqdo5R6SCn1ulLqXbclsACMwHkQOAi8oJQ6Xyl1HvACcAi432mOE5VS7Uqpmx3rtNZbMKVq/qSU+pZS6nRMqZrJmILdgiD0wN691SQkRDNhQhLTpo1k167e9cB98MEdxMVF8e67F3Hnnady4YW5lJf7Tp4oK2ti06ae49q01rz11mEWLx7Tq/kFSnZ2AkePGmvVmjX7Wbx4dFcf45447bTA6hlqra3i1qGxGNpRDE89dTTJyTEBK4YpKTG2s64ff3wPl112HFFRET3WeNy6tZwpU1JclLZvfWsWL798wKM9YW1tm0eBatP9xCis5eVNbhbDbsWwL7ueCMJAwW5LvJ8Dr2C6howAOtyW4Ps62UBr3QCsAPYB/8C04zsArNBa1ztPFZP44v65LgceAVYD/wXGA+dorT8N57wFYaiwcWNJl7JlLIbBK4YHDtTw5JP7+OUv53e5JWNjI0lIiPLqdmxoaKO9vZM9e6p6dC/u2lWJ1rqrh3BfYWoZNtLe3skTT+z1WtDaFwsWZLNjR4WtTFwwWbQJCVEkJLiGiAejGO7fX01env8OMWAyqP/4x9OYNSsuoOPbtRiWljawYUMJF11kQhVOO20MGzaU+PyhYNzIrnGLo0bFcdppY3jvPdcs79raVpKSXJW75OTornm5u5IrKlxdyaIYCsMNuxbD72Esc2O01qdqrZe7L2GcIwBa62Kt9UVa62StdZLWepXW+qDbmINaa6W1/rXb+iat9Y+11tla6zit9UKt9fpwz1kQBgJaa9tKhy+MG3k0ANOnB+9K1lpz220fcdVVs8jOdneFxnuNESsvbyYzM4FZs0byySfH/B7/lVcOsnLlpD5PjHHEGL7xxiGyshI4/nh7tf7A1EHMy0u1LVNvbmQI3JXc0dFJaWkD48bZ6/xy8smjiY0NLPooNdVejOGTT+7l/PNzuhS4vLxUWls7KCqq8zp+06ajXfGFzsydm8GWLWVd79vbO2lubicx0TXW091imJFhFN60tFg3i2GLKIbCsMPutzwZ+JfWOnyVSgVBCAsff3yM73wn+Br0DQ1t7NhRwYIFxkIzfnwidXWtQRVmfumlA9TWtnDJJZ7xdxkZ3hXDsrImMjLiWbgwm02bjvg8dmen5tVXi1i5clLA8+otaWmxNDe38+CDO3wWtPbH6NEjumIUe6KkpN7DjQyBWwxralpJTIwhOjp8oeamX7L/66ShoY01awq47LLua0Ip5TP2srGxnV27KjnhhEyPbXPnprN1a3eSUl1dKyNGRBMR4fpDwbn7ibPFMDU11qVfcm1ta6/6aAvCYMTuHWEtsCicExGE4cbGjSUsWvQsCxc+07W8/ba9BItAKCioYc+eKjo7g2tN9uGHR5gzJ73LdRkRoZg2LS3gOMPq6hbuuutTbrllIVFRnrceX907XBVD33GGW7aUkZgYHVC5llChlCIzM4GamlZOP318wPtnZSVQWtrgddv775dy7rkvcffdn7FtW7lH1xMHgbbFq6xsZuTI8Co9KSk9u5Kff76ABQsyGT/e1XLpSzH87LNjzJgx0sOVDjB1aholJQ1d1sCamlaP+EIwCmt9vWnXV17exKhRxmIYFRVBUlIM1dXd+4vFUBhuBOJKXqmUulEpNc+5y0kYu50IwpBmz54qzj13MuvWXcC6dRdw4YVT2Lu3d9m+3igqqqOpqZ3PP6/vebAXnOMLHQQTZ3j//ds588wJPt2sGRneLV4mOSCO2bNHUVRU59NS+cor/WMtdJCdndCVPBHMvr5KAO3eXcmUKSkoBTfc8B733LOFceO8WQzjArIYGsUwsJjBQOmpXE1jo7GyXnXVbI9tJ5+czSeflNHS4uqo8uVGBqPYzZgxku3bTYa7rxjBxEQTY1hb20pcXGRXz2kwcYaOtngSYygMR+zewTRQB9wObAbyvSyC0Kf8978HPB4ag4kjRxqYMCGJ5OQYkpNjGDcuiWPHgut364/i4jqioiKC6nHsKFPjrhiaOMPAFMNduyo580xvteYN/lzJ6enxxMREcsIJ6Xz8safVsL29k7VrizjnnIkBzSmU/O53p3DppYG7kcG/YlhS0sC8eZlcd90J/Pe/5/HCC19i1aopHuPS0mKpq2ulrc1eLmBlZUvYFcOekk+eemov8+ZlMn26Z7JQSkosU6emesSVbtp0hEWLfBfMdo4z9KXYmX7JbS5uZAemLZ4ohsLwxa5i+ChwCvBHTEu8K7wsgtBnrFmzn5/97L1el03pT0pLG1xKmmRl+VYOekNxcR2LFmWRnx94G7uDB2vp6NDk5rpmrs6Y4VmypqOjk4MHa30ey+ES9oUvxdAkB5j9Fi7M5sMPPRXDjz46SnZ2Qp/XL3Rm7NjEoOP1srMTPHotOzDFrM11opQiJyfFqxs1MjKC1NRupaYnKiubSUsLvyvZV4xhfX0rjzyyi+99b47P/RcvHs2GDd3u5M8/r6egoMZvcs/xx6ezZYuJM6yr867YOZJPHNZoZ4zF0MzZlytaEIYydlviLQO+p7V+NHxTEQR77NpVwd13f8bs2aM4fLieE07I6O8pBUVpaSOjR3c35MnKig+5YtjZqTl8uJ5LLpnKp5+W9byDGx9/fIyFC7M9snwnT07m6NFGGhraurp7PP10Pg88sIN33rnI67HKypr9Koa+spKdFcqFC7O58cb3Pca8+moRX/jCJLsfa8Dh3jnFGfcfEP5wJKBkZbk3evKkL1zJSUkxNDS009HRSWSkq9L8+ON7OPXUMUyZ4rtczuLFY/j5z98jKyuedesOUVBQwze/Od1v95U5c9K56aYP6OzUPmMEk5KMK9m5hqEDV1dyiyiGwrDD7s/bcsBe13RBCCMNDZ386EcbuOmmBSxalB103NxA4MiRRpeSLeGwGB492khKSgzHH58elCt5165KZszwdPNFRUWQm5vKnj0mJvLYsUb++tdtVFU1097u6cpsbGynra2DpCTfLeJ8xRg6XMkA06enUVbW5KJAtrZ2sG5dcb+6kXtLRkY8VVUtXt3Apph1YIqhHaqqwu9KjohQJCZ2dxlxUF3dwhNP7OWaa473u//MmaPIyIinsLCW7353Fu++e5FfCyMYWSYlRXPwYG0PruRWr67ktDRjddXaoVhKVrIwvLCrGN4LXKOUGiwt9IQhSGen5rHHKlm+fBxf+MIkxo1L5PDhwakYNjW109TU7pIVOmpUHDU1rV09XENBcXEdEyYkkZOTQlFRne34Mwe7d1d5VQzBNc7wjjs+4f/9vzzS0uJcWoo5cLiD/dUXNK5k3/uCcZfOn5/J5s2mbE1jYzv/+7+fkJeXalt5GohERkaQnh7nUbKmrq6V9nZt22oVSC3DiorwWwzBe/eTRx7ZxRlnjGfiRP81FCMiFI8/fha33baIJUvG2u7TPHduBlu3lvtUDJOSYqivb/PqSh41ylgMm5s7iIhQxMba7w0tCEMBu4peGjAL2KWUuk8pdZvbcmsY5ygIgHmYNDZ28pOfnACYmK7BqhgeOdJAVlaCi6LkUA68uVODxaEYxsdHkZ2dQFGR7xhAd9rbO8nPr2LatDSv2x1xhhs2lLBzZwVXXTWLzEzv7vCe4gvBuPfa2ztpbGzvWtfW1kltbauLAu0oW/PBB6WsWvUytbWt/OlPS2x/roGKN4uxI77QbsFud3f82rVFrFtX7HVsVVX4y9WAZ8mampoWnnkmn+9+d1bYzjlnTjpbtpT5UQwdrmRvFsM4qqpaJPFEGLbYjTH8pdPfU71s10jfYSGMFBfX8dBDu/jJT0Z2WQ0Gs8XQPb7QgWmt1sTYsZ7lSILBoRiC6SaRn19Dbq69On8HDtSSlZXQFUPozvTpaTz++G4++eQYN910EnFxUWRmxnvNrLajGCqluhRjhyWpoqKJtLQ4l/i0RYuy+cMfPmXjxhJuuWUhS5eOtfV5Bjq+FEO78YVgrK6ObiFr1uzn1ls3ceaZE7xmg1dUhN+VDJ4la957r5R58zJCdo17Y86cdJ57bj+TJiV7dQWb5JM2rzGGo0YZV3JtrSSeCMMTWxZDrXVED4vY2oWwobVm9erNXHnlDEaN6v4tM3r0CMrKmgJ2jw4EfD3wQ52A4q4Y7t9vP85w9+5Kr2VEHEydmkZRUR0zZ47itNNMORtHz2B3vD2AveEeZ2jiC12Vl9zcFG65ZSEvvXTukFEKAUaPTqC01FV2JSUNXn9A+MIRY/j00/v4y1+28atfneTzejIWw/Arhu7dT7yVPwo1xx2XxqFD9ZSWNvgscN2dfOIqg7Q040qWdnjCcEViBoUBz2uvFXP0aBNf//p0l/XR0RGkp8dz5Ij3jhEDGZN44vnAD3UCirNimJubGlACiq/EEwexsZFce+3x3HDDvK51vbEYgmfJGm/7KaW44IIpPi2ZgxXvFsNGr+3vfJGREcd775Xy0EM7efzxszjppGyv/4+Ojk7q6lpJTQ2/4pOSEtvlSu7s1GzYEH7FMCYmkunT09i5s9KrcpeQEEVrawelpY0+spJbpFSNMGyxrRgqw3lKqbuUUo8opSZa65cqpcL7LReGLXV1rdx558fccstJXmvEjRs3YlC6k0tLG1wykh2EUjHUWlNcXM+ECUaxyMtLCUgx7MliCHDVVbPJzOxWcH1ZDINVDMvL/Ze4GUpkZY3w+N+XlNQHZDGcODGJ6dPTeOyxsxg3LpGsrHiOHWtEa9d2iNXVrSQlxXiUkAkHzrUM9+6tIjEx2qP9XTiYMyedzk5NUpKncqeUyZaur2/ziLNMTY3p6gUuGcnCcMTWXUEplQa8D/wH+BbwdWCUtfnbwA1hmZ0w7Lnnnq0sWTKWE0/M9Lp97NjEQVmy5siRRq+uZF+KVTDU1naSkBBFYqJ5ME6cmMyRI400N7f3sKex7OzeXcX06d4TT3zhiJF0x64r2T15wq5CORQYPdqzlmHgFsMEHn/8rK4M7bi4KOLioqiqcs0KNsWtw+9GBtfuJ33hRnYwZ46pb+rL6pecHENaWqyHchwZGUFycgxFRXXiShaGJXZ/Lv4eGA+cCqQDzilybwCnh3hegsC+fVWsXVvEj398gs8xJgFlMLqSG7y6kv11wAiUsrL2LjcyGNf7xIlJFBb23AHl8OF6EhOjA1YejCvZm8WwmYyMno/lPcZweCiGpsi167UcaIyhN7y12zPFrfvGGuacfNKXiuHcuelddRS9kZQU4/PaGjkyjgMHasWVLAxL7CqG5wO/1Fp/gMlAdqYYozQKQkj56KNjnH76eFJTfT/Axo0bfBZDrbWVfOI7KzkUuCuG0J2Z3BM9xRf6IivLt8XQjuXPvUDzcLIYZmTEU1nZXeS6ra2TiopmW11M/OHNCt0XfZIdOJJP6utb2bmzkgULsvrkvJmZCfz7318kKsr7Yy4pKdrnj5WRI2M5eLBWLIbCsMSuYpgIfO5jWxyuFkRBCAkFBTV+22VBaGoZaq37VLmsqWklKiqiy8XrjK+YsGA4dqy9K77Qgd0EFDvxhd5ISYmhudkU73bQ3t5JTY09RcQzxnD4KIZRURGMGhXXpRgfPdpIenqcT8XGLllZ8R5W6L7KSAYTs1dT08qHHx5l7twMr32ew0Venu/STD1ZDIuLxZUsDE/s3nH2Amf52LYU2B6a6QhCNwUF1T0qhqGoZfjZZ2V873vre3WMQHBvhedMXFwU8fGeMWHB4N1i6JmA0tnpqYTu3h2cxVAp5WH1rKhoJjXVM5bLG8aV3N25YzhZDMG1Z7KjuHUojuluxTVdT/rWlbxxY0lXWaOBQE+KYVtbp7iShWGJXcXwL8CPlFK/BByVUlOVUpcD37O2C0JIKSys7VExzMiIp76+zcVCFSgHD9Z5beMWLkxGsm/3YKgyk327krsVw/z8alaseJ7XXivqWqe1ZteuyoATTxxkZsZTVtY9/0CsfiNHxlJT00J7eydaa6+dKYYyzjGmJr4wNIqh+/XUF32SHThcyX0ZX2iHvLwUjjvOu0UxLc0ozSkpkpUsDD/sFrh+ELgbuBXYb61eBzwA/Elr/c/wTE8YrlRVNdPS0kFmpn+lICJCMXp0Qq9cwcXFdVRXt4TEfWuHI0f8P/BDkZmstfaqGI4dm0hNTSt1da3s2VPFlVe+wbnnTuaOOz7uyhx1WJeCjW3LyHAt0h1IAklkZASpqbFUVDRTXd1CQkLUsOpVa5Q4k4ASKothZqb35JO+ykpOSYmhvLwZrSEnJ7lPzmmHb35zBl/84mSv20aNMrIRV7IwHLEd7KG1vkEp9TfgTCATqADWaa0LwzU5YfhSUGCshXZ6xDoSUOy2enOnuLiO9nZNfX2b15pnoaa01Htxawem+0nvElCqqlqIjFS34jE0AAAgAElEQVQeFo+ICEVubgr/+U8hDzywg5tuWsDZZ0+ktraVe+/dwk03ndQVX2i3P6/n/F1dl4G6gx1xhrGxkcPKWgieFsNg3PnejulNMRw1qm+sYXFxUcTERLB48eigr6m+xqE0i2IoDEfs1jFcopRK1FoXaa3/rrX+rdb6fq11oVIqUSk1+DvYCwOKwsIacnL8u5EdmASU4EvWFBeb3rKhiOuzQ0/9b0PhSi4uriMjw7ulLTc3lbvu+pRbb13I2WdPBOC6607g9deL2bat3HIjB6+QZGTE91oxLC9vGnbxheCqGIYzxrCysqXPLIZgXLIDKb6wJ8RiKAxn7MYYvg3M8LHtOGu7IIQMOxnJDnqTgGK6g9QxfnxinymGprh1eGMMjWLo3SFwySVTeeih01mxorvKVGpqLD/96Yn8+teb2LGjoleKoVFEnGMMA+te4ihybRTDvlNeBgLO//uefkDYJSUlhpaWDhobu+NwjcWw72T74x+fwKmnDh7FMC0tlvj4SGJihk8YgyA4sKsY+rP/xwIdIZiLIHQRiGLYm+4nVVUtREQoJk1Kprq6bxJQfLXDcxCKGMOiIt+K4cyZo5g/37OW3LnnTiYlJZb16z/vlQvTvV9yoEWqHa7k4VTc2kF29giOHGnsqnUZCouhyRTvLjze3t5JfX3f9gE+//wc4uP7rkxNbxk7NpEvfzmvv6chCP2Cz2+qUmoSkOO0ar5Syr03UzxwBabItSCEjMLCGnJzw28xLC6uY+LEJNLSYqmubg3qGIHQ0dHJsWNNfmMMQ9H9xJ/F0BdKKW655SRuvPF9xo+334bNHXfFNhhXcn5+NTExkX7lNBTJyIinoqKZ8vJmoqMjGTHCe9eOQHFYIs0PoJY+65M8WImPj+LGG+f39zQEoV/w9+T4BnALptOJBu7D1XKorfftwLXhmqAwtHj55QN88skxrrvuBJ/xO/X1rdTUtNh2o/Wm+0lxcR0TJhjFsKoq/BbDiopmUlJi/LqofHUPCYTi4jqmTQvcQjNpUjJPPXVOr87tiDHUWqOUCrhIdUZGPB98cISYmAhmzx7V8w5DiOjoCNLSYtm2rTwk1kIHzi7qvixVIwjC4MPfk+NRYD1G+XsLo/ztchvTAuzTWleGY3LC0OPllw/Q0NDOeee9xE03LeCMMyZ4jCkoqGXy5BQiIuxlMKakxNDZCTU1LQHXHSsqMophTExkn8QY+mqF54xzTFgwXSJaWzsoKqojM7N/lKoRI6KJjo6gtraV5OQYysubSE+3r4g4YgxjYiKGXfIJGIvxZ5+VhSS+0IGzYtiXxa0FQRh8+HzqaK2LgCIApdRy4BOt9eBqSisMKDo6OtmypZyXXz6XgwfruPnmD3j55YPcfvvJLi6zwkL78YVgXKDjxo3g88/rA1YMi4vrWLx4DM3N7ZSUhP/yNqVq/D/wnWPCJk0KvO7b7373MYsWZZOU1BnsNHuNo/uJ1hAbG0lcnH0F1xFjGBMTMexiDKFbMQxFqRoHWVkJFBU5su/7rh2eIAiDD7sFrt8RpVDoLfn5NYwcGUt6ejzz52fy739/iebmdtas2e8yrqDAfqkaB8GWrOl2Jcf1icWwp+LWDoLNTH7hhUI2bTrC6tWLgpleyHAotsGUnBnO5WrA/O937KgIqcXQOfmkslJcyYIg+Eaij4U+45NPjjFvXmbX+9jYSK64YgZr1hS4dB0JJCPZQbAJKK4xhn3hSvZf3NpBMIrh3r1V/O//fsI99ywlMbF/669lZpoi3YHGF4K5LuLjo+jo0CQlhSb5YjCRnT2CtrbOsMUYmq4n4koWBME7ohgKANxxx8e8+GJ4m9h8+ukxTjwx02XdggVZNDe3s317Rde6ggL7GckOgilZU13dQnu7ZuTIWFJTY6mu7huLYU+uZHAoVvYVw7q6Vn74w3e54Yb55OUF1wEmlDgyk4MtOZOeHk9GRvyg6ZQRShw/HMIVY9jXNQwFQRhciGIoAPDBB0fYtq08bMfXWntYDMHE0114YW6XO7mpqZ2ysibGjQusXEowFsNDh+qYMCERpZRVrqYvFMNGxozp2WKYnT0ioLZ4t9yyiVNPHc2553rv/drXOGoZBqsYZmTEBZSwMpRw9KgOpcUwPT2eysoW2ts7+7RPsiAIgw9RDAUaG9spKKghP786bOc4fLgerfFaH2/VqhzWri2msbGdAwdqmTAhiaiowC7NceMSu1rb2cXhRgbTsqumpoXOTt3DXq6Uljbw2mtFtseXlNi3GNotcv3OO4fZtauSn/98nu15hBtH95NgXMnQbTEcjmRnJxAdHRFSq150dASpqSZDvLKyRSyGgiD4RBRDgd27K8nOTiA/v8Yl1i+UOKyF3lyDWVkJnHBCBq+/XhRUfCHA5Mkme/fDD4/Y3sdZMYyOjiA+Poq6usCKXN9992fcfvtHthTK1tYOampabVnC7MYYNjW1s3r1R9x880nExg6c9l2ZmSazONB2eA4yMoavYjhmzAgeeuh02+Wa7JKdncDRo01UVUmMoSAIvvHX+eStAI6jtdanh2A+Qj+wY0cFS5aM5bXXioJ+kDvT0NDm0bHBmxvZmYsumsJjj+1h/vzMoBTDqKgIrr32eO69dwsLF55tKzatuLie+fO755SaahJQ7Ja8yc+v5sMPjxAfH8WePVU9lhcpLq5jzJgRtjpO2FUM//a37cydm8Epp4y2Nee+IiPDzD8+Piqo6+nssyfS3t5/5Xb6E6WU15aFvcUR92nqGIrFUBAE7/h7QkVgils7lmnAMmASphXeJOv9cfjvpSwMcHbsqGDWrFHk5aX02p3c0dHJ0qVr2LTJ1XLXk2K4dOk4Dh6sZf36wwGXqnHwhS9MpL6+jXffLbE13tEOz0FaWhw1NfbjDP/8561cccUMli8fx4YNPZ9z794qpk1Ls3Vs55gwX+TnV7Nmzf4B5UJ2kJERT2VlM0eONAYVKzhnTrrf60UInKysBD7/vJ6GhrY+7ZMsCMLgwqdiqLVeprVerrVeDtwDtAGLtNY5WuuTtdY5wMnW+nv6ZrpCONi+vYLZs0eRl5fK/v29UwxLShpobe3ktts209raAdAV15SX51vhi46O4LzzJrN3b3XAGckOIiMj+P7353DvvVtsucSdXclAQCVrdu6sYOvWcr72taksXjyGjRvtKIbVTJ1qL2PYEWPmy2rY2am59dZNfP/7cwakyzU6OoKUlFgOHaobkPMbjmRlJbBvXzXJydInWRAE39i9O/wG+JXWerPzSq31JuDXwOoQz0voI2pqWigvbyInJ5nc3NReWwwPHqxjwYJMJk9O5qGHdgLw6adlzJ2b3uPD6KKLcomOjnCx4gXKGWeMB+CNNw75HVdf30pjY5uL0uJwJdvhvvu28t3vziIuLooFCzLZvbuyx/jEvXurOO44exZDgGnT0ti1y3u3ybVri2hr6+Tii/NsH6+vycyMJzo6wmdPbKFvycpKYPfuSnEjC4LgF7uKYR5Q5mPbMSA3NNMR+pqdOyuZPn0kkZER5OWlkp9f06vjHTxYy6RJyfziFwv4xz/2UlRU16Mb2UFOTgrr1q0iJib4JAqlFD/4wVzuu28rHR2+3bDFxfWMH5/kEotoVzH87LMy9u+v4aKLzGUfFxfFiSdm9Jj4EogrGWDWrFEu9R2d2bChhAsumBLyBIVQkpmZMGxrEQ5EMjPjKSioEcVQEAS/2FUMDwDf9bHtu8DBkMxG6HMc8YUAubkp7N9fHXDJFmeKiuqYNCmZMWNG8O1vz+Q3v9lsWzEEo0z0liVLxpCYGM0rr/guI+PuRgZs1zK8996tXH31bBcFtid3clVVM42N7QHVpps1ayQ7dnhXDLdtK2fu3Azbx+oPMjPjh2Wv44FKdnYC7e1aMpIFQfCLXcXwVuBcpdQOpdSvlVJXW687gC9i3MnCIGTHDhNfCKaWX1JSDKWlgfccdlBUVNulcF122TQqKpooKKjpUj77AqUU1157PA8+uMNnrKEvxbCqqtnvsQ8erKWgoJrzz89xWb948Rg2bCjxeT5HfGEg1rNZs9LZtavS45jV1S0cPdrkN2ZzIOCwGAoDA8ePLqlhKAiCP2wphlrrp4GzgRrgRuAv1ms1cLbW+pmwzVAIKzt2VDBzZrfS1tvMZIcrGUwCwm23LeKrX83rlXs4GE45ZTRKKT74wLt717fF0H+c4FtvHWb58nEeBbgnT04mIkJRUODdFb9vX2DxhWAe4CNGRFNU5Fq4e9u2cmbNGjngEwjmzk1n4cLs/p6GYDFiRDSJidHS9UQQBL/YfrJord/QWp+KKVWTDcRrrRdrrd8M2+yGOa2tHXz722+ydauv8M7eUVbWRGNjOxMmdHcj6U0CSktLB2VlTYwd2+0unT07neuvn9/ruQaKUoqvf30ajz222+t2b4qhiTH0bzF8661DrFgx3uv5/LmT9+wJXDEEmD17lIc7eevWcubMGdhuZIBTTx3DpZce19/TEJzIykoQi6EgCH4J2OSgte7UWh/TWg/P6rN9yB13fMKmTUf59NPwKIY7d5r4Qmf3pklACU4xPHSojrFjEwNuZxcuvvSlyezaVelhxXO0APSmGPqLMaysbCY/v5pFi7xbwYxiWOp1W6AZyQ5mzfKlGKYHfCxBGD16xLDtQS0Igj1sP8GVUjlKqRuUUn9VSj3stjwUzkkOR158sZAPPijlhz+c49M92Vu2b6/wiP3rTWbywYN1vSo1E2piYyP5ylfy+Mc/9nSt09rU/1uyZKxHIkhaWpzfrOT16z/n5JNH+2w9t2hRFlu2lNHY2O6yvr29kwMHasnLs1fD0JmZM10TUDo7Ndu3i2IoBMftt5/MkiVj+3sagiAMYGwphkqp84E9mHqFq4DlXhYhROzbV8Wdd37CPfcsYc6cDAoLw6MYOmckO8jJSeHgwdqg2pEVFdUycWJyqKYXEr761am89lpRlyXwmWfy2beviptvPsljbEpKDLW1rT6zst988xArVozzea7ExBhmzhzJRx+5xjUeOFBLVlYCCQk+O1D6ZObMUezeXdX1/ygoqCE1NVZKjghBkZER3+fxvoIgDC7sWgxXA+uB0VrrMVrryW5LTg/7Czapq2vlhz98l+uvn8fUqWnk5qZQUFBjq5NHIGitLcXQtb9vQkIUmZnxFBfX+djTN6ZUzcCxGIJpLXf66eN55pl8tm0r589/3sqf/rSU+HhPJS0qKoIRI6KprfVMQGlqamfz5qM9WlvOOGMCL710wGVdMIknDpKTY8jKiu+yGg+GMjWCIAjC4MWuYpgD3KW1Dk+wmwCYfsJf/eprLF06lvPOM7p2amos0dERlJU1hfRcJSUNREYqsrI86wYGG2d48ODAsxgCfOMb03jyyb1cd90Gbr11kV93t684w/ffL2XWrFGkpvqvAXfBBTls3FhKSUl3yZ+9e6s57rjA3cgOnOMMt2wxXWQEQRAEIRzYVQz3AH1XiM4NpVSEUupGpdRBpVSzUmqrUuoim/s+qpTSXpY/hXvedmlu7mT16s385Ccb+NGP5nLDDa5ZvFOmpIQszvDo0Ub++c+9/PSnG5k/P8trXb3eKIYDzWIIMHVqGtOmpfGlL03i9NM9M4qd8dUv+a23Dvt1IztITIxh1aocnnxyb9e6YDOSHcyend6lGEriiSAIghBO7AY9/Rz4k1Jqk9a6MJwT8sFvgJ8CvwQ+Ab4K/Esp9SWt9Ss29i8DznNb5z19tI8pLq5j9eqjLFsWzwsvfImUFE+L1JQpqRQU1HDyyaODOsfhw/W8/noxb7xRTGFhLUuXjuXKK2eyeLH34+XlpfL668UBnaO+vpWGhraQdC4JB3/96zJbdf+8Fbnu6OjknXcOc801s22d67LLpnHxxa9y9dWzGTEiuleuZDAJKC++WEhdXSslJQ1MnRr8sQRBEATBH3YVw19jLIa7lVL5QKXbdq21XhrKiTlQSmVilMI7tNZ3WavfVkrlAncAdhTDVq31h+GYX28ZM2YEl18+kiuvPNnnmJyc5KAshv/6Vz5PP72Po0cbWbFiPFdffTwLF2b1GHyel5fKX/6yLaBzmbqAyQO2d6/dYtDe+iVv2VJORkYCY8cm+tjLlXHjElmwIJP//KeQlSsn0tQUWCs8d6ZPH0lBQQ2ffHKMGTNGDphyQIIgCMLQw65i2AHs7XFUeDgbiAGecFv/BPCwUmqy1vqA526Dg6ioCKZM8R+3NmVKSsAWvNdeK+KBB3awevXJzJuXGZAyMXFiEiUlDbS0dPgszeLOQCtVEyze+iW/+eYhTj+9ZzeyM1//+nR+8Yv3mTw5malT0wJqhedOfHwUEycm8eyz+ZJ4IgiCIIQVW4qh1npZmOfhj5lAC7Dfbf1O63UG0JNimKmUKgdSgULgIUwyTUcoJxoucnNTAipZU1hYw29+s5kHHljh0u7OLjExkcyePYrXXy/m3HMn29rHuRXeYMZb8sm7737OnXeeGtBxTjwxg9TUWB54YEevEk8czJo1iuefL+DCC3N7fSxBEARB8EXghdX6npFAtfas11LptN0fWzBxiTuBOOAC4HdAHvAtbzsopb4DfAcgKyuL9evXBzVxu9TX1/s9h9aapqZWXnrpTZKS/Fvwmps7+f3vj7FyZRJlZdsJduqnnNLJXXdtIiHhIJGRPVu7Nm+uZNq0WNavD77Psh16klVvOXasgcLCFtavrwWgoqKdsrJ6jh7dRllZYFa/+fM1jzxylNzcll7POSamHq2hsXEf69cX2Non3LIaKoic7COysofIyT4iK/v0may01rYXIA04CVjivgRwjDMAbWNZb41/ECj1cpw8a9z/BPIZrH3/aO2b19PYefPm6XDz9ttv9zjma197VX/00RG/Yzo7O/VPf7pB/+IX7+vOzs5ezamzs1N/4xuv6+eey7c1/uKLX9GffXasV+e0gx1Z9YZ164r1Ndd0n+Ppp/fq66/fGNSxWls79Dnn/Efv3l3Z63nt3VupV658IaB9wi2roYLIyT4iK3uInOwjsrKPXVkBH+sA9SLnxZbFUCkVBzwMXAz4MpvYLaf/PjDdxrhG67USSFNKKesDO0hz2h4oTwE/AuYD+UHs3+dMmZLC/v01zJ+f5XPM888XsH9/DU89dXavYtoAlFL84Adz+PnP3+Pccye7JKy88UYxlZUtXHxxHmB+XBQVDc0Yw40bSzn77AlBHSs6OoKXXjo3JMkiU6em8e9/f7HXxxEEQRAEf9h1Jf8KWAZ8A/gHcC3QDHwTGA380O4JtdaNmLqIdtkJxAJTcI0znGG97grgWA4cWlNo24mEkSlT/McZaq159NHd3HzzScTFhSZC4MQTM5kyJYU1a/bzta8dB5gezn/4w2eAyb495ZTRXVm8PRV/Hgw4l6tpbe1g8+Yj3HrrwqCPF8oMYmllJgiCIIQbu0+ti4DbgKet95u01o9oU6JmK3BOOCZn8RrQClzqtv4yYIcOLiP5EoxS+FEv59Zn5OT4L3K9bVs5bW2dzJ+fGdLz/uAHc7j//h00NbXzr3/l88c/buHhh8/g978/leuvf4+SkgarFV5yr62UAwHncjVbt5YzaVKy9CUWBEEQhg12TUsTgJ1a6w6lVBvgXJTtYeARArAaBoLW+phS6o/AjUqpOuBT4CvACuB857FKqTeBiVrrXOv9RIyF82mMtTEWk3zyTeB+rbW9KP4BQE/dT9asKeCii6aEXDmbOXMUxx+fzjXXrKe4uI5HHz2TiROTmDIlhW9+czrXXfcuF144ZUB2PAmG5OQY6uvb6OjoZMOGEhYvHtPfUxIEQRCEPsOuxbACcFT3PQTMcdqWDsSHclJe+CWwGqN8rgVOBS7WWr/kNi4SV2W3DhODeD3wIvAsMBf4AcYdPmgYPXoEdXVt1NW1emxraGjj9deLWbUqJyzn/v7359Dc3M7jj5/pEkd4xRUzyMxM4I9/3DIk4gvBuH4TE6OprW1l40ZRDAVBEIThhV2L4YfACcCrwBrgN0qpJKAd+AmwMTzTM2hTb3C1tfgbt8ztfSWwKnwz6zsiIhRTpiRTWFjDnDmuRY7Xri1m3rwMMjLC044uLy+Vp57yjBZQSvHb357MxRe/OqTatKWlxbJvXzUlJQ3Mnt1vLcIFQRAEoc+xqxjeiXEng1HOcjExh5EYpfGa0E9NcCcnx2QmuyuGzz+/n8svn+Fjr/CSlBTDCy98iejoodOmLS0tjv/+9yAnn5wt7ecEQRCEYYWtp57W+mOt9fPW33Va64swruVUrfUpWuuicE5SMHiLMywsrKG4uI4lS8b206xMtuxQSDxxkJoaw9q1ReJGFgRBEIYdQZtDtNYtWutapdQZSqltoZyU4B1vJWuef76A88/PGVIWu/4mNTWOuro2UQwFQRCEYUcoCt6lYPoZC2FmypRU9u+vob7eJKB0dGheeKGQxx8/s59nNrRIS4tl6tRUsrLCE7MpCIIgCAOVwdArWbAYN24ESsHy5f/uWnfKKdlMnpzSj7MaeuTmppCcHNPf0xAEQRCEPkcUw0FEZGQE69Zd0N/TGPKsWjWlv6cgCIIgCP2CBKYJgiAIgiAIgB+LoVLKbrXk7BDNRRAEQRAEQehH/LmS92P6CfeEsjlOEARBEARBGMD4Uwwv77NZCIIgCIIgCP2OT8VQa/1YX05EEARBEARB6F8k+UQQBEEQBEEARDEUBEEQBEEQLEQxFARBEARBEABRDAVBEARBEAQLUQwFQRAEQRAEQBRDQRAEQRAEwUJpLbWp/aGUKgOKwnyadKA8zOcYKois7COysofIyT4iK3uInOwjsrKPXVlN1FpnBHsSUQwHAEqpj7XW8/t7HoMBkZV9RFb2EDnZR2RlD5GTfURW9ukrWYkrWRAEQRAEQQBEMRQEQRAEQRAsRDEcGDzQ3xMYRIis7COysofIyT4iK3uInOwjsrJPn8hKYgwFQRAEQRAEQCyGgiAIgiAIgoUohr1AKTVOKXWfUuoDpVSjUkorpSZ5GTdBKfWYUqrYGrdPKbVaKTXCbVyCUupWa3uTUuqQUupxH8dcrJR63xp3RCl1t1IqPlyftTcEIKfJSqnnlFLVSqkGpdTbSimPDCylVIRS6kal1EGlVLNSaqtS6iIf5/62UmqPUqpFKbVXKXVV6D9h6AilrJRSU5VS9yiltiml6pVSpUqpF5VSc3yce9jKyss+X7OOd9jH9kEjq3DISSk1Vin1sHXvaVFKHVBK/c7LuEEjJwjLvWqU9R0stO7VB5RSf1ZKeZQSUUqtUkp9Zt3TipRSNymlIsPzSXuHUurLSqk11jybrP/t75RSSW7j0pRSf1dKlVtyekMpNdvL8eKUUr+37lFNlvyXeBln+94/EAilnJRS85VSD1jfp0Zl9Il/KqUmezlv7+SktZYlyAVYBhwFXgHWAhqY5DZmBLAPOAB8A1gO/BxoAp5xG/sk0Aj8zBr3DeAgUAAkOo073tr/P8DpwLeAKvfjDZTFppxGAZ8De4CvAOcCbwN1wHS3sbcDLcBPLTndD3QCK93Gfdtaf7s1brX1/ur+lklfyAr4HrAN+In1+S8APgCagXkiK9frymmfVOAIUAoc9rJ9UMkqDN+/SdbYjcDFwFLMveo3g1lOoZYVoID3gDLgauvY1wAV1vdQOY09G+jAxJAtB35sfU/v7G+Z+JDTh8CzwKXW//9HQLW1PsLp828ADgNfA84B3sHU4Rvndrx/Wvt/G/NMex7zjJvrNs7WvX+gLKGUE3CXdT1dYx3rEmC3dT2ND6Wc+l1wg3lx/GOtv7/l4yZylrX+LLf1dwDtQIL1Pt56/1u3cedY+5/ttO7fQD4Q7bTu69a4E/tbLkHK6Sbr8+c6rRuBuUk/67Qu07rgb3Xb/01gm9P7KOAY8JjbuIetL1x0bz7TIJFVOk4PH2tdCuZHxOMiq25Zue3zAEYpeBQ3xXAwyirUcgJeAzb7+6yDUU6hlhUw1dr/O277X2WtP85p3WfAO27jbgZagez+losXOWV4Wed4Bq2w3p9vvV/uNCYFqATudVo3xxp3udv1sxd40WmdrXv/QFpCLCdvx5qIUfhuC6WcxJXcC7TWnTaGxVivtW7rqzGufGW9jwIifYzDGotSKhqjLD6rtW5zGvcs5iZyvq3J9yE25bQIyNda73farwHzS+pLSqkoa/XZGJk+4bb/E8BsJ7P6yUCGl3H/wPziXxzQh+gjQikrrXW5tu4ITuNqMBbssU6rh72sHCilTgUuA671cbxBJ6tQykkpNQXzHbzP7f7jzqCTE4T8mvJ374fue/p4YC7eZRUNfMH2B+gjtNZlXlZ/ZL067i3nASVa67ed9qsBXsL1OXUe0AY84zSuHXgaOFspFWuttnvvHzCEUk7ejqW1LsJYpJ3v572WkyiG4ecNjHXvTqXUDKVUolJqBfBD4P+sGwpa6zrMjeAHSqnl1riZwO+BrRhtH2AKEAfscD6J1roZ43Ke0RcfKgx0YBRbd1ow1tQp1vuZ1rr9buN2Wq8znMaBm5y8jBuM2JWVB0qpkcAsjAvCgciKrh9dDwC/d37ouzFUZWVXTqdar01KqXVW7GCVMrHQo5z2G6pyAvuy2gm8C/zKig9LVEqdhLEEvqq1dnwHvcpKa30AE1o0WGS11Hp1/lzu/38wcpmglEp0GndAa93oZVwMkOs0zs69f6ATrJw8UEpNx1gI3e/nvZKTKIZhxlLYFmNkvRMTh/Im8DImBsyZyzFu4rescTswvxjP1Fo7bkQjrdcqL6erdNo+2NgL5Dk/XJRSEcBJ1tuRTq/V7pYwzGd3HweecnIfNxixKytv3IexUv/JaZ3IynA9EAt4JFE4MVRlZVdOY6zXhzGW5y9g5PZFYK21j/P4oSYnsCkr6x610hr/EeaevgkoBJwTAfzd06sYBLJSSo0FbgPe0Fp/bK0eie/nFECazXGB3vsHLL2Uk/uxooD/w1gMH3La1M/7buEAAAh9SURBVGs5iWIYZpRScRgTeSbwP5hfCz/DBC3/xW34aowb66fWuP/BuF1eVd0ZzA7Xs/s/3XnbYOT/MNfj40qpKUqp0cC9gMPs7XDxKOx9dn9yGuzYlZULSqkbMQHL33OziA17WSmlcoFfYmTT7Od4Q1VWdq8pxzNjvdb6Wq31W1rrBzAB8fMwbiwYunKCwL5/D2Jcz1dh7ulXAfOB55yU6EF9T7csWi9g4i4vd96E/Xt1KMcNSEIgJ3f+DJwCXKa1dlYsey0nUQzDz5WYbLSVWusntNbvaq3vwmSKXqWs0iGW2/gG4Mda6z9Y457A/OKchwmEBv9af5rT9kGF1roQk7k1D2MCL8HEKf3RGlJqvVYCaUop94s8zWm786u7nEa6bR90BCCrLpQpE/Jb4Cat9cNum0VW5sH+FvChUipVKZWKcWMp672jFNSQlFUAcqqwXte5HeJ16/UE63VIygnsy0op9UVMlun/aK3vt+7p92N+8K/EZDOD/3t6KgNYVpbh40UgB5Mg6VzeyZcHy3GvrrI5zvmebufeP+AIkZycj/c74DvAFVrr190291pOohiGn9lAlda6wG39Zut1utM46A5MBUBrnY8JVnaMK8DED8x0HmddeDnArtBMu+/RWq/BBNHOwGT8zQMSgUNa62Jr2E6Mu889js4RN7HLaRy4ycnLuEGJTVkBoJT6H+CvwB+01rd7OZzIymxbibkJO5avYVynVXS7l4esrAL4/oFvS2Cn27ghJyewLSuv93Q87/1eZaVM/cQEBqisrJjcNRgX+kqt9Xa3ITvx/P+DkVmx1rreadxkpVSCl3GtdMfK2b33DyhCKCfH8X6JMSL9UGv9Dy/79VpOohiGnyMY7T3Xbf1C6/Vzp3HQHacCmCLFmF+NnwNYsYavARe7ZVR+GXMxvBi6qfc9WusOrfVurXWBUmoMxuX+N6chr2FuFpe67XoZsMMK2AZTJ6zcx7hKTD2oQY0NWaGUugB4BPi71vqnPg4lsoKvYup9OS9rMXJZjnHbwBCXlQ05fYi5V53jtqvjvUMJGtJyAluy8npPx+3ebymSW/Euqzbg1ZBOPARYbvB/YmoOnq+1/tDLsBeBsUqppU77JWMspS+6jYsG/p/TuCiMPF/XWrdYq+3e+wcMIZYTSqkfYELOfqm1vs/HaXsvJ281bGQJqE7Rl63lb5hf0Vdb75da2ydhyhXso7vA9c+sdR/TXeQyEtgC1OBa4NphMZzgdM65mOKfz2MuuCsxN9t/9bc8eiGnaIwrZhWwAvg+xkWzAYhxO9YdmOKvP8a46f+GsVSc6zbuKmv9amvcbdb7a/tbHn0hK2CJJadPMbEoi5yWE0RWrteVl2M/ivcC14NOViH+/n3DOsb/Yeq0XoOxqr6Na9HmQSenUMoKSMYofyXWMZZbr0eAYlybFqy0ZHO/JavrrO/u7/tbHj5k5JDNarf7yiKsoswYw9P7wCHMD6+zgfWYZ5V7QeanrWvoW5hn2nPW5z/RbZyte/9AWUIpJ2tbJ+aHgvuxZoRSTv0uuMG+WP90b8t6pzEzMHUGD2EUun2YKuZpbscaBfwBoww2WeOfwakQqtPYJXR3sTiKyTJN6G95BCsnTB3Hl63P0oJxma/29pkwSvRNQJE1dhvwZR/n/a4l7xZLrtf0tyz6SlbAr/0c66DIqsdjP4oXxXAwyirUcsLEye2wxpZist0TvYwbVHIKtayA8ZiM0QOYe/UBTELKWC9jL8RYDlswiuPNQGR/y8OHjA76kdOvncaNxGSwV2JK77wJzPFyvHjgbozS3IzJ3l7mZZzte/9AWEIpJ+t+1KO+EQo5KesggiAIgiAIwjBHYgwFQRAEQRAEQBRDQRAEQRAEwUIUQ0EQBEEQBAEQxVAQBEEQBEGwEMVQEARBEARBAEQxFARBEARBECxEMRQEQQgApdRzSqlKpVSWl23LlFKdSqkf9sfcBEEQeovUMRQEQQgASyHcCbyttXZu4xWPKSR7DDhNa93p4xCCIAgDFrEYCoIgBIDW+ijwI+DLSqlVTpt+DYwDrugrpVApFenWM10QBKFXiGIoCIIQIFrrJzBt0f6qlEpVSp2I6Uv6a631XuexSqmvKKU2K6UalVJVSqmnlVJj3cZ8XSn1jlKqTClVp5T6RCl1iduYOKWUVkrdrJT6lVKqCGgF8sL7aQVBGE6IK1kQBCEILOVuJ/BvYC7QDizSWnc4jfkRpgfsg8B/gFTgNkx/07la60Zr3C0YF/R+a9flwPXAlVrrR60xcZge6iXAXkx/4mZgs9a6IpyfVRCE4YMohoIgCEGilPoWRulrA+Zprbc7bUsFPgce01pf47R+KrAL+J7W+v+8HDMC4815BJiqtV5orXcohsVAnta6NWwfTBCEYYu4kgVBEIJEa/13oBT4j7NSaHEakAD8UykV5ViAQmtZ4hiolJqulHpWKVWCsTy2AZcBx3k57X9FKRQEIVxI0LIgCELvaLUWdzKt140+9jsAXZbFdUAl8DNrfStWgouX/Up7M1lBEAR/iGIoCIIQHhxxf5cA+V6211qvpwFjgVVa648dG5VS0T6OK/E/giCEDVEMBUEQwsO7mJjAHK31U37GJVivbY4VSqlMYGUY5yYIguAVUQwFQRDCgNa6Uil1A/AHpdQYYC1Qh7EOLgde1Vo/B2wAGoD7lVK3AcnAzcBRTF1EQRCEPkMUQ0EQhDChtb7Xqjf4Y+DrQCQmU/kdYLs1pkQpdRHwv8Aa4DCmxM1ETJyhIAhCnyHlagRBEARBEARAytUIgiAIgiAIFqIYCoIgCIIgCIAohoIgCIIgCIKFKIaCIAiCIAgCIIqhIAiCIAiCYCGKoSAIgiAIggCIYigIgiAIgiBYiGIoCIIgCIIgAKIYCoIgCIIgCBb/H8yY8dfO4izpAAAAAElFTkSuQmCC\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "#You can set the size of the figure by doing:\n", + "plt.figure(figsize=(10,5))\n", + "\n", + "#Plotting\n", + "plt.plot(temp_data['Year'], temp_data['Value'], color='#2929a3', linestyle='-', linewidth=1) \n", + "plt.title('Land global temperature anomalies. \\n')\n", + "plt.xlabel('Year')\n", + "plt.ylabel('Land temperature anomaly [°C]')\n", + "plt.grid();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Step 3: Least-squares linear regression \n", + "\n", + "In order to have an idea of the general behavior of our data, we can find a smooth curve that (approximately) fits the points. We generally look for a curve that's simple (e.g., a polynomial), and does not reproduce the noise that's always present in experimental data. \n", + "\n", + "Let $f(x)$ be the function that we'll fit to the $n+1$ data points: $(x_i, y_i)$, $i = 0, 1, ... ,n$:\n", + "\n", + "$$ \n", + " f(x) = f(x; a_0, a_1, ... , a_m) \n", + "$$\n", + "\n", + "The notation above means that $f$ is a function of $x$, with $m+1$ variable parameters $a_0, a_1, ... , a_m$, where $m < n$. We need to choose the form of $f(x)$ _a priori_, by inspecting the experimental data and knowing something about the phenomenon we've measured. Thus, curve fitting consists of two steps: \n", + "\n", + "1. Choosing the form of $f(x)$.\n", + "2. Computing the parameters that will give us the \"best fit\" to the data. \n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### What is the \"best\" fit?\n", + "\n", + "When the noise in the data is limited to the $y$-coordinate, it's common to use a **least-squares fit** [2], which minimizes the function\n", + "\n", + "$$\n", + "\\begin{equation} \n", + " S(a_0, a_1, ... , a_m) = \\sum_{i=0}^{n} [y_i - f(x_i)]^2\n", + "\\end{equation}~~~~~~(1) \n", + "$$\n", + "\n", + "with respect to each $a_j$. We find the values of the parameters for the best fit by solving the following equations:\n", + "\n", + "$$\n", + "\\begin{equation}\n", + " \\frac{\\partial{S}}{\\partial{a_k}} = 0, \\quad k = 0, 1, ... , m.\n", + "\\end{equation}~~~~~~(2)\n", + "$$\n", + "\n", + "Here, the terms $r_i = y_i - f(x_i)$ are called residuals: they tell us the discrepancy between the data and the fitting function at $x_i$. \n", + "\n", + "Take a look at the function $S$: what we want to minimize is the sum of the squares of the residuals. The equations (2) are generally nonlinear in $a_j$ and might be difficult to solve. Therefore, the fitting function is commonly chosen as a linear combination of specified functions $f_j(x)$, \n", + "\n", + "$$\n", + "\\begin{equation*}\n", + " f(x) = a_0f_0(x) + a_1f_1(x) + ... + a_mf_m(x)\n", + "\\end{equation*}~~~~~~(3)\n", + "$$\n", + "\n", + "which results in equations (2) being linear. In the case that the fitting function is polynomial, we have have $f_0(x) = 1, \\; f_1(x) = x, \\; f_2(x) = x^2$, and so on. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Linear regression \n", + "\n", + "When we talk about linear regression we mean \"fitting a function to the data.\" In this case,\n", + "\n", + "$$\n", + "\\begin{equation}\n", + " f(x) = a_0 + a_1x\n", + "\\end{equation}~~~~~~(4)\n", + "$$\n", + "\n", + "The function that we'll minimize is:\n", + "\n", + "$$\n", + "\\begin{equation}\n", + " S(a_0, a_1) = \\sum_{i=0}^{n} [y_i - f(x_i)]^2 = \\sum_{i=0}^{n} (y_i - a_0 - a_1x_i)^2 \n", + "\\end{equation}~~~~~~(5) \n", + "$$\n", + "\n", + "Equations (2) become:\n", + "\n", + "$$\n", + "\\begin{equation}\n", + " \\frac{\\partial{S}}{\\partial{a_0}} = \\sum_{i=0}^{n} -2(y_i - a_0 - a_1x_i) = 2 \\left[ a_0(n+1) + a_1\\sum_{i=0}^{n} x_i - \\sum_{i=0}^{n} y_i \\right] = 0\n", + "\\end{equation}~~~~~~(6) \n", + "$$\n", + "\n", + "$$\n", + "\\begin{equation}\n", + " \\frac{\\partial{S}}{\\partial{a_1}} = \\sum_{i=0}^{n} -2(y_i - a_0 - a_1x_i)x_i = 2 \\left[ a_0\\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i \\right] = 0\n", + "\\end{equation}~~~~~~(7) \n", + "$$\n", + "\n", + "Let's divide both equations by $2(n+1)$ and rearrange terms.\n", + "\n", + "Rearranging (6) and (7):\n", + "\n", + "$$\n", + "\\begin{align}\n", + " 2 \\left[ a_0(n+1) + a_1\\sum_{i=0}^{n} x_i - \\sum_{i=0}^{n} y_i \\right] &= 0 \\nonumber \\\\ \n", + " \\frac{a_0(n+1)}{n+1} + a_1 \\frac{\\sum_{i=0}^{n} x_i}{n+1} - \\frac{\\sum_{i=0}^{n} y_i}{n+1} &= 0 \\\\\n", + "\\end{align}~~~~~~(8)\n", + "$$\n", + "\n", + "$$\n", + "\\begin{align}\n", + " a_0 = \\bar{y} - a_1\\bar{x}\n", + "\\end{align}~~~~~~(9)\n", + "$$\n", + "\n", + "where $\\bar{x} = \\frac{\\sum_{i=0}^{n} x_i}{n+1}$ and $\\bar{y} = \\frac{\\sum_{i=0}^{n} y_i}{n+1}$.\n", + "\n", + "Rearranging (7):\n", + "\n", + "$$\n", + "\\begin{align}\n", + " 2 \\left[ a_0\\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i \\right] &= 0 \\\\\n", + " a_0\\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i &=0 \\\\\n", + "\\end{align}~~~~~~(10)\n", + "$$\n", + "\n", + "Now, if we replace $a_0$ from equation (8) into (9) and rearrange terms:\n", + "\n", + "$$\n", + "\\begin{align*}\n", + " (\\bar{y} - a_1\\bar{x})\\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i &= 0 \\\\ \n", + "\\end{align*}~~~~~~(11)\n", + "$$\n", + "\n", + "Replacing the definitions of the mean values into the equation, \n", + "\n", + "$$\n", + "\\begin{align*}\n", + " \\left[\\frac{1}{n+1}\\sum_{i=0}^{n} y_i - \\frac{a_1}{n+1}\\sum_{i=0}^{n} x_i \\right]\\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i &= 0 \\\\ \n", + " \\frac{1}{n+1}\\sum_{i=0}^{n} y_i \\sum_{i=0}^{n} x_i - \\frac{a_1}{n+1}\\sum_{i=0}^{n} x_i \\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i &= 0 \\\\ \n", + "\\end{align*}~~~~~~(12)\n", + "$$\n", + "\n", + "Leaving everything in terms of $\\bar{x}$, \n", + "\n", + "$$\n", + "\\begin{align*}\n", + " \\sum_{i=0}^{n} y_i \\bar{x} - a_1\\sum_{i=0}^{n} x_i \\bar{x} + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i = 0 \n", + "\\end{align*}~~~~~~(13)\n", + "$$\n", + "\n", + "Grouping the terms that have $a_1$ on the left-hand side and the rest on the right-hand side:\n", + "\n", + "$$\n", + "\\begin{align*}\n", + " a_1\\left[ \\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_i \\bar{x}\\right] &= \\sum_{i=0}^{n} x_iy_i - \\sum_{i=0}^{n} y_i \\bar{x} \\\\\n", + " a_1 \\sum_{i=0}^{n} (x_{i}^2 - x_i \\bar{x}) &= \\sum_{i=0}^{n} (x_iy_i - y_i \\bar{x}) \\\\\n", + " a_1 \\sum_{i=0}^{n} x_{i}(x_{i} -\\bar{x}) &= \\sum_{i=0}^{n} y_i(x_i - \\bar{x}) \n", + "\\end{align*}~~~~~~(14)\n", + "$$\n", + "\n", + "Finally, we get that:\n", + "\n", + "$$\n", + "\\begin{align}\n", + " a_1 = \\frac{ \\sum_{i=0}^{n} y_{i} (x_i - \\bar{x})}{\\sum_{i=0}^{n} x_i (x_i - \\bar{x})}\n", + "\\end{align}~~~~~~(15)\n", + "$$\n", + "\n", + "Then our coefficients are:\n", + "\n", + "$$\n", + "\\begin{align}\n", + " a_1 = \\frac{ \\sum_{i=0}^{n} y_{i} (x_i - \\bar{x})}{\\sum_{i=0}^{n} x_i (x_i - \\bar{x})} \\quad , \\quad a_0 = \\bar{y} - a_1\\bar{x}\n", + "\\end{align}~~~~~~(16)\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Let's fit!\n", + "\n", + "Let's now fit a straight line through the temperature-anomaly data, to see the trend over time. We'll use least-squares linear regression to find the slope and intercept of a line \n", + "\n", + "$y = a_1x+a_0$\n", + "\n", + "that fits our data.\n", + "\n", + "In our case, the `x`-data corresponds to `Year`, and the `y`-data is `Value`. To calculate our coefficients with the formula above, we need the mean values of our data. Since we'll need to compute the mean for both `x` and `y`. \n", + "\n", + "It is good coding practice to *avoid repeating* ourselves: we want to write code that is reusable, not only because it leads to less typing but also because it reduces errors. If you find yourself doing the same calculation multiple times, it's better to encapsulate it into a *function*. \n", + "\n", + "Remember the _key concept_ from [02_Working_with_Python](../../CompMech01-Getting-started/notebooks/02_Working_with_Python.ipynb): A function is a compact collection of code that executes some action on its arguments. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exercise \n", + "\n", + "Calculate the mean of the `year` and `temp_anomaly` arrays using the NumPy built-in function, `np.mean`.\n", + "\n", + "Assign the means to `mean_x` and `mean_y`." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": { + "collapsed": true, + "jupyter": { + "outputs_hidden": true + } + }, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now that we have mean values, we can compute our coefficients by following equations (12). We first calculate $a_1$ and then use that value to calculate $a_0$.\n", + "\n", + "Our coefficients are:\n", + "\n", + "$$\n", + " a_1 = \\frac{ \\sum_{i=0}^{n} y_{i} (x_i - \\bar{x})}{\\sum_{i=0}^{n} x_i (x_i - \\bar{x})} \\quad , \\quad a_0 = \\bar{y} - a_1\\bar{x}\n", + "$$ \n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We already calculated the mean values of the data arrays, but the formula requires two sums over new derived arrays. Guess what, NumPy has a built-in function for that: [`numpy.sum()`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.sum.html). Study the code below." + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "xi = temp_data['Year'].values\n", + "yi = temp_data['Value'].values\n", + "\n", + "x_mean = np.mean(xi)\n", + "y_mean = np.mean(yi)\n", + "\n", + "a_1 = np.sum(yi*(xi - x_mean)) / np.sum(xi*(xi - x_mean)) " + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.01037028394347266\n" + ] + } + ], + "source": [ + "print(a_1)" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "a_0 = y_mean - a_1*x_mean" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "-20.148685384658464\n" + ] + } + ], + "source": [ + "print(a_0)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "##### Exercise\n", + "\n", + "Write a function that computes the coefficients, call the function to compute them and compare the result with the values we obtained before. As a hint, we give you the structure that you should follow:\n", + "\n", + "```python\n", + "def coefficients(x, y, x_mean, y_mean):\n", + " \"\"\"\n", + " Write docstrings here\n", + " \"\"\"\n", + "\n", + " a_1 = \n", + " a_0 = \n", + " \n", + " return a_1, a_0\n", + "```" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "def coefficients(x, y, x_mean, y_mean):\n", + " \"\"\"\n", + " Write docstrings here\n", + " Arguments\n", + " ---------\n", + " ??\n", + " Returns\n", + " -------\n", + " ??\n", + " \"\"\"\n", + " # your code here\n", + " \n", + " return a_1, a_0" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We now have the coefficients of a linear function that best fits our data. With them, we can compute the predicted values of temperature anomaly, according to our fit. Check again the equations above: the values we are going to compute are $f(x_i)$. \n", + "\n", + "Let's call `reg` the array obtined from evaluating $f(x_i)$ for all years." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "reg = a_0 + a_1 * xi" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "With the values of our linear regression, we can plot it on top of the original data to see how they look together. Study the code below. " + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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//137ebmpr/66iuttdZRUVH6ueeeKzH+Ll266HfeeafE7YW/X/PmzdPu7u760KFD9rITJ05oT0/PAjEb+Z45iqN+L6pKfHy8q0OoMaSujJF6Mk7qyjijdQX8rCuR98iAESdQSpX4mD9/vn2/+fPno5SiYcOGxe6bX2hoaInnnDBhQlW/RQYOHFjgdefOnTl58qT99YYNGxgwYAANGzYkOzub7Oxs/Pz8CA0N5eeff7bv9/XXX9O7d28aNWqEh4eHvf/c77//XuD8kZGReHl5GYqt8L7p6els2bKFu+++2x5LdnY24eHheHp6smPHDgC2b9/OgAEDCvRJHDp0aLHXCA0NJSgoqEDZhg0biImJwc3NzX6Ntm3bEhISYn/P3bt356OPPmL27Nn8+uuvWH+Hr+nevTtz5szh/fffL1IHxdm2bRu33HIL7dpdm0CgZcuW9OnThy1bthTYt6zvmRBCCCGJoaiQxo0bF3hdr149rly5Yn997tw5li1bhqenZ4FHfHw8J06cAKyJ2NChQ2nZsiWLFy9my5YtbN26FaDAuQACAwMNx1Z43wsXLpCTk8MTTzxRIJb69euTlZVljycpKYlmzZoVONbLy4sGDRqUeY289zxr1qwi7/nw4cP2a0ybNo0nn3yS999/n5tuuolWrVrxr3/9y36Of//73wwfPpwZM2Zwww03cP311/PppyUvPnT69OliYwkMDOTChQsFysr6ngkhhBDSx9AJCrcClWTChAlMmDCB1NTUAn3BipPXqlVT+Pv7M3ToUF5++eUi2/Le64oVK2jWrBnLli2zt5AeO3as2PMVbkEtTeF9GzdujFKKuLg4hgwZUmT/Fi1aABAUFMTZs2cLbLty5QppaWmG4vH39ycmJoZx48YV2ZY3YMTLy4sZM2YwY8YM/vjjDz744AOeffZZbrjhBgYPHkzjxo155513eOedd/j111+ZPXs2999/P926daNz585Fznvdddexd+/eIuVnzpyhSROZa14IIUT5SGIonCIyMpLPPvuMLl26lDhdTEZGBp6engWSrKVLlzo8Fl9fX3r27MmBAwd45ZVXStzv1ltvZeHChQWmuPnyyy8NXycyMpI9e/bYb/uX5frrr+eNN97gvffe47fffmPw4MEFtnfr1o05c+awdOlS9u/fX2xieNttt/Hxxx9z5MgR2ra1zi2fmJjIjz/+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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10, 5))\n", + "\n", + "plt.plot(xi, yi,'s', color='#2929a3', linewidth=1, alpha=0.5,label='Measured anomoly') \n", + "plt.plot(xi, reg, 'k--', linewidth=2, label='Linear regression')\n", + "plt.xlabel('Year')\n", + "plt.ylabel('Land temperature anomaly [°C]')\n", + "plt.legend(loc='best', fontsize=15)\n", + "plt.grid();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Step 4: Apply regression using NumPy" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Above, we coded linear regression from scratch. But, guess what: we didn't have to because NumPy has built-in functions that do what we need!\n", + "\n", + "Yes! Python and NumPy are here to help! With [`polyfit()`](https://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.polyfit.html), we get the slope and $y$-intercept of the line that best fits the data. With [`poly1d()`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.poly1d.html), we can build the linear function from its slope and $y$-intercept.\n", + "\n", + "Check it out:" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "# First fit with NumPy, then name the coefficients obtained a_1n, a_0n:\n", + "a_1n, a_0n = np.polyfit(xi, yi, 1)\n", + "\n", + "f_linear = np.poly1d((a_1n, a_0n)) " + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.010370283943472659\n" + ] + } + ], + "source": [ + "print(a_1n)" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "-20.148685384658457\n" + ] + } + ], + "source": [ + "print(a_0n)" + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + " \n", + "0.01037 x - 20.15\n" + ] + } + ], + "source": [ + "print(f_linear)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The assignment `f_linear = np.poly1d((a_1n,a_0n))` creates a 1D polynomial. This means that the function only has one independent variable i.e. f(x) = (some value). You can create your own polynomial functions in a similar way using _anonymous functions_ i.e. `lambda`.\n", + "\n", + "```python\n", + "f_linear = lambda x: a_1n*x + a_0n\n", + "```\n", + "\n", + "In the line of code given above, we create the same assignment for `f_linear(x)`. One benefit of writing this out yourself is that you can see how each input is used directly. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exercise\n", + "\n", + "Use the `lambda` function to assign `f_linear` to our 1D polynomial instead of the `np.poly1d` assignment. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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//137ebmpr/66iuttdZRUVH6ueeeKzH+Ll266HfeeafE7YW/X/PmzdPu7u760KFD9rITJ05oT0/PAjEb+Z45iqN+L6pKfHy8q0OoMaSujJF6Mk7qyjijdQX8rCuR98iAESdQSpX4mD9/vn2/+fPno5SiYcOGxe6bX2hoaInnnDBhQlW/RQYOHFjgdefOnTl58qT99YYNGxgwYAANGzYkOzub7Oxs/Pz8CA0N5eeff7bv9/XXX9O7d28aNWqEh4eHvf/c77//XuD8kZGReHl5GYqt8L7p6els2bKFu+++2x5LdnY24eHheHp6smPHDgC2b9/OgAEDCvRJHDp0aLHXCA0NJSgoqEDZhg0biImJwc3NzX6Ntm3bEhISYn/P3bt356OPPmL27Nn8+uuvWH+Hr+nevTtz5szh/fffL1IHxdm2bRu33HIL7dpdm0CgZcuW9OnThy1bthTYt6zvmRBCCCGJoaiQxo0bF3hdr149rly5Yn997tw5li1bhqenZ4FHfHw8J06cAKyJ2NChQ2nZsiWLFy9my5YtbN26FaDAuQACAwMNx1Z43wsXLpCTk8MTTzxRIJb69euTlZVljycpKYlmzZoVONbLy4sGDRqUeY289zxr1qwi7/nw4cP2a0ybNo0nn3yS999/n5tuuolWrVrxr3/9y36Of//73wwfPpwZM2Zwww03cP311/PppyUvPnT69OliYwkMDOTChQsFysr6ngkhhBDSx9AJCrcClWTChAlMmDCB1NTUAn3BipPXqlVT+Pv7M3ToUF5++eUi2/Le64oVK2jWrBnLli2zt5AeO3as2PMVbkEtTeF9GzdujFKKuLg4hgwZUmT/Fi1aABAUFMTZs2cLbLty5QppaWmG4vH39ycmJoZx48YV2ZY3YMTLy4sZM2YwY8YM/vjjDz744AOeffZZbrjhBgYPHkzjxo155513eOedd/j111+ZPXs2999/P926daNz585Fznvdddexd+/eIuVnzpyhSROZa14IIUT5SGIonCIyMpLPPvuMLl26lDhdTEZGBp6engWSrKVLlzo8Fl9fX3r27MmBAwd45ZVXStzv1ltvZeHChQWmuPnyyy8NXycyMpI9e/bYb/uX5frrr+eNN97gvffe47fffmPw4MEFtnfr1o05c+awdOlS9u/fX2xieNttt/Hxxx9z5MgR2ra1zi2fmJjIjz/+yNSpUw3HLoQQQoDBxFAptRn4APhMay3zW9QyV69etY/Mza9fv34VPudzzz3HkiVLuOOOO5g4cSLBwcGcOXOG7777jvDwcEaNGsWAAQOYO3cuzz77LNHR0fz4448sWbKkMm+lRLNnzyYyMhI3NzdMJhN+fn4cP36c1atX8+qrr9KxY0eeffZZ3nvvPaKjo5k0aRJJSUm8/vrr+Pj44OZWdq+LuLg4wsLCiIqKYuzYsTRt2pTExETWr1/PmDFjiIiIICYmhtDQUG6++Wa8vb0xm81kZ2fTt29fAMLDw4mJieEvf/kLSikWLFiAr68vYWFhxV5zzJgxzJo1izvvvJMZM2bg7u5un9Lm4YcfdmgdCiGEqP2MthhmAYuAuUqpRcB8rfV+54UlqlJqaiojR44sUh4fH1/hczZt2pStW7fy0ksvMWnSJP7880+uu+46wsPD6datGwBDhgxh1qxZvPvuuyxYsIBevXrx1Vdf0bFjxwpftyTh4eFs2rSJ6dOnM3r0aHJycmjTpg2DBw+299ELDg5m9erVPPPMM4wYMYJOnTrxn//8xz6IpiwdO3Zk69atTJs2jQkTJpCRkUFwcDCRkZF06NABgN69e7Ns2TLmzJlDbm4unTt3xmKx0KNHDwB69erFRx99xNGjR3F3d+fmm2/m66+/LnFS6/r167Nhwwaee+45HnnkEbTWREREsHz5cvz9/R1Ue0IIIeoKZbQ/nFLqBuBR4EGgCfA9MA9YrrXOclqELtajRw+dfxRtfvv27aNTp06VvoaRPobCqqrr6ocffuD2229n48aN9O/fv8qu6wiu+rly1O9FVUlISCAiIsLVYdQIUlfGSD0ZJ3VlnNG6Ukrt0Fr3qOh1DPcx1FofAJ5TSk0F7gYmAJ8A55RSC7G2Ih6uaCBCVAcvvPACN998M0FBQRw4cICZM2fSrVu3St1WF0IIIWqKcg8+sfUxXKyU2gu8BfQFngcmK6VWABO11kmlnUOI6iozM5MpU6Zw5swZ/Pz8GDhwIG+99ZahPoZCCCGqj3ff3cWpU5eLlLdo4cvEid1dEFHNUK7EUCnlDYwCHgNCgf3AM8DnQDQQBywFIh0apRBVZO7cucydO9fVYQghhKikU6cuExxcdB7axMSiU5CJa4yOSu6KtX/h/YAv8AXwgtY6/+iEBUqpJKxJohBCCCFEjSCti9cYbTH8P+AUMBdrX8LTJex3ENhSwjYhhBBCiGpHWhevMZoYjgRWaq1zSttJa70PqFlDNytJa12uVTmEqM2MznIghBCiejLUo15rbSkrKayLPD09ycjIcHUYQlQbeavZCCGEqJlKbDFUSpW8dlhRWms90wHx1CjNmzcnMTGR4OBgvL29peVQ1FlaazIyMkhMTLRPGC6EEM5WWt/AFi18i70V3KKFb1WEVmOVdis5rhzn0UCdSwzzVsM4deoUWVkVn+P7ypUreHl5OSqsWk3qyriqritPT08CAwMNrRIjhBCOUFrfwNde6+OCiGq+EhNDrbVM3GZAw4YNK/2PMCEhgZtvvtlBEdVuUlfGSV0JIYQx0rp4TbknuHYFpVRL4AWgB3AT4A201VofNXCsm+3YR4Eg4AAwQ2ttcVrAQgghhKgx6tqUNKWpEYkh0AHrMnw7sK7RPLAcx84EJgMv2Y6/F/hcKXWX1nqNowMVQgghRN1R2+ZANJwYKqUmAI8DNwD1C2/XWrs7MK7CNmmtA21xjMNgYqiUao41KXxda/2GrTheKdUBeB2QxFAIIYQQhhVOBHfuTMbHxxM/P0/CwoLs5TV1DkSjK588CLwLLMJ6K/c/gCcwFDiLdRk8p9Fa51bw0EFAPWBJofIlwH+UUm211kcqFZwQQgghXMIVfQMLD3jZv/8Cfn71SE296rRrViWjLYbPAq9hvS07Dnhfa71TKdUESADOOye8SusCZGJdkSW/vbavnQFJDIUQQogaqCbeqq3ujI48vh7YBOTaHvUAtNYXgFeBZ5wSXeX5A3/qossxpOTbLoQQQgghMN5imAG4aa21UioJaAdstW1LA1o4IzgHUFjnWCyuvOSDrP0pJwAEBgaSkJDg+MjySUtLc/o1agupK+OkroyRejJO6soYqSfjamJdJSWdJyvrWvqUlpZBTo4bGRm5HD161F5+/ny2Q99bVdWV0cRwN9aRwRuwjgr+m1LqCJCNdSLs/U6JrvJSgCZKKVWo1bBJvu1FaK3nA/MBevTooSMiIpwaZEJCAs6+Rm0hdWWc1JUxUk/GSV0ZI/VkXE2sq3XrNhfoY3jmTBJpaVm4uWXh6dnUXn7LLb5ERDjuVndV1ZXRxHA+1lZCgJexJog/2F6nAsMdHJej7MU6gro9BfsZdrZ9/a3KIxJCCCFqsdo2fUthhQe8tGzZwF5eG96focRQa70s3/ODSqkuQC/AB/hRa33OSfFV1lrgKnA/8Pd85Q8Ae2REshBCCOFYpS1TVxvUhuSvNBWa4FprfRlrq2GVUUqZbE9DbV/vVEqdBc5qrb+z7ZMNLNJaP2KLM1kp9TYwVSmVCuwE7gHuAIZVZfxCCCGEKF1tb22sCcqVGCqlWgGtAK/C27TWGx0VVAk+L/T6fdvX74AI23N32yO/l7AOkHmGa0vi3a21XuWcMIUQQghREbW9tbEmMDrBdTusk1iH5RXZvmqujfx15sonaK1LHUlc0j5a6xzgH7aHEEIIIYQogdEWw/8FWmOd6Ho/1n57QgPjg5QAACAASURBVAghhBDVgjNvQ9elW9xGE8NbgTFaa4szgxFCCCFEzeaKZerAsbeha/t6yKUxmhieRFoJhRBCCFGG2tCCVtvXQy6N0cTwn8ALSqmNthHJQgghhBAOVbi1cd++FDIysvH29mDq1M0F9qsNCWh1ZHQew8VKqRuBo0qprcCForvohxwenRBCCCHqjMLJ3tSpm50ySrku9RksL6OjkscAU4Ec4BaK3lYubj1iIYQQQohqR6bFKZnRW8l/B1YAj2it/3RiPEIIIYQQ5VbWoJf8rYQ7dyazf7/15mfhASXFadDAk9TUq6SnZxW4hrMH1LiC0cQwAHhfkkIhhBBCVEdl3QLO30qYN5gEKHZASW1fD7k0RhPDH4BOwLdOjEUIIYQQwuVqe/JXGqOJ4TPAZ0qpC8Baig4+QWud68jAhBBCCFG3uWpOxLrMaGK4z/b14xK263KcSwghhBACcM0I4bw+g0CBfoOScBpP5mYgI4+FEEII4WCuGCF8220FVy957bU+TrtWTWN0HsM4J8chhBBCCOE0clvamHLf/lVKNQCaACmyCooQQgghqkplbjvX5QEl5WE4MVRKDQJeBboDCtBKqZ3AS1rr9U6KTwghhBA1WGnJXNeu5TuXTEztfEZXPhkErAYOAjOBJOA64B5gjVJqiCSHQgghhCistGSuvImhcD6jLYZxwDfAXfmnpVFKzQC+wroyiiSGQgghhCgX6ftXvRhNDG8CRhaeq1BrnauUeh/4zOGRCSGEEKJacOaUMtL3r3oxmhhmAg1L2OZn2y6EEEKIWkj69tUdRhPDBGCmUmqr1vpIXqFSqjXW28zxjg9NCCGEEOIaue3sfEYTwxeAzcABpdRW4DQQBPQE/rRtF0IIIYQooPRk7s9ynaum3nZOT0/nypUr+Pv7uzqUMhmd4Pp3pVQ34K/A7cAtQArwL+BtrfVp54UohBBCiJqqtGQuISGh6gKpYpmZmaxYsQKLxcKaNWt46qmnmDVrlqvDKpPheQxtyd9kJ8YihBBCCFFjXb16lXr16gGQk5PDI488Qnp6OgBHjhwp7dBqo9wrnwghhBCibpG+fSU7f/48X375JWazme3bt3PixAnq16+Pj48PU6ZMoXHjxowYMYLWrVu7OlRDyrPyyUPAKKA14FVos9Zat3dkYEIIIYSoHmpq3z5nSU5Ott8m3rhxIzk5OQC4ubmxY8cOevfuDUBcXJwLo6wYoyufvIx1Eus9wC5kehohhBBC1EHHjh2jXbt25OZap3Z2d3dn4MCBmEwmhg0bRvPmzV0cYeUYbTF8BPiX1nqSM4MRQgghhKgujh8/zvLly9m7dy8LFiwAoE2bNnTt2pXg4GBMJhNDhw4lICDAxZE6jtHEMABY5cxAhBBCCCFc7dChQ1gsFiwWC9u2bbOX/+1vf6Nt27YA7NixA3d3d1eF6FRGE8PvsC6Lt9GJsQghhBCiBnLmknlVZf/+/dx333388ssv9jIfHx+ioqKIjY0lMDDQXl5bk0Iwnhg+CyxXSp0H1mCdw7CAwusoCyGEEKJuqGlL5mmt2bt3L3/88QcxMTEAtGzZkn379uHn50d0dDSxsbEMHjwYHx8fF0dbtYwmhr/bvi4sYbsux7mEEEIIIaqU1ppdu3ZhNpuxWCwcOHCAxo0bExUVRb169WjQoAHfffcd3bp1w8ur8OQrdYfRZG4G1uRPCCGEEKLGOHbsGO+99x4Wi4XDhw/bywMCAoiJiSE1NdU+eCQsLMxVYVYbRpfEi3NyHEIIIYQQlZabm0tycjJBQUEAXLx4kTlz5gAQGBjIiBEjMJlM9O3bFw8PudlZmNSIEEIIIapM/oEqSUnnWbduM1C5gSrZ2dl8//33WCwWli9fTuvWrdm6dSsAXbt2Zfr06URGRtK7d+9aPXDEEcqz8kk94E7gBopf+WSmIwMTQgghRM1QniXz8g9UycrysD8v70CVrKws4uPjMZvNrFy5krNnz9q31a9fn8uXL+Pr64tSqkauQOIqRlc+aQH8AIRg7WuobJvy9zuUxFAIIYSog1wxJY3ZbOa+++6zv+7QoQMmkwmTycQtt9yCUqqUo0VJjLYYzgHOAn2B48BtttdjgXuAgU6JTgghhBB1WkZGBuvWrcNisdCsWTPeeustAKKioujevTvR0dGYTCa6du0qyaADGE0MbwcmA6dsr3O11keBV5RS7sA7wDDHhyeEEEKIuuby5cusWbMGs9nM6tWruXzZ2icxICCA2bNn4+HhQcOGDQtMRi0cozxL4p3SWucqpS4DTfJt2wg85fDIhBBCCFEpNXFFkiVLljBhwgQyMjLsZaGhoZhMJmJjY2UksZMZrd2TQFPb80NYbx1vsL0OA644OC4hhBBCVFJ1XJEk/0CVU6f+ZP/+z/Hy8qNfv0EAdO7cmYyMDHr27InJZGLEiBH2NYqF8xlNDOOBfsBK4EPgPaVUdyALGGQrE0IIIYQo1ahRLVm5ciUWi4X169eTk5NDeHg4Eye+AMDNN9/MyZMnCQ4OdnGkdZPRxHAa4A+gtZ6nlPLAOujEB5iNdWUUIYQQQohirV27ljfeeIOEhARycnIAcHNzIzIykrvvvhutNUoplFKSFLqQ0ZVPzgHn8r1+F3jXWUEJIYQQomY7efIkOTk5tGnTBoDk5GS+/fZbPDw8GDx4MCaTiaZNmzJsmIxdrU6kB6cQQghRQ1W3wSVHjx7FYrFgNpvZunUrjz76KB988AEAQ4cO5aOPPmLo0KE0aWIdw5qQkFDlMYrSSWIohBBC1FBlDS4pz4okFXXo0CE+//xzzGYzO3bssJd7e3uj9bV1MBo3bsxDDz3ksOsK55DEUAghhKil8rca5m9dPHXqMlOnVnyN4pycHPuawx9++CFz5swBwNfXl7vuuguTycSdd96Jr6/jElBRNWpMYqiUagW8DQzAuiTfBuBZrfVxA8fqEjbdrLXe5bgohRBCiOqpMlPXaK3ZvXs3ZrMZs9nM448/zsSJEwG45557OH36NCaTiYEDB+Lt7e3w2EXVqRGJoVLKB+tE2pnAQ1jXaP4HEK+U6qa1LtrBoqiPKDqtzu+OjFMIIYSoLbTW7Ny5054MHjx40L5t3bp19sQwNDSUxYsXuypM4WDlTgyVUg24thJKluNDKtZ4oB1wg9b6oC2OX4E/gEeBtwycI1FrvdV5IQohhBC1x8MPP8yiRYvsr5s1a0ZMTAwmk4mIiAjXBSacynBiqJS6C+t8hTdhbbELA3Yqpf4X2Ki1/sQ5IQIwFNialxQCaK2PKKU2Y12j2UhiKIQQQtQqjhhckpubw6ZNmzCbzYwaNYpevXoB0LdvX7755htGjBiByWTi9ttvt/crFLWXocRQKTUcsADfAi9gndQ6zxGst3edmRh2Ab4opnwvMNLgOR5XSk0BcoCtwHSt9fcOik8IIYSwK2saGUdNM1PRKWlycrI5eHAHu3Zt4JdfvmX27BQAcnNz7Ynh6NGjGTNmDG5ubhW6hqiZjLYYTgcWaq3H2VY9yZ8Y7gGecHhkBfkDF4opTwGaGDh+CfAVcApoA0wBNiqlBmitExwVpBBCCAFlD/RwxRrGea2LmzbN55dfviAj46J9W7t27YiNjWXUqFH2Mk9PT6fFIqovo4lhJ+B52/PCI3wvYO1z6GzFjSxWhg7UenS+l98rpb7AmtD+AwgvclKlJgATAAIDA50+AWdaWppM8mmQ1JVxUlfGSD0ZJ3VlTFpaGklJmWRlFf0Xe/58NgkJCSQlnS91u6NcvXqVn3/+mc6dO9O1a2O6doWDB9P58ceLtGrVin79+tG3b186dOiAUoqLFy9W6fdYfqaMq6q6MpoYXgKalrAtBDjrkGhKdgHbWs2FNKH4lsRSaa1TlVKrgUdK2D4fmA/Qo0cP7exOtgkJCdKR1yCpK+OkroyRejJO6sqYhIQEgoKaFNsi6OmZRkREH9at21zq9spIT09n7dq1mM1mvvrqK1JTU5k3bx7Dhw8HICQkhLi4ODp37oxShtpXnEZ+poyrqroymhiuB6Yqpb4GUm1lWilVH3gK+NoZweWzF2s/w8I6A79V8JyK4lshhRBCiBrHbDazbNky1qxZQ3p6ur28e/fuNGrUyP46JCTEBdGJmsJoYvgSsA04AKzBmlC9CHQDGgHDnRLdNV8Cbyil2mmtDwMopUKAPrY4ykUp1RCIAn5yYIxCCCFElbl48SJ+fn72wSHz589n/fr1AISFhREbG0tsbCzt27ev0Pmr2zrMomoYSgy11keVUrcAfwcGYR3Z2xdYC7yitT7lvBABWIC1ZfILpdQ0rInpTOAE+SatVkq1AQ4BM7TWM2xlk4EbgHiuDT6ZDAQB9zs5biGEEHVQWdPIVHSamZSUFL744gvMZjPr169n48aNhIdbu8pPnDiRIUOGMGLECFq3bl3p9+CKATLC9YxOV9MIOKu1LrZPnrNprS8rpe7AuiTeYqy3gb/FuiRe/p9QBbgD+cfWHwBibI9GWPtLbgYe0Vpvq4LwhRBC1DFltaiVp8UtOTmZlStXYjabiY+PJzs7GwA3Nzd++eUXe2IYHR1d8YCFsCkzMbRNT3Mea2K1yukRlcC2JnJsGfscpdBIZa31KlwYtxBCCFFRWmtuvfVWjh8/DoC7uzsDBgzAZDIxfPhwmjdv7uIIRW1TZmKotc5WSp3BevtYCCGEEE5w/PhxLBYLK1aswGKx0KxZM5RSjBw5kn379mEymRg6dCgBAVUxQ5yoq4wOPlkCjMM68EQIIYQQDnDo0CEsFgsWi4Vt2671blq5ciXjx48HYM6cOfZpZawDQvYXOY8MCBGOYjQxPArcp5TajnVputMUmupFa/0fx4YmhBBC1E5ZWVn07t2bn3/+2V7m4+NDVFQUsbGxDBkyxF6ef67BqhwQ4oh1mEXNYzQxfM/2NRgILWa7BiQxFEIIIQrRWrN3715Wr17NlClTcHNzw9PTEz8/P/z8/IiOjsZkMjFo0CB8fHwqdS1HTjEjLZB1k9HEsK1ToxBCCCFqEa01u3btwmw2Y7FYOHDgAAB9+/alV69eAHz00Uc0b94cLy8vh11XppgRlWV0HsNjzg5ECCGEqOnS0tL48MMPeeSRRzh8+LC9PCAggOHDhxdYgcQRcw0K4WhGWwyFEEIIUUhubi779u2jSxfrqq3e3t6sW7eOCxcuEBgYyIgRI4iNjaVfv354eMi/XFH9GZ3g+ghlrCustW7nkIiEEEKIaiw7O5vvv/8ei8XC8uXLOXv2LGfOnMHf3x93d3eefvppIiMj6d27N+7u7g69tgwIEc5m9OPLdxRNDAOA3kAasNGRQQkhhBDVSVZWFvHx8fZ5Bs+ePWvf1qZNGw4dOoS/vz8AERER3H777U6Jw5kDQsozcEXWUa69jPYxHFNcuVKqMdb1kjc4MCYhhBDC5bTW9qlizp07x+DBg9Ha2kbSoUMHTCYTsbGxhIaGFphSxpUq06JYnoErMsil9qpUhwet9Z9KqTnAq8AnjglJCCGEcI2MjAy++eYbzGYzv/76K7t27UIpxXXXXcdDDz1Eq1atMJlMdO3atdokg/lJa52oLEf0hL0CtHTAeYQQQogqd/nyZdasWYPFYuGrr77i8uVrt0h3795Nt27dAFi4cKGrQhSiylQ4MVRKeQB/AeKAvY4KSAghhKgqe/bsISwsjIyMDHtZjx49iI2NJTY2luuvv96F0QlR9YyOSs6l5FHJl4Aoh0UkhBBCOMGFCxdYtWoVx44d4+WXXwbgxhtvxM/Pj+7du9uTwZCQENcGKoQLGW0xnEHRxPAKcAz4Wmt90aFRCSGEEA5w7tw5Vq5cicViYcOGDWRnZ+Pp6cnTTz9No0aN8PDw4ODBg/j5+bk6VJcrz8AVmTan9jI6KjnOyXEIIYQQDrN7924mTZpEfHwCubk5ACjlRps2odx4Y38WLNjL5Mm9ASQptCnPwBUZ5FJ7Gb2VvBF4Qmu9v5htHYEPtNZ3ODo4IYQQwoiTJ09y7Ngx+vTpA4C/vz/ffvstbm7udOrUh+7dI+naNQI/P+tcgzVpWhWZM1BUJaO3kiOAhiVs8wP6OSQaIYQQwqCjR49isVgwm81s3bqVdu3acfDgQZRSBAcH8+WXX7Jxowft27dweiz5k7ekpPOsW7cZcEzyJnMGiqpUnlHJJQ0+aY919RMhhBDCqRITE1m8eDFms5kdO3bYy729venevTtpaWn2W8PR0dH8+OPmKokrf/KWleVhf16dkzdpiRTFKTExVEo9DDxse6mB+Uqp1EK7eWOdsuZb54QnhBCirrt8+TK+vtZBDXv37mXq1KkA+Pr6ctddd2Eymbjzzjvt+whjpCVSFKe0FsNcIMf2XBV6nec8MA+Y5fjQhBBC1EVaa3bv3o3ZbMZsNtOxY0dWrlwJQP/+/Rk3bhx33XUXAwcOxNvb28XRClG7lJgYaq0XAYsAlFLxwOPFDT4RQgghKktrzc6dO+3J4MGDB+3bLl68SFZWFp6ennh6erJgwQLD55VpVYQoH6PT1fR3diBCCCHqrg8//JDHH3/c/rpZs2bExMRgMpmIiIjA09OzQuetDX3lJLkVValcS+IppW4CbgC8Cm/TWn/sqKCEEELUTjk5OWzevBmLxUJISAiTJk0CYMiQIbRo0cKeDN5+++24u7u7OFrj8idv589n4+mZZi+vrNqQ3Iqaw+g8ho2B1UDPvCLb1/wjlSUxFELUejKSs2Ql1U1gYH26dr2I2WxmxYoVnDlzBoCOHTvy7LPPopSidevWnDx5EqVUkeNdpTzf6/yvExISiIjo4/T4KktaIkVxjLYY/hMIAPoC3wMxwEVgLNALuNcp0QkhRDUjIzlLVlzd/PTTl/zrX2+SkXFt5dR27doRGxuLyWQqsG91Sgqh9n+v6/oHGVE8o4nhIODvwFbb65Na6x1AglJqHvAM8KAT4hNCCFFDZGdnsnv3Dho0aEzbtjcB0KBBEzIyLtKxY0dMJhMmk4nu3btXuyRQCGFlNDG8Djistc5RSl3ButpJnuXApw6PTAghRLWXnp7O2rVrMZvNWCxfcPVqOjfdFMm4cW8CcMMNPXnkkY9ZsOABSQaFqAGMJoZJQGPb82NYbx8n2F53cHBMQgghqrkNGzbw4YcfsmbNGtLT0+3lLVveSLt2125Renh40qxZO0kKhaghjCaGP2BNBr8CFgPTlVIhQDbwEPClM4ITQoiKqu2DRKr6/V28eJGLF6/1E/zll18wm80AhIWFYTKZOHy4DV263ODwawshqo7RxPDvQN4q5HOwDkS5B/DBmhROdHxoQghRcc4aOFBdRnJWxcCIlJQUvvjiCywWC9988w333Xcfw4YNA+Duu+9my5YzBAX1olGjIFJS4PTpFA4fPoy3twedOvnbz1NTR7lWl++1EFXJ6ATXh4BDtudZwF9tDyGEqFNqQ2tjaZKTk1m5ciVms5n4+Hiys7MBcHNz49y5c/b92rRpww03xBRITvOeJyam8dpr1X+6lrKU9b0uqdX26tWLREQ4KSghnKzMxFApVQ9rH8MxWmu5ZSyEELXYlClT+Phj67S07u7uDBgwAJPJxPDhw/ntt99cHF31UlKr7Y4dSS6IRgjHKDMx1FpfVUplA1eqIB4hhBBV4Pjx4yxfvpx3311Et26x3HijdeXTjIyutG/fi9tuG8Q77zxFQECA/RhJDIWo/Yz2MVwJmIBvnBiLEEIIJzp8+DAWiwWz2cy2bdvs5U2aBBEZGQ1AcPAA+vYdQGJiWoGkUAhRNxhNDL8G3lFKmbEmiacpuBweWuuNDo5NCCEqrLYPHCjv+xs9ejRLliyxv/bx8SEqKoqrV/9CePj/OC3O6q62j14XoryMJoYW29cRtkcejXXdZA3UnNXOhRC1Xnn+qdfE5KCkuLTW7NmzB7PZzP3338/1118PQOfOnfHz8yM6OprY2FgGDx6Mj48PU6duxsurYslybUi+a/uyd0KUl9HEsL9ToxBCCBeq6cmB1ppdu3ZhNpsxm838/vvvAHh4eDBt2jQAnnrqKSZNmoSXl1eFr7Nq1UXWrdtcpLw6J9DOVFJi7O9v9F+rENWP0elqvnN2IEII4SyltQh27VrxY6tDMjRz5kwWLlzIkSNH7GUBAQEMHz6c/v2vfab38/Mr7vBySUnJJjS05ibQjlbS9z8hIaFIWXX/ORIiT7k+1iilmgI9sU5wvUprnaKU8gKuaq1znRGgEEJUVmktgmUlhtWpNTE3N5ctW7Zwyy234O3tDcD+/fs5cuQIgYGBjBgxgtjYWPr164eHh7E/77XhdnBVqUxyV51+joQojaG/HMq6yOVsrCuc1MPap/BWIAX4AuuSeTOdFKMQQtRZOTk5fP/995jNZpYvX87p06dZvnw5MTExgHXewccee4zevXvj7l7+rt7SWmWcJHeiLjDaYjgVeAqYAawHfsq3bRUwGkkMhRC1xE8/JZGWlkV6ehYA+/dfAMDPz5OwsCCnX19rzYYNGzCbzaxYsYKzZ8/at7Vp04aMjAz76+7dJbGrjOrYYiq3nYUrGU0MxwEztNavKaUKfyQ9CLR3bFhCCFF1CicHycnp+Ph4EhjoQ2pqFn5+9QBITb1arvMW/ge/b18KGRnZxa4l/NhjXfD09ARAKcXkyZP59ddfAejQoQMmk4nY2FhCQ0Ox3sQRjlAdEy1pmRSuZDQxDAa2lrDtKiCdUYQQNVbh5GDq1M32f8zffnuiwuct/A9+//4LBAb6kpp6leDgBly9eoX9+7ewatVaXn55K9u2baNjx46AdRTxiRMnMJlMdO3atcqSwdJaq/z9Papd61ptULjOd+5MZv/+C1XWQi1EfkYTw0TgL0B8MdtuAo4UUy6EENVC4RbB/C13SUlX7VOwFHerrkEDT3tLYXp6lv08FU2GsrKukJi4hYULf2Hv3u/JzEy3b4uPj7cnhuPHj6/Q+SurtNaq6OhGRET0cUFUNV9pt6yL+wDh51ev3C3UQjiC0cTwc+AVpdROrrUcaqVUR+CvwHxnBCeEEI5QWovg0aNH7c+L+8d9223XWmwSE9N47bWKJ0a5uTmsWPEQmZkX7WWtWnWmXbvbWbDgr/bJqEX1VJn+iKXdsp46tejckEK4itHEMA7oDWwCjtnKPgdaAT8Crzs8skKUUq2At4EBWFdb2QA8q7U+buBYL6yDYx4AGgO7gBe01pucF7EQoi67cOECu3d/zdq1P/Hgg6/i6VkfNzd3goK6c+lSEv36RXHTTZE0bRpMYmKaJIXl4KrBGdWxP6IQjmZ0gusMpVQEcB8wCOuAk/NYk62lWutsp0UIKKV8gI1AJvAQ1uly/gHEK6W6aa2L/oUo6P8BUcAU4DDwJLBOKdVLa73LeZELIWqiirYMnTt3jpUrV2KxWNiwYQPZ2dY/jWFh0XTt2g+A8PAXuHw5h8jIVo4PvI6o7YMz8rov5O+6ANKXU1QNwxNca61zgMW2R1UbD7QDbtBaHwRQSv0K/AE8CrxV0oFKqZuwJrRjtdYLbWXfAXuxTr8z1LmhC1Hz1bXpM8r7ntLS0hg+fDgJCQnk5OQA4O7uTseOYYSE3I6XVzsSE9PQWnP27BW8vT3kH74oUV73hcp2XRCiIsq78kkHIAzrKOWTwPa8RM3JhgJb819La31EKbUZGEYpiaHt2CxgWb5js5VSnwIvKqXqa60znRS3ELVCbW+hKa+TJ0+SkJDAAw88AECDBg04ffo0SikGDx6MyWRi2LBhNG3a1MWRll/praV/Ou26de3DR37VcS5FUXcZXfnEC3gf60TW+ecxzFFKLQKedHJy1QXrCiuF7QVGGjj2iNY6vVD5XqyruHSwPRdC1BH5/xGfP5+Np2fZI42PHj2KxWLBYrGwZcsWAHr37k27du0A+OSTT2jdujVLlhzj4MHLvPnmAeBAgWvWhASntBiLWwPYUeryh4+a8HMh6g6jLYZvAPcD04FPgTNAIDAKeAVIB552RoA2/sCFYspTgCaVODZvuxDCBcpqJXJWK1L+YxMSEkqcguXSpUvMmzcPs9nMzz//bC/39vbmzjvv5MqVK/aym266CYBTp36rswmOEKLmM5oY3gv8XWv9z3xlh4FXbZOuTsK5iSFYB5wUZmTGV1XeY5VSE4AJAIGBgU79lAzW/knOvkZtIXVlnCPrKinpPFlZRf9cnD+fXe5rrFp1kZQU66CMQ4cyqV/fDQBvbzc6dqwPwM6dSSQk/MnOnecJCCh63bztJZ03P39/D6KjG5UYT+F6SklJwd/f+nkxIyOD6dOnk5mZiZeXF7169aJfv36EhYXh7e1NcnIyycnJBc7nyLqqbpz5+1eeert69SI7diQV2dff36Na1LH8nTJO6sq4qqoro4lhfWBbCdt+wnpL1pkuUHzLXhOKbw3MLwVoXcKxedsL0FrPxzY3Y48ePXRERIThQCvC2mLh3GvUFlJXxjmyrtat21xsK5inZ1q5Jzxet24zoaHWc/3554kCy82FhLQqcN7yXDf/efNLTCw9xvj4eJo0aYLFYsFsNnPq1CmSk5OpV88a1+zZs2nTpg0DBw7E29vb0PtzVF1VB/lbbZOSMgkKsv7pdPSt8fLUW+Ef6/wxrlt3rdxVt+/l75RxUlfGVVVdGU0MNwADbV8LG4h1Khln2ou1r2BhnYHfDBwbo5TyKdTPsDPW5fyqYvCMEDVabescr7Vmx44dWCwWFi9eTGJion1bkyZNOHDgAF27dgXg6aedfTOkesvf9y8ry6PUycBdpS73TxTC0Ywmhm8Bi5VSvlgnts7rY3g3MAR4QCnVLm9nrfVhB8f5JfCGUqpd3rmVUiFAH+BFA8f+HesglUW2Yz2Ae4BvZESyEGWrbZ3j9+3bx6233mp/3axZM2JiYjCZTERERODp6VklcbhqJG51HAFc2z58CFFTGU0Mv7N9fRx4LF+5KrQ9jzuOtQB4CvhCKTUNa5/BmcAJ4EN7tI0enwAAIABJREFUMEq1AQ4BM7TWMwC01ruUUsuAuUopT6zrOj8OtMU6oEaIWmnVqov2NYDzqymjYx0hNzeH48d38cwzn3H8+HFWrFgBQKdOnYiIiKBLly506NCBp556Cg+Pcs3eVaLyJDiuaumqji1sdeVnUojqzuhfwoedGkUZtNaXlVJ3YF0SbzHWhPRbrEvi5f9LprAmpW6FTvEw8CrW1VIaA/8HDNZa73R27EIUVri1Zt++FDIysvH29qBTp2tdaSubwKWkZJfY5666yFvhASiwykNeElWRVqScnGwOHtzBrl0b+L//20hq6nn7tuPHj9O6dWuUUsTHxwPWfjuOSgrBcQlOdWzVc6Ta/v6EqKmMLom3yNmBGIjhOBBbxj5HKWa0sdY6A3jO9hDCpQq31uzff4HAQF9SU68WKK9OCVxlFJcI79yZbCgRLk+C0KKFL9u3b+Pzz6eQkXHRXh4Q0JJHHrmP2NhYWrVy/DJ0zkpwCv+c/PRTEmlpWezcmVzgejU1kaqOrZZCiHKufCJEdSAtDTVL4QQg/+CFyiz3lZmZyfr160lOTmbs2LFMnNidS5fasWzZRDp27MjIkSOJjY2le/fu2KbVcoqqSnDS0rLsI7ir8gNERSYDr2rSP1EIxzGcGCqlBmMdwNEK8Cq0WWut+zkyMCFKIi0NdVd6ejpr167FYrGwatUqUlNT8ff3Z/To0Xh6etKwYUN+//13WrVq5dRksC4xOhm4K8kHQiEc5/+3d+/hUVX3/sff30AwCUQTkIsKcr+oVEEEbLUYvHFRi5jRarX682i99frraevhsbVoPUdP1baWY7W2x+rRelAnqFCLCirUqqhAUVRAEdQiASQgJgZCSNb5Y+0kk2ESdpKZJJN8Xs8zzzB7r9l7zZfJ3t9Za+21w94S7yfAbcCn+Old9qayUiLStprSKtsaLbhvvfUWt9xyC08//TTl5XWzTo0dO5ZIJEJFRUXtlcRHHplo2tL2qbGWrkQxbY39tkfqJRBpPWFbDL+Dv/r3O865qhTWR0SSpGfPrs0++TelVTYVLbi7du2iuLiYUaNGAVBVVcXjjz8OwIQJE4hEIhQWFtbepzhdNZbUzJq1/xXlrbHf9iI2GVy5chs5OT7xz83NZMKEfoB6CURSIWxieDDwuJJCkZaLb61xzrF16xdkZ9dP5FraenPOOYe0y26/hpSUlDB//nyi0SiLFi1i/PjxvPyyT47GjBnDvffey9SpUxk4cCBQkzh03Ol44r8n5eWVgE+MOoIDtVrG/uBYu3ZnvTvkiEjqhE0MnwVOJPV3OBHZT/1bcpWweXNGcKKoazlIJx0haWmKxhKA7du3M2/ePKLRKC+88AJVVf63Z0ZGBllZWezdu5du3bphZlx99dX13t9expqmqlu2sS77A/2AaI9dr+2xTiKyv6Z0JT9hZg54jgT3J07B3U5EgP1vybVvXxZlZZVs3Vqe1BY2SY34k351dTUZGX6q0Yceeqg24evSpQtnnHEGkUiEc889lz59+tR7X3xisXLltnbxA6G1kpqm7Ke9JM2x2mOdRGR/YRNDB5RSN0l0Ism+24lIQhMn1o0vasl0J9J88eO/1q71vxUbStI+/vjj2pbB0aNHc++99wJwzjnncPbZZ3Peeefxta99jV69ejW4z0TzP+bmdlPXoohIEoVNDB8AvoK/88hadFWySIfWlPFfmzaVUVbmx7/FtuJ267aT22+/nWg0yuuvv167jY8//hjnHGZGXl4eCxYsSPXHkTR3oDvkiEjyhE0MC/BXJD+QuqqISHvRlG7LmhZcqGvF/fWvf80Pf1h3o6GcnBymT59OJBJh+vTpmmMwydprN3tLxP446d+/R73lGpMokjphE8PtwNZUVkRE0o9zjuLiD1i1ahF9+w6hXz/ftX/yySeTm5vL2WefTSQSYerUqeTk5CR13zWtSLEtSNA5W5E6Yje7kj+RthE2MfwtcJ2ZPeucq05lhUQau7dufn77vCVXZ+KcY8uW91i58mVWrXqebds+BGDYsHFEIj4xPOGEE9i2bRtZWfE3SUoejTVtWHtMmltrUm1d/SzSMmETw3xgNPCumS1i/6uSnXPu50mtmXRajd1bd8qUyrSam6+jefDBB7n55pvZsKFuEoLu3fM49tjJjB17Ru0yM0t6Uphud+toS+0xaW6tpExXP4u0TNjE8IaYf49IsN4BSgwlrahloXHV1dW8+uqrHHrooYwcORLwrYUbNmwgN7cXw4Z9lZEjCzjyyDFkZPhDSSqTNP2fiIikXqjE0DmXkeqKiLS2zt6ykCgxrq6uYvfu96iuXsW8efMoLi7muuuu4+677wbg3HPPZciQIZx00kl06aIZqiT96AehSOPCthiKSAcTmxh/8ME/eOONv/DWWy9SWrqjtszAgQPp379/7eu8vDwmTZrU6nWVxqmbPbzO/oNQ5EBCJ4bm55c4B5gE9AJmO+c+MrNTgPedc5tTVEcRSbK9e/dSWVkB+BPkm2++wMsvFwGQn9+fq6++hEgkwvHHH6+pZdKAWrpEJFlCJYZmlg/8FZgIfA7kAnOAj4BvATuA76WojtLJNN768VnrV6iD2L17N8899xzRaJQFCxYwceIVDBp0KQDjx5/FQQdlM2bM6Th3GLfeenIb11akedR6KtIyYVsMbwcGACcBb1D/zieLgR8nuV7SiTXW+rFkyZLWq0gH8MUXX7Bw4UKi0ShPPrmAiory2nXvvPMWOTn/DCZBHsWAAaMAdalJ8rTFeD61noq0TNjEcAbwI+fcq2YWP+L8Y3zSKJJWOkPLwoUXXshf/vKX2tcDBhzNmDGnM2bMaaxenZH2kyBL+5Zu4/l0YYpI+MSwB/BJA+uyAA1CkrTTkQ70O3fuZP78+RQVFXH99ddz0kl+7roZM2awfft2IpEI69cfyTHH1M021aPHltpJkBcv/pjdu/cBkJ3dlVmzXgZ0QpSOp7EfhOmWyIqkQtjEcB1wJr7bON4pwOqk1Ug6JP0ST77t27fz1FNPEY1GWbx4Mfv2+cRu8ODBtYnhFVdcwZVXXglQm+zViJ0EGdAJUTqFxo438X8jIp1R2MTwbuBuM9sFPBIsyzOzy4HvAFelonLSceiXeHJdeumlPPLII1RVVQGQkZHBaaedRmFhITNnzqwtpyuKRUSkKcJOcP0HMxsK3ATcHCxeBFQDv3TO/TlF9RPp9DZt2sS8efO46KKL6N27NwD5+fmYGVOnTqWwsJAZM2bQu3dv5sxZxV13fQB8wJYtJTz7bF2XsIiIyIGEnsfQOfdvZnYPcAbQBygBFjnnNjT+TpH9vfbaFsrKKikvr6zXfaOuZe/DDz+kqKiIaDTKsmXLAMjKyuKqq3zj/KxZs5g9ezb5+fn13hfbMltZ2bXefaYPNLZKJNk6wwVeIh1N2HkMJwErnXMfAX+MW9cDON4597cU1E86qLKySnJzuwH1x7Z19q7lO+64g7lz57JixYraZVlZWUybNo1hw4bVLuvXr1+Tt62xVdLa0u1HnhJZkfAthi8CXwZeT7BuZLBeN05NQ7oopG2tXbuWESNGkJHhb0f+zDPPsGLFCrp3787ZZ59NYWEh06ZNo0eP/cdnJpNOiCLpl8iKpELYxLCxEewHAVVJqIu0gda6KCQ+8SgvrwQgNzczqftp75xzrF69mmg0SjQaZc2aNbzyyit8+ctfBnwX8Xe/+13OPPNMsrOzD7i9+MR+5cptrF27k9zcTPr0CV8vnRBFRAQaSQzNbBAwJGbRCUG3caxs4F/wk1yLNCg+8Zg16+WECWlH5Jxj5cqVtcng+vXra9fl5+fz0Ucf1SaGp512WpO2HZ/Y+6TQT1rdlMRQREQEGm8xvAz4OeCCxxzqtxy64PU+4NupqqBIY9qqK/xA+3XO1U4V45zjnHPOobi4GIDevXszc+ZMCgsLmTx5MpmZyWs17dEjs3bS6pKSajIzy2rrJe2bhnWISHvQWGL4ALAEn/y9gE/+3o0rUwG855zbkYrKSceVrDFtbTU/YqL9VldX8dprr7B+/Z+YP38+y5cvp1evXtx991sMGTKVww7bxciRBQwYcCwZGV1Zt647Z56Z3K702Emrp0yppKDgpKRuP9U6c3KkuT5FpD1oMDEMrkD+CMDMJgMrnHM6QkmDmnJS7ygn+aqqfaxfv4JVqxbz5psvUFpaUrtu4cKFXHLJJWze/AUXXvj9/d6rE/7+lByJiLStsBNcL011RaRtJPNq1M52Ut+7dzezZ59FaWldg3le3uF861sXE4lEGD9+fLO225lbzUREpG2FnuBaOqb2kGikQyK0Z88eFi1axOLFi/nNb34DQLdu2fTtO5js7FzGjDmdMWPOwOwIbrvt5Bbtq7EEOz5Wa9bsYOXKbWRnd+Woo3rWLveJ/WctqoeIiHQ+SgylzbXXlsby8nKeeeYZioqKWLBgAaWlpQBcfPHFtWWuuuo3ZGX1qL3QpLXHNsbe2eTWW+uPJ1yyZElK6yIiIh2PEkNJa6mYmLmkpIRrr72Wp59+mvLy8trlY8eOpbCwkP79+3P44duC/RpQ14Knq3+luTTJuIi0B0oMJa3FdzXXdLVu3vxF6Hsw79q1i+XLl9fOIZiXl8eSJUsoLy9n/PjxRCIRysqOorKyJ2VlMGfOxlDbjS2jE344nTlW7WXYhIh0bkoMJWliT+pr1uxg9+59AGRnd61N0lI9bjBst/SOHTt46qmniEajLFq0CIBt27aRl5dHly5deOSRRxg+fDgDBw4EGp6QO0zXcWc74bdkzGhni5WISHvT2J1PXmjCdpxzrmm3bJBGpcMFGfFi69WSRCpVPv/8c+bOnUs0GuXFF19k3z6fuGZkZDBp0iS2bt1KXl4eAKeffnqb1bOxVrNE34n2pr2OGRURkQNrrMUwA393kxojgX7Ah8BWoC8wCCgG1qWmep1XZzq5prL7cO/ePXTrlgVAaWkpV199NQBmXRg0aDyjRhUwfPgkhg/vz8iRI1u8v2RoLPGfM2dVp+1qleZLxx+aItI2GpvguqDm32Z2LnAXcKJz7vWY5ROBR4N1Is2S7BPTjh3FvPnm86xatZjPPy/hxhvnA3DEEUcwYcJFDB8+ki99qYDu3fNq35MuCbdO4tIcnemHpoi0TNgxhr8AfhabFAI4514zs9nALcBTSa6bSGgffPABRUVFPPjgAxQXr6ld3rVrN0pKPgF8Enjqqd9OeIJsKbXIiIhIRxA2MRwOfNrAum3AsORUR6TpXnnlFU46qW4Ov8zMLIYMOZGRIwsYOvQrVFTktLir9UDd3WqRERGRjiBsYrgRuBpYmGDd1fhxh9IC8S1OK1duY+3aneTmZjJhQr82rFnzpGLcoHOOjRs3snTpUnbt2sWvfvUrAMaPH8/gwYM58cQTiUQiTJ06lZycnGbvJxG1+oXXmaecERFJd2ETw5uAP5vZ20CUuotPIsAo4OJG3ishxLc4bdpURllZJVu3ltc7ybb05NpaXZ7J2pZzjlWrVlFUVEQ0GmXdOn+d00EHHcTs2bM5+OCDyczMZP369WRkZOz3/o6WcKcDJdEiIukrVGLonJtrZtvxCeIsIBOoBN4Apjjnnk9dFTum2IRly5YSNm/OqJewTJzok5ZEtzpr7n7AJ0Y5OZn7JUbtscvz73//O5dddhkbNmyoXXbwwQdz/vnnE4lEyM7Orl2eKCmE1ku4RdozteKKSFihJ7h2zi0GFptZBnAosN05V52ymsUI9nk9vtu6H356nJudc0Uh3vsAcFmCVXc5536QzHo2RWzCUlnZlc8+60JubjdKS/e2eNuxyWBNIgiQm5sZJIXJ2U8yVVdXs2zZMnbu3MlZZ50FwMCBA9mwYQN9+/Zl5syZRCIRgNo7lDRHshJukXSiVlwRCavJdz4JksFtKahLY34B/Ai4AVgBXAg8bmZnO+f+GuL9nwJfi1tWnNwqth+xSadvhewGECoZbM2ra6uqqnjppZeIRqM88cQTbN68mWHDhjF9+nTMjAEDBrB8+XLGjBlDly5dAFiyZElS69CYpsRCLTIiItIRhE4MzWwIcAFwJJAVt9o5565IZsVi9tsHnxTe5py7I1j8opkNA24DwiSGe51zy1JRv46mNa6uffvtt5kzZw5PPvkk27bV/cYYOHAgM2bMoKKigqws/xUbN25c0vbbVE2JhVpkRESkIwiVGJrZDOBx/N1QtgEVcUXcfm9KnilAN+DhuOUPA/eb2WDn3MYU7r9V9OiRSWnpXsrLKzvc2LeKigp27NjBYYcdBsCmTZu47777ABg2bBiRSITCwkLGjRuHmbVlVUVERDq1sC2GtwBLgIudcw3NZ5gqx+AT0fVxy98Jno/GT6fTmD7BxTN5wAbgv4E7nHNVyaxoS7TW2LfWSkB3797Nc889RzQaZf78+Zx66qk88cQTAJx66qn8/Oc/Z+bMmRx77LEpTQbbqos3WV3ymjhbRERaU9jEcAjwr22QFAL0BD5zzsW3Su6IWd+YVfhxie/gu8BnArfiJ+2+Mon1bJLYhKWkZB+ZmWW1y5uqsSlZahJBgPLySkaNyq/dT1MTiwMlKV988QULFy4kGo3y9NNPU1ZWl5AVFxdTXV1NRkYG3bp1Y/bs2U3+nM3RVslTsrrkNXG2iIi0Jts/30pQyGwFvoXtf1u8Q7PTgUUhii51zhWY2R+As51zh8VtZzjwHnCpc+6hJtbh18APgBHOufcTrL8KuAqgb9++4+bOnduUzTdZWVkZPXo0/zZtDz5YQq9edTn+unUV7NlTTUVFNUOHHlS7vGfPrpxzziFN2laNkpJ9AA2uu+yyXjz22GPcc889tctHjBjBKaecwqRJk+jfv3+TP1ciLY1VUzQWi8su65Wy9yZrO60Zq3SmOIWnWIWjOIWnWIUXNlaTJ09e4Zw7obn7Cdti+BPgN2b2mnNuwwFLN+4V4KgQ5cqD5x1AvplZXKthfsz6pvpffGJ4ArBfYuicuw+4D+CEE05wBQUFzdhFeEuWLKEl+3j22ZfrtSoNGuSfm9MtvXp14lbB44/vXtt6VV7+OatXL2XVqsUMGjSa0aMvoqDgJAYOHMg//vEPIpEI5513HoMHD272Z2pIS2PVFI3FoqCg8ZbI+P+TGpmZZRQUhP8/acl2WjNW6UxxCk+xCkdxCk+xCq+1YhU2MZwN9ALWmNn77J+MOefcKWE25JwrB9aGrqHvAj4IGEr9cYZHB8/vNmFbNWoGtaXyopm0FNv1Gtt1vH79Jyxe/Fe2b1/Gp5++Sc3wzJKSTYwefREAgwcP5tVXX239SqeIxvCJiEhnEzYxrMJPKt0WngH24m+7d1PM8kuAt5t5RfI38EnhGy2vXsdV00K4ePGfWLDgv6iurrlWJ4MRIyYyZsxpHHfcqZSWtmk1RUREJEnC3hKvIMX1aGzf24IxgbPMrBRYCXwdOBWYEVvWzJ4HBjrnhgWvBwIPAXPxrY0H4S8++X/A751zH7TW50gXn3zyCfPmzWP06NH4WYKgX7+hgNGnz/EMGTKJ/PwTmD59NK+9toU33thNefnnzJr1cu02dMVs8q6G1sTZIiLSmpp855M2cgNQBnyfulviXeCcWxBXrgv1P1Mpvtv7eqAvvpVwDfA94HcprnOraWny8OGHH1JUVERRUVFtV/D555/P0KHfB2DUqC9z660vsHp1OWVllbVT3WzbVk5OTiZ9++bUGwenK2aT1w3d2RNsERFpXU1KDM0sHz/NS/ydT3DO/S1ZlUqw7Sr8XIq3HKBcQdzrHcC5qapXe9Hc5OGhhx7irrvuYsWKFbXLsrKymDZtGhdccAE1i7t2zaRr10wmTjwYqLuoZdasxBdGiIiISHoKe+eTLOB+/C3xGpqNuEuyKiWpsWbNGvLy8mrvQPLJJ5+wYsUKunfvzllnnUUkEmHatGm1l8OvWPFyY5sTERGRDiZsi+HPgALgMvyYvW8De/Bj9Q7Dd/FKCsVeIbxmzQ527/bzCmZnd+Woo/wc3/Fj+5xzrF69mmg0SlFREe+++y433XQTN954IwAXX3wxo0aNYsqUKWRnZ++3z842vk13GRERkc4ubGJYCNyMv4jjIeA159xK4E9m9jgwFViYmioK1L8Dxtq1O+nb1ydnpaV7a5fXJHGrVq3i0UcfpaioiPffr5umsWfPnvVuPzdgwAAGDBjQ4D47WzKku4yIiEhnFzYxPBJ4xzlXZWaVQGyT0f3An1CrYZuprq4mdkrGO++8k4cffhiA3r17M3PmTCKRCAUFBWRmZiZtv52tRVFERKSjC5sYlgA1TSn/BI4DXgpeHwrs3w8pKVVdXcWnn77L+vVLWbLkdQoLf0Lv3hMBuPTSSznkkEOIRCKcfPLJdO2amovPO1uLooiISEcXNmNYBozFdxcXAb8ws1xgH/CvwN9TUz2JVVW1j/XrV/Lmm09QXLyMPXt21q5bt25ZbWJ4xhlncMYZZ7RVNUVERCRNhU0M/xPfnQx+yphh+DGHXfBJ43XJr5rEu/vua3n//bqbtfTo0Y9+/b7CjBkzGThwdMILJ0RERETCCnvnk+XA8uDfpUChmR0EHOSc+zyF9euU9uzZw6JFiygqKmLWrFmMHDmSww/vTr9+x1FSsoVevU6kV6+J5OYOJicnk8zMnmze/IXG9rWQxkyKiEhn1+zBZ865CqDCzE4HfuWcOzZ51ep8ysvLefbZZ4lGoyxYsIDS4AbEw4cP54YbbuC73x3DNdf8jq5du9a7sliSR2MmRUSks0vGVQmHAMckYTud1i9/+UuWLl1KeXl57bKxY8dSWFjI17/+9dplybyiWERERCReutwruUPbs2cP5eXlTJgwgcLCQgoLCxk6dGhbV0tEREQ6GSWG7cDll1/OAw88wJFHHnngwiIiIiIpktHWFRB/BxIlhSIiItLWGmwxNLMhIbfRL0l1EREREZE21FhX8npi77PWMAtZTkRERETascYSw8tbrRYiIiIi0uYaTAydcw+2ZkVEREREpG3p4hMRERERAZQYioiIiEhAiaGIiIiIAEoMRURERCSgxFBEREREACWGIiIiIhIw5zQ3dWPM7FPgoxTv5lBge4r30VEoVuEpVuEoTuEpVuEoTuEpVuGFjdVA51zv5u5EiWE7YGbLnXMntHU90oFiFZ5iFY7iFJ5iFY7iFJ5iFV5rxUpdySIiIiICKDEUERERkYASw/bhvrauQBpRrMJTrMJRnMJTrMJRnMJTrMJrlVhpjKGIiIiIAGoxFBEREZGAEsMWMLP+ZjbHzF41s3Izc2Y2KEG5I83sQTP7OCj3npndYmbd48rlmNlNwfrdZvZPM/ufBrZ5spm9EpTbYma/MrPsVH3WlmhCnAabWdTMPjOzL8zsRTPb7wosM8sws1lm9qGZ7TGzN82ssIF9f8vM1ppZhZmtM7Nrkv8JkyeZsTKzEWZ2l5m9ZWZlZlZsZvPN7LgG9t1pY5XgPRcF29vUwPq0iVUq4mRmR5jZ/cGxp8LMNprZrQnKpU2cICXHql7B3+CG4Fi90cz+y8z2m0rEzM41s38Ex7SPzOynZtYlNZ+0ZcwsYmZFQT13B/+3t5pZbly5fDP7o5ltD+K02My+lGB7WWZ2e3CM2h3Ef1KCcqGP/e1BMuNkZieY2X3B31O5+Xziz2Y2OMF+WxYn55wezXwABcBW4K/As4ADBsWV6Q68B2wELgMmAz8BdgOPxpV9BCgHfhyUuwz4EPgA6BFT7tjg/U8CpwFXAjvjt9deHiHj1Av4BFgLfB04B3gRKAWOiiv770AF8KMgTr8HqoHpceW+FSz/96DcLcHra9s6Jq0RK+A7wFvAvwaffybwKrAHGKdY1f9exbwnD9gCFAObEqxPq1il4O9vUFD278AFwCn4Y9Uv0jlOyY4VYMDLwKfAtcG2rwNKgr9Diyk7BajCjyGbDPww+Dv9z7aOSQNxWgY8Blwc/P//APgsWJ4R8/lfAjYBFwFTgaX4efj6x23vz8H7v4U/p83Dn+PGxJULdexvL49kxgm4I/g+XRds6xvAmuD7NCCZcWrzwKXzo+Y/Nvj3lQ0cRM4Mlp8Zt/w2YB+QE7zODl7/R1y5qcH7p8QsewJ4H8iMWXZpUO74to5LM+P00+DzD4tZ1h1/kH4sZlmf4At/U9z7nwfeinndFdgGPBhX7v7gDy6zJZ8pTWJ1KDEnn2DZIfgfEf+jWNXFKu499+GTggeISwzTMVbJjhPwDPB6Y581HeOU7FgBI4L3XxX3/muC5SNjlv0DWBpX7kZgL9CvreOSIE69EyyrOQedGryeEbyeHFPmEGAH8NuYZccF5S6P+/6sA+bHLAt17G9PjyTHKdG2BuITvpuTGSd1JbeAc646RLFuwfPnccs/w3flW/C6K9ClgXIEZTGzTHyy+JhzrjKm3GP4g8iMUJVvRSHjdCLwvnNufcz7vsD/kjrbzLoGi6fgY/pw3PsfBr4U06z+ZaB3gnIP4X/xn9ykD9FKkhkr59x2FxwRYsrtwrdgHxGzuNPHqoaZnQRcAny7ge2lXaySGSczG4r/G5wTd/yJl3ZxgqR/pxo79kPdMX0AMIbEscoEpoX+AK3EOfdpgsVvBM81x5avAZudcy/GvG8XsID656mvAZXAozHl9gFzgSlmdlCwOOyxv91IZpwSbcs59xG+RTr2eN7iOCkxTL3F+Na9/zSzo82sh5mdCnwfuDc4oOCcK8UfCL5nZpODcscAtwNv4rN9gKFAFvB27E6cc3vwXc5Ht8aHSoEqfGIbrwLfmjo0eH1MsGx9XLl3guejY8pBXJwSlEtHYWO1HzPrCYzGd0HUUKyo/dF1H3B77Ek/TkeNVdg4nRQ87zazRcHYwZ3mx0L3inlfR40ThI/VO8DfgJ8F48N6mNkEfEvgQudczd9gwlg55zbihxalS6xOCZ5jP1f8/z/4uBxpZj1iym10zpUnKNcNGBZTLsyxv71rbpz2Y2ZH4Vv0EZVHAAAJFElEQVQI44/nLYqTEsMUCxK2k/Gxfgc/DuV54C/4MWCxLsd3E78QlHsb/4vxDOdczYGoZ/C8M8HudsSsTzfrgOGxJxczywAmBC97xjx/Ft8Shv/s8eVg/zjFl0tHYWOVyBx8K/VvYpYpVt71wEHAfhdRxOiosQobp8OD5/vxLc/T8HE7C3g2eE9s+Y4WJwgZq+AYNT0o/wb+mP4asAGIvRCgsWP6TtIgVmZ2BHAzsNg5tzxY3JOGz1MA+SHLNfXY3261ME7x2+oK3ItvMfzvmFUtjpMSwxQzsyx8E3kf4Jv4Xws/xg9avjuu+C34bqwfBeW+ie92WWh1VzDXdD3H/6fHrktH9+K/j/9jZkPN7DDgt0BNs3dNF48R7rM3Fqd0FzZW9ZjZLPyA5e/EtYh1+liZ2TDgBnxs9jSyvY4aq7DfqZpzxhLn3Ledcy845+7DD4gfh+/Ggo4bJ2ja398f8F3P1+CP6dcAJwDRmCQ6rY/pQYvWU/hxl5fHriL8sTqZ5dqlJMQp3n8BXwEucc7FJpYtjpMSw9S7An812nTn3MPOub855+7AXyl6jQVThwTdxv8G/NA5d2dQ7mH8L85x+IHQ0HjWnx+zPq045zbgr9wah28C34wfp/TroEhx8LwDyDez+C95fsz62Of4OPWMW592mhCrWuanCfkP4KfOufvjVitW/sT+ArDMzPLMLA/fjWXB65qpoDpkrJoQp5LgeVHcJp4LnscGzx0yThA+VmZ2Fv4q0286534fHNN/j//BPx1/NTM0fkzPox3HKmj4mA8MwV8gGTu9U0M9WDXH6p0hy8Ue08Mc+9udJMUpdnu3AlcB/+Kcey5udYvjpMQw9b4E7HTOfRC3/PXg+aiYclA3MBUA59z7+MHKNeU+wI8fOCa2XPDFGwK8m5xqtz7nXBF+EO3R+Cv+xgE9gH865z4Oir2D7+6LH0dXM27i3ZhyEBenBOXSUshYAWBm3wR+B9zpnPv3BJtTrPy66fiDcM3jInzX6U7qupc7bKya8PcHDbcEVseV63BxgtCxSnhMZ/9jf8JYmZ8/MYd2GqtgTG4Rvgt9unNudVyRd9j//x98zD52zpXFlBtsZjkJyu2lbqxc2GN/u5LEONVs7wZ8I9L3nXMPJXhfi+OkxDD1tuCz92FxyycGz5/ElIO6cSqAn6QY/6vxE4BgrOEzwAVxV1RG8F+G+cmreutzzlU559Y45z4ws8PxXe73xBR5Bn+wuDjurZcAbwcDtsHPE7a9gXI78PNBpbUQscLMZgJ/Av7onPtRA5tSrOBC/HxfsY9n8XGZjO+2gQ4eqxBxWoY/Vk2Ne2vN65okqEPHCULFKuExnbhjf5BIvkniWFUCC5Na8SQIusH/jJ9zcIZzblmCYvOBI8zslJj3HYxvKZ0fVy4TOD+mXFd8PJ9zzlUEi8Me+9uNJMcJM/sefsjZDc65OQ3stuVxSjSHjR5NmqcoEjzuwf+KvjZ4fUqwfhB+uoL3qJvg+sfBsuXUTXLZBVgF7KL+BNc1LYZHxuxzDH7yz3n4L9wV+IPt420djxbEKRPfFXMucCrwXXwXzUtAt7ht3Yaf/PWH+G76e/AtFefElbsmWH5LUO7m4PW32zoerRErYFIQp5X4sSgnxjzGKlb1v1cJtv0AiSe4TrtYJfnv77JgG/fi52m9Dt+q+iL1J21OuzglM1bAwfjkb3OwjcnB8xbgY+rftGB6EJvfB7H6/8Hf7u1tHY8GYlQTm1vijisnEkzKjG94egX4J/6H1xRgCf5cFT8h89zgO3Ql/pwWDT7/8XHlQh3728sjmXEK1lXjfyjEb+voZMapzQOX7o/gPz3RY0lMmaPx8wz+E5/QvYefxTw/blu9gDvxyeDuoPyjxEyEGlN2EnV3sdiKv8o0p63j0dw44edx/EvwWSrwXea3JPpM+CT6p8BHQdm3gEgD+706iHdFENfr2joWrRUrYHYj2/pQsTrgth8gQWKYjrFKdpzw4+TeDsoW469275GgXFrFKdmxAgbgrxjdiD9Wb8RfkHJEgrLn4VsOK/CJ441Al7aORwMx+rCROM2OKdcTfwX7DvzUO88DxyXYXjbwK3zSvAd/9XZBgnKhj/3t4ZHMOAXHowPmG8mIkwUbEREREZFOTmMMRURERARQYigiIiIiASWGIiIiIgIoMRQRERGRgBJDEREREQGUGIqIiIhIQImhiEgTmFnUzHaYWd8E6wrMrNrMvt8WdRMRaSnNYygi0gRBQvgO8KJzLvY2Xtn4iWS3AV91zlU3sAkRkXZLLYYiIk3gnNsK/ACImNm5MatmA/2Bf2mtpNDMusTdM11EpEWUGIqINJFz7mH8bdF+Z2Z5ZnY8/r6ks51z62LLmtnXzex1Mys3s51mNtfMjogrc6mZLTWzT82s1MxWmNk34spkmZkzsxvN7Gdm9hGwFxie2k8rIp2JupJFRJohSO7eAZ4AxgD7gBOdc1UxZX6AvwfsH4AngTzgZvz9Tcc458qDcj/Hd0GvD946GbgeuMI590BQJgt/D/XNwDr8/Yn3AK8750pS+VlFpPNQYigi0kxmdiU+6asExjnnVsesywM+AR50zl0Xs3wE8C7wHefcvQm2mYHvzfkTMMI5NzFYXpMYfgwMd87tTdkHE5FOS13JIiLN5Jz7I1AMPBmbFAa+CuQAfzazrjUPYEPwmFRT0MyOMrPHzGwzvuWxErgEGJlgt08rKRSRVNGgZRGRltkbPOL1CZ7/3sD7NkJty+IiYAfw42D5XoILXBK8r7gllRURaYwSQxGR1KgZ9/cN4P0E6z8Pnr8KHAGc65xbXrPSzDIb2K7G/4hIyigxFBFJjb/hxwQOcc79byPlcoLnypoFZtYHmJ7CuomIJKTEUEQkBZxzO8zs34A7zexw4FmgFN86OBlY6JyLAi8BXwC/N7ObgYOBG4Gt+HkRRURajRJDEZEUcc79Nphv8IfApUAX/JXKS4HVQZnNZlYI/BIoAjbhp7gZiB9nKCLSajRdjYiIiIgAmq5GRERERAJKDEVEREQEUGIoIiIiIgElhiIiIiICKDEUERERkYASQxEREREBlBiKiIiISECJoYiIiIgASgxFREREJPB/PPfNQsBA/34AAAAASUVORK5CYII=\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.figure(figsize=(10, 5))\n", + "\n", + "plt.plot(xi, yi,'s', color='#2929a3', linewidth=1, alpha=0.5,label='Measured anomoly')\n", + "plt.plot(xi, f_linear(xi), 'k--', linewidth=2, label='Linear regression')\n", + "plt.xlabel('Year')\n", + "plt.ylabel('Land temperature anomaly [°C]')\n", + "plt.legend(loc='best', fontsize=15)\n", + "plt.grid();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## \"Split regression\"" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "If you look at the plot above, you might notice that around 1970 the temperature starts increasing faster that the previous trend. So maybe one single straight line does not give us a good-enough fit.\n", + "\n", + "What if we break the data in two (before and after 1970) and do a linear regression in each segment? \n", + "\n", + "To do that, we first need to find the position in our `year` array where the year 1970 is located. Thankfully, NumPy has a function called [`numpy.where()`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.where.html) that can help us. We pass a condition and `numpy.where()` tells us where in the array the condition is `True`. \n" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [ + { + "ename": "NameError", + "evalue": "name 'numpy' is not defined", + "output_type": "error", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mnumpy\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwhere\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0myear\u001b[0m\u001b[0;34m==\u001b[0m\u001b[0;36m1970\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;31mNameError\u001b[0m: name 'numpy' is not defined" + ] + } + ], + "source": [ + "numpy.where(year==1970)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To split the data, we use the powerful instrument of _slicing_ with the colon notation. Remember that a colon between two indices indicates a range of values from a `start` to an `end`. The rule is that `[start:end]` includes the element at index `start` but excludes the one at index `end`. For example, to grab the first 3 years in our `year` array, we do:" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "year[0:3]" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we know how to split our data in two sets, to get two regression lines. We need two slices of the arrays `year` and `temp_anomaly`, which we'll save in new variable names below. After that, we complete two linear fits using the helpful NumPy functions we learned above." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "year_1 , temp_anomaly_1 = year[0:90], temp_anomaly[0:90]\n", + "year_2 , temp_anomaly_2 = year[90:], temp_anomaly[90:]\n", + "\n", + "m1, b1 = numpy.polyfit(year_1, temp_anomaly_1, 1)\n", + "m2, b2 = numpy.polyfit(year_2, temp_anomaly_2, 1)\n", + "\n", + "f_linear_1 = numpy.poly1d((m1, b1))\n", + "f_linear_2 = numpy.poly1d((m2, b2))" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "plt.figure(figsize=(10, 5))\n", + "\n", + "plt.plot(year, temp_anomaly, color='#2929a3', linestyle='-', linewidth=1, alpha=0.5) \n", + "plt.plot(year_1, f_linear_1(year_1), 'g--', linewidth=2, label='1880-1969')\n", + "plt.plot(year_2, f_linear_2(year_2), 'r--', linewidth=2, label='1970-2016')\n", + "\n", + "plt.xlabel('Year')\n", + "plt.ylabel('Land temperature anomaly [°C]')\n", + "plt.legend(loc='best', fontsize=15)\n", + "plt.grid();" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Discussion exercise\n", + "We have two different curves for two different parts of our data set. A little problem with this and is that the end point of our first regression doesn't match the starting point of the second regression. We did this for the purpose of learning, but it is not rigorously correct. \n", + "\n", + "How would you fix this issue? \n", + "\n", + "What would your new function, $f(x)$, look like?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## We learned:\n", + "\n", + "* Making our plots more beautiful\n", + "* Defining and calling custom Python functions\n", + "* Applying linear regression to data\n", + "* NumPy built-ins for linear regression\n", + "* The Earth is warming up!!!" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## References\n", + "\n", + "1. [_Essential skills for reproducible research computing_](https://barbagroup.github.io/essential_skills_RRC/) (2017). Lorena A. Barba, Natalia C. Clementi, Gilbert Forsyth. \n", + "2. _Numerical Methods in Engineering with Python 3_ (2013). Jaan Kiusalaas. Cambridge University Press.\n", + "3. _Effective Computation in Physics: Field Guide to Research with Python_ (2015). Anthony Scopatz & Kathryn D. Huff. O'Reilly Media, Inc.\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Problems\n", + "\n", + "1. There is a csv file in '../data/primary-energy-consumption-by-region.csv' that has the energy consumption of different regions of the world from 1965 until 2018 [Our world in Data](https://ourworldindata.org/energy). \n", + "We are going to compare the energy consumption of the United States to all of Europe. Load the data into a pandas dataframe. *Note: we can get certain rows of the data frame by specifying what we're looking for e.g. \n", + "`EUR = dataframe[dataframe['Entity']=='Europe']` will give us all the rows from Europe's energy consumption.*\n", + "\n", + " a. Plot the total energy consumption of the United States and Europe\n", + " \n", + " b. Use a linear least-squares regression to find a function for the energy consumption as a function of year\n", + " \n", + " energy consumed = $f(t) = At+B$\n", + " \n", + " c. At what year would you change split the data and use two lines like we did in the \n", + " land temperature anomoly? Split the data and perform two linear fits. \n", + " \n", + " d. What is your prediction for US energy use in 2025? How about European energy use in 2025?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "energy = pd.read_csv('../data/primary-energy-consumption-by-region.csv')\n", + "CAN = energy[energy['Entity']=='Canada']\n", + "USA = energy[energy['Entity']=='United States']\n", + "EUR = energy[energy['Entity']=='Europe']\n", + "plt.plot(USA['Year'],USA['Primary Energy Consumption (terawatt-hours)'],'-o')\n", + "plt.plot(EUR['Year'],EUR['Primary Energy Consumption (terawatt-hours)'],'-s')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "2. We plotted Gordon Moore's empirical prediction that the rate of semiconductors on a computer chip would double every two years in [02_Seeing_Stats](./02_Seeing_Stats.ipynb). This prediction was known as Moore's law. Gordon Moore had originally only expected this empirical relation to hold from 1965 - 1975 [[1](https://en.wikipedia.org/wiki/Moore%27s_law),[2](https://spectrum.ieee.org/computing/hardware/gordon-moore-the-man-whose-name-means-progress)], but semiconductor manufacuturers were able to keep up with Moore's law until 2015. \n", + "\n", + "We can use a linear regression to find our own historical Moore's Law. \n", + "\n", + "Use your code from [02_Seeing_Stats](./02_Seeing_Stats.ipynb) to plot the semilog y-axis scatter plot \n", + "(i.e. `plt.semilogy`) for the \"Date of Introduction\" vs \"MOS transistor count\". \n", + "Color the data according to the \"Designer\".\n", + "\n", + "Create a linear regression for the data in the form of \n", + "\n", + "$log(transistor~count)= f(date) = A\\cdot date+B$\n", + "\n", + "rearranging\n", + "\n", + "$transistor~count= e^{f(date)} = e^B e^{A\\cdot date}$\n", + "\n", + "You can perform a least-squares linear regression using the following assignments\n", + "\n", + "$x_i=$ `dataframe['Date of Introduction'].values`\n", + "\n", + "and\n", + "\n", + "$y_i=$ as `np.log(dataframe['MOS transistor count'].values)`\n", + "\n", + "a. Plot your function on the semilog y-axis scatter plot\n", + "\n", + "b. What are the values of constants $A$ and $B$ for our Moore's law fit? How does this compare to Gordon Moore's prediction that MOS transistor count doubles every two years?\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "anaconda-cloud": {}, + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.5" + }, + "widgets": { + "state": {}, + "version": "1.1.2" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/notebooks/03_stats_and_montecarlo.ipynb b/notebooks/03_stats_and_montecarlo.ipynb deleted file mode 100644 index cdba9fe..0000000 --- a/notebooks/03_stats_and_montecarlo.ipynb +++ /dev/null @@ -1,19908 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "# Statistics and Monte-Carlo Models\n", - "\n", - "Monte Carlo models use random numbers to either understand statistics or generate a solution. \n", - "The main element in a Monte Carlo model is the use of random numbers. We can generate random numbers in many ways, but most programming languages have 'pseudo'-random number generators. \n", - "\n", - "In Python, we use the numpy library as such\n" - ] - }, - { - "cell_type": "code", - "execution_count": 45, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n", - "\n", - "x=np.random.rand(10)" - ] - }, - { - "cell_type": "code", - "execution_count": 48, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(array([2., 0., 1., 0., 0., 2., 1., 1., 0., 3.]),\n", - " array([0.13831169, 0.22124331, 0.30417493, 0.38710655, 0.47003817,\n", - " 0.55296979, 0.6359014 , 0.71883302, 0.80176464, 0.88469626,\n", - " 0.96762788]),\n", - " )" - ] - }, - "execution_count": 48, - "metadata": {}, - "output_type": "execute_result" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "import matplotlib.pyplot as plt\n", - "plt.hist(x,bins=10, color='b', histtype='bar', edgecolor='w')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The `numpy.random.rand(10)` function generates 10 random numbers between 0 and 1. The pyplot function `hist` then displays a histogram of these randomly generated numbers. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Exercise\n", - "\n", - "Try generating more random numbers and plotting histograms of the results i.e. increase `10` to larger values. \n", - "\n", - "What should the histogram of `x` look like if Python is generating truly random numbers?" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "## Examples of Monte Carlo models:\n", - "\n", - "Monte Carlo models have a wide array of applications. We are going to use Monte Carlo models in later modules to explore how uncertainty in measurements can be incorporated into computational models. Here is a brief list of Monte Carlo model use cases in real-world applications:\n", - "\n", - "- [Eigenvlaues in supercritical systems](https://link.springer.com/chapter/10.1007%2FBFb0049064)\n", - "- [average time between failures for reliability](http://www.egr.msu.edu/~mitraj/research/pubs/proc/singh-mitra_em_stdby_ias95.pdf)\n", - "- disordered materials (physics)\n", - "- [Calculation of the energy output of a wind farm](http://www.mdpi.com/1996-1073/9/4/286/pdf)\n", - "- [US Coast Guard rescue missions](https://en.wikipedia.org/wiki/Search_and_Rescue_Optimal_Planning_System)\n", - "- [Radiation shielding](http://www.sciencedirect.com/science/article/pii/S0920379612000580)\n", - "- [Predict number of asteroids that hit body of water](https://cneos.jpl.nasa.gov/sentry/intro.html)\n", - "- [Financial modeling](https://en.wikipedia.org/wiki/Monte_Carlo_methods_in_finance)\n", - "\n", - "We will explore Monte Carlo modeling through the use of three examples:\n", - "\n", - "1. Calculate the value of $\\pi$\n", - "\n", - "2. Calculate the integral of a function\n", - "\n", - "3. Propagate uncertainty in manufacturing into uncertainty in failure load" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "\n", - "\n", - "# Example 1: Calculate $\\pi$ with random numbers. \n", - "\n", - "Assuming we can actually generate random numbers (a topic of philosophical and heated debates) we can populate a unit square with random points and determine the ratio of points inside and outside of a circle.\n", - "\n", - "![Unit circle and unit square](../images/MonteCarloPi.gif)\n", - "\n", - "![1/4 Unit circle and 1/4 unit square](../images/MonteCarloPi_rand.gif)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "The ratio of the area of the circle to the square is:\n", - "\n", - "$\\frac{\\pi r^{2}}{4r^{2}}=\\frac{\\pi}{4}$\n", - "\n", - "So if we know the fraction of random points that are within the unit circle, then we can calculate $\\pi$\n", - "\n", - "(number of points in circle)/(total number of points)=$\\pi/4$" - ] - }, - { - "cell_type": "code", - "execution_count": 65, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np" - ] - }, - { - "cell_type": "code", - "execution_count": 66, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([0.65636947, 0.58895963, 0.82791297, 0.19407244, 0.6149529 ,\n", - " 0.07214425, 0.51728665, 0.74773674, 0.35505096, 0.72987358])" - ] - }, - "execution_count": 66, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "np.random.rand(10)" - ] - }, - { - "cell_type": "code", - "execution_count": 67, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - }, - "slideshow": { - "slide_type": "fragment" - } - }, - "outputs": [], - "source": [ - "def montecarlopi(N):\n", - " '''Create random x-y-coordinates to and use ratio of circle-to-square to \n", - " calculate the value of pi\n", - " i.e. Acircle/Asquare = pi/4\n", - " Arguments\n", - " ---------\n", - " N: number of random points to produce between x=0-1 and y=0-1\n", - " \n", - " Returns\n", - " -------\n", - " our_pi: the best prediction of pi using N points\n", - " '''\n", - " \n", - "\n", - " x=np.random.rand(N,1);\n", - " y=np.random.rand(N,1);\n", - " R=np.sqrt(x**2+y**2); # compute radius\n", - " num_in_circle=sum(R<1);\n", - " total_num_pts =len(R);\n", - " our_pi = 4*num_in_circle/total_num_pts;\n", - " return our_pi" - ] - }, - { - "cell_type": "code", - "execution_count": 68, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - }, - "slideshow": { - "slide_type": "slide" - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "mean value for pi = 3.123600\n", - "standard deviation is 0.056948\n", - "actual pi is 3.141593\n" - ] - } - ], - "source": [ - "test_pi=np.zeros(10)\n", - "for i in range(0,10):\n", - " test_pi[i]=montecarlopi(1000);\n", - "\n", - "print('mean value for pi = %f'%np.mean(test_pi))\n", - "print('standard deviation is %f'%np.std(test_pi))\n", - "print('actual pi is %f'%np.pi)\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Exercises\n", - "\n", - "1. Why is there a standard deviation for the value of $\\pi$ calculated with a Monte Carlo method? Does it depend upon how many times you run the function i.e. the size of `test_pi`? or the number of random points `N`? Alter the script above to discover correlations\n", - "\n", - "2. How well does our function `montecarlopi` converge to the true value of $\\pi$ (you can use `np.pi` as a true value)? Plot the convergence as we did in [03-Numerical_error](https://github.uconn.edu/rcc02007/CompMech01-Getting-started/blob/master/notebooks/03-Numerical_error.ipynb)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Example 2: Calculate the integral of a function\n", - "\n", - "One way to calculate the integral of a function, $f(x)$, is to approximate it as a Riemann sum as such\n", - "\n", - "$I=\\int_{a}^{b}f(x) dx \\approx \\Delta x \\left(f(a)+f(a+\\Delta x)+f(a+2\\Delta x)+...+f(b)\\right))$.\n", - "\n", - "Another way to integrate this function is with a [Monte Carlo approach](https://en.wikipedia.org/wiki/Monte_Carlo_integration). We can approximate the integral as such\n", - "\n", - "$I=\\int_{a}^{b}f(x) dx \\approx \\frac{1}{n}\\sum_{i=1}^n f(x_i)$. \n", - "\n", - "where $x_i$ are uniformly random values of $x$ over the interval $[a,b]$. We were actually doing this in two dimensions in Example #1 when we compared the area of the circle to the area of a square. \n", - "\n", - "Visually, this approximation can be represented by the following figure.\n", - "\n", - "![Integration approximation](../images/integrals.png)\n", - "\n", - "The figure above shows the exact integral on the left as compared to two approximations, the Riemann sum (top-right) and Monte Carlo method (bottom-right). \n", - "\n", - "## Exercise (Discussion)\n", - "\n", - "Why does the Monte Carlo method work? Is there a benefit to random numbers as opposed to using an ordered set divided into equally-spaced intervals?" - ] - }, - { - "cell_type": "code", - "execution_count": 119, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "3.0999546133631974\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "f= lambda x:4/(1+x**2)\n", - "\n", - "n=100\n", - "xi=np.random.rand(n)\n", - "\n", - "plt.bar(xi,f(xi),width=1/n,color=[0.1,0,1,0.5],edgecolor='white')\n", - "plt.plot(np.linspace(0,1),f(np.linspace(0,1)),color='k')\n", - "#plt.hist(f(xi),cumulative=True)\n", - "#plt.hist(xi,cumulative=True)\n", - "\n", - "mypi=sum(f(xi))/n\n", - "print(mypi)" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "### Example 3: Determine uncertainty in failure load based on geometry uncertainty\n", - "\n", - "In this example, we know that a steel bar will break under 940 MPa tensile stress. The bar is 1 mm by 2 mm with a tolerance of 1 %. What is the range of tensile loads that can be safely applied to the beam?\n", - "\n", - "$\\sigma_{UTS}=\\frac{F_{fail}}{wh}$\n", - "\n", - "$F_{fail}=\\sigma_{UTS}wh$" - ] - }, - { - "cell_type": "code", - "execution_count": 96, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - }, - "slideshow": { - "slide_type": "slide" - } - }, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAEWCAYAAAB42tAoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAewElEQVR4nO3de7wVdb3/8ddbUMkLokGKgmJFncjMC5plFy+nk6gF9dPKLiJR1FG7aHVSu2id6qh1tNvJJDWxu5UpeUsjseMxNVBEUUvySpBgIoh39PP74/tdtNisNXs27NlrYL+fj8d6rJnvfGfmsxab+cz3O7O+o4jAzMysnY06HYCZmdWbE4WZmRVyojAzs0JOFGZmVsiJwszMCjlRmJlZIScKMzMr5ERhpUg6R9JJefpfJd3XR/sdKCkkjapg2z+SdEqbZRMlXdHb+7T2JH1Q0sxOx2FrcqLoZyTdJ+lJSSuaXtt3t15EfDAivtoXMdZBREyLiHE9XU/SEZL+KOkJSb8rUf8T+d9kuaSbJL2uadkgSd+XtFjSI5Kml/m3arOfkZLuL1l3I0lfz/v8h6T/kqSC+u+TdH/+W7pI0pCm+M+T9ED+fDdLestaxv/BfMJwXJfyv0t6/dps08pzouif3hoRWzS9FvbVjiUN7Kt9dcg/gDOAr3VXUdK+wH8CbweGAD8ELmo6KB8P7AnsAuwArAC+0WZbX5b0uYLdHQKUbSH9O3Bw3u9uwDuAyW32uyvwXeC9wHbAs8B38uJNgPuAN5A+3xeBX0oaWTKOrh4BTpS0xVqub2vJicKAVWeRv8xnaI9KminpFU3LW3bTtOoaaq7b6KaSdJKkvwPfz+Vvk3Rr3td1knYpGeeQvP0lebsnNg6skkZLuiafBT8s6YeStmpad09JcyQ9JumnwKYF+1nVDZK/m2/lM/tlkuZKGtNqvYi4KiJ+ASwq8XFGAbdFxC0R8TxwAbAtMDQv3xm4MiIWR8STwM+BV5bYbisHA5eXrDsR+HpELIyIB0mJ76g2dd8HXBwR10XECuALwOGSNouI5RHxpYi4PyKej4hLgAeBPboLQMmZkq6VNDgX3wbMBj5e8nNYL3GisGaXAqNJZ4a3k85we8MIYAtgR+BoSXuREsYHgRcC5wGXSNqkxLa+C2wGvBg4gHSme2ReJuDLwHBgTK7zeQBJmwKX5H1tk6cnlIx/HLAP6bvZGng36ex2XV0GDJK0l6QBwAeA2RGxJC8/B3iDpOGSNgfeQ/lWwSr5s+8LzCi5yiuBW5vmb6V9glqtbkT8GXie9F11jWM48BLgjm7iHQCcC7wcOCgiljct/hzwyUb3lvUNJ4r+6eJ8Jv+opIsB8hnf+RHxWEQ8BZwC7JkPUOtqJXBKRDyTz4ynAN+NiD9FxHMRcV6ut1fRRiRtDLwTOCHHeQ9wJvD+/Bn+EhEz8n4W52VvyqvvCwTw7Yh4NiJ+BtxSMv5ngcHAv+T93BERfy+5bpHlwEXA9cDTwImk76bhz6SWyUJgGfBSUiLsqf2AWRHxeHcVc+tss7y/hmXAlm1W2aJLXUifa7X6+STgJ8A5EXF3QQibkFpOWwDj89/LKhExG5gJfLrwg1ivcqLonyZExJD8mgDpLE7S6ZLukbQcmJ/rDm2/mdIeiohnmuZ3Aj7TlKweJbUCduhmOy8CBgDNF2Xvb6wnaTtJF0r6W/4M5zfFvz2wIFYfLrnUxd2IuAr4HnAW8JCk70lqd+DsiQ+TktwYUjfYJOBySdvm5WeT/o9uA2xOavFd1lhZ0hVN39+ngM92PQHIVnU7Kd3N1biJ4TctPmsAT5ASY8Ng4LE2n2FFl7pr1M8thB/nut11G72cdD3lSxHxbJs6nweOlTSsm21ZL3GisIYjSQeUA4CtSGevkLpz2oqIlaSz4c2airfrWq3L/IPAF5uS1ZCI2CwiLuwmxsXAc6RE07Aj8Lc8fVqO5VURMZjUr96IfxGpC4wu65YSEd+IiD1IF3jHkC40r6tXA9Mj4u7csroMeBh4bdPyH0TE0oh4Gvg28LpGt0tEjGt8f8DXga90PQHIViWKfDdX4yaGt7aJa17ed3Oc88rUlfQy0nHl7jy/EfADUpfdYfnvpchtpFbVlZLW6L7Kn2Ee8BtSC8z6gBOFNWxJOsj+g3TQ/0oP1r0VeG9ulRwCdHe74lTgmNw3L0lbSHprd91c+Qzzl8BX8zo7A8cBP2r6DI8Dy/KdNZ9qWv06YCNJx+YL8IdT4qIqgKS982tg3v4zpITVqu4ASYOAgXl/g9T+Tq8/AYdKGpW/h7eQ+vDnNS2fKGlw7nY7GnggIh4tE3eOZzSpoVDU3dPVBaTrANtLGkH6js9vU/dHwARJr8v/fl8CfhERT+RurLPzZxqfk123IuKHwMnA7/K/cSunAB+ifZeY9SInCmv4AakvfCHpQHV9D9b9GOkWz0eBw4HpRZUj4kbSLZhnAUuBv5DuninjaNKB+l7gWmAa6cAG6eCyN6nPfDrwq6Z9Pp1j/FDe5zuA5u6ZIkNIF1cfJd3uuYh0/aOVScCTpLP//fP092BVElkhqdFi+AHpGsUfSP36ZwKTmw7qx5MS0nxgCfDmHHdPHEL5u50avgv8lvR3MJd04f/cVp8hIuYCxwI/I7X4NgU+mrfzYtINC3uQuuwaXV7v6i6AiDgXOBX4vaQ1Wn4RMR/4Kau3ZK0i8hPuzDZckq4i3ep6VadjsfWXWxRmG7bfk1peZmvNLQozMyvkFoWZmRVar8fdGTp0aIwaNarTYZiZrVdmz579cESU/h3Kep0oRo0axaxZszodhpnZekUlRxJucNeTmZkVcqIwM7NCThRmZlbIicLMzAo5UZiZWSEnCjMzK+REYWZmhZwozMyskBOFmZkVWq9/mb0uRp1wWfeVCtx36iG9FImZWb25RWFmZoX6bYtiXa1Li8StETNbn7hFYWZmhdyisD6xrteE1lanWm++BmYbErcozMyskFsUHeDrG9Yd/41YnVTaopB0n6TbJM2RNCuXbSPpakl35/etc7kkfUvSfElzJe1RZWxmZlZOX7Qo9o+Ih5vmTwBmRMSpkk7I858BxgGj8+s1wFn53cz6Abei6qsTXU/jgf3y9DRgJilRjAcuiIgAbpA0RNLwiFjUgRiti05djO6k/viZ14W/rw1X1YkigKskBXB2REwFtm0c/CNikaQX5bo7AA82rbsgl62WKCRNAaYA7LjjjhWHXz8+67Lu+IDdd/rL/8eqE8W+EbEwJ4OrJd1VUFctymKNgpRspgKMHTt2jeVmZta7Kr2YHREL8/ti4NfA3sBDkoYD5PfFufoCYGTT6iOAhVXGZ2Zm3assUUjaXNKWjWng34DbgenAxFxtInBJnp4OHJnvftoHWObrE2ZmnVdl19O2wK8lNfbzk4i4UtKfgAslTQYeAA7P9S8HDgbmA08AkyqMzczMSqosUUTEPcCrW5T/AziwRXkAx1QVj5lZnaxPw7x4CA8zMyvkITzMbL3XX25T7RQnCjPr1/y7k+6568nMzAo5UZiZWSF3PfUjbmKb2dpwi8LMzAo5UZiZWSEnCjMzK+REYWZmhZwozMyskBOFmZkV8u2xtkHzLcFm684tCjMzK+REYWZmhZwozMyskBOFmZkVcqIwM7NCThRmZlbIicLMzAo5UZiZWSEnCjMzK+REYWZmhZwozMyskBOFmZkVcqIwM7NCThRmZlbIicLMzAo5UZiZWSEnCjMzK1R5opA0QNItki7N8ztLulHS3ZJ+LmmTXL5pnp+fl4+qOjYzM+teX7QoPg7c2TR/GnBmRIwGlgKTc/lkYGlEvBQ4M9czM7MOqzRRSBoBHAKck+cFHAD8MleZBkzI0+PzPHn5gbm+mZl1UNUtim8A/wE8n+dfCDwaESvz/AJghzy9A/AgQF6+LNdfjaQpkmZJmrVkyZIqYzczMypMFJIOBRZHxOzm4hZVo8SyfxZETI2IsRExdtiwYb0QqZmZFRlY4bb3Bd4m6WBgEDCY1MIYImlgbjWMABbm+guAkcACSQOBrYBHKozPzMxKqKxFEREnRsSIiBgFvBv4fUS8F7gGOCxXmwhckqen53ny8t9HxBotCjMz61ud+B3FZ4DjJc0nXYM4N5efC7wwlx8PnNCB2MzMrIsqu55WiYiZwMw8fQ+wd4s6TwGH90U8ZmZWnn+ZbWZmhZwozMyskBOFmZkVcqIwM7NCThRmZlbIicLMzAo5UZiZWSEnCjMzK9RtopB0uqTBkjaWNEPSw5Le1xfBmZlZ55VpUfxbRCwHDiUN3Pcy4NOVRmVmZrVRJlFsnN8PBn4aER7R1cysHykz1tNvJN0FPAkcLWkY8FS1YZmZWV2UaVGcDLwWGBsRzwJPAG+rNCozM6uNMonijxGxNCKeA4iIx4Erqg3LzMzqom3Xk6TtSM+xfoGk3fnno0oHA5v1QWxmZlYDRdco3gIcRXpc6RlN5Y8BJ1UYk5mZ1UjbRBER04Bpkv5fRPyqD2MyM7MaKXPX06WS3gOMaq4fEV+qKigzM6uPMoniEmAZMBt4utpwzMysbsokihERcVDlkZiZWS2VuT32ekmvqjwSMzOrpTItitcDR0m6l9T1JCAiYtdKIzMzs1ookyjGVR6FmZnVVplEEZVHYWZmtVUmUVxGShYCBgE7A38GXllhXGZmVhPdJoqIWO1CtqQ9gA9XFpGZmdVKjx+FGhE3A3tVEIuZmdVQty0KScc3zW4E7AEsqSwiMzOrlTLXKLZsml5JumbhsZ/MzPqJMtcovgggacs0Gysqj8rMzGqj22sUknaRdAtwOzBP0mxJu1QfmpmZ1UGZi9lTgeMjYqeI2An4ZC4rJGmQpJsk3SppnqRGy2RnSTdKulvSzyVtkss3zfPz8/JRa/+xzMyst5RJFJtHxDWNmYiYCWxeYr2ngQMi4tXAbsBBkvYBTgPOjIjRwFJgcq4/GVgaES8Fzsz1zMysw8okinskfV7SqPz6HHBvdytF0riesXF+BXAA8MtcPg2YkKfH53ny8gMlNR6/amZmHVImUXwAGAZclF9DgUllNi5pgKQ5wGLgauCvwKMRsTJXWUB6Ljf5/UGAvHwZ8MIW25wiaZakWUuW+C5dM7OqlbnraSnwsbXZeEQ8B+wmaQjwa+AVrarl91athzXGmYqIqeRrJGPHjvU4VGZmFStz19PV+UDfmN9a0m97spOIeBSYCewDDJHUSFAjgIV5egEwMu9jILAV8EhP9mNmZr2vTNfT0HygB1a1MF7U3UqShjUSjKQXAP8K3AlcAxyWq00kPWoVYHqeJy//fUS4xWBm1mFlfpn9vKQdI+IBAEk7UW7o8eHANEkDSAnpwoi4VNIdwM8kfRm4BTg31z8X+KGk+aSWxLt7+FnMzKwCZRLFZ4HrJF2b598ITOlupYiYC+zeovweYO8W5U8Bh5eIx8zM+lCZi9lX5qHF9yFdcD4uIh6uPDIzM6uFMi0KcmK4tOJYzMyshnr8PAozM+tfnCjMzKxQqUQh6fWSJuXpYZJ2rjYsMzOrizI/uDsZ+AxwYi7aGPhRlUGZmVl9lGlRvB14G/A4QEQsZPWn3pmZ2QasTKJ4Jv9COgAklRli3MzMNhBlEsWFks4mjdH0IeB3wPerDcvMzOqizA/uvi7pzcBy4OXAFyLi6sojMzOzWug2UUg6DviFk4OZWf9UputpMPBbSf8r6RhJ21YdlJmZ1Ue3iSIivhgRrwSOAbYHrpX0u8ojMzOzWujJL7MXA38H/kGJ51GYmdmGocwP7v5d0kxgBul52R+KiF2rDszMzOqhzOixOwGfiIg5VQdjZmb10zZRSBocEcuB0/P8Ns3LI8LPszYz6weKWhQ/AQ4FZpN+la2mZQG8uMK4zMysJtomiog4NL97pFgzs36szMXsGWXKzMxsw1R0jWIQsBkwVNLW/LPraTDp9xRmZtYPFF2j+DDwCVJSmM0/E8Vy4H8qjsvMzGqi6BrFN4FvSvpoRHy7D2MyM7MaKTN67Lcl7QKMAQY1lV9QZWBmZlYPZUaPPRnYj5QoLgfGAdcBThRmZv1AmbGeDgMOBP4eEZOAVwObVhqVmZnVRplE8WREPA+slDSYNDigf2xnZtZPlBnraZakIaTHn84GVgA3VRqVmZnVRpmL2Ufnye9JuhIYHBFzqw3LzMzqougHd3sULYuIm6sJyczM6qSoRfHfBcsCOKBow5JGku6M2g54HpgaEd/Mo9D+HBgF3Ae8MyKWShLwTeBg4AngKCcjM7POK/rB3f7ruO2VwCcj4mZJWwKzJV0NHAXMiIhTJZ0AnAB8hnTb7ej8eg1wVn43M7MOKjMo4GaSPidpap4fLenQ7taLiEWNFkFEPAbcCewAjAem5WrTgAl5ejxwQSQ3AEMkDe/xJzIzs15V5vbYHwDPAK/L8wuAL/dkJ5JGAbsDNwLbRsQiSMmEfz5/ewfgwabVFuSyrtuaImmWpFlLlizpSRhmZrYWyiSKl0TE6cCzABHxJKs/xKiQpC2AX5Eep7q8qGqLslijIGJqRIyNiLHDhg0rG4aZma2lMoniGUkvIB+0Jb0EeLrMxiVtTEoSP46Ii3LxQ40upfy+OJcvAEY2rT4CWFhmP2ZmVp0yieJk4EpgpKQfAzOA/+hupXwX07nAnRFxRtOi6cDEPD0RuKSp/Egl+wDLGl1UZmbWOYU/uMsH+7uAdwD7kLqHPh4RD5fY9r7A+4HbJM3JZScBpwIXSpoMPAAcnpddTro1dj7p9thJPfsoZmZWhcJEEREh6eKI2BO4rCcbjojraH8t48BW+wKO6ck+zMysemW6nm6QtFflkZiZWS2VGRRwf+DDku4HHie1EiIidq00MjMzq4UyiWJc5VGYmVltlRk99v6+CMTMzOqpzDUKMzPrx5wozMyskBOFmZkVcqIwM7NCThRmZlbIicLMzAo5UZiZWSEnCjMzK+REYWZmhZwozMyskBOFmZkVcqIwM7NCThRmZlbIicLMzAo5UZiZWSEnCjMzK+REYWZmhZwozMyskBOFmZkVcqIwM7NCThRmZlbIicLMzAo5UZiZWSEnCjMzK+REYWZmhZwozMysUGWJQtJ5khZLur2pbBtJV0u6O79vncsl6VuS5kuaK2mPquIyM7OeqbJFcT5wUJeyE4AZETEamJHnAcYBo/NrCnBWhXGZmVkPVJYoIuIPwCNdiscD0/L0NGBCU/kFkdwADJE0vKrYzMysvL6+RrFtRCwCyO8vyuU7AA821VuQy9YgaYqkWZJmLVmypNJgzcysPhez1aIsWlWMiKkRMTYixg4bNqzisMzMrK8TxUONLqX8vjiXLwBGNtUbASzs49jMzKyFvk4U04GJeXoicElT+ZH57qd9gGWNLiozM+usgVVtWNJPgf2AoZIWACcDpwIXSpoMPAAcnqtfDhwMzAeeACZVFZeZmfVMZYkiIo5os+jAFnUDOKaqWMzMbO3V5WK2mZnVlBOFmZkVcqIwM7NCThRmZlbIicLMzAo5UZiZWSEnCjMzK+REYWZmhZwozMyskBOFmZkVcqIwM7NCThRmZlbIicLMzAo5UZiZWSEnCjMzK+REYWZmhZwozMyskBOFmZkVcqIwM7NCThRmZlbIicLMzAo5UZiZWSEnCjMzK+REYWZmhZwozMyskBOFmZkVcqIwM7NCThRmZlbIicLMzAo5UZiZWSEnCjMzK1SrRCHpIEl/ljRf0gmdjsfMzGqUKCQNAP4HGAeMAY6QNKazUZmZWW0SBbA3MD8i7omIZ4CfAeM7HJOZWb83sNMBNNkBeLBpfgHwmq6VJE0BpuTZFZL+3KXKUODhSiLsHXWPD+ofY93jg/rHWPf4oP4xdjQ+nVaqWrsYd+rJvuqUKNSiLNYoiJgKTG27EWlWRIztzcB6U93jg/rHWPf4oP4x1j0+qH+MdY8Pei/GOnU9LQBGNs2PABZ2KBYzM8vqlCj+BIyWtLOkTYB3A9M7HJOZWb9Xm66niFgp6Vjgt8AA4LyImLcWm2rbLVUTdY8P6h9j3eOD+sdY9/ig/jHWPT7opRgVscZlADMzs1Xq1PVkZmY15ERhZmaF1ptEIek8SYsl3d5m+VaSfiPpVknzJE3qsnywpL9J+k7d4pP0nKQ5+VXZBfx1jHFHSVdJulPSHZJG1SU+Sfs3fX9zJD0laUJvx7cuMeZlp+eyOyV9S1KrW8I7Gd9pkm7Pr3f1dmw9iHFrSb+WNFfSTZJ2aVpW+TA/6xhf4bqdjlHSSEnX5L/BeZI+XmqHEbFevIA3AnsAt7dZfhJwWp4eBjwCbNK0/JvAT4Dv1C0+YEXdv0NgJvDmPL0FsFmd4muqs00u7/X41iVG4HXA/5Fu1BgA/BHYr0bxHQJcTbrBZXNgFjC4Q9/h14CT8/S/ADPy9ADgr8CLc8y3AmPqEl+ZdTsdIzAc2CNPbwn8pcx3uN60KCLiD6Q/6rZVgC3zWdoWue5KAEl7AtsCV9Uxvr6ytjEqjbk1MCKuzttZERFP1CW+LnUOA66oIr51jDGAQaQD3KbAxsBDNYpvDHBtRKyMiMdJB+GDeju+kjGOAWbkuncBoyRtSx8N87MO8ZVZt6MxRsSiiLg5lz8G3EkaFaPQepMoSvgO8ArSj/RuAz4eEc9L2gj4b+DTnQyONvHlZYMkzZJ0Q1VdJiW1i/FlwKOSLpJ0i6SvKQ3iWJf4mr0b+GlfB9akZYwR8UfgGmBRfv02Iu6sS3ykxDBO0maShgL7s/oPYPvSrcA7ACTtTRpuYgSth/np9iBXgXbx1Um3Mebu492BG7vb2IaUKN4CzAG2B3YDviNpMHA0cHlEPFi0ch9oFx/AjpF+Zv8e4BuSXlKzGAcCbwA+BexFavofVaP4AJA0HHgV6bc4ndIyRkkvJR2gGwe8AyS9sS7xRcRVwOXA9aRE+0f6uMXb5FRga0lzgI8Ct+RYSg3z0wfaxVcnhTFK2gL4FfCJiFje3cY2pEQxCbgokvnAvaS+udcCx0q6D/g6cKSkU2sUHxGxML/fQ7oWsHsH4iuKcQFwS27yrwQuJvWP1iW+hncCv46IZzsQW0O7GN8O3JC77VYAVwD71Cg+IuIrEbFbRLyZdFC+uwPxERHLI2JSROwGHEm6lnIvNRnmpyC+2iiKUdLGpCTx44i4qMz2NqRE8QBwIEDuL3w5cE9EvDcidoyIUaQz4gsiohMPRWoZX747YdNcPhTYF7ijA/G1jZE0vMrWkoblegfQmRjbxddwBJ3tdoL2MT4AvEnSwPwf9U2k/uFaxCdpgKQX5vJdgV2p8JpeEUlDlIbxAfgg8Id81luLYX4K4quNdjHma1PnAndGxBmlN9gbV+D74kU6ACwCniWdWUwGPgJ8JC/fnvSHfRtwO/C+Fts4iuruelqr+Eh3w9xG6lO8DZhcx+8QeDMwNy87ny53G9UgvlHA34CN6vh3SLpj52xScrgDOKNm8Q3Kcd0B3ADs1sHv8LWk1sxdwEXA1k3rHky6U+evwGdrGN8a69YpRuD1pO66uaQuyDnAwd3tz0N4mJlZoQ2p68nMzCrgRGFmZoWcKMzMrJAThZmZFXKiMDOzQk4Utt6S9LE8CuaPC+qMlfStPH2Uqhs9eKakdX6IvaT9JF3aZtnuks7J06dI+lSLOucrjZK86rc5+cemSBom6cp1jdH6HycKW58dTboH/L3tKkTErIj42NpsvEPjWRU5Cfh2iXrPAR/oWhgRS4BFkvbt7cBsw+ZEYeslSd8jjTk1XdJxkvaWdH0etPB6SS/P9Vqeoecz78Oa5lc01b9G0k9IP0pD0vvymP5zJJ3dXQKRdISk25Se63BaU/lZefDHeZK+2FR+kKS7JF1HHsitxTa3BHaNiFtbLPuQpCskvSAXfQM4TtLAFpu6GGibWM1acaKw9VJEfIQ0zs/+EXEm6Reob4yI3YEvAF9dh83vTfrV7xhJrwDeBewbadyc5yg40EraHjiNNMzJbsBeTSMCfzbS4I+7kobz2FXSIOD7wFtJAy9u12bTY0m/pO66v2PzuhMi4slc/ABwHfD+FtuZlfdjVlqrMw6z9dFWwDRJo0lDFGy8Dtu6KSIag7wdCOwJ/CkNk8MLgMUF6+4FzMzdPOTrJ28kncm/U9IU0v+74aRnBmwE3BsRd+f6PwKmtNjucGBJl7L3k4ZvmBBrDoT4VdI4SJd1KV9MGsbDrDQnCttQ/CdwTUS8PY+zP7Ob+ivJLeo8UNomTcseb5oWMC0iTiwZR8vHm0ramTxMe0QslXQ+aXwlKDdU9pNN9RtuJ7VaRtBl9NKImJ+HmH5nl3UG5W2ZleauJ9tQbEUaFBDKPSvjPlJLAdJT0tq1QGYAh0l6EYCkbSTtVLDdG0ndSkPztYwjgGuBwaQEtCyP2jou178L2LnpGSRHtNnuncBLu5TdAnyYdJ2mVSvhK6Tk1OxltOjCMiviRGEbitOB/5LUeC51d75POqDfBLyG1VsRq0TEHcDngKskzSU9V3p4u41GxCLgRNLT7G4Fbo6IS/JF6FuAecB5pOdnExFPkbqaLssXs+9vs927gK3yRe3m8utIyeCyPEx987J5wM1dNrU/a3ZHmRXy6LFm6wlJxwGPRcQ567CNPwDjI2Jp70VmGzq3KMzWH2cBT6/tyvnBU2c4SVhPuUVhZmaF3KIwM7NCThRmZlbIicLMzAo5UZiZWSEnCjMzK/T/AbdWXOXB+n3JAAAAAElFTkSuQmCC\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "N=10000;\n", - "r=np.random.rand(N,1);\n", - "wmean=1; # in mm\n", - "wmin=wmean-wmean*0.01;\n", - "wmax=wmean+wmean*0.01;\n", - "hmean=2; # in mm\n", - "hmin=hmean-hmean*0.01;\n", - "hmax=hmean+hmean*0.01;\n", - "\n", - "wrand=wmin+(wmax-wmin)*r;\n", - "hrand=hmin+(hmax-hmin)*r;\n", - "\n", - "uts=940; # in N/mm^2=MPa\n", - "\n", - "Ffail=uts*wrand*hrand*1e-3; # force in kN\n", - "plt.hist(Ffail,bins=20,)\n", - "plt.xlabel('failure load (kN)')\n", - "plt.ylabel('relative counts')\n", - "plt.title('Failure load is {:.2f}+/- {:.2f} kN'.format(np.mean(Ffail),np.std(Ffail)));" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "Normally, the tolerance is not a maximum/minimum specification, but instead a normal distribution that describes the standard deviation, or the 68% confidence interval.\n", - "\n", - "So instead, we should generate normally distributed dimensions." - ] - }, - { - "cell_type": "code", - "execution_count": 97, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - }, - "slideshow": { - "slide_type": "slide" - } - }, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "N=100000;\n", - "wmean=1; # in mm\n", - "wstd=wmean*0.01; # standard deviation in mm\n", - "hmean=2; # in mm\n", - "hstd=hmean*0.01; # standard deviation in mm\n", - "\n", - "\n", - "wrand=np.random.normal(wmean,wstd,size=N);\n", - "hrand=np.random.normal(hmean,hstd,size=N);\n", - "uts=940; # in N/mm^2=MPa\n", - "\n", - "Ffail=uts*wrand*hrand*1e-3; # force in kN\n", - "plt.hist(Ffail,bins=20)\n", - "#plt.xlabel('failure load (kN)')\n", - "#plt.ylabel('relative counts')\n", - "plt.title('Failure load is {:.2f}+/- {:.2f} kN'.format(np.mean(Ffail),np.std(Ffail)));" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "In this propagation of uncertainty, the final value of failure load seems to be independent of wheher the distribution is uniformly random or normally distributed. In both cases, the failure load is $\\approx 1.9 \\pm 0.03$ kN.\n", - "\n", - "The difference is much more apparent if you look at the number of occurrences that failure will occur whether the dimensions are uniformly random or normally distributed. \n", - "\n", - "For the uniformly random case, there are approximately 500 parts out of 10,000 that will fail at 1.9 kN. \n", - "\n", - "For the normally distributed case, there are approximately 17,500 parts out of 10,000 that will fail at 1.9 kN. " - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "# Thanks" - ] - }, - { - "cell_type": "markdown", - "metadata": { - "slideshow": { - "slide_type": "slide" - } - }, - "source": [ - "# Using data from Dart board experiment" - ] - }, - { - "cell_type": "code", - "execution_count": 173, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "Gnuplot\n", - "Produced by GNUPLOT 5.0 patchlevel 3 \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t \n", - "\t \n", - "\t\n", - "\t\n", - "\t \n", - "\t \n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\t\n", - "\t\t-20\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-15\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-10\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-5\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t5\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t10\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t15\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-20\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-15\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-10\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-5\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t5\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t10\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t15\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\t\ty position (cm)\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\tx position (cm)\n", - "\t\n", - "\n", - "\n", - "\n", - "\tgnuplot_plot_1a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_2a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_3a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_4a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_5a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_6a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_7a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_8a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_9a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_10a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_11a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_12a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_13a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_14a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_15a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_16a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_17a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_18a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_19a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_20a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_21a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_22a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_23a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_24a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_25a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_26a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_27a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_28a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_29a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_30a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_31a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_32a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_33a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_34a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_35a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_36a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_37a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_38a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_39a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_40a\n", - "\n", - "\t \n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "darts=dlmread('compiled_data.csv',',');\n", - "x_darts=darts(:,1).*cosd(darts(:,2));\n", - "y_darts=darts(:,1).*sind(darts(:,2));\n", - "\n", - "colormap(colorcube(length(darts(:,3))))\n", - "\n", - "scatter(x_darts, y_darts, [], darts(:,3))\n", - "xlabel('x position (cm)')\n", - "ylabel('y position (cm)')" - ] - }, - { - "cell_type": "code", - "execution_count": 174, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "mu_x = 0.90447\n" - ] - } - ], - "source": [ - "mu_x=mean(x_darts)" - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "s_x = 4.2747\n" - ] - } - ], - "source": [ - "s_x=std(x_darts)" - ] - }, - { - "cell_type": "code", - "execution_count": 175, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "mu_y = 0.88450\n" - ] - } - ], - "source": [ - "mu_y=mean(y_darts)" - ] - }, - { - "cell_type": "code", - "execution_count": 177, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "s_y = 4.6834\n" - ] - } - ], - "source": [ - "s_y=std(y_darts)" - ] - }, - { - "cell_type": "code", - "execution_count": 180, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "Gnuplot\n", - "Produced by GNUPLOT 5.0 patchlevel 3 \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t \n", - "\t \n", - "\t\n", - "\t\n", - "\t \n", - "\t \n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t5\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t10\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t15\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t20\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-20\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-15\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-10\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-5\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t5\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t10\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t15\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\n", - "\tgnuplot_plot_1a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_2a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_3a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_4a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_5a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_6a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_7a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_8a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_9a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_10a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_11a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_12a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_13a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_14a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_15a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_16a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_17a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_18a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_19a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_20a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_21a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_22a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_23a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_24a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_25a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_26a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_27a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_28a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_29a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_30a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_31a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_32a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_33a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_34a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_35a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_36a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_37a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_38a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_39a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_40a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_41a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_42a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_43a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_44a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_45a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_46a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_47a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_48a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_49a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_50a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_51a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_52a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_53a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_54a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_55a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_56a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_57a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_58a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_59a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_60a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_61a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "hist(x_darts,30,100)" - ] - }, - { - "cell_type": "code", - "execution_count": 182, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "Gnuplot\n", - "Produced by GNUPLOT 5.0 patchlevel 3 \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t \n", - "\t \n", - "\t\n", - "\t\n", - "\t \n", - "\t \n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0.05\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0.1\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0.15\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0.2\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-20\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-15\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-10\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-5\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t5\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t10\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t15\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\t\trelative counts\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\tx position (cm)\n", - "\t\n", - "\n", - "\n", - "\n", - "\tgnuplot_plot_1a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_2a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_3a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_4a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_5a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_6a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_7a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_8a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_9a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_10a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_11a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_12a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_13a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_14a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_15a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_16a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_17a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_18a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_19a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_20a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_21a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_22a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_23a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_24a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_25a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_26a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_27a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_28a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_29a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_30a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_31a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_32a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_33a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_34a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_35a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_36a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_37a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_38a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_39a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_40a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_41a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_42a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_43a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_44a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_45a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_46a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_47a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_48a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_49a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_50a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_51a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_52a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_53a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_54a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_55a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_56a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_57a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_58a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_59a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_60a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_61a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_62a\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_63a\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_64a\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "x_vals=linspace(-15,20,30);\n", - "hist(x_darts,x_vals,1);\n", - "[histFreq, histXout] = hist(x_darts, 30);\n", - "binWidth = histXout(2)-histXout(1);\n", - "bar(histXout, histFreq/binWidth/sum(histFreq));\n", - "pdfnorm = @(x) 1/sqrt(2*s_x^2*pi).*exp(-(x-mu_x).^2/2/s_x^2);\n", - "#cdfnorm = @(x) 1/2*(1+erf((x-mu_x)./sqrt(2*s_x^2)));\n", - "#hist(x_darts,x_vals,trapz(x,f))#,cdfnorm(max(x_darts))/2)\n", - "hold on;\n", - "plot(x_vals,pdfnorm(x_vals))\n", - "n=2; # n=1, 68# confidence, n=2, 95% confidence, n=3, 99% conf\n", - " plot([mu_x+n*s_x,mu_x+n*s_x],[0,0.1],'r-')\n", - " plot([mu_x-n*s_x,mu_x-n*s_x],[0,0.1],'r-')\n", - "\n", - "xlabel('x position (cm)')\n", - "ylabel('relative counts')" - ] - }, - { - "cell_type": "code", - "execution_count": 183, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "Gnuplot\n", - "Produced by GNUPLOT 5.0 patchlevel 3 \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t \n", - "\t \n", - "\t\n", - "\t\n", - "\t \n", - "\t \n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0.05\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0.1\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0.15\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0.2\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-20\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-15\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-10\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-5\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t5\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t10\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t15\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\t\trelative counts\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\tx position (cm)\n", - "\t\n", - "\n", - "\n", - "\n", - "\tgnuplot_plot_1a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_2a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_3a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_4a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_5a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_6a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_7a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_8a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_9a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_10a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_11a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_12a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_13a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_14a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_15a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_16a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_17a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_18a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_19a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_20a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_21a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_22a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_23a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_24a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_25a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_26a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_27a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_28a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_29a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_30a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_31a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_32a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_33a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_34a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_35a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_36a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_37a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_38a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_39a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_40a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_41a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_42a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_43a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_44a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_45a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_46a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_47a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_48a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_49a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_50a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_51a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_52a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_53a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_54a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_55a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_56a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_57a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_58a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_59a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_60a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_61a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_62a\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_63a\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_64a\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "y_vals=linspace(-15,20,30);\n", - "hist(y_darts,y_vals,1);\n", - "[histFreq, histXout] = hist(y_darts, 30);\n", - "binWidth = histXout(2)-histXout(1);\n", - "bar(histXout, histFreq/binWidth/sum(histFreq));\n", - "pdfnorm = @(x) 1/sqrt(2*s_y^2*pi).*exp(-(x-mu_y).^2/2/s_y^2);\n", - "#cdfnorm = @(x) 1/2*(1+erf((x-mu_x)./sqrt(2*s_x^2)));\n", - "#hist(x_darts,x_vals,trapz(x,f))%,cdfnorm(max(x_darts))/2)\n", - "hold on;\n", - "plot(y_vals,pdfnorm(y_vals))\n", - "n=2; # n=1, 68% confidence, n=2, 95% confidence, n=3, 99% conf\n", - " plot([mu_y+n*s_y,mu_y+n*s_y],[0,0.1],'r-')\n", - " plot([mu_y-n*s_y,mu_y-n*s_y],[0,0.1],'r-')\n", - "\n", - "xlabel('x position (cm)')\n", - "ylabel('relative counts')" - ] - }, - { - "cell_type": "code", - "execution_count": 76, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "Gnuplot\n", - "Produced by GNUPLOT 5.0 patchlevel 3 \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t \n", - "\t \n", - "\t\n", - "\t\n", - "\t \n", - "\t \n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0.2\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0.4\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0.6\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0.8\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t1\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-15\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-10\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-5\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t5\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t10\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t15\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t20\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\texperimental CDF\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\texperimental CDF\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tNormal CDF\n", - "\n", - "\t\n", - "\t\tNormal CDF\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "x_exp=empirical_cdf(x_vals,x_darts);\n", - "plot(x_vals,x_exp)\n", - "hold on;\n", - "plot(x_vals,normcdf(x_vals,mu_x,s_x),'k-')\n", - "legend('experimental CDF','Normal CDF','Location','SouthEast')" - ] - }, - { - "cell_type": "code", - "execution_count": 185, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "Gnuplot\n", - "Produced by GNUPLOT 5.0 patchlevel 3 \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t \n", - "\t \n", - "\t\n", - "\t\n", - "\t \n", - "\t \n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t-20\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t-15\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t-10\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t-5\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t5\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t10\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t15\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t20\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t-20\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t-15\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t-10\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t-5\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t5\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t10\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t15\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t20\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t0.2\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t0.4\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t0.6\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t0.8\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t1\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\tgnuplot_plot_1a\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_2a\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\t\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\t\tx position (cm)\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\ty position (cm)\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "# plot the distribution in x- and y-directions\n", - "gauss2d = @(x,y) exp(-((x-mu_x).^2/2/s_x^2+(y-mu_y).^2/2/s_y^2));\n", - "\n", - "x=linspace(-20,20,31);\n", - "y=linspace(-20,20,31);\n", - "scatter3(x_darts, y_darts,ones(length(x_darts),1))\n", - "xlabel('x position (cm)')\n", - "ylabel('y position (cm)')\n", - "hold on\n", - "[X,Y]=meshgrid(x,y);\n", - "view([1,1,1])\n", - "\n", - "surf(X,Y,gauss2d(X,Y))" - ] - }, - { - "cell_type": "code", - "execution_count": 187, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "Gnuplot\n", - "Produced by GNUPLOT 5.0 patchlevel 3 \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t \n", - "\t \n", - "\t\n", - "\t\n", - "\t \n", - "\t \n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t-20\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t-15\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t-10\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t-5\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t5\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t10\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t15\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t20\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t-20\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t-15\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t-10\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t-5\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t5\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t10\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t15\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t20\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t0.2\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t0.4\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t0.6\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t0.8\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t1\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\tgnuplot_plot_1a\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\n", - "\t\n", - "\tgnuplot_plot_2a\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\t\n", - "\t\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\n", - "\t\n", - "\t\tx position (cm)\n", - "\t\n", - "\n", - "\n", - "\t\n", - "\t\ty position (cm)\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "gauss2d = @(x,y) exp(-((x-0).^2/2/1^2+(y-0).^2/2/5^2));\n", - "\n", - "x=linspace(-20,20,71);\n", - "y=linspace(-20,20,31);\n", - "scatter3(x_darts, y_darts,ones(length(x_darts),1))\n", - "xlabel('x position (cm)')\n", - "ylabel('y position (cm)')\n", - "hold on\n", - "[X,Y]=meshgrid(x,y);\n", - "view([1,1,1])\n", - "\n", - "surf(X,Y,gauss2d(X,Y))" - ] - }, - { - "cell_type": "code", - "execution_count": 190, - "metadata": { - "collapsed": false, - "jupyter": { - "outputs_hidden": false - } - }, - "outputs": [ - { - "data": { - "image/svg+xml": [ - "\n", - "\n", - "Gnuplot\n", - "Produced by GNUPLOT 5.0 patchlevel 3 \n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t\n", - "\t \n", - "\t \n", - "\t\n", - "\t\n", - "\t \n", - "\t \n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t10\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t20\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t30\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t40\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t50\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t-100\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t0\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t100\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t200\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t300\n", - "\t\n", - "\n", - "\n", - "\t\t\n", - "\t\t400\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\t\n", - "\n", - "\n", - "\tgnuplot_plot_1a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_2a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_3a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_4a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_5a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_6a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_7a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_8a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_9a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_10a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_11a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_12a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_13a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_14a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_15a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_16a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_17a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_18a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_19a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\t\n", - "\t\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_20a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\tgnuplot_plot_21a\n", - "\n", - "\n", - "\n", - "\t\n", - "\t\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "\n", - "" - ], - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "hist(darts(:,2))" - ] - } - ], - "metadata": { - "celltoolbar": "Slideshow", - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.5" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/notebooks/04_Linear_Regression_with_Real_Data.ipynb b/notebooks/04_Linear_Regression_with_Real_Data.ipynb deleted file mode 100644 index 26fcd31..0000000 --- a/notebooks/04_Linear_Regression_with_Real_Data.ipynb +++ /dev/null @@ -1,1094 +0,0 @@ -{ - "cells": [ - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "###### Modified under Creative Commons Attribution license CC-BY 4.0, code under BSD 3-Clause License © 2020 R.C. Cooper" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "# Linear regression with real data" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Earth temperature over time\n", - "\n", - "In this lesson, we will apply all that we've learned (and more) to analyze real data of Earth temperature over time.\n", - "\n", - "Is global temperature rising? How much? This is a question of burning importance in today's world!\n", - "\n", - "Data about global temperatures are available from several sources: NASA, the National Climatic Data Center (NCDC) and the University of East Anglia in the UK. Check out the [University Corporation for Atmospheric Research](https://www2.ucar.edu/climate/faq/how-much-has-global-temperature-risen-last-100-years) (UCAR) for an in-depth discussion.\n", - "\n", - "The [NASA Goddard Space Flight Center](http://svs.gsfc.nasa.gov/goto?3901) is one of our sources of global climate data. They produced the video below showing a color map of the changing global surface **temperature anomalies** from 1880 to 2015.\n", - "\n", - "The term [global temperature anomaly](https://www.ncdc.noaa.gov/monitoring-references/faq/anomalies.php) means the difference in temperature with respect to a reference value or a long-term average. It is a very useful way of looking at the problem and in many ways better than absolute temperature. For example, a winter month may be colder than average in Washington DC, and also in Miami, but the absolute temperatures will be different in both places." - ] - }, - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "data": { - "image/jpeg": "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\n", - "text/html": [ - "\n", - " \n", - " " - ], - "text/plain": [ - "" - ] - }, - "execution_count": 1, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "from IPython.display import YouTubeVideo\n", - "YouTubeVideo('gGOzHVUQCw0')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "How would we go about understanding the _trends_ from the data on global temperature?\n", - "\n", - "The first step in analyzing unknown data is to generate some simple plots using **Matplotlib**. We are going to look at the temperature-anomaly history, contained in a file, and make our first plot to explore this data. \n", - "\n", - "We are going to smooth the data and then we'll fit a line to it to find a trend, plotting along the way to see how it all looks.\n", - "\n", - "Let's get started!" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Step 1: Read a data file\n", - "\n", - "We took the data from the [NOAA](https://www.ncdc.noaa.gov/cag/) (National Oceanic and Atmospheric Administration) webpage. Feel free to play around with the webpage and analyze data on your own, but for now, let's make sure we're working with the same dataset.\n", - "\n", - "\n", - "We have a file named `land_global_temperature_anomaly-1880-2016.csv` in our `data` folder. This file contains the year on the first column, and averages of land temperature anomaly listed sequentially on the second column, from the year 1880 to 2016. We will load the file, then make an initial plot to see what it looks like.\n", - "\n", - "\n", - "##### Note:\n", - "\n", - "If you downloaded this notebook alone, rather than the full collection for this course, you may not have the data file on the location we assume below. In that case, you can download the data if you add a code cell, and execute the following code in it:\n", - "\n", - "```Python\n", - "from urllib.request import urlretrieve\n", - "URL = 'http://go.gwu.edu/engcomp1data5?accessType=DOWNLOAD'\n", - "urlretrieve(URL, 'land_global_temperature_anomaly-1880-2016.csv')\n", - "```\n", - "The data file will be downloaded to your working directory, and you will then need to remove the path information, i.e., the string `'../../data/'`, from the definition of the variable `fname` below.\n", - "\n", - "Let's start by importing NumPy." - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [], - "source": [ - "import numpy as np\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "To load our data from the file, we'll use the function [`numpy.loadtxt()`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.loadtxt.html), which lets us immediately save the data into NumPy arrays. (We encourage you to read the documentation for details on how the function works.) Here, we'll save the data into the arrays `year` and `temp_anomaly`. " - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [], - "source": [ - "fname = '../data/land_global_temperature_anomaly-1880-2016.csv'\n", - "\n", - "year, temp_anomaly = np.loadtxt(fname, delimiter=',', skiprows=5, unpack=True)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "##### Exercise\n", - "\n", - "Inspect the data by printing `year` and `temp_anomaly`." - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(137,)" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "temp_anomaly.shape" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Step 2: Plot the data\n", - "\n", - "Let's first load the **Matplotlib** module called `pyplot`, for making 2D plots. Remember that to get the plots inside the notebook, we use a special \"magic\" command, `%matplotlib inline`:" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [], - "source": [ - "import matplotlib.pyplot as plt\n", - "%matplotlib inline" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "The `plot()` function of the `pyplot` module makes simple line plots. We avoid that stuff that appeared on top of the figure, that `Out[x]: [< ...>]` ugliness, by adding a semicolon at the end of the plotting command." - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAD8CAYAAAB6paOMAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4zLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvIxREBQAAIABJREFUeJztvXl8nGd57/29R7NpFmm0y7Jly7tjh9hJnIATlkCasJZAWQqFQgt9c2hLy6HLKbSntKXnvIfS9tD2LUsppYW2lLAUEkjYIQlNnGA78R7b8a59H41m3+73j2fRjDQz2saSLF3fz0cfP3rmWW49su7fcy33dSmtNYIgCMLaxbHcAxAEQRCWFxECQRCENY4IgSAIwhpHhEAQBGGNI0IgCIKwxhEhEARBWOOIEAiCIKxxRAgEQRDWOCIEgiAIaxzncg+gHM3Nzbqrq2u5hyEIgnBdceTIkRGtdct8zlmxQtDV1cXhw4eXexiCIAjXFUqpK/M9pyquIaXU55VSQ0qpk2U+v0spNaGUOmp+faQa9xUEQRAWT7Usgn8B/h74YoVjfqq1fl2V7icIgiBUiapYBFrrx4GxalxLEARBWFqWMmvogFLqmFLqO0qpPaUOUErdr5Q6rJQ6PDw8vIRDEwRBWLsslRA8A2zSWu8F/j/gm6UO0lp/Vmu9X2u9v6VlXkFvQRAEYYEsiRBorSNa66i5/QjgUko1L8W9BUEQhMosiRAopdqVUsrcvt287+hS3FsQBEGoTFWyhpRS/wHcBTQrpXqAPwFcAFrrzwBvBn5dKZUFEsDbtPTIFARBmMHXj/SQzef5xds2Ltk9qyIEWuu3z/L532OklwqCIAgV+OcnLxH0uJZUCKTWkCAIwgohmspyui/C/q6GJb2vCIEgCMIK4ejVMHkN+7sal/S+IgSCIAgrhMNXxlAKbt4YWtL7ihAIgiCsEA5fHmdXex11XteS3leEQBAEYQWQzeV59uo4+zctbXwARAgEQRBWBGcGJomlc0seKAYRAkEQhBXB4ctG3c6lDhSDCIEgCMKK4PCVcdbVe1kfql3ye4sQCIIgrACOXBnn1mWID4AIgSAIwrKTy2v6J5JsbQksy/1FCARBEJaZSCIDQMi3tGmjFiIEgiAIy0xYhEAQBGFtE46nAQjVupfl/iIEgiAIy4xlEdSLRSAIgrA2mYibrqFaEQJBEIQ1ie0a8olrSBAEYU1iuYbqvFXpFTZvRAgEQRCWmXA8Q9DrxFmzPFOyCIEgCMIyM5HILFvqKIgQCIIgLDvheHrZUkdBhEAQBGHZCYtFIAiCsLaZiGeoX6bUURAhEARBWHbEIhAEQVjD5PNaYgSCIAhrmWg6S14vX8E5ECEQBEFYVqzyEhIjEARBWKOErTpDy1ReAkQIBEEQlpVwwqozJBaBIAjCmiS8zJVHQYRAEARhWVnuXgQgQiAIgrCsTJglqCVYLAiCsEYJxzP43DV4nDXLNgYRAkEQhEXw6Ucv8L1TAws+P5zILGt8AEQIBEEQFsWnHj3PVw93z9ifzOT4zS89w5XRWMXzw/EM9cuYOgoiBIIgCAtmIp5hMpllaDI147MzA5M8fLyfH58ZqnyNRFosAkEQhOuV7vE4AIOR5IzP+sMJ45ixRMVrhOPLW3AORAgEQRAWTPeYIQTDkylyeV30Wf+EIQ6WWJRjuSuPggiBIAjCnDkzEOE1f/tTxmNGyqc1yec1jEaL3UMDppVgiUUptNZmLwKJEQiCIFwXHLo8zun+CM9cHQeK3T6DkWIh6DNdQz3jCbQuthYsEpkc6Vx+dVgESqnPK6WGlFIny3yulFJ/p5Q6r5Q6rpS6pRr3FQRBWEqGzaDwmYFJwLAInA4FzIwTDJiuoWgqa5eRmM5KKC8B1bMI/gV4VYXPXw1sN7/uBz5dpfsKgiAsGcOTxuRuC8FYnD3r6wEYnCwWgv6JJEGv0ziuRJzgyJUx/vShU8DyVh6FKgmB1vpxYKzCIfcBX9QGTwEhpdS6atxbEARhqRgy3T9n+iNorekZT3BzZwilpj4DyOU1g5Ek+zc1ADMzhx482subPn2QgxdHuf+lW3jZjpal+yFK4Fyi+6wHCldc9Jj7+pfo/oIgCIvGWi9wcSRGz3iCVDbP5mY/TX4PQwUWwWg0RTavuW1zIz85OzzDIvjOiQHW1Xv54e+8DL9nqabh8ixVsFiV2DcjeqKUul8pdVgpdXh4eHgJhiUIgjB3hiYNd08ur3n0rLFQrLOxlrY6T1Gw2Eod3dEaJORzFWUO5fOapy6Ncue25hUhArB0QtADdBZ8vwHom36Q1vqzWuv9Wuv9LS3LayoJgiAUks9rRqJp7tzaDMD3Tw8C0Nngo63OWxQstoSgvd5LZ4OP7vEp19BzAxHC8Qx3bmtawtFXZqmE4CHgXWb20IuACa21uIUEQVhyesMJUtncvM8bi6fJme4ej9PBUxdHAdjQ4CthERgT/7p6L52NtfQUWAQHLxjnHdjSvJgfo6pUK330P4CDwE6lVI9S6r1Kqfcppd5nHvIIcBE4D/wj8BvVuK8gCMJ8yObyvOoTj/P5/7o873OtYPC6ei872oJkcpqWoIdadw2tQS+jsRSZXB4wUkfdTgeNfjedDT56xhPkzZXHT14YZUuLn/Z6b9V+rsVSFQeV1vrts3yugd+sxr0EQRAWylg8zWQqy+n+SMXjTvRMsL0tgNc11SPACga3Bj3sbA9yoneCzoZaY1+dB61hJJpiXX0t/RNJ1tV7UUqxodFHOpdnaDJFU8DN0xdHeeMt66/dD7kAZGWxIAhrhjGzNMSlkWjZY0aiKd7wqSf4+HfPFu23MoZag152tQcB6Gz0AdAWNN7uLauhfyJBe52xzxKL7vE4J3oniKVz3LF15biFQIRAEIQ1xFjUEILLI/GyZR+OdYfJ5TX/8bOrdk0hmFpV3BL0cMO6OsAIFAO0mZO+FTC2LAKYEovusTg/es4IML9oy8oJFIMIgSAIa4hRc2KPprKMRNMljznWHUYpow7QFw9esfcPT6YIepzUumvY01FH0OtkX2cIgLY6DwCDkyny5mKy9nrDElgfMv79k4dO8cmfXOCFmxtp9C/vSuLprIwkVkEQhCVgrOAN//JojJagZ8YxR3sm2NkWpCNUyxcOXub+l26h1l3D0GSSFnPCD/ncHP3IvZhlhmgKeHAoGIokGYmlyOQ0HSHDIvC6atjbGWIymeF/vHInv3DLhmv+c84XsQgEQVgzFJaKvjQys4Wk1ppj3WH2dYZ438u2MhZL89UjRlGEoUiK1gLhqHEolFL2dnPAw2AkaRebs2IEAA/+5p386Hdexi8f6Foxi8gKESEQBGHNMBpLU+d14nQoLpcQgiujcSYSGfZ2hritq4GbNtTz1cM9AAxHU7QEy6d8GovKUhztDgOwznQNWViisRJZedIkCIJwjRiLpWkJeshrwzU0nWM9xiS+d0MIpRT37m7jr75/juHJ1AyLYDptdR5++NwQj50bZn2oli0t/mv2c1QbEQJBENYMo7E0TQEPfncNl0ZmloY+2h3G63Kwoy0AwF07W/mr75/j4eN9JDK5ikJw185WhqNp3nZbJ2/Yt55ad03ZY1caIgSCIKwZRqMpdrQFWVdfy1MXx9BaF7lsjnWHecH6epw1htd8T0cdrUEPD5juoda68kLwzhdt4p0v2nRtf4BrhMQIBEFYM4zF0jT63Wxu9pHI5IrqA2VyeU72Rdi7IWTvU0rx8p2tPGeuRG6tECO4nhEhEARhTZDLa8KJDE1+N13Nhv++MHPo7MAk6WyevZ2hovNevmuqEnKpdNPVgAiBIAhrgvF4Gq2NnP+uJkMICgPGF4aNshNW+QiLO7c146ox3EeVYgTXMyIEgiCsCazFZI1+Nx2hWtw1jqIU0h6zZ8D6huK0z6DXxW1djbidDuqXucn8tUKCxYIgrAlGzMVkTX43NQ7FxiZfkWuoZzxBk9+Nzz1zWvytV2znaHd4Ra8FWAwiBIIgrAlsiyBg1PnpavIXuYZ6w4kZ1oDFga1NHNi6sgrFVRNxDQmCsCawhKDJb/j5Nzf7uDIatxvG9IzH7QJxaw0RAkEQVh1/+8Pn+d8Pny7aN2pWG23wGX7+rmY/qWye/kgSrTV94YQIgSAIwmrhsXNDPH5upGjfaCxFyOeyF4tttjKHRmKMxtIkM3k2lHENrXYkRiAIwqojnMiQyuSL9lmLySw2m7WALo7E7Iqg681GM2sNEQJBEFYd4XiGbK5YCEajaZr9U+sA2oJevC4jhbTRZwiEuIYEQRBWAfm8JhxPE01li9pRTrcIHA5lZA6NxOgNGwXoymUNrXZECARBWFVMprLkNeS10W7SYiyWtlNHLbqa/FwajdE7niDoda7aBWOzIUIgCMKqYiKesbcnk1nAqDM0Fk/TNK1XcFezn+6xOFfG1m7qKIgQCIKwyhiPT/UltoQgbNUZmiYEm5t9ZHKaI1fG12zGEIgQCIKwyigUgmjKEIKpVcXFReOs4nOTySwb1mjGEIgQCIKwyphITLmGoqZFMGqvKp5uEUy1kxTXkCAIwiphPFZoERiiEDbjBiFfcTC4JWi0rYS1mzEEIgSCIKwywomZweKJhCEOIV+xRaCUYpPpHpIYgSAIwiohHM9gVYu2YgS2RVAiPdRaYSyuIUEQhFVCOJ5mXZ3RW9jOGkpkcNUofKYbqJD9mxrY0FBbtNhsrSElJgRBWFWMxzM0Bz2MmauLwbAI6mvdJRvL/ModXbzrQNeqbTozF0QIBEFYVYTjaUI+NwGPqyhGMD1QbKGUombtagAgriFBEFYZ4USGUK2LoNdZZBGUig8IBiIEgiBcFzx4tJeTvROzHjceS9PgcxHwOIkmp9JHy1kEggiBIAjXAVpr/vA/T/DHD56seFwur4kks9T73IYQpCzXkBEjEEojQiAIwoonksgSS+d49mqY5wcnyx5nrSpu8LkIeJ1FtYbEIiiPCIEgCCue3nDC3n7gUHfZ48Jxqy+xm6ApBJlcnlg6JzGCCogQCIKw4rg6GuePv3mSjNllrH/CEILOxlr+89le0tl8yfPGzYVj9T4XQdM1ZFkJYhGUR4RAEIQVx7eO9/GvT13h7IDhBuozLYLfevl2xmJpfvTcYMnzCi2CgJk1ZO2r90mMoBxVEQKl1KuUUmeVUueVUh8q8fmvKKWGlVJHza9fq8Z9BUFYnVhxgEsjMQB6w0ncNQ7eeMt62uu8fPVIT8nzCktJBDwucnnNwETK3ieUZtELypRSNcAngXuAHuCQUuohrfXpaYc+oLV+/2LvJwjC6uf5oSgAl00h6AsnaK/34qpxcMe2Jp6+OFbyvPFpFgFAz7jRj1hcQ+WphkVwO3Bea31Ra50GvgzcV4XrCoKwBsnlNedNIbg0aghB/0SCjpBRP6gl4GEkmipqTG8xkcjgUBD0Ogl6LCEw3EohSR8tSzWEYD1QGMbvMfdN501KqeNKqa8ppTqrcF9BEFYhPeNxUmYweMoiSNJhVgdtCrhJZY1MoOmMx9PU17pwOBQBT7FFUC8WQVmqIQSlqnRMl+pvAV1a65uAHwJfKHkhpe5XSh1WSh0eHh6uwtAEQVgOMrk8b/3MQX76/NTf8deP9PAb/35k1nOfHzSsgV3tQS6Pxsnm8gxEknTUm0LgN9pNjkZTM84NxzM0mEHhoHfKInAobAtBmEk1hKAHKHzD3wD0FR6gtR7VWlu/tX8Ebi11Ia31Z7XW+7XW+1taWqowNEEQloOBiSQ/uzzGkSvj9r6nLo7yw+eGZj333JARKL5ndxtjsTTnh6Pk8rrIIgAYiaZnnBuOZ+w3fytG0D0et60EoTTVEIJDwHal1GallBt4G/BQ4QFKqXUF374eeK4K9xUEYYUyEEkCU/0ArO10Nl92DYDF+cEo7XVeXrC+HoAnzo8C2DGC5kB5i2A8np6yCDyGIAxGUjM6kwnFLNpW0lpnlVLvB74H1ACf11qfUkp9FDistX4I+G2l1OuBLDAG/Mpi7ysIwsplYMIQgmiBEFh1f2KpLG5n+Yn53NAk29sCdmP5J8+PAMywCEZjpS2CnW1BYMoiAKiX1NGKVMVpprV+BHhk2r6PFGx/GPhwNe4lCMLKZ9CyCFKF/YON7WgqS0OZbmB5M2Pol27fRGejD6Xg6UtGqui6esMisDqJTbcI8nnNWCxtv/37PVPdyCR1tDKyslgQhKpjWQTTXUMwZRmUomc8QTKTZ0dbAK+rho76WqKpLHVeJ0GvMZl7nDUEvc4ZMYLnh6IkMjluWBe0j3M7jSlOFpNVRoRAEISqY8UIIgVCYG3HKgjB82ageHtbAMB2D3VMayzfHPDMcA0dvmJYDrd1Ndr7rEwhiRFURoRAEISqY7uGkjNdQ5MVhOCcmTq6rdV4q+9q9gEzhaDJ757hGjp8eZzmgJtNTT57n5VCKjGCyogQCIJQdaZnDaWzeXuRWEWLYHCS1qDHnrg3NxuWgZUxZNEUcDManWkR7N/UWNSE3goYS4ygMiIEgiBUFa01gxHjbd22Agosg8JMoumcGZhk17o6+/vNpkWwrn6aRRDwMBqbsggGI0m6xxLs72ooOi7gESGYCyIEgiBUlfF4hnQ2T4PPRTKTJ5PLFwWIywWLM7k854ei3NAetPftaq/D6VDsKtgH0Ox3MxZLk8sbRQwOXzYWru0viA8ABMy1BFJnqDIiBIIgVBUrY2i76eePJrNF2UPlhODySIx0Ls/Ogkm/I1TLkx9+Ba/Y1Vp0bFPAQ15P9R84fGUMr8vBno66ouPsGIFYBBURIRAEoapYgeJtZubPZDJLpMA1VC5G8JzZhGZXe/Fk3hr0Fvn9YeaissOXx9nXGcJVUzyl2a4hCRZXRIRAEISqYgWKt7caQhBJZuZkEZzpj+B0KLa2+me9h1V4biSaIpbKcro/wv5NjTOOmwoWi2uoEiIEgiBUlYGJJErBlpYpi8ASAqdDEU3NLB8NRqB4a0sAj7Om5OeFNFsWQTTNM1fHyeX1jEAxGBVMNzb6JH10FqQuqyAIVWUwkqTJ76HRfAufTGbsrKG2Oi/RAjdRIWcHJrl108zJvBRNBYXnTpuWxG1dMy2C+/at5759pdqjCIWIRSAIQlUZiCRpr/fYbploKmunjLbXe4mVsAgmEhl6wwl2rQvO+KwUoVoXDmXECJ68MMq+zhB+6TewYEQIBEGoKgMTSdrrvHbGzmQyy2Qqi8fpoMHnKrmy+KwZKL5hWqC4HA6HotHv4dJIjBM9Ye7Y2lS9H2ANIkIgCEJVGYwkaSsSAsM1FPS6CHicJbOGzg5EAIpSR2ejOeDmJ2eGyGs4sLW5OoNfo4gQCIJQxL8evMzJ3okFnZvM5BiPZ2iv89rVP430UaOCqN/jLJk19NzAJHVep11qei40BdzE0jk8Tgc3bwwtaLyCgQiBIAhF/Pm3n+NrR3oWdO6QWVqizZzQ67xOImbWUNDrJOAtLQRn+iPsWlc3Y71AJawU0v1dDXhds2caCeURIRAEwSadzZPO5Ymny9cDqoS1hqC9zhCCoNdV7BpyO0u2q7wyGmdry+zrBwqxFpXdIW6hRSNCIAiCjeW/j6VL5/rPxoVho4y0VQo66HXa6wgsi6DwPmC4k0Zj6RmF5WbD6l18QALFi0byrQRBsImZlkBigUJwqm+CoNfJxkZDCAJmTCBqCoGV4lnYrtIqSdE+j/gAwD272xiYSHKT2eReWDhiEQiCYGPl+FfqGVCJk70Rdhf4+g2LwHANBTwuu2NYYZyg3yxS1zFPi2BHW5A/f8ONOGtkGlss8gQFQbCxJuj4AiyCbC7PmYEINxa8oQe9LsLxDLF0rsgiKBQaq1rpfC0CoXqIEAiCYGMFiWMLCBZfHImRzOSLSkEHvU6GzZaShTGCyRIWwXxSR4XqIkIgCAX87leO8U//dWm5hzErR66M86q/eZyJeOm6PQvFelOPlykMB0YHsnd87im+e3KgaP+pPmPtwXSLQBu9Y6gzF5QV3gegfyJhrzEQlgcRAkEwSWVzPHi0lyfOjyz3UGblEz84x5mBSa6Mxap6XasyaCWLIJXN88T5Ub5/qlgITvZG8DgdbGmeSgOt805N7kGv0xaCwnaV/RPJeWcMCdVFhEAQTJ4fjJLNa7vZyUrlRM8E/2WKVaX+vwvBcg3F0zm09So/DSuOYDWSsTjVN8EN6+qKgrfBIiFwFWUNWQxMJCU+sMyIEAirlny+9ERWDquswvgKF4J/ePyCvV2uyctCsa6Xy2tS0xZ9WVhunfNDk2RyxjFaa071RWa0irR6BsM0i2Caa6gjJEKwnIgQCKuS030Rdv/Jdzk3ODn7wSan+ozCZ2NVFIIP/+cJfv3fjlTteldGYzxyop9X7WkHFhbUrUSh775c5pA1iWdymksjhmuqeyzBZDLLno7inP5CiyDgdVLjUNS6auz7pLI5RqJp2uvENbSciBAIq5KTvRMkM3m+c2Jg9oOtc8xgZzSVJZVd2IKq6Zzqm7BLLFeDf37iMk6Hg9+6extA2W5fC6WwV0C5tQSFxzzXb4jnSTtQXLp5fOF2Yb0hqzaRZAwtLyIEwqqkN5wA4Cdnh+Z0fC6vea4/YrsuxmPVycYZnkwRTlTnWslMjm8828urbmxnS7PRBnKhC7/KUXi9RKa0yBQec8YUuWevjuN0KHa0FZeRDnqnXEN15rax2ti4tp06Kq6hZUWEQFiV9E8YQnCsJ8yomcdeiYvDUZKZvF23phruIa01I9EU4Xh6TvGKVDbH0GSy7OffOzXARCLDL97WidflwKGqHywudDWVExnrbd7jdHB2YBKtNd89NcCd25pnVAG1soZcNQqP05huAh6n3a7S+j2JRbC8iBAIq5K+cJKgx4nW8Ni54VmPt+IDL91uVLKshhBMJDJkcpq8hugcfPmf++kl7v7rx8rW+fnK4W46G2s5sKUJpVTZ2v6LodDtY8UI0tm8bWEZxxj33NsZ4kx/hJO9EbrHErz2BetmXM+yCIJel112wu+pse/Tb68qlhjBciJCIKxK+sIJXrKjmeaAh5+cLRaCSDJjBzktTvZO4HE6uG2z0QB9LL54IRienLJE5rLw67n+CJPJLAcvzlzH0D0W54nzo7zl1k4cDmNCLdftazHEUln7Ld669peevsK9//cxu3S0JT77NzXQN5HkSz+7itOhuHdP24zreV0OnA5VHDT2TLWrHJhIFmUTCcuDCIGw6tBa0xtOsD5Uy107W3j83DDZ3FQq5P/69mle/bePF73lnuqLsKs9SItZ2nhsDu6k2SgUgvAchKB73IxrnJlpwXzlcDdKwZtv3WDvC3ic1c8aSudoNXsJWBZBz3iCWDrHhBnrsN7mb9nYAMBXD3dzYGsTIZ97xvWUUgSmTfQBz1TWUF84IW6hFYAIgbDqGI9nSGXzdIRqefnOViYSGZ7tDgOGm+O7JwdIZvL8n0eeA6wc+An2rK8n5HOjFIxVoXTDcIGYhBOzWxg9Y3HACHBPX8z1vVMD3LG1iY7QlAvF7zFq/VeTWCpLa9AQQ0tkrGB3xPTrx9JZvC6HXUoim9cl3UIWQa9zRhqpZVUMRJLiFloBiBAIq44+802/I1TLS3Y0465x8I1newF44vwIkWSW27oa+Pbxfp48P8KHvn7C3lfjUIRqXYzFltYiiKWyjMbSdDbW0jOesBu8gCFeF4dj7N1Q3Jf3WrmGWkwhsOoNWWOP2BZBloDHSVudh5DPRY1Dca+5rqEUW5oDbGkJ2N8Xxjb6J5J0iEWw7IgQCKsOy+XTUV9LndfFL9yynq8d6WF4MsXDJ/oJepx87t230VHv5V2f/xkPHO7mt+/ezhv2rQegwe+uSvposUVQ+Xo9plvonS/cBMCPz0ylvV4ZjZHNa7a3BYrOKQy6VotYOmu7xyyLYMK0ZiKm9RFLZfF7nCileNHmJu7d3Uajf6ZbyOJz797PR1+/x/4+6DHaVcZSWUaiKSkvsQIQIRBWHVMWgTHB3P/SLWRyeT7304t8/9QA9+xuo77WxZ+8fg9eVw1/9Za9/M49O+yslia/m9FpFoHWmn9/+gqf/Ml5PvmT81wseGMvx/Bkym6nODFL8LnbdAvdvrmRXe3BojjBuUHjXttbi3P0q501lM3lSWbyBL0uvC6HHSOYbhFEUzl8bsPV86l33MLf/9ItFa/rqnEU1R+y6g2979+OoDXsXldX7lRhiZBQvbDq6J9I4nE67LfULS0BXrm7nX/86UXyGl5j+rNfuaede/6kzc7CsWjwubkyGi/ad/DCKH/0jZP296f7I3xylglweDLF+oZa4unsrK6h7nHjfp2NPu7a2crnfnrRbvj+/NAkSsHWlmKLIFjlYLHVp9jvqcHvnnI7zYgRpLIEPMZ6genPbi5YgeP/Oj/CR163u6JbSVgaxCIQVh294QQdoVr7DR/gfXdtJa+NyfMlO5rt/aUmsqaAe0YF0odP9FPrquH4n97La17QzjEz+FyJkWialoCbUK1rVtdQ91iCWlcNTX43L9/ZQjavefLCKADPD0XZ2Oij1l28WMvvcRJNZstWCZ0vVuVRv8eJz1NDwqxAOmFbBFNNaxbTO2BHW5D2Oi//8M5bec+LNy9+4MKiqYoQKKVepZQ6q5Q6r5T6UInPPUqpB8zPn1ZKdVXjvoJQir7wzGqW+zpD3Levg3e8aBMeZ02ZMw0afG7G42l7gs3lNd87NcArdrVS53Vxc2cDPeMJRmZJMR2eTNES9FDvc8/JIuhsNMTr5o0NeF0ODlpCMDjJ9tbAjHP8HifZClVC54tlAfg9TsMiSGdJZHKkzdRbyyKIphYnBHs7Qzz1h3eLJbCCWLQQKKVqgE8CrwZ2A29XSu2edth7gXGt9TbgE8BfLPa+glCOvnCiZCP0v33bzXzo1btmPb/R7yaX1/Yb8M8ujTESTdsupb2dRvbO8Z7yVkEurxmLpWgJeAjVuuyAazm6x+J0NvgAcDsd3NbVyMELo2RyeS6NxNg+rYYPULLb11w5eGGUB4/2Fu2z6v/43TX43DXE07kiASvKGnKLV3k1UQ2L4HbgvNb6otY6DXwZuG/aMfcBXzC3vwbcrQrtdmFNkMnl+fh3zzAUKV9Ppxr3GJpMFeXbzxcrtmCtLn7kRD+B0eJdAAAgAElEQVRel4OX72oBjAqbDgVHuyfKXmMsliavoSVopFhWsgi01vSMJ+hs9Nn77tjazNnBSY5cGSeT02UtAmBBmUOf+OE5fv9rx4tWPMcLLQIzNbVICOysoZy0lVxlVEMI1gPdBd/3mPtKHqO1zgITQFMV7i1cRzx7NcynHr3Awyf6r9k9BiaSaM2iGp3YQhBLkctrvnPScAtZmTI+t5MdbcGKcQJrDYEtBBViBOF4hmgqy4aGKfG6wyx+968HrwDMqOoJlGzyUkj3WJw/+9Ypu3mMRT6vOd0XIZ3N8+CxKavAuk7A45yyCAosmUgig9aaWHoqWCysDqohBKXe7KdHr+ZyDEqp+5VSh5VSh4eHZy8UJlxfWBPn5ZHq9tktpHAx2UKZEoIMhy6PMRJN2W4hi32dIY71hMsGaq01BIYQuJmIZ8oeW5gxZLGno46g18l3Tw2UzBiC2YXgn/7rEv/8xOUZgnV1LE40lUUpeODQ1DuclYHkc9fYMQLLYmgOeIgkM2YLS8QiWGVUQwh6gM6C7zcAfeWOUUo5gXpgbPqFtNaf1Vrv11rvb2lpqcLQhJXEUdOnfmlaamYlzg1O8pEHT/LFg5ftfROJDB/48rMly0tb1SyrIwSpKbfQztaiY/Z2hgjHM1wdK/2zWBZBsxkjSOfyZev7d48Z4mXFCACcNQ5euLmJXF6zoaF2RsYQGGmeUDpGkM9rvnPSsLyOThMCq9LqW27dwKm+iN2i03IxBcysoXgqZ1syGxtriSQyRQFlYfVQDSE4BGxXSm1WSrmBtwEPTTvmIeDd5vabgR/rauW8CdcN1pvppZHZF2NprXn/l57h3k88zhcPXuHfnrpSdJ0Hj/bxozMzm84UripeKJYQjETTfOfkAHftaJ0x8VnlHqZPshZWRlFzwHANQfkyE1MWQfGYLffQjtaZbiGobBE8c3WcQbP71/Ge4ljGyb4JnA7F771yJ26ng68cNqyCwkneZ1oE1pg3NvqYSGSL3EfC6mHRQmD6/N8PfA94DviK1vqUUuqjSqnXm4f9E9CklDoP/A4wI8VUWN2MRFP0jCeo8zrpHU/YJY3L8fjzI3z7eD/vuXMzr3lBO+MFk+i4GcQ91TszWHu0O1wy534++NxOvC4HPzg9yPBkitfcNLOg2o62AF6Xg2NlAsbDkyn87hr8Hif1tYawlBWCsTghn6uomxfAHdsMIdjWNtMtBIXB4plC8PCJftxOBy/Z3syxnpkWwfa2IK1BL6++sZ1vPttrl3wAqHUZWUPJTJ6xWAq300Frndd2DRXeW1gdVGUdgdb6Ea31Dq31Vq31/zb3fURr/ZC5ndRav0VrvU1rfbvW+mI17itcP1iplq+9aR15TVmXisVnHr1Ae52XD716Fxsb/YQL8vqtcsiWi8Mil9c8dXHUfpNeDI0+N0e7w3icDu7e1Trjc2eNgxesr58xyVpYawiAKYugTAppz3iiyC1ksbMtyAfu3s5bbu0scZZRxRNmWgT5vOY7JwZ46fYW7tzWzJXROOPmAjmtNad6J7ixwyjrcPcNbUSSWS4MR4mlc/jdNTgcCr8ZGO+bSBKqdVFf6yKdzdsL7fwSLF5VyMpiYVGcH4ryxk89MWvjlaPdEzgUvO6mDqBywPhYd5iDF0d574s343Y6aPC5yOS0/TZqFYQ73R8hV9AC8nSf0djlQBWEoMF0D921s6Xs229Xk5/e8UTJz0oJQblnNBqbOrYQpRQfvGcH20qkjgL2ZD1dCJ7tHmcgkuS1N7XbLixLsAYjKUZjabuE9A7T2nh+KGoXkwPwmRN9fzhByOeym9X0m643v6wjWFXIb3ONo7XmTZ9+kueHDL/9227r5I9eO309YHmevjTKs1fDnOid4MXbm8sed6w7zI62oF1g7PJoeSH4zGMXqPM6efsLNwJTE+l4PI3f47TfrOPpHJdHY3ZGzZMXjM5e1RACK04wPVuo6JiAUZxOa41SirFYmrd99iC3bGzgymjMXngWslxDZVJII4ks21rm/6dY41DUumpmuIa+fbwfd42Du29ow6EUSsGx7gnu2tlqB4b3mBbB5mY/NQ7F+cHJohXDtkUQTrKx0UddrfE76DOD8eIaWl2IRbDGiaayPHM1zA3r6mjwue36NnNl0JwYrIBnKbTWHOsJs68zRIPfTX2ta0arSIv+iQTfPTXALx/YZAckrc5Xlo89HM9glQg6WRAnePLCKNtbA7QGF1/WuDngwe00JtNyNPndZHLabrt4ZiDCucEoDxzupm8iaTd4mS1YHElm7Il2vhgVSKeykdLZPA8e7ePuG4xyGAGPk+2tAdsiONUXQSm4wRRkj7OGTU0+zg1GiadztsvHZ8ZYBieT1Ptc9vgsi0CCxasLEYIVRP9Egjs/9mMePTszG+ZaMRo13q5/cX8nt3U1zrtp+4C5Sri7gs//ymiccDzDTaaboqvZbwuB1roov757LIHWcGDLlHXRME0IxuNpdrQFcdc4OG3GCdLZPIcuj1UlPgDwG3dt5TPvvKXihNfkt9paGs9sxPz3gfsP8L/feKNdUM3rqsHjdJSMEWitiSQy1HkXJgSFbR8BfvjcIGOxNG+9bSqusHdDiGPdxpqHk30TbG72F73Rb28N8PyQaRGYloD1udYQqnXZ4+u3LQKJEawmRAhWEP/nkTP0hhNlM1GuBVbd/aaAm6aAm7FYel7VLAfMFMXuMr5ygOPmW/tNGwy/9OYmnx0j+J/fPMl7/uWQfayVEWS9RRduWxNpOJ6hJehhZ3uQk33GtY/3hImncxzYWt49NR+2twV5xa7y1gAYriHADqCOmGsHtrUGeMcLN7GpyV/0M5SKEcTSOfIa6moX9oYd8BZ3KXvgUDfr6r28dPvUOpy9nSFGY2n+6Jsn+enzw7zAjA9YbG8Ncnk0Tth0vcGURWCNvb7WCh5LjGA1IkKwQjh0eYyHjhnr8Iaj164Wz3Sst9jmgIcGn5tUNm8HZeeC7RqqYBFcGIqiFHbQc3NzgL6JJOeHJvnyoW5O9E5l/1iTZSkhGLddQ2lCPjc3rq/jVF8ErY2SzUrBi7Y0znnsi6XJjCNYC9tGoim71eV0QrWlK5BahdwWahH43U7bNdUXTvD488O8+dYN1BSU1755o2GJPXCom1fsauX37t1ZdI3tbQFyec2F4ViBEExN9CGfe8oiCCfxmZlFwupBZH0FkMtr/uxbp2iv8+JxORiKLL5f7lyxXENNAbc9sY3F0nMOBlquoZ4KMYJLIzE66mvxuoy3zK5mI1Xyj795ilxe26mhSinbIrDcQVAQbDXfvMOJDA0+F9vbgvzHz7p54vwoDxzq5saOejuesBQ0FjwvMJ5lk99dcpKs97lsiyaSnHIFWaWd6xcYIwh4nPbv4GtHetCaGemmezrq+ad372fXujrWl1hxbXU+y+W1XUOo0CKor52KESQyuZIZTsL1jVgEK4BvHevjZG+ED79mFxsbfQxNLqUQGPdq9LvtlMnxWdoqWiQzOSYSGYIeJyPRtN3YZDqXR2Nsbp5yk1jbBy+O4nU5yOanAq7j8QyuGlU0EbmdDvzuGsKJDLm8ZiKRIVTrsnPh3/X5p0lmcvz5G26c50+/OKwYge0aik61ppxOqNaoQPqNZ3vY+2ff54S52tcqdb2YYLHlGvrm0V4ObGliY9PMNQl339BWUgQAtrT47eC7b1qMAAyLzON04DbbTUqgePUhQrDMaK35zGMX2N4a4Odv6qAl6LHr1CwFo7E0Qa8Tj7PGfsOd3p2rHAOmW+iWTQ3AVAP2QrTWXBqJ2VYAGMFii1+5wwioWgueJhKG22d6lfKQ2SxmMpkxApg+N7va66h11dDV7Ocbv3En+8x0zaWi1qzbP1YoBGXelkM+F91jcT78nyfQeip9dtGuITNrKBxPc3E4VtR9ba54XTV2PKNkjKDW+H1YcQwJFK8+RAiWmUfPDnNmYJL/9rKtOBzKFoKlKsVU+BZrCcH4XIXAdEnc1mUIQak4wVgszWQyS1dB4LTO62J9qJZX7mnj9s0N9nHGvTOlfexmsNWKEzT4XdS6a/jOB17CQ+9/ccm34KWg0e8uEII0zYHSrqmQz00snbO7o1lWl+UaWmiwOGgGi4+ZFsa+DQsTQyt+Y7mGPE6HHWewYjSWWEmgePUhQrDMfPqxC6yr9/L6vcaK29agl3Qub5dRuNZYfm2Y6fOejUFTCPZ3GQHaUkJgvfkWuoYAvvK+A/z1W/fNSA0NJ9JF8QGLkM/FeDxN2MoqMuMGXc3+ZXVVNPndjEQN4R6u4BpaV+/F6VB85p23AlOxmWoEixOZHEeujKMU3LihfvaTSmCtMLZcQ0pNuees+EXQ/FdcQ6sP+Y0uI89cHednl8b4n6+9AbfT0GRrEdLQZGpJAp+jsZQ9Sdd5nTgdas5CYLmGdncYLppSKaSXRgxxmC4Elr/amvSte4bjGTY2zny7D/nc9IcjtmAUZhUtJ41+N0OTKSZTWdLZfFmL4B0v3MS9e9pZH6qlvtZVYBEY/v2gd2F/ipab5uCFEba2BBYsKFbAuHCS97udTCazBRbBzPiBsDoQi2AZeehoHz53DW+/faO9zxaCJcocGo2maTLfYpVSNBS4OmZjIJLE766hzutiQ0NtaYtgJEaNQxU1XSlkeoB6PJ4uOck3mF2+rMybpcwOqkRTwMNYLG2/4ZezCNxOhy1+TX63HYeJJDL43TU4axb2p2hN3M9eDdt1hRbC3s4QTocqKoXt89RQ41D2PayAtsQIVh8i7cvI1bE4m5qKV3m22BbB7GsJTvZO0BL00Fa3sJIKubxmLJ4umrwafXMXgsFIkrZ6496djb7SFsFojA0NtbjKTHR1Xic1BVZIOJ4p7RqqdROOpxkzC841rBCLwJrUC/sPzEaD323HYRZTXgKm3s6zec2+zoW5hcCw2I788T1Faax+t5NQrcsO3FufSYxg9SEWwTLSO54o6lML0GpO6nPJHHrPvxzib3/0/ILvPx5PozVF7ozG+VgEE0nazfF2NtTSMxZHa82zV8dt6+DySKwoUDwdpRQNZkZQIp0jlc1TX2KSD/lc5LURh1CKGbX7l4tGv5t0Nm+vlJ6LEBQ+40giu2B3DkyVogbsIncLZfpahlp3TdHvwg4Wi2to1SFCsExorekNJ2bkdluNw2dbS5DK5hiaTNl1bhaCvZjMX2AR+N2MzXEdwWAkNSUEjT4mU1kePTvMW//hIPf/6xHyeSN1dHp8YDqNfhfjsSm3T+lgsbHv0kiM+lpX0crZ5cQKsJ8bnASgOTi7y6rQ6ppIZBacMQRTriF3jYNd7XULvk4pdq+r48aOKSvDGqcEi1cf8htdJiJm27/pFgEYcYLZhMCKIUymFp5dZC0ma1qARZDP6yLX0Aazscpv/Psz1DgUz/VH+PozPcTTObpmSe1s8BniY/UZKJU+armCLo/GSgrFcmE9u7ODRhmNxjmMrTHgNq0xTSSZscV0IVhumt0ddXbCQbX409fvKfpeLILVi1gEy4RVtrmUELQEPQxFKscIrBz+aLL0at65MBKzApxTk1eD381EIkM2V7mV5GgsTTavCywC4+fIa82X7z9AW52Hj33nDFC8gKwUDT7DZ14pEGwFkHvGEwsux3AtsKypcwOTNPjccwr6FpavXmyMwHo7X4rFdBIsXr2IECwTVpP19aGZb8utQS/D0coWgZW6ObkIIbAtggLXUJPfjdblm6hYWGsIrED1luYAO9uCfOxNL2BfZ4j3vniznRmzpbl0hy2LBr/bXCNQPjXUEodcXq+YQDFMuYYGIsmyqaPTsVNmo2kzRrDwN+zWOg97Oup41Y3tC77GXLHGKa6h1YcIwTJhtThcX8YiGJ4lfdSaiCOLEoI0NQ5V9IbdMMfVxZYQtZuuoVp3Dd/74Et5480bAHj77RsJep24ahQdocquj0a/i/F4xnZJlc4aKqxGuvJcQzC3QDEUlq9OMblIi8DrquHh334JL9pSnT4Mldi9ro6bNtTbTW2E1YMIwTUmmsryF989Y1sAFr3hBLWumpJvt611HiZTWRIVykFPWQSLiBHEUjROq5bZNMd6Q5Zrqpx/O+h18fuv3Mkbb14/q7ukwecml9e2u6yURVBfJAQrxyLwuZ14XcbPN2chMIWseyxh9CJYIRlQs9Fa5+Wh97+YjjLF64TrFxGCa8wPTg/w6Ucv8MZPPmFXnASjbPOGhtoZxdUAWgKzryWwJuJUNk86W9mfX46RgvISFtbb+GwWQf9EAoeiojvkXQe6+Pib9846Dsu9cnE4htflsMtVF+KscdiuCau8xErBcq3NWQjMn9cqv7GYrCFBqAYiBNeYM/2TuGscuGocvPUfDvLM1XHAsAhKuYVgai1BpcwhyyKAhVsFoyVq48ylAmksleVrR3rY1xla8IrYQix31KWRyhlBlkuowb+y3qAt91DTHGMEthCYaw+uF4tAWL2IEFxjnhuYZFtrgG/85h14XA7+7eAVwIgRlKsPb5WZqLSobCCStHPpo6mFxQlGY+kZk5c1yVayCD716HkGIyn+6LW7F3Tf6ViT/5XRWMWMIMuNtpJiBDA1sbfM0SLwuY0expdHDVfYYmIEglANRAjmwEe/dZqfnFlYQ/mzAxF2rQvSGvRy144WHj03zGTSKKdcziKwy0yUSSHVWjMUSbHJzM9faOaQUXm0ePLyOGsIeJxlLYKro3H+8aeXeOPN67nV7EOwWCyfeSanK1oE9eZnpdYZLCeWEMxlMRkYq6kb/e4p15BYBMIyI0IwC/F0ls8/ccnuJzwfxmJpBiMpbjBXfL58VytjsTTfOTkATC3Cmk6jz43Tocq6hsZiadK5PNvNGvKRBbiGkpkc0VS2pDuj0UznLMXHvvscTofiD161a973LEehq6dSINiyCFbSgjKYCrDPNUYAxjO20mUlRiAsNyIEs3DJ9ONWas5ejjMDRlP2ne1Gid+Xbm9BKfj3pwz3UDnXkMOhaA54iuIAhViBYqt0cDmLQGvNb37pGb5VQsRGSywmsyhXgfT80CSPnBjg11682U4brQYBj5FmCpXdPpYlsJKyhgC7eut8hcBCLAJhuZFXkVm4MGwKQYXm7OU4O2DUn9m1zpiwG/xubu4M8czVMFB6VbHFrZsa+PHZIVLZqa5WFtYagu1mM5FyQnDo8jgPH+8nkc7x82bjG4upXsUzJ68mv9u+RyH/8NhFvC4Hv3Ln5rLjXghW4TmjB0MFi8CcPFeaELx+bwdaG81n5kqhECy0F4EgVAuxCGbhwlAUMAqsJTPl8/ot/s8jz/GRB08CRsZQk99dFER8xa5WwCgSVim4+Jb9GwjHM/zg9OCMzwYmjEl8a4shBNEyrqEHDnUDcKw7PKP1pdVfuNRiL6vkQ/E9k3zzaC+/uL+zaBKrFtY1K60aftMtG/hfb7hxxVQetegI1fLrd20tmQpcDsu9tZheBIJQLeR/4CxcNF1DwIxFYaX40Zkh/vWpK1wYjnJmIMLO9mDRBHHXTkMIOkLeooVc03nJ9hY66r32ZF7IQCSJUrClxajhU8oimExmeOREP/W1LkZj6RmN5a+YGSubSpSIbgq4GYmli8Tj809cIq/h116ypdKPv2BCc8gI6mz08c4Xbbom919qrLjCSqqbJKxdRAhm4cJQ1P5jnUucYGAiidbwmUcvcG4wOqM08J6OOlqDnrIduyxqHIo337qB/zo/Qs80t9TgRJImvwef24nH6WCyRProt471k8jk+L1X7gTgWE+46POrYzGa/O6SdWM6G2pJZ/MMmmUuUtkcX3r6Kq99wbpZx71QLItgpWUEXSssN5ekjgorARGCCuTzmosjUV6yvRmgZAeuQiaTGaKpLAGPk68900Mik7PjAxZKKT79zlv48KtvmPX+b9nfidbwtSM9RfsHIkna6w23UtDrKrmg7IHD3exsC/KL+ztxOx0c6y4WgiujcTaWKQ+9xXQ5XRg23GKXRmJEU1l+bnfbrGNeKA32YrGVlRF0rbAsAgkUCysBEYIK9EeSJDN5XrSlCbfTQc8sFoGV5fPrd23FcvrcUKJZyK2bGtndMXvhrs5GH3dua+JrR3qK3DSDkanOYHVe54zCcxeHoxzrDvOW/RtwOx3s6ajjWPdE0TFXRuNsKvN2b8UeLppCcG7Q+HdHW+Uqooth7VoEEigWlp81IQTZXJ7YAlbfWoHiba0BNoRqZ80c6jOF4PbNjbzupg5cNcrO7Fko9+1bT894guMFdYoGIkm7/HPQ65wRI3j60hgAd99gvMHv3RDiRO+E3WMgnc3TP5FgY5kWkm11HvzuGjtj6vzgJA7FrJ3GFkNbndesXTT3FMzrGbEIhJXEmhCCD37lGG/81BPzPs9yjWxtCbCh0Uf3WGXX0MCE8Xl7nZc/f8ONfPn+AyULqM2He3e34XQoHjnRDxgLwcLxqa5WQa9rRtbQoctjNPnddmewfZ0hEpkcz5vC1jMeJ69hYxmLQCnFlpaA/fOfG4zS1eSfkcZaTd50ywa++r4Da8Y1JDECYSWx6oXgyQsjfOtYH+eHomRm6bo1nYvDMeq8TpoDbjobZrcI+ieMbJ62Oi/1ta6qlGAI+dzcua2Zh0/0o7XmqOnrt8pTlLIIjlwZZ39Xg52tZDU1t+IEV8asjKHygd+tLX4umhbB80OTi7ZsZqPWXcOtmxqv6T1WEg0+Nz53jW3ZCcJysqqFIJvL89FvnQYgrym7UrccF4ajbGkJoJSis9FHOJ6pWOmzP5ykOeCpeu/Y175gHT3jCY71TPD/PvIcbXUeXrnH6EgV8BQLwdBkkiujcfYXTKpdTT7qa1125tBVK3W0QgbQlpYAveEEE4kMl0fj9ipmoTrUOBTf/q0X8+47Vkc6rHB9s6qF4D8OdXNmYJJ3vmgjMP/VwReGo3bgtNOsC1TJPdQfSc5rdelcuXeP4R763a8c5XjPBB969S67gfj0rKEjl40y1/u7pqwRpRT7OkM8fWkMrTVXRuPUumrs4nalsH7uH58ZJJfX19wiWItsaQngc0uwWFh+Vq0QfPt4H3/+7dMc2NLE/2MuguqdJf2zkIlEhsFIyl60ZTVnryQmAxOJayIEIZ+bO7Y1c2E4xi0bQ7xh33r7s6DXSSydI5c3sooOXR7H43Swp6O+6Bo/d0MrF4djPD8U5epYjI2NvoorYa2f+7tmgTyxCARh9bLqhEBrzacePc/7v/QsezfU86l33MK6+lqUmtvK4MFIkr/+/lle8VePAnDzRsO/PmURlBeC/nCSdfXXpo3fL9y8HqdD8Sc/v6doArfq1ERN99CRK2Ps7QzNcE+98sZ2lIKHj/dXXENgsbnZj1Lw2LlhHAWrmAVBWH0syi5VSjUCDwBdwGXgrVrr8RLH5YAT5rdXtdavX8x9K3FhOMYnfnCO1+/t4ONvvsnO2mkNemaUWSjk0ohx3iMn+slpzd27WnnPnZu5Y6uxmCzkcxHwOMteYzKZYTKVrWpVzkLu29fBS3e0zKjzY6UfTqYyuJyKk30R3veymWUgWoNebu9q5OET/XSPxXnZjpaK9/O6atjQUEv3WILNzf5FZz8JgrByWayD8kPAj7TWH1NKfcj8/g9KHJfQWu9b5L3mxLbWAN/4jTvZ01FX9Oa8ocFX1jWUzuZ57xcOMRRJ8a4DXbz7jk0zavAopcyJsbRFYFXrvBauIev+pYq9WRbBZDLL1bE4ubwuChQX8tqb1vGRB08BlTOGLLY0B+geS7CtVeIDgrCaWaxr6D7gC+b2F4A3LPJ6VeHG9fUz/N/rQ7VlXUNfPHiZi8Mx/u7t+/jIz+8uWYgNYHtbkGM94ZJpqP0TlhBcG9dQOaxKnJPJLM9cMYyxWzaWTlt91R7DPQSUXUxWiBUw3i5CIAirmsUKQZvWuh/A/Le1zHFepdRhpdRTSqmyYqGUut887vDw8PAih1bM+oZa+icSdlDVYiSa4m9/+Dwv29HCy3eWG77BfXs7GImm+XGJtpX94WtrEZQjYFsEGY52T7ClxU99mVLOrXVebjOthUqpoxZbWw2x2NEmgWJBWM3MKgRKqR8qpU6W+LpvHvfZqLXeD/wS8DdKqa2lDtJaf1ZrvV9rvb+lpbIPe76sD9WSyWmGJovXEvz198+SyOT449ftnrWe/F07W2gNeviKWRo6lsryhScvE01lbYugtW5pSyQUuoaOdofZtyFU8fh33bGJXe3Bsv2SC3nh5ibWh2qLUlEFQVh9zBoj0Fr/XLnPlFKDSql1Wut+pdQ6oGSHd611n/nvRaXUo8DNwIWFDXlhWN3AescTtvsmns7y9SO9/OJtnXPygztrHLzp1g38w2MXGIwk+ei3T/Pw8X4uj8ZIZnI0B9zXtAxDKSwhODs4yUg0Za8iLsfrburgdTd1VDzGYltrgCc+9IpFj1EQhJXNYl1DDwHvNrffDTw4/QClVINSymNuNwN3AqcXed95YwtBQZzgyfOjpHN5XvOCdXO+zlv3d5LX8J5/OcTDx/vZ1OTjiwev8PTFsSWPD8BU1tAT50cAZhUCQRCE6SxWCD4G3KOUeh64x/wepdR+pdTnzGNuAA4rpY4BPwE+prVeciHoMBvFF6Z//uTsEH53zbxcH5ub/dy+uZFTfRHu2d3G13/9DnzuGi6OxK5Z6mglPE4HrhrFid4JXDWKG9aJP18QhPmxqPRRrfUocHeJ/YeBXzO3nwResJj7VAOf20mj320Lgdaan5wZ4s5tzfN253zw53bwz09c4i/fspf6Whcf/LkdfPTbp5c8UAxGWmnQ62Islmb3urold00JgnD9s6YKnWxomEohPTcYpW8iyW/fvX3e1zmwtYkDW5vs73/5wCaO94S5d3d71cY6H4JeJ2OxtLiFBEFYEGtKCNaHajk7OAkYbiGYaia/GFw1Dv7mbTcv+joLxQoY750lY0gQBKEUq67WUCXWh2rpCydst9AN6+qWxa9fbawG9ECmu7wAAAdNSURBVGIRCIKwENaWEDTUkszk+bn/+xiHLo/xil3VXauwXAS9LoIeJ1uuYStJQRBWL2vKNXTvnnaOdYdJ5/LcuL6et922cbmHVBXefaCLe3a34XBUXhAnCIJQijUlBOtDtcvqy79WvHh783IPQRCE65g15RoSBEEQZiJCIAiCsMYRIRAEQVjjiBAIgiCscUQIBEEQ1jgiBIIgCGscEQJBEIQ1jgiBIAjCGkdprWc/ahlQSg0DVxZxiWZgpErDWQqut/GCjHmpuN7GfL2NF1bXmDdpredVP2fFCsFiUUodNvskXxdcb+MFGfNScb2N+XobL8iYxTUkCIKwxhEhEARBWOOsZiH47HIPYJ5cb+MFGfNScb2N+XobL6zxMa/aGIEgCIIwN1azRSAIgiDMgetGCJRSn1dKDSmlThbs26eUekopdVQpdVgpdbu5v14p9S2l1DGl1Cml1K8WnPNupdTz5te7l2HMe5VSB5VSJ8wx1hV89mGl1Hml1Fml1CsL9r/K3HdeKfWhlTJmpdQ9Sqkj5v4jSqlXFJxzq7n/vFLq75RS16Rrznyfsfn5RqVUVCn1ewX7VuQzNj+7yfzslPm519y/JM94vmNWSrmUUl8w9z+nlPpwwTlL8pyVUp1KqZ+Y9z+llPqAub9RKfUD8+//B0qpBnO/Mp/heaXUcaXULQXXWpI5YwFjfoc51uNKqSeVUnsLrjW/56y1vi6+gJcCtwAnC/Z9H3i1uf0a4FFz+w+BvzC3W4AxwA00AhfNfxvM7YYlHvMh4GXm9nuAPze3dwPHAA+wGbgA1JhfF4At5s9wDNi9QsZ8M9Bhbt8I9Bac8zPgAKCA71i/p+Ucb8HnXwe+Cvye+f1KfsZO4Diw1/y+CahZyme8gDH/EvBlc9sHXAa6lvI5A+uAW8ztIHDO/Bv7OPAhc/+HmJonXmM+QwW8CHja3L9kc8YCxnyHNRbg1QVjnvdzvm4sAq314xgTetFuwHpzqgf6CvYHzTekgHleFngl8AOt9ZjWehz4AfCqJR7zTuBxc/sHwJvM7fsw/nhSWutLwHngdvPrvNb6otY6DXzZPHbZx6y1flZrbT3zU4BXKeVRSq0D6rTWB7XxP/OLwBuWe7wASqk3YPwxnyo4fsU+Y+Be4LjW+ph57qjWOreUz3gBY9aAXynlBGqBNBBhCZ+z1rpfa/2MuT0JPAesN+/3BfOwLzD1zO4DvqgNngJC5jNesjljvmPWWj9pjgngKWCDuT3v53zdCEEZ/jvwl0qpbuCvAMsE/XvgBgxhOAF8QGudx3io3QXn95j7lpKTwOvN7bcAneZ2ubGt5DEX8ibgWa11CmN8PQWfLfWYS45XKeUH/gD4s2nHr+RnvAPQSqnvKaWeUUr9D3P/cj9jKD/mrwExoB+4CvyV1nqMZXrOSqkuDOv1aaBNa90PxsQLtJqHrai/vzmOuZD3Ylg0sIAxX+9C8OvAB7XWncAHgX8y978SOAp0APuAvzf9l6V8qEudNvUe4DeVUkcwzL+0ub/c2FbymAFQSu0B/gL4b9auEtdYyjGXG++fAZ/QWkenHb/c44XyY3YCLwbeYf77RqXU3azsMd8O5DD+/jYDv6uU2sIyjFkpFcBwBf53rXWk0qEl9i3L3988xmwd/3IMIfgDa1eJwyqO+XpvXv9u4APm9leBz5nbvwp8zDSZzyulLgG7MJTxroLzNwCPLslITbTWZzDMfZRSO4DXmh/1UPymvYEpV1e5/UtChTGjlNoAfAN4l9b6grm7hykzFZZ4zBXG+0LgzUqpjwMhIK+USgJHWLnPuAd4TGs9Yn72CIav/t9YxmcMFcf8S8B3tdYZYEgp9QSwH+Mtdcmes1LKhTGh/rvW+j/N3YNKqXVa637T9TNk7i/397ekc8Y8x4xS6iaMee/VWutRc3eluaQ01yLoca2+MAJOhcGq54C7zO27gSPm9qeBPzW324BejAJNjcAljKBPg7nduMRjbjX/dWD4dd9jfr+H4mDxRYygj9Pc3sxU4GfPChlzyBzPm0pc4xBG0M0KZL5mucc77Zw/ZSpYvJKfcQPwDEbQ1Qn8EHjtUj/jeY75D4B/NsflB04DNy3lczbv/UXgb6bt/0uKA68fN7dfS3Gw+Gfm/iWbMxYw5o0YscQ7ph0/7+d8zf7TXIOH9B8YPscMhuK9F8NUPmL+oE8Dt5rHdmBkFJ3A8GO+s+A67zEf3nngV5dhzB/AyAY4B3wMc1GfefwfYUT7z1KQAYKR0XDO/OyPVsqYgf+J4Qs+WvBlTQ77zWd/ASNmo5Z7vNPO+1NMIVjJz9g8/p0Ywe2T1iSwlM94Af8vAhgW+ikMEfj9pX7O5tygMTKurP+br8HIuvoR8Lz5b6N5vAI+aY7rBLC/4FpLMmcsYMyfA8YLjj280OcsK4sFQRDWONd7sFgQBEFYJCIEgiAIaxwRAkEQhDWOCIEgCMIaR4RAEARhjSNCIAiCsMYRIRAEQVjjiBAIgiCscf5/yZvmv2Mz/jkAAAAASUVORK5CYII=\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "plt.plot(year, temp_anomaly);" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we have a line plot, but if you see this plot without any information you would not be able to figure out what kind of data it is! We need labels on the axes, a title and why not a better color, font and size of the ticks. \n", - "**Publication quality** plots should always be your standard for plotting. \n", - "How you present your data will allow others (and probably you in the future) to better understand your work. \n", - "\n", - "We can customize the style of our plots using parameters for the lines, text, font and other plot options. We set some style options that apply for all the plots in the current session with [`plt.rc()`](https://matplotlib.org/api/_as_gen/matplotlib.plt.rc.html)\n", - "Here, we'll make the font of a specific type and size (serif and 16 points). You can also customize other parameters like line width, color, and so on (check out the documentation)." - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": {}, - "outputs": [], - "source": [ - "plt.rc('font', family='sans', size='18')" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We'll redo the same plot, but now we'll add a few things to make it prettier and **publication quality**. We'll add a title, label the axes and, show a background grid. Study the commands below and look at the result!" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
" - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], - "source": [ - "#You can set the size of the figure by doing:\n", - "plt.figure(figsize=(10,5))\n", - "\n", - "#Plotting\n", - "plt.plot(year, temp_anomaly, color='#2929a3', linestyle='-', linewidth=1) \n", - "plt.title('Land global temperature anomalies. \\n')\n", - "plt.xlabel('Year')\n", - "plt.ylabel('Land temperature anomaly [°C]')\n", - "plt.grid();" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Better, no? Feel free to play around with the parameters and see how the plot changes. There's nothing like trial and error to get the hang of it. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Step 3: Least-squares linear regression \n", - "\n", - "In order to have an idea of the general behavior of our data, we can find a smooth curve that (approximately) fits the points. We generally look for a curve that's simple (e.g., a polynomial), and does not reproduce the noise that's always present in experimental data. \n", - "\n", - "Let $f(x)$ be the function that we'll fit to the $n+1$ data points: $(x_i, y_i)$, $i = 0, 1, ... ,n$:\n", - "\n", - "$$ \n", - " f(x) = f(x; a_0, a_1, ... , a_m) \n", - "$$\n", - "\n", - "The notation above means that $f$ is a function of $x$, with $m+1$ variable parameters $a_0, a_1, ... , a_m$, where $m < n$. We need to choose the form of $f(x)$ a priori, by inspecting the experimental data and knowing something about the phenomenon we've measured. Thus, curve fitting consists of two steps: \n", - "\n", - "1. Choosing the form of $f(x)$.\n", - "2. Computing the parameters that will give us the \"best fit\" to the data. \n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### What is the \"best\" fit?\n", - "\n", - "When the noise in the data is limited to the $y$-coordinate, it's common to use a **least-squares fit**, which minimizes the function\n", - "\n", - "$$\n", - "\\begin{equation} \n", - " S(a_0, a_1, ... , a_m) = \\sum_{i=0}^{n} [y_i - f(x_i)]^2\n", - "\\end{equation} \n", - "$$\n", - "\n", - "with respect to each $a_j$. We find the values of the parameters for the best fit by solving the following equations:\n", - "\n", - "$$\n", - "\\begin{equation}\n", - " \\frac{\\partial{S}}{\\partial{a_k}} = 0, \\quad k = 0, 1, ... , m.\n", - "\\end{equation}\n", - "$$\n", - "\n", - "Here, the terms $r_i = y_i - f(x_i)$ are called residuals: they tell us the discrepancy between the data and the fitting function at $x_i$. \n", - "\n", - "Take a look at the function $S$: what we want to minimize is the sum of the squares of the residuals. The equations (2) are generally nonlinear in $a_j$ and might be difficult to solve. Therefore, the fitting function is commonly chosen as a linear combination of specified functions $f_j(x)$, \n", - "\n", - "$$\n", - "\\begin{equation*}\n", - " f(x) = a_0f_0(x) + a_1f_1(x) + ... + a_mf_m(x)\n", - "\\end{equation*}\n", - "$$\n", - "\n", - "which results in equations (2) being linear. In the case that the fitting function is polynomial, we have have $f_0(x) = 1, \\; f_1(x) = x, \\; f_2(x) = x^2$, and so on. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Linear regression \n", - "\n", - "When we talk about linear regression we mean \"fitting a function to the data.\" In this case,\n", - "\n", - "$$\n", - "\\begin{equation}\n", - " f(x) = a_0 + a_1x\n", - "\\end{equation}\n", - "$$\n", - "\n", - "The function that we'll minimize is:\n", - "\n", - "$$\n", - "\\begin{equation}\n", - " S(a_0, a_1) = \\sum_{i=0}^{n} [y_i - f(x_i)]^2 = \\sum_{i=0}^{n} (y_i - a_0 - a_1x_i)^2 \n", - "\\end{equation} \n", - "$$\n", - "\n", - "Equations (2) become:\n", - "\n", - "$$\n", - "\\begin{equation}\n", - " \\frac{\\partial{S}}{\\partial{a_0}} = \\sum_{i=0}^{n} -2(y_i - a_0 - a_1x_i) = 2 \\left[ a_0(n+1) + a_1\\sum_{i=0}^{n} x_i - \\sum_{i=0}^{n} y_i \\right] = 0\n", - "\\end{equation} \n", - "$$\n", - "\n", - "$$\n", - "\\begin{equation}\n", - " \\frac{\\partial{S}}{\\partial{a_1}} = \\sum_{i=0}^{n} -2(y_i - a_0 - a_1x_i)x_i = 2 \\left[ a_0\\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i \\right] = 0\n", - "\\end{equation} \n", - "$$\n", - "\n", - "Let's divide both equations by $2(n+1)$ and rearrange terms.\n", - "\n", - "Rearranging (6) and (7):\n", - "\n", - "$$\n", - "\\begin{align}\n", - " 2 \\left[ a_0(n+1) + a_1\\sum_{i=0}^{n} x_i - \\sum_{i=0}^{n} y_i \\right] &= 0 \\nonumber \\\\ \n", - " \\frac{a_0(n+1)}{n+1} + a_1 \\frac{\\sum_{i=0}^{n} x_i}{n+1} - \\frac{\\sum_{i=0}^{n} y_i}{n+1} &= 0 \\\\\n", - "\\end{align}\n", - "$$\n", - "\n", - "$$\n", - "\\begin{align}\n", - " a_0 = \\bar{y} - a_1\\bar{x}\n", - "\\end{align}\n", - "$$\n", - "\n", - "where $\\bar{x} = \\frac{\\sum_{i=0}^{n} x_i}{n+1}$ and $\\bar{y} = \\frac{\\sum_{i=0}^{n} y_i}{n+1}$.\n", - "\n", - "Rearranging (7):\n", - "\n", - "$$\n", - "\\begin{align}\n", - " 2 \\left[ a_0\\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i \\right] &= 0 \\\\\n", - " a_0\\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i &=0 \\\\\n", - "\\end{align}\n", - "$$\n", - "\n", - "Now, if we replace $a_0$ from equation (8) into (9) and rearrange terms:\n", - "\n", - "$$\n", - "\\begin{align*}\n", - " (\\bar{y} - a_1\\bar{x})\\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i &= 0 \\\\ \n", - "\\end{align*}\n", - "$$\n", - "\n", - "Replacing the definitions of the mean values into the equation, \n", - "\n", - "$$\n", - "\\begin{align*}\n", - " \\left[\\frac{1}{n+1}\\sum_{i=0}^{n} y_i - \\frac{a_1}{n+1}\\sum_{i=0}^{n} x_i \\right]\\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i &= 0 \\\\ \n", - " \\frac{1}{n+1}\\sum_{i=0}^{n} y_i \\sum_{i=0}^{n} x_i - \\frac{a_1}{n+1}\\sum_{i=0}^{n} x_i \\sum_{i=0}^{n} x_i + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i &= 0 \\\\ \n", - "\\end{align*}\n", - "$$\n", - "\n", - "Leaving everything in terms of $\\bar{x}$, \n", - "\n", - "$$\n", - "\\begin{align*}\n", - " \\sum_{i=0}^{n} y_i \\bar{x} - a_1\\sum_{i=0}^{n} x_i \\bar{x} + a_1\\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_iy_i = 0 \n", - "\\end{align*}\n", - "$$\n", - "\n", - "Grouping the terms that have $a_1$ on the left-hand side and the rest on the right-hand side:\n", - "\n", - "$$\n", - "\\begin{align*}\n", - " a_1\\left[ \\sum_{i=0}^{n} x_{i}^2 - \\sum_{i=0}^{n} x_i \\bar{x}\\right] &= \\sum_{i=0}^{n} x_iy_i - \\sum_{i=0}^{n} y_i \\bar{x} \\\\\n", - " a_1 \\sum_{i=0}^{n} (x_{i}^2 - x_i \\bar{x}) &= \\sum_{i=0}^{n} (x_iy_i - y_i \\bar{x}) \\\\\n", - " a_1 \\sum_{i=0}^{n} x_{i}(x_{i} -\\bar{x}) &= \\sum_{i=0}^{n} y_i(x_i - \\bar{x}) \n", - "\\end{align*}\n", - "$$\n", - "\n", - "Finally, we get that:\n", - "\n", - "$$\n", - "\\begin{align}\n", - " a_1 = \\frac{ \\sum_{i=0}^{n} y_{i} (x_i - \\bar{x})}{\\sum_{i=0}^{n} x_i (x_i - \\bar{x})}\n", - "\\end{align}\n", - "$$\n", - "\n", - "Then our coefficients are:\n", - "\n", - "$$\n", - "\\begin{align}\n", - " a_1 = \\frac{ \\sum_{i=0}^{n} y_{i} (x_i - \\bar{x})}{\\sum_{i=0}^{n} x_i (x_i - \\bar{x})} \\quad , \\quad a_0 = \\bar{y} - a_1\\bar{x}\n", - "\\end{align}\n", - "$$" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "### Let's fit!\n", - "\n", - "Let's now fit a straight line through the temperature-anomaly data, to see the trend over time. We'll use least-squares linear regression to find the slope and intercept of a line \n", - "\n", - "$$y = a_1x+a_0$$\n", - "\n", - "that fits our data.\n", - "\n", - "In our case, the `x`-data corresponds to `year`, and the `y`-data is `temp_anomaly`. To calculate our coefficients with the formula above, we need the mean values of our data. Sine we'll need to compute the mean for both `x` and `y`, it could be useful to write a custom Python _function_ that computes the mean for any array, and we can then reuse it.\n", - "\n", - "It is good coding practice to *avoid repeating* ourselves: we want to write code that is reusable, not only because it leads to less typing but also because it reduces errors. If you find yourself doing the same calculation multiple times, it's better to encapsulate it into a *function*. \n", - "\n", - "Remember the _key concept_ from [02_Getting-started](https://github.uconn.edu/rcc02007/CompMech01-Getting-started/blob/master/notebooks/02_Getting-started.ipynb): A function is a compact collection of code that executes some action on its arguments. \n", - "\n", - "Once *defined*, you can *call* a function as many times as you want. When we *call* a function, we execute all the code inside the function. The result of the execution depends on the *definition* of the function and on the values that are *passed* into it as *arguments*. Functions might or might not *return* values in their last operation. \n", - "\n", - "The syntax for defining custom Python functions is:\n", - "\n", - "```python\n", - "def function_name(arg_1, arg_2, ...):\n", - " '''\n", - " docstring: description of the function\n", - " '''\n", - " \n", - "```\n", - "\n", - "The **docstring** of a function is a message from the programmer documenting what he or she built. Docstrings should be descriptive and concise. They are important because they explain (or remind) the intended use of the function to the users. You can later access the docstring of a function using the function `help()` and passing the name of the function. If you are in a notebook, you can also prepend a question mark `'?'` before the name of the function and run the cell to display the information of a function. \n", - "\n", - "Try it!" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - } - }, - "outputs": [], - "source": [ - "?print" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Using the `help` function instead:" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Help on built-in function print in module builtins:\n", - "\n", - "print(...)\n", - " print(value, ..., sep=' ', end='\\n', file=sys.stdout, flush=False)\n", - " \n", - " Prints the values to a stream, or to sys.stdout by default.\n", - " Optional keyword arguments:\n", - " file: a file-like object (stream); defaults to the current sys.stdout.\n", - " sep: string inserted between values, default a space.\n", - " end: string appended after the last value, default a newline.\n", - " flush: whether to forcibly flush the stream.\n", - "\n" - ] - } - ], - "source": [ - "help(print)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Let's define a custom function that calculates the mean value of any array. Study the code below carefully. " - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - } - }, - "outputs": [], - "source": [ - "def mean_value(array):\n", - " \"\"\" Calculate the mean value of an array \n", - " \n", - " Arguments\n", - " ---------\n", - " array: Numpy array \n", - " \n", - " Returns\n", - " ------- \n", - " mean: mean value of the array\n", - " \"\"\"\n", - " sum_elem = 0\n", - " for element in array:\n", - " sum_elem += element # this is the same as sum_elem = sum_elem + element\n", - " \n", - " mean = sum_elem / len(array)\n", - " \n", - " return mean\n", - " " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Once you execute the cell above, the function`mean_value()` becomes available to use on any argument of the correct type. This function works on arrays of any length. We can try it now with our data." - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "1948.0\n" - ] - } - ], - "source": [ - "year_mean = mean_value(year)\n", - "print(year_mean)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.0526277372263\n" - ] - } - ], - "source": [ - "temp_anomaly_mean = mean_value(temp_anomaly)\n", - "print(temp_anomaly_mean)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Neat! You learned how to write a Python function, and we wrote one for computing the mean value of an array of numbers. We didn't have to, though, because NumPy has a built-in function to do just what we needed: [`numpy.mean()`](https://docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.mean.html).\n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "##### Exercise \n", - "\n", - "Calculate the mean of the `year` and `temp_anomaly` arrays using the NumPy built-in function, and compare the results with the ones obtained using our custom `mean_value` function." - ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - } - }, - "outputs": [], - "source": [] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now that we have mean values, we can compute our coefficients by following equations (12). We first calculate $a_1$ and then use that value to calculate $a_0$.\n", - "\n", - "Our coefficients are:\n", - "\n", - "$$\n", - " a_1 = \\frac{ \\sum_{i=0}^{n} y_{i} (x_i - \\bar{x})}{\\sum_{i=0}^{n} x_i (x_i - \\bar{x})} \\quad , \\quad a_0 = \\bar{y} - a_1\\bar{x}\n", - "$$ \n" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We already calculated the mean values of the data arrays, but the formula requires two sums over new derived arrays. Guess what, NumPy has a built-in function for that: [`numpy.sum()`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.sum.html). Study the code below." - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - } - }, - "outputs": [], - "source": [ - "a_1 = numpy.sum(temp_anomaly*(year - year_mean)) / numpy.sum(year*(year - year_mean)) " - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.0103702839435\n" - ] - } - ], - "source": [ - "print(a_1)" - ] - }, - { - "cell_type": "code", - "execution_count": 15, - "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - } - }, - "outputs": [], - "source": [ - "a_0 = temp_anomaly_mean - a_1*year_mean" - ] - }, - { - "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "-20.1486853847\n" - ] - } - ], - "source": [ - "print(a_0)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "##### Exercise\n", - "\n", - "Write a function that computes the coefficients, call the function to compute them and compare the result with the values we obtained before. As a hint, we give you the structure that you should follow:\n", - "\n", - "```python\n", - "def coefficients(x, y, x_mean, y_mean):\n", - " \"\"\"\n", - " Write docstrings here\n", - " \"\"\"\n", - "\n", - " a_1 = \n", - " a_0 = \n", - " \n", - " return a_1, a_0\n", - "```" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We now have the coefficients of a linear function that best fits our data. With them, we can compute the predicted values of temperature anomaly, according to our fit. Check again the equations above: the values we are going to compute are $f(x_i)$. \n", - "\n", - "Let's call `reg` the array obtined from evaluating $f(x_i)$ for all years." - ] - }, - { - "cell_type": "code", - "execution_count": 17, - "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - } - }, - "outputs": [], - "source": [ - "reg = a_0 + a_1 * year" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "With the values of our linear regression, we can plot it on top of the original data to see how they look together. Study the code below. " - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\nzMzMzEr+D3e5KbvwEdppAAAAAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.figure(figsize=(10, 5))\n", - "\n", - "plt.plot(year, temp_anomaly, color='#2929a3', linestyle='-', linewidth=1, alpha=0.5) \n", - "plt.plot(year, reg, 'k--', linewidth=2, label='Linear regression')\n", - "plt.xlabel('Year')\n", - "plt.ylabel('Land temperature anomaly [°C]')\n", - "plt.legend(loc='best', fontsize=15)\n", - "plt.grid();" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## Step 4: Apply regression using NumPy" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Above, we coded linear regression from scratch. But, guess what: we didn't have to because NumPy has built-in functions that do what we need!\n", - "\n", - "Yes! Python and NumPy are here to help! With [`polyfit()`](https://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.polyfit.html), we get the slope and $y$-intercept of the line that best fits the data. With [`poly1d()`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.poly1d.html), we can build the linear function from its slope and $y$-intercept.\n", - "\n", - "Check it out:" - ] - }, - { - "cell_type": "code", - "execution_count": 19, - "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - } - }, - "outputs": [], - "source": [ - "# First fit with NumPy, then name the coefficients obtained a_1n, a_0n:\n", - "a_1n, a_0n = numpy.polyfit(year, temp_anomaly, 1)\n", - "\n", - "f_linear = numpy.poly1d((a_1n, a_0n)) " - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.0103702839435\n" - ] - } - ], - "source": [ - "print(a_1n)" - ] - }, - { - "cell_type": "code", - "execution_count": 21, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "-20.1486853847\n" - ] - } - ], - "source": [ - "print(a_0n)" - ] - }, - { - "cell_type": "code", - "execution_count": 22, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " \n", - "0.01037 x - 20.15\n" - ] - } - ], - "source": [ - "print(f_linear)" - ] - }, - { - "cell_type": "code", - "execution_count": 23, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\nzMzMzEr+D3e5KbvwEdppAAAAAElFTkSuQmCC\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.figure(figsize=(10, 5))\n", - "\n", - "plt.plot(year, temp_anomaly, color='#2929a3', linestyle='-', linewidth=1, alpha=0.5) \n", - "plt.plot(year, f_linear(year), 'k--', linewidth=2, label='Linear regression')\n", - "plt.xlabel('Year')\n", - "plt.ylabel('Land temperature anomaly [°C]')\n", - "plt.legend(loc='best', fontsize=15)\n", - "plt.grid();" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## \"Split regression\"" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "If you look at the plot above, you might notice that around 1970 the temperature starts increasing faster that the previous trend. So maybe one single straight line does not give us a good-enough fit.\n", - "\n", - "What if we break the data in two (before and after 1970) and do a linear regression in each segment? \n", - "\n", - "To do that, we first need to find the position in our `year` array where the year 1970 is located. Thankfully, NumPy has a function called [`numpy.where()`](https://docs.scipy.org/doc/numpy/reference/generated/numpy.where.html) that can help us. We pass a condition and `numpy.where()` tells us where in the array the condition is `True`. \n" - ] - }, - { - "cell_type": "code", - "execution_count": 24, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "(array([90]),)" - ] - }, - "execution_count": 24, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "numpy.where(year==1970)" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "To split the data, we use the powerful instrument of _slicing_ with the colon notation. Remember that a colon between two indices indicates a range of values from a `start` to an `end`. The rule is that `[start:end]` includes the element at index `start` but excludes the one at index `end`. For example, to grab the first 3 years in our `year` array, we do:" - ] - }, - { - "cell_type": "code", - "execution_count": 25, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "array([ 1880., 1881., 1882.])" - ] - }, - "execution_count": 25, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "year[0:3]" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "Now we know how to split our data in two sets, to get two regression lines. We need two slices of the arrays `year` and `temp_anomaly`, which we'll save in new variable names below. After that, we complete two linear fits using the helpful NumPy functions we learned above." - ] - }, - { - "cell_type": "code", - "execution_count": 26, - "metadata": { - "collapsed": true, - "jupyter": { - "outputs_hidden": true - } - }, - "outputs": [], - "source": [ - "year_1 , temp_anomaly_1 = year[0:90], temp_anomaly[0:90]\n", - "year_2 , temp_anomaly_2 = year[90:], temp_anomaly[90:]\n", - "\n", - "m1, b1 = numpy.polyfit(year_1, temp_anomaly_1, 1)\n", - "m2, b2 = numpy.polyfit(year_2, temp_anomaly_2, 1)\n", - "\n", - "f_linear_1 = numpy.poly1d((m1, b1))\n", - "f_linear_2 = numpy.poly1d((m2, b2))" - ] - }, - { - "cell_type": "code", - "execution_count": 27, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\nAAAASUVORK5CYII=\n", - "text/plain": [ - "" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "plt.figure(figsize=(10, 5))\n", - "\n", - "plt.plot(year, temp_anomaly, color='#2929a3', linestyle='-', linewidth=1, alpha=0.5) \n", - "plt.plot(year_1, f_linear_1(year_1), 'g--', linewidth=2, label='1880-1969')\n", - "plt.plot(year_2, f_linear_2(year_2), 'r--', linewidth=2, label='1970-2016')\n", - "\n", - "plt.xlabel('Year')\n", - "plt.ylabel('Land temperature anomaly [°C]')\n", - "plt.legend(loc='best', fontsize=15)\n", - "plt.grid();" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "We have two different curves for two different parts of our data set. A little problem with this and is that the end point of our first regression doesn't match the starting point of the second regression. We did this for the purpose of learning, but it is not rigorously correct. We'll fix in in the next course module when we learn more about different types of regression. " - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## We learned:\n", - "\n", - "* Making our plots more beautiful\n", - "* Defining and calling custom Python functions\n", - "* Applying linear regression to data\n", - "* NumPy built-ins for linear regression\n", - "* The Earth is warming up!!!" - ] - }, - { - "cell_type": "markdown", - "metadata": {}, - "source": [ - "## References\n", - "\n", - "1. [_Essential skills for reproducible research computing_](https://barbagroup.github.io/essential_skills_RRC/) (2017). Lorena A. Barba, Natalia C. Clementi, Gilbert Forsyth. \n", - "2. _Numerical Methods in Engineering with Python 3_ (2013). Jaan Kiusalaas. Cambridge University Press.\n", - "3. _Effective Computation in Physics: Field Guide to Research with Python_ (2015). Anthony Scopatz & Kathryn D. Huff. O'Reilly Media, Inc.\n" - ] - } - ], - "metadata": { - "anaconda-cloud": {}, - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.5" - }, - "widgets": { - "state": {}, - "version": "1.1.2" - } - }, - "nbformat": 4, - "nbformat_minor": 4 -} diff --git a/notebooks/04_Stats_and_Montecarlo.ipynb b/notebooks/04_Stats_and_Montecarlo.ipynb new file mode 100644 index 0000000..7e22206 --- /dev/null +++ b/notebooks/04_Stats_and_Montecarlo.ipynb @@ -0,0 +1,958 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "###### Created under Creative Commons Attribution license CC-BY 4.0, code under BSD 3-Clause License © 2020 R.C. Cooper" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# Statistics and Monte-Carlo Models\n", + "\n", + "Monte Carlo models use random numbers to either understand statistics or generate a solution [1]. \n", + "The main element in a Monte Carlo model is the use of random numbers. Monte Carlo methods are very useful if you can easily execute a function lots of time or even in parallel. \n", + "\n", + "We can generate random numbers in many ways, but most programming languages have 'pseudo'-random number generators. \n", + "\n", + "In Python, we use the numpy library as such\n" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "\n", + "x=np.random.rand(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "#Import rcParams to set font styles\n", + "from matplotlib import rcParams\n", + "\n", + "#Set font style and size \n", + "rcParams['font.family'] = 'sans'\n", + "rcParams['font.size'] = 16\n", + "rcParams['lines.linewidth'] = 3" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(array([3., 1., 0., 0., 1., 0., 0., 2., 1., 2.]),\n", + " array([0.34837708, 0.41148652, 0.47459596, 0.53770539, 0.60081483,\n", + " 0.66392427, 0.72703371, 0.79014314, 0.85325258, 0.91636202,\n", + " 0.97947146]),\n", + " )" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "plt.hist(x,bins=10, color='b', histtype='bar', edgecolor='w')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The `numpy.random.rand(10)` function generates 10 random numbers between 0 and 1. The pyplot function `hist` then displays a histogram of these randomly generated numbers. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exercise\n", + "\n", + "Try generating more random numbers and plotting histograms of the results i.e. increase `10` to larger values. \n", + "\n", + "What should the histogram of `x` look like if Python is generating truly random numbers?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "## Examples of Monte Carlo models:\n", + "\n", + "Monte Carlo models have a wide array of applications. We are going to use Monte Carlo models in later modules to explore how uncertainty in measurements can be incorporated into computational models. The three main applications for Monte Carlo models are used in three main classes: optimization, numerical integration, and generating population distributions [1]. \n", + "\n", + "Here is a brief list of Monte Carlo model use cases in real-world applications:\n", + "\n", + "- [Eigenvlaues in supercritical systems](https://link.springer.com/chapter/10.1007%2FBFb0049064)\n", + "- [average time between failures for reliability](http://www.egr.msu.edu/~mitraj/research/pubs/proc/singh-mitra_em_stdby_ias95.pdf)\n", + "- disordered materials (physics)\n", + "- [Calculation of the energy output of a wind farm](http://www.mdpi.com/1996-1073/9/4/286/pdf)\n", + "- [US Coast Guard rescue missions](https://en.wikipedia.org/wiki/Search_and_Rescue_Optimal_Planning_System)\n", + "- [Radiation shielding](http://www.sciencedirect.com/science/article/pii/S0920379612000580)\n", + "- [Predict number of asteroids that hit body of water](https://cneos.jpl.nasa.gov/sentry/intro.html)\n", + "- [Financial modeling](https://en.wikipedia.org/wiki/Monte_Carlo_methods_in_finance)\n", + "\n", + "We will explore Monte Carlo modeling through the use of three examples:\n", + "\n", + "1. Calculate the value of $\\pi$\n", + "\n", + "2. Calculate the integral of a function\n", + "\n", + "3. Propagate uncertainty in manufacturing into uncertainty in failure load" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "\n", + "\n", + "# Example 1: Calculate $\\pi$ with random numbers. \n", + "\n", + "Assuming we can actually generate random numbers (a topic of philosophical and heated debates) we can populate a unit square with random points and determine the ratio of points inside and outside of a circle.\n", + "\n", + "![Unit circle and unit square](../images/MonteCarloPi.gif)\n", + "\n", + "![1/4 Unit circle and 1/4 unit square](../images/MonteCarloPi_rand.gif)" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "The ratio of the area of the circle to the square is:\n", + "\n", + "$\\frac{\\pi r^{2}}{4r^{2}}=\\frac{\\pi}{4}$\n", + "\n", + "So if we know the fraction of random points that are within the unit circle, then we can calculate $\\pi$\n", + "\n", + "(number of points in circle)/(total number of points)=$\\pi/4$" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([0.61262684, 0.8262925 , 0.59955407, 0.43229944, 0.66224665,\n", + " 0.61154899, 0.34189469, 0.94126304, 0.41459117, 0.6400169 ])" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "np.random.rand(10)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "slideshow": { + "slide_type": "fragment" + } + }, + "outputs": [], + "source": [ + "def montecarlopi(N):\n", + " '''Create random x-y-coordinates to and use ratio of circle-to-square to \n", + " calculate the value of pi\n", + " i.e. Acircle/Asquare = pi/4\n", + " Arguments\n", + " ---------\n", + " N: number of random points to produce between x=0-1 and y=0-1\n", + " \n", + " Returns\n", + " -------\n", + " our_pi: the best prediction of pi using N points\n", + " '''\n", + " \n", + "\n", + " x=np.random.rand(N,1);\n", + " y=np.random.rand(N,1);\n", + " R=np.sqrt(x**2+y**2); # compute radius\n", + " num_in_circle=sum(R<1);\n", + " total_num_pts =len(R);\n", + " our_pi = 4*num_in_circle/total_num_pts;\n", + " return our_pi" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "mean value for pi = 3.188800\n", + "standard deviation is 0.041097\n", + "actual pi is 3.141593\n" + ] + } + ], + "source": [ + "test_pi=np.zeros(10)\n", + "for i in range(0,10):\n", + " test_pi[i]=montecarlopi(1000);\n", + "\n", + "print('mean value for pi = %f'%np.mean(test_pi))\n", + "print('standard deviation is %f'%np.std(test_pi))\n", + "print('actual pi is %f'%np.pi)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Exercises\n", + "\n", + "1. Why is there a standard deviation for the value of $\\pi$ calculated with a Monte Carlo method? Does it depend upon how many times you run the function i.e. the size of `test_pi`? or the number of random points `N`? Alter the script above to discover correlations\n", + "\n", + "2. How well does our function `montecarlopi` converge to the true value of $\\pi$ (you can use `np.pi` as a true value)? Plot the convergence as we did in [03-Numerical_error](https://github.uconn.edu/rcc02007/CompMech01-Getting-started/blob/master/notebooks/03-Numerical_error.ipynb)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Example 2: Calculate the integral of a function\n", + "\n", + "One way to calculate the integral of a function, $f(x)$, is to approximate it as a Riemann sum as such\n", + "\n", + "$I=\\int_{a}^{b}f(x) dx \\approx \\Delta x \\left(f(a)+f(a+\\Delta x)+f(a+2\\Delta x)+...+f(b)\\right))$.\n", + "\n", + "Another way to integrate this function is with a [Monte Carlo approach](https://en.wikipedia.org/wiki/Monte_Carlo_integration) [2, 3]. We can approximate the integral as such\n", + "\n", + "$I=\\int_{a}^{b}f(x) dx \\approx \\frac{1}{n}\\sum_{i=1}^n f(x_i)$. \n", + "\n", + "where $x_i$ are uniformly random values of $x$ over the interval $[a,b]$. We were actually doing this in two dimensions in Example #1 when we compared the area of the circle to the area of a square. \n", + "\n", + "Visually, this approximation can be represented by the following figure.\n", + "\n", + "![Integration approximation](../images/integrals.png)\n", + "\n", + "The figure above shows the exact integral on the left as compared to two approximations, the Riemann sum (top-right) and Monte Carlo method (bottom-right). \n", + "\n", + "The main benefit in using a Monte Carlo integration over a Riemann sum (or another non-random method e.g. trapezoidal) is that the integration converges as \n", + "\n", + "$error \\approx \\frac{1}{\\sqrt{n}}$\n", + "\n", + "independent of the number of dimensions in the formula. Non-random methods have convergence rates that depend upon the step size along each axis, so with two dimensions reducing the step size to 1/3 increases n by 4, in three dimensions its 8, in 4D its 16, and so on. We'll do an example with a 1D function to introduce the concept. \n", + "\n", + "You can even integrate functions that are not easy to evaluate, such as the [area of light shown by the bat signal](http://leios.github.io/Batman_Montecarlo)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exercise (Discussion)\n", + "\n", + "Why does the Monte Carlo method work? Is there a benefit to random numbers as opposed to using an ordered set divided into equally-spaced intervals?" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this example, we will calculate the integral $I=\\int_{1}^{3}f(x)dx$ where\n", + "\n", + "$I=\\int_{1}^{3}\\frac{x}{1+x^2}dx \\approx \\frac{1}{n}\\sum_{i=1}^n \\frac{x_i}{1+x_i^2}$\n", + "\n", + "Our first objective is to take random numbers between 0 and 1 and turn them into random number between 1 and 3. This process is called _scaling_ or _transforming_ our variable $x_{i}$" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "ri=np.random.rand(100)\n", + "\n", + "xi=1+(3-1)*ri # scaling equation for our uniform distribution 0..1 to 1..3\n", + "\n", + "plt.hist(xi,label='x_i: our scaled var')\n", + "plt.hist(ri,label='r_i: our original var')\n", + "plt.legend();\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Exercise\n", + "\n", + "Compare the scaled histogram to the original histogram. What is similar? What is different?\n", + "\n", + "Make a scaling equation to get uniformly random numbers between 10 and 20. " + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Performing the integration\n", + "\n", + "If you have been doing a lot of calculus lately, you may know that \n", + "\n", + "$\\int\\frac{x}{1+x^2}dx = \\frac{\\log({x^2+1})}{2}$. \n", + "\n", + "If not, Python's [Sympy: Symbolic algebra](https://docs.sympy.org/1.5.1/modules/integrals/integrals.html) can help you jog your memory [4]. It will also give us an exact solution to judge our convergence. \n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle \\frac{\\log{\\left(x^{2} + 1 \\right)}}{2}$" + ], + "text/plain": [ + "log(x**2 + 1)/2" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "import sympy\n", + "\n", + "x=sympy.Symbol('x')\n", + "\n", + "sympy.integrate(x/(1+x**2),x)" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [ + { + "data": { + "text/latex": [ + "$\\displaystyle 0.80471895621705$" + ], + "text/plain": [ + "0.804718956217050" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "sympy.integrate(x/(1+x**2),(x,1,3)).evalf()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "So the exact integral that we are approximating is\n", + "\n", + "$I=\\frac{\\log{10}}{2}-\\frac{\\log{2}}{2}=0.80471895621705$\n", + "\n", + "_Note: We won't be using sympy for general numerical methods. It is helpful to do some algebra for us, but in general we want to use arrays so that our solutions can be scaled up and solved quicker by the computer._" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0.7824846191561594\n" + ] + }, + { + "data": { + "text/plain": [ + "Text(0, 0.5, 'f(x)')" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "f= lambda x:x/(1+x**2)\n", + "\n", + "n=10\n", + "ri=np.random.rand(n)\n", + "\n", + "xi=1+(3-1)*ri # scaling equation for our uniform distribution 0..1 to 1..3\n", + "# we scaled our variable by a factor of 2 so we scale the bins accorcdingly\n", + "bin_scale = 3-1 \n", + "\n", + "my_I=sum(f(xi))/n*bin_scale\n", + "print(my_I)\n", + "\n", + "plt.bar(xi,f(xi),width=bin_scale/n,color=[0.1,0,1,0.5])\n", + "plt.plot(np.linspace(0,4),f(np.linspace(0,4)),color='k')\n", + "plt.title('Graphical illustration of Monte Carlo'+\\\n", + " ' integration\\n I={:.4f}'.format(my_I))\n", + "plt.xlabel('x')\n", + "plt.ylabel('f(x)')\n" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "def montecarlo_integrate(f,a,b,N):\n", + " '''Estimate the integral of a function f(x) from a->b with N \n", + " randomly chosen points\n", + " Arguments\n", + " ---------\n", + " f: a function of the form f=lambda x: ...\n", + " a: the lower bound of the integration\n", + " b: the upper bound of the integration\n", + " N: number of random points to produce between xi=a-b\n", + " \n", + " Returns\n", + " -------\n", + " our_I: the best prediction of the integral using N points \n", + " '''\n", + " ri=np.random.rand(n)\n", + "\n", + " xi=a+(b-a)*ri # scaling equation for our uniform distribution 0..1 to 1..3\n", + " # we scaled our variable by a factor of 2 so we scale the bins accorcdingly\n", + " bin_scale = b-a\n", + "\n", + " our_I=sum(f(xi))/n*bin_scale\n", + " \n", + " return our_I\n", + " " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In the above function, we have defined a general Monte Carlo integration function. Now, we can create a for loop to try the function multiple times and get an average and standard deviation. " + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "mean value is I = 0.81410075695566\n", + "standard deviation is 0.028138512733038436\n", + "actual I = 0.80471895621705\n", + "error in mean = -0.009381800738609947\n" + ] + } + ], + "source": [ + "test_I=np.zeros(10)\n", + "for i in range(0,10):\n", + " test_I[i]=montecarlo_integrate(f,1,3,500);\n", + "\n", + "print('mean value is I = {}'.format(np.mean(test_I)))\n", + "print('standard deviation is {}'.format(np.std(test_I)))\n", + "print('actual I = 0.80471895621705')\n", + "print('error in mean = {}'.format(0.80471895621705-np.mean(test_I)))" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "### Example 3: Determine uncertainty in failure load based on geometry uncertainty\n", + "\n", + "In this example, we know that a steel bar will break under 940 MPa tensile stress. The bar is 1 mm by 2 mm with a tolerance of 10 %. What is the range of tensile loads that can be safely applied to the beam?\n", + "\n", + "$\\sigma_{UTS}=\\frac{F_{fail}}{wh}$\n", + "\n", + "$F_{fail}=\\sigma_{UTS}wh$" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "N=10000;\n", + "r=np.random.rand(N,1);\n", + "wmean=1; # in mm\n", + "wmin=wmean-wmean*0.1;\n", + "wmax=wmean+wmean*0.1;\n", + "hmean=2; # in mm\n", + "hmin=hmean-hmean*0.1;\n", + "hmax=hmean+hmean*0.1;\n", + "\n", + "wrand=wmin+(wmax-wmin)*r;\n", + "hrand=hmin+(hmax-hmin)*r;\n", + "\n", + "uts=940; # in N/mm^2=MPa\n", + "\n", + "Ffail=uts*wrand*hrand*1e-3; # force in kN\n", + "plt.hist(Ffail,bins=20,)\n", + "plt.xlabel('failure load (kN)')\n", + "plt.ylabel('relative counts')\n", + "plt.title('Failure load is {:.2f}+/- {:.2f} kN'.format(np.mean(Ffail),np.std(Ffail)));" + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "Normally, the tolerance is not a maximum/minimum specification, but instead a normal distribution that describes the standard deviation, or the 68% confidence interval.\n", + "\n", + "So instead, we should generate normally distributed dimensions." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": { + "collapsed": false, + "jupyter": { + "outputs_hidden": false + }, + "slideshow": { + "slide_type": "slide" + } + }, + "outputs": [ + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "N=10000;\n", + "wmean=1; # in mm\n", + "wstd=wmean*0.1; # standard deviation in mm\n", + "hmean=2; # in mm\n", + "hstd=hmean*0.1; # standard deviation in mm\n", + "\n", + "\n", + "wrand=np.random.normal(wmean,wstd,size=N);\n", + "hrand=np.random.normal(hmean,hstd,size=N);\n", + "uts=940; # in N/mm^2=MPa\n", + "\n", + "Ffail=uts*wrand*hrand*1e-3; # force in kN\n", + "plt.hist(Ffail,bins=20)\n", + "#plt.xlabel('failure load (kN)')\n", + "#plt.ylabel('relative counts')\n", + "plt.title('Failure load is {:.2f}+/- {:.2f} kN'.format(np.mean(Ffail),np.std(Ffail)));" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In this propagation of uncertainty, the final value of failure load seems to be independent of wheher the distribution is uniformly random or normally distributed. In both cases, the failure load is $\\approx 1.9 \\pm 0.25$ kN.\n", + "\n", + "The difference is much more apparent if you look at the number of occurrences that failure will occur whether the dimensions are uniformly random or normally distributed. \n", + "\n", + "For the uniformly random case, there are approximately 500 parts out of 10,000 that will fail at 1.9 kN. \n", + "\n", + "For the normally distributed case, there are approximately 1500 parts out of 10,000 that will fail at 1.9 kN. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Where does a normal distribution come from?\n", + "\n", + "\"Everybody believes in the exponential law of errors: the experimenters, because they think it can be proved by mathematics; and the mathematicians, because they believe it has been established by observation\" [5].\n", + "\n", + "In the previous example, we drew dimensions from uniformly random distributions and normally distributed random distributions. Why do we use the \"normal\" distribution to describe data with a mean and standard deviation? There are exact statistical methods to derive the normal distribution, but let's take a look at a Monte Carlo approach. \n", + "\n", + "Let's say there are 10 different independent factors that could change the dimensions of the steel bar in question e.g. which tool was used, how old the blade is, the humidity, the temperature, and the list goes on. \n", + "\n", + "Let's consider one dimension. \n", + "Each of these factors could change the dimensions of the part, let's use a uniform scale of -1/2-1/2.\n", + "If the effect is 0, the dimension is exactly as specified. If the effect is -1/2, the dimension is much smaller. Conversely, if the effect is 1/2 the dimension is much larger. Now, we use a Monte Carlo model to generate 10 effects on 10,000 parts as shown in the next block." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [], + "source": [ + "factors = np.random.rand(10000,10)-1/2 # each row represents a part and each column is an effect (-1/2-1/2)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, we have created 10,000 parts with 10 uniformly random effects between -1/2-1/2. \n", + "\n", + "We sum the effects and look at the final part distribution. The x-axis is labeled \"A.U.\" for arbitrary units, we are just assuming an effect of -1/2-1/2 for each of the 10 factors. " + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Text(0, 0.5, 'number of parts')" + ] + }, + "execution_count": 16, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
" + ] + }, + "metadata": { + "needs_background": "light" + }, + "output_type": "display_data" + } + ], + "source": [ + "dims = np.sum(factors,axis=1)\n", + "\n", + "plt.hist(dims,30)\n", + "plt.xlabel('effect A.U.')\n", + "plt.ylabel('number of parts')" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, depending upon which random numbers were generated, you should see what looks like a normal distribution. \n", + "\n", + "Normal distributions come from the assumption that we have a large (or infinite) number of uncontrollable factors that can change our desired result. In our case, ideally each factor would have an effect of 0, because then it is exactly as specified, but the reality is that we can't control most factors. As engineers, we always have to consider the uncertainty in our models and measurements. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## We learned:\n", + "\n", + "* How to generate \"random\" numbers in Python$^+$\n", + "* The definition of a Monte Carlo model\n", + "* How to calculate $\\pi$ with Monte Carlo\n", + "* How to take the integral of a function with Monte Carlo\n", + "* How to propagate uncertainty in a model with Monte Carlo\n", + "* **Bonus**: use Sympy to do calculus and algebra for us! *no need for Wolfram, sorry Stephen*\n", + "* How to generate a normal distribution using uniformly random numbers\n", + "\n", + "$^+$ Remember, the computer only generates pseudo-random numbers. For further information **and** truly random numbers check [www.random.org](https://www.random.org/randomness/) " + ] + }, + { + "cell_type": "markdown", + "metadata": { + "slideshow": { + "slide_type": "slide" + } + }, + "source": [ + "# References\n", + "\n", + "1. [Why the Monte Carlo method is so important today\n", + "Dirk P. Kroese, Tim Brereton *et al.* Wiley Interdisciplinary Reviews: Computational Statistics, 6, 6, 11 2014](https://onlinelibrary.wiley.com/doi/full/10.1002/wics.1314)\n", + "\n", + "2. [Wikipedia: Monte Carlo integration](https://en.wikipedia.org/wiki/Monte_Carlo_integration)\n", + "\n", + "3. [Weinzierl, S. (2000). \"Introduction to Monte Carlo methods\"](https://arxiv.org/abs/hep-ph/0006269)\n", + "\n", + "4. Meurer A, _et al._ (2017) SymPy: symbolic computing in Python. PeerJ Computer Science 3:e103 https://doi.org/10.7717/peerj-cs.103\n", + "\n", + "5. Whittaker, E. T. and Robinson, G. \"Normal Frequency Distribution.\" Ch. 8 in The Calculus of Observations: A Treatise on Numerical Mathematics, 4th ed. New York: Dover, p. 179, 1967." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Problems\n", + "\n", + "1. Calculate the area of a unit circle using the Monte Carlo integration method that we devloped in Example 2. Calculate the area of a quarter of the circle, then multiply the final result by 4. \n", + "\n", + " _Hint: You have to create a function that describes the perimeter of the circle._\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "2. 100 steel rods are going to be used to support a 1000 kg structure. The\n", + "rods will buckle when the load in any rod exceeds the [critical buckling\n", + "load](https://en.wikipedia.org/wiki/Euler%27s_critical_load)\n", + "\n", + " $P_{cr}=\\frac{\\pi^3 Er^4}{16L^2}$\n", + "\n", + " where E=200e9 Pa, r=0.01 m +/-0.001 m, and L is the \n", + " length of the rods supporting the structure. Create a Monte\n", + " Carlo model `montecarlo_buckle` that predicts \n", + " the mean and standard deviation of the buckling load for 100\n", + " samples with normally distributed dimensions r and L. \n", + "\n", + " ```python\n", + " mean_buckle_load,std_buckle_load=\\\n", + " montecarlo_buckle(E,r_mean,r_std,L,N=100)\n", + " ```\n", + "\n", + " a. What is the mean_buckle_load and std_buckle_load for L=5 m?\n", + "\n", + " b. What length, L, should the beams be so that only 2.5% will \n", + " reach the critical buckling load?" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [], + "source": [ + "def montecarlo_buckle(E,r_mean,r_std,L,N=100):\n", + " '''Generate N rods of length L with radii of r=r_mean+/-r_std\n", + " then calculate the mean and std of the buckling loads in for the\n", + " rod population holding a 1000-kg structure\n", + " Arguments\n", + " ---------\n", + " E: Young's modulus [note: keep units consistent]\n", + " r_mean: mean radius of the N rods holding the structure\n", + " r_std: standard deviation of the N rods holding the structure\n", + " L: length of the rods (or the height of the structure)\n", + " N: number of rods holding the structure, default is N=100 rods\n", + " Returns\n", + " -------\n", + " mean_buckle_load: mean buckling load of N rods under 1000*9.81/N-Newton load\n", + " std_buckle_load: std dev buckling load of N rods under 1000*9.81/N-Newton load\n", + " '''\n", + " \n", + " # your code here" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "3. Generate your own normal distribution using uniformly random numbers between -1/2 and 1/2. \n", + "\n", + " a. What is the effect of changing the number of factors?\n", + " \n", + " b. What is the effect of changing the number of samples?\n", + " \n", + " *Hint: for a-b try plotting histograms of the results.*\n", + " \n", + " c. How would you change the mean in your generated distribution?" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "celltoolbar": "Slideshow", + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.5" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/notebooks/octave-workspace b/notebooks/octave-workspace deleted file mode 100644 index 88f4685a09da55006912cd8c5bac8ba901de30af..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54 zcmeZIE=ep))iu=hVPIxpU`Wg>29gX6|2cs~abbLMNl|8A`oI7G|1$ywSb^A7&rr_* E0EcQ0Q~&?~ diff --git a/project/.ipynb_checkpoints/02_Analyze-data_project-checkpoint.ipynb b/project/.ipynb_checkpoints/02_Analyze-data_project-checkpoint.ipynb new file mode 100644 index 0000000..ce6abc8 --- /dev/null +++ b/project/.ipynb_checkpoints/02_Analyze-data_project-checkpoint.ipynb @@ -0,0 +1,140 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Computational Mechanics Project #02 - Create specifications for a spitballing robot\n", + "\n", + "On the first day of class, we threw $2\"\\times~2\"$ dampened paper (spitballs) at a target on the whiteboard. Now, we are going to analyze the accuracy of the class with some cool Python tools and design a robot that has the same accuracy and precision as the class. \n", + "\n", + "The goal of this project is to determine the precision of necessary components for a robot that can reproduce the class throwing distibution. We have generated pseudo random numbers using `numpy.random`, but the class target practice is an example of truly random distributions. If we repeated the exercise, there is a vanishingly small probability that we would hit the same points on the target, and there are no deterministic models that could take into account all of the factors that affected each hit on the board. \n", + "\n", + "\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now, we ask ourselves some questions:\n", + "\n", + "1. How do we quantify the class accuracy and precision?\n", + "\n", + "2. If we design a robot, what design components can we control?\n", + "\n", + "3. How can we relate the controlled components to the class accuracy, and specify the component precision?\n", + "\n", + "The first question, we have some experience from our work in [02_Seeing_Stats](../notebooks/02_Seeing_Stats.ipynb). We can define the mean, standard deviation, measure the first, second, and third quartiles, etc. \n", + "\n", + "The second question is a physical question. We cannot control the placement of the robot or the target those are chosen for us. We cannot control temperature, mechanical vibrations, etc. We *can* control the desired initial velocity. The initial velocity will have some speed and direction, and both will be subject to random noise. Once the speed and direction are set, the location on the target is determined by kinematic equations for an object in freefall, as such\n", + "\n", + "$x_{impact} = \\frac{v_x}{v_y}d + x(0)~~~~~~~~~~~~~~~~~~~~(1.a)$\n", + "\n", + "$z_{impact} = d\\left(\\frac{v_z(0)}{v_y}-\\frac{g}{2v_y^2}d\\right)+ z(0)~~~~~(1.b)$.\n", + "\n", + "Where the location of impact is at a $y$-distance of $d$ at a point on the target with coordinates $(x_{impact},~z_{impact})$, and the initial velocity is $\\bar{v}=v_x\\hat{i}+v_y\\hat{j}+v_z(0)\\hat{k}$, the object is released at an initial location $\\bar{r}(0)=x(0)\\hat{i}+0\\hat{j}+z(0)\\hat{k}$, and the only acceleration is due to gravity, $\\bar{a}=-g\\hat{k}$. Equation (1) becomes much easier to evaluate if we assume that $v_x=0$, resulting in an evalution of the accuracy of the height of the impact, $z_{impact}$, as such\n", + "\n", + "$x_{impact} = x(0)~~~~~~~~~~~~~~~~~~~~(2.a)$\n", + "\n", + "$z_{impact} = \\frac{d}{\\cos{\\theta}}\\left(\\sin{\\theta}-\\frac{g}{2v_0^2\\cos{\\theta}}d\\right)+ z(0)~~~~~(2.b)$.\n", + "\n", + "Where $\\theta$ is the angle of the initial velocity and $v_0$ is the initial speed. Equation (2) restricts the analysis to height accuracy. You can incorporate the 2D impact analysis if you finish the 1D analysis. " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The third question, is how we can relate equation (2) to the measured points of impact? For this, we can use Monte Carlo methods *(There are other methods, but Monte Carlo is one of the most straight-forward)*. Our Monte Carlo approach is as such, if we have a desired initial speed, $v_0$, and desired angle, $\\theta$, we can propagate the uncertainty of our actual speeds and angles into the $z_{impact}$ locations. Then, we can choose distributions in speed and angles that match the distributions in $z_{impact}$ locations. Here are the steps:\n", + "\n", + "1. Generate random $\\theta_i$ and $v_{0~i}$ variables\n", + "\n", + "2. Plug into eqn 2 for random $z_{impact~i}$ locations\n", + "\n", + "3. Compare to our measured $z_{impact}$ location statistics\n", + "\n", + "4. Repeat 1-3 until the predicted uncertainty matches the desired uncertainty, we can use a number of comparison metrics:\n", + " \n", + " - standard deviation\n", + " \n", + " - first, second, and third quartiles\n", + " \n", + " - visually, with box plots and histograms" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Project Deliverables\n", + "\n", + "1. Statistical analysis of class accuracy and precision (x- and z-locations)\n", + "\n", + "2. A Monte Carlo model to generate impact heights based upon uncertainty in $\\theta_0$ and $v_0$. \n", + "\n", + "3. The precision required to recreate the class accuracy and precision with a robot. \n", + "**You must show some validation of your work**\n", + "\n", + "4. [BONUS] Repeat 2-3 taking into account the variation in $x_{impact}$ due to misalignment. \n", + "\n", + "Given constants and constraints:\n", + "\n", + "- $d=$3 m, distance to target\n", + "\n", + "- $g=$9.81 m/s$^2$, acceleration due to gravity\n", + "\n", + "- $z(0)=$0.3 m, the initial height is 0.3 m above the bull's eye\n", + "\n", + "- 4 m/s$');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " fig.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
');\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " event.shiftKey = false;\n", + " // Send a \"J\" for go to next cell\n", + " event.which = 74;\n", + " event.keyCode = 74;\n", + " manager.command_mode();\n", + " manager.handle_keydown(event);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "im = imread('../data/archery.jpg')\n", + "plt.figure()\n", + "plt.imshow(im)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Capture mouse clicks on the frame\n", + "\n", + "Okay! Here is where things get really interesting. Matplotlib has the ability to create [event connections](https://matplotlib.org/devdocs/users/event_handling.html?highlight=mpl_connect), that is, connect the figure canvas to user-interface events on it, like mouse clicks. \n", + "\n", + "To use this ability, you write a function with the events you want to capture, and then connect this function to the Matplotlib \"event manager\" using [`mpl_connect()`](https://matplotlib.org/devdocs/api/backend_bases_api.html#matplotlib.backend_bases.FigureCanvasBase.mpl_connect). In this case, we connect the `'button_press_event'` to the function named `onclick()`, which captures the $(x,y)$ coordinates of the mouse click on the figure. Magic!" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "def onclick(event):\n", + " '''Capture the x,y coordinates of a mouse click on the image'''\n", + " ix, iy = event.xdata, event.ydata\n", + " coords.append([ix, iy]) " + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support. ' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " fig.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
');\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " event.shiftKey = false;\n", + " // Send a \"J\" for go to next cell\n", + " event.which = 74;\n", + " event.keyCode = 74;\n", + " manager.command_mode();\n", + " manager.handle_keydown(event);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 81, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plt.figure()\n", + "plt.imshow(im)\n", + "\n", + "plt.plot(hits[:,0],hits[:,1],'x')\n", + "plt.plot(rings[:,0],rings[:,1],'s')" + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([ 0, 8, 16, 24])" + ] + }, + "execution_count": 73, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "rings" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support. ' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " fig.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
');\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " event.shiftKey = false;\n", + " // Send a \"J\" for go to next cell\n", + " event.which = 74;\n", + " event.keyCode = 74;\n", + " manager.command_mode();\n", + " manager.handle_keydown(event);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 83, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plt.figure()\n", + "plt.plot(hit_scale[:,0],hit_scale[:,1],'o')\n", + "plt.plot(np.mean(hit_scale[:,0]),np.mean(hit_scale[:,1]),'s')" + ] + }, + { + "cell_type": "code", + "execution_count": 98, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support. ' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " fig.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
');\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " event.shiftKey = false;\n", + " // Send a \"J\" for go to next cell\n", + " event.which = 74;\n", + " event.keyCode = 74;\n", + " manager.command_mode();\n", + " manager.handle_keydown(event);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "plt.plot(np.random.rand(10))" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support. ' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " fig.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
');\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " event.shiftKey = false;\n", + " // Send a \"J\" for go to next cell\n", + " event.which = 74;\n", + " event.keyCode = 74;\n", + " manager.command_mode();\n", + " manager.handle_keydown(event);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure(3)\n", + "plt.imshow(im, interpolation='nearest')\n", + "\n", + "coords = []\n", + "connectId = fig.canvas.mpl_connect('button_press_event', onclick)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Notice that in the previous code cell, we created an empty list named `coords`, and inside the `onclick()` function, we are appending to it the $(x,y)$ coordinates of each mouse click on the figure. After executing the cell above, you have a connection to the figure, via the user interface: try clicking with your mouse on the endpoints of the white lines of the metered panel (click on the edge of the panel to get approximately equal $x$ coordinates), then print the contents of the `coords` list below." + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[[229.51449092741933, 245.74974798387098],\n", + " [229.51449092741933, 324.3787802419355],\n", + " [325.44191028225805, 292.9271673387097],\n", + " [364.7564264112903, 300.7900705645161],\n", + " [380.4822328629032, 308.65297379032256],\n", + " [367.90158770161287, 329.09652217741933],\n", + " [339.59513608870964, 346.39490927419354],\n", + " [339.59513608870964, 371.5561995967742],\n", + " [364.7564264112903, 363.69329637096774],\n", + " [309.7161038306451, 393.57232862903226],\n", + " [308.14352318548384, 443.89490927419354],\n", + " [408.7886844758064, 421.8787802419355],\n", + " [473.26449092741933, 376.27394153225805],\n", + " [465.40158770161287, 280.34652217741933],\n", + " [496.8532006048387, 267.765877016129],\n", + " [452.8209425403225, 242.6045866935484],\n", + " [430.80481350806446, 220.5884576612903],\n", + " [627.3773941532259, 187.56426411290323],\n", + " [350.60320060483866, 176.5561995967742],\n", + " [364.7564264112903, 206.43523185483872]]" + ] + }, + "execution_count": 66, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "coords" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The $x$ coordinates are pretty close, but there is some variation due to our shaky hand (or bad eyesight), and perhaps because the metered panel is not perfectly vertical. We can cast the `coords` list to a NumPy array, then grab all the first elements of the coordinate pairs, then get the standard deviation as an indication of our error in the mouse-click captures." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "hits = np.array(coords)" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support. ' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " fig.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
');\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " event.shiftKey = false;\n", + " // Send a \"J\" for go to next cell\n", + " event.which = 74;\n", + " event.keyCode = 74;\n", + " manager.command_mode();\n", + " manager.handle_keydown(event);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig = plt.figure()\n", + "plt.imshow(im, interpolation='nearest')\n", + "\n", + "coords = []\n", + "connectId = fig.canvas.mpl_connect('button_press_event', onclick)" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[352.17578125, 283.00025202],\n", + " [468.54674899, 240.5405746 ],\n", + " [597.4983619 , 223.2421875 ],\n", + " [728.02255544, 207.51638105]])" + ] + }, + "execution_count": 78, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "rings = np.array(coords)\n", + "rings" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0.06351808135606307" + ] + }, + "execution_count": 79, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "bull=rings[0,:]\n", + "distances=np.sqrt((rings[:,0]-bull[0])**2+(rings[:,1]-bull[1])**2)\n", + "ring_cm = np.array([0,8,16,24]) # ring distance from Bullseye cm\n", + "scale =np.mean(ring_cm[1:]/distances[1:]) # scale for distances to cm/px\n", + "scale" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([[ 7.79120982, 2.36608055],\n", + " [ 7.79120982, -2.62828472],\n", + " [ 1.69808419, -0.63053862],\n", + " [ -0.79909844, -1.12997514],\n", + " [ -1.7979715 , -1.62941167],\n", + " [ -0.99887305, -2.92794664],\n", + " [ 0.79909844, -4.026707 ],\n", + " [ 0.79909844, -5.62490388],\n", + " [ -0.79909844, -5.12546736],\n", + " [ 2.69695724, -7.02332616],\n", + " [ 2.79684455, -10.21971993],\n", + " [ -3.59594299, -8.82129765],\n", + " [ -7.69132251, -5.9245658 ],\n", + " [ -7.19188599, 0.16855983],\n", + " [ -9.18963209, 0.96765827],\n", + " [ -6.39278754, 2.56585516],\n", + " [ -4.99436527, 3.96427743],\n", + " [-17.48027844, 6.06191084],\n", + " [ 0.09988731, 6.76112198],\n", + " [ -0.79909844, 4.86326318]])" + ] + }, + "execution_count": 82, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "hit_scale=hits\n", + "hit_scale[:,0]=(bull[0]-hits[:,0])*scale\n", + "hit_scale[:,1]=(bull[1]-hits[:,1])*scale\n", + "hits" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "metadata": {}, + "outputs": [ + { + "data": { + "application/javascript": [ + "/* Put everything inside the global mpl namespace */\n", + "window.mpl = {};\n", + "\n", + "\n", + "mpl.get_websocket_type = function() {\n", + " if (typeof(WebSocket) !== 'undefined') {\n", + " return WebSocket;\n", + " } else if (typeof(MozWebSocket) !== 'undefined') {\n", + " return MozWebSocket;\n", + " } else {\n", + " alert('Your browser does not have WebSocket support. ' +\n", + " 'Please try Chrome, Safari or Firefox ≥ 6. ' +\n", + " 'Firefox 4 and 5 are also supported but you ' +\n", + " 'have to enable WebSockets in about:config.');\n", + " };\n", + "}\n", + "\n", + "mpl.figure = function(figure_id, websocket, ondownload, parent_element) {\n", + " this.id = figure_id;\n", + "\n", + " this.ws = websocket;\n", + "\n", + " this.supports_binary = (this.ws.binaryType != undefined);\n", + "\n", + " if (!this.supports_binary) {\n", + " var warnings = document.getElementById(\"mpl-warnings\");\n", + " if (warnings) {\n", + " warnings.style.display = 'block';\n", + " warnings.textContent = (\n", + " \"This browser does not support binary websocket messages. \" +\n", + " \"Performance may be slow.\");\n", + " }\n", + " }\n", + "\n", + " this.imageObj = new Image();\n", + "\n", + " this.context = undefined;\n", + " this.message = undefined;\n", + " this.canvas = undefined;\n", + " this.rubberband_canvas = undefined;\n", + " this.rubberband_context = undefined;\n", + " this.format_dropdown = undefined;\n", + "\n", + " this.image_mode = 'full';\n", + "\n", + " this.root = $('
');\n", + " this._root_extra_style(this.root)\n", + " this.root.attr('style', 'display: inline-block');\n", + "\n", + " $(parent_element).append(this.root);\n", + "\n", + " this._init_header(this);\n", + " this._init_canvas(this);\n", + " this._init_toolbar(this);\n", + "\n", + " var fig = this;\n", + "\n", + " this.waiting = false;\n", + "\n", + " this.ws.onopen = function () {\n", + " fig.send_message(\"supports_binary\", {value: fig.supports_binary});\n", + " fig.send_message(\"send_image_mode\", {});\n", + " if (mpl.ratio != 1) {\n", + " fig.send_message(\"set_dpi_ratio\", {'dpi_ratio': mpl.ratio});\n", + " }\n", + " fig.send_message(\"refresh\", {});\n", + " }\n", + "\n", + " this.imageObj.onload = function() {\n", + " if (fig.image_mode == 'full') {\n", + " // Full images could contain transparency (where diff images\n", + " // almost always do), so we need to clear the canvas so that\n", + " // there is no ghosting.\n", + " fig.context.clearRect(0, 0, fig.canvas.width, fig.canvas.height);\n", + " }\n", + " fig.context.drawImage(fig.imageObj, 0, 0);\n", + " };\n", + "\n", + " this.imageObj.onunload = function() {\n", + " fig.ws.close();\n", + " }\n", + "\n", + " this.ws.onmessage = this._make_on_message_function(this);\n", + "\n", + " this.ondownload = ondownload;\n", + "}\n", + "\n", + "mpl.figure.prototype._init_header = function() {\n", + " var titlebar = $(\n", + " '
');\n", + " var titletext = $(\n", + " '
');\n", + " titlebar.append(titletext)\n", + " this.root.append(titlebar);\n", + " this.header = titletext[0];\n", + "}\n", + "\n", + "\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(canvas_div) {\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._init_canvas = function() {\n", + " var fig = this;\n", + "\n", + " var canvas_div = $('
');\n", + "\n", + " canvas_div.attr('style', 'position: relative; clear: both; outline: 0');\n", + "\n", + " function canvas_keyboard_event(event) {\n", + " return fig.key_event(event, event['data']);\n", + " }\n", + "\n", + " canvas_div.keydown('key_press', canvas_keyboard_event);\n", + " canvas_div.keyup('key_release', canvas_keyboard_event);\n", + " this.canvas_div = canvas_div\n", + " this._canvas_extra_style(canvas_div)\n", + " this.root.append(canvas_div);\n", + "\n", + " var canvas = $('');\n", + " canvas.addClass('mpl-canvas');\n", + " canvas.attr('style', \"left: 0; top: 0; z-index: 0; outline: 0\")\n", + "\n", + " this.canvas = canvas[0];\n", + " this.context = canvas[0].getContext(\"2d\");\n", + "\n", + " var backingStore = this.context.backingStorePixelRatio ||\n", + "\tthis.context.webkitBackingStorePixelRatio ||\n", + "\tthis.context.mozBackingStorePixelRatio ||\n", + "\tthis.context.msBackingStorePixelRatio ||\n", + "\tthis.context.oBackingStorePixelRatio ||\n", + "\tthis.context.backingStorePixelRatio || 1;\n", + "\n", + " mpl.ratio = (window.devicePixelRatio || 1) / backingStore;\n", + "\n", + " var rubberband = $('');\n", + " rubberband.attr('style', \"position: absolute; left: 0; top: 0; z-index: 1;\")\n", + "\n", + " var pass_mouse_events = true;\n", + "\n", + " canvas_div.resizable({\n", + " start: function(event, ui) {\n", + " pass_mouse_events = false;\n", + " },\n", + " resize: function(event, ui) {\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " stop: function(event, ui) {\n", + " pass_mouse_events = true;\n", + " fig.request_resize(ui.size.width, ui.size.height);\n", + " },\n", + " });\n", + "\n", + " function mouse_event_fn(event) {\n", + " if (pass_mouse_events)\n", + " return fig.mouse_event(event, event['data']);\n", + " }\n", + "\n", + " rubberband.mousedown('button_press', mouse_event_fn);\n", + " rubberband.mouseup('button_release', mouse_event_fn);\n", + " // Throttle sequential mouse events to 1 every 20ms.\n", + " rubberband.mousemove('motion_notify', mouse_event_fn);\n", + "\n", + " rubberband.mouseenter('figure_enter', mouse_event_fn);\n", + " rubberband.mouseleave('figure_leave', mouse_event_fn);\n", + "\n", + " canvas_div.on(\"wheel\", function (event) {\n", + " event = event.originalEvent;\n", + " event['data'] = 'scroll'\n", + " if (event.deltaY < 0) {\n", + " event.step = 1;\n", + " } else {\n", + " event.step = -1;\n", + " }\n", + " mouse_event_fn(event);\n", + " });\n", + "\n", + " canvas_div.append(canvas);\n", + " canvas_div.append(rubberband);\n", + "\n", + " this.rubberband = rubberband;\n", + " this.rubberband_canvas = rubberband[0];\n", + " this.rubberband_context = rubberband[0].getContext(\"2d\");\n", + " this.rubberband_context.strokeStyle = \"#000000\";\n", + "\n", + " this._resize_canvas = function(width, height) {\n", + " // Keep the size of the canvas, canvas container, and rubber band\n", + " // canvas in synch.\n", + " canvas_div.css('width', width)\n", + " canvas_div.css('height', height)\n", + "\n", + " canvas.attr('width', width * mpl.ratio);\n", + " canvas.attr('height', height * mpl.ratio);\n", + " canvas.attr('style', 'width: ' + width + 'px; height: ' + height + 'px;');\n", + "\n", + " rubberband.attr('width', width);\n", + " rubberband.attr('height', height);\n", + " }\n", + "\n", + " // Set the figure to an initial 600x600px, this will subsequently be updated\n", + " // upon first draw.\n", + " this._resize_canvas(600, 600);\n", + "\n", + " // Disable right mouse context menu.\n", + " $(this.rubberband_canvas).bind(\"contextmenu\",function(e){\n", + " return false;\n", + " });\n", + "\n", + " function set_focus () {\n", + " canvas.focus();\n", + " canvas_div.focus();\n", + " }\n", + "\n", + " window.setTimeout(set_focus, 100);\n", + "}\n", + "\n", + "mpl.figure.prototype._init_toolbar = function() {\n", + " var fig = this;\n", + "\n", + " var nav_element = $('
');\n", + " nav_element.attr('style', 'width: 100%');\n", + " this.root.append(nav_element);\n", + "\n", + " // Define a callback function for later on.\n", + " function toolbar_event(event) {\n", + " return fig.toolbar_button_onclick(event['data']);\n", + " }\n", + " function toolbar_mouse_event(event) {\n", + " return fig.toolbar_button_onmouseover(event['data']);\n", + " }\n", + "\n", + " for(var toolbar_ind in mpl.toolbar_items) {\n", + " var name = mpl.toolbar_items[toolbar_ind][0];\n", + " var tooltip = mpl.toolbar_items[toolbar_ind][1];\n", + " var image = mpl.toolbar_items[toolbar_ind][2];\n", + " var method_name = mpl.toolbar_items[toolbar_ind][3];\n", + "\n", + " if (!name) {\n", + " // put a spacer in here.\n", + " continue;\n", + " }\n", + " var button = $('');\n", + " button.click(method_name, toolbar_event);\n", + " button.mouseover(tooltip, toolbar_mouse_event);\n", + " nav_element.append(button);\n", + " }\n", + "\n", + " // Add the status bar.\n", + " var status_bar = $('');\n", + " nav_element.append(status_bar);\n", + " this.message = status_bar[0];\n", + "\n", + " // Add the close button to the window.\n", + " var buttongrp = $('
');\n", + " var button = $('');\n", + " button.click(function (evt) { fig.handle_close(fig, {}); } );\n", + " button.mouseover('Stop Interaction', toolbar_mouse_event);\n", + " buttongrp.append(button);\n", + " var titlebar = this.root.find($('.ui-dialog-titlebar'));\n", + " titlebar.prepend(buttongrp);\n", + "}\n", + "\n", + "mpl.figure.prototype._root_extra_style = function(el){\n", + " var fig = this\n", + " el.on(\"remove\", function(){\n", + "\tfig.close_ws(fig, {});\n", + " });\n", + "}\n", + "\n", + "mpl.figure.prototype._canvas_extra_style = function(el){\n", + " // this is important to make the div 'focusable\n", + " el.attr('tabindex', 0)\n", + " // reach out to IPython and tell the keyboard manager to turn it's self\n", + " // off when our div gets focus\n", + "\n", + " // location in version 3\n", + " if (IPython.notebook.keyboard_manager) {\n", + " IPython.notebook.keyboard_manager.register_events(el);\n", + " }\n", + " else {\n", + " // location in version 2\n", + " IPython.keyboard_manager.register_events(el);\n", + " }\n", + "\n", + "}\n", + "\n", + "mpl.figure.prototype._key_event_extra = function(event, name) {\n", + " var manager = IPython.notebook.keyboard_manager;\n", + " if (!manager)\n", + " manager = IPython.keyboard_manager;\n", + "\n", + " // Check for shift+enter\n", + " if (event.shiftKey && event.which == 13) {\n", + " this.canvas_div.blur();\n", + " event.shiftKey = false;\n", + " // Send a \"J\" for go to next cell\n", + " event.which = 74;\n", + " event.keyCode = 74;\n", + " manager.command_mode();\n", + " manager.handle_keydown(event);\n", + " }\n", + "}\n", + "\n", + "mpl.figure.prototype.handle_save = function(fig, msg) {\n", + " fig.ondownload(fig, null);\n", + "}\n", + "\n", + "\n", + "mpl.find_output_cell = function(html_output) {\n", + " // Return the cell and output element which can be found *uniquely* in the notebook.\n", + " // Note - this is a bit hacky, but it is done because the \"notebook_saving.Notebook\"\n", + " // IPython event is triggered only after the cells have been serialised, which for\n", + " // our purposes (turning an active figure into a static one), is too late.\n", + " var cells = IPython.notebook.get_cells();\n", + " var ncells = cells.length;\n", + " for (var i=0; i= 3 moved mimebundle to data attribute of output\n", + " data = data.data;\n", + " }\n", + " if (data['text/html'] == html_output) {\n", + " return [cell, data, j];\n", + " }\n", + " }\n", + " }\n", + " }\n", + "}\n", + "\n", + "// Register the function which deals with the matplotlib target/channel.\n", + "// The kernel may be null if the page has been refreshed.\n", + "if (IPython.notebook.kernel != null) {\n", + " IPython.notebook.kernel.comm_manager.register_target('matplotlib', mpl.mpl_figure_comm);\n", + "}\n" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/html": [ + "" + ], + "text/plain": [ + "" + ] + }, + "metadata": {}, + "output_type": "display_data" + }, + { + "data": { + "text/plain": [ + "(array([1., 1., 0., 2., 0., 1., 0., 1., 1., 1.]),\n", + " array([0.44381555, 1.12382265, 1.80382975, 2.48383685, 3.16384395,\n", + " 3.84385105, 4.52385815, 5.20386525, 5.88387235, 6.56387946,\n", + " 7.24388656]),\n", + " )" + ] + }, + "execution_count": 98, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "angle=np.arctan2(hit_scale[:,1],hit_scale[:,0])\n", + "radius=np.sqrt(hit_scale[:,1]**2+hit_scale[:,0]**2)\n", + "plt.figure()\n", + "#plt.hist(angle)\n", + "plt.hist(radius)\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Looking ahead, what we'll do is repeat the process of capturing mouse clicks on the image, but clicking on the ball positions. Then, we will want to have the vertical positions converted to physical length (in meters), from the pixel numbers on the image.\n", + "\n", + "You can get the scaling from pixels to meters via the distance between two white lines on the metered panel, which we know is $0.25\\rm{m}$. \n", + "\n", + "Let's get the average vertical distance between two while lines, which we can calculate as:\n", + "\n", + "\\begin{equation}\n", + "\\overline{\\Delta y} = \\sum_{i=0}^N \\frac{y_{i+1}-y_i}{N-1}\n", + "\\end{equation}" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "123.56215213358072" + ] + }, + "execution_count": 17, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gap_lines = y_lines[1:] - y_lines[0:-1]\n", + "gap_lines.mean()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.7.5" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}