├── .gitignore ├── helpers ├── csv │ ├── fields.csv │ └── countries.csv └── php │ ├── age_education.php │ ├── fields.php │ └── countries.php ├── LICENSE ├── dump ├── framework_by_country.csv ├── fw_score_work.csv └── fw_score_personal.csv └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .AppleDouble 3 | .LSOverride 4 | 5 | # Icon must end with two \r 6 | Icon 7 | 8 | 9 | # Thumbnails 10 | ._* 11 | 12 | # Files that might appear in the root of a volume 13 | .DocumentRevisions-V100 14 | .fseventsd 15 | .Spotlight-V100 16 | .TemporaryItems 17 | .Trashes 18 | .VolumeIcon.icns 19 | 20 | # Directories potentially created on remote AFP share 21 | .AppleDB 22 | .AppleDesktop 23 | Network Trash Folder 24 | Temporary Items 25 | .apdisk -------------------------------------------------------------------------------- /helpers/csv/fields.csv: -------------------------------------------------------------------------------- 1 | Id,"Start Date","Submit Date","Network ID",Email,"Age Group","Current Country of Residence","Years of experience building PHP applications","Years of programming experience in general","Level of Programming Education","How many frameworks do you have actual production experience with? Due to huge differences, different major versions count as several: e.g. ZF1 and ZF2 count for two, not one.",Choice,Other,"Ease of use / Easy to get started","Large, helpful community","Huge body of available tutorials","Battle tested and bug free","Loads of built-in features","Forced by employer",Other,Why?,Choice,Other,"Ease of use / Easy to get started","Large, helpful community","Huge body of available tutorials","Battle tested and bug free","Loads of built-in features",Other,Why?,"Do you contribute to any frameworks? (CMS don't count)",Laravel,"Yii 1","Yii 2","Zend Framework 1","Zend Framework 2",Symfony2,Phalcon,Aura,Slim,Silex,Webiny,CakePHP,FuelPHP,Kohana,CodeIgniter,Prado,PHPixie,Flight,"Simple MVC Framework","Typo 3",Nette,Agavi,Other,ref 2 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 SitePoint Editors repo 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /helpers/php/age_education.php: -------------------------------------------------------------------------------- 1 | 1, 6 | "Vocational School / Community College" => 2, 7 | "Mainly Online Courses like Udacity, Coursera, CodeAcademy" => 3, 8 | "Went to CS/programming College/University - didn't finish" => 4, 9 | "Went to CS/programming College/University - finished" => 5, 10 | "Master's Degree in CS / programming" => 6, 11 | "PhD in CS / programming" => 7 12 | ]; 13 | 14 | return ($ed) ? $levels[$ed] : $levels; 15 | } 16 | 17 | function getEducationByLevel($level = null) 18 | { 19 | $levels = array_flip(getLevelByEducation()); 20 | 21 | return ($level) ? $levels[$level] : $levels; 22 | } 23 | 24 | /** 25 | * @param null $ag 26 | * @return int|array 27 | */ 28 | function getGroupByAgeGroup($ag = null) 29 | { 30 | $groups = [ 31 | "Under 18" => 1, 32 | "18 - 25" => 2, 33 | "26 - 35" => 3, 34 | "36 - 45" => 4, 35 | "45+" => 5 36 | ]; 37 | 38 | return ($ag) ? $groups[$ag] : $groups; 39 | } 40 | 41 | /** 42 | * @param null $ag 43 | * @return array|string 44 | */ 45 | function getAgeGroupByGroup($ag = null) 46 | { 47 | $groups = array_flip(getGroupByAgeGroup()); 48 | 49 | return ($ag) ? $groups[$ag] : $groups; 50 | } 51 | -------------------------------------------------------------------------------- /dump/framework_by_country.csv: -------------------------------------------------------------------------------- 1 | Country,"Total Votes","Work Favorite",Votes,"Personal Favorite",Votes 2 | "United States",819,Laravel,219,Laravel,293 3 | "Czech Republic",770,Nette,611,Nette,639 4 | "United Kingdom",496,Laravel,138,Laravel,166 5 | Germany,428,Symfony2,76,Laravel,100 6 | France,343,Symfony2,149,Symfony2,136 7 | Brazil,305,Laravel,100,Laravel,111 8 | India,287,Laravel,62,Laravel,77 9 | Ukraine,263,PHPixie,66,PHPixie,67 10 | Indonesia,242,CodeIgniter,77,Laravel,64 11 | "Russian Federation",235,"Yii 2",53,"Yii 2",72 12 | Poland,216,Symfony2,52,Symfony2,46 13 | Netherlands,209,Laravel,64,Laravel,84 14 | Romania,183,Symfony2,49,Symfony2,48 15 | Canada,138,Laravel,40,Laravel,52 16 | Spain,131,Symfony2,47,Symfony2,43 17 | Vietnam,112,Laravel,34,Laravel,43 18 | Iran,101,Laravel,34,Laravel,35 19 | Italy,100,Laravel,20,Laravel,25 20 | Australia,99,Laravel,30,Laravel,39 21 | Slovakia,94,Nette,48,Nette,47 22 | Belgium,79,Laravel,26,Laravel,31 23 | Serbia,78,Laravel,20,Laravel,29 24 | Hungary,73,Laravel,17,Laravel,19 25 | Turkey,71,Laravel,26,Laravel,28 26 | Mexico,68,Laravel,22,Laravel,21 27 | Bulgaria,66,Laravel,13,Laravel,20 28 | Lithuania,65,Symfony2,22,Laravel,26 29 | Thailand,58,CodeIgniter,14,Laravel,16 30 | Pakistan,57,CodeIgniter,14,CodeIgniter,13 31 | Philippines,54,Laravel,15,Laravel,16 32 | Argentina,52,Laravel,16,Laravel,21 33 | Bangladesh,51,Laravel,18,Laravel,16 34 | Belarus,51,Symfony2,20,Symfony2,19 35 | Portugal,50,Laravel,12,Laravel,17 36 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # php-fw-survey-2015 2 | The results of the annual PHP framework popularity survey of 2015 3 | 4 | ## Playing with the data 5 | 6 | If you decide to use PHP to play with this data, I recommend [league/csv](http://csv.thephpleague.com). 7 | 8 | ## Data 9 | 10 | The data is in the `dump` folder 11 | 12 | ### survey.csv 13 | 14 | This is the main file. Contains all results, stripped of referrer and email. 15 | 16 | ### framework_by_country.csv 17 | 18 | List of winning framework by country. Only countries with more than 50 votes are displayed. 19 | 20 | ### fw_score_personal.csv 21 | 22 | List of frameworks and their vote counts, ordered by vote, for the personal choice category. Includes "other". Could use some work filtering the "other" stuff and combining into the predefined values. 23 | 24 | ### fw_score_work.csv 25 | 26 | Same as above. Also still needs some cleaning. 27 | 28 | ## Helpers 29 | 30 | Helpers are files I generated to help you with manipulating the data, either in PHP or in R. 31 | 32 | ### PHP Helpers 33 | 34 | - `countries.php` returns an array of all countries in the survey, in order of appearance. The set is unique. 35 | 36 | - `fields.php` contains the full names of the fields of the header of the CSV file. The one in `dump` is normalized for easier querying in R, and as such does not contain full names, but shortened and uniqueified ones 37 | 38 | - `age_education.php` two functions that define age groups and education levels. Initially, Typeform put them in plan text into the fields of the CSV which wasted space. I replaced their full names with numeric references and built two functions to extract those names if needed. Note that the arrays are 1-based. 39 | 40 | ### CSV Helpers 41 | 42 | - `countries.csv` is a single-column no-header list of countries appearing in the results, in order of appearance. The set is unique. 43 | 44 | - `fields.csv` is a row of column names (see PHP Helpers -> `fields.php`) for why -------------------------------------------------------------------------------- /helpers/php/fields.php: -------------------------------------------------------------------------------- 1 | 'Id', 4 | 1 => 'Start Date', 5 | 2 => 'Submit Date', 6 | 3 => 'Network ID', 7 | 4 => 'Email', 8 | 5 => 'Age Group', 9 | 6 => 'Current Country of Residence', 10 | 7 => 'Years of experience building PHP applications', 11 | 8 => 'Years of programming experience in general', 12 | 9 => 'Level of Programming Education', 13 | 10 => 'How many frameworks do you have actual production experience with? Due to huge differences, different major versions count as several: e.g. ZF1 and ZF2 count for two, not one.', 14 | 11 => 'Choice', 15 | 12 => 'Other', 16 | 13 => 'Ease of use / Easy to get started', 17 | 14 => 'Large, helpful community', 18 | 15 => 'Huge body of available tutorials', 19 | 16 => 'Battle tested and bug free', 20 | 17 => 'Loads of built-in features', 21 | 18 => 'Forced by employer', 22 | 19 => 'Other', 23 | 20 => 'Why?', 24 | 21 => 'Choice', 25 | 22 => 'Other', 26 | 23 => 'Ease of use / Easy to get started', 27 | 24 => 'Large, helpful community', 28 | 25 => 'Huge body of available tutorials', 29 | 26 => 'Battle tested and bug free', 30 | 27 => 'Loads of built-in features', 31 | 28 => 'Other', 32 | 29 => 'Why?', 33 | 30 => 'Do you contribute to any frameworks? (CMS don\'t count)', 34 | 31 => 'Laravel', 35 | 32 => 'Yii 1', 36 | 33 => 'Yii 2', 37 | 34 => 'Zend Framework 1', 38 | 35 => 'Zend Framework 2', 39 | 36 => 'Symfony2', 40 | 37 => 'Phalcon', 41 | 38 => 'Aura', 42 | 39 => 'Slim', 43 | 40 => 'Silex', 44 | 41 => 'Webiny', 45 | 42 => 'CakePHP', 46 | 43 => 'FuelPHP', 47 | 44 => 'Kohana', 48 | 45 => 'CodeIgniter', 49 | 46 => 'Prado', 50 | 47 => 'PHPixie', 51 | 48 => 'Flight', 52 | 49 => 'Simple MVC Framework', 53 | 50 => 'Typo 3', 54 | 51 => 'Nette', 55 | 52 => 'Agavi', 56 | 53 => 'Other', 57 | 54 => 'ref', 58 | ); -------------------------------------------------------------------------------- /helpers/csv/countries.csv: -------------------------------------------------------------------------------- 1 | Slovenia 2 | France 3 | "United States" 4 | Turkey 5 | Canada 6 | Portugal 7 | Brazil 8 | "United Kingdom" 9 | Germany 10 | Poland 11 | "Russian Federation" 12 | Ghana 13 | Pakistan 14 | Kazakhstan 15 | Italy 16 | Nepal 17 | Serbia 18 | Spain 19 | Croatia 20 | Denmark 21 | Malaysia 22 | Greece 23 | Belarus 24 | Vietnam 25 | Romania 26 | Latvia 27 | Hungary 28 | Iran 29 | Lithuania 30 | Jordan 31 | Thailand 32 | Philippines 33 | Argentina 34 | Morocco 35 | "South Africa" 36 | Bahamas 37 | Netherlands 38 | "Czech Republic" 39 | India 40 | Sweden 41 | "Bosnia Herzegovina" 42 | Ecuador 43 | Ukraine 44 | Mexico 45 | Moldova 46 | Azerbaijan 47 | Indonesia 48 | Australia 49 | Armenia 50 | Lebanon 51 | Venezuela 52 | Slovakia 53 | Panama 54 | Switzerland 55 | Colombia 56 | Japan 57 | Bolivia 58 | Macedonia 59 | Bangladesh 60 | Nicaragua 61 | Albania 62 | Israel 63 | China 64 | Montenegro 65 | Belgium 66 | "Saudi Arabia" 67 | Austria 68 | "Sri Lanka" 69 | Algeria 70 | Chile 71 | Bulgaria 72 | "Ireland {Republic}" 73 | Afghanistan 74 | Tanzania 75 | Nigeria 76 | "New Zealand" 77 | Finland 78 | Senegal 79 | Norway 80 | "Not listed" 81 | Peru 82 | Tunisia 83 | Estonia 84 | "Costa Rica" 85 | Bahrain 86 | Laos 87 | Cambodia 88 | Taiwan 89 | "East Timor" 90 | "El Salvador" 91 | Uzbekistan 92 | "Korea South" 93 | "Trinidad & Tobago" 94 | Syria 95 | Egypt 96 | Haiti 97 | Uruguay 98 | Bhutan 99 | Andorra 100 | "Dominican Republic" 101 | "United Arab Emirates" 102 | Singapore 103 | Jamaica 104 | Luxembourg 105 | "Central African Rep" 106 | Cuba 107 | Georgia 108 | Cyprus 109 | Cameroon 110 | Angola 111 | Kyrgyzstan 112 | Kuwait 113 | "Myanmar, {Burma}" 114 | Malta 115 | Guatemala 116 | Kosovo 117 | Kenya 118 | Suriname 119 | "St Lucia" 120 | Malawi 121 | Iceland 122 | Mauritius 123 | Paraguay 124 | Madagascar 125 | Maldives 126 | Honduras 127 | "United StatesUnited Kingdom" 128 | Somalia 129 | "Ivory Coast" 130 | Mozambique 131 | "Congo {Democratic Rep}" 132 | Tajikistan 133 | Mauritania 134 | Mongolia 135 | Togo 136 | -------------------------------------------------------------------------------- /dump/fw_score_work.csv: -------------------------------------------------------------------------------- 1 | Framework,Votes 2 | Laravel,1659 3 | Symfony2,1067 4 | Nette,671 5 | CodeIgniter,597 6 | "Yii 2",504 7 | PHPixie,418 8 | "Yii 1",407 9 | "Zend Framework 2",390 10 | "Company Internal Framework",378 11 | "Zend Framework 1",274 12 | CakePHP,255 13 | "No Framework",243 14 | "We use a CMS for everything",203 15 | Phalcon,169 16 | Slim,79 17 | Silex,65 18 | "Simple MVC Framework",42 19 | "Typo 3",35 20 | Kohana,35 21 | FuelPHP,25 22 | "TYPO3 Flow",17 23 | Drupal,11 24 | Aura,10 25 | Magento,9 26 | SilverStripe,8 27 | "Nette Framework",8 28 | Prado,7 29 | Silverstripe,7 30 | "Agile Toolkit",5 31 | Wordpress,5 32 | "Symfony 1",4 33 | "SilverStripe Framework",3 34 | "Ruby on Rails",3 35 | "Fat-Free Framework",3 36 | Agavi,3 37 | Spring,3 38 | Bitrix,2 39 | "fat free framework",2 40 | silverstripe,2 41 | Agiletoolkit,2 42 | PhalconPHP,2 43 | "Drupal 7",2 44 | "Symfony 1.4",2 45 | WordPress,2 46 | "Cygnite PHP Framework",2 47 | "symfony 1",2 48 | drupal,2 49 | Jelix,1 50 | "Zend and Phalcon",1 51 | "Twilight (own build)",1 52 | Grav,1 53 | .Net,1 54 | "ClanCats Framework",1 55 | "F3 php",1 56 | F3,1 57 | "FatFree Framework",1 58 | SugarCRM,1 59 | bootstrap,1 60 | Flight,1 61 | cubex,1 62 | Elgg,1 63 | "Fat free",1 64 | Custom,1 65 | "Adobe Dreamweaver",1 66 | "ZF1, ZF2, Slim, CakePHP",1 67 | AOL/ATC,1 68 | "Spring - Java",1 69 | "PHP FatFree",1 70 | WYF,1 71 | "cygnite PHP framework",1 72 | Propietary,1 73 | "Own framework",1 74 | "laravel 5",1 75 | BulletPHP,1 76 | "Bitrix Framework",1 77 | flow,1 78 | Horde,1 79 | "Fat Free Framework",1 80 | "Laravel 3",1 81 | REST-in-PHP,1 82 | yolophp,1 83 | fatfree,1 84 | phreeze,1 85 | Lithium,1 86 | Yolo,1 87 | "Composer with components",1 88 | ".Net MVC",1 89 | Joomla,1 90 | "Home grown",1 91 | "CMS + Plugin System w/ Composer etc",1 92 | "Not working",1 93 | TYPO3.Flow,1 94 | Flow,1 95 | "Joomla Framework",1 96 | Seagull,1 97 | TOBA,1 98 | joomla,1 99 | "PHPLeague Route",1 100 | Ice,1 101 | flask,1 102 | "simplemvc framework",1 103 | Typo3,1 104 | Bootstrap,1 105 | "Fat Free",1 106 | Statamic,1 107 | Miolo,1 108 | "PainlessMVC on Github",1 109 | mine,1 110 | lithium,1 111 | "nodjs (express)",1 112 | "fatfree framework",1 113 | codecharge,1 114 | "ASP.NET MVC",1 115 | "Typo3 Flow",1 116 | "Mouf 2",1 117 | Fat-Free,1 118 | "Agile Toolkit (ATK4)",1 119 | Commercial,1 120 | "fat free php F3",1 121 | "own framework",1 122 | Webspell,1 123 | "Fat Free F3",1 124 | FatFreeFramework,1 125 | WAMP,1 126 | "Component Based",1 127 | FatFreePhp,1 128 | AgileToolkit,1 129 | Webiny,1 130 | "Don't use PHP anymore",1 131 | "PPI Framework",1 132 | "home made",1 133 | "Depends on the project",1 134 | FatFree,1 135 | Sifo,1 136 | "SilverStripe / Sapphire",1 137 | Restler,1 138 | Joomla!,1 139 | "Fat Free Framework (F3)",1 140 | -------------------------------------------------------------------------------- /dump/fw_score_personal.csv: -------------------------------------------------------------------------------- 1 | Framework,Votes 2 | Laravel,2112 3 | Symfony2,1005 4 | Nette,703 5 | "Yii 2",620 6 | CodeIgniter,482 7 | PHPixie,420 8 | "Zend Framework 2",346 9 | "No Framework",306 10 | "Yii 1",293 11 | Phalcon,231 12 | CakePHP,229 13 | "I use a CMS for all my work",176 14 | Slim,158 15 | Silex,142 16 | "Zend Framework 1",79 17 | "Company Internal Framework",65 18 | "Simple MVC Framework",53 19 | FuelPHP,27 20 | Kohana,22 21 | "Typo 3",20 22 | "TYPO3 Flow",16 23 | "We use a CMS for everything",14 24 | Drupal,9 25 | Aura,9 26 | "Nette Framework",9 27 | "Cygnite PHP Framework",6 28 | SilverStripe,6 29 | "Agile Toolkit",6 30 | "Fat-Free Framework",4 31 | WordPress,4 32 | "Ruby on Rails",4 33 | "Fat Free Framework",4 34 | "My own",3 35 | Magento,3 36 | "Fat Free",3 37 | Flight,3 38 | Prado,3 39 | Django,3 40 | ruby,2 41 | PhalconPHP,2 42 | Joomla,2 43 | "FatFree Framework",2 44 | Bitrix,2 45 | "Cygnite Framework",2 46 | yolophp,2 47 | Wordpress,2 48 | silverstripe,2 49 | "fat free framework",2 50 | "own framework",2 51 | Webiny,2 52 | drupal,2 53 | F3,2 54 | Spring,2 55 | Agavi,2 56 | Flow,2 57 | "custom made",1 58 | phreeze,1 59 | "Personal Framework",1 60 | "i use nodejs :)",1 61 | huge,1 62 | "Composer with components",1 63 | Yolo,1 64 | codeigniter,1 65 | Arhitect,1 66 | fatfree,1 67 | Grav,1 68 | "Fat-Free Framework (F3)",1 69 | Drupal7,1 70 | Flask,1 71 | nette,1 72 | dispatch,1 73 | Custom,1 74 | "Adobe Dreamweaver",1 75 | Concrete5,1 76 | Symfony1,1 77 | Zephyros,1 78 | "PHP Junkie",1 79 | Self-made,1 80 | Twilight,1 81 | Silverstripe,1 82 | REST-in-PHP,1 83 | Statamic,1 84 | Respect,1 85 | phalcon,1 86 | "Meteor JS",1 87 | "fat free",1 88 | "ZF1, ZF2, Slim, CakePHP",1 89 | "Custom built CMS by me",1 90 | bootstrap,1 91 | Jelix,1 92 | "ClanCats Framework",1 93 | "F3 php",1 94 | "Usually not PHP",1 95 | "No PHP as hobby",1 96 | "my own",1 97 | "Not using PHP for personal projects",1 98 | own,1 99 | ThinkPHP,1 100 | wordpress,1 101 | Sinatra,1 102 | Li3,1 103 | "Multiple frameworks, selection depends on type of project",1 104 | "A Custom Built Framework",1 105 | "I don't do personal projects in PHP",1 106 | BulletPHP,1 107 | "TYPO3 CMS or TYPO3 Neos",1 108 | "Fat free",1 109 | "Once again really depends on the project I'm doing",1 110 | Autarky,1 111 | "Don't use PHP anymore",1 112 | "PPI Framework",1 113 | Bluz,1 114 | Phly/Conduit,1 115 | Contao,1 116 | NodeJS,1 117 | "ruby on rails",1 118 | "Depends on what I'm doing - right tool for the job",1 119 | "self developed framework",1 120 | "Experimentally writing my own since years",1 121 | TYPO3.Flow,1 122 | Titon,1 123 | "RS Framework (my)",1 124 | Ice,1 125 | King23,1 126 | "Various, I try to vary the use of frameworks",1 127 | "Don't heve a prefered",1 128 | "PainlessMVC on Github",1 129 | "Mouf 2",1 130 | "SilverStripe Framework",1 131 | "Ruby on rails",1 132 | "Typo3 Flow",1 133 | "SilverStripe / Sapphire",1 134 | "Beats, Symfony2 extension",1 135 | FatFreeFramework,1 136 | "my own framework",1 137 | WAMP,1 138 | SpartanPHP,1 139 | "Myself builded CMS",1 140 | "Fat Free f3",1 141 | "Fat Free Framework (F3)",1 142 | "simplemvc framework",1 143 | Scabbia,1 144 | "PHP FatFree",1 145 | AOL/ATC,1 146 | mine,1 147 | custom,1 148 | "fat free php F3",1 149 | Agiletoolkit,1 150 | FatFreePhp,1 151 | AgileToolkit,1 152 | Tao,1 153 | Commercial,1 154 | "Agile Toolkit (ATK4)",1 155 | Ego,1 156 | "Own Framework",1 157 | "mini and the mini2",1 158 | "fatfree framework F3",1 159 | ATK,1 160 | -------------------------------------------------------------------------------- /helpers/php/countries.php: -------------------------------------------------------------------------------- 1 | 'Slovenia', 4 | 1 => 'France', 5 | 2 => 'United States', 6 | 3 => 'Turkey', 7 | 4 => 'Canada', 8 | 5 => 'Portugal', 9 | 6 => 'Brazil', 10 | 7 => 'United Kingdom', 11 | 8 => 'Germany', 12 | 9 => 'Poland', 13 | 10 => 'Russian Federation', 14 | 11 => 'Ghana', 15 | 12 => 'Pakistan', 16 | 13 => 'Kazakhstan', 17 | 14 => 'Italy', 18 | 15 => 'Nepal', 19 | 16 => 'Serbia', 20 | 17 => 'Spain', 21 | 18 => 'Croatia', 22 | 19 => 'Denmark', 23 | 20 => 'Malaysia', 24 | 21 => 'Greece', 25 | 22 => 'Belarus', 26 | 23 => 'Vietnam', 27 | 24 => 'Romania', 28 | 25 => 'Latvia', 29 | 26 => 'Hungary', 30 | 27 => 'Iran', 31 | 28 => 'Lithuania', 32 | 29 => 'Jordan', 33 | 30 => 'Thailand', 34 | 31 => 'Philippines', 35 | 32 => 'Argentina', 36 | 33 => 'Morocco', 37 | 34 => 'South Africa', 38 | 35 => 'Bahamas', 39 | 36 => 'Netherlands', 40 | 37 => 'Czech Republic', 41 | 38 => 'India', 42 | 39 => 'Sweden', 43 | 40 => 'Bosnia Herzegovina', 44 | 41 => 'Ecuador', 45 | 42 => 'Ukraine', 46 | 43 => 'Mexico', 47 | 44 => 'Moldova', 48 | 45 => 'Azerbaijan', 49 | 46 => 'Indonesia', 50 | 47 => 'Australia', 51 | 48 => 'Armenia', 52 | 49 => 'Lebanon', 53 | 50 => 'Venezuela', 54 | 51 => 'Slovakia', 55 | 52 => 'Panama', 56 | 53 => 'Switzerland', 57 | 54 => 'Colombia', 58 | 55 => 'Japan', 59 | 56 => 'Bolivia', 60 | 57 => 'Macedonia', 61 | 58 => 'Bangladesh', 62 | 59 => 'Nicaragua', 63 | 60 => 'Albania', 64 | 61 => 'Israel', 65 | 62 => 'China', 66 | 63 => 'Montenegro', 67 | 64 => 'Belgium', 68 | 65 => 'Saudi Arabia', 69 | 66 => 'Austria', 70 | 67 => 'Sri Lanka', 71 | 68 => 'Algeria', 72 | 69 => 'Chile', 73 | 70 => 'Bulgaria', 74 | 71 => 'Ireland {Republic}', 75 | 72 => 'Afghanistan', 76 | 73 => 'Tanzania', 77 | 74 => 'Nigeria', 78 | 75 => 'New Zealand', 79 | 76 => 'Finland', 80 | 77 => 'Senegal', 81 | 78 => 'Norway', 82 | 79 => 'Not listed', 83 | 80 => 'Peru', 84 | 81 => 'Tunisia', 85 | 82 => 'Estonia', 86 | 83 => 'Costa Rica', 87 | 84 => 'Bahrain', 88 | 85 => 'Laos', 89 | 86 => 'Cambodia', 90 | 87 => 'Taiwan', 91 | 88 => 'East Timor', 92 | 89 => 'El Salvador', 93 | 90 => 'Uzbekistan', 94 | 91 => 'Korea South', 95 | 92 => 'Trinidad & Tobago', 96 | 93 => 'Syria', 97 | 94 => 'Egypt', 98 | 95 => 'Haiti', 99 | 96 => 'Uruguay', 100 | 97 => 'Bhutan', 101 | 98 => 'Andorra', 102 | 99 => 'Dominican Republic', 103 | 100 => 'United Arab Emirates', 104 | 101 => 'Singapore', 105 | 102 => 'Jamaica', 106 | 103 => 'Luxembourg', 107 | 104 => 'Central African Rep', 108 | 105 => 'Cuba', 109 | 106 => 'Georgia', 110 | 107 => 'Cyprus', 111 | 108 => 'Cameroon', 112 | 109 => 'Angola', 113 | 110 => 'Kyrgyzstan', 114 | 111 => 'Kuwait', 115 | 112 => 'Myanmar, {Burma}', 116 | 113 => 'Malta', 117 | 114 => 'Guatemala', 118 | 115 => 'Kosovo', 119 | 116 => 'Kenya', 120 | 117 => 'Suriname', 121 | 118 => 'St Lucia', 122 | 119 => 'Malawi', 123 | 120 => 'Iceland', 124 | 121 => 'Mauritius', 125 | 122 => 'Paraguay', 126 | 123 => 'Madagascar', 127 | 124 => 'Maldives', 128 | 125 => 'Honduras', 129 | 126 => 'United StatesUnited Kingdom', 130 | 127 => 'Somalia', 131 | 128 => 'Ivory Coast', 132 | 129 => 'Mozambique', 133 | 130 => 'Congo {Democratic Rep}', 134 | 131 => 'Tajikistan', 135 | 132 => 'Mauritania', 136 | 133 => 'Mongolia', 137 | 134 => 'Togo', 138 | ); --------------------------------------------------------------------------------