Data Repositories
This report analyzed public data available from NOAA, USDA, AND FAO.
The data and files used in this analysis are available at the following
sites:
- GitHub: rdslack/soybeans
- R markdown notebook
- R Script
- RData file
- BigQuery NOAA/GSOD
- USDA National Agricultural Statistics Service (NASS)
- National soybean production and price data
- USDA International Production Assessment Division (IPAD)
- Global soybean production data
- FAO FAOSTAT
- Global crops production data
Soybean Data
Top 5 Soybean Producing Countries
Soybean Production - All States
- Source: Soybean Total and Yield per Acre by State:
NASS:
Years 2000-2022
- Table: prod_yield_all_states_2000_2022
- Metadata:
| Program |
STRING |
NULLABLE |
| Year |
INTEGER |
NULLABLE |
| Period |
STRING |
NULLABLE |
| Week_Ending |
STRING |
NULLABLE |
| Geo_Level |
STRING |
NULLABLE |
| State |
STRING |
NULLABLE |
| State_ANSI |
INTEGER |
NULLABLE |
| Ag_District |
STRING |
NULLABLE |
| Ag_District_Code |
STRING |
NULLABLE |
| County |
STRING |
NULLABLE |
| County_ANSI |
STRING |
NULLABLE |
| Zip_Code |
STRING |
NULLABLE |
| Region |
STRING |
NULLABLE |
| watershed_code |
INTEGER |
NULLABLE |
| Watershed |
STRING |
NULLABLE |
| Commodity |
STRING |
NULLABLE |
| Data_Item |
STRING |
NULLABLE |
| Domain |
STRING |
NULLABLE |
| Domain_Category |
STRING |
NULLABLE |
| Value |
FLOAT |
NULLABLE |
| CV____ |
STRING |
NULLABLE |
FIPS State Codes
- Table:
bigquery-public-data.census_utility.fips_codes_states
- Metadata:
| state_fips_code |
STRING |
NULLABLE |
| state_postal_abbreviation |
STRING |
NULLABLE |
| state_name |
STRING |
NULLABLE |
| state_gnisid |
STRING |
NULLABLE |
Top 11 Soybean Producing States
- Table: top_11_soy_states
- Separate table for Top 11 States to facilitate joins with weather
tables
- Metadata:
| state |
STRING |
NULLABLE |
| st_abv |
STRING |
NULLABLE |
| bushels_total |
FLOAT |
NULLABLE |
| pct_total_bushels |
FLOAT |
NULLABLE |
| cumulative_pct |
FLOAT |
NULLABLE |
Soybean Production and Yield per Acre for Top 11
States
- Table: prod_yield_top11_states
- Metadata:
| year |
INTEGER |
NULLABLE |
| state |
STRING |
NULLABLE |
| measure |
STRING |
NULLABLE |
| quantity |
FLOAT |
NULLABLE |
Soybean Monthly Prices for All States: 2000-2022
- USD per Bushel and Pct of Parity, by State: NASS:
Years 2000-2022
- Table: prices_bushel_pct_parity_2000-22
- Data Withheld: Price data for 61 observations were
withheld to avoid disclosing data for individual operations NASS
Glossary
- Metadata:
| Program |
STRING |
NULLABLE |
| Year |
INTEGER |
NULLABLE |
| Period |
STRING |
NULLABLE |
| Week_Ending |
STRING |
NULLABLE |
| Geo_Level |
STRING |
NULLABLE |
| State |
STRING |
NULLABLE |
| State_ANSI |
INTEGER |
NULLABLE |
| Ag_District |
STRING |
NULLABLE |
| Ag_District_Code |
STRING |
NULLABLE |
| County |
STRING |
NULLABLE |
| County_ANSI |
STRING |
NULLABLE |
| Zip_Code |
STRING |
NULLABLE |
| Region |
STRING |
NULLABLE |
| watershed_code |
INTEGER |
NULLABLE |
| Watershed |
STRING |
NULLABLE |
| Commodity |
STRING |
NULLABLE |
| Data_Item |
STRING |
NULLABLE |
| Domain |
STRING |
NULLABLE |
| Domain_Category |
STRING |
NULLABLE |
| Value |
STRING |
NULLABLE |
| CV____ |
STRING |
NULLABLE |
Soybean Monthly Prices for Top 11 States: 2000-2022
- Table: soybean_prices_monthly_top11_states
- Metadata:
| price_period |
DATE |
NULLABLE |
| state |
STRING |
NULLABLE |
| st_abv |
STRING |
NULLABLE |
| usd_bushel |
FLOAT |
NULLABLE |
Weather Data
Global NOAA GSOD Stations
- Table: bigquery-public-data.noaa_gsod.stations
- Metadata:
| usaf |
STRING |
NULLABLE |
| wban |
STRING |
NULLABLE |
| name |
STRING |
NULLABLE |
| country |
STRING |
NULLABLE |
| state |
STRING |
NULLABLE |
| call |
STRING |
NULLABLE |
| lat |
FLOAT |
NULLABLE |
| lon |
FLOAT |
NULLABLE |
| elev |
STRING |
NULLABLE |
| begin |
STRING |
NULLABLE |
| end |
STRING |
NULLABLE |
NOAA GSOD Stations for Top 11 Soybean States
- Table: soy_states_noaa_stns
- Metadata:
| usaf |
STRING |
NULLABLE |
| wban |
STRING |
NULLABLE |
| name |
STRING |
NULLABLE |
| state |
STRING |
NULLABLE |
| st_abv |
STRING |
NULLABLE |
Weather Data 2000-2022 for Top 11 Soybean States
- Table: weather_top11_states_nulls
- Metadata:
| station |
STRING |
NULLABLE |
| weather_date |
DATE |
NULLABLE |
| location |
STRING |
NULLABLE |
| state |
STRING |
NULLABLE |
| st_abv |
STRING |
NULLABLE |
| mean_temp |
FLOAT |
NULLABLE |
| max_temp |
FLOAT |
NULLABLE |
| min_temp |
FLOAT |
NULLABLE |
| precip |
FLOAT |
NULLABLE |
LS0tDQp0aXRsZTogIlNvYnllYW5zIFByb2plY3QgTWV0YSBEYXRhIg0KYXV0aG9yOiAiUmVlZCBTbGFjayINCmRhdGU6ICJVcGRhdGVkOiBgciBTeXMuRGF0ZSgpYCINCm91dHB1dDogDQogIGh0bWxfbm90ZWJvb2s6DQogICAgdGhlbWU6IGNlcnVsZWFuDQogICAgdG9jOiB0cnVlDQogICAgdG9jX2RlcHRoOiA0DQogICAgdG9jX2Zsb2F0OiB0cnVlDQogIA0KLS0tDQoNCmBgYHtjc3MsIGVjaG89RkFMU0V9DQpwLCBib2R5IHsNCiAgZm9udC1zaXplOiAxNnB4Ow0KfQ0KYGBgDQoNClwNCg0KIyMjICoqRGF0YSBSZXBvc2l0b3JpZXMqKg0KVGhpcyByZXBvcnQgYW5hbHl6ZWQgcHVibGljIGRhdGEgYXZhaWxhYmxlIGZyb20gTk9BQSwgVVNEQSwgQU5EIEZBTy4gVGhlIGRhdGEgYW5kIGZpbGVzIHVzZWQgaW4gdGhpcyBhbmFseXNpcyBhcmUgYXZhaWxhYmxlIGF0IHRoZSBmb2xsb3dpbmcgc2l0ZXM6IFwNCg0KLSBHaXRIdWI6IFtyZHNsYWNrL3NveWJlYW5zXShodHRwczovL2dpdGh1Yi5jb20vcmRzbGFjay9zb3liZWFucy5naXQpDQogIC0gUiBtYXJrZG93biBub3RlYm9vaw0KICAtIFIgU2NyaXB0IA0KICAtIFJEYXRhIGZpbGUNCi0gQmlnUXVlcnkgW05PQUEvR1NPRF0oaHR0cHM6Ly9jb25zb2xlLmNsb3VkLmdvb2dsZS5jb20vYmlncXVlcnk/d3M9ITFtNCExbTMhM20yITFzYmlncXVlcnktcHVibGljLWRhdGEhMnNub2FhX2dzb2QpDQogIC0gV2VhdGhlciBkYXRhDQotIFVTREEgTmF0aW9uYWwgQWdyaWN1bHR1cmFsIFN0YXRpc3RpY3MgU2VydmljZSBbKE5BU1MpXShuYXNzLnVzZGEuZ292KQ0KICAtIE5hdGlvbmFsIHNveWJlYW4gcHJvZHVjdGlvbiBhbmQgcHJpY2UgZGF0YQ0KLSBVU0RBIEludGVybmF0aW9uYWwgUHJvZHVjdGlvbiBBc3Nlc3NtZW50IERpdmlzaW9uIFsoSVBBRCldKGh0dHBzOi8vaXBhZC5mYXMudXNkYS5nb3YvY3JvcGV4cGxvcmVyL2Nyb3B2aWV3L2NvbW1vZGl0eVZpZXcuYXNweD9jcm9waWQ9MjIyMjAwMCZzZWxfeWVhcj0yMDIyJnJhbmtieT1Qcm9kdWN0aW9uKQ0KICAtIEdsb2JhbCBzb3liZWFuIHByb2R1Y3Rpb24gZGF0YQ0KLSBGQU8gW0ZBT1NUQVRdKGh0dHBzOi8vd3d3LmZhby5vcmcvZmFvc3RhdC9lbi8jZGF0YS9RQ0wpDQogIC0gR2xvYmFsIGNyb3BzIHByb2R1Y3Rpb24gZGF0YQ0KDQoNCiMjIyAqKlNveWJlYW4gRGF0YSoqDQogXA0KDQojIyMjICpUb3AgMTAgR2xvYmFsIENyb3BzKg0KLSAqKlNvdXJjZToqKiBGb29kIGFuZCBBZ3JpY3VsdHVyZSBPcmdhbml6YXRpb24gWyhGQU8pXShodHRwczovL3d3dy5mYW8ub3JnL2Zhb3N0YXQvZW4vI2RhdGEvUUNMKSBcDQoNCi0gKipNZXRhZGF0YToqKg0KICAgICsgfEZpZWxkIE5hbWV8VHlwZXwNCnw6LXw6LXwNCnxjcm9wfFNUUklOR3wNCnx0b25zfElOVEVHRVJ8DQp8YmlsbGlvbl90b25zfEZMT0FUfA0KDQoNCiMjIyMgKlRvcCA1IFNveWJlYW4gUHJvZHVjaW5nIENvdW50cmllcyoNCi0gKipTb3VyY2U6KiogVVNEQSBJbnRlcm5hdGlvbmFsIFByb2R1Y3Rpb24gQXNzZXNzbWVudCBEaXZpc2lvbiBbKElQQUQpXShodHRwczovL2lwYWQuZmFzLnVzZGEuZ292L2Nyb3BleHBsb3Jlci9jcm9wdmlldy9jb21tb2RpdHlWaWV3LmFzcHg/Y3JvcGlkPTIyMjIwMDAmc2VsX3llYXI9MjAyMiZyYW5rYnk9UHJvZHVjdGlvbikNCg0KLSAqKk1ldGFkYXRhOioqDQogICAgKyB8RmllbGQgTmFtZXxUeXBlfA0KfDotfDotfA0KfHRvcDVfY291bnRyaWVzfFNUUklOR3wNCnx0b3A1X2NvdW50cmllc19wY3R8SU5URUdFUnwNCg0KDQoNCiMjIyMgKlNveWJlYW4gUHJvZHVjdGlvbiAtIEFsbCBTdGF0ZXMqIFwNCg0KICAtICoqU291cmNlOiBTb3liZWFuIFRvdGFsIGFuZCBZaWVsZCBwZXIgQWNyZSBieSBTdGF0ZToqKiBbTkFTUzogWWVhcnMgMjAwMC0yMDIyXShodHRwczovL3F1aWNrc3RhdHMubmFzcy51c2RhLmdvdi9yZXN1bHRzLzE3RUZEOTczLUE1QTktM0RFNS04QjM3LTZBMDM5MjI4N0ZFQykNCiAgLSAqKlRhYmxlOioqIHByb2RfeWllbGRfYWxsX3N0YXRlc18yMDAwXzIwMjIgDQogIC0gKipNZXRhZGF0YToqKg0KICAgICAgKyB8RmllbGQgTmFtZXxUeXBlfE1vZGV8DQp8Oi18Oi18Oi18DQp8UHJvZ3JhbXxTVFJJTkd8TlVMTEFCTEV8DQp8WWVhcnxJTlRFR0VSfE5VTExBQkxFfA0KfFBlcmlvZHxTVFJJTkd8TlVMTEFCTEV8DQp8V2Vla19FbmRpbmd8U1RSSU5HfE5VTExBQkxFfA0KfEdlb19MZXZlbHxTVFJJTkd8TlVMTEFCTEV8DQp8U3RhdGV8U1RSSU5HfE5VTExBQkxFfA0KfFN0YXRlX0FOU0l8SU5URUdFUnxOVUxMQUJMRXwNCnxBZ19EaXN0cmljdHxTVFJJTkd8TlVMTEFCTEV8DQp8QWdfRGlzdHJpY3RfQ29kZXxTVFJJTkd8TlVMTEFCTEV8DQp8Q291bnR5fFNUUklOR3xOVUxMQUJMRXwNCnxDb3VudHlfQU5TSXxTVFJJTkd8TlVMTEFCTEV8DQp8WmlwX0NvZGV8U1RSSU5HfE5VTExBQkxFfA0KfFJlZ2lvbnxTVFJJTkd8TlVMTEFCTEV8DQp8d2F0ZXJzaGVkX2NvZGV8SU5URUdFUnxOVUxMQUJMRXwNCnxXYXRlcnNoZWR8U1RSSU5HfE5VTExBQkxFfA0KfENvbW1vZGl0eXxTVFJJTkd8TlVMTEFCTEV8DQp8RGF0YV9JdGVtfFNUUklOR3xOVUxMQUJMRXwNCnxEb21haW58U1RSSU5HfE5VTExBQkxFfA0KfERvbWFpbl9DYXRlZ29yeXxTVFJJTkd8TlVMTEFCTEV8DQp8VmFsdWV8RkxPQVR8TlVMTEFCTEV8DQp8Q1ZfX19ffFNUUklOR3xOVUxMQUJMRQ0KXA0KDQojIyMjIEZJUFMgU3RhdGUgQ29kZXMNCg0KLSAqKlRhYmxlOioqIGJpZ3F1ZXJ5LXB1YmxpYy1kYXRhLmNlbnN1c191dGlsaXR5LmZpcHNfY29kZXNfc3RhdGVzXA0KLSAqKk1ldGFkYXRhOioqDQogICsgfEZpZWxkIE5hbWV8VHlwZXxNb2RlfA0KfDotfDotfDotfA0KfHN0YXRlX2ZpcHNfY29kZXxTVFJJTkd8TlVMTEFCTEV8DQp8c3RhdGVfcG9zdGFsX2FiYnJldmlhdGlvbnxTVFJJTkd8TlVMTEFCTEV8DQp8c3RhdGVfbmFtZXxTVFJJTkd8TlVMTEFCTEV8DQp8c3RhdGVfZ25pc2lkfFNUUklOR3xOVUxMQUJMRXwNClwNCg0KIyMjIyAqVG9wIDExIFNveWJlYW4gUHJvZHVjaW5nIFN0YXRlcypcDQoNCi0gKipUYWJsZToqKiB0b3BfMTFfc295X3N0YXRlcw0KICArIFNlcGFyYXRlIHRhYmxlIGZvciBUb3AgMTEgU3RhdGVzIHRvIGZhY2lsaXRhdGUgam9pbnMgd2l0aCB3ZWF0aGVyIHRhYmxlcw0KLSAqKk1ldGFkYXRhOioqDQogICsgfEZpZWxkIE5hbWV8VHlwZXxNb2RlfA0KfDotfDotfDotfA0KfHN0YXRlfFNUUklOR3xOVUxMQUJMRXwNCnxzdF9hYnZ8U1RSSU5HfE5VTExBQkxFfA0KfGJ1c2hlbHNfdG90YWx8RkxPQVR8TlVMTEFCTEV8DQp8cGN0X3RvdGFsX2J1c2hlbHN8RkxPQVR8TlVMTEFCTEV8DQp8Y3VtdWxhdGl2ZV9wY3R8RkxPQVR8TlVMTEFCTEV8DQpcDQoNCiMjIyMgKlNveWJlYW4gUHJvZHVjdGlvbiBhbmQgWWllbGQgcGVyIEFjcmUgZm9yIFRvcCAxMSBTdGF0ZXMqXA0KDQotICoqVGFibGU6KiogcHJvZF95aWVsZF90b3AxMV9zdGF0ZXMNCi0gKipNZXRhZGF0YToqKg0KICArIHxGaWVsZCBOYW1lfFR5cGV8TW9kZXwNCnw6LXw6LXw6LXwNCnx5ZWFyfElOVEVHRVJ8TlVMTEFCTEV8DQp8c3RhdGV8U1RSSU5HfE5VTExBQkxFfA0KfG1lYXN1cmV8U1RSSU5HfE5VTExBQkxFfA0KfHF1YW50aXR5fEZMT0FUfE5VTExBQkxFfA0KXA0KICAgIA0KIyMjIyAqU295YmVhbiBNb250aGx5IFByaWNlcyBmb3IgQWxsIFN0YXRlczogMjAwMC0yMDIyKg0KICAgIA0KICAtICoqVVNEIHBlciBCdXNoZWwgYW5kIFBjdCBvZiBQYXJpdHksIGJ5IFN0YXRlOioqIFtOQVNTOiBZZWFycyAyMDAwLTIwMjJdKGh0dHBzOi8vcXVpY2tzdGF0cy5uYXNzLnVzZGEuZ292L3Jlc3VsdHMvODQ5RkMxM0MtRUVDQS0zNDc4LUJBMkUtMzQ5RTVGQjg1Q0ExKQ0KICAtICoqVGFibGU6KiogcHJpY2VzX2J1c2hlbF9wY3RfcGFyaXR5XzIwMDAtMjIgDQogIC0gKipEYXRhIFdpdGhoZWxkOioqIFByaWNlIGRhdGEgZm9yIDYxIG9ic2VydmF0aW9ucyB3ZXJlIHdpdGhoZWxkIHRvIGF2b2lkIGRpc2Nsb3NpbmcgZGF0YSBmb3IgaW5kaXZpZHVhbCBvcGVyYXRpb25zIFtOQVNTIEdsb3NzYXJ5XShodHRwczovL3F1aWNrc3RhdHMubmFzcy51c2RhLmdvdi9zcmMvZ2xvc3NhcnkucGRmKQ0KICAtICoqTWV0YWRhdGE6KioNCiAgICArIHxGaWVsZCBOYW1lfFR5cGV8TW9kZXwNCnw6LXw6LXw6LXwNCnxQcm9ncmFtfFNUUklOR3xOVUxMQUJMRXwNCnxZZWFyfElOVEVHRVJ8TlVMTEFCTEV8DQp8UGVyaW9kfFNUUklOR3xOVUxMQUJMRXwNCnxXZWVrX0VuZGluZ3xTVFJJTkd8TlVMTEFCTEV8DQp8R2VvX0xldmVsfFNUUklOR3xOVUxMQUJMRXwNCnxTdGF0ZXxTVFJJTkd8TlVMTEFCTEV8DQp8U3RhdGVfQU5TSXxJTlRFR0VSfE5VTExBQkxFfA0KfEFnX0Rpc3RyaWN0fFNUUklOR3xOVUxMQUJMRXwNCnxBZ19EaXN0cmljdF9Db2RlfFNUUklOR3xOVUxMQUJMRXwNCnxDb3VudHl8U1RSSU5HfE5VTExBQkxFfA0KfENvdW50eV9BTlNJfFNUUklOR3xOVUxMQUJMRXwNCnxaaXBfQ29kZXxTVFJJTkd8TlVMTEFCTEV8DQp8UmVnaW9ufFNUUklOR3xOVUxMQUJMRXwNCnx3YXRlcnNoZWRfY29kZXxJTlRFR0VSfE5VTExBQkxFfA0KfFdhdGVyc2hlZHxTVFJJTkd8TlVMTEFCTEV8DQp8Q29tbW9kaXR5fFNUUklOR3xOVUxMQUJMRXwNCnxEYXRhX0l0ZW18U1RSSU5HfE5VTExBQkxFfA0KfERvbWFpbnxTVFJJTkd8TlVMTEFCTEV8DQp8RG9tYWluX0NhdGVnb3J5fFNUUklOR3xOVUxMQUJMRXwNCnxWYWx1ZXxTVFJJTkd8TlVMTEFCTEV8DQp8Q1ZfX19ffFNUUklOR3xOVUxMQUJMRQ0KXA0KDQojIyMjICpTb3liZWFuIE1vbnRobHkgUHJpY2VzIGZvciBUb3AgMTEgU3RhdGVzOiAyMDAwLTIwMjIqDQogICAgDQogIC0gKipUYWJsZToqKiBzb3liZWFuX3ByaWNlc19tb250aGx5X3RvcDExX3N0YXRlcw0KICAtICoqTWV0YWRhdGE6KioNCiAgICArIHxGaWVsZCBOYW1lfFR5cGV8TW9kZXwNCnw6LXw6LXw6LXwNCnxwcmljZV9wZXJpb2R8REFURXxOVUxMQUJMRXwNCnxzdGF0ZXxTVFJJTkd8TlVMTEFCTEV8DQp8c3RfYWJ2fFNUUklOR3xOVUxMQUJMRXwNCnx1c2RfYnVzaGVsfEZMT0FUfE5VTExBQkxFfA0KDQpcDQoNCiAgICANCiMjIyAqKldlYXRoZXIgRGF0YSoqDQotICoqU291cmNlOiBCaWdRdWVyeSBQdWJsaWMgRGF0YXNldDoqKiBbbm9hYV9nc29kXShjb25zb2xlLmNsb3VkLmdvb2dsZS5jb20vYmlncXVlcnk/d3M9ITFtNCExbTMhM20yITFzYmlncXVlcnktcHVibGljLWRhdGEhMnNub2FhX2dzb2QpICANCiAgLSBHU09EIFtEZWZpbml0aW9uc10oaHR0cHM6Ly93d3cubmNlaS5ub2FhLmdvdi9kYXRhL2dsb2JhbC1zdW1tYXJ5LW9mLXRoZS1kYXkvZG9jL3JlYWRtZS50eHQpDQpcDQoNCiMjIyMgKkdsb2JhbCBOT0FBIEdTT0QgU3RhdGlvbnMqIFwNCg0KICAtICoqVGFibGU6KiogYmlncXVlcnktcHVibGljLWRhdGEubm9hYV9nc29kLnN0YXRpb25zDQogIC0gKipNZXRhZGF0YToqKg0KICAgICsgfEZpZWxkIE5hbWV8VHlwZXxNb2RlfA0KfDotfDotfDotfA0KfHVzYWZ8U1RSSU5HfE5VTExBQkxFfA0KfHdiYW58U1RSSU5HfE5VTExBQkxFfA0KfG5hbWV8U1RSSU5HfE5VTExBQkxFfA0KfGNvdW50cnl8U1RSSU5HfE5VTExBQkxFfA0KfHN0YXRlfFNUUklOR3xOVUxMQUJMRXwNCnxjYWxsfFNUUklOR3xOVUxMQUJMRXwNCnxsYXR8RkxPQVR8TlVMTEFCTEV8DQp8bG9ufEZMT0FUfE5VTExBQkxFfA0KfGVsZXZ8U1RSSU5HfE5VTExBQkxFfA0KfGJlZ2lufFNUUklOR3xOVUxMQUJMRXwNCnxlbmR8U1RSSU5HfE5VTExBQkxFfA0KXA0KDQojIyMjICpOT0FBIEdTT0QgU3RhdGlvbnMgZm9yIFRvcCAxMSBTb3liZWFuIFN0YXRlcyogXA0KDQogIC0gKipUYWJsZToqKiBzb3lfc3RhdGVzX25vYWFfc3Rucw0KICAtICoqTWV0YWRhdGE6KioNCiAgICArIHxGaWVsZCBOYW1lfFR5cGV8TW9kZXwNCnw6LXw6LXw6LXwNCnx1c2FmfFNUUklOR3xOVUxMQUJMRXwNCnx3YmFufFNUUklOR3xOVUxMQUJMRXwNCnxuYW1lfFNUUklOR3xOVUxMQUJMRXwNCnxzdGF0ZXxTVFJJTkd8TlVMTEFCTEV8DQp8c3RfYWJ2fFNUUklOR3xOVUxMQUJMRXwNCg0KXA0KDQojIyMjICpXZWF0aGVyIERhdGEgMjAwMC0yMDIyIGZvciBUb3AgMTEgU295YmVhbiBTdGF0ZXMqIFwNCg0KICAtICoqVGFibGU6Kiogd2VhdGhlcl90b3AxMV9zdGF0ZXNfbnVsbHMNCiAgLSAqKk1ldGFkYXRhOioqDQogICAgKyB8RmllbGQgTmFtZXxUeXBlfE1vZGV8DQp8Oi18Oi18Oi18DQp8c3RhdGlvbnxTVFJJTkd8TlVMTEFCTEV8DQp8d2VhdGhlcl9kYXRlfERBVEV8TlVMTEFCTEV8DQp8bG9jYXRpb258U1RSSU5HfE5VTExBQkxFfA0KfHN0YXRlfFNUUklOR3xOVUxMQUJMRXwNCnxzdF9hYnZ8U1RSSU5HfE5VTExBQkxFfA0KfG1lYW5fdGVtcHxGTE9BVHxOVUxMQUJMRXwNCnxtYXhfdGVtcHxGTE9BVHxOVUxMQUJMRXwNCnxtaW5fdGVtcHxGTE9BVHxOVUxMQUJMRXwNCnxwcmVjaXB8RkxPQVR8TlVMTEFCTEV8DQoNClwNClw=