diff --git a/cookbooks/8-organizations/1-GRID-preview.ipynb b/cookbooks/8-organizations/1-Organization-data-preview.ipynb
similarity index 81%
rename from cookbooks/8-organizations/1-GRID-preview.ipynb
rename to cookbooks/8-organizations/1-Organization-data-preview.ipynb
index 7cdc0d17..ee0a14f7 100644
--- a/cookbooks/8-organizations/1-GRID-preview.ipynb
+++ b/cookbooks/8-organizations/1-Organization-data-preview.ipynb
@@ -12,11 +12,9 @@
"\n",
"This tutorial provides an overview of the [Organizations data source](https://docs.dimensions.ai/dsl/datasource-organizations.html) available via the [Dimensions Analytics API](https://docs.dimensions.ai/dsl/). \n",
"\n",
- "Organizations data in Dimensions is based on [GRID](https://grid.ac/) - the Global Research Identifiers Database. \n",
- "\n",
"The topics covered in this notebook are:\n",
"\n",
- "* How to align your affiliation data with GRID/Dimensions using the API [disambiguation service](https://docs.dimensions.ai/dsl/functions.html#function-extract-affiliations) \n",
+ "* How to align your affiliation data with Dimensions using the API [disambiguation service](https://docs.dimensions.ai/dsl/functions.html#function-extract-affiliations) \n",
"* How to retrieve organizations metadata using the [search fields](https://docs.dimensions.ai/dsl/datasource-organizations.html) available\n",
"* How to use the [schema API](https://docs.dimensions.ai/dsl/data-sources.html#metadata-api) to obtain some statistics about the Organizations data available \n",
" \n"
@@ -33,7 +31,7 @@
"text": [
"==\n",
"CHANGELOG\n",
- "This notebook was last run on Jan 25, 2022\n",
+ "This notebook was last run on Sep 10, 2025\n",
"==\n"
]
}
@@ -68,19 +66,9 @@
"text/html": [
" \n",
+ " \n",
" "
]
},
@@ -100,8 +88,8 @@
"text": [
"==\n",
"Logging in..\n",
- "\u001b[2mDimcli - Dimensions API Client (v0.9.6)\u001b[0m\n",
- "\u001b[2mConnected to: - DSL v2.0\u001b[0m\n",
+ "\u001b[2mDimcli - Dimensions API Client (v1.4)\u001b[0m\n",
+ "\u001b[2mConnected to: - DSL v2.12\u001b[0m\n",
"\u001b[2mMethod: dsl.ini file\u001b[0m\n"
]
}
@@ -154,7 +142,7 @@
"id": "8zxcg9gPgZAv"
},
"source": [
- "## 1. Matching affiliation data to GRID IDs using `extract_affiliations`\n",
+ "## 1. Matching affiliation data to Dimensions Organization IDs using `extract_affiliations`\n",
"\n",
"The API function `extract_affiliations` ([docs](https://docs.dimensions.ai/dsl/functions.html#function-extract-affiliations)) can be used to enrich private datasets including non-disambiguated organizations data with Dimensions IDs, so to then take advantage of the wealth of linked data available in Dimensions.\n",
"\n",
@@ -194,7 +182,7 @@
"id": "AcAypP1agx3M"
},
"source": [
- "We want to look up GRID identifiers for those affiliations using the **structured** affiliation matching. "
+ "We want to look up Dimensions Organization identifiers for those affiliations using the **structured** affiliation matching. "
]
},
{
@@ -239,7 +227,7 @@
{
"data": {
"application/vnd.jupyter.widget-view+json": {
- "model_id": "c54ddb7d16ce461ea6ac85ef57b69d7c",
+ "model_id": "8549169e2ba046c29ab3adeb6a09c465",
"version_major": 2,
"version_minor": 0
},
@@ -263,7 +251,7 @@
"{'results': [{'geo': {'cities': [], 'countries': [], 'states': []}, 'input': {'city': '', 'country': '', 'name': 'P.G. Department of Zoology and Research Centre, Shri Shiv Chhatrapati College of Arts, Commerce and Science, Junnar 410502, Pune, India.', 'state': ''}, 'institutes': []}]}\n",
"{'results': [{'geo': {'cities': [{'geonames_id': 1835848, 'name': 'Seoul'}], 'countries': [{'code': 'KR', 'geonames_id': 1835841, 'name': 'South Korea'}], 'states': [{'code': None, 'geonames_id': 1835847, 'name': 'Seoul'}]}, 'input': {'city': 'Seoul', 'country': 'South Korea', 'name': 'Sungkyunkwan University', 'state': ''}, 'institutes': [{'institute': {'city': 'Seoul', 'country': 'South Korea', 'id': 'grid.264381.a', 'name': 'Sungkyunkwan University', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}\n",
"{'results': [{'geo': {'cities': [{'geonames_id': 1259229, 'name': 'Pune'}], 'countries': [{'code': 'IN', 'geonames_id': 1269750, 'name': 'India'}], 'states': [{'code': None, 'geonames_id': 1264418, 'name': 'Maharashtra'}]}, 'input': {'city': 'Pune', 'country': 'India', 'name': 'Centre for Materials for Electronics Technology', 'state': ''}, 'institutes': [{'institute': {'city': 'Pune', 'country': 'India', 'id': 'grid.494569.3', 'name': 'Centre for Materials for Electronics Technology', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}\n",
- "{'results': [{'geo': {'cities': [{'geonames_id': 2988507, 'name': 'Paris'}], 'countries': [{'code': 'FR', 'geonames_id': 3017382, 'name': 'France'}], 'states': [{'code': None, 'geonames_id': 3012874, 'name': 'Ile-de-France'}]}, 'input': {'city': '', 'country': '', 'name': 'Institut Necker-Enfants Malades (INEM), INSERM U1151-CNRS UMR8253, Université de Paris, Faculté de Médecine, 156 rue de Vaugirard, 75730 Paris Cedex 15, France', 'state': ''}, 'institutes': [{'institute': {'city': 'Paris', 'country': 'France', 'id': 'grid.508487.6', 'name': 'University of Paris', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}\n"
+ "{'results': [{'geo': {'cities': [{'geonames_id': 2988507, 'name': 'Paris'}], 'countries': [{'code': 'FR', 'geonames_id': 3017382, 'name': 'France'}], 'states': [{'code': None, 'geonames_id': 3012874, 'name': 'Ile-de-France'}]}, 'input': {'city': '', 'country': '', 'name': 'Institut Necker-Enfants Malades (INEM), INSERM U1151-CNRS UMR8253, Université de Paris, Faculté de Médecine, 156 rue de Vaugirard, 75730 Paris Cedex 15, France', 'state': ''}, 'institutes': [{'institute': {'city': 'Paris', 'country': 'France', 'id': 'grid.508487.6', 'name': 'Université Paris Cité', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}\n"
]
}
],
@@ -327,7 +315,7 @@
{
"data": {
"application/vnd.jupyter.widget-view+json": {
- "model_id": "f58062b2b4a244ba9df163a9a325f17b",
+ "model_id": "225073d7b7cb409b82a7cd252c729cc9",
"version_major": 2,
"version_minor": 0
},
@@ -351,7 +339,7 @@
"{'results': [{'input': {'affiliation': 'P.G. Department of Zoology and Research Centre, Shri Shiv Chhatrapati College of Arts, Commerce and Science, Junnar 410502, Pune, India. '}, 'matches': [{'affiliation_part': 'P.G. Department of Zoology and Research Centre, Shri Shiv Chhatrapati College of Arts, Commerce and Science, Junnar 410502, Pune, India', 'geo': {'cities': [{'geonames_id': 1259229, 'name': 'Pune'}], 'countries': [{'code': 'IN', 'geonames_id': 1269750, 'name': 'India'}], 'states': [{'code': None, 'geonames_id': 1264418, 'name': 'Maharashtra'}]}, 'institutes': []}]}]}\n",
"{'results': [{'input': {'affiliation': 'Sungkyunkwan University Seoul South Korea'}, 'matches': [{'affiliation_part': 'Sungkyunkwan University Seoul South Korea', 'geo': {'cities': [{'geonames_id': 1835848, 'name': 'Seoul'}], 'countries': [{'code': 'KR', 'geonames_id': 1835841, 'name': 'South Korea'}], 'states': [{'code': None, 'geonames_id': 1835847, 'name': 'Seoul'}]}, 'institutes': [{'institute': {'city': 'Seoul', 'country': 'South Korea', 'id': 'grid.264381.a', 'name': 'Sungkyunkwan University', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}]}\n",
"{'results': [{'input': {'affiliation': 'Centre for Materials for Electronics Technology Pune India'}, 'matches': [{'affiliation_part': 'Centre for Materials for Electronics Technology Pune India', 'geo': {'cities': [{'geonames_id': 1259229, 'name': 'Pune'}], 'countries': [{'code': 'IN', 'geonames_id': 1269750, 'name': 'India'}], 'states': [{'code': None, 'geonames_id': 1264418, 'name': 'Maharashtra'}]}, 'institutes': [{'institute': {'city': 'Pune', 'country': 'India', 'id': 'grid.494569.3', 'name': 'Centre for Materials for Electronics Technology', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}]}\n",
- "{'results': [{'input': {'affiliation': 'Institut Necker-Enfants Malades (INEM), INSERM U1151-CNRS UMR8253, Université de Paris, Faculté de Médecine, 156 rue de Vaugirard, 75730 Paris Cedex 15, France '}, 'matches': [{'affiliation_part': 'Institut Necker-Enfants Malades (INEM), INSERM U1151-CNRS UMR8253, Université de Paris, Faculté de Médecine, 156 rue de Vaugirard, 75730 Paris Cedex 15, France', 'geo': {'cities': [{'geonames_id': 2988507, 'name': 'Paris'}], 'countries': [{'code': 'FR', 'geonames_id': 3017382, 'name': 'France'}], 'states': [{'code': None, 'geonames_id': 3012874, 'name': 'Ile-de-France'}]}, 'institutes': [{'institute': {'city': 'Paris', 'country': 'France', 'id': 'grid.508487.6', 'name': 'University of Paris', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}]}\n"
+ "{'results': [{'input': {'affiliation': 'Institut Necker-Enfants Malades (INEM), INSERM U1151-CNRS UMR8253, Université de Paris, Faculté de Médecine, 156 rue de Vaugirard, 75730 Paris Cedex 15, France '}, 'matches': [{'affiliation_part': 'Institut Necker-Enfants Malades (INEM), INSERM U1151-CNRS UMR8253, Université de Paris, Faculté de Médecine, 156 rue de Vaugirard, 75730 Paris Cedex 15, France', 'geo': {'cities': [{'geonames_id': 2988507, 'name': 'Paris'}], 'countries': [{'code': 'FR', 'geonames_id': 3017382, 'name': 'France'}], 'states': [{'code': None, 'geonames_id': 3012874, 'name': 'Ile-de-France'}]}, 'institutes': [{'institute': {'city': 'Paris', 'country': 'France', 'id': 'grid.508487.6', 'name': 'Université Paris Cité', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}]}\n"
]
}
],
@@ -384,7 +372,7 @@
"toc-hr-collapsed": false
},
"source": [
- "## 2. Searching GRID organizations \n",
+ "## 2. Searching the API for organizations \n",
"\n",
"This can be done using full text search and/or fielded search. \n"
]
@@ -429,8 +417,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "Returned Organizations: 10 (total = 247)\n",
- "\u001b[2mTime: 0.56s\u001b[0m\n"
+ "Returned Organizations: 10 (total = 352)\n",
+ "\u001b[2mTime: 5.56s\u001b[0m\n"
]
},
{
@@ -454,189 +442,144 @@
" \n",
"
\n",
"
\n",
- "
acronym
\n",
- "
city_name
\n",
- "
country_name
\n",
"
id
\n",
- "
latitude
\n",
- "
linkout
\n",
- "
longitude
\n",
"
name
\n",
- "
state_name
\n",
+ "
country_code
\n",
+ "
country_name
\n",
"
types
\n",
+ "
city_name
\n",
+ "
state_name
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
- "
MSK
\n",
- "
New York
\n",
+ "
grid.798367.4
\n",
+ "
Bank of New York
\n",
+ "
US
\n",
"
United States
\n",
- "
grid.51462.34
\n",
- "
40.764194
\n",
- "
[https://www.mskcc.org/]
\n",
- "
-73.956100
\n",
- "
Memorial Sloan Kettering Cancer Center
\n",
- "
New York
\n",
- "
[Healthcare]
\n",
+ "
[Company]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
"
\n",
"
\n",
"
1
\n",
- "
NaN
\n",
- "
Brooklyn
\n",
+ "
grid.798343.2
\n",
+ "
Research Foundation of University of New York
\n",
+ "
US
\n",
"
United States
\n",
- "
grid.511519.8
\n",
- "
40.691113
\n",
- "
[https://www.vascularnyc.com/]
\n",
- "
-73.963890
\n",
- "
Vascular Institute of New York
\n",
- "
New York
\n",
- "
[Healthcare]
\n",
+ "
[Education]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
"
\n",
"
\n",
"
2
\n",
- "
NYPC
\n",
- "
New York
\n",
+ "
grid.797561.b
\n",
+ "
New York Hospital-Cornell Medical Center
\n",
+ "
US
\n",
"
United States
\n",
- "
grid.511327.3
\n",
- "
40.804780
\n",
- "
[https://www.nyproton.com/]
\n",
- "
-73.934070
\n",
- "
New York Proton Center
\n",
+ "
[Healthcare]
\n",
+ "
New York
\n",
"
New York
\n",
- "
[Facility]
\n",
"
\n",
"
\n",
"
3
\n",
- "
NaN
\n",
- "
New York
\n",
+ "
grid.796770.8
\n",
+ "
Research Foundation of City University of New ...
\n",
+ "
US
\n",
"
United States
\n",
- "
grid.511090.c
\n",
- "
40.755230
\n",
- "
[https://www.journalism.cuny.edu/]
\n",
- "
-73.988830
\n",
- "
Craig Newmark Graduate School of Journalism at...
\n",
- "
New York
\n",
- "
[Education]
\n",
+ "
[Other]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
"
\n",
"
\n",
"
4
\n",
- "
CMS
\n",
- "
New York
\n",
+ "
grid.796173.d
\n",
+ "
Bank of New York Mellon Trust Co NA
\n",
+ "
US
\n",
"
United States
\n",
- "
grid.510787.c
\n",
- "
40.761470
\n",
- "
[https://cmsny.org/]
\n",
- "
-73.965450
\n",
- "
Center for Migration Studies of New York
\n",
- "
New York
\n",
- "
[Education]
\n",
+ "
[Company]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
"
\n",
"
\n",
"
5
\n",
- "
NYSCC
\n",
- "
Alfred
\n",
+ "
grid.795276.8
\n",
+ "
New York University Medical Center
\n",
+ "
US
\n",
"
United States
\n",
- "
grid.507867.b
\n",
- "
42.253372
\n",
- "
[https://www.alfred.edu/academics/colleges-sch...
\n",
- "
-77.787575
\n",
- "
New York State College of Ceramics
\n",
- "
New York
\n",
"
[Education]
\n",
+ "
New York
\n",
+ "
New York
\n",
"
\n",
"
\n",
"
6
\n",
- "
ILR
\n",
- "
New York
\n",
+ "
grid.794869.d
\n",
+ "
International General Electric Company of New ...
\n",
+ "
US
\n",
"
United States
\n",
- "
grid.507863.f
\n",
- "
42.448510
\n",
- "
[https://www.ilr.cornell.edu/]
\n",
- "
-76.478620
\n",
- "
New York State School of Industrial and Labor ...
\n",
- "
New York
\n",
- "
[Education]
\n",
+ "
[Other]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
"
\n",
"
\n",
"
7
\n",
- "
MVCC
\n",
- "
Utica
\n",
+ "
grid.782261.8
\n",
+ "
New York Digital Investment Group LLC
\n",
+ "
US
\n",
"
United States
\n",
- "
grid.507861.d
\n",
- "
43.076850
\n",
- "
[https://www.mvcc.edu/]
\n",
- "
-75.220120
\n",
- "
Mohawk Valley Community College
\n",
- "
New York
\n",
- "
[Education]
\n",
+ "
[Other]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
"
\n",
"
\n",
"
8
\n",
- "
CALS
\n",
- "
New York
\n",
+ "
grid.778414.9
\n",
+ "
China CITIC Bank International Ltd New York Br...
\n",
+ "
US
\n",
"
United States
\n",
- "
grid.507860.c
\n",
- "
42.448290
\n",
- "
[https://cals.cornell.edu/#]
\n",
- "
-76.479390
\n",
- "
New York State College of Agriculture & Life S...
\n",
- "
New York
\n",
- "
[Education]
\n",
+ "
[Government]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
"
\n",
"
\n",
"
9
\n",
- "
NaN
\n",
- "
New York
\n",
+ "
grid.777726.4
\n",
+ "
Morgan Guaranty Trust Company of New York
\n",
+ "
US
\n",
"
United States
\n",
- "
grid.507859.6
\n",
- "
42.447483
\n",
- "
[https://www.vet.cornell.edu/]
\n",
- "
-76.464905
\n",
- "
New York State College of Veterinary Medicine
\n",
- "
New York
\n",
- "
[Education]
\n",
+ "
[Company]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
"
\n",
" \n",
"\n",
""
],
"text/plain": [
- " acronym city_name country_name id latitude \\\n",
- "0 MSK New York United States grid.51462.34 40.764194 \n",
- "1 NaN Brooklyn United States grid.511519.8 40.691113 \n",
- "2 NYPC New York United States grid.511327.3 40.804780 \n",
- "3 NaN New York United States grid.511090.c 40.755230 \n",
- "4 CMS New York United States grid.510787.c 40.761470 \n",
- "5 NYSCC Alfred United States grid.507867.b 42.253372 \n",
- "6 ILR New York United States grid.507863.f 42.448510 \n",
- "7 MVCC Utica United States grid.507861.d 43.076850 \n",
- "8 CALS New York United States grid.507860.c 42.448290 \n",
- "9 NaN New York United States grid.507859.6 42.447483 \n",
- "\n",
- " linkout longitude \\\n",
- "0 [https://www.mskcc.org/] -73.956100 \n",
- "1 [https://www.vascularnyc.com/] -73.963890 \n",
- "2 [https://www.nyproton.com/] -73.934070 \n",
- "3 [https://www.journalism.cuny.edu/] -73.988830 \n",
- "4 [https://cmsny.org/] -73.965450 \n",
- "5 [https://www.alfred.edu/academics/colleges-sch... -77.787575 \n",
- "6 [https://www.ilr.cornell.edu/] -76.478620 \n",
- "7 [https://www.mvcc.edu/] -75.220120 \n",
- "8 [https://cals.cornell.edu/#] -76.479390 \n",
- "9 [https://www.vet.cornell.edu/] -76.464905 \n",
+ " id name \\\n",
+ "0 grid.798367.4 Bank of New York \n",
+ "1 grid.798343.2 Research Foundation of University of New York \n",
+ "2 grid.797561.b New York Hospital-Cornell Medical Center \n",
+ "3 grid.796770.8 Research Foundation of City University of New ... \n",
+ "4 grid.796173.d Bank of New York Mellon Trust Co NA \n",
+ "5 grid.795276.8 New York University Medical Center \n",
+ "6 grid.794869.d International General Electric Company of New ... \n",
+ "7 grid.782261.8 New York Digital Investment Group LLC \n",
+ "8 grid.778414.9 China CITIC Bank International Ltd New York Br... \n",
+ "9 grid.777726.4 Morgan Guaranty Trust Company of New York \n",
"\n",
- " name state_name types \n",
- "0 Memorial Sloan Kettering Cancer Center New York [Healthcare] \n",
- "1 Vascular Institute of New York New York [Healthcare] \n",
- "2 New York Proton Center New York [Facility] \n",
- "3 Craig Newmark Graduate School of Journalism at... New York [Education] \n",
- "4 Center for Migration Studies of New York New York [Education] \n",
- "5 New York State College of Ceramics New York [Education] \n",
- "6 New York State School of Industrial and Labor ... New York [Education] \n",
- "7 Mohawk Valley Community College New York [Education] \n",
- "8 New York State College of Agriculture & Life S... New York [Education] \n",
- "9 New York State College of Veterinary Medicine New York [Education] "
+ " country_code country_name types city_name state_name \n",
+ "0 US United States [Company] NaN NaN \n",
+ "1 US United States [Education] NaN NaN \n",
+ "2 US United States [Healthcare] New York New York \n",
+ "3 US United States [Other] NaN NaN \n",
+ "4 US United States [Company] NaN NaN \n",
+ "5 US United States [Education] New York New York \n",
+ "6 US United States [Other] NaN NaN \n",
+ "7 US United States [Other] NaN NaN \n",
+ "8 US United States [Government] NaN NaN \n",
+ "9 US United States [Company] NaN NaN "
]
},
"execution_count": 6,
@@ -680,8 +623,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "Returned Organizations: 8 (total = 8)\n",
- "\u001b[2mTime: 0.56s\u001b[0m\n"
+ "Returned Organizations: 9 (total = 9)\n",
+ "\u001b[2mTime: 0.62s\u001b[0m\n"
]
},
{
@@ -705,157 +648,194 @@
" \n",
"
\n",
"
\n",
+ "
id
\n",
+ "
name
\n",
+ "
country_code
\n",
+ "
country_name
\n",
+ "
types
\n",
"
acronym
\n",
"
city_name
\n",
- "
country_name
\n",
- "
id
\n",
"
latitude
\n",
"
linkout
\n",
"
longitude
\n",
- "
name
\n",
"
state_name
\n",
- "
types
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
- "
MVCC
\n",
- "
Utica
\n",
+ "
grid.757191.c
\n",
+ "
New York Community Bank
\n",
+ "
US
\n",
"
United States
\n",
+ "
[Company]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
"
grid.507861.d
\n",
+ "
Mohawk Valley Community College
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
MVCC
\n",
+ "
Utica
\n",
"
43.076850
\n",
"
[https://www.mvcc.edu/]
\n",
"
-75.220120
\n",
- "
Mohawk Valley Community College
\n",
"
New York
\n",
- "
[Education]
\n",
"
\n",
"
\n",
- "
1
\n",
+ "
2
\n",
+ "
grid.490742.c
\n",
+ "
Health Foundation for Western & Central New York
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Nonprofit]
\n",
"
NaN
\n",
"
Buffalo
\n",
- "
United States
\n",
- "
grid.490742.c
\n",
"
42.874810
\n",
"
[https://hfwcny.org/]
\n",
"
-78.849690
\n",
- "
Health Foundation for Western & Central New York
\n",
"
New York
\n",
- "
[Other]
\n",
"
\n",
"
\n",
- "
2
\n",
+ "
3
\n",
+ "
grid.480917.3
\n",
+ "
New York Community Trust
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Nonprofit]
\n",
"
NaN
\n",
"
New York
\n",
- "
United States
\n",
- "
grid.480917.3
\n",
"
40.758870
\n",
"
[http://www.nycommunitytrust.org/]
\n",
"
-73.968185
\n",
- "
New York Community Trust
\n",
"
New York
\n",
- "
[Nonprofit]
\n",
"
\n",
"
\n",
- "
3
\n",
+ "
4
\n",
+ "
grid.478715.8
\n",
+ "
Central New York Community Foundation
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Nonprofit]
\n",
"
CNYCF
\n",
"
Syracuse
\n",
- "
United States
\n",
- "
grid.478715.8
\n",
"
43.056038
\n",
"
[https://www.cnycf.org/]
\n",
"
-76.148210
\n",
- "
Central New York Community Foundation
\n",
"
New York
\n",
- "
[Nonprofit]
\n",
"
\n",
"
\n",
- "
4
\n",
+ "
5
\n",
+ "
grid.475804.a
\n",
+ "
Community Service Society of New York
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Other]
\n",
"
CSS
\n",
"
New York
\n",
- "
United States
\n",
- "
grid.475804.a
\n",
"
40.749622
\n",
"
[http://www.cssny.org/]
\n",
"
-73.974620
\n",
- "
Community Service Society of New York
\n",
"
New York
\n",
- "
[Other]
\n",
"
\n",
"
\n",
- "
5
\n",
+ "
6
\n",
+ "
grid.475783.a
\n",
+ "
Long Term Care Community Coalition
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Other]
\n",
"
LTCCC
\n",
"
New York
\n",
- "
United States
\n",
- "
grid.475783.a
\n",
"
40.751163
\n",
"
[http://www.ltccc.org/]
\n",
"
-73.992470
\n",
- "
Long Term Care Community Coalition
\n",
- "
New York
\n",
- "
[Other]
\n",
- "
\n",
- "
\n",
- "
6
\n",
- "
ECC
\n",
- "
Williamsville
\n",
- "
United States
\n",
- "
grid.468887.d
\n",
- "
42.960820
\n",
- "
[https://www.ecc.edu/]
\n",
- "
-78.721660
\n",
- "
Erie Community College
\n",
"
New York
\n",
- "
[Education]
\n",
"
\n",
"
\n",
"
7
\n",
+ "
grid.429257.f
\n",
+ "
Korean Community Services of Metropolitan New ...
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Nonprofit]
\n",
"
KCS
\n",
"
New York
\n",
- "
United States
\n",
- "
grid.429257.f
\n",
"
40.770954
\n",
"
[https://www.kcsny.org/]
\n",
"
-73.786670
\n",
- "
Korean Community Services of Metropolitan New ...
\n",
"
New York
\n",
- "
[Nonprofit]
\n",
+ "
\n",
+ "
\n",
+ "
8
\n",
+ "
funder.196228
\n",
+ "
Community Health Foundation of Western and Cen...
\n",
+ "
NaN
\n",
+ "
United States
\n",
+ "
NaN
\n",
+ "
Community Health Foundation of Western and Centra
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
"
\n",
" \n",
"\n",
""
],
"text/plain": [
- " acronym city_name country_name id latitude \\\n",
- "0 MVCC Utica United States grid.507861.d 43.076850 \n",
- "1 NaN Buffalo United States grid.490742.c 42.874810 \n",
- "2 NaN New York United States grid.480917.3 40.758870 \n",
- "3 CNYCF Syracuse United States grid.478715.8 43.056038 \n",
- "4 CSS New York United States grid.475804.a 40.749622 \n",
- "5 LTCCC New York United States grid.475783.a 40.751163 \n",
- "6 ECC Williamsville United States grid.468887.d 42.960820 \n",
- "7 KCS New York United States grid.429257.f 40.770954 \n",
+ " id name \\\n",
+ "0 grid.757191.c New York Community Bank \n",
+ "1 grid.507861.d Mohawk Valley Community College \n",
+ "2 grid.490742.c Health Foundation for Western & Central New York \n",
+ "3 grid.480917.3 New York Community Trust \n",
+ "4 grid.478715.8 Central New York Community Foundation \n",
+ "5 grid.475804.a Community Service Society of New York \n",
+ "6 grid.475783.a Long Term Care Community Coalition \n",
+ "7 grid.429257.f Korean Community Services of Metropolitan New ... \n",
+ "8 funder.196228 Community Health Foundation of Western and Cen... \n",
+ "\n",
+ " country_code country_name types \\\n",
+ "0 US United States [Company] \n",
+ "1 US United States [Education] \n",
+ "2 US United States [Nonprofit] \n",
+ "3 US United States [Nonprofit] \n",
+ "4 US United States [Nonprofit] \n",
+ "5 US United States [Other] \n",
+ "6 US United States [Other] \n",
+ "7 US United States [Nonprofit] \n",
+ "8 NaN United States NaN \n",
"\n",
- " linkout longitude \\\n",
- "0 [https://www.mvcc.edu/] -75.220120 \n",
- "1 [https://hfwcny.org/] -78.849690 \n",
- "2 [http://www.nycommunitytrust.org/] -73.968185 \n",
- "3 [https://www.cnycf.org/] -76.148210 \n",
- "4 [http://www.cssny.org/] -73.974620 \n",
- "5 [http://www.ltccc.org/] -73.992470 \n",
- "6 [https://www.ecc.edu/] -78.721660 \n",
- "7 [https://www.kcsny.org/] -73.786670 \n",
+ " acronym city_name latitude \\\n",
+ "0 NaN NaN NaN \n",
+ "1 MVCC Utica 43.076850 \n",
+ "2 NaN Buffalo 42.874810 \n",
+ "3 NaN New York 40.758870 \n",
+ "4 CNYCF Syracuse 43.056038 \n",
+ "5 CSS New York 40.749622 \n",
+ "6 LTCCC New York 40.751163 \n",
+ "7 KCS New York 40.770954 \n",
+ "8 Community Health Foundation of Western and Centra NaN NaN \n",
"\n",
- " name state_name types \n",
- "0 Mohawk Valley Community College New York [Education] \n",
- "1 Health Foundation for Western & Central New York New York [Other] \n",
- "2 New York Community Trust New York [Nonprofit] \n",
- "3 Central New York Community Foundation New York [Nonprofit] \n",
- "4 Community Service Society of New York New York [Other] \n",
- "5 Long Term Care Community Coalition New York [Other] \n",
- "6 Erie Community College New York [Education] \n",
- "7 Korean Community Services of Metropolitan New ... New York [Nonprofit] "
+ " linkout longitude state_name \n",
+ "0 NaN NaN NaN \n",
+ "1 [https://www.mvcc.edu/] -75.220120 New York \n",
+ "2 [https://hfwcny.org/] -78.849690 New York \n",
+ "3 [http://www.nycommunitytrust.org/] -73.968185 New York \n",
+ "4 [https://www.cnycf.org/] -76.148210 New York \n",
+ "5 [http://www.cssny.org/] -73.974620 New York \n",
+ "6 [http://www.ltccc.org/] -73.992470 New York \n",
+ "7 [https://www.kcsny.org/] -73.786670 New York \n",
+ "8 NaN NaN NaN "
]
},
"execution_count": 7,
@@ -880,7 +860,7 @@
"source": [
"### Fielded search \n",
"\n",
- "We can easily look up an organization using its grid ID, eg [grid.468887.d](https://grid.ac/institutes/grid.468887.d). "
+ "We can easily look up an organization using its ID, e.g."
]
},
{
@@ -913,10 +893,10 @@
"output_type": "stream",
"text": [
"Returned Errors: 1\n",
- "\u001b[2mTime: 0.47s\u001b[0m\n",
- "1 QueryError found\n",
+ "\u001b[2mTime: 5.84s\u001b[0m\n",
+ "Query Error\n",
"Semantic errors found:\n",
- "\tField / Fieldset 'all' is not present in Source 'organizations'. Available fields: acronym,city_name,cnrs_ids,country_name,dimensions_url,established,external_ids_fundref,hesa_ids,id,isni_ids,latitude,linkout,longitude,name,nuts_level1_code,nuts_level1_name,nuts_level2_code,nuts_level2_name,nuts_level3_code,nuts_level3_name,organization_child_ids,organization_parent_ids,organization_related_ids,orgref_ids,redirect,ror_ids,state_name,status,types,ucas_ids,ukprn_ids,wikidata_ids,wikipedia_url and available fieldsets: basics,nuts\n"
+ "\tField / Fieldset 'all' is not present in Source 'organizations'. Available fields: acronym,city_name,cnrs_ids,country_code,country_name,dimensions_url,established,external_ids_fundref,hesa_ids,id,isni_ids,latitude,linkout,longitude,name,nuts_level1_code,nuts_level1_name,nuts_level2_code,nuts_level2_name,nuts_level3_code,nuts_level3_name,organization_child_ids,organization_parent_ids,organization_related_ids,orgref_ids,redirect,ror_ids,score,state_name,status,types,ucas_ids,ukprn_ids,wikidata_ids,wikipedia_url and available fieldsets: basics,nuts\n"
]
}
],
@@ -956,8 +936,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "Returned Organizations: 10 (total = 80)\n",
- "\u001b[2mTime: 0.60s\u001b[0m\n"
+ "Returned Organizations: 10 (total = 93)\n",
+ "\u001b[2mTime: 0.64s\u001b[0m\n"
]
},
{
@@ -981,201 +961,200 @@
" \n",
"
\n",
"
\n",
- "
city_name
\n",
- "
country_name
\n",
"
id
\n",
+ "
name
\n",
+ "
country_code
\n",
+ "
country_name
\n",
+ "
types
\n",
+ "
city_name
\n",
+ "
state_name
\n",
"
latitude
\n",
"
linkout
\n",
"
longitude
\n",
- "
name
\n",
- "
state_name
\n",
- "
types
\n",
"
acronym
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
- "
New York
\n",
+ "
grid.798343.2
\n",
+ "
Research Foundation of University of New York
\n",
+ "
US
\n",
"
United States
\n",
- "
grid.511090.c
\n",
- "
40.755230
\n",
- "
[https://www.journalism.cuny.edu/]
\n",
- "
-73.988830
\n",
- "
Craig Newmark Graduate School of Journalism at...
\n",
- "
New York
\n",
"
[Education]
\n",
"
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
"
\n",
"
\n",
"
1
\n",
- "
New York
\n",
+ "
grid.795276.8
\n",
+ "
New York University Medical Center
\n",
+ "
US
\n",
"
United States
\n",
- "
grid.510787.c
\n",
- "
40.761470
\n",
- "
[https://cmsny.org/]
\n",
- "
-73.965450
\n",
- "
Center for Migration Studies of New York
\n",
- "
New York
\n",
"
[Education]
\n",
- "
CMS
\n",
+ "
New York
\n",
+ "
New York
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
"
\n",
"
\n",
"
2
\n",
- "
Alfred
\n",
- "
United States
\n",
- "
grid.507867.b
\n",
- "
42.253372
\n",
- "
[https://www.alfred.edu/academics/colleges-sch...
\n",
- "
-77.787575
\n",
- "
New York State College of Ceramics
\n",
- "
New York
\n",
+ "
grid.512545.2
\n",
+ "
State University of New York, Korea
\n",
+ "
KR
\n",
+ "
South Korea
\n",
"
[Education]
\n",
- "
NYSCC
\n",
+ "
Incheon
\n",
+ "
NaN
\n",
+ "
37.376694
\n",
+ "
[http://www.sunykorea.ac.kr/]
\n",
+ "
126.667170
\n",
+ "
NaN
\n",
"
\n",
"
\n",
"
3
\n",
- "
New York
\n",
+ "
grid.511090.c
\n",
+ "
Craig Newmark Graduate School of Journalism at...
\n",
+ "
US
\n",
"
United States
\n",
- "
grid.507863.f
\n",
- "
42.448510
\n",
- "
[https://www.ilr.cornell.edu/]
\n",
- "
-76.478620
\n",
- "
New York State School of Industrial and Labor ...
\n",
- "
New York
\n",
"
[Education]
\n",
- "
ILR
\n",
+ "
New York
\n",
+ "
New York
\n",
+ "
40.755230
\n",
+ "
[https://www.journalism.cuny.edu/]
\n",
+ "
-73.988830
\n",
+ "
NaN
\n",
"
\n",
"
\n",
"
4
\n",
- "
Utica
\n",
+ "
grid.510787.c
\n",
+ "
Center for Migration Studies of New York
\n",
+ "
US
\n",
"
United States
\n",
- "
grid.507861.d
\n",
- "
43.076850
\n",
- "
[https://www.mvcc.edu/]
\n",
- "
-75.220120
\n",
- "
Mohawk Valley Community College
\n",
- "
New York
\n",
"
[Education]
\n",
- "
MVCC
\n",
+ "
New York
\n",
+ "
New York
\n",
+ "
40.761470
\n",
+ "
[https://cmsny.org/]
\n",
+ "
-73.965450
\n",
+ "
CMS
\n",
"
\n",
"
\n",
"
5
\n",
- "
New York
\n",
+ "
grid.507867.b
\n",
+ "
New York State College of Ceramics
\n",
+ "
US
\n",
"
United States
\n",
- "
grid.507860.c
\n",
- "
42.448290
\n",
- "
[https://cals.cornell.edu/#]
\n",
- "
-76.479390
\n",
- "
New York State College of Agriculture & Life S...
\n",
- "
New York
\n",
"
[Education]
\n",
- "
CALS
\n",
+ "
Alfred
\n",
+ "
New York
\n",
+ "
42.253372
\n",
+ "
[https://www.alfred.edu/academics/colleges-sch...
\n",
+ "
-77.787575
\n",
+ "
NaN
\n",
"
\n",
"
\n",
"
6
\n",
- "
New York
\n",
+ "
grid.507863.f
\n",
+ "
New York State School of Industrial and Labor ...
\n",
+ "
US
\n",
"
United States
\n",
- "
grid.507859.6
\n",
- "
42.447483
\n",
- "
[https://www.vet.cornell.edu/]
\n",
- "
-76.464905
\n",
- "
New York State College of Veterinary Medicine
\n",
- "
New York
\n",
"
[Education]
\n",
- "
NaN
\n",
+ "
Ithaca
\n",
+ "
New York
\n",
+ "
42.439213
\n",
+ "
[https://www.ilr.cornell.edu/]
\n",
+ "
-76.493380
\n",
+ "
ILR
\n",
"
\n",
"
\n",
"
7
\n",
- "
Ithaca
\n",
+ "
grid.507861.d
\n",
+ "
Mohawk Valley Community College
\n",
+ "
US
\n",
"
United States
\n",
- "
grid.507858.7
\n",
- "
42.449740
\n",
- "
[https://www.human.cornell.edu/]
\n",
- "
-76.479065
\n",
- "
New York State University College of Human Eco...
\n",
- "
New York
\n",
"
[Education]
\n",
- "
HumEc
\n",
+ "
Utica
\n",
+ "
New York
\n",
+ "
43.076850
\n",
+ "
[https://www.mvcc.edu/]
\n",
+ "
-75.220120
\n",
+ "
MVCC
\n",
"
\n",
"
\n",
"
8
\n",
- "
New York
\n",
+ "
grid.507860.c
\n",
+ "
New York State College of Agriculture and Life...
\n",
+ "
US
\n",
"
United States
\n",
- "
grid.493073.a
\n",
- "
40.752880
\n",
- "
[http://website.aub.edu.lb/nyo/Pages/index.aspx]
\n",
- "
-73.969040
\n",
- "
American University of Beirut New York Office
\n",
- "
New York
\n",
"
[Education]
\n",
- "
AUB
\n",
+ "
Ithaca
\n",
+ "
New York
\n",
+ "
42.448290
\n",
+ "
[https://cals.cornell.edu/#]
\n",
+ "
-76.479390
\n",
+ "
CALS
\n",
"
\n",
"
\n",
"
9
\n",
- "
New York
\n",
+ "
grid.507859.6
\n",
+ "
New York State College of Veterinary Medicine ...
\n",
+ "
US
\n",
"
United States
\n",
- "
grid.487836.6
\n",
- "
40.740430
\n",
- "
[https://www.csnyc.org/]
\n",
- "
-73.995630
\n",
- "
New York City Foundation for Computer Science ...
\n",
- "
New York
\n",
"
[Education]
\n",
- "
CSNYC
\n",
+ "
Ithaca
\n",
+ "
New York
\n",
+ "
42.447483
\n",
+ "
[https://www.vet.cornell.edu/]
\n",
+ "
-76.464905
\n",
+ "
NaN
\n",
"
\n",
" \n",
"\n",
""
],
"text/plain": [
- " city_name country_name id latitude \\\n",
- "0 New York United States grid.511090.c 40.755230 \n",
- "1 New York United States grid.510787.c 40.761470 \n",
- "2 Alfred United States grid.507867.b 42.253372 \n",
- "3 New York United States grid.507863.f 42.448510 \n",
- "4 Utica United States grid.507861.d 43.076850 \n",
- "5 New York United States grid.507860.c 42.448290 \n",
- "6 New York United States grid.507859.6 42.447483 \n",
- "7 Ithaca United States grid.507858.7 42.449740 \n",
- "8 New York United States grid.493073.a 40.752880 \n",
- "9 New York United States grid.487836.6 40.740430 \n",
- "\n",
- " linkout longitude \\\n",
- "0 [https://www.journalism.cuny.edu/] -73.988830 \n",
- "1 [https://cmsny.org/] -73.965450 \n",
- "2 [https://www.alfred.edu/academics/colleges-sch... -77.787575 \n",
- "3 [https://www.ilr.cornell.edu/] -76.478620 \n",
- "4 [https://www.mvcc.edu/] -75.220120 \n",
- "5 [https://cals.cornell.edu/#] -76.479390 \n",
- "6 [https://www.vet.cornell.edu/] -76.464905 \n",
- "7 [https://www.human.cornell.edu/] -76.479065 \n",
- "8 [http://website.aub.edu.lb/nyo/Pages/index.aspx] -73.969040 \n",
- "9 [https://www.csnyc.org/] -73.995630 \n",
+ " id name \\\n",
+ "0 grid.798343.2 Research Foundation of University of New York \n",
+ "1 grid.795276.8 New York University Medical Center \n",
+ "2 grid.512545.2 State University of New York, Korea \n",
+ "3 grid.511090.c Craig Newmark Graduate School of Journalism at... \n",
+ "4 grid.510787.c Center for Migration Studies of New York \n",
+ "5 grid.507867.b New York State College of Ceramics \n",
+ "6 grid.507863.f New York State School of Industrial and Labor ... \n",
+ "7 grid.507861.d Mohawk Valley Community College \n",
+ "8 grid.507860.c New York State College of Agriculture and Life... \n",
+ "9 grid.507859.6 New York State College of Veterinary Medicine ... \n",
"\n",
- " name state_name types \\\n",
- "0 Craig Newmark Graduate School of Journalism at... New York [Education] \n",
- "1 Center for Migration Studies of New York New York [Education] \n",
- "2 New York State College of Ceramics New York [Education] \n",
- "3 New York State School of Industrial and Labor ... New York [Education] \n",
- "4 Mohawk Valley Community College New York [Education] \n",
- "5 New York State College of Agriculture & Life S... New York [Education] \n",
- "6 New York State College of Veterinary Medicine New York [Education] \n",
- "7 New York State University College of Human Eco... New York [Education] \n",
- "8 American University of Beirut New York Office New York [Education] \n",
- "9 New York City Foundation for Computer Science ... New York [Education] \n",
+ " country_code country_name types city_name state_name latitude \\\n",
+ "0 US United States [Education] NaN NaN NaN \n",
+ "1 US United States [Education] New York New York NaN \n",
+ "2 KR South Korea [Education] Incheon NaN 37.376694 \n",
+ "3 US United States [Education] New York New York 40.755230 \n",
+ "4 US United States [Education] New York New York 40.761470 \n",
+ "5 US United States [Education] Alfred New York 42.253372 \n",
+ "6 US United States [Education] Ithaca New York 42.439213 \n",
+ "7 US United States [Education] Utica New York 43.076850 \n",
+ "8 US United States [Education] Ithaca New York 42.448290 \n",
+ "9 US United States [Education] Ithaca New York 42.447483 \n",
"\n",
- " acronym \n",
- "0 NaN \n",
- "1 CMS \n",
- "2 NYSCC \n",
- "3 ILR \n",
- "4 MVCC \n",
- "5 CALS \n",
- "6 NaN \n",
- "7 HumEc \n",
- "8 AUB \n",
- "9 CSNYC "
+ " linkout longitude acronym \n",
+ "0 NaN NaN NaN \n",
+ "1 NaN NaN NaN \n",
+ "2 [http://www.sunykorea.ac.kr/] 126.667170 NaN \n",
+ "3 [https://www.journalism.cuny.edu/] -73.988830 NaN \n",
+ "4 [https://cmsny.org/] -73.965450 CMS \n",
+ "5 [https://www.alfred.edu/academics/colleges-sch... -77.787575 NaN \n",
+ "6 [https://www.ilr.cornell.edu/] -76.493380 ILR \n",
+ "7 [https://www.mvcc.edu/] -75.220120 MVCC \n",
+ "8 [https://cals.cornell.edu/#] -76.479390 CALS \n",
+ "9 [https://www.vet.cornell.edu/] -76.464905 NaN "
]
},
"execution_count": 9,
@@ -1220,8 +1199,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "Returned Organizations: 8 (total = 8)\n",
- "\u001b[2mTime: 0.58s\u001b[0m\n"
+ "Returned Organizations: 9 (total = 9)\n",
+ "\u001b[2mTime: 5.97s\u001b[0m\n"
]
},
{
@@ -1245,13 +1224,14 @@
" \n",
"
\n",
"
\n",
+ "
id
\n",
+ "
name
\n",
"
city_name
\n",
+ "
country_code
\n",
"
country_name
\n",
- "
id
\n",
"
latitude
\n",
"
linkout
\n",
"
longitude
\n",
- "
name
\n",
"
types
\n",
"
acronym
\n",
"
state_name
\n",
@@ -1260,104 +1240,126 @@
"
\n",
"
\n",
"
0
\n",
+ "
grid.512545.2
\n",
+ "
State University of New York, Korea
\n",
+ "
Incheon
\n",
+ "
KR
\n",
+ "
South Korea
\n",
+ "
37.376694
\n",
+ "
[http://www.sunykorea.ac.kr/]
\n",
+ "
126.667170
\n",
+ "
[Education]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
+ "
grid.479986.d
\n",
+ "
New York University Paris
\n",
"
Paris
\n",
+ "
FR
\n",
"
France
\n",
- "
grid.479986.d
\n",
"
48.869614
\n",
"
[http://www.nyu.edu/paris.html]
\n",
"
2.346863
\n",
- "
New York University Paris
\n",
"
[Education]
\n",
"
NaN
\n",
"
NaN
\n",
"
\n",
"
\n",
- "
1
\n",
+ "
2
\n",
+ "
grid.473731.5
\n",
+ "
New York University Florence
\n",
"
Florence
\n",
+ "
IT
\n",
"
Italy
\n",
- "
grid.473731.5
\n",
"
43.795910
\n",
"
[http://www.nyu.edu/florence.html]
\n",
"
11.265850
\n",
- "
New York University Florence
\n",
"
[Education]
\n",
"
NYU
\n",
"
NaN
\n",
"
\n",
"
\n",
- "
2
\n",
+ "
3
\n",
+ "
grid.473728.d
\n",
+ "
New York Institute of Technology
\n",
"
Vancouver
\n",
+ "
CA
\n",
"
Canada
\n",
- "
grid.473728.d
\n",
"
49.284374
\n",
"
[http://nyit.edu/vancouver]
\n",
"
-123.116480
\n",
- "
New York Institute of Technology
\n",
"
[Education]
\n",
"
NYIT
\n",
"
British Columbia
\n",
"
\n",
"
\n",
- "
3
\n",
+ "
4
\n",
+ "
grid.449989.1
\n",
+ "
University of New York in Prague
\n",
"
Prague
\n",
+ "
CZ
\n",
"
Czechia
\n",
- "
grid.449989.1
\n",
"
50.074043
\n",
"
[https://www.unyp.cz/]
\n",
"
14.433994
\n",
- "
University of New York in Prague
\n",
"
[Education]
\n",
"
UNYP
\n",
"
NaN
\n",
"
\n",
"
\n",
- "
4
\n",
+ "
5
\n",
+ "
grid.449457.f
\n",
+ "
New York University Shanghai
\n",
"
Shanghai
\n",
+ "
CN
\n",
"
China
\n",
- "
grid.449457.f
\n",
"
31.225506
\n",
"
[https://shanghai.nyu.edu/]
\n",
"
121.533510
\n",
- "
New York University Shanghai
\n",
"
[Education]
\n",
"
NaN
\n",
"
NaN
\n",
"
\n",
"
\n",
- "
5
\n",
+ "
6
\n",
+ "
grid.444973.9
\n",
+ "
University of New York Tirana
\n",
"
Tirana
\n",
+ "
AL
\n",
"
Albania
\n",
- "
grid.444973.9
\n",
"
41.311060
\n",
"
[http://unyt.edu.al/]
\n",
"
19.801466
\n",
- "
University of New York Tirana
\n",
"
[Education]
\n",
"
UNYT
\n",
"
NaN
\n",
"
\n",
"
\n",
- "
6
\n",
+ "
7
\n",
+ "
grid.440573.1
\n",
+ "
New York University Abu Dhabi
\n",
"
Abu Dhabi
\n",
+ "
AE
\n",
"
United Arab Emirates
\n",
- "
grid.440573.1
\n",
"
24.485000
\n",
"
[https://nyuad.nyu.edu/]
\n",
"
54.353000
\n",
- "
New York University Abu Dhabi
\n",
"
[Education]
\n",
"
NaN
\n",
"
NaN
\n",
"
\n",
"
\n",
- "
7
\n",
+ "
8
\n",
+ "
grid.410685.e
\n",
+ "
SUNY Korea
\n",
"
Seoul
\n",
+ "
KR
\n",
"
South Korea
\n",
- "
grid.410685.e
\n",
"
37.377018
\n",
"
[http://www.sunykorea.ac.kr/]
\n",
"
126.666770
\n",
- "
SUNY Korea
\n",
"
[Education]
\n",
"
NaN
\n",
"
NaN
\n",
@@ -1367,35 +1369,38 @@
""
],
"text/plain": [
- " city_name country_name id latitude \\\n",
- "0 Paris France grid.479986.d 48.869614 \n",
- "1 Florence Italy grid.473731.5 43.795910 \n",
- "2 Vancouver Canada grid.473728.d 49.284374 \n",
- "3 Prague Czechia grid.449989.1 50.074043 \n",
- "4 Shanghai China grid.449457.f 31.225506 \n",
- "5 Tirana Albania grid.444973.9 41.311060 \n",
- "6 Abu Dhabi United Arab Emirates grid.440573.1 24.485000 \n",
- "7 Seoul South Korea grid.410685.e 37.377018 \n",
+ " id name city_name country_code \\\n",
+ "0 grid.512545.2 State University of New York, Korea Incheon KR \n",
+ "1 grid.479986.d New York University Paris Paris FR \n",
+ "2 grid.473731.5 New York University Florence Florence IT \n",
+ "3 grid.473728.d New York Institute of Technology Vancouver CA \n",
+ "4 grid.449989.1 University of New York in Prague Prague CZ \n",
+ "5 grid.449457.f New York University Shanghai Shanghai CN \n",
+ "6 grid.444973.9 University of New York Tirana Tirana AL \n",
+ "7 grid.440573.1 New York University Abu Dhabi Abu Dhabi AE \n",
+ "8 grid.410685.e SUNY Korea Seoul KR \n",
"\n",
- " linkout longitude \\\n",
- "0 [http://www.nyu.edu/paris.html] 2.346863 \n",
- "1 [http://www.nyu.edu/florence.html] 11.265850 \n",
- "2 [http://nyit.edu/vancouver] -123.116480 \n",
- "3 [https://www.unyp.cz/] 14.433994 \n",
- "4 [https://shanghai.nyu.edu/] 121.533510 \n",
- "5 [http://unyt.edu.al/] 19.801466 \n",
- "6 [https://nyuad.nyu.edu/] 54.353000 \n",
- "7 [http://www.sunykorea.ac.kr/] 126.666770 \n",
+ " country_name latitude linkout \\\n",
+ "0 South Korea 37.376694 [http://www.sunykorea.ac.kr/] \n",
+ "1 France 48.869614 [http://www.nyu.edu/paris.html] \n",
+ "2 Italy 43.795910 [http://www.nyu.edu/florence.html] \n",
+ "3 Canada 49.284374 [http://nyit.edu/vancouver] \n",
+ "4 Czechia 50.074043 [https://www.unyp.cz/] \n",
+ "5 China 31.225506 [https://shanghai.nyu.edu/] \n",
+ "6 Albania 41.311060 [http://unyt.edu.al/] \n",
+ "7 United Arab Emirates 24.485000 [https://nyuad.nyu.edu/] \n",
+ "8 South Korea 37.377018 [http://www.sunykorea.ac.kr/] \n",
"\n",
- " name types acronym state_name \n",
- "0 New York University Paris [Education] NaN NaN \n",
- "1 New York University Florence [Education] NYU NaN \n",
- "2 New York Institute of Technology [Education] NYIT British Columbia \n",
- "3 University of New York in Prague [Education] UNYP NaN \n",
- "4 New York University Shanghai [Education] NaN NaN \n",
- "5 University of New York Tirana [Education] UNYT NaN \n",
- "6 New York University Abu Dhabi [Education] NaN NaN \n",
- "7 SUNY Korea [Education] NaN NaN "
+ " longitude types acronym state_name \n",
+ "0 126.667170 [Education] NaN NaN \n",
+ "1 2.346863 [Education] NaN NaN \n",
+ "2 11.265850 [Education] NYU NaN \n",
+ "3 -123.116480 [Education] NYIT British Columbia \n",
+ "4 14.433994 [Education] UNYP NaN \n",
+ "5 121.533510 [Education] NaN NaN \n",
+ "6 19.801466 [Education] UNYT NaN \n",
+ "7 54.353000 [Education] NaN NaN \n",
+ "8 126.666770 [Education] NaN NaN "
]
},
"execution_count": 10,
@@ -1452,8 +1457,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "Returned Country_name: 10\n",
- "\u001b[2mTime: 0.52s\u001b[0m\n"
+ "Returned Country_name: 11\n",
+ "\u001b[2mTime: 0.50s\u001b[0m\n"
]
},
{
@@ -1477,77 +1482,83 @@
" \n",
"
\n",
"
\n",
- "
count
\n",
"
id
\n",
+ "
count
\n",
"
\n",
" \n",
"
\n",
"
\n",
"
0
\n",
- "
238
\n",
"
United States
\n",
+ "
341
\n",
"
\n",
"
\n",
"
1
\n",
- "
1
\n",
- "
Albania
\n",
+ "
South Korea
\n",
+ "
2
\n",
"
\n",
"
\n",
"
2
\n",
+ "
Albania
\n",
"
1
\n",
- "
Canada
\n",
"
\n",
"
\n",
"
3
\n",
+ "
Canada
\n",
"
1
\n",
- "
China
\n",
"
\n",
"
\n",
"
4
\n",
+ "
China
\n",
"
1
\n",
- "
Czechia
\n",
"
\n",
"
\n",
"
5
\n",
+ "
Czechia
\n",
"
1
\n",
- "
France
\n",
"
\n",
"
\n",
"
6
\n",
+ "
France
\n",
"
1
\n",
- "
Italy
\n",
"
\n",
"
\n",
"
7
\n",
+ "
Italy
\n",
"
1
\n",
- "
South Korea
\n",
"
\n",
"
\n",
"
8
\n",
+ "
Panama
\n",
"
1
\n",
- "
United Arab Emirates
\n",
"
\n",
"
\n",
"
9
\n",
+ "
United Arab Emirates
\n",
"
1
\n",
+ "
\n",
+ "
\n",
+ "
10
\n",
"
United Kingdom
\n",
+ "
1
\n",
"
\n",
" \n",
"\n",
""
],
"text/plain": [
- " count id\n",
- "0 238 United States\n",
- "1 1 Albania\n",
- "2 1 Canada\n",
- "3 1 China\n",
- "4 1 Czechia\n",
- "5 1 France\n",
- "6 1 Italy\n",
- "7 1 South Korea\n",
- "8 1 United Arab Emirates\n",
- "9 1 United Kingdom"
+ " id count\n",
+ "0 United States 341\n",
+ "1 South Korea 2\n",
+ "2 Albania 1\n",
+ "3 Canada 1\n",
+ "4 China 1\n",
+ "5 Czechia 1\n",
+ "6 France 1\n",
+ "7 Italy 1\n",
+ "8 Panama 1\n",
+ "9 United Arab Emirates 1\n",
+ "10 United Kingdom 1"
]
},
"execution_count": 11,
@@ -1592,7 +1603,7 @@
"output_type": "stream",
"text": [
"Returned Types: 8\n",
- "\u001b[2mTime: 0.61s\u001b[0m\n"
+ "\u001b[2mTime: 5.47s\u001b[0m\n"
]
},
{
@@ -1616,65 +1627,65 @@
" \n",
"
\n",
"
\n",
- "
count
\n",
"
id
\n",
+ "
count
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
- "
72
\n",
"
Education
\n",
+ "
84
\n",
"
\n",
"
\n",
"
1
\n",
- "
59
\n",
"
Nonprofit
\n",
+ "
75
\n",
"
\n",
"
\n",
"
2
\n",
- "
39
\n",
- "
Government
\n",
+ "
Company
\n",
+ "
57
\n",
"
\n",
"
\n",
"
3
\n",
- "
29
\n",
- "
Other
\n",
+ "
Government
\n",
+ "
46
\n",
"
\n",
"
\n",
"
4
\n",
- "
22
\n",
- "
Healthcare
\n",
+ "
Other
\n",
+ "
34
\n",
"
\n",
"
\n",
"
5
\n",
- "
9
\n",
- "
Archive
\n",
+ "
Healthcare
\n",
+ "
28
\n",
"
\n",
"
\n",
"
6
\n",
- "
5
\n",
- "
Facility
\n",
+ "
Archive
\n",
+ "
9
\n",
"
\n",
"
\n",
"
7
\n",
- "
3
\n",
- "
Company
\n",
+ "
Facility
\n",
+ "
7
\n",
"
\n",
" \n",
"\n",
""
],
"text/plain": [
- " count id\n",
- "0 72 Education\n",
- "1 59 Nonprofit\n",
- "2 39 Government\n",
- "3 29 Other\n",
- "4 22 Healthcare\n",
- "5 9 Archive\n",
- "6 5 Facility\n",
- "7 3 Company"
+ " id count\n",
+ "0 Education 84\n",
+ "1 Nonprofit 75\n",
+ "2 Company 57\n",
+ "3 Government 46\n",
+ "4 Other 34\n",
+ "5 Healthcare 28\n",
+ "6 Archive 9\n",
+ "7 Facility 7"
]
},
"execution_count": 12,
@@ -1700,9 +1711,9 @@
"source": [
"### Returning organizations facets from publications\n",
"\n",
- "The GRID organization data is used thoughout Dimensions. \n",
+ "Organization data is used thoughout Dimensions. \n",
"\n",
- "So, for example, one can do a publications search and return organizations as a facet. This allows to take advantage of GRID metadata - e.g. latiture and longitude - in order to quickly build a geograpical visualization. \n"
+ "So, for example, one can do a publications search and return organizations as a facet. This allows to take advantage of organization metadata - e.g. latiture and longitude - in order to quickly build a geograpical visualization. \n"
]
},
{
@@ -1735,7 +1746,7 @@
"output_type": "stream",
"text": [
"Returned Research_orgs: 50\n",
- "\u001b[2mTime: 1.26s\u001b[0m\n"
+ "\u001b[2mTime: 1.16s\u001b[0m\n"
]
},
{
@@ -1759,14 +1770,15 @@
" \n",
"
\n",
"
\n",
+ "
id
\n",
+ "
name
\n",
"
city_name
\n",
"
count
\n",
+ "
country_code
\n",
"
country_name
\n",
- "
id
\n",
"
latitude
\n",
"
linkout
\n",
"
longitude
\n",
- "
name
\n",
"
state_name
\n",
"
types
\n",
"
acronym
\n",
@@ -1775,70 +1787,75 @@
"
\n",
"
\n",
"
0
\n",
+ "
grid.38142.3c
\n",
+ "
Harvard University
\n",
"
Cambridge
\n",
- "
9846
\n",
+ "
33545
\n",
+ "
US
\n",
"
United States
\n",
- "
grid.38142.3c
\n",
"
42.377052
\n",
"
[http://www.harvard.edu/]
\n",
"
-71.116650
\n",
- "
Harvard University
\n",
"
Massachusetts
\n",
"
[Education]
\n",
"
NaN
\n",
"
\n",
"
\n",
"
1
\n",
- "
Oxford
\n",
- "
5900
\n",
- "
United Kingdom
\n",
- "
grid.4991.5
\n",
- "
51.753437
\n",
- "
[http://www.ox.ac.uk/]
\n",
- "
-1.254010
\n",
- "
University of Oxford
\n",
- "
Oxfordshire
\n",
- "
[Education]
\n",
- "
NaN
\n",
- "
\n",
- "
\n",
- "
2
\n",
+ "
grid.17063.33
\n",
+ "
University of Toronto
\n",
"
Toronto
\n",
- "
5519
\n",
+ "
21731
\n",
+ "
CA
\n",
"
Canada
\n",
- "
grid.17063.33
\n",
"
43.661667
\n",
"
[http://www.utoronto.ca/]
\n",
"
-79.395000
\n",
- "
University of Toronto
\n",
"
Ontario
\n",
"
[Education]
\n",
"
NaN
\n",
"
\n",
"
\n",
- "
3
\n",
+ "
2
\n",
+ "
grid.21107.35
\n",
+ "
Johns Hopkins University
\n",
"
Baltimore
\n",
- "
5289
\n",
+ "
19419
\n",
+ "
US
\n",
"
United States
\n",
- "
grid.21107.35
\n",
"
39.328888
\n",
"
[https://www.jhu.edu/]
\n",
"
-76.620280
\n",
- "
Johns Hopkins University
\n",
"
Maryland
\n",
"
[Education]
\n",
"
JHU
\n",
"
\n",
"
\n",
+ "
3
\n",
+ "
grid.4991.5
\n",
+ "
University of Oxford
\n",
+ "
Oxford
\n",
+ "
19345
\n",
+ "
GB
\n",
+ "
United Kingdom
\n",
+ "
51.753437
\n",
+ "
[http://www.ox.ac.uk/]
\n",
+ "
-1.254010
\n",
+ "
Oxfordshire
\n",
+ "
[Education]
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
"
4
\n",
+ "
grid.83440.3b
\n",
+ "
University College London
\n",
"
London
\n",
- "
5232
\n",
+ "
19047
\n",
+ "
GB
\n",
"
United Kingdom
\n",
- "
grid.83440.3b
\n",
"
51.524470
\n",
"
[http://www.ucl.ac.uk/]
\n",
"
-0.133982
\n",
- "
University College London
\n",
"
NaN
\n",
"
[Education]
\n",
"
UCL
\n",
@@ -1848,25 +1865,25 @@
""
],
"text/plain": [
- " city_name count country_name id latitude \\\n",
- "0 Cambridge 9846 United States grid.38142.3c 42.377052 \n",
- "1 Oxford 5900 United Kingdom grid.4991.5 51.753437 \n",
- "2 Toronto 5519 Canada grid.17063.33 43.661667 \n",
- "3 Baltimore 5289 United States grid.21107.35 39.328888 \n",
- "4 London 5232 United Kingdom grid.83440.3b 51.524470 \n",
+ " id name city_name count country_code \\\n",
+ "0 grid.38142.3c Harvard University Cambridge 33545 US \n",
+ "1 grid.17063.33 University of Toronto Toronto 21731 CA \n",
+ "2 grid.21107.35 Johns Hopkins University Baltimore 19419 US \n",
+ "3 grid.4991.5 University of Oxford Oxford 19345 GB \n",
+ "4 grid.83440.3b University College London London 19047 GB \n",
"\n",
- " linkout longitude name \\\n",
- "0 [http://www.harvard.edu/] -71.116650 Harvard University \n",
- "1 [http://www.ox.ac.uk/] -1.254010 University of Oxford \n",
- "2 [http://www.utoronto.ca/] -79.395000 University of Toronto \n",
- "3 [https://www.jhu.edu/] -76.620280 Johns Hopkins University \n",
- "4 [http://www.ucl.ac.uk/] -0.133982 University College London \n",
+ " country_name latitude linkout longitude \\\n",
+ "0 United States 42.377052 [http://www.harvard.edu/] -71.116650 \n",
+ "1 Canada 43.661667 [http://www.utoronto.ca/] -79.395000 \n",
+ "2 United States 39.328888 [https://www.jhu.edu/] -76.620280 \n",
+ "3 United Kingdom 51.753437 [http://www.ox.ac.uk/] -1.254010 \n",
+ "4 United Kingdom 51.524470 [http://www.ucl.ac.uk/] -0.133982 \n",
"\n",
" state_name types acronym \n",
"0 Massachusetts [Education] NaN \n",
- "1 Oxfordshire [Education] NaN \n",
- "2 Ontario [Education] NaN \n",
- "3 Maryland [Education] JHU \n",
+ "1 Ontario [Education] NaN \n",
+ "2 Maryland [Education] JHU \n",
+ "3 Oxfordshire [Education] NaN \n",
"4 NaN [Education] UCL "
]
},
@@ -1916,6 +1933,13 @@
"Education"
]
],
+ [
+ "Seattle",
+ "grid.34477.33",
+ [
+ "Education"
+ ]
+ ],
[
"Stanford",
"grid.168010.e",
@@ -1924,8 +1948,8 @@
]
],
[
- "Seattle",
- "grid.34477.33",
+ "Ann Arbor",
+ "grid.214458.e",
[
"Education"
]
@@ -1938,8 +1962,8 @@
]
],
[
- "Ann Arbor",
- "grid.214458.e",
+ "New Haven",
+ "grid.47100.32",
[
"Education"
]
@@ -1952,8 +1976,8 @@
]
],
[
- "New Haven",
- "grid.47100.32",
+ "Los Angeles",
+ "grid.19006.3e",
[
"Education"
]
@@ -1966,29 +1990,29 @@
]
],
[
- "New York",
- "grid.21729.3f",
+ "Chapel Hill",
+ "grid.10698.36",
[
"Education"
]
],
[
- "Los Angeles",
- "grid.19006.3e",
+ "Atlanta",
+ "grid.189967.8",
[
"Education"
]
],
[
- "Ithaca",
- "grid.5386.8",
+ "New York",
+ "grid.137628.9",
[
"Education"
]
],
[
- "Atlanta",
- "grid.189967.8",
+ "New York",
+ "grid.21729.3f",
[
"Education"
]
@@ -2000,13 +2024,6 @@
"Healthcare"
]
],
- [
- "New York",
- "grid.59734.3c",
- [
- "Education"
- ]
- ],
[
"San Diego",
"grid.266100.3",
@@ -2015,8 +2032,8 @@
]
],
[
- "New York",
- "grid.137628.9",
+ "Durham",
+ "grid.26009.3d",
[
"Education"
]
@@ -2029,15 +2046,15 @@
]
],
[
- "Durham",
- "grid.26009.3d",
+ "Minneapolis",
+ "grid.17635.36",
[
"Education"
]
],
[
- "Chapel Hill",
- "grid.10698.36",
+ "Pittsburgh",
+ "grid.21925.3d",
[
"Education"
]
@@ -2057,15 +2074,22 @@
]
],
[
- "Pittsburgh",
- "grid.21925.3d",
+ "New York",
+ "grid.59734.3c",
[
"Education"
]
],
[
- "Minneapolis",
- "grid.17635.36",
+ "Ithaca",
+ "grid.5386.8",
+ [
+ "Education"
+ ]
+ ],
+ [
+ "St Louis",
+ "grid.4367.6",
[
"Education"
]
@@ -2083,116 +2107,48 @@
"hovertext": [
"Harvard University",
"Johns Hopkins University",
- "Stanford University",
"University of Washington",
+ "Stanford University",
+ "University of Michigan-Ann Arbor",
"University of Pennsylvania",
- "University of Michigan",
- "University of California, San Francisco",
"Yale University",
- "Massachusetts General Hospital",
- "Columbia University",
+ "University of California, San Francisco",
"University of California, Los Angeles",
- "Cornell University",
+ "Massachusetts General Hospital",
+ "University of North Carolina at Chapel Hill",
"Emory University",
- "Brigham and Women's Hospital",
- "Icahn School of Medicine at Mount Sinai",
- "University of California, San Diego",
"New York University",
- "Mayo Clinic",
+ "Columbia University",
+ "Brigham and Womens Hospital Inc",
+ "University of California, San Diego",
"Duke University",
- "University of North Carolina at Chapel Hill",
+ "Mayo Clinic",
+ "University of Minnesota Twin Cities",
+ "University of Pittsburgh",
"University of Florida",
"Northwestern University",
- "University of Pittsburgh",
- "University of Minnesota",
+ "Icahn School of Medicine at Mount Sinai",
+ "Cornell University",
+ "Washington University in St. Louis",
"Boston University"
],
- "lat": [
- 42.377052,
- 39.328888,
- 37.43,
- 47.655537,
- 39.952457,
- 42.278305,
- 37.7628,
- 41.302094,
- 42.362804,
- 40.8076,
- 34.072224,
- 42.44851,
- 33.792786,
- 42.3356,
- 40.789085,
- 32.881,
- 40.73,
- 44.02407,
- 36.003147,
- 35.905163,
- 29.643902,
- 42.05485,
- 40.443504,
- 44.974194,
- 42.3496
- ],
+ "lat": {
+ "bdata": "GXJsPUMwRUD/BYIAGapDQLMo7KLo00dA16NwPQq3QkAaqIx/nyNFQFPsaBzq+UNAriglBKumREDEsS5uo+FCQCkF3V7SCEFAAAAAAAAA+H9ORpVh3PNBQANd+wJ65UBAPQrXo3BdREDzH9JvX2dEQAAAAAAAAPh/+yMMA5ZwQEBOCvMeZwBCQEloy7kUA0ZAzvqUY7J8RkCV0jO9xDhEQDnU78LWpD1AwhcmUwUHRUAAAAAAAAD4f+j2ksZoOUVALINqgxNTQ0A/V1uxvyxFQA==",
+ "dtype": "f8"
+ },
"legendgroup": "United States",
- "lon": [
- -71.11665,
- -76.62028,
- -122.17,
- -122.30353,
- -75.19322,
- -83.73822,
- -122.45767,
- -72.93066,
- -71.068634,
- -73.96239,
- -118.4441,
- -76.47862,
- -84.32401,
- -71.106415,
- -73.95311,
- -117.238,
- -73.995,
- -92.46631,
- -78.926895,
- -79.04694,
- -82.35495,
- -87.67394,
- -79.961525,
- -93.22776,
- -71.0997
- ],
+ "lon": {
+ "bdata": "BcWPMXfHUcA5l+KqsidTwLbWFwltk17AexSuR+GKXsAzUBn/Pu9UwLg7a7ddzFLAgez17o87UsAPlxx3Sp1ewIrNx7WhnF3AAAAAAAAA+H/0N6EQAcNTwO1kcJS8FFXASOF6FK5/UsDW/znMl31SwAAAAAAAAPh/pn1zf/VOXcDc9Gc/UrtTwA7z5QXYHVfAkdWtnpNOV8BUUiegif1TwMZtNIC3llTA19081SHrVcAAAAAAAAD4f4rNx7WhHlPAi/1l9+STVsBR2ht8YcZRwA==",
+ "dtype": "f8"
+ },
"marker": {
"color": "#636efa",
- "size": [
- 9846,
- 5289,
- 4157,
- 4125,
- 3923,
- 3781,
- 3644,
- 3629,
- 3554,
- 3522,
- 3038,
- 2985,
- 2966,
- 2925,
- 2736,
- 2614,
- 2422,
- 2380,
- 2360,
- 2173,
- 2141,
- 2139,
- 2120,
- 2027,
- 2019
- ],
+ "size": {
+ "bdata": "CYMAANtLAAC4PgAAXTsAAEA4AAAcNwAANTQAALAzAABzLQAAySwAAEYrAABmKgAA3ykAAM0oAAAmJgAAviMAAJgjAABrIwAARiMAACAjAADlIQAAdCEAAFghAAAxIQAARB8AAAcfAAA=",
+ "dtype": "i4"
+ },
"sizemode": "area",
- "sizeref": 24.615,
+ "sizeref": 83.8625,
"symbol": "circle"
},
"mode": "markers",
@@ -2200,6 +2156,69 @@
"showlegend": true,
"type": "scattergeo"
},
+ {
+ "customdata": [
+ [
+ "Toronto",
+ "grid.17063.33",
+ [
+ "Education"
+ ]
+ ],
+ [
+ "Vancouver",
+ "grid.17091.3e",
+ [
+ "Education"
+ ]
+ ],
+ [
+ "Montreal",
+ "grid.14709.3b",
+ [
+ "Education"
+ ]
+ ],
+ [
+ "Hamilton",
+ "grid.25073.33",
+ [
+ "Education"
+ ]
+ ]
+ ],
+ "geo": "geo",
+ "hovertemplate": "%{hovertext}
"
+ " }) }; "
]
},
"metadata": {},
@@ -5451,7 +5270,7 @@
"source": [
"## Where to find out more\n",
"\n",
- "Please have a look at the [official documentation](https://docs.dimensions.ai/dsl/data-sources.html) for more information on the GRID source."
+ "Please have a look at the [official documentation](https://docs.dimensions.ai/dsl/data-sources.html) for more information on the organizations data source."
]
}
],
@@ -5481,7 +5300,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.9.9"
+ "version": "3.12.8"
}
},
"nbformat": 4,
diff --git a/cookbooks/8-organizations/2-Industry-Collaboration.ipynb b/cookbooks/8-organizations/2-Industry-Collaboration.ipynb
index 310851ec..55967f0e 100644
--- a/cookbooks/8-organizations/2-Industry-Collaboration.ipynb
+++ b/cookbooks/8-organizations/2-Industry-Collaboration.ipynb
@@ -11,7 +11,7 @@
"source": [
"# Identifying the Industry Collaborators of an Academic Institution\n",
"\n",
- "Dimensions uses [GRID](https://grid.ac/) identifiers for institutions, hence you can take advantage of the GRID metadata with Dimensions queries. \n",
+ "Dimensions has an enormous amount of data about organizations and you can query this data with the Dimensions Analytics API.\n",
"\n",
"In this tutorial we identify all organizations that have an `industry` type. \n",
"\n",
@@ -29,7 +29,7 @@
"text": [
"==\n",
"CHANGELOG\n",
- "This notebook was last run on Jan 25, 2022\n",
+ "This notebook was last run on Sep 10, 2025\n",
"==\n"
]
}
@@ -64,19 +64,9 @@
"text/html": [
" \n",
+ " \n",
" "
]
},
@@ -96,8 +86,8 @@
"text": [
"==\n",
"Logging in..\n",
- "\u001b[2mDimcli - Dimensions API Client (v0.9.6)\u001b[0m\n",
- "\u001b[2mConnected to: - DSL v2.0\u001b[0m\n",
+ "\u001b[2mDimcli - Dimensions API Client (v1.4)\u001b[0m\n",
+ "\u001b[2mConnected to: - DSL v2.12\u001b[0m\n",
"\u001b[2mMethod: dsl.ini file\u001b[0m\n"
]
}
@@ -150,8 +140,8 @@
"id": "L6uIjSVnGRQV"
},
"source": [
- "For the purpose of this exercise, we will use [University of Trento, Italy (grid.11696.39)](https://grid.ac/institutes/grid.11696.39) as a starting point. \n",
- "You can pick any other GRID organization of course. Just use a [DSL query](https://digital-science.github.io/dimensions-api-lab/cookbooks/8-organizations/1-GRID-preview.html) or the [GRID website](https://grid.ac/institutes) to discover the ID of an organization that interests you. "
+ "For the purpose of this exercise, we will use University of Trento, Italy (organization ID `grid.11696.39`) as a starting point. \n",
+ "You can pick any other organization of course. Just use a [DSL query](https://digital-science.github.io/dimensions-api-lab/cookbooks/8-organizations/1-GRID-preview.html) to discover the ID of an organization that interests you. "
]
},
{
@@ -182,7 +172,7 @@
{
"data": {
"text/html": [
- "GRID: grid.11696.39 - University of Trento ⧉"
+ "Organization: grid.11696.39 - University of Trento ⧉"
],
"text/plain": [
""
@@ -206,7 +196,7 @@
],
"source": [
"#@markdown The main organization we are interested in:\n",
- "GRIDID = \"grid.11696.39\" #@param {type:\"string\"}\n",
+ "ORGID = \"grid.11696.39\" #@param {type:\"string\"}\n",
" \n",
"#@markdown The start/end year of publications used to extract industry collaborations:\n",
"YEAR_START = 2000 #@param {type: \"slider\", min: 1950, max: 2020}\n",
@@ -219,11 +209,11 @@
"# gen link to Dimensions\n",
"#\n",
"try:\n",
- " gridname = dsl.query(f\"\"\"search organizations where id=\"{GRIDID}\" return organizations[name]\"\"\", verbose=False).organizations[0]['name']\n",
+ " orgname = dsl.query(f\"\"\"search organizations where id=\"{ORGID}\" return organizations[name]\"\"\", verbose=False).organizations[0]['name']\n",
"except:\n",
- " gridname = \"\"\n",
- "from IPython.core.display import display, HTML\n",
- "display(HTML('GRID: {} - {} ⧉'.format(dimensions_url(GRIDID), GRIDID, gridname)))\n",
+ " orgname = \"\"\n",
+ "from IPython.display import display, HTML\n",
+ "display(HTML('Organization: {} - {} ⧉'.format(dimensions_url(ORGID), ORGID, orgname)))\n",
"display(HTML('Time period: {} to {}
"
+ " }) }; "
]
},
"metadata": {},
@@ -9070,7 +6383,7 @@
" x=\"aff_name\", \n",
" height=900, \n",
" color=\"aff_country\",\n",
- " title=f\"Top Countries and Industry collaborators for {gridname}-{GRIDID}\",\n",
+ " title=f\"Top Countries and Industry collaborators for {orgname}-{ORGID}\",\n",
" color_discrete_sequence=px.colors.diverging.Spectral)"
]
}
@@ -9099,7 +6412,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.9.9"
+ "version": "3.12.8"
},
"nteract": {
"version": "0.15.0"
diff --git a/cookbooks/8-organizations/3-Organizations-Collaboration-Network.ipynb b/cookbooks/8-organizations/3-Organizations-Collaboration-Network.ipynb
index 9dc9cbcf..ce8f4f27 100644
--- a/cookbooks/8-organizations/3-Organizations-Collaboration-Network.ipynb
+++ b/cookbooks/8-organizations/3-Organizations-Collaboration-Network.ipynb
@@ -28,7 +28,7 @@
"text": [
"==\n",
"CHANGELOG\n",
- "This notebook was last run on Aug 22, 2023\n",
+ "This notebook was last run on Sep 10, 2025\n",
"==\n"
]
}
@@ -58,33 +58,14 @@
"Collapsed": "false"
},
"outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.1.2\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m23.2.1\u001b[0m\n",
- "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n"
- ]
- },
{
"data": {
"text/html": [
" \n",
+ " \n",
" "
]
},
@@ -104,8 +85,8 @@
"text": [
"==\n",
"Logging in..\n",
- "\u001b[2mDimcli - Dimensions API Client (v1.1)\u001b[0m\n",
- "\u001b[2mConnected to: - DSL v2.7\u001b[0m\n",
+ "\u001b[2mDimcli - Dimensions API Client (v1.4)\u001b[0m\n",
+ "\u001b[2mConnected to: - DSL v2.12\u001b[0m\n",
"\u001b[2mMethod: dsl.ini file\u001b[0m\n"
]
}
@@ -159,9 +140,9 @@
"id": "L6uIjSVnGRQV"
},
"source": [
- "For the purpose of this exercise, we will use [grid.412125.1](https://grid.ac/institutes/grid.412125.1) (King Abdulaziz University, Saudi Arabia). \n",
+ "For the purpose of this exercise, we will use King Abdulaziz University, Saudi Arabia (grid.412125.1). \n",
"\n",
- "> You can try using a different GRID ID to see how results change, e.g. by [browsing for another GRID organization](https://grid.ac/institutes).\n"
+ "> You can try using a different organization ID to see how results change."
]
},
{
@@ -174,7 +155,7 @@
{
"data": {
"text/html": [
- "GRID: grid.412125.1 - King Abdulaziz University ⧉"
+ "Organization: grid.412125.1 - King Abdulaziz University ⧉"
],
"text/plain": [
""
@@ -209,7 +190,7 @@
}
],
"source": [
- "GRIDID = \"grid.412125.1\" #@param {type:\"string\"}\n",
+ "ORGID = \"grid.412125.1\" #@param {type:\"string\"}\n",
" \n",
"#@markdown The start/end year of publications used to extract patents\n",
"YEAR_START = 2000 #@param {type: \"slider\", min: 1950, max: 2020}\n",
@@ -226,11 +207,11 @@
"# gen link to Dimensions\n",
"#\n",
"try:\n",
- " gridname = dsl.query(f\"\"\"search organizations where id=\"{GRIDID}\" return organizations[name]\"\"\", verbose=False).organizations[0]['name']\n",
+ " orgname = dsl.query(f\"\"\"search organizations where id=\"{ORGID}\" return organizations[name]\"\"\", verbose=False).organizations[0]['name']\n",
"except:\n",
- " gridname = \"\"\n",
+ " orgname = \"\"\n",
"from IPython.display import display, HTML\n",
- "display(HTML('GRID: {} - {} ⧉'.format(dimensions_url(GRIDID), GRIDID, gridname)))\n",
+ "display(HTML('Organization: {} - {} ⧉'.format(dimensions_url(ORGID), ORGID, orgname)))\n",
"display(HTML('Time period: {} to {}'.format(YEAR_START, YEAR_END)))\n",
"display(HTML('Topic: \"{}\"
'.format(TOPIC)))\n"
]
@@ -292,10 +273,10 @@
"Note: \n",
"\n",
"* **Extra columns**. The resulting dataframe contains two extra columns: a) `id_from`, which is the 'seed' institution we start from; b) `level`, an optional parameter representing the network depth of the query (we'll see later how it is used with recursive querying).\n",
- "* **Self-collaboration**. The query returns 11 records - that's because the first one is normally the seed GRID (due to internal collaborations) which we will omit from the results.\n",
+ "* **Self-collaboration**. The query returns 11 records - that's because the first one is normally the seed organization (due to internal collaborations) which we will omit from the results.\n",
"* **Custom changes**. Lastly, it's important to remember that this step can be easily customised by changing the `query_template` sttructure. For example, we could focus on specific research areas (using FOR codes), or set a threshold based on citation counts. The possibilities are endless! \n",
"\n",
- "For example, let's try it out with our GRID ID:"
+ "For example, let's try it out with our organization ID:"
]
},
{
@@ -341,6 +322,7 @@
"
acronym
\n",
"
city_name
\n",
"
count
\n",
+ "
country_code
\n",
"
country_name
\n",
"
latitude
\n",
"
linkout
\n",
@@ -358,7 +340,8 @@
"
King Abdulaziz University
\n",
"
KAU
\n",
"
Jeddah
\n",
- "
1444
\n",
+ "
1435
\n",
+ "
SA
\n",
"
Saudi Arabia
\n",
"
21.493889
\n",
"
[http://www.kau.edu.sa/home_english.aspx]
\n",
@@ -375,6 +358,7 @@
"
NU
\n",
"
Boston
\n",
"
106
\n",
+ "
US
\n",
"
United States
\n",
"
42.339830
\n",
"
[http://www.northeastern.edu/]
\n",
@@ -391,6 +375,7 @@
"
NaN
\n",
"
Cambridge
\n",
"
98
\n",
+ "
US
\n",
"
United States
\n",
"
42.377052
\n",
"
[http://www.harvard.edu/]
\n",
@@ -407,6 +392,7 @@
"
MIT
\n",
"
Cambridge
\n",
"
73
\n",
+ "
US
\n",
"
United States
\n",
"
42.359820
\n",
"
[http://web.mit.edu/]
\n",
@@ -423,6 +409,7 @@
"
NU
\n",
"
Evanston
\n",
"
59
\n",
+ "
US
\n",
"
United States
\n",
"
42.054850
\n",
"
[http://www.northwestern.edu/]
\n",
@@ -434,27 +421,12 @@
" \n",
"
\n",
"
5
\n",
- "
grid.413735.7
\n",
- "
Harvard–MIT Division of Health Sciences and Te...
\n",
- "
HST
\n",
- "
Cambridge
\n",
- "
58
\n",
- "
United States
\n",
- "
42.361780
\n",
- "
[http://hst.mit.edu/]
\n",
- "
-71.086914
\n",
- "
[Education]
\n",
- "
Massachusetts
\n",
- "
grid.412125.1
\n",
- "
1
\n",
- "
\n",
- "
\n",
- "
6
\n",
"
grid.411340.3
\n",
"
Aligarh Muslim University
\n",
"
AMU
\n",
"
Aligarh
\n",
- "
47
\n",
+ "
46
\n",
+ "
IN
\n",
"
India
\n",
"
27.917370
\n",
"
[http://www.amu.ac.in/]
\n",
@@ -465,12 +437,13 @@
"
1
\n",
"
\n",
"
\n",
- "
7
\n",
+ "
6
\n",
"
grid.412621.2
\n",
"
Quaid-i-Azam University
\n",
"
QAU
\n",
"
Islamabad
\n",
- "
47
\n",
+ "
46
\n",
+ "
PK
\n",
"
Pakistan
\n",
"
33.747223
\n",
"
[http://www.qau.edu.pk/]
\n",
@@ -481,12 +454,47 @@
"
1
\n",
"
\n",
"
\n",
+ "
7
\n",
+ "
grid.411818.5
\n",
+ "
Jamia Millia Islamia
\n",
+ "
JMI
\n",
+ "
New Delhi
\n",
+ "
40
\n",
+ "
IN
\n",
+ "
India
\n",
+ "
28.561607
\n",
+ "
[http://jmi.ac.in/]
\n",
+ "
77.280150
\n",
+ "
[Education]
\n",
+ "
NaN
\n",
+ "
grid.412125.1
\n",
+ "
1
\n",
+ "
\n",
+ "
\n",
"
8
\n",
+ "
grid.62560.37
\n",
+ "
Brigham and Womens Hospital Inc
\n",
+ "
BWH
\n",
+ "
Boston
\n",
+ "
40
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
NaN
\n",
+ "
[http://www.brighamandwomens.org/]
\n",
+ "
NaN
\n",
+ "
[Healthcare]
\n",
+ "
Massachusetts
\n",
+ "
grid.412125.1
\n",
+ "
1
\n",
+ "
\n",
+ "
\n",
+ "
9
\n",
"
grid.33003.33
\n",
"
Suez Canal University
\n",
"
NaN
\n",
"
Ismailia
\n",
- "
42
\n",
+ "
39
\n",
+ "
EG
\n",
"
Egypt
\n",
"
30.622778
\n",
"
[http://scuegypt.edu.eg/ar/]
\n",
@@ -497,28 +505,13 @@
"
1
\n",
"
\n",
"
\n",
- "
9
\n",
- "
grid.411818.5
\n",
- "
Jamia Millia Islamia
\n",
- "
JMI
\n",
- "
New Delhi
\n",
- "
42
\n",
- "
India
\n",
- "
28.561607
\n",
- "
[http://jmi.ac.in/]
\n",
- "
77.280150
\n",
- "
[Education]
\n",
- "
NaN
\n",
- "
grid.412125.1
\n",
- "
1
\n",
- "
\n",
- "
\n",
"
10
\n",
"
grid.56302.32
\n",
"
King Saud University
\n",
"
KSU
\n",
"
Riyadh
\n",
- "
42
\n",
+ "
39
\n",
+ "
SA
\n",
"
Saudi Arabia
\n",
"
24.723982
\n",
"
[http://ksu.edu.sa/en/]
\n",
@@ -533,44 +526,44 @@
""
],
"text/plain": [
- " id name acronym \\\n",
- "0 grid.412125.1 King Abdulaziz University KAU \n",
- "1 grid.261112.7 Northeastern University NU \n",
- "2 grid.38142.3c Harvard University NaN \n",
- "3 grid.116068.8 Massachusetts Institute of Technology MIT \n",
- "4 grid.16753.36 Northwestern University NU \n",
- "5 grid.413735.7 Harvard–MIT Division of Health Sciences and Te... HST \n",
- "6 grid.411340.3 Aligarh Muslim University AMU \n",
- "7 grid.412621.2 Quaid-i-Azam University QAU \n",
- "8 grid.33003.33 Suez Canal University NaN \n",
- "9 grid.411818.5 Jamia Millia Islamia JMI \n",
- "10 grid.56302.32 King Saud University KSU \n",
+ " id name acronym city_name \\\n",
+ "0 grid.412125.1 King Abdulaziz University KAU Jeddah \n",
+ "1 grid.261112.7 Northeastern University NU Boston \n",
+ "2 grid.38142.3c Harvard University NaN Cambridge \n",
+ "3 grid.116068.8 Massachusetts Institute of Technology MIT Cambridge \n",
+ "4 grid.16753.36 Northwestern University NU Evanston \n",
+ "5 grid.411340.3 Aligarh Muslim University AMU Aligarh \n",
+ "6 grid.412621.2 Quaid-i-Azam University QAU Islamabad \n",
+ "7 grid.411818.5 Jamia Millia Islamia JMI New Delhi \n",
+ "8 grid.62560.37 Brigham and Womens Hospital Inc BWH Boston \n",
+ "9 grid.33003.33 Suez Canal University NaN Ismailia \n",
+ "10 grid.56302.32 King Saud University KSU Riyadh \n",
"\n",
- " city_name count country_name latitude \\\n",
- "0 Jeddah 1444 Saudi Arabia 21.493889 \n",
- "1 Boston 106 United States 42.339830 \n",
- "2 Cambridge 98 United States 42.377052 \n",
- "3 Cambridge 73 United States 42.359820 \n",
- "4 Evanston 59 United States 42.054850 \n",
- "5 Cambridge 58 United States 42.361780 \n",
- "6 Aligarh 47 India 27.917370 \n",
- "7 Islamabad 47 Pakistan 33.747223 \n",
- "8 Ismailia 42 Egypt 30.622778 \n",
- "9 New Delhi 42 India 28.561607 \n",
- "10 Riyadh 42 Saudi Arabia 24.723982 \n",
+ " count country_code country_name latitude \\\n",
+ "0 1435 SA Saudi Arabia 21.493889 \n",
+ "1 106 US United States 42.339830 \n",
+ "2 98 US United States 42.377052 \n",
+ "3 73 US United States 42.359820 \n",
+ "4 59 US United States 42.054850 \n",
+ "5 46 IN India 27.917370 \n",
+ "6 46 PK Pakistan 33.747223 \n",
+ "7 40 IN India 28.561607 \n",
+ "8 40 US United States NaN \n",
+ "9 39 EG Egypt 30.622778 \n",
+ "10 39 SA Saudi Arabia 24.723982 \n",
"\n",
- " linkout longitude types \\\n",
- "0 [http://www.kau.edu.sa/home_english.aspx] 39.250280 [Education] \n",
- "1 [http://www.northeastern.edu/] -71.089180 [Education] \n",
- "2 [http://www.harvard.edu/] -71.116650 [Education] \n",
- "3 [http://web.mit.edu/] -71.092110 [Education] \n",
- "4 [http://www.northwestern.edu/] -87.673940 [Education] \n",
- "5 [http://hst.mit.edu/] -71.086914 [Education] \n",
- "6 [http://www.amu.ac.in/] 78.077850 [Education] \n",
- "7 [http://www.qau.edu.pk/] 73.138885 [Education] \n",
- "8 [http://scuegypt.edu.eg/ar/] 32.275000 [Education] \n",
- "9 [http://jmi.ac.in/] 77.280150 [Education] \n",
- "10 [http://ksu.edu.sa/en/] 46.645840 [Education] \n",
+ " linkout longitude types \\\n",
+ "0 [http://www.kau.edu.sa/home_english.aspx] 39.250280 [Education] \n",
+ "1 [http://www.northeastern.edu/] -71.089180 [Education] \n",
+ "2 [http://www.harvard.edu/] -71.116650 [Education] \n",
+ "3 [http://web.mit.edu/] -71.092110 [Education] \n",
+ "4 [http://www.northwestern.edu/] -87.673940 [Education] \n",
+ "5 [http://www.amu.ac.in/] 78.077850 [Education] \n",
+ "6 [http://www.qau.edu.pk/] 73.138885 [Education] \n",
+ "7 [http://jmi.ac.in/] 77.280150 [Education] \n",
+ "8 [http://www.brighamandwomens.org/] NaN [Healthcare] \n",
+ "9 [http://scuegypt.edu.eg/ar/] 32.275000 [Education] \n",
+ "10 [http://ksu.edu.sa/en/] 46.645840 [Education] \n",
"\n",
" state_name id_from level \n",
"0 NaN grid.412125.1 1 \n",
@@ -578,10 +571,10 @@
"2 Massachusetts grid.412125.1 1 \n",
"3 Massachusetts grid.412125.1 1 \n",
"4 Illinois grid.412125.1 1 \n",
- "5 Massachusetts grid.412125.1 1 \n",
- "6 Uttar Pradesh grid.412125.1 1 \n",
+ "5 Uttar Pradesh grid.412125.1 1 \n",
+ "6 NaN grid.412125.1 1 \n",
"7 NaN grid.412125.1 1 \n",
- "8 NaN grid.412125.1 1 \n",
+ "8 Massachusetts grid.412125.1 1 \n",
"9 NaN grid.412125.1 1 \n",
"10 NaN grid.412125.1 1 "
]
@@ -592,7 +585,7 @@
}
],
"source": [
- "get_collaborators(GRIDID, printquery=True)"
+ "get_collaborators(ORGID, printquery=True)"
]
},
{
@@ -605,9 +598,9 @@
"\n",
"What if we want to retrieve the collaborators of the collaborators? In other words, what if we want to generate a larger network?\n",
"\n",
- "If we think of our collaboration data as a [graph structure](https://en.wikipedia.org/wiki/Graph_(discrete_mathematics)) with nodes and edges, we can see that the `get_collaborators` function defined above is limited. That's because it allows to obtain only the objects *directly* linked to the 'seed' GRID organization. \n",
+ "If we think of our collaboration data as a [graph structure](https://en.wikipedia.org/wiki/Graph_(discrete_mathematics)) with nodes and edges, we can see that the `get_collaborators` function defined above is limited. That's because it allows to obtain only the objects *directly* linked to the 'seed' organization. \n",
"\n",
- "We would like to run the same collaborators-extraction step **iteratively** for any GRID ID in our results, so to generate an N-degrees network where N is chosen by us. \n",
+ "We would like to run the same collaborators-extraction step **iteratively** for any ID in our results, so to generate an N-degrees network where N is chosen by us. \n",
"\n",
"To this purpose, we can set up a [recursive](https://en.wikipedia.org/wiki/Recursion_(computer_science)) function. This function essentially repeats the `get_collaborators` function as many times as needed. Here's what it looks like:"
]
@@ -627,8 +620,8 @@
" print(\"--\" * thislevel, seed, \" :: level =\", thislevel)\n",
" if thislevel < maxlevel:\n",
" # remove the originating grid-id\n",
- " gridslist = list(results[results['id'] != GRIDID]['id'])\n",
- " next_level_results = [recursive_network(x, maxlevel, thislevel+1) for x in gridslist]\n",
+ " orgslist = list(results[results['id'] != ORGID]['id'])\n",
+ " next_level_results = [recursive_network(x, maxlevel, thislevel+1) for x in orgslist]\n",
" next_level_results = pd.concat(next_level_results)\n",
" results = pd.concat([results, next_level_results])\n",
" return results\n",
@@ -671,11 +664,11 @@
"---- grid.38142.3c :: level = 2\n",
"---- grid.116068.8 :: level = 2\n",
"---- grid.16753.36 :: level = 2\n",
- "---- grid.413735.7 :: level = 2\n",
"---- grid.411340.3 :: level = 2\n",
"---- grid.412621.2 :: level = 2\n",
- "---- grid.33003.33 :: level = 2\n",
"---- grid.411818.5 :: level = 2\n",
+ "---- grid.62560.37 :: level = 2\n",
+ "---- grid.33003.33 :: level = 2\n",
"---- grid.56302.32 :: level = 2\n"
]
},
@@ -721,7 +714,7 @@
"
grid.412125.1
\n",
"
grid.412125.1
\n",
"
1
\n",
- "
1444
\n",
+ "
1435
\n",
"
King Abdulaziz University
\n",
"
KAU
\n",
"
Jeddah
\n",
@@ -802,7 +795,7 @@
],
"text/plain": [
" id_from id_to level count \\\n",
- "0 grid.412125.1 grid.412125.1 1 1444 \n",
+ "0 grid.412125.1 grid.412125.1 1 1435 \n",
"1 grid.412125.1 grid.261112.7 1 106 \n",
"2 grid.412125.1 grid.38142.3c 1 98 \n",
"3 grid.412125.1 grid.116068.8 1 73 \n",
@@ -836,7 +829,7 @@
}
],
"source": [
- "collaborators = recursive_network(GRIDID, maxlevel=2)\n",
+ "collaborators = recursive_network(ORGID, maxlevel=2)\n",
"# change column order for readability purposes\n",
"collaborators.rename(columns={\"id\": \"id_to\"}, inplace=True)\n",
"collaborators = collaborators[['id_from', 'id_to', 'level', 'count', 'name', 'acronym', 'city_name', 'state_name', 'country_name', 'latitude', 'longitude', 'linkout', 'types' ]]\n",
@@ -896,7 +889,7 @@
" "
],
"text/plain": [
- ""
+ ""
]
},
"execution_count": 8,
@@ -945,13 +938,13 @@
"\n",
" # calc size based on level\n",
" maxsize = int(nodes['level'].max()) + 1\n",
- " if row['id_to'] == GRIDID:\n",
+ " if row['id_to'] == ORGID:\n",
" size = maxsize\n",
" else:\n",
" size = maxsize - row['level']\n",
"\n",
" # calc color based on level\n",
- " if row['id_to'] == GRIDID:\n",
+ " if row['id_to'] == ORGID:\n",
" color = palette[0]\n",
" else:\n",
" color = palette[row['level'] * 2]\n",
@@ -990,10 +983,10 @@
" return g\n",
"\n",
"#\n",
- "# finall, run the viz builder\n",
+ "# finally, run the viz builder\n",
"#\n",
"g = build_visualization(collaborators)\n",
- "g.show(f\"network_{GRIDID}.html\")"
+ "g.show(f\"network_{ORGID}.html\")"
]
},
{
@@ -1006,7 +999,7 @@
"\n",
"What if we want to show a collaboration network focusing only on 'government' organizations? \n",
"\n",
- "That's pretty easy to do, since the GRID database includes information about **organization types**. We can easily see what types are available using the API and a `facet` query:"
+ "That's pretty easy to do, since the organization data set includes information about **organization types**. We can easily see what types are available using the API and a `facet` query:"
]
},
{
@@ -1020,8 +1013,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "Returned Types: 9\n",
- "\u001b[2mTime: 1.00s\u001b[0m\n"
+ "Returned Types: 8\n",
+ "\u001b[2mTime: 2.54s\u001b[0m\n"
]
},
{
@@ -1052,64 +1045,58 @@
" \n",
"
\n",
"
0
\n",
- "
Company
\n",
- "
30742
\n",
+ "
Other
\n",
+ "
165766
\n",
"
\n",
"
\n",
"
1
\n",
- "
Education
\n",
- "
20761
\n",
+ "
Company
\n",
+ "
158994
\n",
"
\n",
"
\n",
"
2
\n",
- "
Nonprofit
\n",
- "
17573
\n",
+ "
Education
\n",
+ "
22805
\n",
"
\n",
"
\n",
"
3
\n",
- "
Healthcare
\n",
- "
13926
\n",
+ "
Nonprofit
\n",
+ "
18361
\n",
"
\n",
"
\n",
"
4
\n",
- "
Facility
\n",
- "
10168
\n",
+ "
Healthcare
\n",
+ "
14865
\n",
"
\n",
"
\n",
"
5
\n",
"
Government
\n",
- "
6580
\n",
+ "
11545
\n",
"
\n",
"
\n",
"
6
\n",
- "
Other
\n",
- "
4017
\n",
+ "
Facility
\n",
+ "
10692
\n",
"
\n",
"
\n",
"
7
\n",
"
Archive
\n",
- "
2926
\n",
- "
\n",
- "
\n",
- "
8
\n",
- "
Education,Company
\n",
- "
1
\n",
+ "
3059
\n",
"
\n",
" \n",
"\n",
""
],
"text/plain": [
- " id count\n",
- "0 Company 30742\n",
- "1 Education 20761\n",
- "2 Nonprofit 17573\n",
- "3 Healthcare 13926\n",
- "4 Facility 10168\n",
- "5 Government 6580\n",
- "6 Other 4017\n",
- "7 Archive 2926\n",
- "8 Education,Company 1"
+ " id count\n",
+ "0 Other 165766\n",
+ "1 Company 158994\n",
+ "2 Education 22805\n",
+ "3 Nonprofit 18361\n",
+ "4 Healthcare 14865\n",
+ "5 Government 11545\n",
+ "6 Facility 10692\n",
+ "7 Archive 3059"
]
},
"execution_count": 9,
@@ -1133,7 +1120,7 @@
"* **Get more results**. We increase the number of results returned: `..return research_orgs limit 50`. This is to ensure we still have enough results after removing the ones that don't have the chosen 'type'\n",
"* **Remove unwanted data**. The new query filter `research_orgs.types in [\"{}\"]` will return also publications with multiple authors/affiliations, even though only one of them has the desired 'type'. So an extra step is required and this is achieved via the `keep_type` function below. This function simply filters out all unwanted organizations data after they're retrieved from the API. \n",
"\n",
- "That's it! Run the cell below to generate a new visualization showing only \"Government\" collaborators. Or try changing the value of `GRID_TYPE` to see different results. \n"
+ "That's it! Run the cell below to generate a new visualization showing only \"Government\" collaborators. Or try changing the value of `ORG_TYPE` to see different results. \n"
]
},
{
@@ -1150,7 +1137,6 @@
"-- grid.412125.1 :: level = 1\n",
"---- grid.7327.1 :: level = 2\n",
"---- grid.9227.e :: level = 2\n",
- "---- grid.20256.33 :: level = 2\n",
"---- grid.1089.0 :: level = 2\n",
"---- grid.14467.30 :: level = 2\n",
"network_grid.412125.1_Government.html\n"
@@ -1171,7 +1157,7 @@
" "
],
"text/plain": [
- ""
+ ""
]
},
"execution_count": 10,
@@ -1182,7 +1168,7 @@
"source": [
"#@markdown Try using one of the organization types from the list above\n",
"\n",
- "GRID_TYPE = \"Government\" #@param {type:\"string\"}\n",
+ "ORG_TYPE = \"Government\" #@param {type:\"string\"}\n",
"\n",
"query = \"\"\"search publications {}\n",
" where year in [{}:{}] \n",
@@ -1193,7 +1179,7 @@
"def keep_only_type(data, a_type, orgid):\n",
" clean_list = []\n",
" for x in data.research_orgs:\n",
- " # include also originating GRID to ensure chart is complete\n",
+ " # include also originating org to ensure chart is complete\n",
" if x['id'] == orgid or a_type in x['types']:\n",
" clean_list.append(x)\n",
" data.json['research_orgs'] = clean_list\n",
@@ -1206,8 +1192,8 @@
" TOPIC_CLAUSE = f\"\"\"for \"{TOPIC}\" \"\"\"\n",
" else:\n",
" TOPIC_CLAUSE = \"\"\n",
- " # include also the GRID_TYPE\n",
- " query_full = query.format(TOPIC_CLAUSE, YEAR_START, YEAR_END, orgid, GRID_TYPE)\n",
+ " # include also the ORG_TYPE\n",
+ " query_full = query.format(TOPIC_CLAUSE, YEAR_START, YEAR_END, orgid, ORG_TYPE)\n",
" if printquery: print(query_full)\n",
" data = dsl.query(query_full, verbose=False)\n",
" # remove results with unwanted types \n",
@@ -1221,7 +1207,7 @@
"#\n",
"# RUN THE RECURSIVE QUERY (same code as above)\n",
"#\n",
- "collaborators = recursive_network(GRIDID, maxlevel=2)\n",
+ "collaborators = recursive_network(ORGID, maxlevel=2)\n",
"collaborators.rename(columns={\"id\": \"id_to\"}, inplace=True)\n",
"collaborators = collaborators[['id_from', 'id_to', 'level', 'count', 'name', 'acronym', 'city_name', 'country_name', 'latitude', 'longitude', 'linkout', 'types' ]]\n",
"\n",
@@ -1229,7 +1215,7 @@
"# BUILD VIZ\n",
"#\n",
"g = build_visualization(collaborators)\n",
- "g.show(f\"network_{GRIDID}_{GRID_TYPE}.html\")\n",
+ "g.show(f\"network_{ORGID}_{ORG_TYPE}.html\")\n",
"\n"
]
},
@@ -1272,7 +1258,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.11.1"
+ "version": "3.12.8"
},
"nteract": {
"version": "0.15.0"
diff --git a/cookbooks/8-organizations/4-International-collaboration-by-year.ipynb b/cookbooks/8-organizations/4-International-collaboration-by-year.ipynb
index cea374f0..40286910 100644
--- a/cookbooks/8-organizations/4-International-collaboration-by-year.ipynb
+++ b/cookbooks/8-organizations/4-International-collaboration-by-year.ipynb
@@ -24,7 +24,7 @@
"text": [
"==\n",
"CHANGELOG\n",
- "This notebook was last run on Jan 25, 2022\n",
+ "This notebook was last run on Sep 10, 2025\n",
"==\n"
]
}
@@ -49,7 +49,7 @@
},
{
"cell_type": "code",
- "execution_count": 16,
+ "execution_count": 2,
"metadata": {
"Collapsed": "false"
},
@@ -59,19 +59,9 @@
"text/html": [
" \n",
+ " \n",
" "
]
},
@@ -91,8 +81,8 @@
"text": [
"==\n",
"Logging in..\n",
- "\u001b[2mDimcli - Dimensions API Client (v0.9.6)\u001b[0m\n",
- "\u001b[2mConnected to: - DSL v2.0\u001b[0m\n",
+ "\u001b[2mDimcli - Dimensions API Client (v1.4)\u001b[0m\n",
+ "\u001b[2mConnected to: - DSL v2.12\u001b[0m\n",
"\u001b[2mMethod: dsl.ini file\u001b[0m\n"
]
}
@@ -137,7 +127,7 @@
},
{
"cell_type": "code",
- "execution_count": 17,
+ "execution_count": 3,
"metadata": {
"Collapsed": "false"
},
@@ -146,8 +136,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "Returned Organizations: 16 (total = 16)\n",
- "\u001b[2mTime: 0.57s\u001b[0m\n"
+ "Returned Organizations: 20 (total = 23)\n",
+ "\u001b[2mTime: 0.53s\u001b[0m\n"
]
},
{
@@ -171,225 +161,298 @@
" \n",
"
\n",
"
\n",
+ "
id
\n",
+ "
name
\n",
"
city_name
\n",
+ "
country_code
\n",
"
country_name
\n",
- "
id
\n",
+ "
types
\n",
+ "
state_name
\n",
"
latitude
\n",
"
linkout
\n",
"
longitude
\n",
- "
name
\n",
- "
state_name
\n",
- "
types
\n",
"
acronym
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
+ "
grid.772384.d
\n",
+ "
Trelleborg Marine Systems Melbourne Pty Ltd
\n",
+ "
Victoria
\n",
+ "
AU
\n",
+ "
Australia
\n",
+ "
[Company]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
+ "
grid.746611.3
\n",
+ "
Noyes Bros Melbourne Pty Ltd
\n",
+ "
NaN
\n",
+ "
AU
\n",
+ "
Australia
\n",
+ "
[Other]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
grid.631568.f
\n",
+ "
CityLink Melbourne Ltd
\n",
+ "
NaN
\n",
+ "
AU
\n",
+ "
Australia
\n",
+ "
[Other]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
3
\n",
+ "
grid.530408.a
\n",
+ "
Melbourne Institute of Technology
\n",
"
Melbourne
\n",
+ "
AU
\n",
"
Australia
\n",
+ "
[Nonprofit]
\n",
+ "
Victoria
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
4
\n",
"
grid.511296.8
\n",
+ "
Melbourne Genomics Health Alliance
\n",
+ "
Melbourne
\n",
+ "
AU
\n",
+ "
Australia
\n",
+ "
[Nonprofit]
\n",
+ "
Victoria
\n",
"
-37.797960
\n",
"
[https://www.melbournegenomics.org.au/]
\n",
"
144.953870
\n",
- "
Melbourne Genomics Health Alliance
\n",
- "
Victoria
\n",
- "
[Nonprofit]
\n",
"
NaN
\n",
"
\n",
"
\n",
- "
1
\n",
+ "
5
\n",
+ "
grid.493437.e
\n",
+ "
RMIT Europe
\n",
"
Barcelona
\n",
+ "
ES
\n",
"
Spain
\n",
- "
grid.493437.e
\n",
+ "
[Education]
\n",
+ "
NaN
\n",
"
41.402576
\n",
"
[https://www.rmit.eu]
\n",
"
2.194333
\n",
- "
RMIT Europe
\n",
- "
NaN
\n",
- "
[Education]
\n",
"
RMIT
\n",
"
\n",
"
\n",
- "
2
\n",
+ "
6
\n",
+ "
grid.490309.7
\n",
+ "
Melbourne Sexual Health Centre
\n",
"
Carlton
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.490309.7
\n",
+ "
[Healthcare]
\n",
+ "
Victoria
\n",
"
-37.803123
\n",
"
[https://www.mshc.org.au/]
\n",
"
144.963840
\n",
- "
Melbourne Sexual Health Centre
\n",
- "
Victoria
\n",
- "
[Healthcare]
\n",
"
MSHC
\n",
"
\n",
"
\n",
- "
3
\n",
+ "
7
\n",
+ "
grid.477970.a
\n",
+ "
Melbourne Clinic
\n",
"
Richmond
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.477970.a
\n",
+ "
[Healthcare]
\n",
+ "
Victoria
\n",
"
-37.815063
\n",
"
[http://www.themelbourneclinic.com.au/]
\n",
"
144.999650
\n",
- "
Melbourne Clinic
\n",
- "
Victoria
\n",
- "
[Healthcare]
\n",
"
NaN
\n",
"
\n",
"
\n",
- "
4
\n",
- "
Melbourne
\n",
+ "
8
\n",
+ "
grid.474755.0
\n",
+ "
Leica Biosystems Melbourne Pty Ltd
\n",
+ "
Mt. Waverley
\n",
+ "
AU
\n",
"
Australia
\n",
+ "
[Company]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
[http://www.danaher.com/]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
9
\n",
"
grid.469061.c
\n",
+ "
Ridley College
\n",
+ "
Melbourne
\n",
+ "
AU
\n",
+ "
Australia
\n",
+ "
[Education]
\n",
+ "
Victoria
\n",
"
-37.783780
\n",
"
[https://www.ridley.edu.au/]
\n",
"
144.957660
\n",
- "
Ridley College
\n",
- "
Victoria
\n",
- "
[Education]
\n",
"
NaN
\n",
"
\n",
"
\n",
- "
5
\n",
+ "
10
\n",
+ "
grid.469026.f
\n",
+ "
Melbourne School of Theology
\n",
"
Melbourne
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.469026.f
\n",
+ "
[Education]
\n",
+ "
Victoria
\n",
"
-37.859700
\n",
"
[http://www.mst.edu.au/]
\n",
"
145.209410
\n",
- "
Melbourne School of Theology
\n",
- "
Victoria
\n",
- "
[Education]
\n",
"
MBI
\n",
"
\n",
"
\n",
- "
6
\n",
+ "
11
\n",
+ "
grid.468079.4
\n",
+ "
Port of Melbourne Corporation
\n",
"
Melbourne
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.468079.4
\n",
+ "
[Government]
\n",
+ "
Victoria
\n",
"
-37.824028
\n",
"
[http://www.portofmelbourne.com/]
\n",
"
144.907070
\n",
- "
Port of Melbourne Corporation
\n",
- "
Victoria
\n",
- "
[Government]
\n",
"
PoMC
\n",
"
\n",
"
\n",
- "
7
\n",
+ "
12
\n",
+ "
grid.468069.5
\n",
+ "
Melbourne Water
\n",
"
Melbourne
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.468069.5
\n",
+ "
[Government]
\n",
+ "
Victoria
\n",
"
-37.814007
\n",
"
[http://www.melbournewater.com.au/Pages/home.a...
\n",
"
144.946700
\n",
- "
Melbourne Water
\n",
- "
Victoria
\n",
- "
[Government]
\n",
"
NaN
\n",
"
\n",
"
\n",
- "
8
\n",
+ "
13
\n",
+ "
grid.452643.2
\n",
+ "
Melbourne Bioinformatics
\n",
"
Melbourne
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.452643.2
\n",
+ "
[Education]
\n",
+ "
Victoria
\n",
"
-37.799847
\n",
- "
[https://www.vlsci.org.au/]
\n",
+ "
[https://www.melbournebioinformatics.org.au]
\n",
"
144.964460
\n",
- "
Victorian Life Sciences Computation Initiative
\n",
- "
Victoria
\n",
- "
[Education]
\n",
- "
NaN
\n",
+ "
VLSCI
\n",
"
\n",
"
\n",
- "
9
\n",
+ "
14
\n",
+ "
grid.449135.e
\n",
+ "
Melbourne Free University
\n",
"
Melbourne
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.449135.e
\n",
+ "
[Education]
\n",
+ "
Victoria
\n",
"
NaN
\n",
"
NaN
\n",
"
NaN
\n",
- "
Melbourne Free University
\n",
- "
Victoria
\n",
- "
[Education]
\n",
"
NaN
\n",
"
\n",
"
\n",
- "
10
\n",
+ "
15
\n",
+ "
grid.440113.3
\n",
+ "
Royal Dental Hospital of Melbourne
\n",
"
Melbourne
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.440113.3
\n",
+ "
[Healthcare]
\n",
+ "
Victoria
\n",
"
-37.799260
\n",
"
[https://www.dhsv.org.au]
\n",
"
144.964630
\n",
- "
Royal Dental Hospital of Melbourne
\n",
- "
Victoria
\n",
- "
[Healthcare]
\n",
"
RDHM
\n",
"
\n",
"
\n",
- "
11
\n",
+ "
16
\n",
+ "
grid.438527.f
\n",
+ "
Royal Melbourne Institute of Technology Univer...
\n",
"
Melbourne
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.429299.d
\n",
- "
-37.798940
\n",
- "
[http://www.mh.org.au/]
\n",
- "
144.955930
\n",
- "
Melbourne Health
\n",
+ "
[Other]
\n",
"
Victoria
\n",
- "
[Healthcare]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
"
NaN
\n",
"
\n",
"
\n",
- "
12
\n",
+ "
17
\n",
+ "
grid.429299.d
\n",
+ "
Melbourne Health
\n",
"
Melbourne
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.416153.4
\n",
- "
-37.798756
\n",
- "
[http://www.rmh.mh.org.au/]
\n",
- "
144.955930
\n",
- "
Royal Melbourne Hospital
\n",
- "
Victoria
\n",
"
[Healthcare]
\n",
- "
RMH
\n",
- "
\n",
- "
\n",
- "
13
\n",
- "
Clayton
\n",
- "
Australia
\n",
- "
grid.410660.5
\n",
- "
-37.915775
\n",
- "
[http://nanomelbourne.com/]
\n",
- "
145.143660
\n",
- "
Melbourne Centre for Nanofabrication
\n",
"
Victoria
\n",
- "
[Facility]
\n",
- "
MCN
\n",
+ "
-37.798940
\n",
+ "
[http://www.mh.org.au/]
\n",
+ "
144.955930
\n",
+ "
NaN
\n",
"
\n",
"
\n",
- "
14
\n",
+ "
18
\n",
+ "
grid.416153.4
\n",
+ "
Royal Melbourne Hospital
\n",
"
Melbourne
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.1017.7
\n",
- "
-37.806747
\n",
- "
[https://www.rmit.edu.au/]
\n",
- "
144.962570
\n",
- "
RMIT University
\n",
+ "
[Healthcare]
\n",
"
Victoria
\n",
- "
[Education]
\n",
- "
RMIT
\n",
+ "
-37.798756
\n",
+ "
[http://www.rmh.mh.org.au/]
\n",
+ "
144.955930
\n",
+ "
RMH
\n",
"
\n",
"
\n",
- "
15
\n",
+ "
19
\n",
+ "
grid.413105.2
\n",
+ "
St Vincent's Hospital
\n",
"
Melbourne
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.1008.9
\n",
- "
-37.797115
\n",
- "
[http://www.unimelb.edu.au/]
\n",
- "
144.959980
\n",
- "
University of Melbourne
\n",
+ "
[Healthcare]
\n",
"
Victoria
\n",
- "
[Education]
\n",
+ "
-37.807000
\n",
+ "
[http://www.svhm.org.au/Pages/Home.aspx]
\n",
+ "
144.975000
\n",
"
NaN
\n",
"
\n",
" \n",
@@ -397,80 +460,96 @@
""
],
"text/plain": [
- " city_name country_name id latitude \\\n",
- "0 Melbourne Australia grid.511296.8 -37.797960 \n",
- "1 Barcelona Spain grid.493437.e 41.402576 \n",
- "2 Carlton Australia grid.490309.7 -37.803123 \n",
- "3 Richmond Australia grid.477970.a -37.815063 \n",
- "4 Melbourne Australia grid.469061.c -37.783780 \n",
- "5 Melbourne Australia grid.469026.f -37.859700 \n",
- "6 Melbourne Australia grid.468079.4 -37.824028 \n",
- "7 Melbourne Australia grid.468069.5 -37.814007 \n",
- "8 Melbourne Australia grid.452643.2 -37.799847 \n",
- "9 Melbourne Australia grid.449135.e NaN \n",
- "10 Melbourne Australia grid.440113.3 -37.799260 \n",
- "11 Melbourne Australia grid.429299.d -37.798940 \n",
- "12 Melbourne Australia grid.416153.4 -37.798756 \n",
- "13 Clayton Australia grid.410660.5 -37.915775 \n",
- "14 Melbourne Australia grid.1017.7 -37.806747 \n",
- "15 Melbourne Australia grid.1008.9 -37.797115 \n",
+ " id name \\\n",
+ "0 grid.772384.d Trelleborg Marine Systems Melbourne Pty Ltd \n",
+ "1 grid.746611.3 Noyes Bros Melbourne Pty Ltd \n",
+ "2 grid.631568.f CityLink Melbourne Ltd \n",
+ "3 grid.530408.a Melbourne Institute of Technology \n",
+ "4 grid.511296.8 Melbourne Genomics Health Alliance \n",
+ "5 grid.493437.e RMIT Europe \n",
+ "6 grid.490309.7 Melbourne Sexual Health Centre \n",
+ "7 grid.477970.a Melbourne Clinic \n",
+ "8 grid.474755.0 Leica Biosystems Melbourne Pty Ltd \n",
+ "9 grid.469061.c Ridley College \n",
+ "10 grid.469026.f Melbourne School of Theology \n",
+ "11 grid.468079.4 Port of Melbourne Corporation \n",
+ "12 grid.468069.5 Melbourne Water \n",
+ "13 grid.452643.2 Melbourne Bioinformatics \n",
+ "14 grid.449135.e Melbourne Free University \n",
+ "15 grid.440113.3 Royal Dental Hospital of Melbourne \n",
+ "16 grid.438527.f Royal Melbourne Institute of Technology Univer... \n",
+ "17 grid.429299.d Melbourne Health \n",
+ "18 grid.416153.4 Royal Melbourne Hospital \n",
+ "19 grid.413105.2 St Vincent's Hospital \n",
"\n",
- " linkout longitude \\\n",
- "0 [https://www.melbournegenomics.org.au/] 144.953870 \n",
- "1 [https://www.rmit.eu] 2.194333 \n",
- "2 [https://www.mshc.org.au/] 144.963840 \n",
- "3 [http://www.themelbourneclinic.com.au/] 144.999650 \n",
- "4 [https://www.ridley.edu.au/] 144.957660 \n",
- "5 [http://www.mst.edu.au/] 145.209410 \n",
- "6 [http://www.portofmelbourne.com/] 144.907070 \n",
- "7 [http://www.melbournewater.com.au/Pages/home.a... 144.946700 \n",
- "8 [https://www.vlsci.org.au/] 144.964460 \n",
- "9 NaN NaN \n",
- "10 [https://www.dhsv.org.au] 144.964630 \n",
- "11 [http://www.mh.org.au/] 144.955930 \n",
- "12 [http://www.rmh.mh.org.au/] 144.955930 \n",
- "13 [http://nanomelbourne.com/] 145.143660 \n",
- "14 [https://www.rmit.edu.au/] 144.962570 \n",
- "15 [http://www.unimelb.edu.au/] 144.959980 \n",
+ " city_name country_code country_name types state_name \\\n",
+ "0 Victoria AU Australia [Company] NaN \n",
+ "1 NaN AU Australia [Other] NaN \n",
+ "2 NaN AU Australia [Other] NaN \n",
+ "3 Melbourne AU Australia [Nonprofit] Victoria \n",
+ "4 Melbourne AU Australia [Nonprofit] Victoria \n",
+ "5 Barcelona ES Spain [Education] NaN \n",
+ "6 Carlton AU Australia [Healthcare] Victoria \n",
+ "7 Richmond AU Australia [Healthcare] Victoria \n",
+ "8 Mt. Waverley AU Australia [Company] NaN \n",
+ "9 Melbourne AU Australia [Education] Victoria \n",
+ "10 Melbourne AU Australia [Education] Victoria \n",
+ "11 Melbourne AU Australia [Government] Victoria \n",
+ "12 Melbourne AU Australia [Government] Victoria \n",
+ "13 Melbourne AU Australia [Education] Victoria \n",
+ "14 Melbourne AU Australia [Education] Victoria \n",
+ "15 Melbourne AU Australia [Healthcare] Victoria \n",
+ "16 Melbourne AU Australia [Other] Victoria \n",
+ "17 Melbourne AU Australia [Healthcare] Victoria \n",
+ "18 Melbourne AU Australia [Healthcare] Victoria \n",
+ "19 Melbourne AU Australia [Healthcare] Victoria \n",
"\n",
- " name state_name types \\\n",
- "0 Melbourne Genomics Health Alliance Victoria [Nonprofit] \n",
- "1 RMIT Europe NaN [Education] \n",
- "2 Melbourne Sexual Health Centre Victoria [Healthcare] \n",
- "3 Melbourne Clinic Victoria [Healthcare] \n",
- "4 Ridley College Victoria [Education] \n",
- "5 Melbourne School of Theology Victoria [Education] \n",
- "6 Port of Melbourne Corporation Victoria [Government] \n",
- "7 Melbourne Water Victoria [Government] \n",
- "8 Victorian Life Sciences Computation Initiative Victoria [Education] \n",
- "9 Melbourne Free University Victoria [Education] \n",
- "10 Royal Dental Hospital of Melbourne Victoria [Healthcare] \n",
- "11 Melbourne Health Victoria [Healthcare] \n",
- "12 Royal Melbourne Hospital Victoria [Healthcare] \n",
- "13 Melbourne Centre for Nanofabrication Victoria [Facility] \n",
- "14 RMIT University Victoria [Education] \n",
- "15 University of Melbourne Victoria [Education] \n",
+ " latitude linkout longitude \\\n",
+ "0 NaN NaN NaN \n",
+ "1 NaN NaN NaN \n",
+ "2 NaN NaN NaN \n",
+ "3 NaN NaN NaN \n",
+ "4 -37.797960 [https://www.melbournegenomics.org.au/] 144.953870 \n",
+ "5 41.402576 [https://www.rmit.eu] 2.194333 \n",
+ "6 -37.803123 [https://www.mshc.org.au/] 144.963840 \n",
+ "7 -37.815063 [http://www.themelbourneclinic.com.au/] 144.999650 \n",
+ "8 NaN [http://www.danaher.com/] NaN \n",
+ "9 -37.783780 [https://www.ridley.edu.au/] 144.957660 \n",
+ "10 -37.859700 [http://www.mst.edu.au/] 145.209410 \n",
+ "11 -37.824028 [http://www.portofmelbourne.com/] 144.907070 \n",
+ "12 -37.814007 [http://www.melbournewater.com.au/Pages/home.a... 144.946700 \n",
+ "13 -37.799847 [https://www.melbournebioinformatics.org.au] 144.964460 \n",
+ "14 NaN NaN NaN \n",
+ "15 -37.799260 [https://www.dhsv.org.au] 144.964630 \n",
+ "16 NaN NaN NaN \n",
+ "17 -37.798940 [http://www.mh.org.au/] 144.955930 \n",
+ "18 -37.798756 [http://www.rmh.mh.org.au/] 144.955930 \n",
+ "19 -37.807000 [http://www.svhm.org.au/Pages/Home.aspx] 144.975000 \n",
"\n",
" acronym \n",
"0 NaN \n",
- "1 RMIT \n",
- "2 MSHC \n",
+ "1 NaN \n",
+ "2 NaN \n",
"3 NaN \n",
"4 NaN \n",
- "5 MBI \n",
- "6 PoMC \n",
+ "5 RMIT \n",
+ "6 MSHC \n",
"7 NaN \n",
"8 NaN \n",
"9 NaN \n",
- "10 RDHM \n",
- "11 NaN \n",
- "12 RMH \n",
- "13 MCN \n",
- "14 RMIT \n",
- "15 NaN "
+ "10 MBI \n",
+ "11 PoMC \n",
+ "12 NaN \n",
+ "13 VLSCI \n",
+ "14 NaN \n",
+ "15 RDHM \n",
+ "16 NaN \n",
+ "17 NaN \n",
+ "18 RMH \n",
+ "19 NaN "
]
},
- "execution_count": 17,
+ "execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
@@ -483,7 +562,7 @@
},
{
"cell_type": "code",
- "execution_count": 18,
+ "execution_count": 4,
"metadata": {
"Collapsed": "false"
},
@@ -503,7 +582,7 @@
},
{
"cell_type": "code",
- "execution_count": 19,
+ "execution_count": 15,
"metadata": {
"Collapsed": "false"
},
@@ -512,8 +591,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "Returned Year: 12\n",
- "\u001b[2mTime: 0.57s\u001b[0m\n"
+ "Returned Year: 16\n",
+ "\u001b[2mTime: 0.55s\u001b[0m\n"
]
},
{
@@ -524,7 +603,6 @@
},
"data": [
{
- "alignmentgroup": "True",
"hovertemplate": "year=%{x} pubs=%{y}",
"legendgroup": "",
"marker": {
@@ -534,45 +612,23 @@
}
},
"name": "",
- "offsetgroup": "",
"orientation": "v",
"showlegend": false,
"textposition": "auto",
"type": "bar",
- "x": [
- 2021,
- 2020,
- 2019,
- 2018,
- 2017,
- 2016,
- 2015,
- 2014,
- 2013,
- 2012,
- 2011,
- 2022
- ],
+ "x": {
+ "bdata": "5QfoB+cH5gfkB+MH4gfhB+AH6QffB94H3QfcB9sH6gc=",
+ "dtype": "i2"
+ },
"xaxis": "x",
- "y": [
- 13015,
- 12183,
- 11039,
- 9954,
- 9198,
- 8281,
- 7720,
- 7184,
- 6779,
- 6030,
- 5742,
- 816
- ],
+ "y": {
+ "bdata": "9kygSotJ9UjhSOlA+T0ZOm42PjZDNBkx3y99K2koDwA=",
+ "dtype": "i2"
+ },
"yaxis": "y"
}
],
"layout": {
- "autosize": true,
"barmode": "relative",
"legend": {
"tracegroupgap": 0
@@ -759,57 +815,6 @@
"type": "heatmap"
}
],
- "heatmapgl": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "colorscale": [
- [
- 0,
- "#0d0887"
- ],
- [
- 0.1111111111111111,
- "#46039f"
- ],
- [
- 0.2222222222222222,
- "#7201a8"
- ],
- [
- 0.3333333333333333,
- "#9c179e"
- ],
- [
- 0.4444444444444444,
- "#bd3786"
- ],
- [
- 0.5555555555555556,
- "#d8576b"
- ],
- [
- 0.6666666666666666,
- "#ed7953"
- ],
- [
- 0.7777777777777778,
- "#fb9f3a"
- ],
- [
- 0.8888888888888888,
- "#fdca26"
- ],
- [
- 1,
- "#f0f921"
- ]
- ],
- "type": "heatmapgl"
- }
- ],
"histogram": [
{
"marker": {
@@ -952,11 +957,10 @@
],
"scatter": [
{
- "marker": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
+ "fillpattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
},
"type": "scatter"
}
@@ -1011,6 +1015,17 @@
"type": "scattergl"
}
],
+ "scattermap": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermap"
+ }
+ ],
"scattermapbox": [
{
"marker": {
@@ -1399,43 +1414,31 @@
},
"xaxis": {
"anchor": "y",
- "autorange": true,
"domain": [
0,
1
],
- "range": [
- 2010.5,
- 2022.5
- ],
"title": {
"text": "year"
- },
- "type": "linear"
+ }
},
"yaxis": {
"anchor": "x",
- "autorange": true,
"domain": [
0,
1
],
- "range": [
- 0,
- 13700
- ],
"title": {
"text": "pubs"
- },
- "type": "linear"
+ }
}
}
},
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAA/EAAAFoCAYAAAAfN3s3AAAAAXNSR0IArs4c6QAAIABJREFUeF7t3XmcHFW5P+B3kkAIhACBsIgoiAIiXrwKCLihonBZxStLQFllkd1oZBdQdgTZZQsiSBTwAoIRubIpKNsPUK/bRb2isoewQyAkM79PNWbMJNOZOX26O1PVz/yl5FR31XPeOnW+daq7u3p6enrCHwECBAgQIECAAAECBAgQIDDkBbqE+CHfR3aQAAECBAgQIECAAAECBAjUBIR4hUCAAAECBAgQIECAAAECBEoiIMSXpKPsJgECBAgQIECAAAECBAgQEOLVAAECBAgQIECAAAECBAgQKImAEF+SjrKbBAgQIECAAAECBAgQIEBAiFcDBAgQIECAAAECBAgQIECgJAJCfEk6ym4SIECAAAECBAgQIECAAAEhXg0QIECAAAECBAgQIECAAIGSCAjxJekou0mAAAECBAgQIECAAAECBIR4NUCAAAECBAgQIECAAAECBEoiIMSXpKPsJgECBAgQIECAAAECBAgQEOLVAAECBAgQIECAAAECBAgQKImAEF+SjrKbBAgQIECAAAECBAgQIEBAiFcDBAgQIECAAAECBAgQIECgJAJCfEk6ym4SIECAAAECBAgQIECAAAEhXg0QIECAAAECBAgQIECAAIGSCAjxJekou0mAAAECBAgQIECAAAECBIR4NUCAAAECBAgQIECAAAECBEoiIMSXpKPsJgECBAgQIECAAAECBAgQEOLVAAECBAgQIECAAAECBAgQKImAEF+SjrKbBAgQIECAAAECBAgQIEBAiFcDBAgQIECAAAECBAgQIECgJAJCfEk6ym4SIECAAAECBAgQIECAAAEhXg0QIECAAAECBAgQIECAAIGSCAjxJekou0mAAAECBAgQIECAAAECBIR4NUCAAAECBAgQIECAAAECBEoiIMSXpKPsJgECBAgQIECAAAECBAgQEOLVAAECBAgQIECAAAECBAgQKImAEF+SjrKbBAgQIECAAAECBAgQIEBAiFcDBAgQIECAAAECBAgQIECgJAJCfEk6ym4SIECAAAECBAgQIECAAAEhXg0QIECAAAECBAgQIECAAIGSCAjxJekou0mAAAECBAgQIECAAAECBIR4NUCAAAECBAgQIECAAAECBEoiIMSXpKPsJgECBAgQIECAAAECBAgQEOLVAAECBAgQIECAAAECBAgQKImAEF+SjrKbBAgQIECAAAECBAgQIEBAiFcDBAgQIECAAAECBAgQIECgJAJCfEk6ym4SIECAAAECBAgQIECAAAEhXg0QIECAAAECBAgQIECAAIGSCAjxJekou0mAAAECBAgQIECAAAECBIR4NUCAAAECBAgQIECAAAECBEoiIMSXpKPsJgECBAgQIECAAAECBAgQEOLVAAECBAgQIECAAAECBAgQKImAEF+SjrKbBAgQIECAAAECBAgQIEBAiFcDBAgQIECAAAECBAgQIECgJAJCfEk6ym4SIECAAAECBAgQIECAAAEhXg0QIECAAAECBAgQIECAAIGSCAjxJekou0mAAAECBAgQIECAAAECBIR4NUCAAAECBAgQIECAAAECBEoiIMSXpKPsJgECBAgQIECAAAECBAgQEOLVAAECBAgQIECAAAECBAgQKImAEF+SjrKbBAgQIECAAAECBAgQIEBAiFcDBAgQIECAAAECBAgQIECgJAJCfEk6ym4SIECAAAECBAgQIECAAAEhXg0QIECAAAECBAgQIECAAIGSCAjxJekou0mAAAECBAgQIECAAAECBIR4NUCAAAECBAgQIECAAAECBEoiIMSXpKPsJgECBAgQIECAAAECBAgQEOIza+CxadMzX8HmBAgQIECAAAECBAgQ6ByBNy09qnMOtgVHKsRnogrxmYA2J0CAAAECBAgQIECgowSE+LzuFuLz/EKIzwS0OQECBAgQIECAAAECHSUgxOd1txCf5yfEZ/rZnAABAgQIECBAgACBzhIQ4vP6W4jP8xPiM/1sToAAAQIECBAgQIBAZwkI8Xn9LcTn+QnxmX42J0CAAAECBAgQIECgswSE+Lz+FuLz/IT4TD+bEyBAgAABAgQIECDQWQJCfF5/C/F5fkJ8pp/NCRAgQIAAAQIECBDoLAEhPq+/hfg8PyE+08/mBAgQIECAAAECBAh0loAQn9ffQnyenxCf6WdzAgQIECBAgAABAgQ6S0CIz+tvIT7PT4jP9LM5AQIECBAgQIAAAQKdJSDE5/W3EJ/nJ8Rn+tmcAAECBAgQIECgmgJTp3bFrT8bVs2D++dRbb5pd4we3VPpY2zFwQnxeapCfJ6fEJ/pZ3MCBAgQIECAAIFqChQh/oJJw2PGjGoe30or9sT47YX4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1GnPxUb/eXBtL8894eDal8/N/vvetbfEcWdeHnvsuHls+YkNYsbrM+NXv/1z/OyuX9WC++kXXBXf/+GtceLhe8UyY5eIn9/969o32Xucfoh3ut0jQIAAAQJ1BIR4pUGAAAECBEogUHzB3d8ffSp++v1vxPDhw3r3uLu7O757zc1xziXX1B6vn/1XhPoJe21be2z+sBMujPt/81Dtn9Zec9WY1d0doxYZGZeecWjtvxWr9e9abWWfiS9BHdhFAgQIECAgxKsBAgQIECAwxAWmPftCfHibA+Mr++4Qu2y3ab97Wzw+//Qzz0dPT8QyY8fEsGH/CvrFBo8/OS2GDR9WexzfHwECBAgQIFBeASG+vH1nzwkQIECgQwS+9Z0f1n7b/ZfXn+u32zukzx0mAQIECBCoJyDEqw0CBAgQIDCEBYoV9i8c+s3az8vtv9s2Q3hP7RoBAgQIECDQDgEhvh3K3oMAAQIECBAgQIAAAQIECDRBQIhvAqKXIECAAAECBAgQIECAAAEC7RAQ4tuh7D0IECBAgAABAgQIECBAgEATBIT4JiB6CQIECBAgQIAAAQIECBAg0A4BIb4dyt6DAAECBAgQIECAAAECBAg0QUCIbwKilyBAgAABAgQIECBAgAABAu0QEOLboew9CBAgQIAAAQIECBAgQIBAEwSE+CYgegkCBAgQIECAAAECBAgQINAOASG+HcregwABAgQIECBAgAABAgQINEFAiG8CopcgQIAAAQIECBAgQIAAAQLtEBDi26HsPQgQIECAAAECBAgQIECAQBMEhPgmIHoJAgQIECBAgAABAgQIECDQDgEhvh3K3oMAAQIECBAgQIAAAQIECDRBQIhvAqKXIECAAAECBAgQIECAAAEC7RAQ4tuh7D0IECBAgAABAgQIECBAgEATBIT4JiB6CQIECBAgQIAAAQIECBAg0A4BIb4dyt6DAAECBAgQIECAAAECBAg0QUCIbwKilyBAgAABAgQIECBAgAABAu0QEOLboew9CBAgQIAAAQIECBAgQIBAEwSE+CYgegkCBAgQIECAAAECBAgQINAOASG+HcregwABAgQIECBAgAABAgQINEFAiG8CopcgQIAAAQIECBAgQIAAAQLtEBDi26HsPQgQIECAAAECBAgQIECAQBMEhPgmIHoJAgQIECBAgAABAgQIECDQDgEhvh3K3oMAAQIECBAgQIAAAQIECDRBQIhvAqKXIECAAAECBAgQIECAAAEC7RAQ4tuh7D0IECBAgAABAgQIECBAgEATBIT4JiB6CQIECBAgQIAAAQIECBAg0A4BIb4dyt6DAAECBAgQIECAAAECBAg0QUCIbwKilyBAgAABAgQIECBAgAABAu0QEOLboew9CBAgQIAAAQIECBAgQIBAEwSE+CYgegkCBAgQIECAAAECBAgQINAOASG+HcregwABAgQIECBAgAABAgQINEFAiG8CopcgQIAAAQIECBAgQIAAAQLtEBDi26HsPQgQIECAAAECBAgQIECAQBMEhPgmIHoJAgQIECBAgAABAgQIECDQDgEhvh3K3oMAAQIECBAgQIAAAQIECDRB4P8DC1pxmEv+R9UAAAAASUVORK5CYII=",
"text/html": [
- "
"
+ " }) }; "
]
},
"metadata": {},
@@ -8037,7 +7506,7 @@
" \n",
" \"\"\").as_dataframe()\n",
"\n",
- "allpubs.columns = ['pubs', 'year', ]\n",
+ "allpubs.columns = ['year', 'pubs']\n",
"\n",
"\n",
"\n",
@@ -8053,7 +7522,7 @@
" \n",
" \"\"\").as_dataframe()\n",
"\n",
- "international.columns = ['international_count', 'year', ]\n",
+ "international.columns = ['year', 'international_count']\n",
"\n",
"\n",
"domestic = dsl.query(f\"\"\"\n",
@@ -8068,7 +7537,7 @@
" \n",
" \"\"\").as_dataframe()\n",
"\n",
- "domestic.columns = ['domestic_count', 'year', ]\n",
+ "domestic.columns = ['year', 'domestic_count']\n",
"\n",
"internal = dsl.query(f\"\"\"\n",
" \n",
@@ -8082,13 +7551,13 @@
" \n",
" \"\"\").as_dataframe()\n",
"\n",
- "internal.columns = ['internal_count', 'year', ]\n",
+ "internal.columns = ['year', 'internal_count']\n",
"\n",
"\n",
"jdf = allpubs.set_index('year'). \\\n",
- " join(international.set_index('year')). \\\n",
- " join(domestic.set_index('year')). \\\n",
- " join(internal.set_index('year')) \n",
+ " merge(international, how='left', on='year'). \\\n",
+ " merge(domestic, how='left', on='year'). \\\n",
+ " merge(internal, how='left', on='year')\n",
"\n",
"px.bar(jdf, title=\"Univ. of Toronto: publications collaboration\")\n"
]
@@ -8125,7 +7594,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.9.9"
+ "version": "3.12.8"
},
"nteract": {
"version": "0.15.0"
diff --git a/cookbooks/8-organizations/5-mapping-grid-ids-to-organization-data.ipynb b/cookbooks/8-organizations/5-mapping-organization-ids-to-organization-data.ipynb
similarity index 71%
rename from cookbooks/8-organizations/5-mapping-grid-ids-to-organization-data.ipynb
rename to cookbooks/8-organizations/5-mapping-organization-ids-to-organization-data.ipynb
index 4cb5f19b..04fae69d 100644
--- a/cookbooks/8-organizations/5-mapping-grid-ids-to-organization-data.ipynb
+++ b/cookbooks/8-organizations/5-mapping-organization-ids-to-organization-data.ipynb
@@ -7,19 +7,16 @@
"id": "hu34Y6_eo_8c"
},
"source": [
- "# Mapping GRID IDs to Organization Data\n",
+ "# Mapping Organization IDs to Organization Data\n",
"\n",
- "In this tutorial, we show how to use the [Dimensions Analytics API](https://www.dimensions.ai/dimensions-apis/) and organization data to extract GRID IDs.\n",
- "\n",
- "\n",
- "[GRID](https://grid.ac/) is a free and openly available global database of research-related organisations, cataloging research-related organizations and providing each with a unique and persistent identifier. Dimensions uses this identifier to link organizations to publications, grants, etc.\n",
+ "In this tutorial, we show how to use the [Dimensions Analytics API](https://www.dimensions.ai/dimensions-apis/) and organization data to extract organization IDs.\n",
"\n",
"**Use case scenarios:**\n",
"\n",
- "* An analyst has a list of organizations of interest, and wants to get details of their publications from Dimensions. To do this, they they need to map them to GRID IDs so they can extract information from the Dimensions database. The organization data can be run through the Dimensions API [extract_affiliations](https://docs.dimensions.ai/dsl/functions.html#function-extract-affiliations) function in order to extract GRID IDs, which can then be utilized to get publication data statistics.\n",
+ "* An analyst has a list of organizations of interest, and wants to get details of their publications from Dimensions. To do this, they they need to map them to organization IDs so they can extract information from the Dimensions database. The organization data can be run through the Dimensions API [extract_affiliations](https://docs.dimensions.ai/dsl/functions.html#function-extract-affiliations) function in order to extract IDs, which can then be utilized to get publication data statistics.\n",
"\n",
"* A second use case is to standardize messy organization data for \n",
- "analysis. For example, an analyst might have a set of affiliation data containing many variants of organization names (\"University of Cambridge\", \"Cambridge University\"). By mapping to GRID IDs, the analyst can standardize the data so it's easier to analyse."
+ "analysis. For example, an analyst might have a set of affiliation data containing many variants of organization names (\"University of Cambridge\", \"Cambridge University\"). By mapping to IDs, the analyst can standardize the data so it's easier to analyse."
]
},
{
@@ -33,7 +30,7 @@
"text": [
"==\n",
"CHANGELOG\n",
- "This notebook was last run on Jan 25, 2022\n",
+ "This notebook was last run on Sep 10, 2025\n",
"==\n"
]
}
@@ -95,8 +92,8 @@
"Logging in..\n",
"==\n",
"Logging in..\n",
- "\u001b[2mDimcli - Dimensions API Client (v0.9.6)\u001b[0m\n",
- "\u001b[2mConnected to: - DSL v2.0\u001b[0m\n",
+ "\u001b[2mDimcli - Dimensions API Client (v1.4)\u001b[0m\n",
+ "\u001b[2mConnected to: - DSL v2.12\u001b[0m\n",
"\u001b[2mMethod: dsl.ini file\u001b[0m\n"
]
}
@@ -140,20 +137,20 @@
"source": [
"## 1. Importing Organization Data\n",
"\n",
- "There are several ways to obtain organization data. Below we show examples for 2 different ways to obtain organization data that can be used to run through Dimensions API for GRID ID mapping. *For purposes of this demostration, we will be using method 1*. Please uncomment the other sections if you wish to use those methods instead.\n",
+ "There are several ways to obtain organization data. Below we show examples for 2 different ways to obtain organization data that can be used to run through the Dimensions API for ID mapping. *For purposes of this demostration, we will be using method 1*. Please uncomment the other sections if you wish to use those methods instead.\n",
"\n",
"\n",
"1. Manually Generate Organization Data\n",
"2. Load Organization Data from Local Machine\n",
"\n",
- "*Note* - To map organizational data to GRID IDs, the data must conform to mapping specifications and contain data (if available) for the following 4 columns (with column headers being lowercase):\n",
+ "*Note* - To map organizational data to IDs, the data must conform to mapping specifications and contain data (if available) for the following 4 columns (with column headers being lowercase):\n",
"* name - name of the organization\n",
"* city - city of the organization\n",
"* state - state of the organization (use the full name of the state, not acronym)\n",
"* country - country of the organization\n",
"\n",
"\n",
- "The user may use structured or unstructured organization data for mapping to GRID IDs like the following:\n",
+ "The user may use structured or unstructured organization data for mapping to IDs like the following:\n",
"\n",
"* Structured Data e.g., \n",
"`[{\"name\":\"Southwestern University\",\n",
@@ -376,7 +373,7 @@
"\n",
"The following cells can be utilized to import an excel file of organization data from a local machine.\n",
"\n",
- "This method is useful for when you need to map hundreds or thousands of organizations to GRID IDs, as the bulk process using the API will be much faster than any individual mapping.\n",
+ "This method is useful for when you need to map hundreds or thousands of organizations to IDs, as the bulk process using the API will be much faster than any individual mapping.\n",
"\n",
"\n",
"*Please uncomment the cells below if to be utilized*"
@@ -423,11 +420,11 @@
"id": "rOeRQ6S7244b"
},
"source": [
- "## 2. Utilizing Dimensions API to Extract GRID IDs\n",
+ "## 2. Utilizing Dimensions API to Extract IDs\n",
"\n",
- " The following cells will take our organization data and run it through the Dimensions API to pull back GRID IDs mapped to each organization.\n",
+ " The following cells will take our organization data and run it through the Dimensions API to pull back IDs mapped to each organization.\n",
"\n",
- "Here, we utilize the \"[extract_affiliations](https://docs.dimensions.ai/dsl/functions.html#function-extract-affiliations)\" API function which can be used to enrich private datasets including non-disambiguated organizations data with Dimensions GRID IDs.\n",
+ "Here, we utilize the \"[extract_affiliations](https://docs.dimensions.ai/dsl/functions.html#function-extract-affiliations)\" API function which can be used to enrich private datasets including non-disambiguated organizations data with Dimensions organization IDs.\n",
"\n",
"\n"
]
@@ -455,7 +452,7 @@
},
"outputs": [],
"source": [
- "# Second, we will convert organization data from a dataframe to a dictionary (json) for GRID mapping\n",
+ "# Second, we will convert organization data from a dataframe to a dictionary (json) for ID mapping\n",
"\n",
"recs = orgs.to_dict(orient='records')"
]
@@ -492,7 +489,7 @@
}
],
"source": [
- "# Then we will take the organization data, run it through the API and return GRID IDs\n",
+ "# Then we will take the organization data, run it through the API and return organization IDs\n",
"\n",
"# Chunk records to batches, API takes up to 200 records at a time.\n",
"def chunk_records(l, n):\n",
@@ -502,10 +499,10 @@
"# Use dimcli's from extract_affiliations API wrapper to process data\n",
"\n",
"chunksize = 200\n",
- "grid = pd.DataFrame()\n",
+ "org_data = pd.DataFrame()\n",
"for k,chunk in enumerate(chunk_records(recs, chunksize)):\n",
" output = extract_affiliations(chunk, as_json=False)\n",
- " grid = grid.append(output,sort = False, ignore_index = True)\n",
+ " org_data = pd.concat([org_data, output])\n",
" # Pause to avoid overloading API with too many calls too quickly\n",
" time.sleep(1)\n",
" print(f\"{(k+1)*chunksize} records complete!\")"
@@ -729,10 +726,10 @@
}
],
"source": [
- "# Preview the extracted GRID ID dataframe\n",
+ "# Preview the extracted organization ID dataframe\n",
"# Note: data columns labeled with \"input\" are the original organization data supplied to the API\n",
"\n",
- "grid.head()"
+ "org_data.head()"
]
},
{
@@ -742,7 +739,7 @@
"id": "0xmORlDluF0e"
},
"source": [
- "Note: Some records returned in the GRID mapping may require manual review, as some results may give more than one organization of interest (see below). The user can utilize this information to update their original organization data that is inputted to this notebook."
+ "Note: Some records returned in the mapping may require manual review, as some results may give more than one organization of interest (see below). The user can utilize this information to update their original organization data that is inputted to this notebook."
]
},
{
@@ -811,218 +808,14 @@
"
\n",
" \n",
" \n",
- "
\n",
- "
10
\n",
- "
null
\n",
- "
United States
\n",
- "
Mayo Clinic
\n",
- "
null
\n",
- "
grid.417468.8
\n",
- "
Mayo Clinic
\n",
- "
Scottsdale
\n",
- "
Arizona
\n",
- "
United States
\n",
- "
True
\n",
- "
6252001
\n",
- "
United States
\n",
- "
US
\n",
- "
5551752
\n",
- "
Arizona
\n",
- "
US-AZ
\n",
- "
5313457
\n",
- "
Scottsdale
\n",
- "
\n",
- "
\n",
- "
11
\n",
- "
null
\n",
- "
United States
\n",
- "
Mayo Clinic
\n",
- "
null
\n",
- "
grid.417468.8
\n",
- "
Mayo Clinic
\n",
- "
Scottsdale
\n",
- "
Arizona
\n",
- "
United States
\n",
- "
True
\n",
- "
6252001
\n",
- "
United States
\n",
- "
US
\n",
- "
5551752
\n",
- "
Arizona
\n",
- "
US-AZ
\n",
- "
4160021
\n",
- "
Jacksonville
\n",
- "
\n",
- "
\n",
- "
12
\n",
- "
null
\n",
- "
United States
\n",
- "
Mayo Clinic
\n",
- "
null
\n",
- "
grid.417468.8
\n",
- "
Mayo Clinic
\n",
- "
Scottsdale
\n",
- "
Arizona
\n",
- "
United States
\n",
- "
True
\n",
- "
6252001
\n",
- "
United States
\n",
- "
US
\n",
- "
4155751
\n",
- "
Florida
\n",
- "
US-FL
\n",
- "
5313457
\n",
- "
Scottsdale
\n",
- "
\n",
- "
\n",
- "
13
\n",
- "
null
\n",
- "
United States
\n",
- "
Mayo Clinic
\n",
- "
null
\n",
- "
grid.417468.8
\n",
- "
Mayo Clinic
\n",
- "
Scottsdale
\n",
- "
Arizona
\n",
- "
United States
\n",
- "
True
\n",
- "
6252001
\n",
- "
United States
\n",
- "
US
\n",
- "
4155751
\n",
- "
Florida
\n",
- "
US-FL
\n",
- "
4160021
\n",
- "
Jacksonville
\n",
- "
\n",
- "
\n",
- "
14
\n",
- "
null
\n",
- "
United States
\n",
- "
Mayo Clinic
\n",
- "
null
\n",
- "
grid.417467.7
\n",
- "
Mayo Clinic
\n",
- "
Jacksonville
\n",
- "
Florida
\n",
- "
United States
\n",
- "
True
\n",
- "
6252001
\n",
- "
United States
\n",
- "
US
\n",
- "
5551752
\n",
- "
Arizona
\n",
- "
US-AZ
\n",
- "
5313457
\n",
- "
Scottsdale
\n",
- "
\n",
- "
\n",
- "
15
\n",
- "
null
\n",
- "
United States
\n",
- "
Mayo Clinic
\n",
- "
null
\n",
- "
grid.417467.7
\n",
- "
Mayo Clinic
\n",
- "
Jacksonville
\n",
- "
Florida
\n",
- "
United States
\n",
- "
True
\n",
- "
6252001
\n",
- "
United States
\n",
- "
US
\n",
- "
5551752
\n",
- "
Arizona
\n",
- "
US-AZ
\n",
- "
4160021
\n",
- "
Jacksonville
\n",
- "
\n",
- "
\n",
- "
16
\n",
- "
null
\n",
- "
United States
\n",
- "
Mayo Clinic
\n",
- "
null
\n",
- "
grid.417467.7
\n",
- "
Mayo Clinic
\n",
- "
Jacksonville
\n",
- "
Florida
\n",
- "
United States
\n",
- "
True
\n",
- "
6252001
\n",
- "
United States
\n",
- "
US
\n",
- "
4155751
\n",
- "
Florida
\n",
- "
US-FL
\n",
- "
5313457
\n",
- "
Scottsdale
\n",
- "
\n",
- "
\n",
- "
17
\n",
- "
null
\n",
- "
United States
\n",
- "
Mayo Clinic
\n",
- "
null
\n",
- "
grid.417467.7
\n",
- "
Mayo Clinic
\n",
- "
Jacksonville
\n",
- "
Florida
\n",
- "
United States
\n",
- "
True
\n",
- "
6252001
\n",
- "
United States
\n",
- "
US
\n",
- "
4155751
\n",
- "
Florida
\n",
- "
US-FL
\n",
- "
4160021
\n",
- "
Jacksonville
\n",
- "
\n",
" \n",
"\n",
""
],
"text/plain": [
- " input.city input.country input.name input.state grid_id \\\n",
- "10 null United States Mayo Clinic null grid.417468.8 \n",
- "11 null United States Mayo Clinic null grid.417468.8 \n",
- "12 null United States Mayo Clinic null grid.417468.8 \n",
- "13 null United States Mayo Clinic null grid.417468.8 \n",
- "14 null United States Mayo Clinic null grid.417467.7 \n",
- "15 null United States Mayo Clinic null grid.417467.7 \n",
- "16 null United States Mayo Clinic null grid.417467.7 \n",
- "17 null United States Mayo Clinic null grid.417467.7 \n",
- "\n",
- " grid_name grid_city grid_state grid_country requires_review \\\n",
- "10 Mayo Clinic Scottsdale Arizona United States True \n",
- "11 Mayo Clinic Scottsdale Arizona United States True \n",
- "12 Mayo Clinic Scottsdale Arizona United States True \n",
- "13 Mayo Clinic Scottsdale Arizona United States True \n",
- "14 Mayo Clinic Jacksonville Florida United States True \n",
- "15 Mayo Clinic Jacksonville Florida United States True \n",
- "16 Mayo Clinic Jacksonville Florida United States True \n",
- "17 Mayo Clinic Jacksonville Florida United States True \n",
- "\n",
- " geo_country_id geo_country_name geo_country_code geo_state_id \\\n",
- "10 6252001 United States US 5551752 \n",
- "11 6252001 United States US 5551752 \n",
- "12 6252001 United States US 4155751 \n",
- "13 6252001 United States US 4155751 \n",
- "14 6252001 United States US 5551752 \n",
- "15 6252001 United States US 5551752 \n",
- "16 6252001 United States US 4155751 \n",
- "17 6252001 United States US 4155751 \n",
- "\n",
- " geo_state_name geo_state_code geo_city_id geo_city_name \n",
- "10 Arizona US-AZ 5313457 Scottsdale \n",
- "11 Arizona US-AZ 4160021 Jacksonville \n",
- "12 Florida US-FL 5313457 Scottsdale \n",
- "13 Florida US-FL 4160021 Jacksonville \n",
- "14 Arizona US-AZ 5313457 Scottsdale \n",
- "15 Arizona US-AZ 4160021 Jacksonville \n",
- "16 Florida US-FL 5313457 Scottsdale \n",
- "17 Florida US-FL 4160021 Jacksonville "
+ "Empty DataFrame\n",
+ "Columns: [input.city, input.country, input.name, input.state, grid_id, grid_name, grid_city, grid_state, grid_country, requires_review, geo_country_id, geo_country_name, geo_country_code, geo_state_id, geo_state_name, geo_state_code, geo_city_id, geo_city_name]\n",
+ "Index: []"
]
},
"execution_count": 10,
@@ -1031,9 +824,9 @@
}
],
"source": [
- "grid['requires_review'] = grid['requires_review'].astype(str)\n",
- "grid_review = grid.loc[grid['requires_review'] == 'True']\n",
- "grid_review"
+ "org_data['requires_review'] = org_data['requires_review'].astype(str)\n",
+ "org_data_review = org_data.loc[org_data['requires_review'] == 'True']\n",
+ "org_data_review"
]
},
{
@@ -1043,9 +836,9 @@
"id": "e2YjFdSk4X6X"
},
"source": [
- "## 3. Save the GRID ID Dataset we created\n",
+ "## 3. Save the ID Dataset we created\n",
"\n",
- "The following cell will export the GRID ID mapped organization data to a csv file that can be saved to your local machine.\n"
+ "The following cell will export the ID-mapped organization data to a csv file that can be saved to your local machine.\n"
]
},
{
@@ -1074,7 +867,7 @@
"outputs": [],
"source": [
"# temporarily save pandas dataframe as file in colab environment\n",
- "grid.to_csv('file_name.csv')\n",
+ "org_data.to_csv('file_name.csv')\n",
"\n",
"if 'google.colab' in sys.modules:\n",
" \n",
@@ -1093,7 +886,7 @@
"source": [
"## Conclusions\n",
"\n",
- "In this notebook we have shown how to use the [Dimensions Analytics API](https://www.dimensions.ai/dimensions-apis/) *extract_affiliations* function to assign GRID identifiers to organizations data.\n",
+ "In this notebook we have shown how to use the [Dimensions Analytics API](https://www.dimensions.ai/dimensions-apis/) *extract_affiliations* function to assign identifiers to organizations data.\n",
"\n",
"For more background, see the [extract_affiliations function documentation](https://docs.dimensions.ai/dsl/functions.html#function-extract-affiliations), as well as the other functions available via the Dimensions API. \n",
"\n"
@@ -1121,7 +914,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.9.9"
+ "version": "3.12.8"
}
},
"nbformat": 4,
diff --git a/cookbooks/8-organizations/6-organization-groups.ipynb b/cookbooks/8-organizations/6-organization-groups.ipynb
index 545ce5ee..6ca8faf2 100644
--- a/cookbooks/8-organizations/6-organization-groups.ipynb
+++ b/cookbooks/8-organizations/6-organization-groups.ipynb
@@ -11,13 +11,13 @@
"This tutorial shows how use the organization groups in Dimensions (e.g. the [funder groups](https://app.dimensions.ai/browse/facet-filter-groups/publication/funder_shared_group_facet)) in order to construct API queries. \n",
"\n",
"The Dimensions team maintains various organization groups definitions in the main Dimensions web application. \n",
- "These groups are not available directly via the API, but since they are a simple list of GRID identifiers, they can be easily downloaded as a CSV file. \n",
+ "These groups are not available directly via the API, but since they are a simple list of organization identifiers, they can be easily downloaded as a CSV file. \n",
"Once you have a CSV file, it is possible to parse it with Python and use its contents in an API query. \n",
"\n",
"Outline \n",
"\n",
"1. Downloading Dimensions' organization groups as a CSV file.\n",
- "2. Constructing API queries using a list of GRID IDs\n",
+ "2. Constructing API queries using a list of organization IDs\n",
" "
]
},
@@ -32,7 +32,7 @@
"text": [
"==\n",
"CHANGELOG\n",
- "This notebook was last run on Feb 21, 2022\n",
+ "This notebook was last run on Sep 10, 2025\n",
"==\n"
]
}
@@ -57,7 +57,7 @@
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": 2,
"metadata": {
"Collapsed": "false"
},
@@ -75,8 +75,8 @@
"text": [
"==\n",
"Logging in..\n",
- "\u001b[2mDimcli - Dimensions API Client (v0.9.6)\u001b[0m\n",
- "\u001b[2mConnected to: - DSL v2.0\u001b[0m\n",
+ "\u001b[2mDimcli - Dimensions API Client (v1.4)\u001b[0m\n",
+ "\u001b[2mConnected to: - DSL v2.12\u001b[0m\n",
"\u001b[2mMethod: dsl.ini file\u001b[0m\n"
]
}
@@ -118,7 +118,7 @@
"\n",
"2. Use the 'Copy to my Groups' command to create a copy of that group in your personal space.\n",
"\n",
- "3. Go to 'My Groups', where you can select 'Export group definitions' to download a CSV file containing the groups details including GRID IDs. \n",
+ "3. Go to 'My Groups', where you can select 'Export group definitions' to download a CSV file containing the groups details including organization IDs. \n",
"\n",
"See below a screenshot of the [Dimensions' groups page](http://api-sample-data.dimensions.ai/data/funder-groups/dimensions-funder-groups-page.jpg). \n",
"\n",
@@ -127,7 +127,7 @@
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": 3,
"metadata": {},
"outputs": [
{
@@ -139,7 +139,7 @@
""
]
},
- "execution_count": 7,
+ "execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
@@ -164,7 +164,7 @@
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": 4,
"metadata": {
"Collapsed": "false"
},
@@ -432,7 +432,7 @@
"24 grid.457898.f "
]
},
- "execution_count": 9,
+ "execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
@@ -449,7 +449,7 @@
"Collapsed": "false"
},
"source": [
- "Let's get the GRID IDs for the NSF and put them into a Python list.\n",
+ "Let's get the organization IDs for the NSF and put them into a Python list.\n",
"\n",
"Then we can generate queries programmatically using this list. \n",
"\n",
@@ -458,7 +458,7 @@
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": 5,
"metadata": {
"Collapsed": "false"
},
@@ -493,14 +493,14 @@
" 'grid.457898.f']"
]
},
- "execution_count": 11,
+ "execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "nsfgrids = data['ID'].to_list()\n",
- "nsfgrids"
+ "nsforgs = data['ID'].to_list()\n",
+ "nsforgs"
]
},
{
@@ -511,14 +511,14 @@
"source": [
"### How many grants from the NSF? \n",
"\n",
- "Let's try a simple API query that uses the contents of `nsfgrids`. \n",
+ "Let's try a simple API query that uses the contents of `nsforgs`. \n",
"\n",
"The total number of results should match [what you see in Dimensions](https://app.dimensions.ai/discover/publication?and_facet_funder_shared_group_facet=574603a4-0c27-4844-9f74-7e6810e25cfb).\n"
]
},
{
"cell_type": "code",
- "execution_count": 12,
+ "execution_count": 6,
"metadata": {
"Collapsed": "false"
},
@@ -532,8 +532,10 @@
" where funders.id in [\"grid.457768.f\", \"grid.457785.c\", \"grid.457799.1\", \"grid.457810.f\", \"grid.457836.b\", \"grid.457875.c\", \"grid.457916.8\", \"grid.457789.0\", \"grid.457813.c\", \"grid.457814.b\", \"grid.457842.8\", \"grid.457821.d\", \"grid.457772.4\", \"grid.457801.f\", \"grid.457891.6\", \"grid.457892.5\", \"grid.457845.f\", \"grid.457922.f\", \"grid.457896.1\", \"grid.431093.c\", \"grid.457758.c\", \"grid.457907.8\", \"grid.473792.c\", \"grid.457846.c\", \"grid.457898.f\"]\n",
"return grants[id+title]\n",
"\n",
- "Returned Grants: 20 (total = 601237)\n",
- "\u001b[2mTime: 2.03s\u001b[0m\n"
+ "Returned Grants: 20 (total = 621348)\n",
+ "\u001b[2mTime: 0.61s\u001b[0m\n",
+ "WARNINGS [1]\n",
+ "Field 'funders' is deprecated in favor of funder_orgs. Please refer to https://docs.dimensions.ai/dsl/releasenotes.html for more details\n"
]
},
{
@@ -564,133 +566,133 @@
" \n",
"
\n",
"
0
\n",
- "
grant.9752271
\n",
- "
NNA Planning: Developing community frameworks ...
\n",
+ "
grant.14880777
\n",
+ "
Postdoctoral Fellowship: PRFB: Mapping the Bum...
\n",
"
\n",
"
\n",
"
1
\n",
- "
grant.9890102
\n",
- "
RUI: Exciton-Phonon Interactions in Solids bas...
\n",
+ "
grant.14880767
\n",
+ "
Postdoctoral Fellowship: PRFB: Using the intro...
\n",
"
\n",
"
\n",
"
2
\n",
- "
grant.9982417
\n",
- "
CAREER: Empowering White-box Driven Analytics ...
\n",
+ "
grant.14976921
\n",
+ "
Rossbypalooza 2026: A Student-led Summer Schoo...
\n",
"
\n",
"
\n",
"
3
\n",
- "
grant.9982416
\n",
- "
CAREER: Holistic Framework for Constructing Dy...
\n",
+ "
grant.14955547
\n",
+ "
Postdoctoral Fellowship: PRFB: The Role of Pla...
\n",
"
\n",
"
\n",
"
4
\n",
- "
grant.9982395
\n",
- "
CAREER: Leveraging physical properties of mode...
\n",
+ "
grant.14880768
\n",
+ "
Postdoctoral Fellowship: PRFB: Testing a role ...
\n",
"
\n",
"
\n",
"
5
\n",
- "
grant.9785674
\n",
- "
BPC-AE Collaborative Research: Researching Equ...
\n",
+ "
grant.14973500
\n",
+ "
Postdoctoral Fellowship: EAR-PF: Reconstructin...
\n",
"
\n",
"
\n",
"
6
\n",
- "
grant.9785672
\n",
- "
BPC-AE Collaborative Research: Researching Equ...
\n",
+ "
grant.14976878
\n",
+ "
Conference: Recent Perspectives on Moments of ...
\n",
"
\n",
"
\n",
"
7
\n",
- "
grant.9752397
\n",
- "
Equitable Learning to Advance Technical Education
\n",
+ "
grant.14955637
\n",
+ "
Conference: Rutgers Gauge Theory, Low-Dimensio...
\n",
"
\n",
"
\n",
"
8
\n",
- "
grant.9995499
\n",
- "
CAREER: New imaging of mid-ocean ridge systems...
\n",
+ "
grant.14955550
\n",
+ "
Postdoctoral Fellowship: PRFB: Integrating the...
\n",
"
\n",
"
\n",
"
9
\n",
- "
grant.9995464
\n",
- "
CAREER: Reconstructing Parasite Abundance in R...
\n",
+ "
grant.14880771
\n",
+ "
Postdoctoral Fellowship: PRFB: Eco-evolutionar...
\n",
"
\n",
"
\n",
"
10
\n",
- "
grant.9752334
\n",
- "
Collaborative Research: SWIFT: Intelligent Dyn...
\n",
+ "
grant.14976854
\n",
+ "
Conference: Meeting in the Middle: Conference ...
\n",
"
\n",
"
\n",
"
11
\n",
- "
grant.9752333
\n",
- "
Collaborative Research: SWIFT: Intelligent Dyn...
\n",
+ "
grant.14976778
\n",
+ "
MCA: Eavesdropping vectors and disease transmi...
\n",
"
\n",
"
\n",
"
12
\n",
- "
grant.9995542
\n",
- "
CAREER: Learning Mechanisms from Single Cell M...
\n",
+ "
grant.14969598
\n",
+ "
Conference: Universal Statistics in Number Theory
\n",
"
\n",
"
\n",
"
13
\n",
- "
grant.9995538
\n",
- "
CAREER: A Transformative Approach for Teaching...
\n",
+ "
grant.14964639
\n",
+ "
Long term compliance observations of the evolv...
\n",
"
\n",
"
\n",
"
14
\n",
- "
grant.9995527
\n",
- "
CAREER: Interlimb Neural Coupling to Enhance G...
\n",
+ "
grant.14880779
\n",
+ "
Postdoctoral Fellowship: PRFB: Elucidating the...
\n",
"
\n",
"
\n",
"
15
\n",
- "
grant.9995522
\n",
- "
CAREER: Fossil Amber Insight Into Macroevoluti...
\n",
+ "
grant.14976745
\n",
+ "
What drives spatial variability in water-colum...
\n",
"
\n",
"
\n",
"
16
\n",
- "
grant.9995520
\n",
- "
2022 Origins of Life GRC and GRS: Environments...
\n",
+ "
grant.14976476
\n",
+ "
IRES: Exploring New Horizons in the Observable...
\n",
"
\n",
"
\n",
"
17
\n",
- "
grant.9995519
\n",
- "
CAREER: Invariants and Entropy of Square Integ...
\n",
+ "
grant.14969702
\n",
+ "
MCA Pilot PUI: Can unhatched eggs or trash aff...
\n",
"
\n",
"
\n",
"
18
\n",
- "
grant.9995488
\n",
- "
CAREER: Statistical Learning from a Modern Per...
\n",
+ "
grant.14954673
\n",
+ "
Conference: Geometry Labs United 2025
\n",
"
\n",
"
\n",
"
19
\n",
- "
grant.9995470
\n",
- "
CAREER: CAS- Climate: Making Decarbonization o...
\n",
+ "
grant.14976899
\n",
+ "
Collaborative Research: FIRE-MODEL: Advancing ...
\n",
"
\n",
" \n",
"\n",
""
],
"text/plain": [
- " id title\n",
- "0 grant.9752271 NNA Planning: Developing community frameworks ...\n",
- "1 grant.9890102 RUI: Exciton-Phonon Interactions in Solids bas...\n",
- "2 grant.9982417 CAREER: Empowering White-box Driven Analytics ...\n",
- "3 grant.9982416 CAREER: Holistic Framework for Constructing Dy...\n",
- "4 grant.9982395 CAREER: Leveraging physical properties of mode...\n",
- "5 grant.9785674 BPC-AE Collaborative Research: Researching Equ...\n",
- "6 grant.9785672 BPC-AE Collaborative Research: Researching Equ...\n",
- "7 grant.9752397 Equitable Learning to Advance Technical Education\n",
- "8 grant.9995499 CAREER: New imaging of mid-ocean ridge systems...\n",
- "9 grant.9995464 CAREER: Reconstructing Parasite Abundance in R...\n",
- "10 grant.9752334 Collaborative Research: SWIFT: Intelligent Dyn...\n",
- "11 grant.9752333 Collaborative Research: SWIFT: Intelligent Dyn...\n",
- "12 grant.9995542 CAREER: Learning Mechanisms from Single Cell M...\n",
- "13 grant.9995538 CAREER: A Transformative Approach for Teaching...\n",
- "14 grant.9995527 CAREER: Interlimb Neural Coupling to Enhance G...\n",
- "15 grant.9995522 CAREER: Fossil Amber Insight Into Macroevoluti...\n",
- "16 grant.9995520 2022 Origins of Life GRC and GRS: Environments...\n",
- "17 grant.9995519 CAREER: Invariants and Entropy of Square Integ...\n",
- "18 grant.9995488 CAREER: Statistical Learning from a Modern Per...\n",
- "19 grant.9995470 CAREER: CAS- Climate: Making Decarbonization o..."
+ " id title\n",
+ "0 grant.14880777 Postdoctoral Fellowship: PRFB: Mapping the Bum...\n",
+ "1 grant.14880767 Postdoctoral Fellowship: PRFB: Using the intro...\n",
+ "2 grant.14976921 Rossbypalooza 2026: A Student-led Summer Schoo...\n",
+ "3 grant.14955547 Postdoctoral Fellowship: PRFB: The Role of Pla...\n",
+ "4 grant.14880768 Postdoctoral Fellowship: PRFB: Testing a role ...\n",
+ "5 grant.14973500 Postdoctoral Fellowship: EAR-PF: Reconstructin...\n",
+ "6 grant.14976878 Conference: Recent Perspectives on Moments of ...\n",
+ "7 grant.14955637 Conference: Rutgers Gauge Theory, Low-Dimensio...\n",
+ "8 grant.14955550 Postdoctoral Fellowship: PRFB: Integrating the...\n",
+ "9 grant.14880771 Postdoctoral Fellowship: PRFB: Eco-evolutionar...\n",
+ "10 grant.14976854 Conference: Meeting in the Middle: Conference ...\n",
+ "11 grant.14976778 MCA: Eavesdropping vectors and disease transmi...\n",
+ "12 grant.14969598 Conference: Universal Statistics in Number Theory\n",
+ "13 grant.14964639 Long term compliance observations of the evolv...\n",
+ "14 grant.14880779 Postdoctoral Fellowship: PRFB: Elucidating the...\n",
+ "15 grant.14976745 What drives spatial variability in water-colum...\n",
+ "16 grant.14976476 IRES: Exploring New Horizons in the Observable...\n",
+ "17 grant.14969702 MCA Pilot PUI: Can unhatched eggs or trash aff...\n",
+ "18 grant.14954673 Conference: Geometry Labs United 2025\n",
+ "19 grant.14976899 Collaborative Research: FIRE-MODEL: Advancing ..."
]
},
- "execution_count": 12,
+ "execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
@@ -700,7 +702,7 @@
"\n",
"query = f\"\"\"\n",
"search grants \n",
- " where funders.id in {json.dumps(nsfgrids)}\n",
+ " where funders.id in {json.dumps(nsforgs)}\n",
"return grants[id+title]\n",
"\"\"\"\n",
"\n",
@@ -727,7 +729,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.9.9"
+ "version": "3.12.8"
}
},
"nbformat": 4,
diff --git a/cookbooks/8-organizations/7-benchmarking-organizations.ipynb b/cookbooks/8-organizations/7-benchmarking-organizations.ipynb
index 4ce0f55c..b38638a8 100644
--- a/cookbooks/8-organizations/7-benchmarking-organizations.ipynb
+++ b/cookbooks/8-organizations/7-benchmarking-organizations.ipynb
@@ -20,7 +20,7 @@
},
{
"cell_type": "code",
- "execution_count": 2,
+ "execution_count": 1,
"metadata": {},
"outputs": [
{
@@ -29,7 +29,7 @@
"text": [
"==\n",
"CHANGELOG\n",
- "This notebook was last run on Feb 21, 2022\n",
+ "This notebook was last run on Sep 10, 2025\n",
"==\n"
]
}
@@ -54,7 +54,7 @@
},
{
"cell_type": "code",
- "execution_count": 3,
+ "execution_count": 2,
"metadata": {},
"outputs": [
{
@@ -70,8 +70,8 @@
"text": [
"==\n",
"Logging in..\n",
- "\u001b[2mDimcli - Dimensions API Client (v0.9.6)\u001b[0m\n",
- "\u001b[2mConnected to: - DSL v2.0\u001b[0m\n",
+ "\u001b[2mDimcli - Dimensions API Client (v1.4)\u001b[0m\n",
+ "\u001b[2mConnected to: - DSL v2.12\u001b[0m\n",
"\u001b[2mMethod: dsl.ini file\u001b[0m\n"
]
}
@@ -122,7 +122,7 @@
},
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": 3,
"metadata": {
"Collapsed": "false",
"colab": {},
@@ -135,7 +135,7 @@
"output_type": "stream",
"text": [
"Returned Research_orgs: 20\n",
- "\u001b[2mTime: 21.14s\u001b[0m\n"
+ "\u001b[2mTime: 12.29s\u001b[0m\n"
]
},
{
@@ -159,204 +159,204 @@
" \n",
"
\n",
"
\n",
- "
altmetric_median
\n",
- "
count
\n",
"
id
\n",
"
name
\n",
+ "
altmetric_median
\n",
+ "
count
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
- "
5.0
\n",
- "
546592
\n",
"
grid.38142.3c
\n",
"
Harvard University
\n",
+ "
5.292790
\n",
+ "
715128
\n",
"
\n",
"
\n",
"
1
\n",
- "
3.0
\n",
- "
484017
\n",
"
grid.26999.3d
\n",
- "
University of Tokyo
\n",
+ "
The University of Tokyo
\n",
+ "
3.000000
\n",
+ "
570861
\n",
"
\n",
"
\n",
"
2
\n",
- "
4.0
\n",
- "
342764
\n",
"
grid.17063.33
\n",
"
University of Toronto
\n",
+ "
4.019046
\n",
+ "
435895
\n",
"
\n",
"
\n",
"
3
\n",
- "
3.0
\n",
- "
320966
\n",
"
grid.214458.e
\n",
- "
University of Michigan
\n",
+ "
University of Michigan-Ann Arbor
\n",
+ "
3.968242
\n",
+ "
412146
\n",
"
\n",
"
\n",
"
4
\n",
- "
3.0
\n",
- "
310485
\n",
- "
grid.258799.8
\n",
- "
Kyoto University
\n",
+ "
grid.168010.e
\n",
+ "
Stanford University
\n",
+ "
4.939072
\n",
+ "
393415
\n",
"
\n",
"
\n",
"
5
\n",
- "
4.0
\n",
- "
302094
\n",
- "
grid.168010.e
\n",
- "
Stanford University
\n",
+ "
grid.4991.5
\n",
+ "
University of Oxford
\n",
+ "
5.104038
\n",
+ "
387324
\n",
"
\n",
"
\n",
"
6
\n",
- "
4.0
\n",
- "
297558
\n",
"
grid.34477.33
\n",
"
University of Washington
\n",
+ "
4.304326
\n",
+ "
385718
\n",
"
\n",
"
\n",
"
7
\n",
- "
3.0
\n",
- "
297094
\n",
- "
grid.19006.3e
\n",
- "
University of California, Los Angeles
\n",
+ "
grid.21107.35
\n",
+ "
Johns Hopkins University
\n",
+ "
4.374951
\n",
+ "
381545
\n",
"
\n",
"
\n",
"
8
\n",
- "
5.0
\n",
- "
289280
\n",
- "
grid.4991.5
\n",
- "
University of Oxford
\n",
+ "
grid.19006.3e
\n",
+ "
University of California, Los Angeles
\n",
+ "
3.871221
\n",
+ "
373415
\n",
"
\n",
"
\n",
"
9
\n",
- "
4.0
\n",
- "
285143
\n",
- "
grid.21107.35
\n",
- "
Johns Hopkins University
\n",
+ "
grid.258799.8
\n",
+ "
Kyoto University
\n",
+ "
3.000000
\n",
+ "
370973
\n",
"
\n",
"
\n",
"
10
\n",
- "
4.0
\n",
- "
282170
\n",
- "
grid.5335.0
\n",
- "
University of Cambridge
\n",
+ "
grid.11899.38
\n",
+ "
Universidade de São Paulo
\n",
+ "
2.778797
\n",
+ "
367466
\n",
"
\n",
"
\n",
"
11
\n",
- "
2.0
\n",
- "
280405
\n",
- "
grid.11899.38
\n",
- "
University of São Paulo
\n",
+ "
grid.5335.0
\n",
+ "
University of Cambridge
\n",
+ "
4.412618
\n",
+ "
356990
\n",
"
\n",
"
\n",
"
12
\n",
- "
4.0
\n",
- "
271170
\n",
- "
grid.25879.31
\n",
- "
University of Pennsylvania
\n",
+ "
grid.47840.3f
\n",
+ "
University of California, Berkeley
\n",
+ "
4.103148
\n",
+ "
353011
\n",
"
\n",
"
\n",
"
13
\n",
- "
4.0
\n",
- "
266337
\n",
- "
grid.83440.3b
\n",
- "
University College London
\n",
+ "
grid.25879.31
\n",
+ "
University of Pennsylvania
\n",
+ "
4.491342
\n",
+ "
351125
\n",
"
\n",
"
\n",
"
14
\n",
- "
3.0
\n",
- "
265592
\n",
- "
grid.136593.b
\n",
- "
Osaka University
\n",
+ "
grid.17635.36
\n",
+ "
University of Minnesota Twin Cities
\n",
+ "
3.252271
\n",
+ "
324688
\n",
"
\n",
"
\n",
"
15
\n",
- "
3.0
\n",
- "
250749
\n",
- "
grid.69566.3a
\n",
- "
Tohoku University
\n",
+ "
grid.136593.b
\n",
+ "
Osaka University
\n",
+ "
3.000000
\n",
+ "
323974
\n",
"
\n",
"
\n",
"
16
\n",
- "
3.0
\n",
- "
244713
\n",
- "
grid.5386.8
\n",
- "
Cornell University
\n",
+ "
grid.83440.3b
\n",
+ "
University College London
\n",
+ "
4.154059
\n",
+ "
320344
\n",
"
\n",
"
\n",
"
17
\n",
- "
4.0
\n",
- "
242749
\n",
- "
grid.47840.3f
\n",
- "
University of California, Berkeley
\n",
+ "
grid.14003.36
\n",
+ "
University of Wisconsin-Madison
\n",
+ "
3.220404
\n",
+ "
316542
\n",
"
\n",
"
\n",
"
18
\n",
- "
3.0
\n",
- "
239283
\n",
- "
grid.17635.36
\n",
- "
University of Minnesota
\n",
+ "
grid.410726.6
\n",
+ "
University of Chinese Academy of Sciences
\n",
+ "
2.287477
\n",
+ "
313606
\n",
"
\n",
"
\n",
"
19
\n",
- "
4.0
\n",
- "
236142
\n",
- "
grid.21729.3f
\n",
- "
Columbia University
\n",
+ "
grid.47100.32
\n",
+ "
Yale University
\n",
+ "
4.602265
\n",
+ "
305202
\n",
"
\n",
" \n",
"\n",
""
],
"text/plain": [
- " altmetric_median count id \\\n",
- "0 5.0 546592 grid.38142.3c \n",
- "1 3.0 484017 grid.26999.3d \n",
- "2 4.0 342764 grid.17063.33 \n",
- "3 3.0 320966 grid.214458.e \n",
- "4 3.0 310485 grid.258799.8 \n",
- "5 4.0 302094 grid.168010.e \n",
- "6 4.0 297558 grid.34477.33 \n",
- "7 3.0 297094 grid.19006.3e \n",
- "8 5.0 289280 grid.4991.5 \n",
- "9 4.0 285143 grid.21107.35 \n",
- "10 4.0 282170 grid.5335.0 \n",
- "11 2.0 280405 grid.11899.38 \n",
- "12 4.0 271170 grid.25879.31 \n",
- "13 4.0 266337 grid.83440.3b \n",
- "14 3.0 265592 grid.136593.b \n",
- "15 3.0 250749 grid.69566.3a \n",
- "16 3.0 244713 grid.5386.8 \n",
- "17 4.0 242749 grid.47840.3f \n",
- "18 3.0 239283 grid.17635.36 \n",
- "19 4.0 236142 grid.21729.3f \n",
+ " id name \\\n",
+ "0 grid.38142.3c Harvard University \n",
+ "1 grid.26999.3d The University of Tokyo \n",
+ "2 grid.17063.33 University of Toronto \n",
+ "3 grid.214458.e University of Michigan-Ann Arbor \n",
+ "4 grid.168010.e Stanford University \n",
+ "5 grid.4991.5 University of Oxford \n",
+ "6 grid.34477.33 University of Washington \n",
+ "7 grid.21107.35 Johns Hopkins University \n",
+ "8 grid.19006.3e University of California, Los Angeles \n",
+ "9 grid.258799.8 Kyoto University \n",
+ "10 grid.11899.38 Universidade de São Paulo \n",
+ "11 grid.5335.0 University of Cambridge \n",
+ "12 grid.47840.3f University of California, Berkeley \n",
+ "13 grid.25879.31 University of Pennsylvania \n",
+ "14 grid.17635.36 University of Minnesota Twin Cities \n",
+ "15 grid.136593.b Osaka University \n",
+ "16 grid.83440.3b University College London \n",
+ "17 grid.14003.36 University of Wisconsin-Madison \n",
+ "18 grid.410726.6 University of Chinese Academy of Sciences \n",
+ "19 grid.47100.32 Yale University \n",
"\n",
- " name \n",
- "0 Harvard University \n",
- "1 University of Tokyo \n",
- "2 University of Toronto \n",
- "3 University of Michigan \n",
- "4 Kyoto University \n",
- "5 Stanford University \n",
- "6 University of Washington \n",
- "7 University of California, Los Angeles \n",
- "8 University of Oxford \n",
- "9 Johns Hopkins University \n",
- "10 University of Cambridge \n",
- "11 University of São Paulo \n",
- "12 University of Pennsylvania \n",
- "13 University College London \n",
- "14 Osaka University \n",
- "15 Tohoku University \n",
- "16 Cornell University \n",
- "17 University of California, Berkeley \n",
- "18 University of Minnesota \n",
- "19 Columbia University "
+ " altmetric_median count \n",
+ "0 5.292790 715128 \n",
+ "1 3.000000 570861 \n",
+ "2 4.019046 435895 \n",
+ "3 3.968242 412146 \n",
+ "4 4.939072 393415 \n",
+ "5 5.104038 387324 \n",
+ "6 4.304326 385718 \n",
+ "7 4.374951 381545 \n",
+ "8 3.871221 373415 \n",
+ "9 3.000000 370973 \n",
+ "10 2.778797 367466 \n",
+ "11 4.412618 356990 \n",
+ "12 4.103148 353011 \n",
+ "13 4.491342 351125 \n",
+ "14 3.252271 324688 \n",
+ "15 3.000000 323974 \n",
+ "16 4.154059 320344 \n",
+ "17 3.220404 316542 \n",
+ "18 2.287477 313606 \n",
+ "19 4.602265 305202 "
]
},
- "execution_count": 4,
+ "execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
@@ -369,7 +369,7 @@
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": 4,
"metadata": {
"Collapsed": "false",
"colab": {},
@@ -382,7 +382,7 @@
"output_type": "stream",
"text": [
"Returned Research_orgs: 20\n",
- "\u001b[2mTime: 6.63s\u001b[0m\n"
+ "\u001b[2mTime: 4.16s\u001b[0m\n"
]
},
{
@@ -406,204 +406,204 @@
" \n",
"
\n",
"
\n",
- "
citations_total
\n",
- "
count
\n",
"
id
\n",
"
name
\n",
+ "
citations_total
\n",
+ "
count
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
- "
28836616.0
\n",
- "
546592
\n",
"
grid.38142.3c
\n",
"
Harvard University
\n",
+ "
43542715.0
\n",
+ "
715128
\n",
"
\n",
"
\n",
"
1
\n",
- "
8545148.0
\n",
- "
484017
\n",
"
grid.26999.3d
\n",
- "
University of Tokyo
\n",
+ "
The University of Tokyo
\n",
+ "
12416944.0
\n",
+ "
570861
\n",
"
\n",
"
\n",
"
2
\n",
- "
11040840.0
\n",
- "
342764
\n",
"
grid.17063.33
\n",
"
University of Toronto
\n",
+ "
16896263.0
\n",
+ "
435895
\n",
"
\n",
"
\n",
"
3
\n",
- "
11710248.0
\n",
- "
320966
\n",
"
grid.214458.e
\n",
- "
University of Michigan
\n",
+ "
University of Michigan-Ann Arbor
\n",
+ "
17899164.0
\n",
+ "
412146
\n",
"
\n",
"
\n",
"
4
\n",
- "
5928948.0
\n",
- "
310485
\n",
- "
grid.258799.8
\n",
- "
Kyoto University
\n",
+ "
grid.168010.e
\n",
+ "
Stanford University
\n",
+ "
22857822.0
\n",
+ "
393415
\n",
"
\n",
"
\n",
"
5
\n",
- "
14738599.0
\n",
- "
302094
\n",
- "
grid.168010.e
\n",
- "
Stanford University
\n",
+ "
grid.4991.5
\n",
+ "
University of Oxford
\n",
+ "
17348878.0
\n",
+ "
387324
\n",
"
\n",
"
\n",
"
6
\n",
- "
12585381.0
\n",
- "
297558
\n",
"
grid.34477.33
\n",
"
University of Washington
\n",
+ "
19245227.0
\n",
+ "
385718
\n",
"
\n",
"
\n",
"
7
\n",
- "
11710928.0
\n",
- "
297094
\n",
- "
grid.19006.3e
\n",
- "
University of California, Los Angeles
\n",
+ "
grid.21107.35
\n",
+ "
Johns Hopkins University
\n",
+ "
18542871.0
\n",
+ "
381545
\n",
"
\n",
"
\n",
"
8
\n",
- "
10879614.0
\n",
- "
289280
\n",
- "
grid.4991.5
\n",
- "
University of Oxford
\n",
+ "
grid.19006.3e
\n",
+ "
University of California, Los Angeles
\n",
+ "
17370426.0
\n",
+ "
373415
\n",
"
\n",
"
\n",
"
9
\n",
- "
12084053.0
\n",
- "
285143
\n",
- "
grid.21107.35
\n",
- "
Johns Hopkins University
\n",
+ "
grid.258799.8
\n",
+ "
Kyoto University
\n",
+ "
8426700.0
\n",
+ "
370973
\n",
"
\n",
"
\n",
"
10
\n",
- "
10814051.0
\n",
- "
282170
\n",
- "
grid.5335.0
\n",
- "
University of Cambridge
\n",
+ "
grid.11899.38
\n",
+ "
Universidade de São Paulo
\n",
+ "
6823063.0
\n",
+ "
367466
\n",
"
\n",
"
\n",
"
11
\n",
- "
4105653.0
\n",
- "
280405
\n",
- "
grid.11899.38
\n",
- "
University of São Paulo
\n",
+ "
grid.5335.0
\n",
+ "
University of Cambridge
\n",
+ "
16495121.0
\n",
+ "
356990
\n",
"
\n",
"
\n",
"
12
\n",
- "
10450691.0
\n",
- "
271170
\n",
- "
grid.25879.31
\n",
- "
University of Pennsylvania
\n",
+ "
grid.47840.3f
\n",
+ "
University of California, Berkeley
\n",
+ "
19445292.0
\n",
+ "
353011
\n",
"
\n",
"
\n",
"
13
\n",
- "
9614297.0
\n",
- "
266337
\n",
- "
grid.83440.3b
\n",
- "
University College London
\n",
+ "
grid.25879.31
\n",
+ "
University of Pennsylvania
\n",
+ "
15634591.0
\n",
+ "
351125
\n",
"
\n",
"
\n",
"
14
\n",
- "
4653874.0
\n",
- "
265592
\n",
- "
grid.136593.b
\n",
- "
Osaka University
\n",
+ "
grid.17635.36
\n",
+ "
University of Minnesota Twin Cities
\n",
+ "
13100152.0
\n",
+ "
324688
\n",
"
\n",
"
\n",
"
15
\n",
- "
3694359.0
\n",
- "
250749
\n",
- "
grid.69566.3a
\n",
- "
Tohoku University
\n",
+ "
grid.136593.b
\n",
+ "
Osaka University
\n",
+ "
6486832.0
\n",
+ "
323974
\n",
"
\n",
"
\n",
"
16
\n",
- "
9370701.0
\n",
- "
244713
\n",
- "
grid.5386.8
\n",
- "
Cornell University
\n",
+ "
grid.83440.3b
\n",
+ "
University College London
\n",
+ "
13014090.0
\n",
+ "
320344
\n",
"
\n",
"
\n",
"
17
\n",
- "
11806056.0
\n",
- "
242749
\n",
- "
grid.47840.3f
\n",
- "
University of California, Berkeley
\n",
+ "
grid.14003.36
\n",
+ "
University of Wisconsin-Madison
\n",
+ "
13060297.0
\n",
+ "
316542
\n",
"
\n",
"
\n",
"
18
\n",
- "
8360048.0
\n",
- "
239283
\n",
- "
grid.17635.36
\n",
- "
University of Minnesota
\n",
+ "
grid.410726.6
\n",
+ "
University of Chinese Academy of Sciences
\n",
+ "
8305318.0
\n",
+ "
313606
\n",
"
\n",
"
\n",
"
19
\n",
- "
9400497.0
\n",
- "
236142
\n",
- "
grid.21729.3f
\n",
- "
Columbia University
\n",
+ "
grid.47100.32
\n",
+ "
Yale University
\n",
+ "
14768834.0
\n",
+ "
305202
\n",
"
\n",
" \n",
"\n",
""
],
"text/plain": [
- " citations_total count id \\\n",
- "0 28836616.0 546592 grid.38142.3c \n",
- "1 8545148.0 484017 grid.26999.3d \n",
- "2 11040840.0 342764 grid.17063.33 \n",
- "3 11710248.0 320966 grid.214458.e \n",
- "4 5928948.0 310485 grid.258799.8 \n",
- "5 14738599.0 302094 grid.168010.e \n",
- "6 12585381.0 297558 grid.34477.33 \n",
- "7 11710928.0 297094 grid.19006.3e \n",
- "8 10879614.0 289280 grid.4991.5 \n",
- "9 12084053.0 285143 grid.21107.35 \n",
- "10 10814051.0 282170 grid.5335.0 \n",
- "11 4105653.0 280405 grid.11899.38 \n",
- "12 10450691.0 271170 grid.25879.31 \n",
- "13 9614297.0 266337 grid.83440.3b \n",
- "14 4653874.0 265592 grid.136593.b \n",
- "15 3694359.0 250749 grid.69566.3a \n",
- "16 9370701.0 244713 grid.5386.8 \n",
- "17 11806056.0 242749 grid.47840.3f \n",
- "18 8360048.0 239283 grid.17635.36 \n",
- "19 9400497.0 236142 grid.21729.3f \n",
+ " id name citations_total \\\n",
+ "0 grid.38142.3c Harvard University 43542715.0 \n",
+ "1 grid.26999.3d The University of Tokyo 12416944.0 \n",
+ "2 grid.17063.33 University of Toronto 16896263.0 \n",
+ "3 grid.214458.e University of Michigan-Ann Arbor 17899164.0 \n",
+ "4 grid.168010.e Stanford University 22857822.0 \n",
+ "5 grid.4991.5 University of Oxford 17348878.0 \n",
+ "6 grid.34477.33 University of Washington 19245227.0 \n",
+ "7 grid.21107.35 Johns Hopkins University 18542871.0 \n",
+ "8 grid.19006.3e University of California, Los Angeles 17370426.0 \n",
+ "9 grid.258799.8 Kyoto University 8426700.0 \n",
+ "10 grid.11899.38 Universidade de São Paulo 6823063.0 \n",
+ "11 grid.5335.0 University of Cambridge 16495121.0 \n",
+ "12 grid.47840.3f University of California, Berkeley 19445292.0 \n",
+ "13 grid.25879.31 University of Pennsylvania 15634591.0 \n",
+ "14 grid.17635.36 University of Minnesota Twin Cities 13100152.0 \n",
+ "15 grid.136593.b Osaka University 6486832.0 \n",
+ "16 grid.83440.3b University College London 13014090.0 \n",
+ "17 grid.14003.36 University of Wisconsin-Madison 13060297.0 \n",
+ "18 grid.410726.6 University of Chinese Academy of Sciences 8305318.0 \n",
+ "19 grid.47100.32 Yale University 14768834.0 \n",
"\n",
- " name \n",
- "0 Harvard University \n",
- "1 University of Tokyo \n",
- "2 University of Toronto \n",
- "3 University of Michigan \n",
- "4 Kyoto University \n",
- "5 Stanford University \n",
- "6 University of Washington \n",
- "7 University of California, Los Angeles \n",
- "8 University of Oxford \n",
- "9 Johns Hopkins University \n",
- "10 University of Cambridge \n",
- "11 University of São Paulo \n",
- "12 University of Pennsylvania \n",
- "13 University College London \n",
- "14 Osaka University \n",
- "15 Tohoku University \n",
- "16 Cornell University \n",
- "17 University of California, Berkeley \n",
- "18 University of Minnesota \n",
- "19 Columbia University "
+ " count \n",
+ "0 715128 \n",
+ "1 570861 \n",
+ "2 435895 \n",
+ "3 412146 \n",
+ "4 393415 \n",
+ "5 387324 \n",
+ "6 385718 \n",
+ "7 381545 \n",
+ "8 373415 \n",
+ "9 370973 \n",
+ "10 367466 \n",
+ "11 356990 \n",
+ "12 353011 \n",
+ "13 351125 \n",
+ "14 324688 \n",
+ "15 323974 \n",
+ "16 320344 \n",
+ "17 316542 \n",
+ "18 313606 \n",
+ "19 305202 "
]
},
- "execution_count": 5,
+ "execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
@@ -616,7 +616,7 @@
},
{
"cell_type": "code",
- "execution_count": 6,
+ "execution_count": 5,
"metadata": {
"Collapsed": "false",
"colab": {},
@@ -629,7 +629,7 @@
"output_type": "stream",
"text": [
"Returned Research_orgs: 20\n",
- "\u001b[2mTime: 6.54s\u001b[0m\n"
+ "\u001b[2mTime: 5.11s\u001b[0m\n"
]
},
{
@@ -653,204 +653,204 @@
" \n",
"
\n",
"
\n",
- "
count
\n",
"
id
\n",
"
name
\n",
+ "
count
\n",
"
recent_citations_total
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
- "
546592
\n",
"
grid.38142.3c
\n",
"
Harvard University
\n",
- "
5562378.0
\n",
+ "
715128
\n",
+ "
5657002.0
\n",
"
\n",
"
\n",
"
1
\n",
- "
484017
\n",
"
grid.26999.3d
\n",
- "
University of Tokyo
\n",
- "
1471000.0
\n",
+ "
The University of Tokyo
\n",
+ "
570861
\n",
+ "
1498274.0
\n",
"
\n",
"
\n",
"
2
\n",
- "
342764
\n",
"
grid.17063.33
\n",
"
University of Toronto
\n",
- "
2380994.0
\n",
+ "
435895
\n",
+ "
2557162.0
\n",
"
\n",
"
\n",
"
3
\n",
- "
320966
\n",
"
grid.214458.e
\n",
- "
University of Michigan
\n",
- "
2370219.0
\n",
+ "
University of Michigan-Ann Arbor
\n",
+ "
412146
\n",
+ "
2411193.0
\n",
"
\n",
"
\n",
"
4
\n",
- "
310485
\n",
- "
grid.258799.8
\n",
- "
Kyoto University
\n",
- "
1006685.0
\n",
+ "
grid.168010.e
\n",
+ "
Stanford University
\n",
+ "
393415
\n",
+ "
3172519.0
\n",
"
\n",
"
\n",
"
5
\n",
- "
302094
\n",
- "
grid.168010.e
\n",
- "
Stanford University
\n",
- "
2985116.0
\n",
+ "
grid.4991.5
\n",
+ "
University of Oxford
\n",
+ "
387324
\n",
+ "
2687354.0
\n",
"
\n",
"
\n",
"
6
\n",
- "
297558
\n",
"
grid.34477.33
\n",
"
University of Washington
\n",
- "
2411827.0
\n",
+ "
385718
\n",
+ "
2508430.0
\n",
"
\n",
"
\n",
"
7
\n",
- "
297094
\n",
- "
grid.19006.3e
\n",
- "
University of California, Los Angeles
\n",
- "
2137101.0
\n",
+ "
grid.21107.35
\n",
+ "
Johns Hopkins University
\n",
+ "
381545
\n",
+ "
2441471.0
\n",
"
\n",
"
\n",
"
8
\n",
- "
289280
\n",
- "
grid.4991.5
\n",
- "
University of Oxford
\n",
- "
2504619.0
\n",
+ "
grid.19006.3e
\n",
+ "
University of California, Los Angeles
\n",
+ "
373415
\n",
+ "
2151381.0
\n",
"
\n",
"
\n",
"
9
\n",
- "
285143
\n",
- "
grid.21107.35
\n",
- "
Johns Hopkins University
\n",
- "
2352686.0
\n",
+ "
grid.258799.8
\n",
+ "
Kyoto University
\n",
+ "
370973
\n",
+ "
966227.0
\n",
"
\n",
"
\n",
"
10
\n",
- "
282170
\n",
- "
grid.5335.0
\n",
- "
University of Cambridge
\n",
- "
2110364.0
\n",
+ "
grid.11899.38
\n",
+ "
Universidade de São Paulo
\n",
+ "
367466
\n",
+ "
1207947.0
\n",
"
\n",
"
\n",
"
11
\n",
- "
280405
\n",
- "
grid.11899.38
\n",
- "
University of São Paulo
\n",
- "
1124894.0
\n",
+ "
grid.5335.0
\n",
+ "
University of Cambridge
\n",
+ "
356990
\n",
+ "
2258714.0
\n",
"
\n",
"
\n",
"
12
\n",
- "
271170
\n",
- "
grid.25879.31
\n",
- "
University of Pennsylvania
\n",
- "
2049126.0
\n",
+ "
grid.47840.3f
\n",
+ "
University of California, Berkeley
\n",
+ "
353011
\n",
+ "
2404905.0
\n",
"
\n",
"
\n",
"
13
\n",
- "
266337
\n",
- "
grid.83440.3b
\n",
- "
University College London
\n",
- "
2197569.0
\n",
+ "
grid.25879.31
\n",
+ "
University of Pennsylvania
\n",
+ "
351125
\n",
+ "
2063182.0
\n",
"
\n",
"
\n",
"
14
\n",
- "
265592
\n",
- "
grid.136593.b
\n",
- "
Osaka University
\n",
- "
727151.0
\n",
+ "
grid.17635.36
\n",
+ "
University of Minnesota Twin Cities
\n",
+ "
324688
\n",
+ "
1575033.0
\n",
"
\n",
"
\n",
"
15
\n",
- "
250749
\n",
- "
grid.69566.3a
\n",
- "
Tohoku University
\n",
- "
644246.0
\n",
+ "
grid.136593.b
\n",
+ "
Osaka University
\n",
+ "
323974
\n",
+ "
691161.0
\n",
"
\n",
"
\n",
"
16
\n",
- "
244713
\n",
- "
grid.5386.8
\n",
- "
Cornell University
\n",
- "
1809884.0
\n",
+ "
grid.83440.3b
\n",
+ "
University College London
\n",
+ "
320344
\n",
+ "
2241297.0
\n",
"
\n",
"
\n",
"
17
\n",
- "
242749
\n",
- "
grid.47840.3f
\n",
- "
University of California, Berkeley
\n",
- "
2057506.0
\n",
+ "
grid.14003.36
\n",
+ "
University of Wisconsin-Madison
\n",
+ "
316542
\n",
+ "
1508661.0
\n",
"
\n",
"
\n",
"
18
\n",
- "
239283
\n",
- "
grid.17635.36
\n",
- "
University of Minnesota
\n",
- "
1519539.0
\n",
+ "
grid.410726.6
\n",
+ "
University of Chinese Academy of Sciences
\n",
+ "
313606
\n",
+ "
2620498.0
\n",
"
\n",
"
\n",
"
19
\n",
- "
236142
\n",
- "
grid.21729.3f
\n",
- "
Columbia University
\n",
- "
1754780.0
\n",
+ "
grid.47100.32
\n",
+ "
Yale University
\n",
+ "
305202
\n",
+ "
1861426.0
\n",
"
\n",
" \n",
"\n",
""
],
"text/plain": [
- " count id name \\\n",
- "0 546592 grid.38142.3c Harvard University \n",
- "1 484017 grid.26999.3d University of Tokyo \n",
- "2 342764 grid.17063.33 University of Toronto \n",
- "3 320966 grid.214458.e University of Michigan \n",
- "4 310485 grid.258799.8 Kyoto University \n",
- "5 302094 grid.168010.e Stanford University \n",
- "6 297558 grid.34477.33 University of Washington \n",
- "7 297094 grid.19006.3e University of California, Los Angeles \n",
- "8 289280 grid.4991.5 University of Oxford \n",
- "9 285143 grid.21107.35 Johns Hopkins University \n",
- "10 282170 grid.5335.0 University of Cambridge \n",
- "11 280405 grid.11899.38 University of São Paulo \n",
- "12 271170 grid.25879.31 University of Pennsylvania \n",
- "13 266337 grid.83440.3b University College London \n",
- "14 265592 grid.136593.b Osaka University \n",
- "15 250749 grid.69566.3a Tohoku University \n",
- "16 244713 grid.5386.8 Cornell University \n",
- "17 242749 grid.47840.3f University of California, Berkeley \n",
- "18 239283 grid.17635.36 University of Minnesota \n",
- "19 236142 grid.21729.3f Columbia University \n",
+ " id name count \\\n",
+ "0 grid.38142.3c Harvard University 715128 \n",
+ "1 grid.26999.3d The University of Tokyo 570861 \n",
+ "2 grid.17063.33 University of Toronto 435895 \n",
+ "3 grid.214458.e University of Michigan-Ann Arbor 412146 \n",
+ "4 grid.168010.e Stanford University 393415 \n",
+ "5 grid.4991.5 University of Oxford 387324 \n",
+ "6 grid.34477.33 University of Washington 385718 \n",
+ "7 grid.21107.35 Johns Hopkins University 381545 \n",
+ "8 grid.19006.3e University of California, Los Angeles 373415 \n",
+ "9 grid.258799.8 Kyoto University 370973 \n",
+ "10 grid.11899.38 Universidade de São Paulo 367466 \n",
+ "11 grid.5335.0 University of Cambridge 356990 \n",
+ "12 grid.47840.3f University of California, Berkeley 353011 \n",
+ "13 grid.25879.31 University of Pennsylvania 351125 \n",
+ "14 grid.17635.36 University of Minnesota Twin Cities 324688 \n",
+ "15 grid.136593.b Osaka University 323974 \n",
+ "16 grid.83440.3b University College London 320344 \n",
+ "17 grid.14003.36 University of Wisconsin-Madison 316542 \n",
+ "18 grid.410726.6 University of Chinese Academy of Sciences 313606 \n",
+ "19 grid.47100.32 Yale University 305202 \n",
"\n",
" recent_citations_total \n",
- "0 5562378.0 \n",
- "1 1471000.0 \n",
- "2 2380994.0 \n",
- "3 2370219.0 \n",
- "4 1006685.0 \n",
- "5 2985116.0 \n",
- "6 2411827.0 \n",
- "7 2137101.0 \n",
- "8 2504619.0 \n",
- "9 2352686.0 \n",
- "10 2110364.0 \n",
- "11 1124894.0 \n",
- "12 2049126.0 \n",
- "13 2197569.0 \n",
- "14 727151.0 \n",
- "15 644246.0 \n",
- "16 1809884.0 \n",
- "17 2057506.0 \n",
- "18 1519539.0 \n",
- "19 1754780.0 "
+ "0 5657002.0 \n",
+ "1 1498274.0 \n",
+ "2 2557162.0 \n",
+ "3 2411193.0 \n",
+ "4 3172519.0 \n",
+ "5 2687354.0 \n",
+ "6 2508430.0 \n",
+ "7 2441471.0 \n",
+ "8 2151381.0 \n",
+ "9 966227.0 \n",
+ "10 1207947.0 \n",
+ "11 2258714.0 \n",
+ "12 2404905.0 \n",
+ "13 2063182.0 \n",
+ "14 1575033.0 \n",
+ "15 691161.0 \n",
+ "16 2241297.0 \n",
+ "17 1508661.0 \n",
+ "18 2620498.0 \n",
+ "19 1861426.0 "
]
},
- "execution_count": 6,
+ "execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
@@ -874,7 +874,7 @@
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": 6,
"metadata": {
"Collapsed": "false",
"colab": {},
@@ -887,7 +887,7 @@
"output_type": "stream",
"text": [
"Returned Year: 20\n",
- "\u001b[2mTime: 4.06s\u001b[0m\n"
+ "\u001b[2mTime: 5.16s\u001b[0m\n"
]
},
{
@@ -911,161 +911,161 @@
" \n",
"
\n",
""
],
"text/plain": [
- " for_name \\\n",
- "0 11 Medical and Health Sciences \n",
- "1 11 Medical and Health Sciences \n",
- "2 11 Medical and Health Sciences \n",
- "3 11 Medical and Health Sciences \n",
- "4 11 Medical and Health Sciences \n",
- "... ... \n",
- "12220 19 Studies in Creative Arts and Writing \n",
- "12221 19 Studies in Creative Arts and Writing \n",
- "12222 19 Studies in Creative Arts and Writing \n",
- "12223 19 Studies in Creative Arts and Writing \n",
- "12224 19 Studies in Creative Arts and Writing \n",
+ " for_name \\\n",
+ "0 32 Biomedical and Clinical Sciences \n",
+ "1 32 Biomedical and Clinical Sciences \n",
+ "2 32 Biomedical and Clinical Sciences \n",
+ "3 32 Biomedical and Clinical Sciences \n",
+ "4 32 Biomedical and Clinical Sciences \n",
+ "... ... \n",
+ "13171 36 Creative Arts and Writing \n",
+ "13172 36 Creative Arts and Writing \n",
+ "13173 36 Creative Arts and Writing \n",
+ "13174 36 Creative Arts and Writing \n",
+ "13175 36 Creative Arts and Writing \n",
"\n",
- " name count count all \n",
- "0 Harvard University 845 16932 \n",
- "1 University of Toronto 392 10281 \n",
- "2 Johns Hopkins University 391 10120 \n",
- "3 University of California, San Francisco 365 7850 \n",
- "4 Mayo Clinic 321 7659 \n",
- "... ... ... ... \n",
- "12220 University of Bamberg 1 3 \n",
- "12221 National University of Quilmes 1 2 \n",
- "12222 Czech University of Life Sciences Prague 1 2 \n",
- "12223 University Hospitals of Cleveland 1 2 \n",
- "12224 Grinnell College 1 2 \n",
+ " name count count all \n",
+ "0 Harvard University 767 15967 \n",
+ "1 Johns Hopkins University 356 9182 \n",
+ "2 University of Toronto 338 8932 \n",
+ "3 Mayo Clinic 380 8507 \n",
+ "4 University of California, San Francisco 339 7477 \n",
+ "... ... ... ... \n",
+ "13171 Adobe Inc 3 7 \n",
+ "13172 Polytechnic University of Turin 1 7 \n",
+ "13173 University of Electronic Science and Technolog... 1 7 \n",
+ "13174 University of Cyprus 1 7 \n",
+ "13175 Broad Institute 1 7 \n",
"\n",
- "[12225 rows x 4 columns]"
+ "[13176 rows x 4 columns]"
]
},
- "execution_count": 31,
+ "execution_count": 30,
"metadata": {},
"output_type": "execute_result"
}
@@ -3284,7 +3293,7 @@
},
{
"cell_type": "code",
- "execution_count": 32,
+ "execution_count": 31,
"metadata": {
"Collapsed": "false",
"colab": {},
@@ -3298,7 +3307,7 @@
},
{
"cell_type": "code",
- "execution_count": 33,
+ "execution_count": 32,
"metadata": {
"Collapsed": "false",
"colab": {},
@@ -3323,7 +3332,7 @@
},
{
"cell_type": "code",
- "execution_count": 34,
+ "execution_count": 33,
"metadata": {
"Collapsed": "false",
"colab": {},
@@ -3358,109 +3367,114 @@
" \n",
" \n",
"
\n",
- "
66
\n",
- "
11 Medical and Health Sciences
\n",
- "
41.0
\n",
+ "
73
\n",
+ "
32 Biomedical and Clinical Sciences
\n",
+ "
54.5
\n",
+ "
\n",
+ "
\n",
+ "
842
\n",
+ "
40 Engineering
\n",
+ "
205.0
\n",
"
\n",
"
\n",
- "
840
\n",
- "
09 Engineering
\n",
- "
138.0
\n",
+ "
1592
\n",
+ "
46 Information and Computing Sciences
\n",
+ "
191.5
\n",
"
\n",
"
\n",
- "
1498
\n",
- "
06 Biological Sciences
\n",
- "
100.0
\n",
+ "
2167
\n",
+ "
31 Biological Sciences
\n",
+ "
71.0
\n",
"
\n",
"
\n",
- "
2294
\n",
- "
08 Information and Computing Sciences
\n",
- "
475.5
\n",
+ "
2916
\n",
+ "
42 Health Sciences
\n",
+ "
31.0
\n",
"
\n",
"
\n",
- "
2875
\n",
- "
03 Chemical Sciences
\n",
- "
93.5
\n",
+ "
3577
\n",
+ "
34 Chemical Sciences
\n",
+ "
47.0
\n",
"
\n",
"
\n",
- "
3512
\n",
- "
02 Physical Sciences
\n",
- "
278.5
\n",
+ "
4211
\n",
+ "
51 Physical Sciences
\n",
+ "
315.0
\n",
"
\n",
"
\n",
- "
4277
\n",
- "
01 Mathematical Sciences
\n",
- "
117.0
\n",
+ "
4992
\n",
+ "
44 Human Society
\n",
+ "
115.5
\n",
"
\n",
"
\n",
- "
4921
\n",
- "
17 Psychology and Cognitive Sciences
\n",
- "
52.5
\n",
+ "
5642
\n",
+ "
35 Commerce, Management, Tourism and Services
\n",
+ "
241.0
\n",
"
\n",
"
\n",
- "
5584
\n",
- "
16 Studies in Human Society
\n",
- "
236.5
\n",
+ "
6253
\n",
+ "
49 Mathematical Sciences
\n",
+ "
87.0
\n",
"
\n",
"
\n",
- "
6165
\n",
- "
15 Commerce, Management, Tourism and Services
\n",
- "
150.0
\n",
+ "
7112
\n",
+ "
30 Agricultural, Veterinary and Food Sciences
\n",
+ "
57.0
\n",
"
\n",
"
\n",
- "
6864
\n",
- "
10 Technology
\n",
- "
304.0
\n",
+ "
7557
\n",
+ "
37 Earth Sciences
\n",
+ "
285.5
\n",
"
\n",
"
\n",
- "
7312
\n",
- "
20 Language, Communication and Culture
\n",
- "
398.5
\n",
+ "
8174
\n",
+ "
47 Language, Communication and Culture
\n",
+ "
422.0
\n",
"
\n",
"
\n",
- "
7785
\n",
- "
13 Education
\n",
- "
377.0
\n",
+ "
8696
\n",
+ "
52 Psychology
\n",
+ "
201.0
\n",
"
\n",
"
\n",
- "
8302
\n",
- "
04 Earth Sciences
\n",
- "
346.5
\n",
+ "
9362
\n",
+ "
50 Philosophy and Religious Studies
\n",
+ "
422.0
\n",
"
\n",
"
\n",
- "
8940
\n",
- "
14 Economics
\n",
- "
310.5
\n",
+ "
9857
\n",
+ "
39 Education
\n",
+ "
255.0
\n",
"
\n",
"
\n",
- "
9467
\n",
- "
21 History and Archaeology
\n",
- "
305.0
\n",
+ "
10448
\n",
+ "
41 Environmental Sciences
\n",
+ "
190.0
\n",
"
\n",
"
\n",
- "
10013
\n",
- "
05 Environmental Sciences
\n",
- "
123.0
\n",
+ "
11006
\n",
+ "
48 Law and Legal Studies
\n",
+ "
291.5
\n",
"
\n",
"
\n",
- "
10741
\n",
- "
07 Agricultural and Veterinary Sciences
\n",
- "
124.5
\n",
+ "
11405
\n",
+ "
38 Economics
\n",
+ "
301.0
\n",
"
\n",
"
\n",
- "
11176
\n",
- "
22 Philosophy and Religious Studies
\n",
- "
311.5
\n",
+ "
11884
\n",
+ "
43 History, Heritage and Archaeology
\n",
+ "
255.0
\n",
"
\n",
"
\n",
- "
11503
\n",
- "
18 Law and Legal Studies
\n",
- "
196.0
\n",
+ "
12409
\n",
+ "
33 Built Environment and Design
\n",
+ "
428.0
\n",
"
\n",
"
\n",
- "
11823
\n",
- "
12 Built Environment and Design
\n",
- "
181.0
\n",
+ "
12841
\n",
+ "
36 Creative Arts and Writing
\n",
+ "
285.0
\n",
"
\n",
" \n",
"\n",
@@ -3468,30 +3482,31 @@
],
"text/plain": [
" for_name percent rank\n",
- "66 11 Medical and Health Sciences 41.0\n",
- "840 09 Engineering 138.0\n",
- "1498 06 Biological Sciences 100.0\n",
- "2294 08 Information and Computing Sciences 475.5\n",
- "2875 03 Chemical Sciences 93.5\n",
- "3512 02 Physical Sciences 278.5\n",
- "4277 01 Mathematical Sciences 117.0\n",
- "4921 17 Psychology and Cognitive Sciences 52.5\n",
- "5584 16 Studies in Human Society 236.5\n",
- "6165 15 Commerce, Management, Tourism and Services 150.0\n",
- "6864 10 Technology 304.0\n",
- "7312 20 Language, Communication and Culture 398.5\n",
- "7785 13 Education 377.0\n",
- "8302 04 Earth Sciences 346.5\n",
- "8940 14 Economics 310.5\n",
- "9467 21 History and Archaeology 305.0\n",
- "10013 05 Environmental Sciences 123.0\n",
- "10741 07 Agricultural and Veterinary Sciences 124.5\n",
- "11176 22 Philosophy and Religious Studies 311.5\n",
- "11503 18 Law and Legal Studies 196.0\n",
- "11823 12 Built Environment and Design 181.0"
+ "73 32 Biomedical and Clinical Sciences 54.5\n",
+ "842 40 Engineering 205.0\n",
+ "1592 46 Information and Computing Sciences 191.5\n",
+ "2167 31 Biological Sciences 71.0\n",
+ "2916 42 Health Sciences 31.0\n",
+ "3577 34 Chemical Sciences 47.0\n",
+ "4211 51 Physical Sciences 315.0\n",
+ "4992 44 Human Society 115.5\n",
+ "5642 35 Commerce, Management, Tourism and Services 241.0\n",
+ "6253 49 Mathematical Sciences 87.0\n",
+ "7112 30 Agricultural, Veterinary and Food Sciences 57.0\n",
+ "7557 37 Earth Sciences 285.5\n",
+ "8174 47 Language, Communication and Culture 422.0\n",
+ "8696 52 Psychology 201.0\n",
+ "9362 50 Philosophy and Religious Studies 422.0\n",
+ "9857 39 Education 255.0\n",
+ "10448 41 Environmental Sciences 190.0\n",
+ "11006 48 Law and Legal Studies 291.5\n",
+ "11405 38 Economics 301.0\n",
+ "11884 43 History, Heritage and Archaeology 255.0\n",
+ "12409 33 Built Environment and Design 428.0\n",
+ "12841 36 Creative Arts and Writing 285.0"
]
},
- "execution_count": 34,
+ "execution_count": 33,
"metadata": {},
"output_type": "execute_result"
}
@@ -3502,7 +3517,7 @@
},
{
"cell_type": "code",
- "execution_count": 35,
+ "execution_count": 34,
"metadata": {
"Collapsed": "false",
"colab": {},
@@ -3536,84 +3551,17 @@
" \n",
" \n",
" \n",
- "
\n",
- "
0
\n",
- "
Harvard University
\n",
- "
61.5
\n",
- "
\n",
- "
\n",
- "
1
\n",
- "
University of Toronto
\n",
- "
236.5
\n",
- "
\n",
- "
\n",
- "
2
\n",
- "
Johns Hopkins University
\n",
- "
220.0
\n",
- "
\n",
- "
\n",
- "
3
\n",
- "
University of California, San Francisco
\n",
- "
93.5
\n",
- "
\n",
- "
\n",
- "
4
\n",
- "
Mayo Clinic
\n",
- "
152.0
\n",
- "
\n",
- "
\n",
- "
...
\n",
- "
...
\n",
- "
...
\n",
- "
\n",
- "
\n",
- "
780
\n",
- "
University of Bath
\n",
- "
425.0
\n",
- "
\n",
- "
\n",
- "
781
\n",
- "
Kuopio University Hospital
\n",
- "
250.5
\n",
- "
\n",
- "
\n",
- "
782
\n",
- "
Marqués de Valdecilla University Hospital
\n",
- "
299.0
\n",
- "
\n",
- "
\n",
- "
783
\n",
- "
Policlinico San Matteo Fondazione
\n",
- "
114.5
\n",
- "
\n",
- "
\n",
- "
784
\n",
- "
Centre Hospitalier Universitaire de Caen
\n",
- "
351.5
\n",
- "
\n",
" \n",
"\n",
- "
785 rows × 2 columns
\n",
""
],
"text/plain": [
- " name percent rank\n",
- "0 Harvard University 61.5\n",
- "1 University of Toronto 236.5\n",
- "2 Johns Hopkins University 220.0\n",
- "3 University of California, San Francisco 93.5\n",
- "4 Mayo Clinic 152.0\n",
- ".. ... ...\n",
- "780 University of Bath 425.0\n",
- "781 Kuopio University Hospital 250.5\n",
- "782 Marqués de Valdecilla University Hospital 299.0\n",
- "783 Policlinico San Matteo Fondazione 114.5\n",
- "784 Centre Hospitalier Universitaire de Caen 351.5\n",
- "\n",
- "[785 rows x 2 columns]"
+ "Empty DataFrame\n",
+ "Columns: [name, percent rank]\n",
+ "Index: []"
]
},
- "execution_count": 35,
+ "execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
@@ -3646,7 +3594,7 @@
},
{
"cell_type": "code",
- "execution_count": 36,
+ "execution_count": 35,
"metadata": {
"Collapsed": "false",
"colab": {},
@@ -3665,7 +3613,7 @@
},
{
"cell_type": "code",
- "execution_count": 37,
+ "execution_count": 36,
"metadata": {
"Collapsed": "false",
"colab": {},
@@ -3679,7 +3627,7 @@
},
{
"cell_type": "code",
- "execution_count": 38,
+ "execution_count": 37,
"metadata": {
"Collapsed": "false",
"colab": {},
@@ -3714,13 +3662,14 @@
"
reference count all
\n",
"
id
\n",
"
count all
\n",
+ "
name
\n",
"
city_name
\n",
"
count
\n",
- "
country_name
\n",
+ "
country_code
\n",
+ "
...
\n",
"
latitude
\n",
"
linkout
\n",
"
longitude
\n",
- "
name
\n",
"
state_name
\n",
"
types
\n",
"
acronym
\n",
@@ -3732,119 +3681,124 @@
" \n",
" \n",
"
\n",
- "
15700
\n",
+ "
17756
\n",
"
grid.1008.9
\n",
"
University of Melbourne
\n",
- "
2211
\n",
- "
5457
\n",
+ "
80003
\n",
+ "
4797
\n",
"
grid.38142.3c
\n",
- "
16932
\n",
+ "
15967
\n",
+ "
Harvard University
\n",
"
Cambridge
\n",
- "
845
\n",
- "
United States
\n",
+ "
767
\n",
+ "
US
\n",
+ "
...
\n",
"
42.377052
\n",
"
[http://www.harvard.edu/]
\n",
"
-71.116650
\n",
- "
Harvard University
\n",
"
Massachusetts
\n",
"
[Education]
\n",
"
NaN
\n",
- "
11 Medical and Health Sciences
\n",
+ "
32 Biomedical and Clinical Sciences
\n",
"
1.0
\n",
- "
4.99
\n",
- "
61.5
\n",
- "
\n",
- "
\n",
- "
15701
\n",
- "
grid.1008.9
\n",
- "
University of Melbourne
\n",
- "
2211
\n",
- "
5457
\n",
- "
grid.17063.33
\n",
- "
10281
\n",
- "
Toronto
\n",
- "
392
\n",
- "
Canada
\n",
- "
43.661667
\n",
- "
[http://www.utoronto.ca/]
\n",
- "
-79.395000
\n",
- "
University of Toronto
\n",
- "
Ontario
\n",
- "
[Education]
\n",
- "
NaN
\n",
- "
11 Medical and Health Sciences
\n",
- "
2.0
\n",
- "
3.81
\n",
- "
236.5
\n",
+ "
4.80
\n",
+ "
63.5
\n",
"
\n",
"
\n",
- "
15702
\n",
+ "
17757
\n",
"
grid.1008.9
\n",
"
University of Melbourne
\n",
- "
2211
\n",
- "
5457
\n",
+ "
80003
\n",
+ "
4797
\n",
"
grid.21107.35
\n",
- "
10120
\n",
+ "
9182
\n",
+ "
Johns Hopkins University
\n",
"
Baltimore
\n",
- "
391
\n",
- "
United States
\n",
+ "
356
\n",
+ "
US
\n",
+ "
...
\n",
"
39.328888
\n",
"
[https://www.jhu.edu/]
\n",
"
-76.620280
\n",
- "
Johns Hopkins University
\n",
"
Maryland
\n",
"
[Education]
\n",
"
JHU
\n",
- "
11 Medical and Health Sciences
\n",
- "
3.0
\n",
- "
3.86
\n",
- "
220.0
\n",
+ "
32 Biomedical and Clinical Sciences
\n",
+ "
4.0
\n",
+ "
3.88
\n",
+ "
195.5
\n",
"
\n",
"
\n",
- "
15703
\n",
+ "
17758
\n",
"
grid.1008.9
\n",
"
University of Melbourne
\n",
- "
2211
\n",
- "
5457
\n",
- "
grid.266102.1
\n",
- "
7850
\n",
- "
San Francisco
\n",
- "
365
\n",
- "
United States
\n",
- "
37.762800
\n",
- "
[https://www.ucsf.edu/]
\n",
- "
-122.457670
\n",
- "
University of California, San Francisco
\n",
- "
California
\n",
+ "
80003
\n",
+ "
4797
\n",
+ "
grid.17063.33
\n",
+ "
8932
\n",
+ "
University of Toronto
\n",
+ "
Toronto
\n",
+ "
338
\n",
+ "
CA
\n",
+ "
...
\n",
+ "
43.661667
\n",
+ "
[http://www.utoronto.ca/]
\n",
+ "
-79.395000
\n",
+ "
Ontario
\n",
"
[Education]
\n",
- "
UCSF
\n",
- "
11 Medical and Health Sciences
\n",
- "
6.0
\n",
- "
4.65
\n",
- "
93.5
\n",
+ "
NaN
\n",
+ "
32 Biomedical and Clinical Sciences
\n",
+ "
8.0
\n",
+ "
3.78
\n",
+ "
220.5
\n",
"
\n",
"
\n",
- "
15704
\n",
+ "
17759
\n",
"
grid.1008.9
\n",
"
University of Melbourne
\n",
- "
2211
\n",
- "
5457
\n",
+ "
80003
\n",
+ "
4797
\n",
"
grid.66875.3a
\n",
- "
7659
\n",
+ "
8507
\n",
+ "
Mayo Clinic
\n",
"
Rochester
\n",
- "
321
\n",
- "
United States
\n",
+ "
380
\n",
+ "
US
\n",
+ "
...
\n",
"
44.024070
\n",
"
[http://www.mayoclinic.org/patient-visitor-gui...
\n",
"
-92.466310
\n",
- "
Mayo Clinic
\n",
"
Minnesota
\n",
"
[Healthcare]
\n",
"
NaN
\n",
- "
11 Medical and Health Sciences
\n",
- "
10.0
\n",
- "
4.19
\n",
- "
152.0
\n",
+ "
32 Biomedical and Clinical Sciences
\n",
+ "
3.0
\n",
+ "
4.47
\n",
+ "
96.5
\n",
+ "
\n",
+ "
\n",
+ "
17760
\n",
+ "
grid.1008.9
\n",
+ "
University of Melbourne
\n",
+ "
80003
\n",
+ "
4797
\n",
+ "
grid.266102.1
\n",
+ "
7477
\n",
+ "
University of California, San Francisco
\n",
+ "
San Francisco
\n",
+ "
339
\n",
+ "
US
\n",
+ "
...
\n",
+ "
37.762800
\n",
+ "
[https://www.ucsf.edu/]
\n",
+ "
-122.457670
\n",
+ "
California
\n",
+ "
[Education]
\n",
+ "
UCSF
\n",
+ "
32 Biomedical and Clinical Sciences
\n",
+ "
6.5
\n",
+ "
4.53
\n",
+ "
89.0
\n",
"
\n",
"
\n",
"
...
\n",
@@ -3868,210 +3822,242 @@
"
...
\n",
"
...
\n",
"
...
\n",
+ "
...
\n",
"
\n",
"
\n",
- "
7350128
\n",
+ "
8082796
\n",
"
grid.1008.9
\n",
"
University of Melbourne
\n",
- "
2219
\n",
- "
85
\n",
- "
grid.7359.8
\n",
+ "
80007
\n",
+ "
126
\n",
+ "
grid.467212.4
\n",
+ "
7
\n",
+ "
Adobe Inc
\n",
+ "
San Jose
\n",
"
3
\n",
- "
Bamberg
\n",
- "
1
\n",
- "
Germany
\n",
- "
49.893845
\n",
- "
[https://www.uni-bamberg.de/]
\n",
- "
10.886044
\n",
- "
University of Bamberg
\n",
+ "
US
\n",
+ "
...
\n",
"
NaN
\n",
- "
[Education]
\n",
+ "
[https://www.adobe.com/]
\n",
"
NaN
\n",
- "
19 Studies in Creative Arts and Writing
\n",
- "
130.0
\n",
- "
33.33
\n",
- "
8.0
\n",
+ "
California
\n",
+ "
[Company]
\n",
+ "
NaN
\n",
+ "
36 Creative Arts and Writing
\n",
+ "
59.0
\n",
+ "
42.86
\n",
+ "
1.0
\n",
"
\n",
"
\n",
- "
7350129
\n",
+ "
8082797
\n",
"
grid.1008.9
\n",
"
University of Melbourne
\n",
- "
2219
\n",
- "
85
\n",
- "
grid.11560.33
\n",
- "
2
\n",
- "
Bernal
\n",
+ "
80007
\n",
+ "
126
\n",
+ "
grid.4800.c
\n",
+ "
7
\n",
+ "
Polytechnic University of Turin
\n",
+ "
Turin
\n",
"
1
\n",
- "
Argentina
\n",
- "
-34.706670
\n",
- "
[http://www.unq.edu.ar/english/sections/158-unq/]
\n",
- "
-58.277500
\n",
- "
National University of Quilmes
\n",
- "
NaN
\n",
+ "
IT
\n",
+ "
...
\n",
+ "
45.063095
\n",
+ "
[http://www.polito.it/]
\n",
+ "
7.661075
\n",
+ "
Piemonte
\n",
"
[Education]
\n",
- "
UNQ
\n",
- "
19 Studies in Creative Arts and Writing
\n",
- "
130.0
\n",
- "
50.00
\n",
- "
2.5
\n",
+ "
NaN
\n",
+ "
36 Creative Arts and Writing
\n",
+ "
350.5
\n",
+ "
14.29
\n",
+ "
34.5
\n",
"
\n",
"
\n",
- "
7350130
\n",
+ "
8082798
\n",
"
grid.1008.9
\n",
"
University of Melbourne
\n",
- "
2219
\n",
- "
85
\n",
- "
grid.15866.3c
\n",
- "
2
\n",
- "
Prague
\n",
+ "
80007
\n",
+ "
126
\n",
+ "
grid.54549.39
\n",
+ "
7
\n",
+ "
University of Electronic Science and Technolog...
\n",
+ "
Chengdu
\n",
"
1
\n",
- "
Czechia
\n",
- "
50.131460
\n",
- "
[http://www.czu.cz/en/]
\n",
- "
14.373258
\n",
- "
Czech University of Life Sciences Prague
\n",
+ "
CN
\n",
+ "
...
\n",
+ "
30.675713
\n",
+ "
[http://en.uestc.edu.cn/]
\n",
+ "
104.100270
\n",
"
NaN
\n",
"
[Education]
\n",
- "
CULS
\n",
- "
19 Studies in Creative Arts and Writing
\n",
- "
130.0
\n",
- "
50.00
\n",
- "
2.5
\n",
+ "
UESTC
\n",
+ "
36 Creative Arts and Writing
\n",
+ "
350.5
\n",
+ "
14.29
\n",
+ "
34.5
\n",
"
\n",
"
\n",
- "
7350131
\n",
+ "
8082799
\n",
"
grid.1008.9
\n",
"
University of Melbourne
\n",
- "
2219
\n",
- "
85
\n",
- "
grid.241104.2
\n",
- "
2
\n",
- "
Cleveland
\n",
+ "
80007
\n",
+ "
126
\n",
+ "
grid.6603.3
\n",
+ "
7
\n",
+ "
University of Cyprus
\n",
+ "
Nicosia
\n",
"
1
\n",
- "
United States
\n",
- "
41.506096
\n",
- "
[http://www.uhhospitals.org/]
\n",
- "
-81.604820
\n",
- "
University Hospitals of Cleveland
\n",
- "
Ohio
\n",
- "
[Healthcare]
\n",
+ "
CY
\n",
+ "
...
\n",
+ "
35.160270
\n",
+ "
[http://www.ucy.ac.cy/en/]
\n",
+ "
33.376976
\n",
"
NaN
\n",
- "
19 Studies in Creative Arts and Writing
\n",
- "
130.0
\n",
- "
50.00
\n",
- "
2.5
\n",
+ "
[Education]
\n",
+ "
UCY
\n",
+ "
36 Creative Arts and Writing
\n",
+ "
350.5
\n",
+ "
14.29
\n",
+ "
34.5
\n",
"
\n",
"
\n",
- "
7350132
\n",
+ "
8082800
\n",
"
grid.1008.9
\n",
"
University of Melbourne
\n",
- "
2219
\n",
- "
85
\n",
- "
grid.256592.f
\n",
- "
2
\n",
- "
Grinnell
\n",
+ "
80007
\n",
+ "
126
\n",
+ "
grid.66859.34
\n",
+ "
7
\n",
+ "
Broad Institute
\n",
+ "
Cambridge
\n",
"
1
\n",
- "
United States
\n",
- "
41.749737
\n",
- "
[http://www.grinnell.edu/]
\n",
- "
-92.719505
\n",
- "
Grinnell College
\n",
- "
Iowa
\n",
- "
[Education]
\n",
+ "
US
\n",
+ "
...
\n",
+ "
42.367890
\n",
+ "
[http://www.broadinstitute.org/]
\n",
+ "
-71.087030
\n",
+ "
Massachusetts
\n",
+ "
[Nonprofit]
\n",
"
NaN
\n",
- "
19 Studies in Creative Arts and Writing
\n",
- "
130.0
\n",
- "
50.00
\n",
- "
2.5
\n",
+ "
36 Creative Arts and Writing
\n",
+ "
350.5
\n",
+ "
14.29
\n",
+ "
34.5
\n",
"
\n",
" \n",
"\n",
- "
11685 rows × 20 columns
\n",
+ "
13176 rows × 21 columns
\n",
""
],
"text/plain": [
" reference id reference name for_id reference count all \\\n",
- "15700 grid.1008.9 University of Melbourne 2211 5457 \n",
- "15701 grid.1008.9 University of Melbourne 2211 5457 \n",
- "15702 grid.1008.9 University of Melbourne 2211 5457 \n",
- "15703 grid.1008.9 University of Melbourne 2211 5457 \n",
- "15704 grid.1008.9 University of Melbourne 2211 5457 \n",
+ "17756 grid.1008.9 University of Melbourne 80003 4797 \n",
+ "17757 grid.1008.9 University of Melbourne 80003 4797 \n",
+ "17758 grid.1008.9 University of Melbourne 80003 4797 \n",
+ "17759 grid.1008.9 University of Melbourne 80003 4797 \n",
+ "17760 grid.1008.9 University of Melbourne 80003 4797 \n",
"... ... ... ... ... \n",
- "7350128 grid.1008.9 University of Melbourne 2219 85 \n",
- "7350129 grid.1008.9 University of Melbourne 2219 85 \n",
- "7350130 grid.1008.9 University of Melbourne 2219 85 \n",
- "7350131 grid.1008.9 University of Melbourne 2219 85 \n",
- "7350132 grid.1008.9 University of Melbourne 2219 85 \n",
+ "8082796 grid.1008.9 University of Melbourne 80007 126 \n",
+ "8082797 grid.1008.9 University of Melbourne 80007 126 \n",
+ "8082798 grid.1008.9 University of Melbourne 80007 126 \n",
+ "8082799 grid.1008.9 University of Melbourne 80007 126 \n",
+ "8082800 grid.1008.9 University of Melbourne 80007 126 \n",
"\n",
- " id count all city_name count country_name \\\n",
- "15700 grid.38142.3c 16932 Cambridge 845 United States \n",
- "15701 grid.17063.33 10281 Toronto 392 Canada \n",
- "15702 grid.21107.35 10120 Baltimore 391 United States \n",
- "15703 grid.266102.1 7850 San Francisco 365 United States \n",
- "15704 grid.66875.3a 7659 Rochester 321 United States \n",
- "... ... ... ... ... ... \n",
- "7350128 grid.7359.8 3 Bamberg 1 Germany \n",
- "7350129 grid.11560.33 2 Bernal 1 Argentina \n",
- "7350130 grid.15866.3c 2 Prague 1 Czechia \n",
- "7350131 grid.241104.2 2 Cleveland 1 United States \n",
- "7350132 grid.256592.f 2 Grinnell 1 United States \n",
+ " id count all \\\n",
+ "17756 grid.38142.3c 15967 \n",
+ "17757 grid.21107.35 9182 \n",
+ "17758 grid.17063.33 8932 \n",
+ "17759 grid.66875.3a 8507 \n",
+ "17760 grid.266102.1 7477 \n",
+ "... ... ... \n",
+ "8082796 grid.467212.4 7 \n",
+ "8082797 grid.4800.c 7 \n",
+ "8082798 grid.54549.39 7 \n",
+ "8082799 grid.6603.3 7 \n",
+ "8082800 grid.66859.34 7 \n",
"\n",
- " latitude linkout \\\n",
- "15700 42.377052 [http://www.harvard.edu/] \n",
- "15701 43.661667 [http://www.utoronto.ca/] \n",
- "15702 39.328888 [https://www.jhu.edu/] \n",
- "15703 37.762800 [https://www.ucsf.edu/] \n",
- "15704 44.024070 [http://www.mayoclinic.org/patient-visitor-gui... \n",
- "... ... ... \n",
- "7350128 49.893845 [https://www.uni-bamberg.de/] \n",
- "7350129 -34.706670 [http://www.unq.edu.ar/english/sections/158-unq/] \n",
- "7350130 50.131460 [http://www.czu.cz/en/] \n",
- "7350131 41.506096 [http://www.uhhospitals.org/] \n",
- "7350132 41.749737 [http://www.grinnell.edu/] \n",
+ " name city_name \\\n",
+ "17756 Harvard University Cambridge \n",
+ "17757 Johns Hopkins University Baltimore \n",
+ "17758 University of Toronto Toronto \n",
+ "17759 Mayo Clinic Rochester \n",
+ "17760 University of California, San Francisco San Francisco \n",
+ "... ... ... \n",
+ "8082796 Adobe Inc San Jose \n",
+ "8082797 Polytechnic University of Turin Turin \n",
+ "8082798 University of Electronic Science and Technolog... Chengdu \n",
+ "8082799 University of Cyprus Nicosia \n",
+ "8082800 Broad Institute Cambridge \n",
+ "\n",
+ " count country_code ... latitude \\\n",
+ "17756 767 US ... 42.377052 \n",
+ "17757 356 US ... 39.328888 \n",
+ "17758 338 CA ... 43.661667 \n",
+ "17759 380 US ... 44.024070 \n",
+ "17760 339 US ... 37.762800 \n",
+ "... ... ... ... ... \n",
+ "8082796 3 US ... NaN \n",
+ "8082797 1 IT ... 45.063095 \n",
+ "8082798 1 CN ... 30.675713 \n",
+ "8082799 1 CY ... 35.160270 \n",
+ "8082800 1 US ... 42.367890 \n",
"\n",
- " longitude name state_name \\\n",
- "15700 -71.116650 Harvard University Massachusetts \n",
- "15701 -79.395000 University of Toronto Ontario \n",
- "15702 -76.620280 Johns Hopkins University Maryland \n",
- "15703 -122.457670 University of California, San Francisco California \n",
- "15704 -92.466310 Mayo Clinic Minnesota \n",
- "... ... ... ... \n",
- "7350128 10.886044 University of Bamberg NaN \n",
- "7350129 -58.277500 National University of Quilmes NaN \n",
- "7350130 14.373258 Czech University of Life Sciences Prague NaN \n",
- "7350131 -81.604820 University Hospitals of Cleveland Ohio \n",
- "7350132 -92.719505 Grinnell College Iowa \n",
+ " linkout longitude \\\n",
+ "17756 [http://www.harvard.edu/] -71.116650 \n",
+ "17757 [https://www.jhu.edu/] -76.620280 \n",
+ "17758 [http://www.utoronto.ca/] -79.395000 \n",
+ "17759 [http://www.mayoclinic.org/patient-visitor-gui... -92.466310 \n",
+ "17760 [https://www.ucsf.edu/] -122.457670 \n",
+ "... ... ... \n",
+ "8082796 [https://www.adobe.com/] NaN \n",
+ "8082797 [http://www.polito.it/] 7.661075 \n",
+ "8082798 [http://en.uestc.edu.cn/] 104.100270 \n",
+ "8082799 [http://www.ucy.ac.cy/en/] 33.376976 \n",
+ "8082800 [http://www.broadinstitute.org/] -71.087030 \n",
"\n",
- " types acronym for_name rank \\\n",
- "15700 [Education] NaN 11 Medical and Health Sciences 1.0 \n",
- "15701 [Education] NaN 11 Medical and Health Sciences 2.0 \n",
- "15702 [Education] JHU 11 Medical and Health Sciences 3.0 \n",
- "15703 [Education] UCSF 11 Medical and Health Sciences 6.0 \n",
- "15704 [Healthcare] NaN 11 Medical and Health Sciences 10.0 \n",
- "... ... ... ... ... \n",
- "7350128 [Education] NaN 19 Studies in Creative Arts and Writing 130.0 \n",
- "7350129 [Education] UNQ 19 Studies in Creative Arts and Writing 130.0 \n",
- "7350130 [Education] CULS 19 Studies in Creative Arts and Writing 130.0 \n",
- "7350131 [Healthcare] NaN 19 Studies in Creative Arts and Writing 130.0 \n",
- "7350132 [Education] NaN 19 Studies in Creative Arts and Writing 130.0 \n",
+ " state_name types acronym \\\n",
+ "17756 Massachusetts [Education] NaN \n",
+ "17757 Maryland [Education] JHU \n",
+ "17758 Ontario [Education] NaN \n",
+ "17759 Minnesota [Healthcare] NaN \n",
+ "17760 California [Education] UCSF \n",
+ "... ... ... ... \n",
+ "8082796 California [Company] NaN \n",
+ "8082797 Piemonte [Education] NaN \n",
+ "8082798 NaN [Education] UESTC \n",
+ "8082799 NaN [Education] UCY \n",
+ "8082800 Massachusetts [Nonprofit] NaN \n",
"\n",
- " percentage top 1 percent rank \n",
- "15700 4.99 61.5 \n",
- "15701 3.81 236.5 \n",
- "15702 3.86 220.0 \n",
- "15703 4.65 93.5 \n",
- "15704 4.19 152.0 \n",
- "... ... ... \n",
- "7350128 33.33 8.0 \n",
- "7350129 50.00 2.5 \n",
- "7350130 50.00 2.5 \n",
- "7350131 50.00 2.5 \n",
- "7350132 50.00 2.5 \n",
+ " for_name rank percentage top 1 \\\n",
+ "17756 32 Biomedical and Clinical Sciences 1.0 4.80 \n",
+ "17757 32 Biomedical and Clinical Sciences 4.0 3.88 \n",
+ "17758 32 Biomedical and Clinical Sciences 8.0 3.78 \n",
+ "17759 32 Biomedical and Clinical Sciences 3.0 4.47 \n",
+ "17760 32 Biomedical and Clinical Sciences 6.5 4.53 \n",
+ "... ... ... ... \n",
+ "8082796 36 Creative Arts and Writing 59.0 42.86 \n",
+ "8082797 36 Creative Arts and Writing 350.5 14.29 \n",
+ "8082798 36 Creative Arts and Writing 350.5 14.29 \n",
+ "8082799 36 Creative Arts and Writing 350.5 14.29 \n",
+ "8082800 36 Creative Arts and Writing 350.5 14.29 \n",
"\n",
- "[11685 rows x 20 columns]"
+ " percent rank \n",
+ "17756 63.5 \n",
+ "17757 195.5 \n",
+ "17758 220.5 \n",
+ "17759 96.5 \n",
+ "17760 89.0 \n",
+ "... ... \n",
+ "8082796 1.0 \n",
+ "8082797 34.5 \n",
+ "8082798 34.5 \n",
+ "8082799 34.5 \n",
+ "8082800 34.5 \n",
+ "\n",
+ "[13176 rows x 21 columns]"
]
},
- "execution_count": 38,
+ "execution_count": 37,
"metadata": {},
"output_type": "execute_result"
}
@@ -4082,7 +4068,7 @@
},
{
"cell_type": "code",
- "execution_count": 39,
+ "execution_count": 38,
"metadata": {
"Collapsed": "false",
"colab": {},
@@ -4098,7 +4084,7 @@
},
{
"cell_type": "code",
- "execution_count": 40,
+ "execution_count": 39,
"metadata": {
"Collapsed": "false",
"colab": {},
@@ -4114,7 +4100,7 @@
},
{
"cell_type": "code",
- "execution_count": 41,
+ "execution_count": 40,
"metadata": {
"Collapsed": "false",
"colab": {},
@@ -4152,172 +4138,180 @@
" \n",
" \n",
"
\n",
- "
15720
\n",
+ "
17779
\n",
"
grid.1008.9
\n",
- "
2211
\n",
+ "
80003
\n",
"
University of Melbourne
\n",
- "
11 Medical and Health Sciences
\n",
- "
15.5
\n",
+ "
32 Biomedical and Clinical Sciences
\n",
+ "
6.0
\n",
"
\n",
"
\n",
- "
738709
\n",
+ "
733648
\n",
"
grid.1008.9
\n",
- "
2209
\n",
+ "
80011
\n",
"
University of Melbourne
\n",
- "
09 Engineering
\n",
- "
40.0
\n",
+ "
40 Engineering
\n",
+ "
85.0
\n",
"
\n",
"
\n",
- "
1131875
\n",
+ "
1168804
\n",
"
grid.1008.9
\n",
- "
2206
\n",
+ "
80017
\n",
"
University of Melbourne
\n",
- "
06 Biological Sciences
\n",
- "
13.0
\n",
+ "
46 Information and Computing Sciences
\n",
+ "
51.0
\n",
"
\n",
"
\n",
- "
1643602
\n",
+ "
1578085
\n",
"
grid.1008.9
\n",
- "
2208
\n",
+ "
80002
\n",
"
University of Melbourne
\n",
- "
08 Information and Computing Sciences
\n",
- "
45.0
\n",
+ "
31 Biological Sciences
\n",
+ "
11.0
\n",
"
\n",
"
\n",
- "
2140491
\n",
+ "
2046557
\n",
"
grid.1008.9
\n",
- "
2203
\n",
+ "
80013
\n",
"
University of Melbourne
\n",
- "
03 Chemical Sciences
\n",
- "
87.5
\n",
+ "
42 Health Sciences
\n",
+ "
5.0
\n",
"
\n",
"
\n",
- "
2627450
\n",
+ "
2644004
\n",
"
grid.1008.9
\n",
- "
2202
\n",
+ "
80005
\n",
"
University of Melbourne
\n",
- "
02 Physical Sciences
\n",
- "
49.0
\n",
+ "
34 Chemical Sciences
\n",
+ "
98.0
\n",
"
\n",
"
\n",
- "
3094798
\n",
+ "
3128285
\n",
"
grid.1008.9
\n",
- "
2201
\n",
+ "
80022
\n",
"
University of Melbourne
\n",
- "
01 Mathematical Sciences
\n",
- "
18.0
\n",
+ "
51 Physical Sciences
\n",
+ "
46.0
\n",
"
\n",
"
\n",
- "
3454060
\n",
+ "
3570941
\n",
"
grid.1008.9
\n",
- "
2217
\n",
+ "
80015
\n",
"
University of Melbourne
\n",
- "
17 Psychology and Cognitive Sciences
\n",
+ "
44 Human Society
\n",
"
4.0
\n",
"
\n",
"
\n",
- "
3909944
\n",
+ "
3958749
\n",
"
grid.1008.9
\n",
- "
2216
\n",
+ "
80006
\n",
"
University of Melbourne
\n",
- "
16 Studies in Human Society
\n",
- "
4.0
\n",
+ "
35 Commerce, Management, Tourism and Services
\n",
+ "
22.0
\n",
"
\n",
"
\n",
- "
4225053
\n",
+ "
4403670
\n",
"
grid.1008.9
\n",
- "
2215
\n",
+ "
80020
\n",
"
University of Melbourne
\n",
- "
15 Commerce, Management, Tourism and Services
\n",
- "
9.0
\n",
+ "
49 Mathematical Sciences
\n",
+ "
37.0
\n",
"
\n",
"
\n",
- "
4915245
\n",
+ "
4832701
\n",
"
grid.1008.9
\n",
- "
2220
\n",
+ "
80001
\n",
"
University of Melbourne
\n",
- "
20 Language, Communication and Culture
\n",
- "
3.0
\n",
+ "
30 Agricultural, Veterinary and Food Sciences
\n",
+ "
8.0
\n",
"
\n",
"
\n",
- "
5111347
\n",
+ "
5224547
\n",
"
grid.1008.9
\n",
- "
2213
\n",
+ "
80008
\n",
"
University of Melbourne
\n",
- "
13 Education
\n",
- "
8.0
\n",
+ "
37 Earth Sciences
\n",
+ "
44.0
\n",
"
\n",
"
\n",
- "
5429203
\n",
+ "
5606498
\n",
"
grid.1008.9
\n",
- "
2204
\n",
+ "
80018
\n",
"
University of Melbourne
\n",
- "
04 Earth Sciences
\n",
- "
64.0
\n",
+ "
47 Language, Communication and Culture
\n",
+ "
4.0
\n",
"
\n",
"
\n",
- "
5817193
\n",
+ "
5864420
\n",
"
grid.1008.9
\n",
- "
2214
\n",
+ "
80023
\n",
"
University of Melbourne
\n",
- "
14 Economics
\n",
- "
13.0
\n",
+ "
52 Psychology
\n",
+ "
2.0
\n",
"
\n",
"
\n",
- "
6111107
\n",
+ "
6341779
\n",
"
grid.1008.9
\n",
- "
2221
\n",
+ "
80021
\n",
"
University of Melbourne
\n",
- "
21 History and Archaeology
\n",
- "
22.0
\n",
+ "
50 Philosophy and Religious Studies
\n",
+ "
25.0
\n",
"
\n",
"
\n",
- "
6352914
\n",
+ "
6535541
\n",
"
grid.1008.9
\n",
- "
2205
\n",
+ "
80010
\n",
"
University of Melbourne
\n",
- "
05 Environmental Sciences
\n",
- "
6.0
\n",
+ "
39 Education
\n",
+ "
2.0
\n",
"
\n",
"
\n",
- "
6797399
\n",
+ "
6853435
\n",
"
grid.1008.9
\n",
- "
2207
\n",
+ "
80012
\n",
"
University of Melbourne
\n",
- "
07 Agricultural and Veterinary Sciences
\n",
- "
9.0
\n",
+ "
41 Environmental Sciences
\n",
+ "
5.0
\n",
"
\n",
"
\n",
- "
7091867
\n",
+ "
7239785
\n",
"
grid.1008.9
\n",
- "
2222
\n",
+ "
80019
\n",
"
University of Melbourne
\n",
- "
22 Philosophy and Religious Studies
\n",
- "
13.0
\n",
+ "
48 Law and Legal Studies
\n",
+ "
2.5
\n",
"
\n",
"
\n",
- "
7194418
\n",
+ "
7398600
\n",
"
grid.1008.9
\n",
- "
2218
\n",
+ "
80009
\n",
"
University of Melbourne
\n",
- "
18 Law and Legal Studies
\n",
- "
4.0
\n",
+ "
38 Economics
\n",
+ "
24.5
\n",
"
\n",
"
\n",
- "
7281134
\n",
+ "
7643598
\n",
"
grid.1008.9
\n",
- "
2212
\n",
+ "
80014
\n",
"
University of Melbourne
\n",
- "
12 Built Environment and Design
\n",
- "
7.0
\n",
+ "
43 History, Heritage and Archaeology
\n",
+ "
14.0
\n",
"
\n",
"
\n",
- "
7349969
\n",
+ "
7880154
\n",
"
grid.1008.9
\n",
- "
2219
\n",
+ "
80004
\n",
"
University of Melbourne
\n",
- "
19 Studies in Creative Arts and Writing
\n",
- "
1.0
\n",
+ "
33 Built Environment and Design
\n",
+ "
8.0
\n",
+ "
\n",
+ "
\n",
+ "
8082459
\n",
+ "
grid.1008.9
\n",
+ "
80007
\n",
+ "
University of Melbourne
\n",
+ "
36 Creative Arts and Writing
\n",
+ "
2.0
\n",
"
\n",
" \n",
"\n",
@@ -4325,53 +4319,55 @@
],
"text/plain": [
" id for_id name \\\n",
- "15720 grid.1008.9 2211 University of Melbourne \n",
- "738709 grid.1008.9 2209 University of Melbourne \n",
- "1131875 grid.1008.9 2206 University of Melbourne \n",
- "1643602 grid.1008.9 2208 University of Melbourne \n",
- "2140491 grid.1008.9 2203 University of Melbourne \n",
- "2627450 grid.1008.9 2202 University of Melbourne \n",
- "3094798 grid.1008.9 2201 University of Melbourne \n",
- "3454060 grid.1008.9 2217 University of Melbourne \n",
- "3909944 grid.1008.9 2216 University of Melbourne \n",
- "4225053 grid.1008.9 2215 University of Melbourne \n",
- "4915245 grid.1008.9 2220 University of Melbourne \n",
- "5111347 grid.1008.9 2213 University of Melbourne \n",
- "5429203 grid.1008.9 2204 University of Melbourne \n",
- "5817193 grid.1008.9 2214 University of Melbourne \n",
- "6111107 grid.1008.9 2221 University of Melbourne \n",
- "6352914 grid.1008.9 2205 University of Melbourne \n",
- "6797399 grid.1008.9 2207 University of Melbourne \n",
- "7091867 grid.1008.9 2222 University of Melbourne \n",
- "7194418 grid.1008.9 2218 University of Melbourne \n",
- "7281134 grid.1008.9 2212 University of Melbourne \n",
- "7349969 grid.1008.9 2219 University of Melbourne \n",
+ "17779 grid.1008.9 80003 University of Melbourne \n",
+ "733648 grid.1008.9 80011 University of Melbourne \n",
+ "1168804 grid.1008.9 80017 University of Melbourne \n",
+ "1578085 grid.1008.9 80002 University of Melbourne \n",
+ "2046557 grid.1008.9 80013 University of Melbourne \n",
+ "2644004 grid.1008.9 80005 University of Melbourne \n",
+ "3128285 grid.1008.9 80022 University of Melbourne \n",
+ "3570941 grid.1008.9 80015 University of Melbourne \n",
+ "3958749 grid.1008.9 80006 University of Melbourne \n",
+ "4403670 grid.1008.9 80020 University of Melbourne \n",
+ "4832701 grid.1008.9 80001 University of Melbourne \n",
+ "5224547 grid.1008.9 80008 University of Melbourne \n",
+ "5606498 grid.1008.9 80018 University of Melbourne \n",
+ "5864420 grid.1008.9 80023 University of Melbourne \n",
+ "6341779 grid.1008.9 80021 University of Melbourne \n",
+ "6535541 grid.1008.9 80010 University of Melbourne \n",
+ "6853435 grid.1008.9 80012 University of Melbourne \n",
+ "7239785 grid.1008.9 80019 University of Melbourne \n",
+ "7398600 grid.1008.9 80009 University of Melbourne \n",
+ "7643598 grid.1008.9 80014 University of Melbourne \n",
+ "7880154 grid.1008.9 80004 University of Melbourne \n",
+ "8082459 grid.1008.9 80007 University of Melbourne \n",
"\n",
" for_name filtered percent rank \n",
- "15720 11 Medical and Health Sciences 15.5 \n",
- "738709 09 Engineering 40.0 \n",
- "1131875 06 Biological Sciences 13.0 \n",
- "1643602 08 Information and Computing Sciences 45.0 \n",
- "2140491 03 Chemical Sciences 87.5 \n",
- "2627450 02 Physical Sciences 49.0 \n",
- "3094798 01 Mathematical Sciences 18.0 \n",
- "3454060 17 Psychology and Cognitive Sciences 4.0 \n",
- "3909944 16 Studies in Human Society 4.0 \n",
- "4225053 15 Commerce, Management, Tourism and Services 9.0 \n",
- "4915245 20 Language, Communication and Culture 3.0 \n",
- "5111347 13 Education 8.0 \n",
- "5429203 04 Earth Sciences 64.0 \n",
- "5817193 14 Economics 13.0 \n",
- "6111107 21 History and Archaeology 22.0 \n",
- "6352914 05 Environmental Sciences 6.0 \n",
- "6797399 07 Agricultural and Veterinary Sciences 9.0 \n",
- "7091867 22 Philosophy and Religious Studies 13.0 \n",
- "7194418 18 Law and Legal Studies 4.0 \n",
- "7281134 12 Built Environment and Design 7.0 \n",
- "7349969 19 Studies in Creative Arts and Writing 1.0 "
+ "17779 32 Biomedical and Clinical Sciences 6.0 \n",
+ "733648 40 Engineering 85.0 \n",
+ "1168804 46 Information and Computing Sciences 51.0 \n",
+ "1578085 31 Biological Sciences 11.0 \n",
+ "2046557 42 Health Sciences 5.0 \n",
+ "2644004 34 Chemical Sciences 98.0 \n",
+ "3128285 51 Physical Sciences 46.0 \n",
+ "3570941 44 Human Society 4.0 \n",
+ "3958749 35 Commerce, Management, Tourism and Services 22.0 \n",
+ "4403670 49 Mathematical Sciences 37.0 \n",
+ "4832701 30 Agricultural, Veterinary and Food Sciences 8.0 \n",
+ "5224547 37 Earth Sciences 44.0 \n",
+ "5606498 47 Language, Communication and Culture 4.0 \n",
+ "5864420 52 Psychology 2.0 \n",
+ "6341779 50 Philosophy and Religious Studies 25.0 \n",
+ "6535541 39 Education 2.0 \n",
+ "6853435 41 Environmental Sciences 5.0 \n",
+ "7239785 48 Law and Legal Studies 2.5 \n",
+ "7398600 38 Economics 24.5 \n",
+ "7643598 43 History, Heritage and Archaeology 14.0 \n",
+ "7880154 33 Built Environment and Design 8.0 \n",
+ "8082459 36 Creative Arts and Writing 2.0 "
]
},
- "execution_count": 41,
+ "execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
@@ -4412,7 +4408,7 @@
},
{
"cell_type": "code",
- "execution_count": 42,
+ "execution_count": 41,
"metadata": {
"Collapsed": "false",
"colab": {},
@@ -4432,7 +4428,7 @@
},
{
"cell_type": "code",
- "execution_count": 43,
+ "execution_count": 42,
"metadata": {
"Collapsed": "false",
"colab": {},
@@ -4446,7 +4442,7 @@
},
{
"cell_type": "code",
- "execution_count": 44,
+ "execution_count": 43,
"metadata": {
"Collapsed": "false",
"colab": {},
@@ -4460,7 +4456,7 @@
},
{
"cell_type": "code",
- "execution_count": 45,
+ "execution_count": 44,
"metadata": {
"Collapsed": "false",
"colab": {},
@@ -4494,69 +4490,17 @@
" \n",
" \n",
" \n",
- "
\n",
- "
515
\n",
- "
University of Michigan
\n",
- "
24.5
\n",
- "
\n",
- "
\n",
- "
524
\n",
- "
Karolinska Institute
\n",
- "
24.5
\n",
- "
\n",
- "
\n",
- "
523
\n",
- "
Emory University
\n",
- "
26.0
\n",
- "
\n",
- "
\n",
- "
528
\n",
- "
University of Pittsburgh
\n",
- "
27.0
\n",
- "
\n",
- "
\n",
- "
521
\n",
- "
University of Sydney
\n",
- "
28.0
\n",
- "
\n",
- "
\n",
- "
538
\n",
- "
Monash University
\n",
- "
29.0
\n",
- "
\n",
- "
\n",
- "
533
\n",
- "
University of British Columbia
\n",
- "
30.0
\n",
- "
\n",
- "
\n",
- "
520
\n",
- "
University of São Paulo
\n",
- "
31.0
\n",
- "
\n",
- "
\n",
- "
534
\n",
- "
Shanghai Jiao Tong University
\n",
- "
32.0
\n",
- "
\n",
" \n",
"\n",
""
],
"text/plain": [
- " name filtered percent rank\n",
- "515 University of Michigan 24.5\n",
- "524 Karolinska Institute 24.5\n",
- "523 Emory University 26.0\n",
- "528 University of Pittsburgh 27.0\n",
- "521 University of Sydney 28.0\n",
- "538 Monash University 29.0\n",
- "533 University of British Columbia 30.0\n",
- "520 University of São Paulo 31.0\n",
- "534 Shanghai Jiao Tong University 32.0"
+ "Empty DataFrame\n",
+ "Columns: [name, filtered percent rank]\n",
+ "Index: []"
]
},
- "execution_count": 45,
+ "execution_count": 44,
"metadata": {},
"output_type": "execute_result"
}
@@ -4578,7 +4522,7 @@
},
{
"cell_type": "code",
- "execution_count": 46,
+ "execution_count": 45,
"metadata": {
"Collapsed": "false",
"colab": {},
@@ -4614,11 +4558,11 @@
"
reference count all
\n",
"
id
\n",
"
count all
\n",
+ "
name
\n",
"
city_name
\n",
"
count
\n",
- "
country_name
\n",
"
...
\n",
- "
name
\n",
+ "
longitude
\n",
"
state_name
\n",
"
types
\n",
"
acronym
\n",
@@ -4634,122 +4578,122 @@
"
\n",
"
0
\n",
"
grid.38142.3c
\n",
- "
2211
\n",
+ "
80003
\n",
"
1.0
\n",
"
Harvard University
\n",
- "
16932
\n",
+ "
15967
\n",
"
grid.38142.3c
\n",
- "
16932
\n",
+ "
15967
\n",
+ "
Harvard University
\n",
"
Cambridge
\n",
- "
845
\n",
- "
United States
\n",
+ "
767
\n",
"
...
\n",
- "
Harvard University
\n",
+ "
-71.116650
\n",
"
Massachusetts
\n",
"
[Education]
\n",
"
NaN
\n",
- "
11 Medical and Health Sciences
\n",
+ "
32 Biomedical and Clinical Sciences
\n",
"
1.0
\n",
- "
4.99
\n",
- "
61.5
\n",
+ "
4.80
\n",
+ "
63.5
\n",
"
1.0
\n",
"
0.0
\n",
"
\n",
"
\n",
"
1
\n",
- "
grid.17063.33
\n",
- "
2211
\n",
+ "
grid.21107.35
\n",
+ "
80003
\n",
"
2.0
\n",
- "
University of Toronto
\n",
- "
10281
\n",
+ "
Johns Hopkins University
\n",
+ "
9182
\n",
"
grid.38142.3c
\n",
- "
16932
\n",
+ "
15967
\n",
+ "
Harvard University
\n",
"
Cambridge
\n",
- "
845
\n",
- "
United States
\n",
+ "
767
\n",
"
...
\n",
- "
Harvard University
\n",
+ "
-71.116650
\n",
"
Massachusetts
\n",
"
[Education]
\n",
"
NaN
\n",
- "
11 Medical and Health Sciences
\n",
+ "
32 Biomedical and Clinical Sciences
\n",
"
1.0
\n",
- "
4.99
\n",
- "
61.5
\n",
+ "
4.80
\n",
+ "
63.5
\n",
"
1.0
\n",
"
-1.0
\n",
"
\n",
"
\n",
"
2
\n",
- "
grid.17063.33
\n",
- "
2211
\n",
+ "
grid.21107.35
\n",
+ "
80003
\n",
"
2.0
\n",
- "
University of Toronto
\n",
- "
10281
\n",
- "
grid.17063.33
\n",
- "
10281
\n",
- "
Toronto
\n",
- "
392
\n",
- "
Canada
\n",
+ "
Johns Hopkins University
\n",
+ "
9182
\n",
+ "
grid.21107.35
\n",
+ "
9182
\n",
+ "
Johns Hopkins University
\n",
+ "
Baltimore
\n",
+ "
356
\n",
"
...
\n",
- "
University of Toronto
\n",
- "
Ontario
\n",
+ "
-76.620280
\n",
+ "
Maryland
\n",
"
[Education]
\n",
- "
NaN
\n",
- "
11 Medical and Health Sciences
\n",
- "
2.0
\n",
- "
3.81
\n",
- "
236.5
\n",
+ "
JHU
\n",
+ "
32 Biomedical and Clinical Sciences
\n",
+ "
4.0
\n",
+ "
3.88
\n",
+ "
195.5
\n",
"
2.0
\n",
"
0.0
\n",
"
\n",
"
\n",
"
3
\n",
- "
grid.21107.35
\n",
- "
2211
\n",
- "
2.0
\n",
- "
Johns Hopkins University
\n",
- "
10120
\n",
+ "
grid.17063.33
\n",
+ "
80003
\n",
+ "
3.0
\n",
+ "
University of Toronto
\n",
+ "
8932
\n",
"
grid.38142.3c
\n",
- "
16932
\n",
+ "
15967
\n",
+ "
Harvard University
\n",
"
Cambridge
\n",
- "
845
\n",
- "
United States
\n",
+ "
767
\n",
"
...
\n",
- "
Harvard University
\n",
+ "
-71.116650
\n",
"
Massachusetts
\n",
"
[Education]
\n",
"
NaN
\n",
- "
11 Medical and Health Sciences
\n",
+ "
32 Biomedical and Clinical Sciences
\n",
"
1.0
\n",
- "
4.99
\n",
- "
61.5
\n",
+ "
4.80
\n",
+ "
63.5
\n",
"
1.0
\n",
- "
-1.0
\n",
+ "
-2.0
\n",
"
\n",
"
\n",
"
4
\n",
+ "
grid.17063.33
\n",
+ "
80003
\n",
+ "
3.0
\n",
+ "
University of Toronto
\n",
+ "
8932
\n",
"
grid.21107.35
\n",
- "
2211
\n",
- "
2.0
\n",
+ "
9182
\n",
"
Johns Hopkins University
\n",
- "
10120
\n",
- "
grid.17063.33
\n",
- "
10281
\n",
- "
Toronto
\n",
- "
392
\n",
- "
Canada
\n",
+ "
Baltimore
\n",
+ "
356
\n",
"
...
\n",
- "
University of Toronto
\n",
- "
Ontario
\n",
+ "
-76.620280
\n",
+ "
Maryland
\n",
"
[Education]
\n",
- "
NaN
\n",
- "
11 Medical and Health Sciences
\n",
+ "
JHU
\n",
+ "
32 Biomedical and Clinical Sciences
\n",
+ "
4.0
\n",
+ "
3.88
\n",
+ "
195.5
\n",
"
2.0
\n",
- "
3.81
\n",
- "
236.5
\n",
- "
3.0
\n",
- "
1.0
\n",
+ "
-1.0
\n",
"
\n",
"
\n",
"
...
\n",
@@ -4776,213 +4720,213 @@
"
...
\n",
"
\n",
"
\n",
- "
3721588
\n",
- "
grid.256592.f
\n",
- "
2219
\n",
- "
2.5
\n",
- "
Grinnell College
\n",
- "
2
\n",
- "
grid.7359.8
\n",
+ "
4134095
\n",
+ "
grid.66859.34
\n",
+ "
80007
\n",
+ "
34.5
\n",
+ "
Broad Institute
\n",
+ "
7
\n",
+ "
grid.467212.4
\n",
+ "
7
\n",
+ "
Adobe Inc
\n",
+ "
San Jose
\n",
"
3
\n",
- "
Bamberg
\n",
- "
1
\n",
- "
Germany
\n",
"
...
\n",
- "
University of Bamberg
\n",
"
NaN
\n",
- "
[Education]
\n",
+ "
California
\n",
+ "
[Company]
\n",
"
NaN
\n",
- "
19 Studies in Creative Arts and Writing
\n",
- "
130.0
\n",
- "
33.33
\n",
- "
8.0
\n",
- "
8.0
\n",
- "
5.5
\n",
+ "
36 Creative Arts and Writing
\n",
+ "
59.0
\n",
+ "
42.86
\n",
+ "
1.0
\n",
+ "
1.0
\n",
+ "
-33.5
\n",
"
\n",
"
\n",
- "
3721589
\n",
- "
grid.256592.f
\n",
- "
2219
\n",
- "
2.5
\n",
- "
Grinnell College
\n",
- "
2
\n",
- "
grid.11560.33
\n",
- "
2
\n",
- "
Bernal
\n",
+ "
4134096
\n",
+ "
grid.66859.34
\n",
+ "
80007
\n",
+ "
34.5
\n",
+ "
Broad Institute
\n",
+ "
7
\n",
+ "
grid.4800.c
\n",
+ "
7
\n",
+ "
Polytechnic University of Turin
\n",
+ "
Turin
\n",
"
1
\n",
- "
Argentina
\n",
"
...
\n",
- "
National University of Quilmes
\n",
- "
NaN
\n",
+ "
7.661075
\n",
+ "
Piemonte
\n",
"
[Education]
\n",
- "
UNQ
\n",
- "
19 Studies in Creative Arts and Writing
\n",
- "
130.0
\n",
- "
50.00
\n",
- "
2.5
\n",
- "
2.5
\n",
+ "
NaN
\n",
+ "
36 Creative Arts and Writing
\n",
+ "
350.5
\n",
+ "
14.29
\n",
+ "
34.5
\n",
+ "
34.5
\n",
"
0.0
\n",
"
\n",
"
\n",
- "
3721590
\n",
- "
grid.256592.f
\n",
- "
2219
\n",
- "
2.5
\n",
- "
Grinnell College
\n",
- "
2
\n",
- "
grid.15866.3c
\n",
- "
2
\n",
- "
Prague
\n",
+ "
4134097
\n",
+ "
grid.66859.34
\n",
+ "
80007
\n",
+ "
34.5
\n",
+ "
Broad Institute
\n",
+ "
7
\n",
+ "
grid.54549.39
\n",
+ "
7
\n",
+ "
University of Electronic Science and Technolog...
\n",
+ "
Chengdu
\n",
"
1
\n",
- "
Czechia
\n",
"
...
\n",
- "
Czech University of Life Sciences Prague
\n",
+ "
104.100270
\n",
"
NaN
\n",
"
[Education]
\n",
- "
CULS
\n",
- "
19 Studies in Creative Arts and Writing
\n",
- "
130.0
\n",
- "
50.00
\n",
- "
2.5
\n",
- "
2.5
\n",
+ "
UESTC
\n",
+ "
36 Creative Arts and Writing
\n",
+ "
350.5
\n",
+ "
14.29
\n",
+ "
34.5
\n",
+ "
34.5
\n",
"
0.0
\n",
"
\n",
"
\n",
- "
3721591
\n",
- "
grid.256592.f
\n",
- "
2219
\n",
- "
2.5
\n",
- "
Grinnell College
\n",
- "
2
\n",
- "
grid.241104.2
\n",
- "
2
\n",
- "
Cleveland
\n",
+ "
4134098
\n",
+ "
grid.66859.34
\n",
+ "
80007
\n",
+ "
34.5
\n",
+ "
Broad Institute
\n",
+ "
7
\n",
+ "
grid.6603.3
\n",
+ "
7
\n",
+ "
University of Cyprus
\n",
+ "
Nicosia
\n",
"
1
\n",
- "
United States
\n",
"
...
\n",
- "
University Hospitals of Cleveland
\n",
- "
Ohio
\n",
- "
[Healthcare]
\n",
+ "
33.376976
\n",
"
NaN
\n",
- "
19 Studies in Creative Arts and Writing
\n",
- "
130.0
\n",
- "
50.00
\n",
- "
2.5
\n",
- "
2.5
\n",
+ "
[Education]
\n",
+ "
UCY
\n",
+ "
36 Creative Arts and Writing
\n",
+ "
350.5
\n",
+ "
14.29
\n",
+ "
34.5
\n",
+ "
34.5
\n",
"
0.0
\n",
"
\n",
"
\n",
- "
3721592
\n",
- "
grid.256592.f
\n",
- "
2219
\n",
- "
2.5
\n",
- "
Grinnell College
\n",
- "
2
\n",
- "
grid.256592.f
\n",
- "
2
\n",
- "
Grinnell
\n",
+ "
4134099
\n",
+ "
grid.66859.34
\n",
+ "
80007
\n",
+ "
34.5
\n",
+ "
Broad Institute
\n",
+ "
7
\n",
+ "
grid.66859.34
\n",
+ "
7
\n",
+ "
Broad Institute
\n",
+ "
Cambridge
\n",
"
1
\n",
- "
United States
\n",
"
...
\n",
- "
Grinnell College
\n",
- "
Iowa
\n",
- "
[Education]
\n",
+ "
-71.087030
\n",
+ "
Massachusetts
\n",
+ "
[Nonprofit]
\n",
"
NaN
\n",
- "
19 Studies in Creative Arts and Writing
\n",
- "
130.0
\n",
- "
50.00
\n",
- "
2.5
\n",
- "
2.5
\n",
+ "
36 Creative Arts and Writing
\n",
+ "
350.5
\n",
+ "
14.29
\n",
+ "
34.5
\n",
+ "
34.5
\n",
"
0.0
\n",
"
\n",
" \n",
"\n",
- "
3721593 rows × 23 columns
\n",
+ "
4134100 rows × 24 columns
\n",
""
],
"text/plain": [
" reference id for_id reference filtered percent rank \\\n",
- "0 grid.38142.3c 2211 1.0 \n",
- "1 grid.17063.33 2211 2.0 \n",
- "2 grid.17063.33 2211 2.0 \n",
- "3 grid.21107.35 2211 2.0 \n",
- "4 grid.21107.35 2211 2.0 \n",
+ "0 grid.38142.3c 80003 1.0 \n",
+ "1 grid.21107.35 80003 2.0 \n",
+ "2 grid.21107.35 80003 2.0 \n",
+ "3 grid.17063.33 80003 3.0 \n",
+ "4 grid.17063.33 80003 3.0 \n",
"... ... ... ... \n",
- "3721588 grid.256592.f 2219 2.5 \n",
- "3721589 grid.256592.f 2219 2.5 \n",
- "3721590 grid.256592.f 2219 2.5 \n",
- "3721591 grid.256592.f 2219 2.5 \n",
- "3721592 grid.256592.f 2219 2.5 \n",
+ "4134095 grid.66859.34 80007 34.5 \n",
+ "4134096 grid.66859.34 80007 34.5 \n",
+ "4134097 grid.66859.34 80007 34.5 \n",
+ "4134098 grid.66859.34 80007 34.5 \n",
+ "4134099 grid.66859.34 80007 34.5 \n",
"\n",
" reference name reference count all id \\\n",
- "0 Harvard University 16932 grid.38142.3c \n",
- "1 University of Toronto 10281 grid.38142.3c \n",
- "2 University of Toronto 10281 grid.17063.33 \n",
- "3 Johns Hopkins University 10120 grid.38142.3c \n",
- "4 Johns Hopkins University 10120 grid.17063.33 \n",
+ "0 Harvard University 15967 grid.38142.3c \n",
+ "1 Johns Hopkins University 9182 grid.38142.3c \n",
+ "2 Johns Hopkins University 9182 grid.21107.35 \n",
+ "3 University of Toronto 8932 grid.38142.3c \n",
+ "4 University of Toronto 8932 grid.21107.35 \n",
"... ... ... ... \n",
- "3721588 Grinnell College 2 grid.7359.8 \n",
- "3721589 Grinnell College 2 grid.11560.33 \n",
- "3721590 Grinnell College 2 grid.15866.3c \n",
- "3721591 Grinnell College 2 grid.241104.2 \n",
- "3721592 Grinnell College 2 grid.256592.f \n",
+ "4134095 Broad Institute 7 grid.467212.4 \n",
+ "4134096 Broad Institute 7 grid.4800.c \n",
+ "4134097 Broad Institute 7 grid.54549.39 \n",
+ "4134098 Broad Institute 7 grid.6603.3 \n",
+ "4134099 Broad Institute 7 grid.66859.34 \n",
"\n",
- " count all city_name count country_name ... \\\n",
- "0 16932 Cambridge 845 United States ... \n",
- "1 16932 Cambridge 845 United States ... \n",
- "2 10281 Toronto 392 Canada ... \n",
- "3 16932 Cambridge 845 United States ... \n",
- "4 10281 Toronto 392 Canada ... \n",
- "... ... ... ... ... ... \n",
- "3721588 3 Bamberg 1 Germany ... \n",
- "3721589 2 Bernal 1 Argentina ... \n",
- "3721590 2 Prague 1 Czechia ... \n",
- "3721591 2 Cleveland 1 United States ... \n",
- "3721592 2 Grinnell 1 United States ... \n",
+ " count all name \\\n",
+ "0 15967 Harvard University \n",
+ "1 15967 Harvard University \n",
+ "2 9182 Johns Hopkins University \n",
+ "3 15967 Harvard University \n",
+ "4 9182 Johns Hopkins University \n",
+ "... ... ... \n",
+ "4134095 7 Adobe Inc \n",
+ "4134096 7 Polytechnic University of Turin \n",
+ "4134097 7 University of Electronic Science and Technolog... \n",
+ "4134098 7 University of Cyprus \n",
+ "4134099 7 Broad Institute \n",
"\n",
- " name state_name \\\n",
- "0 Harvard University Massachusetts \n",
- "1 Harvard University Massachusetts \n",
- "2 University of Toronto Ontario \n",
- "3 Harvard University Massachusetts \n",
- "4 University of Toronto Ontario \n",
- "... ... ... \n",
- "3721588 University of Bamberg NaN \n",
- "3721589 National University of Quilmes NaN \n",
- "3721590 Czech University of Life Sciences Prague NaN \n",
- "3721591 University Hospitals of Cleveland Ohio \n",
- "3721592 Grinnell College Iowa \n",
+ " city_name count ... longitude state_name types \\\n",
+ "0 Cambridge 767 ... -71.116650 Massachusetts [Education] \n",
+ "1 Cambridge 767 ... -71.116650 Massachusetts [Education] \n",
+ "2 Baltimore 356 ... -76.620280 Maryland [Education] \n",
+ "3 Cambridge 767 ... -71.116650 Massachusetts [Education] \n",
+ "4 Baltimore 356 ... -76.620280 Maryland [Education] \n",
+ "... ... ... ... ... ... ... \n",
+ "4134095 San Jose 3 ... NaN California [Company] \n",
+ "4134096 Turin 1 ... 7.661075 Piemonte [Education] \n",
+ "4134097 Chengdu 1 ... 104.100270 NaN [Education] \n",
+ "4134098 Nicosia 1 ... 33.376976 NaN [Education] \n",
+ "4134099 Cambridge 1 ... -71.087030 Massachusetts [Nonprofit] \n",
"\n",
- " types acronym for_name rank \\\n",
- "0 [Education] NaN 11 Medical and Health Sciences 1.0 \n",
- "1 [Education] NaN 11 Medical and Health Sciences 1.0 \n",
- "2 [Education] NaN 11 Medical and Health Sciences 2.0 \n",
- "3 [Education] NaN 11 Medical and Health Sciences 1.0 \n",
- "4 [Education] NaN 11 Medical and Health Sciences 2.0 \n",
- "... ... ... ... ... \n",
- "3721588 [Education] NaN 19 Studies in Creative Arts and Writing 130.0 \n",
- "3721589 [Education] UNQ 19 Studies in Creative Arts and Writing 130.0 \n",
- "3721590 [Education] CULS 19 Studies in Creative Arts and Writing 130.0 \n",
- "3721591 [Healthcare] NaN 19 Studies in Creative Arts and Writing 130.0 \n",
- "3721592 [Education] NaN 19 Studies in Creative Arts and Writing 130.0 \n",
+ " acronym for_name rank percentage top 1 \\\n",
+ "0 NaN 32 Biomedical and Clinical Sciences 1.0 4.80 \n",
+ "1 NaN 32 Biomedical and Clinical Sciences 1.0 4.80 \n",
+ "2 JHU 32 Biomedical and Clinical Sciences 4.0 3.88 \n",
+ "3 NaN 32 Biomedical and Clinical Sciences 1.0 4.80 \n",
+ "4 JHU 32 Biomedical and Clinical Sciences 4.0 3.88 \n",
+ "... ... ... ... ... \n",
+ "4134095 NaN 36 Creative Arts and Writing 59.0 42.86 \n",
+ "4134096 NaN 36 Creative Arts and Writing 350.5 14.29 \n",
+ "4134097 UESTC 36 Creative Arts and Writing 350.5 14.29 \n",
+ "4134098 UCY 36 Creative Arts and Writing 350.5 14.29 \n",
+ "4134099 NaN 36 Creative Arts and Writing 350.5 14.29 \n",
"\n",
- " percentage top 1 percent rank filtered percent rank rank_difference \n",
- "0 4.99 61.5 1.0 0.0 \n",
- "1 4.99 61.5 1.0 -1.0 \n",
- "2 3.81 236.5 2.0 0.0 \n",
- "3 4.99 61.5 1.0 -1.0 \n",
- "4 3.81 236.5 3.0 1.0 \n",
- "... ... ... ... ... \n",
- "3721588 33.33 8.0 8.0 5.5 \n",
- "3721589 50.00 2.5 2.5 0.0 \n",
- "3721590 50.00 2.5 2.5 0.0 \n",
- "3721591 50.00 2.5 2.5 0.0 \n",
- "3721592 50.00 2.5 2.5 0.0 \n",
+ " percent rank filtered percent rank rank_difference \n",
+ "0 63.5 1.0 0.0 \n",
+ "1 63.5 1.0 -1.0 \n",
+ "2 195.5 2.0 0.0 \n",
+ "3 63.5 1.0 -2.0 \n",
+ "4 195.5 2.0 -1.0 \n",
+ "... ... ... ... \n",
+ "4134095 1.0 1.0 -33.5 \n",
+ "4134096 34.5 34.5 0.0 \n",
+ "4134097 34.5 34.5 0.0 \n",
+ "4134098 34.5 34.5 0.0 \n",
+ "4134099 34.5 34.5 0.0 \n",
"\n",
- "[3721593 rows x 23 columns]"
+ "[4134100 rows x 24 columns]"
]
},
- "execution_count": 46,
+ "execution_count": 45,
"metadata": {},
"output_type": "execute_result"
}
@@ -5013,7 +4957,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.9.9"
+ "version": "3.12.8"
}
},
"nbformat": 4,
diff --git a/cookbooks/8-organizations/file_name.csv b/cookbooks/8-organizations/file_name.csv
index 2822ec3e..c69d9955 100644
--- a/cookbooks/8-organizations/file_name.csv
+++ b/cookbooks/8-organizations/file_name.csv
@@ -9,11 +9,4 @@
7,Boston,United States,Harvard Medical School,Massachusetts,grid.38142.3c,Harvard University,Cambridge,Massachusetts,United States,False,6252001,United States,US,6254926,Massachusetts,US-MA,4931972,Cambridge
8,Kent,United States,Kent State University,Ohio,grid.258518.3,Kent State University,Kent,Ohio,United States,False,6252001,United States,US,5165418,Ohio,US-OH,5159537,Kent
9,New York,United States,New York University,New York,grid.137628.9,New York University,New York,New York,United States,False,6252001,United States,US,5128638,New York,US-NY,5128581,New York City
-10,null,United States,Mayo Clinic,null,grid.417468.8,Mayo Clinic,Scottsdale,Arizona,United States,True,6252001,United States,US,5551752,Arizona,US-AZ,5313457,Scottsdale
-11,null,United States,Mayo Clinic,null,grid.417468.8,Mayo Clinic,Scottsdale,Arizona,United States,True,6252001,United States,US,5551752,Arizona,US-AZ,4160021,Jacksonville
-12,null,United States,Mayo Clinic,null,grid.417468.8,Mayo Clinic,Scottsdale,Arizona,United States,True,6252001,United States,US,4155751,Florida,US-FL,5313457,Scottsdale
-13,null,United States,Mayo Clinic,null,grid.417468.8,Mayo Clinic,Scottsdale,Arizona,United States,True,6252001,United States,US,4155751,Florida,US-FL,4160021,Jacksonville
-14,null,United States,Mayo Clinic,null,grid.417467.7,Mayo Clinic,Jacksonville,Florida,United States,True,6252001,United States,US,5551752,Arizona,US-AZ,5313457,Scottsdale
-15,null,United States,Mayo Clinic,null,grid.417467.7,Mayo Clinic,Jacksonville,Florida,United States,True,6252001,United States,US,5551752,Arizona,US-AZ,4160021,Jacksonville
-16,null,United States,Mayo Clinic,null,grid.417467.7,Mayo Clinic,Jacksonville,Florida,United States,True,6252001,United States,US,4155751,Florida,US-FL,5313457,Scottsdale
-17,null,United States,Mayo Clinic,null,grid.417467.7,Mayo Clinic,Jacksonville,Florida,United States,True,6252001,United States,US,4155751,Florida,US-FL,4160021,Jacksonville
+10,null,United States,Mayo Clinic,null,grid.417468.8,Mayo Clinic,Scottsdale,Arizona,United States,False,6252001,United States,US,5551752,Arizona,US-AZ,5313457,Scottsdale
diff --git a/cookbooks/8-organizations/network_grid.412125.1.html b/cookbooks/8-organizations/network_grid.412125.1.html
index f3a07f95..ddeece77 100644
--- a/cookbooks/8-organizations/network_grid.412125.1.html
+++ b/cookbooks/8-organizations/network_grid.412125.1.html
@@ -271,16 +271,16 @@
-
-
-
-
+
+
+
+
@@ -289,18 +289,20 @@
-
-
-
+
-
+
+
+
+
+
@@ -323,19 +325,13 @@
-
-
-
+
-
-
-
-
-
+
@@ -357,11 +353,11 @@
-
+
-
+
@@ -369,43 +365,45 @@
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
+
-
-
-
-
-
-
-
-
-
+
-
-
-
+
+
+
@@ -459,8 +457,8 @@
// parsing and collecting nodes and edges from the python
- nodes = new vis.DataSet([{"borderWidthSelected": 5, "color": "rgb(0, 147, 146)", "id": "grid.412125.1", "label": "King Abdulaziz University", "shape": "dot", "title": "\u003ch4\u003eKing Abdulaziz University\u003cbr\u003eJeddah, Saudi Arabia\u003cbr\u003e - grid.412125.1\u003c/h4\u003eLinks:\u003cli\u003eNortheastern University\u003c/li\u003e\u003cli\u003eJamia Millia Islamia\u003c/li\u003e\u003cli\u003eNorthwestern University\u003c/li\u003e\u003cli\u003eAligarh Muslim University\u003c/li\u003e\u003cli\u003eHarvard\u2013MIT Division of Health Sciences and Technology\u003c/li\u003e\u003cli\u003eSuez Canal University\u003c/li\u003e\u003cli\u003eKing Saud University\u003c/li\u003e\u003cli\u003eQuaid-i-Azam University\u003c/li\u003e\u003cli\u003eHarvard University\u003c/li\u003e\u003cli\u003eMassachusetts Institute of Technology", "value": 3}, {"borderWidthSelected": 5, "color": "rgb(156, 203, 134)", "id": "grid.261112.7", "label": "Northeastern University", "shape": "dot", "title": "\u003ch4\u003eNortheastern University\u003cbr\u003eBoston, United States\u003cbr\u003e - grid.261112.7\u003c/h4\u003eLinks:\u003cli\u003eUniversity of Porto\u003c/li\u003e\u003cli\u003eKing Abdulaziz University\u003c/li\u003e\u003cli\u003eMassachusetts General Hospital\u003c/li\u003e\u003cli\u003eBrown University\u003c/li\u003e\u003cli\u003eUniversity of Alberta\u003c/li\u003e\u003cli\u003eHarvard\u2013MIT Division of Health Sciences and Technology\u003c/li\u003e\u003cli\u003eUniversity of Massachusetts Lowell\u003c/li\u003e\u003cli\u003eBrigham and Women\u0027s Hospital\u003c/li\u003e\u003cli\u003eHarvard University\u003c/li\u003e\u003cli\u003eMassachusetts Institute of Technology", "value": 2}, {"borderWidthSelected": 5, "color": "rgb(156, 203, 134)", "id": "grid.38142.3c", "label": "Harvard University", "shape": "dot", "title": "\u003ch4\u003eHarvard University\u003cbr\u003eCambridge, United States\u003cbr\u003e - grid.38142.3c\u003c/h4\u003eLinks:\u003cli\u003eBeth Israel Deaconess Medical Center\u003c/li\u003e\u003cli\u003eKing Abdulaziz University\u003c/li\u003e\u003cli\u003eMassachusetts General Hospital\u003c/li\u003e\u003cli\u003eBoston Children\u0027s Hospital\u003c/li\u003e\u003cli\u003eNortheastern University\u003c/li\u003e\u003cli\u003eStanford University\u003c/li\u003e\u003cli\u003eKoch Institute for Integrative Cancer Research\u003c/li\u003e\u003cli\u003eHarvard\u2013MIT Division of Health Sciences and Technology\u003c/li\u003e\u003cli\u003eBrigham and Women\u0027s Hospital\u003c/li\u003e\u003cli\u003eMassachusetts Institute of Technology\u003c/li\u003e\u003cli\u003eDana-Farber Cancer Institute", "value": 2}, {"borderWidthSelected": 5, "color": "rgb(156, 203, 134)", "id": "grid.116068.8", "label": "Massachusetts Institute of Technology", "shape": "dot", "title": "\u003ch4\u003eMassachusetts Institute of Technology\u003cbr\u003eCambridge, United States\u003cbr\u003e - grid.116068.8\u003c/h4\u003eLinks:\u003cli\u003eInstitute of Bioengineering and Nanotechnology\u003c/li\u003e\u003cli\u003eInstitute for Soldier Nanotechnologies\u003c/li\u003e\u003cli\u003eKing Abdulaziz University\u003c/li\u003e\u003cli\u003eMassachusetts General Hospital\u003c/li\u003e\u003cli\u003eNanyang Technological University\u003c/li\u003e\u003cli\u003eNortheastern University\u003c/li\u003e\u003cli\u003eNational University of Singapore\u003c/li\u003e\u003cli\u003eKoch Institute for Integrative Cancer Research\u003c/li\u003e\u003cli\u003eSingapore-MIT Alliance for Research and Technology\u003c/li\u003e\u003cli\u003eNorthwestern University\u003c/li\u003e\u003cli\u003eBrigham and Women\u0027s Hospital\u003c/li\u003e\u003cli\u003eHarvard University\u003c/li\u003e\u003cli\u003eHarvard\u2013MIT Division of Health Sciences and Technology", "value": 2}, {"borderWidthSelected": 5, "color": "rgb(156, 203, 134)", "id": "grid.16753.36", "label": "Northwestern University", "shape": "dot", "title": "\u003ch4\u003eNorthwestern University\u003cbr\u003eEvanston, United States\u003cbr\u003e - grid.16753.36\u003c/h4\u003eLinks:\u003cli\u003eKorea Advanced Institute of Science and Technology\u003c/li\u003e\u003cli\u003ePurdue University West Lafayette\u003c/li\u003e\u003cli\u003eKing Abdulaziz University\u003c/li\u003e\u003cli\u003eUniversity of Illinois Urbana-Champaign\u003c/li\u003e\u003cli\u003eUniversity of California, Los Angeles\u003c/li\u003e\u003cli\u003eTsinghua University\u003c/li\u003e\u003cli\u003eArgonne National Laboratory\u003c/li\u003e\u003cli\u003eRobert H. Lurie Comprehensive Cancer Center\u003c/li\u003e\u003cli\u003eUniversity of Chicago\u003c/li\u003e\u003cli\u003eMassachusetts Institute of Technology", "value": 2}, {"borderWidthSelected": 5, "color": "rgb(156, 203, 134)", "id": "grid.413735.7", "label": "Harvard\u2013MIT Division of Health Sciences and Technology", "shape": "dot", "title": "\u003ch4\u003eHarvard\u2013MIT Division of Health Sciences and Technology\u003cbr\u003eCambridge, United States\u003cbr\u003e - grid.413735.7\u003c/h4\u003eLinks:\u003cli\u003eKing Abdulaziz University\u003c/li\u003e\u003cli\u003eMassachusetts General Hospital\u003c/li\u003e\u003cli\u003eNortheastern University\u003c/li\u003e\u003cli\u003eKyung Hee University\u003c/li\u003e\u003cli\u003eKoch Institute for Integrative Cancer Research\u003c/li\u003e\u003cli\u003eKonkuk University\u003c/li\u003e\u003cli\u003eBrigham and Women\u0027s Hospital\u003c/li\u003e\u003cli\u003eHarvard University\u003c/li\u003e\u003cli\u003eMassachusetts Institute of Technology\u003c/li\u003e\u003cli\u003eTohoku University", "value": 2}, {"borderWidthSelected": 5, "color": "rgb(156, 203, 134)", "id": "grid.411340.3", "label": "Aligarh Muslim University", "shape": "dot", "title": "\u003ch4\u003eAligarh Muslim University\u003cbr\u003eAligarh, India\u003cbr\u003e - grid.411340.3\u003c/h4\u003eLinks:\u003cli\u003eChangwon National University\u003c/li\u003e\u003cli\u003eJawaharlal Nehru Medical College Hospital\u003c/li\u003e\u003cli\u003eKing Abdulaziz University\u003c/li\u003e\u003cli\u003eInstitute of Microbial Technology\u003c/li\u003e\u003cli\u003eUniversity of Technology Malaysia\u003c/li\u003e\u003cli\u003eJamia Millia Islamia\u003c/li\u003e\u003cli\u003eNational Physical Laboratory of India\u003c/li\u003e\u003cli\u003eKing Fahd University of Petroleum and Minerals\u003c/li\u003e\u003cli\u003eJawaharlal Nehru University\u003c/li\u003e\u003cli\u003eKing Saud University\u003c/li\u003e\u003cli\u003eIntegral University", "value": 2}, {"borderWidthSelected": 5, "color": "rgb(156, 203, 134)", "id": "grid.412621.2", "label": "Quaid-i-Azam University", "shape": "dot", "title": "\u003ch4\u003eQuaid-i-Azam University\u003cbr\u003eIslamabad, Pakistan\u003cbr\u003e - grid.412621.2\u003c/h4\u003eLinks:\u003cli\u003eKing Abdulaziz University\u003c/li\u003e\u003cli\u003eUniversity of Malaya\u003c/li\u003e\u003cli\u003eUniversity of Sargodha\u003c/li\u003e\u003cli\u003eAbdus Salam Centre for Physics\u003c/li\u003e\u003cli\u003eNational University of Sciences and Technology\u003c/li\u003e\u003cli\u003eCOMSATS University Islamabad\u003c/li\u003e\u003cli\u003eKing Fahd University of Petroleum and Minerals\u003c/li\u003e\u003cli\u003eHazara University\u003c/li\u003e\u003cli\u003ePakistan Institute of Nuclear Science and Technology\u003c/li\u003e\u003cli\u003eInternational Islamic University, Islamabad", "value": 2}, {"borderWidthSelected": 5, "color": "rgb(156, 203, 134)", "id": "grid.33003.33", "label": "Suez Canal University", "shape": "dot", "title": "\u003ch4\u003eSuez Canal University\u003cbr\u003eIsmailia, Egypt\u003cbr\u003e - grid.33003.33\u003c/h4\u003eLinks:\u003cli\u003eUniversity of Otago\u003c/li\u003e\u003cli\u003eNational Research Centre\u003c/li\u003e\u003cli\u003eKing Abdulaziz University\u003c/li\u003e\u003cli\u003eF\u0131rat University\u003c/li\u003e\u003cli\u003eAin Shams University\u003c/li\u003e\u003cli\u003eUniversity of Chemical Technology and Metallurgy\u003c/li\u003e\u003cli\u003eUniversity of Tabuk\u003c/li\u003e\u003cli\u003eUniversity of Southampton\u003c/li\u003e\u003cli\u003eTaif University\u003c/li\u003e\u003cli\u003eKing Saud University", "value": 2}, {"borderWidthSelected": 5, "color": "rgb(156, 203, 134)", "id": "grid.411818.5", "label": "Jamia Millia Islamia", "shape": "dot", "title": "\u003ch4\u003eJamia Millia Islamia\u003cbr\u003eNew Delhi, India\u003cbr\u003e - grid.411818.5\u003c/h4\u003eLinks:\u003cli\u003eKing Abdulaziz University\u003c/li\u003e\u003cli\u003eUniversity of Delhi\u003c/li\u003e\u003cli\u003eUniversity of Technology Malaysia\u003c/li\u003e\u003cli\u003eAmity University\u003c/li\u003e\u003cli\u003eNational Physical Laboratory of India\u003c/li\u003e\u003cli\u003eIndian Institute of Technology Delhi\u003c/li\u003e\u003cli\u003eAligarh Muslim University\u003c/li\u003e\u003cli\u003eRowan University\u003c/li\u003e\u003cli\u003eM.J.P. Rohilkhand University\u003c/li\u003e\u003cli\u003eKing Saud University", "value": 2}, {"borderWidthSelected": 5, "color": "rgb(156, 203, 134)", "id": "grid.56302.32", "label": "King Saud University", "shape": "dot", "title": "\u003ch4\u003eKing Saud University\u003cbr\u003eRiyadh, Saudi Arabia\u003cbr\u003e - grid.56302.32\u003c/h4\u003eLinks:\u003cli\u003eNational Research Centre\u003c/li\u003e\u003cli\u003eKing Abdulaziz University\u003c/li\u003e\u003cli\u003eUniversity of Gab\u00e8s\u003c/li\u003e\u003cli\u003eUniversity of Queensland\u003c/li\u003e\u003cli\u003eTanta University\u003c/li\u003e\u003cli\u003eNational University of Singapore\u003c/li\u003e\u003cli\u003eJamia Millia Islamia\u003c/li\u003e\u003cli\u003eChang Gung University\u003c/li\u003e\u003cli\u003eAligarh Muslim University\u003c/li\u003e\u003cli\u003eSuez Canal University\u003c/li\u003e\u003cli\u003eJeonbuk National University\u003c/li\u003e\u003cli\u003eKing Abdulaziz City for Science and Technology", "value": 2}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.17089.37", "label": "University of Alberta", "shape": "dot", "title": "\u003ch4\u003eUniversity of Alberta\u003cbr\u003eEdmonton, Canada\u003cbr\u003e - grid.17089.37\u003c/h4\u003eLinks:\u003cli\u003eNortheastern University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.32224.35", "label": "Massachusetts General Hospital", "shape": "dot", "title": "\u003ch4\u003eMassachusetts General Hospital\u003cbr\u003eBoston, United States\u003cbr\u003e - grid.32224.35\u003c/h4\u003eLinks:\u003cli\u003eNortheastern University\u003c/li\u003e\u003cli\u003eHarvard University\u003c/li\u003e\u003cli\u003eMassachusetts Institute of Technology\u003c/li\u003e\u003cli\u003eHarvard\u2013MIT Division of Health Sciences and Technology", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.40263.33", "label": "Brown University", "shape": "dot", "title": "\u003ch4\u003eBrown University\u003cbr\u003eProvidence, United States\u003cbr\u003e - grid.40263.33\u003c/h4\u003eLinks:\u003cli\u003eNortheastern University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.62560.37", "label": "Brigham and Women\u0027s Hospital", "shape": "dot", "title": "\u003ch4\u003eBrigham and Women\u0027s Hospital\u003cbr\u003eBoston, United States\u003cbr\u003e - grid.62560.37\u003c/h4\u003eLinks:\u003cli\u003eNortheastern University\u003c/li\u003e\u003cli\u003eHarvard University\u003c/li\u003e\u003cli\u003eMassachusetts Institute of Technology\u003c/li\u003e\u003cli\u003eHarvard\u2013MIT Division of Health Sciences and Technology", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.225262.3", "label": "University of Massachusetts Lowell", "shape": "dot", "title": "\u003ch4\u003eUniversity of Massachusetts Lowell\u003cbr\u003eLowell, United States\u003cbr\u003e - grid.225262.3\u003c/h4\u003eLinks:\u003cli\u003eNortheastern University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.5808.5", "label": "University of Porto", "shape": "dot", "title": "\u003ch4\u003eUniversity of Porto\u003cbr\u003ePorto, Portugal\u003cbr\u003e - grid.5808.5\u003c/h4\u003eLinks:\u003cli\u003eNortheastern University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.65499.37", "label": "Dana-Farber Cancer Institute", "shape": "dot", "title": "\u003ch4\u003eDana-Farber Cancer Institute\u003cbr\u003eBoston, United States\u003cbr\u003e - grid.65499.37\u003c/h4\u003eLinks:\u003cli\u003eHarvard University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.516087.d", "label": "Koch Institute for Integrative Cancer Research", "shape": "dot", "title": "\u003ch4\u003eKoch Institute for Integrative Cancer Research\u003cbr\u003eCambridge, United States\u003cbr\u003e - grid.516087.d\u003c/h4\u003eLinks:\u003cli\u003eHarvard University\u003c/li\u003e\u003cli\u003eMassachusetts Institute of Technology\u003c/li\u003e\u003cli\u003eHarvard\u2013MIT Division of Health Sciences and Technology", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.239395.7", "label": "Beth Israel Deaconess Medical Center", "shape": "dot", "title": "\u003ch4\u003eBeth Israel Deaconess Medical Center\u003cbr\u003eBoston, United States\u003cbr\u003e - grid.239395.7\u003c/h4\u003eLinks:\u003cli\u003eHarvard University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.2515.3", "label": "Boston Children\u0027s Hospital", "shape": "dot", "title": "\u003ch4\u003eBoston Children\u0027s Hospital\u003cbr\u003eBoston, United States\u003cbr\u003e - grid.2515.3\u003c/h4\u003eLinks:\u003cli\u003eHarvard University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.168010.e", "label": "Stanford University", "shape": "dot", "title": "\u003ch4\u003eStanford University\u003cbr\u003eStanford, United States\u003cbr\u003e - grid.168010.e\u003c/h4\u003eLinks:\u003cli\u003eHarvard University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.4280.e", "label": "National University of Singapore", "shape": "dot", "title": "\u003ch4\u003eNational University of Singapore\u003cbr\u003eSingapore, Singapore\u003cbr\u003e - grid.4280.e\u003c/h4\u003eLinks:\u003cli\u003eKing Saud University\u003c/li\u003e\u003cli\u003eMassachusetts Institute of Technology", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.429485.6", "label": "Singapore-MIT Alliance for Research and Technology", "shape": "dot", "title": "\u003ch4\u003eSingapore-MIT Alliance for Research and Technology\u003cbr\u003eSingapore, Singapore\u003cbr\u003e - grid.429485.6\u003c/h4\u003eLinks:\u003cli\u003eMassachusetts Institute of Technology", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.512167.6", "label": "Institute for Soldier Nanotechnologies", "shape": "dot", "title": "\u003ch4\u003eInstitute for Soldier Nanotechnologies\u003cbr\u003eCambridge, United States\u003cbr\u003e - grid.512167.6\u003c/h4\u003eLinks:\u003cli\u003eMassachusetts Institute of Technology", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.418830.6", "label": "Institute of Bioengineering and Nanotechnology", "shape": "dot", "title": "\u003ch4\u003eInstitute of Bioengineering and Nanotechnology\u003cbr\u003eSingapore, Singapore\u003cbr\u003e - grid.418830.6\u003c/h4\u003eLinks:\u003cli\u003eMassachusetts Institute of Technology", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.59025.3b", "label": "Nanyang Technological University", "shape": "dot", "title": "\u003ch4\u003eNanyang Technological University\u003cbr\u003eSingapore, Singapore\u003cbr\u003e - grid.59025.3b\u003c/h4\u003eLinks:\u003cli\u003eMassachusetts Institute of Technology", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.187073.a", "label": "Argonne National Laboratory", "shape": "dot", "title": "\u003ch4\u003eArgonne National Laboratory\u003cbr\u003eLemont, United States\u003cbr\u003e - grid.187073.a\u003c/h4\u003eLinks:\u003cli\u003eNorthwestern University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.35403.31", "label": "University of Illinois Urbana-Champaign", "shape": "dot", "title": "\u003ch4\u003eUniversity of Illinois Urbana-Champaign\u003cbr\u003eUrbana, United States\u003cbr\u003e - grid.35403.31\u003c/h4\u003eLinks:\u003cli\u003eNorthwestern University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.516096.d", "label": "Robert H. Lurie Comprehensive Cancer Center", "shape": "dot", "title": "\u003ch4\u003eRobert H. Lurie Comprehensive Cancer Center\u003cbr\u003eChicago, United States\u003cbr\u003e - grid.516096.d\u003c/h4\u003eLinks:\u003cli\u003eNorthwestern University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.12527.33", "label": "Tsinghua University", "shape": "dot", "title": "\u003ch4\u003eTsinghua University\u003cbr\u003eBeijing, China\u003cbr\u003e - grid.12527.33\u003c/h4\u003eLinks:\u003cli\u003eNorthwestern University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.19006.3e", "label": "University of California, Los Angeles", "shape": "dot", "title": "\u003ch4\u003eUniversity of California, Los Angeles\u003cbr\u003eLos Angeles, United States\u003cbr\u003e - grid.19006.3e\u003c/h4\u003eLinks:\u003cli\u003eNorthwestern University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.169077.e", "label": "Purdue University West Lafayette", "shape": "dot", "title": "\u003ch4\u003ePurdue University West Lafayette\u003cbr\u003eWest Lafayette, United States\u003cbr\u003e - grid.169077.e\u003c/h4\u003eLinks:\u003cli\u003eNorthwestern University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.37172.30", "label": "Korea Advanced Institute of Science and Technology", "shape": "dot", "title": "\u003ch4\u003eKorea Advanced Institute of Science and Technology\u003cbr\u003eDaejeon, South Korea\u003cbr\u003e - grid.37172.30\u003c/h4\u003eLinks:\u003cli\u003eNorthwestern University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.170205.1", "label": "University of Chicago", "shape": "dot", "title": "\u003ch4\u003eUniversity of Chicago\u003cbr\u003eChicago, United States\u003cbr\u003e - grid.170205.1\u003c/h4\u003eLinks:\u003cli\u003eNorthwestern University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.69566.3a", "label": "Tohoku University", "shape": "dot", "title": "\u003ch4\u003eTohoku University\u003cbr\u003eSendai, Japan\u003cbr\u003e - grid.69566.3a\u003c/h4\u003eLinks:\u003cli\u003eHarvard\u2013MIT Division of Health Sciences and Technology", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.258676.8", "label": "Konkuk University", "shape": "dot", "title": "\u003ch4\u003eKonkuk University\u003cbr\u003eSeoul, South Korea\u003cbr\u003e - grid.258676.8\u003c/h4\u003eLinks:\u003cli\u003eHarvard\u2013MIT Division of Health Sciences and Technology", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.289247.2", "label": "Kyung Hee University", "shape": "dot", "title": "\u003ch4\u003eKyung Hee University\u003cbr\u003eSeoul, South Korea\u003cbr\u003e - grid.289247.2\u003c/h4\u003eLinks:\u003cli\u003eHarvard\u2013MIT Division of Health Sciences and Technology", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.466808.4", "label": "Jawaharlal Nehru Medical College Hospital", "shape": "dot", "title": "\u003ch4\u003eJawaharlal Nehru Medical College Hospital\u003cbr\u003eAligarh, India\u003cbr\u003e - grid.466808.4\u003c/h4\u003eLinks:\u003cli\u003eAligarh Muslim University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.412135.0", "label": "King Fahd University of Petroleum and Minerals", "shape": "dot", "title": "\u003ch4\u003eKing Fahd University of Petroleum and Minerals\u003cbr\u003eDhahran, Saudi Arabia\u003cbr\u003e - grid.412135.0\u003c/h4\u003eLinks:\u003cli\u003eQuaid-i-Azam University\u003c/li\u003e\u003cli\u003eAligarh Muslim University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.417641.1", "label": "Institute of Microbial Technology", "shape": "dot", "title": "\u003ch4\u003eInstitute of Microbial Technology\u003cbr\u003eChandigarh, India\u003cbr\u003e - grid.417641.1\u003c/h4\u003eLinks:\u003cli\u003eAligarh Muslim University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.419701.a", "label": "National Physical Laboratory of India", "shape": "dot", "title": "\u003ch4\u003eNational Physical Laboratory of India\u003cbr\u003eNew Delhi, India\u003cbr\u003e - grid.419701.a\u003c/h4\u003eLinks:\u003cli\u003eAligarh Muslim University\u003c/li\u003e\u003cli\u003eJamia Millia Islamia", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.411723.2", "label": "Integral University", "shape": "dot", "title": "\u003ch4\u003eIntegral University\u003cbr\u003eLucknow, India\u003cbr\u003e - grid.411723.2\u003c/h4\u003eLinks:\u003cli\u003eAligarh Muslim University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.410877.d", "label": "University of Technology Malaysia", "shape": "dot", "title": "\u003ch4\u003eUniversity of Technology Malaysia\u003cbr\u003eJohor Bahru, Malaysia\u003cbr\u003e - grid.410877.d\u003c/h4\u003eLinks:\u003cli\u003eAligarh Muslim University\u003c/li\u003e\u003cli\u003eJamia Millia Islamia", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.10706.30", "label": "Jawaharlal Nehru University", "shape": "dot", "title": "\u003ch4\u003eJawaharlal Nehru University\u003cbr\u003eNew Delhi, India\u003cbr\u003e - grid.10706.30\u003c/h4\u003eLinks:\u003cli\u003eAligarh Muslim University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.411214.3", "label": "Changwon National University", "shape": "dot", "title": "\u003ch4\u003eChangwon National University\u003cbr\u003eChangwon, South Korea\u003cbr\u003e - grid.411214.3\u003c/h4\u003eLinks:\u003cli\u003eAligarh Muslim University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.418920.6", "label": "COMSATS University Islamabad", "shape": "dot", "title": "\u003ch4\u003eCOMSATS University Islamabad\u003cbr\u003eIslamabad, Pakistan\u003cbr\u003e - grid.418920.6\u003c/h4\u003eLinks:\u003cli\u003eQuaid-i-Azam University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.440530.6", "label": "Hazara University", "shape": "dot", "title": "\u003ch4\u003eHazara University\u003cbr\u003eBaffa, Pakistan\u003cbr\u003e - grid.440530.6\u003c/h4\u003eLinks:\u003cli\u003eQuaid-i-Azam University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.411727.6", "label": "International Islamic University, Islamabad", "shape": "dot", "title": "\u003ch4\u003eInternational Islamic University, Islamabad\u003cbr\u003eIslamabad, Pakistan\u003cbr\u003e - grid.411727.6\u003c/h4\u003eLinks:\u003cli\u003eQuaid-i-Azam University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.412117.0", "label": "National University of Sciences and Technology", "shape": "dot", "title": "\u003ch4\u003eNational University of Sciences and Technology\u003cbr\u003eIslamabad, Pakistan\u003cbr\u003e - grid.412117.0\u003c/h4\u003eLinks:\u003cli\u003eQuaid-i-Azam University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.466924.b", "label": "Abdus Salam Centre for Physics", "shape": "dot", "title": "\u003ch4\u003eAbdus Salam Centre for Physics\u003cbr\u003eIslamabad, Pakistan\u003cbr\u003e - grid.466924.b\u003c/h4\u003eLinks:\u003cli\u003eQuaid-i-Azam University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.412782.a", "label": "University of Sargodha", "shape": "dot", "title": "\u003ch4\u003eUniversity of Sargodha\u003cbr\u003eSargodha, Pakistan\u003cbr\u003e - grid.412782.a\u003c/h4\u003eLinks:\u003cli\u003eQuaid-i-Azam University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.420113.5", "label": "Pakistan Institute of Nuclear Science and Technology", "shape": "dot", "title": "\u003ch4\u003ePakistan Institute of Nuclear Science and Technology\u003cbr\u003eIslamabad, Pakistan\u003cbr\u003e - grid.420113.5\u003c/h4\u003eLinks:\u003cli\u003eQuaid-i-Azam University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.10347.31", "label": "University of Malaya", "shape": "dot", "title": "\u003ch4\u003eUniversity of Malaya\u003cbr\u003eKuala Lumpur, Malaysia\u003cbr\u003e - grid.10347.31\u003c/h4\u003eLinks:\u003cli\u003eQuaid-i-Azam University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.411320.5", "label": "F\u0131rat University", "shape": "dot", "title": "\u003ch4\u003eF\u0131rat University\u003cbr\u003eEl\u00e2z\u0131\u011f, Turkey\u003cbr\u003e - grid.411320.5\u003c/h4\u003eLinks:\u003cli\u003eSuez Canal University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.5491.9", "label": "University of Southampton", "shape": "dot", "title": "\u003ch4\u003eUniversity of Southampton\u003cbr\u003eSouthampton, United Kingdom\u003cbr\u003e - grid.5491.9\u003c/h4\u003eLinks:\u003cli\u003eSuez Canal University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.29980.3a", "label": "University of Otago", "shape": "dot", "title": "\u003ch4\u003eUniversity of Otago\u003cbr\u003eDunedin, New Zealand\u003cbr\u003e - grid.29980.3a\u003c/h4\u003eLinks:\u003cli\u003eSuez Canal University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.440760.1", "label": "University of Tabuk", "shape": "dot", "title": "\u003ch4\u003eUniversity of Tabuk\u003cbr\u003eTabuk, Saudi Arabia\u003cbr\u003e - grid.440760.1\u003c/h4\u003eLinks:\u003cli\u003eSuez Canal University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.412895.3", "label": "Taif University", "shape": "dot", "title": "\u003ch4\u003eTaif University\u003cbr\u003eTa\u0027if, Saudi Arabia\u003cbr\u003e - grid.412895.3\u003c/h4\u003eLinks:\u003cli\u003eSuez Canal University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.8905.4", "label": "University of Chemical Technology and Metallurgy", "shape": "dot", "title": "\u003ch4\u003eUniversity of Chemical Technology and Metallurgy\u003cbr\u003eSofia, Bulgaria\u003cbr\u003e - grid.8905.4\u003c/h4\u003eLinks:\u003cli\u003eSuez Canal University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.419725.c", "label": "National Research Centre", "shape": "dot", "title": "\u003ch4\u003eNational Research Centre\u003cbr\u003eCairo, Egypt\u003cbr\u003e - grid.419725.c\u003c/h4\u003eLinks:\u003cli\u003eKing Saud University\u003c/li\u003e\u003cli\u003eSuez Canal University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.7269.a", "label": "Ain Shams University", "shape": "dot", "title": "\u003ch4\u003eAin Shams University\u003cbr\u003eCairo, Egypt\u003cbr\u003e - grid.7269.a\u003c/h4\u003eLinks:\u003cli\u003eSuez Canal University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.417967.a", "label": "Indian Institute of Technology Delhi", "shape": "dot", "title": "\u003ch4\u003eIndian Institute of Technology Delhi\u003cbr\u003eNew Delhi, India\u003cbr\u003e - grid.417967.a\u003c/h4\u003eLinks:\u003cli\u003eJamia Millia Islamia", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.8195.5", "label": "University of Delhi", "shape": "dot", "title": "\u003ch4\u003eUniversity of Delhi\u003cbr\u003eNew Delhi, India\u003cbr\u003e - grid.8195.5\u003c/h4\u003eLinks:\u003cli\u003eJamia Millia Islamia", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.262671.6", "label": "Rowan University", "shape": "dot", "title": "\u003ch4\u003eRowan University\u003cbr\u003eGlassboro, United States\u003cbr\u003e - grid.262671.6\u003c/h4\u003eLinks:\u003cli\u003eJamia Millia Islamia", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.411529.a", "label": "M.J.P. Rohilkhand University", "shape": "dot", "title": "\u003ch4\u003eM.J.P. Rohilkhand University\u003cbr\u003eBareilly, India\u003cbr\u003e - grid.411529.a\u003c/h4\u003eLinks:\u003cli\u003eJamia Millia Islamia", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.444644.2", "label": "Amity University", "shape": "dot", "title": "\u003ch4\u003eAmity University\u003cbr\u003eNoida, India\u003cbr\u003e - grid.444644.2\u003c/h4\u003eLinks:\u003cli\u003eJamia Millia Islamia", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.411545.0", "label": "Jeonbuk National University", "shape": "dot", "title": "\u003ch4\u003eJeonbuk National University\u003cbr\u003eJeonju, South Korea\u003cbr\u003e - grid.411545.0\u003c/h4\u003eLinks:\u003cli\u003eKing Saud University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.452562.2", "label": "King Abdulaziz City for Science and Technology", "shape": "dot", "title": "\u003ch4\u003eKing Abdulaziz City for Science and Technology\u003cbr\u003eRiyadh, Saudi Arabia\u003cbr\u003e - grid.452562.2\u003c/h4\u003eLinks:\u003cli\u003eKing Saud University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.442508.f", "label": "University of Gab\u00e8s", "shape": "dot", "title": "\u003ch4\u003eUniversity of Gab\u00e8s\u003cbr\u003eGab\u00e8s, Tunisia\u003cbr\u003e - grid.442508.f\u003c/h4\u003eLinks:\u003cli\u003eKing Saud University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.1003.2", "label": "University of Queensland", "shape": "dot", "title": "\u003ch4\u003eUniversity of Queensland\u003cbr\u003eBrisbane, Australia\u003cbr\u003e - grid.1003.2\u003c/h4\u003eLinks:\u003cli\u003eKing Saud University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.145695.a", "label": "Chang Gung University", "shape": "dot", "title": "\u003ch4\u003eChang Gung University\u003cbr\u003eTaoyuan City, Taiwan\u003cbr\u003e - grid.145695.a\u003c/h4\u003eLinks:\u003cli\u003eKing Saud University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.412258.8", "label": "Tanta University", "shape": "dot", "title": "\u003ch4\u003eTanta University\u003cbr\u003eTanta, Egypt\u003cbr\u003e - grid.412258.8\u003c/h4\u003eLinks:\u003cli\u003eKing Saud University", "value": 1}]);
- edges = new vis.DataSet([{"arrows": "none", "from": "grid.412125.1", "label": 106, "to": "grid.261112.7", "value": 0.16459627329192547}, {"arrows": "none", "from": "grid.412125.1", "label": 98, "to": "grid.38142.3c", "value": 0.15217391304347827}, {"arrows": "none", "from": "grid.412125.1", "label": 73, "to": "grid.116068.8", "value": 0.11335403726708075}, {"arrows": "none", "from": "grid.412125.1", "label": 59, "to": "grid.16753.36", "value": 0.09161490683229814}, {"arrows": "none", "from": "grid.412125.1", "label": 58, "to": "grid.413735.7", "value": 0.09006211180124224}, {"arrows": "none", "from": "grid.412125.1", "label": 47, "to": "grid.411340.3", "value": 0.07298136645962733}, {"arrows": "none", "from": "grid.412125.1", "label": 47, "to": "grid.412621.2", "value": 0.07298136645962733}, {"arrows": "none", "from": "grid.412125.1", "label": 42, "to": "grid.33003.33", "value": 0.06521739130434782}, {"arrows": "none", "from": "grid.412125.1", "label": 42, "to": "grid.411818.5", "value": 0.06521739130434782}, {"arrows": "none", "from": "grid.412125.1", "label": 42, "to": "grid.56302.32", "value": 0.06521739130434782}, {"arrows": "none", "from": "grid.261112.7", "label": 68, "to": "grid.38142.3c", "value": 0.10559006211180125}, {"arrows": "none", "from": "grid.261112.7", "label": 56, "to": "grid.116068.8", "value": 0.08695652173913043}, {"arrows": "none", "from": "grid.261112.7", "label": 53, "to": "grid.17089.37", "value": 0.08229813664596274}, {"arrows": "none", "from": "grid.261112.7", "label": 28, "to": "grid.32224.35", "value": 0.043478260869565216}, {"arrows": "none", "from": "grid.261112.7", "label": 21, "to": "grid.40263.33", "value": 0.03260869565217391}, {"arrows": "none", "from": "grid.261112.7", "label": 19, "to": "grid.62560.37", "value": 0.029503105590062112}, {"arrows": "none", "from": "grid.261112.7", "label": 17, "to": "grid.225262.3", "value": 0.026397515527950312}, {"arrows": "none", "from": "grid.261112.7", "label": 17, "to": "grid.413735.7", "value": 0.026397515527950312}, {"arrows": "none", "from": "grid.261112.7", "label": 15, "to": "grid.5808.5", "value": 0.023291925465838508}, {"arrows": "none", "from": "grid.38142.3c", "label": 644, "to": "grid.116068.8", "value": 1.0}, {"arrows": "none", "from": "grid.38142.3c", "label": 556, "to": "grid.32224.35", "value": 0.8633540372670807}, {"arrows": "none", "from": "grid.38142.3c", "label": 486, "to": "grid.62560.37", "value": 0.7546583850931677}, {"arrows": "none", "from": "grid.38142.3c", "label": 360, "to": "grid.413735.7", "value": 0.5590062111801242}, {"arrows": "none", "from": "grid.38142.3c", "label": 132, "to": "grid.65499.37", "value": 0.20496894409937888}, {"arrows": "none", "from": "grid.38142.3c", "label": 105, "to": "grid.516087.d", "value": 0.16304347826086957}, {"arrows": "none", "from": "grid.38142.3c", "label": 104, "to": "grid.239395.7", "value": 0.16149068322981366}, {"arrows": "none", "from": "grid.38142.3c", "label": 79, "to": "grid.2515.3", "value": 0.12267080745341614}, {"arrows": "none", "from": "grid.38142.3c", "label": 69, "to": "grid.168010.e", "value": 0.10714285714285714}, {"arrows": "none", "from": "grid.116068.8", "label": 335, "to": "grid.413735.7", "value": 0.5201863354037267}, {"arrows": "none", "from": "grid.116068.8", "label": 209, "to": "grid.62560.37", "value": 0.3245341614906832}, {"arrows": "none", "from": "grid.116068.8", "label": 191, "to": "grid.516087.d", "value": 0.296583850931677}, {"arrows": "none", "from": "grid.116068.8", "label": 152, "to": "grid.4280.e", "value": 0.2360248447204969}, {"arrows": "none", "from": "grid.116068.8", "label": 147, "to": "grid.429485.6", "value": 0.22826086956521738}, {"arrows": "none", "from": "grid.116068.8", "label": 110, "to": "grid.512167.6", "value": 0.17080745341614906}, {"arrows": "none", "from": "grid.116068.8", "label": 95, "to": "grid.418830.6", "value": 0.14751552795031056}, {"arrows": "none", "from": "grid.116068.8", "label": 90, "to": "grid.32224.35", "value": 0.13975155279503104}, {"arrows": "none", "from": "grid.116068.8", "label": 88, "to": "grid.59025.3b", "value": 0.13664596273291926}, {"arrows": "none", "from": "grid.16753.36", "label": 240, "to": "grid.187073.a", "value": 0.37267080745341613}, {"arrows": "none", "from": "grid.16753.36", "label": 142, "to": "grid.35403.31", "value": 0.2204968944099379}, {"arrows": "none", "from": "grid.16753.36", "label": 83, "to": "grid.516096.d", "value": 0.12888198757763975}, {"arrows": "none", "from": "grid.16753.36", "label": 56, "to": "grid.12527.33", "value": 0.08695652173913043}, {"arrows": "none", "from": "grid.16753.36", "label": 52, "to": "grid.19006.3e", "value": 0.08074534161490683}, {"arrows": "none", "from": "grid.16753.36", "label": 51, "to": "grid.169077.e", "value": 0.07919254658385093}, {"arrows": "none", "from": "grid.16753.36", "label": 44, "to": "grid.37172.30", "value": 0.06832298136645963}, {"arrows": "none", "from": "grid.16753.36", "label": 42, "to": "grid.170205.1", "value": 0.06521739130434782}, {"arrows": "none", "from": "grid.16753.36", "label": 38, "to": "grid.116068.8", "value": 0.059006211180124224}, {"arrows": "none", "from": "grid.413735.7", "label": 125, "to": "grid.62560.37", "value": 0.19409937888198758}, {"arrows": "none", "from": "grid.413735.7", "label": 97, "to": "grid.32224.35", "value": 0.15062111801242237}, {"arrows": "none", "from": "grid.413735.7", "label": 84, "to": "grid.516087.d", "value": 0.13043478260869565}, {"arrows": "none", "from": "grid.413735.7", "label": 31, "to": "grid.69566.3a", "value": 0.04813664596273292}, {"arrows": "none", "from": "grid.413735.7", "label": 25, "to": "grid.258676.8", "value": 0.03881987577639751}, {"arrows": "none", "from": "grid.413735.7", "label": 22, "to": "grid.289247.2", "value": 0.034161490683229816}, {"arrows": "none", "from": "grid.411340.3", "label": 61, "to": "grid.56302.32", "value": 0.09472049689440994}, {"arrows": "none", "from": "grid.411340.3", "label": 19, "to": "grid.466808.4", "value": 0.029503105590062112}, {"arrows": "none", "from": "grid.411340.3", "label": 10, "to": "grid.412135.0", "value": 0.015527950310559006}, {"arrows": "none", "from": "grid.411340.3", "label": 9, "to": "grid.417641.1", "value": 0.013975155279503106}, {"arrows": "none", "from": "grid.411340.3", "label": 9, "to": "grid.419701.a", "value": 0.013975155279503106}, {"arrows": "none", "from": "grid.411340.3", "label": 8, "to": "grid.411723.2", "value": 0.012422360248447204}, {"arrows": "none", "from": "grid.411340.3", "label": 7, "to": "grid.410877.d", "value": 0.010869565217391304}, {"arrows": "none", "from": "grid.411340.3", "label": 6, "to": "grid.10706.30", "value": 0.009316770186335404}, {"arrows": "none", "from": "grid.411340.3", "label": 6, "to": "grid.411214.3", "value": 0.009316770186335404}, {"arrows": "none", "from": "grid.412621.2", "label": 39, "to": "grid.418920.6", "value": 0.06055900621118013}, {"arrows": "none", "from": "grid.412621.2", "label": 36, "to": "grid.440530.6", "value": 0.055900621118012424}, {"arrows": "none", "from": "grid.412621.2", "label": 18, "to": "grid.411727.6", "value": 0.027950310559006212}, {"arrows": "none", "from": "grid.412621.2", "label": 18, "to": "grid.412117.0", "value": 0.027950310559006212}, {"arrows": "none", "from": "grid.412621.2", "label": 15, "to": "grid.466924.b", "value": 0.023291925465838508}, {"arrows": "none", "from": "grid.412621.2", "label": 14, "to": "grid.412782.a", "value": 0.021739130434782608}, {"arrows": "none", "from": "grid.412621.2", "label": 14, "to": "grid.420113.5", "value": 0.021739130434782608}, {"arrows": "none", "from": "grid.412621.2", "label": 11, "to": "grid.10347.31", "value": 0.017080745341614908}, {"arrows": "none", "from": "grid.412621.2", "label": 11, "to": "grid.412135.0", "value": 0.017080745341614908}, {"arrows": "none", "from": "grid.33003.33", "label": 18, "to": "grid.411320.5", "value": 0.027950310559006212}, {"arrows": "none", "from": "grid.33003.33", "label": 13, "to": "grid.5491.9", "value": 0.020186335403726708}, {"arrows": "none", "from": "grid.33003.33", "label": 11, "to": "grid.29980.3a", "value": 0.017080745341614908}, {"arrows": "none", "from": "grid.33003.33", "label": 11, "to": "grid.440760.1", "value": 0.017080745341614908}, {"arrows": "none", "from": "grid.33003.33", "label": 11, "to": "grid.56302.32", "value": 0.017080745341614908}, {"arrows": "none", "from": "grid.33003.33", "label": 8, "to": "grid.412895.3", "value": 0.012422360248447204}, {"arrows": "none", "from": "grid.33003.33", "label": 7, "to": "grid.8905.4", "value": 0.010869565217391304}, {"arrows": "none", "from": "grid.33003.33", "label": 6, "to": "grid.419725.c", "value": 0.009316770186335404}, {"arrows": "none", "from": "grid.33003.33", "label": 5, "to": "grid.7269.a", "value": 0.007763975155279503}, {"arrows": "none", "from": "grid.411818.5", "label": 34, "to": "grid.419701.a", "value": 0.052795031055900624}, {"arrows": "none", "from": "grid.411818.5", "label": 15, "to": "grid.417967.a", "value": 0.023291925465838508}, {"arrows": "none", "from": "grid.411818.5", "label": 15, "to": "grid.56302.32", "value": 0.023291925465838508}, {"arrows": "none", "from": "grid.411818.5", "label": 9, "to": "grid.8195.5", "value": 0.013975155279503106}, {"arrows": "none", "from": "grid.411818.5", "label": 8, "to": "grid.262671.6", "value": 0.012422360248447204}, {"arrows": "none", "from": "grid.411818.5", "label": 7, "to": "grid.410877.d", "value": 0.010869565217391304}, {"arrows": "none", "from": "grid.411818.5", "label": 7, "to": "grid.411529.a", "value": 0.010869565217391304}, {"arrows": "none", "from": "grid.411818.5", "label": 7, "to": "grid.444644.2", "value": 0.010869565217391304}, {"arrows": "none", "from": "grid.411818.5", "label": 6, "to": "grid.411340.3", "value": 0.009316770186335404}, {"arrows": "none", "from": "grid.56302.32", "label": 60, "to": "grid.4280.e", "value": 0.09316770186335403}, {"arrows": "none", "from": "grid.56302.32", "label": 54, "to": "grid.411545.0", "value": 0.08385093167701864}, {"arrows": "none", "from": "grid.56302.32", "label": 48, "to": "grid.452562.2", "value": 0.07453416149068323}, {"arrows": "none", "from": "grid.56302.32", "label": 43, "to": "grid.419725.c", "value": 0.06677018633540373}, {"arrows": "none", "from": "grid.56302.32", "label": 42, "to": "grid.442508.f", "value": 0.06521739130434782}, {"arrows": "none", "from": "grid.56302.32", "label": 34, "to": "grid.1003.2", "value": 0.052795031055900624}, {"arrows": "none", "from": "grid.56302.32", "label": 31, "to": "grid.145695.a", "value": 0.04813664596273292}, {"arrows": "none", "from": "grid.56302.32", "label": 31, "to": "grid.412258.8", "value": 0.04813664596273292}]);
+ nodes = new vis.DataSet([{"borderWidthSelected": 5, "color": "rgb(0, 147, 146)", "id": "grid.412125.1", "label": "King Abdulaziz University", "shape": "dot", "title": "\u003ch4\u003eKing Abdulaziz University\u003cbr\u003eJeddah, Saudi Arabia\u003cbr\u003e - grid.412125.1\u003c/h4\u003eLinks:\u003cli\u003eNortheastern University\u003c/li\u003e\u003cli\u003eBrigham and Womens Hospital Inc\u003c/li\u003e\u003cli\u003eQuaid-i-Azam University\u003c/li\u003e\u003cli\u003eMassachusetts Institute of Technology\u003c/li\u003e\u003cli\u003eJamia Millia Islamia\u003c/li\u003e\u003cli\u003eKing Saud University\u003c/li\u003e\u003cli\u003eSuez Canal University\u003c/li\u003e\u003cli\u003eNorthwestern University\u003c/li\u003e\u003cli\u003eAligarh Muslim University\u003c/li\u003e\u003cli\u003eHarvard University", "value": 3}, {"borderWidthSelected": 5, "color": "rgb(156, 203, 134)", "id": "grid.261112.7", "label": "Northeastern University", "shape": "dot", "title": "\u003ch4\u003eNortheastern University\u003cbr\u003eBoston, United States\u003cbr\u003e - grid.261112.7\u003c/h4\u003eLinks:\u003cli\u003eBrigham and Womens Hospital Inc\u003c/li\u003e\u003cli\u003eUniversity of Porto\u003c/li\u003e\u003cli\u003eBrown University\u003c/li\u003e\u003cli\u003eUniversity of Alberta\u003c/li\u003e\u003cli\u003eMassachusetts Institute of Technology\u003c/li\u003e\u003cli\u003eKing Abdulaziz University\u003c/li\u003e\u003cli\u003eRice University\u003c/li\u003e\u003cli\u003eUniversity of Massachusetts Lowell\u003c/li\u003e\u003cli\u003eMassachusetts General Hospital\u003c/li\u003e\u003cli\u003eHarvard University", "value": 2}, {"borderWidthSelected": 5, "color": "rgb(156, 203, 134)", "id": "grid.38142.3c", "label": "Harvard University", "shape": "dot", "title": "\u003ch4\u003eHarvard University\u003cbr\u003eCambridge, United States\u003cbr\u003e - grid.38142.3c\u003c/h4\u003eLinks:\u003cli\u003eNortheastern University\u003c/li\u003e\u003cli\u003eBrigham and Womens Hospital Inc\u003c/li\u003e\u003cli\u003eMassachusetts Institute of Technology\u003c/li\u003e\u003cli\u003eBoston Children\u0027s Hospital\u003c/li\u003e\u003cli\u003eHarvard\u2013MIT Division of Health Sciences and Technology\u003c/li\u003e\u003cli\u003eKing Abdulaziz University\u003c/li\u003e\u003cli\u003eKoch Institute for Integrative Cancer Research\u003c/li\u003e\u003cli\u003eStanford University\u003c/li\u003e\u003cli\u003eDana Farber Cancer Institute Inc\u003c/li\u003e\u003cli\u003eBeth Israel Deaconess Medical Center\u003c/li\u003e\u003cli\u003eMassachusetts General Hospital", "value": 2}, {"borderWidthSelected": 5, "color": "rgb(156, 203, 134)", "id": "grid.116068.8", "label": "Massachusetts Institute of Technology", "shape": "dot", "title": "\u003ch4\u003eMassachusetts Institute of Technology\u003cbr\u003eCambridge, United States\u003cbr\u003e - grid.116068.8\u003c/h4\u003eLinks:\u003cli\u003eNortheastern University\u003c/li\u003e\u003cli\u003eBrigham and Womens Hospital Inc\u003c/li\u003e\u003cli\u003eKing Abdulaziz University\u003c/li\u003e\u003cli\u003eNanyang Technological University\u003c/li\u003e\u003cli\u003eKoch Institute for Integrative Cancer Research\u003c/li\u003e\u003cli\u003eNorthwestern University\u003c/li\u003e\u003cli\u003eSingapore-MIT Alliance for Research and Technology\u003c/li\u003e\u003cli\u003eNational University of Singapore\u003c/li\u003e\u003cli\u003eStanford University\u003c/li\u003e\u003cli\u003eInstitute of Bioengineering and Nanotechnology\u003c/li\u003e\u003cli\u003eMassachusetts General Hospital\u003c/li\u003e\u003cli\u003eInstitute for Soldier Nanotechnologies\u003c/li\u003e\u003cli\u003eHarvard University", "value": 2}, {"borderWidthSelected": 5, "color": "rgb(156, 203, 134)", "id": "grid.16753.36", "label": "Northwestern University", "shape": "dot", "title": "\u003ch4\u003eNorthwestern University\u003cbr\u003eEvanston, United States\u003cbr\u003e - grid.16753.36\u003c/h4\u003eLinks:\u003cli\u003eKorea Advanced Institute of Science and Technology\u003c/li\u003e\u003cli\u003eMassachusetts Institute of Technology\u003c/li\u003e\u003cli\u003ePurdue University West Lafayette\u003c/li\u003e\u003cli\u003eTsinghua University\u003c/li\u003e\u003cli\u003eKing Abdulaziz University\u003c/li\u003e\u003cli\u003eUniversity of California, Los Angeles\u003c/li\u003e\u003cli\u003eArgonne National Laboratory\u003c/li\u003e\u003cli\u003eUniversity of Illinois at Urbana-Champaign\u003c/li\u003e\u003cli\u003eRobert H. Lurie Comprehensive Cancer Center\u003c/li\u003e\u003cli\u003eUniversity of Chicago", "value": 2}, {"borderWidthSelected": 5, "color": "rgb(156, 203, 134)", "id": "grid.411340.3", "label": "Aligarh Muslim University", "shape": "dot", "title": "\u003ch4\u003eAligarh Muslim University\u003cbr\u003eAligarh, India\u003cbr\u003e - grid.411340.3\u003c/h4\u003eLinks:\u003cli\u003eJawaharlal Nehru Medical College Hospital\u003c/li\u003e\u003cli\u003eKing Fahd University of Petroleum and Minerals\u003c/li\u003e\u003cli\u003eJamia Millia Islamia\u003c/li\u003e\u003cli\u003eKing Saud University\u003c/li\u003e\u003cli\u003eKing Abdulaziz University\u003c/li\u003e\u003cli\u003eCSIR National Physical Laboratory of India\u003c/li\u003e\u003cli\u003eJawaharlal Nehru University\u003c/li\u003e\u003cli\u003eChangwon National University\u003c/li\u003e\u003cli\u003eUniversity of Technology Malaysia\u003c/li\u003e\u003cli\u003eIntegral University\u003c/li\u003e\u003cli\u003eInstitute of Microbial Technology", "value": 2}, {"borderWidthSelected": 5, "color": "rgb(156, 203, 134)", "id": "grid.412621.2", "label": "Quaid-i-Azam University", "shape": "dot", "title": "\u003ch4\u003eQuaid-i-Azam University\u003cbr\u003eIslamabad, Pakistan\u003cbr\u003e - grid.412621.2\u003c/h4\u003eLinks:\u003cli\u003eCOMSATS University Islamabad\u003c/li\u003e\u003cli\u003eKing Fahd University of Petroleum and Minerals\u003c/li\u003e\u003cli\u003eHazara University\u003c/li\u003e\u003cli\u003eAbdus Salam Centre for Physics\u003c/li\u003e\u003cli\u003eKing Abdulaziz University\u003c/li\u003e\u003cli\u003eInternational Islamic University, Islamabad\u003c/li\u003e\u003cli\u003ePakistan Institute of Nuclear Science and Technology\u003c/li\u003e\u003cli\u003eUniversity of Malaya\u003c/li\u003e\u003cli\u003eUniversity of Sargodha\u003c/li\u003e\u003cli\u003eNational University of Sciences and Technology", "value": 2}, {"borderWidthSelected": 5, "color": "rgb(156, 203, 134)", "id": "grid.411818.5", "label": "Jamia Millia Islamia", "shape": "dot", "title": "\u003ch4\u003eJamia Millia Islamia\u003cbr\u003eNew Delhi, India\u003cbr\u003e - grid.411818.5\u003c/h4\u003eLinks:\u003cli\u003eRowan University\u003c/li\u003e\u003cli\u003eIndian Institute of Technology Delhi\u003c/li\u003e\u003cli\u003eAmity University\u003c/li\u003e\u003cli\u003eKing Saud University\u003c/li\u003e\u003cli\u003eKing Abdulaziz University\u003c/li\u003e\u003cli\u003eCSIR National Physical Laboratory of India\u003c/li\u003e\u003cli\u003eM.J.P. Rohilkhand University\u003c/li\u003e\u003cli\u003eUniversity of Technology Malaysia\u003c/li\u003e\u003cli\u003eAligarh Muslim University\u003c/li\u003e\u003cli\u003eUniversity of Delhi", "value": 2}, {"borderWidthSelected": 5, "color": "rgb(156, 203, 134)", "id": "grid.62560.37", "label": "Brigham and Womens Hospital Inc", "shape": "dot", "title": "\u003ch4\u003eBrigham and Womens Hospital Inc\u003cbr\u003eBoston, United States\u003cbr\u003e - grid.62560.37\u003c/h4\u003eLinks:\u003cli\u003eNortheastern University\u003c/li\u003e\u003cli\u003eMassachusetts Institute of Technology\u003c/li\u003e\u003cli\u003eHarvard\u2013MIT Division of Health Sciences and Technology\u003c/li\u003e\u003cli\u003eKing Abdulaziz University\u003c/li\u003e\u003cli\u003eKoch Institute for Integrative Cancer Research\u003c/li\u003e\u003cli\u003eBoston University\u003c/li\u003e\u003cli\u003eDana Farber Cancer Institute Inc\u003c/li\u003e\u003cli\u003eStanford University\u003c/li\u003e\u003cli\u003eMassachusetts General Hospital\u003c/li\u003e\u003cli\u003eHarvard University", "value": 2}, {"borderWidthSelected": 5, "color": "rgb(156, 203, 134)", "id": "grid.33003.33", "label": "Suez Canal University", "shape": "dot", "title": "\u003ch4\u003eSuez Canal University\u003cbr\u003eIsmailia, Egypt\u003cbr\u003e - grid.33003.33\u003c/h4\u003eLinks:\u003cli\u003eF\u0131rat University\u003c/li\u003e\u003cli\u003eUniversity of Tabuk\u003c/li\u003e\u003cli\u003eKing Saud University\u003c/li\u003e\u003cli\u003eKing Abdulaziz University\u003c/li\u003e\u003cli\u003eUniversity of Otago\u003c/li\u003e\u003cli\u003eNational Research Centre\u003c/li\u003e\u003cli\u003eAin Shams University\u003c/li\u003e\u003cli\u003eUniversity of Chemical Technology and Metallurgy\u003c/li\u003e\u003cli\u003eUniversity of Southampton\u003c/li\u003e\u003cli\u003eTaif University", "value": 2}, {"borderWidthSelected": 5, "color": "rgb(156, 203, 134)", "id": "grid.56302.32", "label": "King Saud University", "shape": "dot", "title": "\u003ch4\u003eKing Saud University\u003cbr\u003eRiyadh, Saudi Arabia\u003cbr\u003e - grid.56302.32\u003c/h4\u003eLinks:\u003cli\u003eNational Institute for Materials Science\u003c/li\u003e\u003cli\u003eKing Abdulaziz City for Science and Technology\u003c/li\u003e\u003cli\u003eBharathiar University\u003c/li\u003e\u003cli\u003eJamia Millia Islamia\u003c/li\u003e\u003cli\u003eUniversity of Queensland\u003c/li\u003e\u003cli\u003eKing Abdulaziz University\u003c/li\u003e\u003cli\u003eChang Gung University\u003c/li\u003e\u003cli\u003eSuez Canal University\u003c/li\u003e\u003cli\u003eNational University of Singapore\u003c/li\u003e\u003cli\u003eNational Research Centre\u003c/li\u003e\u003cli\u003eAligarh Muslim University\u003c/li\u003e\u003cli\u003eJeonbuk National University", "value": 2}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.17089.37", "label": "University of Alberta", "shape": "dot", "title": "\u003ch4\u003eUniversity of Alberta\u003cbr\u003eEdmonton, Canada\u003cbr\u003e - grid.17089.37\u003c/h4\u003eLinks:\u003cli\u003eNortheastern University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.32224.35", "label": "Massachusetts General Hospital", "shape": "dot", "title": "\u003ch4\u003eMassachusetts General Hospital\u003cbr\u003eBoston, United States\u003cbr\u003e - grid.32224.35\u003c/h4\u003eLinks:\u003cli\u003eMassachusetts Institute of Technology\u003c/li\u003e\u003cli\u003eNortheastern University\u003c/li\u003e\u003cli\u003eBrigham and Womens Hospital Inc\u003c/li\u003e\u003cli\u003eHarvard University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.40263.33", "label": "Brown University", "shape": "dot", "title": "\u003ch4\u003eBrown University\u003cbr\u003eProvidence, United States\u003cbr\u003e - grid.40263.33\u003c/h4\u003eLinks:\u003cli\u003eNortheastern University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.225262.3", "label": "University of Massachusetts Lowell", "shape": "dot", "title": "\u003ch4\u003eUniversity of Massachusetts Lowell\u003cbr\u003eLowell, United States\u003cbr\u003e - grid.225262.3\u003c/h4\u003eLinks:\u003cli\u003eNortheastern University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.5808.5", "label": "University of Porto", "shape": "dot", "title": "\u003ch4\u003eUniversity of Porto\u003cbr\u003ePorto, Portugal\u003cbr\u003e - grid.5808.5\u003c/h4\u003eLinks:\u003cli\u003eNortheastern University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.21940.3e", "label": "Rice University", "shape": "dot", "title": "\u003ch4\u003eRice University\u003cbr\u003eHouston, United States\u003cbr\u003e - grid.21940.3e\u003c/h4\u003eLinks:\u003cli\u003eNortheastern University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.413735.7", "label": "Harvard\u2013MIT Division of Health Sciences and Technology", "shape": "dot", "title": "\u003ch4\u003eHarvard\u2013MIT Division of Health Sciences and Technology\u003cbr\u003eCambridge, United States\u003cbr\u003e - grid.413735.7\u003c/h4\u003eLinks:\u003cli\u003eBrigham and Womens Hospital Inc\u003c/li\u003e\u003cli\u003eHarvard University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.65499.37", "label": "Dana Farber Cancer Institute Inc", "shape": "dot", "title": "\u003ch4\u003eDana Farber Cancer Institute Inc\u003cbr\u003eBoston, United States\u003cbr\u003e - grid.65499.37\u003c/h4\u003eLinks:\u003cli\u003eBrigham and Womens Hospital Inc\u003c/li\u003e\u003cli\u003eHarvard University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.239395.7", "label": "Beth Israel Deaconess Medical Center", "shape": "dot", "title": "\u003ch4\u003eBeth Israel Deaconess Medical Center\u003cbr\u003eBoston, United States\u003cbr\u003e - grid.239395.7\u003c/h4\u003eLinks:\u003cli\u003eHarvard University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.516087.d", "label": "Koch Institute for Integrative Cancer Research", "shape": "dot", "title": "\u003ch4\u003eKoch Institute for Integrative Cancer Research\u003cbr\u003eCambridge, United States\u003cbr\u003e - grid.516087.d\u003c/h4\u003eLinks:\u003cli\u003eMassachusetts Institute of Technology\u003c/li\u003e\u003cli\u003eBrigham and Womens Hospital Inc\u003c/li\u003e\u003cli\u003eHarvard University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.2515.3", "label": "Boston Children\u0027s Hospital", "shape": "dot", "title": "\u003ch4\u003eBoston Children\u0027s Hospital\u003cbr\u003eBoston, United States\u003cbr\u003e - grid.2515.3\u003c/h4\u003eLinks:\u003cli\u003eHarvard University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.168010.e", "label": "Stanford University", "shape": "dot", "title": "\u003ch4\u003eStanford University\u003cbr\u003eStanford, United States\u003cbr\u003e - grid.168010.e\u003c/h4\u003eLinks:\u003cli\u003eMassachusetts Institute of Technology\u003c/li\u003e\u003cli\u003eBrigham and Womens Hospital Inc\u003c/li\u003e\u003cli\u003eHarvard University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.4280.e", "label": "National University of Singapore", "shape": "dot", "title": "\u003ch4\u003eNational University of Singapore\u003cbr\u003eSingapore, Singapore\u003cbr\u003e - grid.4280.e\u003c/h4\u003eLinks:\u003cli\u003eMassachusetts Institute of Technology\u003c/li\u003e\u003cli\u003eKing Saud University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.429485.6", "label": "Singapore-MIT Alliance for Research and Technology", "shape": "dot", "title": "\u003ch4\u003eSingapore-MIT Alliance for Research and Technology\u003cbr\u003eSingapore, Singapore\u003cbr\u003e - grid.429485.6\u003c/h4\u003eLinks:\u003cli\u003eMassachusetts Institute of Technology", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.512167.6", "label": "Institute for Soldier Nanotechnologies", "shape": "dot", "title": "\u003ch4\u003eInstitute for Soldier Nanotechnologies\u003cbr\u003eCambridge, United States\u003cbr\u003e - grid.512167.6\u003c/h4\u003eLinks:\u003cli\u003eMassachusetts Institute of Technology", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.418830.6", "label": "Institute of Bioengineering and Nanotechnology", "shape": "dot", "title": "\u003ch4\u003eInstitute of Bioengineering and Nanotechnology\u003cbr\u003eSingapore, Singapore\u003cbr\u003e - grid.418830.6\u003c/h4\u003eLinks:\u003cli\u003eMassachusetts Institute of Technology", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.59025.3b", "label": "Nanyang Technological University", "shape": "dot", "title": "\u003ch4\u003eNanyang Technological University\u003cbr\u003eSingapore, Singapore\u003cbr\u003e - grid.59025.3b\u003c/h4\u003eLinks:\u003cli\u003eMassachusetts Institute of Technology", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.187073.a", "label": "Argonne National Laboratory", "shape": "dot", "title": "\u003ch4\u003eArgonne National Laboratory\u003cbr\u003eLemont, United States\u003cbr\u003e - grid.187073.a\u003c/h4\u003eLinks:\u003cli\u003eNorthwestern University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.35403.31", "label": "University of Illinois at Urbana-Champaign", "shape": "dot", "title": "\u003ch4\u003eUniversity of Illinois at Urbana-Champaign\u003cbr\u003eUrbana, United States\u003cbr\u003e - grid.35403.31\u003c/h4\u003eLinks:\u003cli\u003eNorthwestern University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.516096.d", "label": "Robert H. Lurie Comprehensive Cancer Center", "shape": "dot", "title": "\u003ch4\u003eRobert H. Lurie Comprehensive Cancer Center\u003cbr\u003eChicago, United States\u003cbr\u003e - grid.516096.d\u003c/h4\u003eLinks:\u003cli\u003eNorthwestern University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.12527.33", "label": "Tsinghua University", "shape": "dot", "title": "\u003ch4\u003eTsinghua University\u003cbr\u003eBeijing, China\u003cbr\u003e - grid.12527.33\u003c/h4\u003eLinks:\u003cli\u003eNorthwestern University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.169077.e", "label": "Purdue University West Lafayette", "shape": "dot", "title": "\u003ch4\u003ePurdue University West Lafayette\u003cbr\u003eWest Lafayette, United States\u003cbr\u003e - grid.169077.e\u003c/h4\u003eLinks:\u003cli\u003eNorthwestern University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.19006.3e", "label": "University of California, Los Angeles", "shape": "dot", "title": "\u003ch4\u003eUniversity of California, Los Angeles\u003cbr\u003eLos Angeles, United States\u003cbr\u003e - grid.19006.3e\u003c/h4\u003eLinks:\u003cli\u003eNorthwestern University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.170205.1", "label": "University of Chicago", "shape": "dot", "title": "\u003ch4\u003eUniversity of Chicago\u003cbr\u003eChicago, United States\u003cbr\u003e - grid.170205.1\u003c/h4\u003eLinks:\u003cli\u003eNorthwestern University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.37172.30", "label": "Korea Advanced Institute of Science and Technology", "shape": "dot", "title": "\u003ch4\u003eKorea Advanced Institute of Science and Technology\u003cbr\u003eDaejeon, South Korea\u003cbr\u003e - grid.37172.30\u003c/h4\u003eLinks:\u003cli\u003eNorthwestern University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.466808.4", "label": "Jawaharlal Nehru Medical College Hospital", "shape": "dot", "title": "\u003ch4\u003eJawaharlal Nehru Medical College Hospital\u003cbr\u003eAligarh, India\u003cbr\u003e - grid.466808.4\u003c/h4\u003eLinks:\u003cli\u003eAligarh Muslim University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.412135.0", "label": "King Fahd University of Petroleum and Minerals", "shape": "dot", "title": "\u003ch4\u003eKing Fahd University of Petroleum and Minerals\u003cbr\u003eDhahran, Saudi Arabia\u003cbr\u003e - grid.412135.0\u003c/h4\u003eLinks:\u003cli\u003eAligarh Muslim University\u003c/li\u003e\u003cli\u003eQuaid-i-Azam University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.417641.1", "label": "Institute of Microbial Technology", "shape": "dot", "title": "\u003ch4\u003eInstitute of Microbial Technology\u003cbr\u003eChandigarh, India\u003cbr\u003e - grid.417641.1\u003c/h4\u003eLinks:\u003cli\u003eAligarh Muslim University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.419701.a", "label": "CSIR National Physical Laboratory of India", "shape": "dot", "title": "\u003ch4\u003eCSIR National Physical Laboratory of India\u003cbr\u003eNew Delhi, India\u003cbr\u003e - grid.419701.a\u003c/h4\u003eLinks:\u003cli\u003eJamia Millia Islamia\u003c/li\u003e\u003cli\u003eAligarh Muslim University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.411723.2", "label": "Integral University", "shape": "dot", "title": "\u003ch4\u003eIntegral University\u003cbr\u003eLucknow, India\u003cbr\u003e - grid.411723.2\u003c/h4\u003eLinks:\u003cli\u003eAligarh Muslim University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.410877.d", "label": "University of Technology Malaysia", "shape": "dot", "title": "\u003ch4\u003eUniversity of Technology Malaysia\u003cbr\u003eJohor Bahru, Malaysia\u003cbr\u003e - grid.410877.d\u003c/h4\u003eLinks:\u003cli\u003eJamia Millia Islamia\u003c/li\u003e\u003cli\u003eAligarh Muslim University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.10706.30", "label": "Jawaharlal Nehru University", "shape": "dot", "title": "\u003ch4\u003eJawaharlal Nehru University\u003cbr\u003eNew Delhi, India\u003cbr\u003e - grid.10706.30\u003c/h4\u003eLinks:\u003cli\u003eAligarh Muslim University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.411214.3", "label": "Changwon National University", "shape": "dot", "title": "\u003ch4\u003eChangwon National University\u003cbr\u003eChangwon, South Korea\u003cbr\u003e - grid.411214.3\u003c/h4\u003eLinks:\u003cli\u003eAligarh Muslim University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.418920.6", "label": "COMSATS University Islamabad", "shape": "dot", "title": "\u003ch4\u003eCOMSATS University Islamabad\u003cbr\u003eIslamabad, Pakistan\u003cbr\u003e - grid.418920.6\u003c/h4\u003eLinks:\u003cli\u003eQuaid-i-Azam University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.440530.6", "label": "Hazara University", "shape": "dot", "title": "\u003ch4\u003eHazara University\u003cbr\u003eBaffa, Pakistan\u003cbr\u003e - grid.440530.6\u003c/h4\u003eLinks:\u003cli\u003eQuaid-i-Azam University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.466924.b", "label": "Abdus Salam Centre for Physics", "shape": "dot", "title": "\u003ch4\u003eAbdus Salam Centre for Physics\u003cbr\u003eIslamabad, Pakistan\u003cbr\u003e - grid.466924.b\u003c/h4\u003eLinks:\u003cli\u003eQuaid-i-Azam University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.412117.0", "label": "National University of Sciences and Technology", "shape": "dot", "title": "\u003ch4\u003eNational University of Sciences and Technology\u003cbr\u003eIslamabad, Pakistan\u003cbr\u003e - grid.412117.0\u003c/h4\u003eLinks:\u003cli\u003eQuaid-i-Azam University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.411727.6", "label": "International Islamic University, Islamabad", "shape": "dot", "title": "\u003ch4\u003eInternational Islamic University, Islamabad\u003cbr\u003eIslamabad, Pakistan\u003cbr\u003e - grid.411727.6\u003c/h4\u003eLinks:\u003cli\u003eQuaid-i-Azam University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.412782.a", "label": "University of Sargodha", "shape": "dot", "title": "\u003ch4\u003eUniversity of Sargodha\u003cbr\u003eSargodha, Pakistan\u003cbr\u003e - grid.412782.a\u003c/h4\u003eLinks:\u003cli\u003eQuaid-i-Azam University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.420113.5", "label": "Pakistan Institute of Nuclear Science and Technology", "shape": "dot", "title": "\u003ch4\u003ePakistan Institute of Nuclear Science and Technology\u003cbr\u003eIslamabad, Pakistan\u003cbr\u003e - grid.420113.5\u003c/h4\u003eLinks:\u003cli\u003eQuaid-i-Azam University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.10347.31", "label": "University of Malaya", "shape": "dot", "title": "\u003ch4\u003eUniversity of Malaya\u003cbr\u003eKuala Lumpur, Malaysia\u003cbr\u003e - grid.10347.31\u003c/h4\u003eLinks:\u003cli\u003eQuaid-i-Azam University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.417967.a", "label": "Indian Institute of Technology Delhi", "shape": "dot", "title": "\u003ch4\u003eIndian Institute of Technology Delhi\u003cbr\u003eNew Delhi, India\u003cbr\u003e - grid.417967.a\u003c/h4\u003eLinks:\u003cli\u003eJamia Millia Islamia", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.8195.5", "label": "University of Delhi", "shape": "dot", "title": "\u003ch4\u003eUniversity of Delhi\u003cbr\u003eNew Delhi, India\u003cbr\u003e - grid.8195.5\u003c/h4\u003eLinks:\u003cli\u003eJamia Millia Islamia", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.262671.6", "label": "Rowan University", "shape": "dot", "title": "\u003ch4\u003eRowan University\u003cbr\u003eGlassboro, United States\u003cbr\u003e - grid.262671.6\u003c/h4\u003eLinks:\u003cli\u003eJamia Millia Islamia", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.411529.a", "label": "M.J.P. Rohilkhand University", "shape": "dot", "title": "\u003ch4\u003eM.J.P. Rohilkhand University\u003cbr\u003eBareilly, India\u003cbr\u003e - grid.411529.a\u003c/h4\u003eLinks:\u003cli\u003eJamia Millia Islamia", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.444644.2", "label": "Amity University", "shape": "dot", "title": "\u003ch4\u003eAmity University\u003cbr\u003eNoida, India\u003cbr\u003e - grid.444644.2\u003c/h4\u003eLinks:\u003cli\u003eJamia Millia Islamia", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.189504.1", "label": "Boston University", "shape": "dot", "title": "\u003ch4\u003eBoston University\u003cbr\u003eBoston, United States\u003cbr\u003e - grid.189504.1\u003c/h4\u003eLinks:\u003cli\u003eBrigham and Womens Hospital Inc", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.411320.5", "label": "F\u0131rat University", "shape": "dot", "title": "\u003ch4\u003eF\u0131rat University\u003cbr\u003eEl\u00e2z\u0131\u011f, Turkey\u003cbr\u003e - grid.411320.5\u003c/h4\u003eLinks:\u003cli\u003eSuez Canal University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.5491.9", "label": "University of Southampton", "shape": "dot", "title": "\u003ch4\u003eUniversity of Southampton\u003cbr\u003eSouthampton, United Kingdom\u003cbr\u003e - grid.5491.9\u003c/h4\u003eLinks:\u003cli\u003eSuez Canal University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.29980.3a", "label": "University of Otago", "shape": "dot", "title": "\u003ch4\u003eUniversity of Otago\u003cbr\u003eDunedin, New Zealand\u003cbr\u003e - grid.29980.3a\u003c/h4\u003eLinks:\u003cli\u003eSuez Canal University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.412895.3", "label": "Taif University", "shape": "dot", "title": "\u003ch4\u003eTaif University\u003cbr\u003eTa\u0027if, Saudi Arabia\u003cbr\u003e - grid.412895.3\u003c/h4\u003eLinks:\u003cli\u003eSuez Canal University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.440760.1", "label": "University of Tabuk", "shape": "dot", "title": "\u003ch4\u003eUniversity of Tabuk\u003cbr\u003eTabuk, Saudi Arabia\u003cbr\u003e - grid.440760.1\u003c/h4\u003eLinks:\u003cli\u003eSuez Canal University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.419725.c", "label": "National Research Centre", "shape": "dot", "title": "\u003ch4\u003eNational Research Centre\u003cbr\u003eCairo, Egypt\u003cbr\u003e - grid.419725.c\u003c/h4\u003eLinks:\u003cli\u003eSuez Canal University\u003c/li\u003e\u003cli\u003eKing Saud University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.7269.a", "label": "Ain Shams University", "shape": "dot", "title": "\u003ch4\u003eAin Shams University\u003cbr\u003eCairo, Egypt\u003cbr\u003e - grid.7269.a\u003c/h4\u003eLinks:\u003cli\u003eSuez Canal University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.8905.4", "label": "University of Chemical Technology and Metallurgy", "shape": "dot", "title": "\u003ch4\u003eUniversity of Chemical Technology and Metallurgy\u003cbr\u003eSofia, Bulgaria\u003cbr\u003e - grid.8905.4\u003c/h4\u003eLinks:\u003cli\u003eSuez Canal University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.411545.0", "label": "Jeonbuk National University", "shape": "dot", "title": "\u003ch4\u003eJeonbuk National University\u003cbr\u003eJeonju, South Korea\u003cbr\u003e - grid.411545.0\u003c/h4\u003eLinks:\u003cli\u003eKing Saud University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.452562.2", "label": "King Abdulaziz City for Science and Technology", "shape": "dot", "title": "\u003ch4\u003eKing Abdulaziz City for Science and Technology\u003cbr\u003eRiyadh, Saudi Arabia\u003cbr\u003e - grid.452562.2\u003c/h4\u003eLinks:\u003cli\u003eKing Saud University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.1003.2", "label": "University of Queensland", "shape": "dot", "title": "\u003ch4\u003eUniversity of Queensland\u003cbr\u003eBrisbane, Australia\u003cbr\u003e - grid.1003.2\u003c/h4\u003eLinks:\u003cli\u003eKing Saud University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.145695.a", "label": "Chang Gung University", "shape": "dot", "title": "\u003ch4\u003eChang Gung University\u003cbr\u003eTaoyuan City, Taiwan\u003cbr\u003e - grid.145695.a\u003c/h4\u003eLinks:\u003cli\u003eKing Saud University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.21941.3f", "label": "National Institute for Materials Science", "shape": "dot", "title": "\u003ch4\u003eNational Institute for Materials Science\u003cbr\u003eTsukuba, Japan\u003cbr\u003e - grid.21941.3f\u003c/h4\u003eLinks:\u003cli\u003eKing Saud University", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.411677.2", "label": "Bharathiar University", "shape": "dot", "title": "\u003ch4\u003eBharathiar University\u003cbr\u003eCoimbatore, India\u003cbr\u003e - grid.411677.2\u003c/h4\u003eLinks:\u003cli\u003eKing Saud University", "value": 1}]);
+ edges = new vis.DataSet([{"arrows": "none", "from": "grid.412125.1", "label": 106, "to": "grid.261112.7", "value": 0.16232771822358347}, {"arrows": "none", "from": "grid.412125.1", "label": 98, "to": "grid.38142.3c", "value": 0.15007656967840735}, {"arrows": "none", "from": "grid.412125.1", "label": 73, "to": "grid.116068.8", "value": 0.11179173047473201}, {"arrows": "none", "from": "grid.412125.1", "label": 59, "to": "grid.16753.36", "value": 0.0903522205206738}, {"arrows": "none", "from": "grid.412125.1", "label": 46, "to": "grid.411340.3", "value": 0.07044410413476264}, {"arrows": "none", "from": "grid.412125.1", "label": 46, "to": "grid.412621.2", "value": 0.07044410413476264}, {"arrows": "none", "from": "grid.412125.1", "label": 40, "to": "grid.411818.5", "value": 0.06125574272588055}, {"arrows": "none", "from": "grid.412125.1", "label": 40, "to": "grid.62560.37", "value": 0.06125574272588055}, {"arrows": "none", "from": "grid.412125.1", "label": 39, "to": "grid.33003.33", "value": 0.05972434915773354}, {"arrows": "none", "from": "grid.412125.1", "label": 39, "to": "grid.56302.32", "value": 0.05972434915773354}, {"arrows": "none", "from": "grid.261112.7", "label": 65, "to": "grid.38142.3c", "value": 0.0995405819295559}, {"arrows": "none", "from": "grid.261112.7", "label": 56, "to": "grid.17089.37", "value": 0.08575803981623277}, {"arrows": "none", "from": "grid.261112.7", "label": 54, "to": "grid.116068.8", "value": 0.08269525267993874}, {"arrows": "none", "from": "grid.261112.7", "label": 29, "to": "grid.32224.35", "value": 0.0444104134762634}, {"arrows": "none", "from": "grid.261112.7", "label": 21, "to": "grid.40263.33", "value": 0.03215926493108729}, {"arrows": "none", "from": "grid.261112.7", "label": 19, "to": "grid.62560.37", "value": 0.02909647779479326}, {"arrows": "none", "from": "grid.261112.7", "label": 17, "to": "grid.225262.3", "value": 0.026033690658499236}, {"arrows": "none", "from": "grid.261112.7", "label": 15, "to": "grid.5808.5", "value": 0.022970903522205207}, {"arrows": "none", "from": "grid.261112.7", "label": 13, "to": "grid.21940.3e", "value": 0.019908116385911178}, {"arrows": "none", "from": "grid.38142.3c", "label": 653, "to": "grid.116068.8", "value": 1.0}, {"arrows": "none", "from": "grid.38142.3c", "label": 562, "to": "grid.32224.35", "value": 0.8606431852986217}, {"arrows": "none", "from": "grid.38142.3c", "label": 491, "to": "grid.62560.37", "value": 0.7519142419601837}, {"arrows": "none", "from": "grid.38142.3c", "label": 135, "to": "grid.413735.7", "value": 0.20673813169984687}, {"arrows": "none", "from": "grid.38142.3c", "label": 129, "to": "grid.65499.37", "value": 0.19754977029096477}, {"arrows": "none", "from": "grid.38142.3c", "label": 107, "to": "grid.239395.7", "value": 0.1638591117917305}, {"arrows": "none", "from": "grid.38142.3c", "label": 106, "to": "grid.516087.d", "value": 0.16232771822358347}, {"arrows": "none", "from": "grid.38142.3c", "label": 82, "to": "grid.2515.3", "value": 0.12557427258805512}, {"arrows": "none", "from": "grid.38142.3c", "label": 72, "to": "grid.168010.e", "value": 0.11026033690658499}, {"arrows": "none", "from": "grid.116068.8", "label": 210, "to": "grid.62560.37", "value": 0.3215926493108729}, {"arrows": "none", "from": "grid.116068.8", "label": 191, "to": "grid.516087.d", "value": 0.29249617151607965}, {"arrows": "none", "from": "grid.116068.8", "label": 155, "to": "grid.4280.e", "value": 0.23736600306278713}, {"arrows": "none", "from": "grid.116068.8", "label": 128, "to": "grid.429485.6", "value": 0.19601837672281777}, {"arrows": "none", "from": "grid.116068.8", "label": 112, "to": "grid.512167.6", "value": 0.17151607963246554}, {"arrows": "none", "from": "grid.116068.8", "label": 96, "to": "grid.418830.6", "value": 0.14701378254211334}, {"arrows": "none", "from": "grid.116068.8", "label": 94, "to": "grid.32224.35", "value": 0.1439509954058193}, {"arrows": "none", "from": "grid.116068.8", "label": 89, "to": "grid.59025.3b", "value": 0.1362940275650842}, {"arrows": "none", "from": "grid.116068.8", "label": 75, "to": "grid.168010.e", "value": 0.11485451761102604}, {"arrows": "none", "from": "grid.16753.36", "label": 249, "to": "grid.187073.a", "value": 0.38131699846860645}, {"arrows": "none", "from": "grid.16753.36", "label": 149, "to": "grid.35403.31", "value": 0.22817764165390506}, {"arrows": "none", "from": "grid.16753.36", "label": 86, "to": "grid.516096.d", "value": 0.13169984686064318}, {"arrows": "none", "from": "grid.16753.36", "label": 55, "to": "grid.12527.33", "value": 0.08422664624808576}, {"arrows": "none", "from": "grid.16753.36", "label": 53, "to": "grid.169077.e", "value": 0.08116385911179173}, {"arrows": "none", "from": "grid.16753.36", "label": 52, "to": "grid.19006.3e", "value": 0.07963246554364471}, {"arrows": "none", "from": "grid.16753.36", "label": 47, "to": "grid.170205.1", "value": 0.07197549770290965}, {"arrows": "none", "from": "grid.16753.36", "label": 46, "to": "grid.37172.30", "value": 0.07044410413476264}, {"arrows": "none", "from": "grid.16753.36", "label": 39, "to": "grid.116068.8", "value": 0.05972434915773354}, {"arrows": "none", "from": "grid.411340.3", "label": 61, "to": "grid.56302.32", "value": 0.09341500765696784}, {"arrows": "none", "from": "grid.411340.3", "label": 15, "to": "grid.466808.4", "value": 0.022970903522205207}, {"arrows": "none", "from": "grid.411340.3", "label": 10, "to": "grid.412135.0", "value": 0.015313935681470138}, {"arrows": "none", "from": "grid.411340.3", "label": 10, "to": "grid.417641.1", "value": 0.015313935681470138}, {"arrows": "none", "from": "grid.411340.3", "label": 9, "to": "grid.419701.a", "value": 0.013782542113323124}, {"arrows": "none", "from": "grid.411340.3", "label": 8, "to": "grid.411723.2", "value": 0.01225114854517611}, {"arrows": "none", "from": "grid.411340.3", "label": 7, "to": "grid.410877.d", "value": 0.010719754977029096}, {"arrows": "none", "from": "grid.411340.3", "label": 6, "to": "grid.10706.30", "value": 0.009188361408882083}, {"arrows": "none", "from": "grid.411340.3", "label": 6, "to": "grid.411214.3", "value": 0.009188361408882083}, {"arrows": "none", "from": "grid.412621.2", "label": 39, "to": "grid.418920.6", "value": 0.05972434915773354}, {"arrows": "none", "from": "grid.412621.2", "label": 35, "to": "grid.440530.6", "value": 0.05359877488514548}, {"arrows": "none", "from": "grid.412621.2", "label": 27, "to": "grid.466924.b", "value": 0.04134762633996937}, {"arrows": "none", "from": "grid.412621.2", "label": 18, "to": "grid.412117.0", "value": 0.027565084226646247}, {"arrows": "none", "from": "grid.412621.2", "label": 17, "to": "grid.411727.6", "value": 0.026033690658499236}, {"arrows": "none", "from": "grid.412621.2", "label": 14, "to": "grid.412782.a", "value": 0.021439509954058193}, {"arrows": "none", "from": "grid.412621.2", "label": 13, "to": "grid.420113.5", "value": 0.019908116385911178}, {"arrows": "none", "from": "grid.412621.2", "label": 11, "to": "grid.10347.31", "value": 0.016845329249617153}, {"arrows": "none", "from": "grid.412621.2", "label": 11, "to": "grid.412135.0", "value": 0.016845329249617153}, {"arrows": "none", "from": "grid.411818.5", "label": 35, "to": "grid.419701.a", "value": 0.05359877488514548}, {"arrows": "none", "from": "grid.411818.5", "label": 16, "to": "grid.56302.32", "value": 0.02450229709035222}, {"arrows": "none", "from": "grid.411818.5", "label": 15, "to": "grid.417967.a", "value": 0.022970903522205207}, {"arrows": "none", "from": "grid.411818.5", "label": 9, "to": "grid.8195.5", "value": 0.013782542113323124}, {"arrows": "none", "from": "grid.411818.5", "label": 8, "to": "grid.262671.6", "value": 0.01225114854517611}, {"arrows": "none", "from": "grid.411818.5", "label": 7, "to": "grid.410877.d", "value": 0.010719754977029096}, {"arrows": "none", "from": "grid.411818.5", "label": 7, "to": "grid.411529.a", "value": 0.010719754977029096}, {"arrows": "none", "from": "grid.411818.5", "label": 7, "to": "grid.444644.2", "value": 0.010719754977029096}, {"arrows": "none", "from": "grid.411818.5", "label": 6, "to": "grid.411340.3", "value": 0.009188361408882083}, {"arrows": "none", "from": "grid.62560.37", "label": 53, "to": "grid.32224.35", "value": 0.08116385911179173}, {"arrows": "none", "from": "grid.62560.37", "label": 52, "to": "grid.516087.d", "value": 0.07963246554364471}, {"arrows": "none", "from": "grid.62560.37", "label": 36, "to": "grid.413735.7", "value": 0.055130168453292494}, {"arrows": "none", "from": "grid.62560.37", "label": 34, "to": "grid.189504.1", "value": 0.05206738131699847}, {"arrows": "none", "from": "grid.62560.37", "label": 31, "to": "grid.65499.37", "value": 0.04747320061255743}, {"arrows": "none", "from": "grid.62560.37", "label": 18, "to": "grid.168010.e", "value": 0.027565084226646247}, {"arrows": "none", "from": "grid.33003.33", "label": 18, "to": "grid.411320.5", "value": 0.027565084226646247}, {"arrows": "none", "from": "grid.33003.33", "label": 14, "to": "grid.5491.9", "value": 0.021439509954058193}, {"arrows": "none", "from": "grid.33003.33", "label": 11, "to": "grid.29980.3a", "value": 0.016845329249617153}, {"arrows": "none", "from": "grid.33003.33", "label": 10, "to": "grid.56302.32", "value": 0.015313935681470138}, {"arrows": "none", "from": "grid.33003.33", "label": 8, "to": "grid.412895.3", "value": 0.01225114854517611}, {"arrows": "none", "from": "grid.33003.33", "label": 8, "to": "grid.440760.1", "value": 0.01225114854517611}, {"arrows": "none", "from": "grid.33003.33", "label": 6, "to": "grid.419725.c", "value": 0.009188361408882083}, {"arrows": "none", "from": "grid.33003.33", "label": 5, "to": "grid.7269.a", "value": 0.007656967840735069}, {"arrows": "none", "from": "grid.33003.33", "label": 5, "to": "grid.8905.4", "value": 0.007656967840735069}, {"arrows": "none", "from": "grid.56302.32", "label": 59, "to": "grid.4280.e", "value": 0.0903522205206738}, {"arrows": "none", "from": "grid.56302.32", "label": 54, "to": "grid.411545.0", "value": 0.08269525267993874}, {"arrows": "none", "from": "grid.56302.32", "label": 43, "to": "grid.419725.c", "value": 0.06584992343032159}, {"arrows": "none", "from": "grid.56302.32", "label": 37, "to": "grid.452562.2", "value": 0.05666156202143951}, {"arrows": "none", "from": "grid.56302.32", "label": 35, "to": "grid.1003.2", "value": 0.05359877488514548}, {"arrows": "none", "from": "grid.56302.32", "label": 31, "to": "grid.145695.a", "value": 0.04747320061255743}, {"arrows": "none", "from": "grid.56302.32", "label": 31, "to": "grid.21941.3f", "value": 0.04747320061255743}, {"arrows": "none", "from": "grid.56302.32", "label": 31, "to": "grid.411677.2", "value": 0.04747320061255743}]);
nodeColors = {};
allNodes = nodes.get({ returnType: "Object" });
diff --git a/cookbooks/8-organizations/network_grid.412125.1_Government.html b/cookbooks/8-organizations/network_grid.412125.1_Government.html
index 1583e2fc..54789a1f 100644
--- a/cookbooks/8-organizations/network_grid.412125.1_Government.html
+++ b/cookbooks/8-organizations/network_grid.412125.1_Government.html
@@ -267,8 +267,6 @@
-
-
@@ -277,15 +275,13 @@
-
+
-
+
-
-
-
+
@@ -339,8 +335,8 @@
// parsing and collecting nodes and edges from the python
- nodes = new vis.DataSet([{"borderWidthSelected": 5, "color": "rgb(0, 147, 146)", "id": "grid.412125.1", "label": "King Abdulaziz University", "shape": "dot", "title": "\u003ch4\u003eKing Abdulaziz University\u003cbr\u003eJeddah, Saudi Arabia\u003cbr\u003e - grid.412125.1\u003c/h4\u003eLinks:\u003cli\u003eAustralian Nuclear Science and Technology Organisation\u003c/li\u003e\u003cli\u003eJapan Atomic Energy Agency\u003c/li\u003e\u003cli\u003eCouncil for Scientific and Industrial Research\u003c/li\u003e\u003cli\u003eChinese Academy of Sciences\u003c/li\u003e\u003cli\u003eScience and Technology Facilities Council", "value": 3}, {"borderWidthSelected": 5, "color": "rgb(156, 203, 134)", "id": "grid.7327.1", "label": "Council for Scientific and Industrial Research", "shape": "dot", "title": "\u003ch4\u003eCouncil for Scientific and Industrial Research\u003cbr\u003ePretoria, South Africa\u003cbr\u003e - grid.7327.1\u003c/h4\u003eLinks:\u003cli\u003eDepartment of Science and Technology\u003c/li\u003e\u003cli\u003eNational Research Foundation\u003c/li\u003e\u003cli\u003eSouth African Medical Research Council\u003c/li\u003e\u003cli\u003eKing Abdulaziz University", "value": 2}, {"borderWidthSelected": 5, "color": "rgb(156, 203, 134)", "id": "grid.9227.e", "label": "Chinese Academy of Sciences", "shape": "dot", "title": "\u003ch4\u003eChinese Academy of Sciences\u003cbr\u003eBeijing, China\u003cbr\u003e - grid.9227.e\u003c/h4\u003eLinks:\u003cli\u003eKing Abdulaziz University", "value": 2}, {"borderWidthSelected": 5, "color": "rgb(156, 203, 134)", "id": "grid.20256.33", "label": "Japan Atomic Energy Agency", "shape": "dot", "title": "\u003ch4\u003eJapan Atomic Energy Agency\u003cbr\u003eT\u014dkai-mura, Japan\u003cbr\u003e - grid.20256.33\u003c/h4\u003eLinks:\u003cli\u003eNational Institute of Advanced Industrial Science and Technology\u003c/li\u003e\u003cli\u003eKing Abdulaziz University\u003c/li\u003e\u003cli\u003eJapan Science and Technology Agency", "value": 2}, {"borderWidthSelected": 5, "color": "rgb(156, 203, 134)", "id": "grid.1089.0", "label": "Australian Nuclear Science and Technology Organisation", "shape": "dot", "title": "\u003ch4\u003eAustralian Nuclear Science and Technology Organisation\u003cbr\u003eSydney, Australia\u003cbr\u003e - grid.1089.0\u003c/h4\u003eLinks:\u003cli\u003eCommonwealth Scientific and Industrial Research Organisation\u003c/li\u003e\u003cli\u003eNational Institute of Standards and Technology\u003c/li\u003e\u003cli\u003eKing Abdulaziz University\u003c/li\u003e\u003cli\u003eJapan Science and Technology Agency", "value": 2}, {"borderWidthSelected": 5, "color": "rgb(156, 203, 134)", "id": "grid.14467.30", "label": "Science and Technology Facilities Council", "shape": "dot", "title": "\u003ch4\u003eScience and Technology Facilities Council\u003cbr\u003eSwindon, United Kingdom\u003cbr\u003e - grid.14467.30\u003c/h4\u003eLinks:\u003cli\u003eKing Abdulaziz University", "value": 2}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.424109.a", "label": "Department of Science and Technology", "shape": "dot", "title": "\u003ch4\u003eDepartment of Science and Technology\u003cbr\u003ePretoria, South Africa\u003cbr\u003e - grid.424109.a\u003c/h4\u003eLinks:\u003cli\u003eCouncil for Scientific and Industrial Research", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.425534.1", "label": "National Research Foundation", "shape": "dot", "title": "\u003ch4\u003eNational Research Foundation\u003cbr\u003ePretoria, South Africa\u003cbr\u003e - grid.425534.1\u003c/h4\u003eLinks:\u003cli\u003eCouncil for Scientific and Industrial Research", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.415021.3", "label": "South African Medical Research Council", "shape": "dot", "title": "\u003ch4\u003eSouth African Medical Research Council\u003cbr\u003eCape Town, South Africa\u003cbr\u003e - grid.415021.3\u003c/h4\u003eLinks:\u003cli\u003eCouncil for Scientific and Industrial Research", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.208504.b", "label": "National Institute of Advanced Industrial Science and Technology", "shape": "dot", "title": "\u003ch4\u003eNational Institute of Advanced Industrial Science and Technology\u003cbr\u003eTsukuba, Japan\u003cbr\u003e - grid.208504.b\u003c/h4\u003eLinks:\u003cli\u003eJapan Atomic Energy Agency", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.419082.6", "label": "Japan Science and Technology Agency", "shape": "dot", "title": "\u003ch4\u003eJapan Science and Technology Agency\u003cbr\u003eTokyo, Japan\u003cbr\u003e - grid.419082.6\u003c/h4\u003eLinks:\u003cli\u003eJapan Atomic Energy Agency\u003c/li\u003e\u003cli\u003eAustralian Nuclear Science and Technology Organisation", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.94225.38", "label": "National Institute of Standards and Technology", "shape": "dot", "title": "\u003ch4\u003eNational Institute of Standards and Technology\u003cbr\u003eGaithersburg, United States\u003cbr\u003e - grid.94225.38\u003c/h4\u003eLinks:\u003cli\u003eAustralian Nuclear Science and Technology Organisation", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.1016.6", "label": "Commonwealth Scientific and Industrial Research Organisation", "shape": "dot", "title": "\u003ch4\u003eCommonwealth Scientific and Industrial Research Organisation\u003cbr\u003eCanberra, Australia\u003cbr\u003e - grid.1016.6\u003c/h4\u003eLinks:\u003cli\u003eAustralian Nuclear Science and Technology Organisation", "value": 1}]);
- edges = new vis.DataSet([{"arrows": "none", "from": "grid.412125.1", "label": 4, "to": "grid.7327.1", "value": 0.16}, {"arrows": "none", "from": "grid.412125.1", "label": 3, "to": "grid.9227.e", "value": 0.12}, {"arrows": "none", "from": "grid.412125.1", "label": 2, "to": "grid.20256.33", "value": 0.08}, {"arrows": "none", "from": "grid.412125.1", "label": 1, "to": "grid.1089.0", "value": 0.04}, {"arrows": "none", "from": "grid.412125.1", "label": 1, "to": "grid.14467.30", "value": 0.04}, {"arrows": "none", "from": "grid.7327.1", "label": 3, "to": "grid.424109.a", "value": 0.12}, {"arrows": "none", "from": "grid.7327.1", "label": 3, "to": "grid.425534.1", "value": 0.12}, {"arrows": "none", "from": "grid.7327.1", "label": 2, "to": "grid.415021.3", "value": 0.08}, {"arrows": "none", "from": "grid.20256.33", "label": 25, "to": "grid.208504.b", "value": 1.0}, {"arrows": "none", "from": "grid.20256.33", "label": 24, "to": "grid.419082.6", "value": 0.96}, {"arrows": "none", "from": "grid.1089.0", "label": 6, "to": "grid.94225.38", "value": 0.24}, {"arrows": "none", "from": "grid.1089.0", "label": 4, "to": "grid.1016.6", "value": 0.16}, {"arrows": "none", "from": "grid.1089.0", "label": 3, "to": "grid.419082.6", "value": 0.12}]);
+ nodes = new vis.DataSet([{"borderWidthSelected": 5, "color": "rgb(0, 147, 146)", "id": "grid.412125.1", "label": "King Abdulaziz University", "shape": "dot", "title": "\u003ch4\u003eKing Abdulaziz University\u003cbr\u003eJeddah, Saudi Arabia\u003cbr\u003e - grid.412125.1\u003c/h4\u003eLinks:\u003cli\u003eCouncil for Scientific and Industrial Research\u003c/li\u003e\u003cli\u003eAustralian Nuclear Science and Technology Organisation\u003c/li\u003e\u003cli\u003eChinese Academy of Sciences\u003c/li\u003e\u003cli\u003eScience and Technology Facilities Council", "value": 3}, {"borderWidthSelected": 5, "color": "rgb(156, 203, 134)", "id": "grid.7327.1", "label": "Council for Scientific and Industrial Research", "shape": "dot", "title": "\u003ch4\u003eCouncil for Scientific and Industrial Research\u003cbr\u003ePretoria, South Africa\u003cbr\u003e - grid.7327.1\u003c/h4\u003eLinks:\u003cli\u003eNational Research Foundation\u003c/li\u003e\u003cli\u003eDepartment of Science and Innovation\u003c/li\u003e\u003cli\u003eKing Abdulaziz University", "value": 2}, {"borderWidthSelected": 5, "color": "rgb(156, 203, 134)", "id": "grid.9227.e", "label": "Chinese Academy of Sciences", "shape": "dot", "title": "\u003ch4\u003eChinese Academy of Sciences\u003cbr\u003eBeijing, China\u003cbr\u003e - grid.9227.e\u003c/h4\u003eLinks:\u003cli\u003eKing Abdulaziz University", "value": 2}, {"borderWidthSelected": 5, "color": "rgb(156, 203, 134)", "id": "grid.1089.0", "label": "Australian Nuclear Science and Technology Organisation", "shape": "dot", "title": "\u003ch4\u003eAustralian Nuclear Science and Technology Organisation\u003cbr\u003eSydney, Australia\u003cbr\u003e - grid.1089.0\u003c/h4\u003eLinks:\u003cli\u003eJapan Science and Technology Agency\u003c/li\u003e\u003cli\u003eNational Institute of Standards and Technology\u003c/li\u003e\u003cli\u003eCommonwealth Scientific and Industrial Research Organisation\u003c/li\u003e\u003cli\u003eKing Abdulaziz University", "value": 2}, {"borderWidthSelected": 5, "color": "rgb(156, 203, 134)", "id": "grid.14467.30", "label": "Science and Technology Facilities Council", "shape": "dot", "title": "\u003ch4\u003eScience and Technology Facilities Council\u003cbr\u003eSwindon, United Kingdom\u003cbr\u003e - grid.14467.30\u003c/h4\u003eLinks:\u003cli\u003eCommissariat \u00e0 l\u0027\u00c9nergie Atomique et Aux \u00c9nergies Alternatives\u003c/li\u003e\u003cli\u003eKing Abdulaziz University", "value": 2}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.424109.a", "label": "Department of Science and Innovation", "shape": "dot", "title": "\u003ch4\u003eDepartment of Science and Innovation\u003cbr\u003ePretoria, South Africa\u003cbr\u003e - grid.424109.a\u003c/h4\u003eLinks:\u003cli\u003eCouncil for Scientific and Industrial Research", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.425534.1", "label": "National Research Foundation", "shape": "dot", "title": "\u003ch4\u003eNational Research Foundation\u003cbr\u003ePretoria, South Africa\u003cbr\u003e - grid.425534.1\u003c/h4\u003eLinks:\u003cli\u003eCouncil for Scientific and Industrial Research", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.94225.38", "label": "National Institute of Standards and Technology", "shape": "dot", "title": "\u003ch4\u003eNational Institute of Standards and Technology\u003cbr\u003eGaithersburg, United States\u003cbr\u003e - grid.94225.38\u003c/h4\u003eLinks:\u003cli\u003eAustralian Nuclear Science and Technology Organisation", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.1016.6", "label": "Commonwealth Scientific and Industrial Research Organisation", "shape": "dot", "title": "\u003ch4\u003eCommonwealth Scientific and Industrial Research Organisation\u003cbr\u003eCanberra, Australia\u003cbr\u003e - grid.1016.6\u003c/h4\u003eLinks:\u003cli\u003eAustralian Nuclear Science and Technology Organisation", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.419082.6", "label": "Japan Science and Technology Agency", "shape": "dot", "title": "\u003ch4\u003eJapan Science and Technology Agency\u003cbr\u003eTokyo, Japan\u003cbr\u003e - grid.419082.6\u003c/h4\u003eLinks:\u003cli\u003eAustralian Nuclear Science and Technology Organisation", "value": 1}, {"borderWidthSelected": 5, "color": "rgb(238, 180, 121)", "id": "grid.5583.b", "label": "Commissariat \u00e0 l\u0027\u00c9nergie Atomique et Aux \u00c9nergies Alternatives", "shape": "dot", "title": "\u003ch4\u003eCommissariat \u00e0 l\u0027\u00c9nergie Atomique et Aux \u00c9nergies Alternatives\u003cbr\u003eParis, France\u003cbr\u003e - grid.5583.b\u003c/h4\u003eLinks:\u003cli\u003eScience and Technology Facilities Council", "value": 1}]);
+ edges = new vis.DataSet([{"arrows": "none", "from": "grid.412125.1", "label": 4, "to": "grid.7327.1", "value": 0.5714285714285714}, {"arrows": "none", "from": "grid.412125.1", "label": 3, "to": "grid.9227.e", "value": 0.42857142857142855}, {"arrows": "none", "from": "grid.412125.1", "label": 1, "to": "grid.1089.0", "value": 0.14285714285714285}, {"arrows": "none", "from": "grid.412125.1", "label": 1, "to": "grid.14467.30", "value": 0.14285714285714285}, {"arrows": "none", "from": "grid.7327.1", "label": 4, "to": "grid.424109.a", "value": 0.5714285714285714}, {"arrows": "none", "from": "grid.7327.1", "label": 3, "to": "grid.425534.1", "value": 0.42857142857142855}, {"arrows": "none", "from": "grid.1089.0", "label": 7, "to": "grid.94225.38", "value": 1.0}, {"arrows": "none", "from": "grid.1089.0", "label": 4, "to": "grid.1016.6", "value": 0.5714285714285714}, {"arrows": "none", "from": "grid.1089.0", "label": 3, "to": "grid.419082.6", "value": 0.42857142857142855}, {"arrows": "none", "from": "grid.14467.30", "label": 1, "to": "grid.5583.b", "value": 0.14285714285714285}]);
nodeColors = {};
allNodes = nodes.get({ returnType: "Object" });
diff --git a/docs/.doctrees/cookbooks/1-getting-started/0-Verifying-your-connection.doctree b/docs/.doctrees/cookbooks/1-getting-started/0-Verifying-your-connection.doctree
index 58390c63..6a039920 100644
Binary files a/docs/.doctrees/cookbooks/1-getting-started/0-Verifying-your-connection.doctree and b/docs/.doctrees/cookbooks/1-getting-started/0-Verifying-your-connection.doctree differ
diff --git a/docs/.doctrees/cookbooks/1-getting-started/1-Using-the-Dimcli-library-to-query-the-API.doctree b/docs/.doctrees/cookbooks/1-getting-started/1-Using-the-Dimcli-library-to-query-the-API.doctree
index ac251fa6..eb56c93d 100644
Binary files a/docs/.doctrees/cookbooks/1-getting-started/1-Using-the-Dimcli-library-to-query-the-API.doctree and b/docs/.doctrees/cookbooks/1-getting-started/1-Using-the-Dimcli-library-to-query-the-API.doctree differ
diff --git a/docs/.doctrees/cookbooks/1-getting-started/2-Understanding-query-results.doctree b/docs/.doctrees/cookbooks/1-getting-started/2-Understanding-query-results.doctree
index 8095b9a5..1cfd6d0b 100644
Binary files a/docs/.doctrees/cookbooks/1-getting-started/2-Understanding-query-results.doctree and b/docs/.doctrees/cookbooks/1-getting-started/2-Understanding-query-results.doctree differ
diff --git a/docs/.doctrees/cookbooks/1-getting-started/3-Working-with-dataframes.doctree b/docs/.doctrees/cookbooks/1-getting-started/3-Working-with-dataframes.doctree
index 529ed17f..65be83c1 100644
Binary files a/docs/.doctrees/cookbooks/1-getting-started/3-Working-with-dataframes.doctree and b/docs/.doctrees/cookbooks/1-getting-started/3-Working-with-dataframes.doctree differ
diff --git a/docs/.doctrees/cookbooks/1-getting-started/4-Dimcli-magic-commands.doctree b/docs/.doctrees/cookbooks/1-getting-started/4-Dimcli-magic-commands.doctree
index 208e7882..a8cdd1f8 100644
Binary files a/docs/.doctrees/cookbooks/1-getting-started/4-Dimcli-magic-commands.doctree and b/docs/.doctrees/cookbooks/1-getting-started/4-Dimcli-magic-commands.doctree differ
diff --git a/docs/.doctrees/cookbooks/1-getting-started/5-Deep-dive-DSL-language.doctree b/docs/.doctrees/cookbooks/1-getting-started/5-Deep-dive-DSL-language.doctree
index 3f877274..0c1909a7 100644
Binary files a/docs/.doctrees/cookbooks/1-getting-started/5-Deep-dive-DSL-language.doctree and b/docs/.doctrees/cookbooks/1-getting-started/5-Deep-dive-DSL-language.doctree differ
diff --git a/docs/.doctrees/cookbooks/1-getting-started/6-Working-with-lists.doctree b/docs/.doctrees/cookbooks/1-getting-started/6-Working-with-lists.doctree
index 4beb7300..c8f41951 100644
Binary files a/docs/.doctrees/cookbooks/1-getting-started/6-Working-with-lists.doctree and b/docs/.doctrees/cookbooks/1-getting-started/6-Working-with-lists.doctree differ
diff --git a/docs/.doctrees/cookbooks/1-getting-started/7-Working-with-concepts.doctree b/docs/.doctrees/cookbooks/1-getting-started/7-Working-with-concepts.doctree
index a234fb3c..d71df64a 100644
Binary files a/docs/.doctrees/cookbooks/1-getting-started/7-Working-with-concepts.doctree and b/docs/.doctrees/cookbooks/1-getting-started/7-Working-with-concepts.doctree differ
diff --git a/docs/.doctrees/cookbooks/10-misc/1-report-content-volumes-per-year.doctree b/docs/.doctrees/cookbooks/10-misc/1-report-content-volumes-per-year.doctree
index ef98297d..24823841 100644
Binary files a/docs/.doctrees/cookbooks/10-misc/1-report-content-volumes-per-year.doctree and b/docs/.doctrees/cookbooks/10-misc/1-report-content-volumes-per-year.doctree differ
diff --git a/docs/.doctrees/cookbooks/10-misc/2-enrich-text-with-for-codes.doctree b/docs/.doctrees/cookbooks/10-misc/2-enrich-text-with-for-codes.doctree
index 2d95a074..b6123a6f 100644
Binary files a/docs/.doctrees/cookbooks/10-misc/2-enrich-text-with-for-codes.doctree and b/docs/.doctrees/cookbooks/10-misc/2-enrich-text-with-for-codes.doctree differ
diff --git a/docs/.doctrees/cookbooks/2-publications/Citation-Analysis.doctree b/docs/.doctrees/cookbooks/2-publications/Citation-Analysis.doctree
index cf76cbcf..273eda57 100644
Binary files a/docs/.doctrees/cookbooks/2-publications/Citation-Analysis.doctree and b/docs/.doctrees/cookbooks/2-publications/Citation-Analysis.doctree differ
diff --git a/docs/.doctrees/cookbooks/2-publications/Concepts-network-graph.doctree b/docs/.doctrees/cookbooks/2-publications/Concepts-network-graph.doctree
index b9cf0e08..38776052 100644
Binary files a/docs/.doctrees/cookbooks/2-publications/Concepts-network-graph.doctree and b/docs/.doctrees/cookbooks/2-publications/Concepts-network-graph.doctree differ
diff --git a/docs/.doctrees/cookbooks/2-publications/Extracting-authors-order.doctree b/docs/.doctrees/cookbooks/2-publications/Extracting-authors-order.doctree
index dcf74814..e1993e64 100644
Binary files a/docs/.doctrees/cookbooks/2-publications/Extracting-authors-order.doctree and b/docs/.doctrees/cookbooks/2-publications/Extracting-authors-order.doctree differ
diff --git a/docs/.doctrees/cookbooks/2-publications/General-statistics.doctree b/docs/.doctrees/cookbooks/2-publications/General-statistics.doctree
index 33adf7cc..5f80698b 100644
Binary files a/docs/.doctrees/cookbooks/2-publications/General-statistics.doctree and b/docs/.doctrees/cookbooks/2-publications/General-statistics.doctree differ
diff --git a/docs/.doctrees/cookbooks/2-publications/Journal-Profile-1-Gathering-data.doctree b/docs/.doctrees/cookbooks/2-publications/Journal-Profile-1-Gathering-data.doctree
index cafa61ef..885e1dfb 100644
Binary files a/docs/.doctrees/cookbooks/2-publications/Journal-Profile-1-Gathering-data.doctree and b/docs/.doctrees/cookbooks/2-publications/Journal-Profile-1-Gathering-data.doctree differ
diff --git a/docs/.doctrees/cookbooks/2-publications/Journal-Profile-2-Researchers-Impact-Metrics.doctree b/docs/.doctrees/cookbooks/2-publications/Journal-Profile-2-Researchers-Impact-Metrics.doctree
index 3a5970fe..d3d32216 100644
Binary files a/docs/.doctrees/cookbooks/2-publications/Journal-Profile-2-Researchers-Impact-Metrics.doctree and b/docs/.doctrees/cookbooks/2-publications/Journal-Profile-2-Researchers-Impact-Metrics.doctree differ
diff --git a/docs/.doctrees/cookbooks/2-publications/Journal-Profile-3-Funding-of-Researchers.doctree b/docs/.doctrees/cookbooks/2-publications/Journal-Profile-3-Funding-of-Researchers.doctree
index 689b862a..7554660c 100644
Binary files a/docs/.doctrees/cookbooks/2-publications/Journal-Profile-3-Funding-of-Researchers.doctree and b/docs/.doctrees/cookbooks/2-publications/Journal-Profile-3-Funding-of-Researchers.doctree differ
diff --git a/docs/.doctrees/cookbooks/2-publications/Journal-Profile-4-Institutions.doctree b/docs/.doctrees/cookbooks/2-publications/Journal-Profile-4-Institutions.doctree
index 1383798f..0f371d34 100644
Binary files a/docs/.doctrees/cookbooks/2-publications/Journal-Profile-4-Institutions.doctree and b/docs/.doctrees/cookbooks/2-publications/Journal-Profile-4-Institutions.doctree differ
diff --git a/docs/.doctrees/cookbooks/2-publications/Journal-Profile-5-Competitive-Analysis.doctree b/docs/.doctrees/cookbooks/2-publications/Journal-Profile-5-Competitive-Analysis.doctree
index 20f810f0..7a456b77 100644
Binary files a/docs/.doctrees/cookbooks/2-publications/Journal-Profile-5-Competitive-Analysis.doctree and b/docs/.doctrees/cookbooks/2-publications/Journal-Profile-5-Competitive-Analysis.doctree differ
diff --git a/docs/.doctrees/cookbooks/2-publications/Rejected_Article_Tracker.doctree b/docs/.doctrees/cookbooks/2-publications/Rejected_Article_Tracker.doctree
new file mode 100644
index 00000000..c6246033
Binary files /dev/null and b/docs/.doctrees/cookbooks/2-publications/Rejected_Article_Tracker.doctree differ
diff --git a/docs/.doctrees/cookbooks/2-publications/Simple-topic-analysis.doctree b/docs/.doctrees/cookbooks/2-publications/Simple-topic-analysis.doctree
index 9c597272..62fbb6d0 100644
Binary files a/docs/.doctrees/cookbooks/2-publications/Simple-topic-analysis.doctree and b/docs/.doctrees/cookbooks/2-publications/Simple-topic-analysis.doctree differ
diff --git a/docs/.doctrees/cookbooks/2-publications/Which-Are-the-Journals-Cited-By-My-Organization.doctree b/docs/.doctrees/cookbooks/2-publications/Which-Are-the-Journals-Cited-By-My-Organization.doctree
index 880db5d1..a24dd39d 100644
Binary files a/docs/.doctrees/cookbooks/2-publications/Which-Are-the-Journals-Cited-By-My-Organization.doctree and b/docs/.doctrees/cookbooks/2-publications/Which-Are-the-Journals-Cited-By-My-Organization.doctree differ
diff --git a/docs/.doctrees/cookbooks/2-publications/Which-Are-the-Journals-Citing-My-Organization.doctree b/docs/.doctrees/cookbooks/2-publications/Which-Are-the-Journals-Citing-My-Organization.doctree
index 2fd5b091..3834bc2f 100644
Binary files a/docs/.doctrees/cookbooks/2-publications/Which-Are-the-Journals-Citing-My-Organization.doctree and b/docs/.doctrees/cookbooks/2-publications/Which-Are-the-Journals-Citing-My-Organization.doctree differ
diff --git a/docs/.doctrees/cookbooks/3-grants/1-grants-enrichment-matching-records-to-dimensions.doctree b/docs/.doctrees/cookbooks/3-grants/1-grants-enrichment-matching-records-to-dimensions.doctree
index d60d2c65..2e9b5479 100644
Binary files a/docs/.doctrees/cookbooks/3-grants/1-grants-enrichment-matching-records-to-dimensions.doctree and b/docs/.doctrees/cookbooks/3-grants/1-grants-enrichment-matching-records-to-dimensions.doctree differ
diff --git a/docs/.doctrees/cookbooks/3-grants/2-grants-enrichment-adding-publications-information.doctree b/docs/.doctrees/cookbooks/3-grants/2-grants-enrichment-adding-publications-information.doctree
index e3086c4d..e11bceec 100644
Binary files a/docs/.doctrees/cookbooks/3-grants/2-grants-enrichment-adding-publications-information.doctree and b/docs/.doctrees/cookbooks/3-grants/2-grants-enrichment-adding-publications-information.doctree differ
diff --git a/docs/.doctrees/cookbooks/3-grants/3-grants-enrichment-adding-patents-cltrials-information.doctree b/docs/.doctrees/cookbooks/3-grants/3-grants-enrichment-adding-patents-cltrials-information.doctree
index fff9c01f..5d6b0c9f 100644
Binary files a/docs/.doctrees/cookbooks/3-grants/3-grants-enrichment-adding-patents-cltrials-information.doctree and b/docs/.doctrees/cookbooks/3-grants/3-grants-enrichment-adding-patents-cltrials-information.doctree differ
diff --git a/docs/.doctrees/cookbooks/3-grants/4-grants-topic-analysis.doctree b/docs/.doctrees/cookbooks/3-grants/4-grants-topic-analysis.doctree
index 08e8c11b..9792014b 100644
Binary files a/docs/.doctrees/cookbooks/3-grants/4-grants-topic-analysis.doctree and b/docs/.doctrees/cookbooks/3-grants/4-grants-topic-analysis.doctree differ
diff --git a/docs/.doctrees/cookbooks/3-grants/5-grants-from-researchers.doctree b/docs/.doctrees/cookbooks/3-grants/5-grants-from-researchers.doctree
index dcaf0af1..5934d1be 100644
Binary files a/docs/.doctrees/cookbooks/3-grants/5-grants-from-researchers.doctree and b/docs/.doctrees/cookbooks/3-grants/5-grants-from-researchers.doctree differ
diff --git a/docs/.doctrees/cookbooks/4-clinical-trials/Clinical_Trials_by_Volume_of_Pubs.doctree b/docs/.doctrees/cookbooks/4-clinical-trials/Clinical_Trials_by_Volume_of_Pubs.doctree
index bb3c90ed..40abc068 100644
Binary files a/docs/.doctrees/cookbooks/4-clinical-trials/Clinical_Trials_by_Volume_of_Pubs.doctree and b/docs/.doctrees/cookbooks/4-clinical-trials/Clinical_Trials_by_Volume_of_Pubs.doctree differ
diff --git a/docs/.doctrees/cookbooks/5-patents/0-introducing-patents.doctree b/docs/.doctrees/cookbooks/5-patents/0-introducing-patents.doctree
index b5ce9d8f..f6588c53 100644
Binary files a/docs/.doctrees/cookbooks/5-patents/0-introducing-patents.doctree and b/docs/.doctrees/cookbooks/5-patents/0-introducing-patents.doctree differ
diff --git a/docs/.doctrees/cookbooks/5-patents/1-Patents-referencing-a-Research-Organization.doctree b/docs/.doctrees/cookbooks/5-patents/1-Patents-referencing-a-Research-Organization.doctree
index e74973bb..e031bda0 100644
Binary files a/docs/.doctrees/cookbooks/5-patents/1-Patents-referencing-a-Research-Organization.doctree and b/docs/.doctrees/cookbooks/5-patents/1-Patents-referencing-a-Research-Organization.doctree differ
diff --git a/docs/.doctrees/cookbooks/5-patents/2-Patent-Family-Citing-Publications.doctree b/docs/.doctrees/cookbooks/5-patents/2-Patent-Family-Citing-Publications.doctree
index 294c2e48..85cf532b 100644
Binary files a/docs/.doctrees/cookbooks/5-patents/2-Patent-Family-Citing-Publications.doctree and b/docs/.doctrees/cookbooks/5-patents/2-Patent-Family-Citing-Publications.doctree differ
diff --git a/docs/.doctrees/cookbooks/6-policy-documents/Policy_Documents_referencing_a_Research_Organization.doctree b/docs/.doctrees/cookbooks/6-policy-documents/Policy_Documents_referencing_a_Research_Organization.doctree
index 50ec2bd8..7427287d 100644
Binary files a/docs/.doctrees/cookbooks/6-policy-documents/Policy_Documents_referencing_a_Research_Organization.doctree and b/docs/.doctrees/cookbooks/6-policy-documents/Policy_Documents_referencing_a_Research_Organization.doctree differ
diff --git a/docs/.doctrees/cookbooks/7-researchers/Calculating-the-H-Index-of-a-researcher.doctree b/docs/.doctrees/cookbooks/7-researchers/Calculating-the-H-Index-of-a-researcher.doctree
index a9488511..7c1238f0 100644
Binary files a/docs/.doctrees/cookbooks/7-researchers/Calculating-the-H-Index-of-a-researcher.doctree and b/docs/.doctrees/cookbooks/7-researchers/Calculating-the-H-Index-of-a-researcher.doctree differ
diff --git a/docs/.doctrees/cookbooks/7-researchers/Experts-search-introduction.doctree b/docs/.doctrees/cookbooks/7-researchers/Experts-search-introduction.doctree
index a8f0816b..37637c54 100644
Binary files a/docs/.doctrees/cookbooks/7-researchers/Experts-search-introduction.doctree and b/docs/.doctrees/cookbooks/7-researchers/Experts-search-introduction.doctree differ
diff --git a/docs/.doctrees/cookbooks/7-researchers/Researchers-Search-tips-V2.doctree b/docs/.doctrees/cookbooks/7-researchers/Researchers-Search-tips-V2.doctree
index 1b8526a7..3b59ce25 100644
Binary files a/docs/.doctrees/cookbooks/7-researchers/Researchers-Search-tips-V2.doctree and b/docs/.doctrees/cookbooks/7-researchers/Researchers-Search-tips-V2.doctree differ
diff --git a/docs/.doctrees/cookbooks/7-researchers/funders-reviewers-identification-globally-and-among-panels.doctree b/docs/.doctrees/cookbooks/7-researchers/funders-reviewers-identification-globally-and-among-panels.doctree
index f163725c..7a78c83f 100644
Binary files a/docs/.doctrees/cookbooks/7-researchers/funders-reviewers-identification-globally-and-among-panels.doctree and b/docs/.doctrees/cookbooks/7-researchers/funders-reviewers-identification-globally-and-among-panels.doctree differ
diff --git a/docs/.doctrees/cookbooks/8-organizations/1-Organization-data-preview.doctree b/docs/.doctrees/cookbooks/8-organizations/1-Organization-data-preview.doctree
new file mode 100644
index 00000000..cd35b54b
Binary files /dev/null and b/docs/.doctrees/cookbooks/8-organizations/1-Organization-data-preview.doctree differ
diff --git a/docs/.doctrees/cookbooks/8-organizations/2-Industry-Collaboration.doctree b/docs/.doctrees/cookbooks/8-organizations/2-Industry-Collaboration.doctree
index 317b3a22..bfaa709a 100644
Binary files a/docs/.doctrees/cookbooks/8-organizations/2-Industry-Collaboration.doctree and b/docs/.doctrees/cookbooks/8-organizations/2-Industry-Collaboration.doctree differ
diff --git a/docs/.doctrees/cookbooks/8-organizations/3-Organizations-Collaboration-Network.doctree b/docs/.doctrees/cookbooks/8-organizations/3-Organizations-Collaboration-Network.doctree
index c97b8362..300d712b 100644
Binary files a/docs/.doctrees/cookbooks/8-organizations/3-Organizations-Collaboration-Network.doctree and b/docs/.doctrees/cookbooks/8-organizations/3-Organizations-Collaboration-Network.doctree differ
diff --git a/docs/.doctrees/cookbooks/8-organizations/4-international-collaboration-by-year.doctree b/docs/.doctrees/cookbooks/8-organizations/4-international-collaboration-by-year.doctree
index 41933d6f..69b48e2c 100644
Binary files a/docs/.doctrees/cookbooks/8-organizations/4-international-collaboration-by-year.doctree and b/docs/.doctrees/cookbooks/8-organizations/4-international-collaboration-by-year.doctree differ
diff --git a/docs/.doctrees/cookbooks/8-organizations/5-mapping-organization-ids-to-organization-data.doctree b/docs/.doctrees/cookbooks/8-organizations/5-mapping-organization-ids-to-organization-data.doctree
new file mode 100644
index 00000000..d9bb8795
Binary files /dev/null and b/docs/.doctrees/cookbooks/8-organizations/5-mapping-organization-ids-to-organization-data.doctree differ
diff --git a/docs/.doctrees/cookbooks/8-organizations/6-organization-groups.doctree b/docs/.doctrees/cookbooks/8-organizations/6-organization-groups.doctree
index 8112f826..e54bad30 100644
Binary files a/docs/.doctrees/cookbooks/8-organizations/6-organization-groups.doctree and b/docs/.doctrees/cookbooks/8-organizations/6-organization-groups.doctree differ
diff --git a/docs/.doctrees/cookbooks/8-organizations/7-benchmarking-organizations.doctree b/docs/.doctrees/cookbooks/8-organizations/7-benchmarking-organizations.doctree
index 608dd1bc..299962ac 100644
Binary files a/docs/.doctrees/cookbooks/8-organizations/7-benchmarking-organizations.doctree and b/docs/.doctrees/cookbooks/8-organizations/7-benchmarking-organizations.doctree differ
diff --git a/docs/.doctrees/cookbooks/9-datasets/1-introducing-datasets.doctree b/docs/.doctrees/cookbooks/9-datasets/1-introducing-datasets.doctree
index f51dbca7..f1cb2363 100644
Binary files a/docs/.doctrees/cookbooks/9-datasets/1-introducing-datasets.doctree and b/docs/.doctrees/cookbooks/9-datasets/1-introducing-datasets.doctree differ
diff --git a/docs/.doctrees/environment.pickle b/docs/.doctrees/environment.pickle
index e67aa354..8ee8d95e 100644
Binary files a/docs/.doctrees/environment.pickle and b/docs/.doctrees/environment.pickle differ
diff --git a/docs/.doctrees/index.doctree b/docs/.doctrees/index.doctree
index da4d1792..5ff5402b 100644
Binary files a/docs/.doctrees/index.doctree and b/docs/.doctrees/index.doctree differ
diff --git a/docs/.doctrees/nbsphinx/cookbooks/2-publications/Rejected_Article_Tracker.ipynb b/docs/.doctrees/nbsphinx/cookbooks/2-publications/Rejected_Article_Tracker.ipynb
new file mode 100644
index 00000000..5ad1f5ad
--- /dev/null
+++ b/docs/.doctrees/nbsphinx/cookbooks/2-publications/Rejected_Article_Tracker.ipynb
@@ -0,0 +1,2105 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "_dmqbrsrX1Wm"
+ },
+ "source": [
+ "# Rejected Article tracker\n",
+ "\n",
+ "This Python notebook shows how publishers can use the [Dimensions Analytics API](https://www.dimensions.ai/dimensions-apis/) to identify whether articles they chose not to publish were ultimately published somewhere else.\n",
+ "\n",
+ "In this notebook we will:\n",
+ "1. Import a .csv file containing rejected articles\n",
+ "2. Search for publications similar to the rejected articles\n",
+ "4. Measure the strength of the matches and provide ideas for validation"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "uPAAo96vdohR",
+ "outputId": "98c0472c-3b92-4c14-b567-aa0a2d75491c"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "==\n",
+ "CHANGELOG\n",
+ "This notebook was last run on Jan 27, 2025\n",
+ "==\n"
+ ]
+ }
+ ],
+ "source": [
+ "import datetime\n",
+ "print(\"==\\nCHANGELOG\\nThis notebook was last run on %s\\n==\" % datetime.date.today().strftime('%b %d, %Y'))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "qX9CV_XkXVIZ"
+ },
+ "source": [
+ "## Prerequisites\n",
+ "\n",
+ "This notebook assumes you have installed the [Dimcli](https://pypi.org/project/dimcli/) library and are familiar with the ['Getting Started' tutorial](https://api-lab.dimensions.ai/cookbooks/1-getting-started/1-Using-the-Dimcli-library-to-query-the-API.html)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "ti0txhA9d10c",
+ "outputId": "a793c666-7d7f-410e-b2e9-1a952f8e5eb5"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m241.7/241.7 kB\u001b[0m \u001b[31m13.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m162.7/162.7 kB\u001b[0m \u001b[31m10.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.1/3.1 MB\u001b[0m \u001b[31m56.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m51.1/51.1 kB\u001b[0m \u001b[31m3.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.6/1.6 MB\u001b[0m \u001b[31m54.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25h Building wheel for pandasql (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
+ "==\n",
+ "Logging in..\n",
+ "API Key: ··········\n",
+ "\u001b[2mDimcli - Dimensions API Client (v1.4)\u001b[0m\n",
+ "\u001b[2mConnected to: - DSL v2.10\u001b[0m\n",
+ "\u001b[2mMethod: manual login\u001b[0m\n"
+ ]
+ }
+ ],
+ "source": [
+ "!pip install dimcli pandasql levenshtein -U --quiet\n",
+ "\n",
+ "import dimcli\n",
+ "from dimcli.utils import *\n",
+ "\n",
+ "import json, sys\n",
+ "import requests\n",
+ "import pandas as pd\n",
+ "import numpy as np\n",
+ "from pandasql import sqldf\n",
+ "import pandasql as ps\n",
+ "import plotly.express as px # plotly>=4.8.1\n",
+ "if not 'google.colab' in sys.modules:\n",
+ " # make js dependecies local / needed by html exports\n",
+ " from plotly.offline import init_notebook_mode\n",
+ " init_notebook_mode(connected=True)\n",
+ "#\n",
+ "pd.set_option('display.max_columns', None)\n",
+ "\n",
+ "print(\"==\\nLogging in..\")\n",
+ "# https://digital-science.github.io/dimcli/getting-started.html#authentication\n",
+ "ENDPOINT = \"https://app.dimensions.ai\"\n",
+ "if 'google.colab' in sys.modules:\n",
+ " import getpass\n",
+ " KEY = getpass.getpass(prompt='API Key: ')\n",
+ " dimcli.login(key=KEY, endpoint=ENDPOINT)\n",
+ "else:\n",
+ " KEY = \"\"\n",
+ " dimcli.login(key=KEY, endpoint=ENDPOINT)\n",
+ "dsl = dimcli.Dsl()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "ZAHoWkwhUzjy"
+ },
+ "source": [
+ "## 1. Get an example data set\n",
+ "\n",
+ "For this tutorial, we are going to use a sample data set of preprints and pretend that the preprints are articles we have rejected. This is a good proof of the concept of finding a similar article that has been published in a peer-reviewed journal: preprints often reappear published in journals and might have subtly different titles or abstracts.\n",
+ "\n",
+ "In this simplified example, we'll just use the author names and titles for matching and we'll add a unique (made up) submission ID, as real data is likely to have this. We'll use the preprint publishing date as our rejection date.\n",
+ "\n",
+ "Here is the query to get our example data set as a `pandas` data frame, and some code to make it look more like a data set of rejected articles. You don't need to understand this bit necessarily, assuming you will have you're own data you just need to know what the table looks like at the end (which will be shown)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 1555
+ },
+ "id": "OUztuLnzd02w",
+ "outputId": "2c7307a2-2de4-48a8-f4b4-6b4bd6b8197e"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Returned Publications: 10 (total = 730)\n",
+ "\u001b[2mTime: 0.31s\u001b[0m\n",
+ "WARNINGS [1]\n",
+ "Field current_organization_id of the authors field is deprecated and will be removed in the next major release.\n"
+ ]
+ },
+ {
+ "data": {
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "summary": "{\n \"name\": \"rejected_publication_data\",\n \"rows\": 10,\n \"fields\": [\n {\n \"column\": \"rejected_date\",\n \"properties\": {\n \"dtype\": \"object\",\n \"num_unique_values\": 1,\n \"samples\": [\n \"2020-01-22\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"first_author\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 9,\n \"samples\": [\n \"Joyce\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"title\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 10,\n \"samples\": [\n \"Scientific Racism 2.0 (SR2.0): An erroneous argument from genetics which inadvertently refines scientific racism\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"abstract\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 10,\n \"samples\": [\n \"
SR2.0 refers to a prominent argument made by some geneticists, often via social and popular media, which inadvertently amounts to a refinement of scientific racism. At face value it is an attack on racism in science. Upon closer inspection its primary, possibly unconscious, purpose appears to be to protect contemporary genetic research from the charge of racism. The argument is often made alongside an emphasis upon long-falsified errors of early science and open expressions of racism in wider society, rather than the intelligence and statistical theory which has informed both genetics and the social construct scientific racism for a century. The core argument is invalid. It also has profound epistemological failings, including misunderstanding the nature of social constructions and how they how they interact with empirical facts. Finally, the proponents do not fully support their own argument; this exposes the argument\\u2019s substantive function as a defensive holding device.
The increasing number of patients treated with peritoneal dialysis (PD) and their consistently high rate of hospital admissions have placed a large burden on the health care system. Early clinical interventions and optimal management of patients at a high risk of prolonged length of stay (pLOS) may help improve the medical efficiency and prognosis of PD-treated patients. If timely clinical interventions are not provided, patients at a high risk of pLOS may face a poor prognosis and high medical expenses, which will also be a burden on hospitals. Therefore, physicians need an effective pLOS prediction model for PD-treated patients.<\\/p>\\n <\\/sec>\\n \\n OBJECTIVE\\n
This study aimed to develop an optimal data-driven model for predicting the pLOS risk of PD-treated patients using basic admission data.<\\/p>\\n <\\/sec>\\n \\n METHODS\\n
Patient data collected using the Hospital Quality Monitoring System (HQMS) in China were used to develop pLOS prediction models. A stacking model was constructed with support vector machine, random forest (RF), and K-nearest neighbor algorithms as its base models and traditional logistic regression (LR) as its meta-model. The meta-model used the outputs of all 3 base models as input and generated the output of the stacking model. Another LR-based pLOS prediction model was built as the benchmark model. The prediction performance of the stacking model was compared with that of its base models and the benchmark model. Five-fold cross-validation was employed to develop and validate the models. Performance measures included the Brier score, area under the receiver operating characteristic curve (AUROC), estimated calibration index (ECI), accuracy, sensitivity, specificity, and geometric mean (Gm). In addition, a calibration plot was employed to visually demonstrate the calibration power of each model.<\\/p>\\n <\\/sec>\\n \\n RESULTS\\n
The final cohort extracted from the HQMS database consisted of 23,992 eligible PD-treated patients, among whom 30.3% had a pLOS (ie, longer than the average LOS, which was 16 days in our study). Among the models, the stacking model achieved the best calibration (ECI 8.691), balanced accuracy (Gm 0.690), accuracy (0.695), and specificity (0.701). Meanwhile, the stacking and RF models had the best overall performance (Brier score 0.174 for both) and discrimination (AUROC 0.757 for the stacking model and 0.756 for the RF model). Compared with the benchmark LR model, the stacking model was superior in all performance measures except sensitivity, but there was no significant difference in sensitivity between the 2 models. The 2-sided <i>t</i> tests revealed significant performance differences between the stacking and LR models in overall performance, discrimination, calibration, balanced accuracy, and accuracy.<\\/p>\\n <\\/sec>\\n \\n CONCLUSIONS\\n
This study is the first to develop data-driven pLOS prediction models for PD-treated patients using basic admission data from a national database. The results indicate the feasibility of utilizing a stacking-based pLOS prediction model for PD-treated patients. The pLOS prediction tools developed in this study have the potential to assist clinicians in identifying patients at a high risk of pLOS and to allocate resources optimally for PD-treated patients.<\\/p>\\n <\\/sec>\",\n\"6ef9af47-8fa7-4abb-af69-0c8a522b6f9a\"],\n [{\n 'v': 1,\n 'f': \"1\",\n },\n\"2020-01-22\",\n\"Bowman\",\n\"OSF Prereg Template\",\n\"
Preregistration is the act of submitting a study plan, ideally also with analytical plan, to a registry prior to conducting the work. Preregistration increases the discoverability of research even if it does not get published further. Adding specific analysis plans can clarify the distinction between planned, confirmatory tests and unplanned, exploratory research. This preprint contains a template for the \\u201cOSF Prereg\\u201d form available from the OSF Registry. An earlier version was originally developed for the Preregistration Challenge, an education campaign designed to initiate preregistration as a habit prior to data collection in basic research, funded by the Laura and John Arnold Foundation (now Arnold Ventures) and conducted by the Center for Open Science. More information is available at https://cos.io/prereg, and other templates are available at: https://osf.io/zab38/<\\/p>\",\n\"2239203f-fa3b-4402-a185-1398861aba66\"],\n [{\n 'v': 2,\n 'f': \"2\",\n },\n\"2020-01-22\",\n\"Di Sia\",\n\"On the Concept of Time in everyday Life and between Physics and Mathematics\",\n\"
In this paper I consider the concept of time in a general way as daily human time andthen within physics with relation to mathematics. I focus the attention on quantum mechanics, with its particular peculiarities, examining peculiar important questions like the temporal asymmetry, the Prigogine\\u2019s position and the time-reversal operator of Wigner. I conclude considering the theme of the temporal asymmetry in relation to decoherence and irreversibility. Interesting imputs related to education science will be done.<\\/p>\",\n\"7dc54f58-2a6c-44eb-b906-98a184d1bac1\"],\n [{\n 'v': 3,\n 'f': \"3\",\n },\n\"2020-01-22\",\n\"Di Sia\",\n\"Birth and development of quantum physics: a transdisciplinary approach\",\n\"
The last century has been a period of extreme interest for scientific research, marked by the overcoming of the classical frontiers of scientific knowledge.Research oriented towards the infinitely small and infinitely big, in both cases beyondthe borders of the visible. Quantum physics has led to a new Copernican revolution,opening the way to new questions that have led to a new view of reality. At the sametime, new theories have developed, involving every field of science, philosophy and art, rediscovering the link between unity and totality and the importance of humanpotential. In a transdisciplinary approach we consider quantum field theory, new ideason the concepts of vacuum and entanglement, metaphysical aspects of quantum revolution and the introduction of different interpretative approaches on the \\u201cWhole\\u201d.<\\/p>\",\n\"b466b2fd-b0c3-4573-abc5-229532212be1\"],\n [{\n 'v': 4,\n 'f': \"4\",\n },\n\"2020-01-22\",\n\"Bedoya\",\n\"Fabricaci\\u00f3n de capas antirreflejantes y absorbedores solares mediante la t\\u00e9cnica Sol-gel: Un resumen sobre la variaci\\u00f3n de s\\u00edntesis y condiciones experimentales realizadas en la UTP\",\n\"
Se prepararon pel\\u00edculas delgadas de SiO2 en relaci\\u00f3n molar TEOS:H2O:EtOH 1:18:1.8 y CuCoMn en relaci\\u00f3n molar Cu:Co:Mn 1:3:3 por el m\\u00e9todo de recubrimiento por inmersi\\u00f3n (Sol-gel), bajo condiciones fijas de velocidad de dep\\u00f3sito y n\\u00famero de capas. Inicialmente se usaron sustratos de vidrios con el fin de analizar el comportamiento \\u00f3ptico de los recubrimientos utilizando espectroscop\\u00eda UV-Vis y FTIR. Una vez depositados los recubrimientos de SiO2 se sometieron a secado a temperatura ambiente y dentro de un horno tubular a 70 \\u00b0C. Por otro lado, las muestras de CuCoMn se trataron t\\u00e9rmicamente a diferentes temperaturas de recocido (550 \\u00b0C, 600 \\u00b0C y 650 \\u00b0C) durante 12 horas a una rampa de 1 \\u00b0C/min. Los resultados parciales obtenidos muestran que las pel\\u00edculas exhiben una absortancia entre 75% - 95 %, lo cual est\\u00e1 acorde con lo reportado en la literatura para este material. Sin embargo, para aumentar este valor es necesario ampliar el estudio del material, con el fin de definir su estructura, composici\\u00f3n y morfolog\\u00eda. El objetivo es obtener recubrimientos con las propiedades \\u00f3pticas y estructurales adecuadas con el fin de ser usados en la fabricaci\\u00f3n de la superficie absorbedora de calentadores de agua e instalaciones de energ\\u00eda solar.<\\/p>\",\n\"56360b84-72d3-42bc-b963-067e95e1ade3\"],\n [{\n 'v': 5,\n 'f': \"5\",\n },\n\"2020-01-22\",\n\"Coretta\",\n\"Open Science in phonetics and phonology\",\n\"
Open Science is a movement that stresses the importance of a more honest and transparent scientific attitude by promoting a series of research principles and by warning from common, although not necessarily intentional, questionable practices and misconceptions. The term Open Science as a whole refers to the fundamental concepts of 'openness, transparency, rigour, reproducibility, replicability, and accumulation of knowledge' (Cruwell 2018). The goodness of the latter depends in great part on the reproducibility and replicability of the studies that contribute to knowledge accumulation.<\\/p>\",\n\"4c0ca94a-14f2-4f86-b014-ac47f7d5170c\"],\n [{\n 'v': 6,\n 'f': \"6\",\n },\n\"2020-01-22\",\n\"Wekke\",\n\"Merumuskan Masalah Penelitian dengan Metode MAIL\",\n\"
Ringkasan kuliah di pascasarjana STAIN Sorong.<\\/p>\",\n\"494a322a-7a51-460b-8dcb-dcfbb405e9e6\"],\n [{\n 'v': 7,\n 'f': \"7\",\n },\n\"2020-01-22\",\n\"Hern\\u00e1ndez-Caballero\",\n\"Epigen\\u00e9tica en c\\u00e1ncer\",\n\"
Las c\\u00e9lulas contienen informaci\\u00f3n determinada por el genoma propio del organismo al que pertenecen, lo cual le permite el desarrollo y diferenciaci\\u00f3n propios de su especie, en este sentido la informaci\\u00f3n epigen\\u00e9tica constituye una capa adicional de informaci\\u00f3n reguladora que vuelve m\\u00e1s complejos los procesos celulares. La metilaci\\u00f3n del DNA es la marca epigen\\u00e9tica de inactivaci\\u00f3n m\\u00e1s conocida y como el proceso reversible que es, consiste en un fen\\u00f3meno din\\u00e1mico que cambia durante la vida de la c\\u00e9lula. Los cambios epigen\\u00e9ticos inciden directamente en la conformaci\\u00f3n que adquiere la cromatina, con lo que se regula el c\\u00f3mo se expresen los genes y su actividad, a su vez, depende de modificaciones postraduccionales en las prote\\u00ednas histonas. Las histonas al igual que el DNA tambi\\u00e9n pueden presentar modificaciones epigen\\u00e9ticas.El c\\u00e1ncer es una patolog\\u00eda heterog\\u00e9nea que durante mucho tiempo se crey\\u00f3 era el resultado \\u00fanicamente de la adquisici\\u00f3n de mutaciones gen\\u00e9ticas o rearreglos cromos\\u00f3micos, que desembocaban en la p\\u00e9rdida del funcionamiento de genes encargados de evitar el crecimiento celular descontrolado y de la desregulaci\\u00f3n de la actividad de genes encargados de promover la proliferaci\\u00f3n. No obstante, la expresi\\u00f3n adecuada de los genes es fundamental para mantener el fenotipo celular normal, y el control de dicha expresi\\u00f3n va m\\u00e1s all\\u00e1 de la sola presencia de una secuencia gen\\u00e9tica sin cambio. Sin embargo, las alteraciones epigen\\u00e9ticas que preceden y contribuyen al inicio del desarrollo de un c\\u00e1ncer a\\u00fan no se conocen de forma precisa.Actualmente la metilaci\\u00f3n de DNA es la principal marca epigen\\u00e9tica m\\u00e1s ampliamente estudiada. La diversidad en el uso de t\\u00e9cnicas para realizar este cometido va desde m\\u00e9todos sencillos como el uso de enzimas de restricci\\u00f3n sensibles a la metilaci\\u00f3n, para digerir DNA gen\\u00f3mico y analizar peque\\u00f1as regiones de DNA, pasando por el uso de bisulfito de sodio para analizar el estado de metilaci\\u00f3n en las citosinas hasta los m\\u00e9todos actuales de secuenciaci\\u00f3n a gran escala que permiten el an\\u00e1lisis simultaneo de gran cantidad de muestras y de amplias regiones del genoma completo, llegando a analizar hasta 3 millones de variantes gen\\u00e9ticas en un individuo. A la par, se ha desarrollado software especializado en epigen\\u00e9tica, permitiendo conocer la ubicaci\\u00f3n de sitios de metilaci\\u00f3n para luego hacer su b\\u00fasqueda en muestras biol\\u00f3gicas y se han desarrollado programas complejos para el an\\u00e1lisis de datos masivos obtenidos a trav\\u00e9s del uso de plataformas basadas en hibridaci\\u00f3n (microarreglos) y la secuenciaci\\u00f3n masiva con diversas afinidades (DNA-seq, RNA-seq, ChIP-seq, FAIRE-seq, ATAC-seq, MeDIP-seq, MBD-seq) y WGBS. Los cambios epigen\\u00e9ticos aberrantes en el c\\u00e1ncer pueden ser evidentes desde etapas tempranas, lo que ha llevado a pensar que, esta desregulaci\\u00f3n precede de hecho a los eventos tumorales transformadores preliminares cl\\u00e1sicos (mutaciones de supresores y/o protooncogenes e inestabilidad gen\\u00f3mica). Entre las alteraciones epigen\\u00e9ticas m\\u00e1s reconocidas en los tumores est\\u00e1 el silenciamiento asociado a hipermetilaci\\u00f3n de islas CpG en los promotores de los genes supresores como CDKN2A y RASSF1.Aunado a esto, los miRNAs tambi\\u00e9n pueden actuar como supresores u oncogenes en diferentes tipos de c\\u00e1ncer. Es por esto que, las modificaciones epigen\\u00e9ticas son un componente importante en la etiolog\\u00eda del c\\u00e1ncer y debido a su reversibilidad constituyen blancos terap\\u00e9uticos prometedores para diagnostico o tratamiento y potencial como posibles biomarcadores.<\\/p>\",\n\"4745cfed-18ac-465f-80b5-59c437a8ab2d\"],\n [{\n 'v': 8,\n 'f': \"8\",\n },\n\"2020-01-22\",\n\"Joyce\",\n\"Scientific Racism 2.0 (SR2.0): An erroneous argument from genetics which inadvertently refines scientific racism\",\n\"
SR2.0 refers to a prominent argument made by some geneticists, often via social and popular media, which inadvertently amounts to a refinement of scientific racism. At face value it is an attack on racism in science. Upon closer inspection its primary, possibly unconscious, purpose appears to be to protect contemporary genetic research from the charge of racism. The argument is often made alongside an emphasis upon long-falsified errors of early science and open expressions of racism in wider society, rather than the intelligence and statistical theory which has informed both genetics and the social construct scientific racism for a century. The core argument is invalid. It also has profound epistemological failings, including misunderstanding the nature of social constructions and how they how they interact with empirical facts. Finally, the proponents do not fully support their own argument; this exposes the argument\\u2019s substantive function as a defensive holding device.<\\/p>\",\n\"879bff9a-169b-425f-a027-11f04e0448ea\"],\n [{\n 'v': 9,\n 'f': \"9\",\n },\n\"2020-01-22\",\n\"Sinar\",\n\"Functional Features of Forensic Corruption Case in Indonesia\",\n\"
This study examines the multimodal use of language affecting the social interaction in the Indonesian Court for Corruption Crimes as the research data source. The objective is to analyze the metafunction multimodal functional features of law enforcement and witnesses in the proceedings of forensic corruption case in Indonesia. Multimodal theory as a new technology that has been invented by linguists was used in this research to analyse forensic language. The findings showed that the multimodal systems were valuable in analysing the forensic functional features in the court room and the functional features of representational, interactive and compositional meanings were present in the court room involving gestures, postures, gazes, nonverbal communication, eye contacts, etc.<\\/p>\",\n\"e262d61c-32bb-4690-b814-e20ee7add13f\"]],\n columns: [[\"number\", \"index\"], [\"string\", \"rejected_date\"], [\"string\", \"first_author\"], [\"string\", \"title\"], [\"string\", \"abstract\"], [\"string\", \"submission_id\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n
\n"
+ ],
+ "text/plain": [
+ " rejected_date first_author \\\n",
+ "0 2020-01-22 Kong \n",
+ "1 2020-01-22 Bowman \n",
+ "2 2020-01-22 Di Sia \n",
+ "3 2020-01-22 Di Sia \n",
+ "4 2020-01-22 Bedoya \n",
+ "5 2020-01-22 Coretta \n",
+ "6 2020-01-22 Wekke \n",
+ "7 2020-01-22 Hernández-Caballero \n",
+ "8 2020-01-22 Joyce \n",
+ "9 2020-01-22 Sinar \n",
+ "\n",
+ " title \\\n",
+ "0 Predicting Prolonged Length of Hospital Stay f... \n",
+ "1 OSF Prereg Template \n",
+ "2 On the Concept of Time in everyday Life and be... \n",
+ "3 Birth and development of quantum physics: a tr... \n",
+ "4 Fabricación de capas antirreflejantes y absorb... \n",
+ "5 Open Science in phonetics and phonology \n",
+ "6 Merumuskan Masalah Penelitian dengan Metode MAIL \n",
+ "7 Epigenética en cáncer \n",
+ "8 Scientific Racism 2.0 (SR2.0): An erroneous ar... \n",
+ "9 Functional Features of Forensic Corruption Cas... \n",
+ "\n",
+ " abstract \\\n",
+ "0 \\n BACKGROUND\\n ... \n",
+ "1
Preregistration is the act of submitting a ... \n",
+ "2
In this paper I consider the concept of tim... \n",
+ "3
The last century has been a period of extre... \n",
+ "4
Se prepararon películas delgadas de SiO2 en... \n",
+ "5
Open Science is a movement that stresses th... \n",
+ "6
Ringkasan kuliah di pascasarjana STAIN Soro... \n",
+ "7
Las células contienen información determina... \n",
+ "8
SR2.0 refers to a prominent argument made b... \n",
+ "9
This study examines the multimodal use of l... \n",
+ "\n",
+ " submission_id \n",
+ "0 6ef9af47-8fa7-4abb-af69-0c8a522b6f9a \n",
+ "1 2239203f-fa3b-4402-a185-1398861aba66 \n",
+ "2 7dc54f58-2a6c-44eb-b906-98a184d1bac1 \n",
+ "3 b466b2fd-b0c3-4573-abc5-229532212be1 \n",
+ "4 56360b84-72d3-42bc-b963-067e95e1ade3 \n",
+ "5 4c0ca94a-14f2-4f86-b014-ac47f7d5170c \n",
+ "6 494a322a-7a51-460b-8dcb-dcfbb405e9e6 \n",
+ "7 4745cfed-18ac-465f-80b5-59c437a8ab2d \n",
+ "8 879bff9a-169b-425f-a027-11f04e0448ea \n",
+ "9 e262d61c-32bb-4690-b814-e20ee7add13f "
+ ]
+ },
+ "execution_count": 15,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import pandas as pd\n",
+ "import numpy as np\n",
+ "from uuid import uuid4\n",
+ "\n",
+ "rejected_publications = []\n",
+ "\n",
+ "preprints = dsl.query(\n",
+ " # This is quite a specific search for preprints published on 2020-01-22\n",
+ " \"\"\"\n",
+ " search publications\n",
+ " where type = \"preprint\" and date = \"2020-01-22\" and abstract is not empty\n",
+ " return publications[date+title+abstract+authors]\n",
+ " limit 10\n",
+ " \"\"\"\n",
+ ")\n",
+ "\n",
+ "for p in preprints.json[\"publications\"]:\n",
+ " # This will be a row of our data:\n",
+ " rejected_article_data_row = {\n",
+ " \"rejected_date\": None, # Initialising the rows with null values\n",
+ " \"first_author\": None,\n",
+ " \"title\": None,\n",
+ " \"abstract\": None\n",
+ " }\n",
+ " rejected_article_data_row['rejected_date'] = p['date']\n",
+ " rejected_article_data_row['title'] = p['title']\n",
+ " rejected_article_data_row['abstract'] = p['abstract']\n",
+ " for order, a in enumerate(p[\"authors\"]):\n",
+ " if order == 0: # i.e. first author\n",
+ " rejected_article_data_row['first_author'] = a['last_name']\n",
+ " rejected_publications.append(rejected_article_data_row)\n",
+ "\n",
+ "rejected_publication_data = pd.DataFrame(rejected_publications)\n",
+ "\n",
+ "rejected_publication_data['submission_id'] = [\n",
+ " str(uuid4()) for _ in range(len(rejected_publication_data))\n",
+ "]\n",
+ "\n",
+ "rejected_publication_data"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "4gO-Sw9RkPKx"
+ },
+ "source": [
+ "## 2. Define the search template\n",
+ "\n",
+ "Python concatenates multiple strings one after another in brackets, so we have written it out as shown below so that we can add comments to the query. This format isn't necessary, but hopefully it's helpful!"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 36
+ },
+ "id": "UcVe6Ocm6Fiv",
+ "outputId": "cb54d3a0-9236-4981-c629-d6f56ab69ab2"
+ },
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "type": "string"
+ },
+ "text/plain": [
+ "'search publications in title_abstract_only for \"{title}\" where date > \"{rejected_date}\" and (authors = \"{first_author}\") return publications[date+doi+title+abstract] limit 1'"
+ ]
+ },
+ "execution_count": 16,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "template = (\n",
+ " 'search publications '\n",
+ " 'in title_abstract_only ' # Search the whole of the publication\n",
+ " 'for \"{title}\" ' # Stop words will be automatically excluded\n",
+ " 'where date > \"{rejected_date}\" '\n",
+ " 'and ('\n",
+ " 'authors = \"{first_author}\"'\n",
+ " # The line below gives an example of how you could also search for\n",
+ " # the surname of the corresponding author if you have it:\n",
+ " # ' or authors = \"{corresponding_author}\"'\n",
+ " ') '\n",
+ " 'return publications['\n",
+ " 'date' # Published date\n",
+ " '+'\n",
+ " 'doi' # DOI of the published article\n",
+ " '+'\n",
+ " 'title' # Title of the published article\n",
+ " '+'\n",
+ " 'abstract' # Abstract of the published article\n",
+ " '] '\n",
+ " 'limit 1' # Get the most relevant result only\n",
+ ")\n",
+ "\n",
+ "template"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "wAIXlRBUkiU8"
+ },
+ "source": [
+ "## 3. Iteratively Query the Dimensions API for the retracted articles"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 250,
+ "referenced_widgets": [
+ "a3690f3660a74a0e9af686a2f6ca8304",
+ "03a4c6bae6ca429f96347855a43adac9",
+ "62b20a5d1b1649ab8a2d76c3f4ab7981",
+ "c39293df4cb24387bf8f2638f241c824",
+ "8ab3cbaeb64a413fb51632f9ef182e9c",
+ "f2c1b4851d644eb3bdf048721d255a88",
+ "06fefdea62084b6097b03a497734dbc2",
+ "bd7d718456174f2794a2a2593cf1144a",
+ "c96c1481e38f4c82872c15eda63cde58",
+ "9c5c614ecf7e4fec9e02778e0a938762",
+ "aeeb243ec979404e8d80b3ef1c0a4070"
+ ]
+ },
+ "id": "Legvd8_cpPq4",
+ "outputId": "94828b40-3f54-4327-d93f-d35a9f58958d"
+ },
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "a3690f3660a74a0e9af686a2f6ca8304",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ " 0%| | 0/10 [00:00, ?it/s]"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "summary": "{\n \"name\": \"output\",\n \"rows\": 2,\n \"fields\": [\n {\n \"column\": \"submission_id\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"e262d61c-32bb-4690-b814-e20ee7add13f\",\n \"7dc54f58-2a6c-44eb-b906-98a184d1bac1\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"title\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"Functional Features of Forensic Corruption Case in Indonesia\",\n \"On the Concept of Time in Everyday Life and between Physics and Mathematics\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"abstract\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"
Functional Features of Forensic Corruption Case in Indonesia
\",\n \"In this paper I consider the concept of time in a general way as daily human time and then within physics with relation to mathematics. I consider the arrow of time and then focus the attention on quantum mechanics, with its particular peculiarities, examining important concepts like temporal asymmetry, complexity, decoherence, irreversibility, information theory, chaos theory. In conclusion I consider the notion of time connected to a new theory in progress, called \\u201cPrimordial Dynamic Space\\u201d theory.\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"date\",\n \"properties\": {\n \"dtype\": \"date\",\n \"min\": \"2020-02-28\",\n \"max\": \"2021-01-01\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"2020-02-28\",\n \"2021-01-01\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"doi\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"10.31228/osf.io/m3xa6\",\n \"10.23880/eoij-16000268\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}",
+ "type": "dataframe",
+ "variable_name": "output"
+ },
+ "application/vnd.google.colaboratory.module+javascript": "\n import \"https://ssl.gstatic.com/colaboratory/data_table/e523c247d1e24a05/data_table.js\";\n\n const table = window.createDataTable({\n data: [[{\n 'v': 0,\n 'f': \"0\",\n },\n\"7dc54f58-2a6c-44eb-b906-98a184d1bac1\",\n\"On the Concept of Time in Everyday Life and between Physics and Mathematics\",\n\"In this paper I consider the concept of time in a general way as daily human time and then within physics with relation to mathematics. I consider the arrow of time and then focus the attention on quantum mechanics, with its particular peculiarities, examining important concepts like temporal asymmetry, complexity, decoherence, irreversibility, information theory, chaos theory. In conclusion I consider the notion of time connected to a new theory in progress, called \\u201cPrimordial Dynamic Space\\u201d theory.\",\n\"2021-01-01\",\n\"10.23880/eoij-16000268\"],\n [{\n 'v': 0,\n 'f': \"0\",\n },\n\"e262d61c-32bb-4690-b814-e20ee7add13f\",\n\"Functional Features of Forensic Corruption Case in Indonesia\",\n\"
Functional Features of Forensic Corruption Case in Indonesia<\\/p>\",\n\"2020-02-28\",\n\"10.31228/osf.io/m3xa6\"]],\n columns: [[\"number\", \"index\"], [\"string\", \"submission_id\"], [\"string\", \"title\"], [\"string\", \"abstract\"], [\"string\", \"date\"], [\"string\", \"doi\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n
\n"
+ ],
+ "text/plain": [
+ " submission_id \\\n",
+ "0 7dc54f58-2a6c-44eb-b906-98a184d1bac1 \n",
+ "0 e262d61c-32bb-4690-b814-e20ee7add13f \n",
+ "\n",
+ " title \\\n",
+ "0 On the Concept of Time in Everyday Life and be... \n",
+ "0 Functional Features of Forensic Corruption Cas... \n",
+ "\n",
+ " abstract date \\\n",
+ "0 In this paper I consider the concept of time i... 2021-01-01 \n",
+ "0
Functional Features of Forensic Corruption ... 2020-02-28 \n",
+ "\n",
+ " doi \n",
+ "0 10.23880/eoij-16000268 \n",
+ "0 10.31228/osf.io/m3xa6 "
+ ]
+ },
+ "execution_count": 17,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import string\n",
+ "from tqdm.notebook import tqdm\n",
+ "\n",
+ "def no_punctuation(s: str) -> str:\n",
+ " \"\"\"\n",
+ " Remove punctuation from a python string\n",
+ " \"\"\"\n",
+ " return s.translate(str.maketrans('', '', string.punctuation))\n",
+ "\n",
+ "# We'll store all our results in this list as we iterate, then join them together at the end...\n",
+ "results = []\n",
+ "\n",
+ "# For each row in the data set as a python dictionary:\n",
+ "for row in tqdm(rejected_publication_data.to_dict(orient=\"records\")):\n",
+ " row['title'] = no_punctuation(row['title'])\n",
+ " query = template.format(**row)\n",
+ " best = dsl.query(query, verbose=False).as_dataframe()\n",
+ " best['submission_id'] = row['submission_id']\n",
+ " results.append(best)\n",
+ "\n",
+ "# Join results together\n",
+ "output = pd.concat(results)\n",
+ "\n",
+ "output.head() # .head() shows just a few rows"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "Zze35aGEHF8Z"
+ },
+ "source": [
+ "\n",
+ "### 4. Join together the input and output data"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 1292
+ },
+ "id": "jtBd5CK-HRSj",
+ "outputId": "f7fab76f-9fae-40f5-e382-9535c11896a1"
+ },
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "summary": "{\n \"name\": \"merged_results\",\n \"rows\": 10,\n \"fields\": [\n {\n \"column\": \"rejected_date\",\n \"properties\": {\n \"dtype\": \"object\",\n \"num_unique_values\": 1,\n \"samples\": [\n \"2020-01-22\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"first_author\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 9,\n \"samples\": [\n \"Joyce\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"title_x\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 10,\n \"samples\": [\n \"Scientific Racism 2.0 (SR2.0): An erroneous argument from genetics which inadvertently refines scientific racism\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"abstract_x\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 10,\n \"samples\": [\n \"
SR2.0 refers to a prominent argument made by some geneticists, often via social and popular media, which inadvertently amounts to a refinement of scientific racism. At face value it is an attack on racism in science. Upon closer inspection its primary, possibly unconscious, purpose appears to be to protect contemporary genetic research from the charge of racism. The argument is often made alongside an emphasis upon long-falsified errors of early science and open expressions of racism in wider society, rather than the intelligence and statistical theory which has informed both genetics and the social construct scientific racism for a century. The core argument is invalid. It also has profound epistemological failings, including misunderstanding the nature of social constructions and how they how they interact with empirical facts. Finally, the proponents do not fully support their own argument; this exposes the argument\\u2019s substantive function as a defensive holding device.
The increasing number of patients treated with peritoneal dialysis (PD) and their consistently high rate of hospital admissions have placed a large burden on the health care system. Early clinical interventions and optimal management of patients at a high risk of prolonged length of stay (pLOS) may help improve the medical efficiency and prognosis of PD-treated patients. If timely clinical interventions are not provided, patients at a high risk of pLOS may face a poor prognosis and high medical expenses, which will also be a burden on hospitals. Therefore, physicians need an effective pLOS prediction model for PD-treated patients.<\\/p>\\n <\\/sec>\\n \\n OBJECTIVE\\n
This study aimed to develop an optimal data-driven model for predicting the pLOS risk of PD-treated patients using basic admission data.<\\/p>\\n <\\/sec>\\n \\n METHODS\\n
Patient data collected using the Hospital Quality Monitoring System (HQMS) in China were used to develop pLOS prediction models. A stacking model was constructed with support vector machine, random forest (RF), and K-nearest neighbor algorithms as its base models and traditional logistic regression (LR) as its meta-model. The meta-model used the outputs of all 3 base models as input and generated the output of the stacking model. Another LR-based pLOS prediction model was built as the benchmark model. The prediction performance of the stacking model was compared with that of its base models and the benchmark model. Five-fold cross-validation was employed to develop and validate the models. Performance measures included the Brier score, area under the receiver operating characteristic curve (AUROC), estimated calibration index (ECI), accuracy, sensitivity, specificity, and geometric mean (Gm). In addition, a calibration plot was employed to visually demonstrate the calibration power of each model.<\\/p>\\n <\\/sec>\\n \\n RESULTS\\n
The final cohort extracted from the HQMS database consisted of 23,992 eligible PD-treated patients, among whom 30.3% had a pLOS (ie, longer than the average LOS, which was 16 days in our study). Among the models, the stacking model achieved the best calibration (ECI 8.691), balanced accuracy (Gm 0.690), accuracy (0.695), and specificity (0.701). Meanwhile, the stacking and RF models had the best overall performance (Brier score 0.174 for both) and discrimination (AUROC 0.757 for the stacking model and 0.756 for the RF model). Compared with the benchmark LR model, the stacking model was superior in all performance measures except sensitivity, but there was no significant difference in sensitivity between the 2 models. The 2-sided <i>t</i> tests revealed significant performance differences between the stacking and LR models in overall performance, discrimination, calibration, balanced accuracy, and accuracy.<\\/p>\\n <\\/sec>\\n \\n CONCLUSIONS\\n
This study is the first to develop data-driven pLOS prediction models for PD-treated patients using basic admission data from a national database. The results indicate the feasibility of utilizing a stacking-based pLOS prediction model for PD-treated patients. The pLOS prediction tools developed in this study have the potential to assist clinicians in identifying patients at a high risk of pLOS and to allocate resources optimally for PD-treated patients.<\\/p>\\n <\\/sec>\",\n\"6ef9af47-8fa7-4abb-af69-0c8a522b6f9a\",\nNaN,\nNaN,\nNaN,\nNaN],\n [{\n 'v': 1,\n 'f': \"1\",\n },\n\"2020-01-22\",\n\"Bowman\",\n\"OSF Prereg Template\",\n\"
Preregistration is the act of submitting a study plan, ideally also with analytical plan, to a registry prior to conducting the work. Preregistration increases the discoverability of research even if it does not get published further. Adding specific analysis plans can clarify the distinction between planned, confirmatory tests and unplanned, exploratory research. This preprint contains a template for the \\u201cOSF Prereg\\u201d form available from the OSF Registry. An earlier version was originally developed for the Preregistration Challenge, an education campaign designed to initiate preregistration as a habit prior to data collection in basic research, funded by the Laura and John Arnold Foundation (now Arnold Ventures) and conducted by the Center for Open Science. More information is available at https://cos.io/prereg, and other templates are available at: https://osf.io/zab38/<\\/p>\",\n\"2239203f-fa3b-4402-a185-1398861aba66\",\nNaN,\nNaN,\nNaN,\nNaN],\n [{\n 'v': 2,\n 'f': \"2\",\n },\n\"2020-01-22\",\n\"Di Sia\",\n\"On the Concept of Time in everyday Life and between Physics and Mathematics\",\n\"
In this paper I consider the concept of time in a general way as daily human time andthen within physics with relation to mathematics. I focus the attention on quantum mechanics, with its particular peculiarities, examining peculiar important questions like the temporal asymmetry, the Prigogine\\u2019s position and the time-reversal operator of Wigner. I conclude considering the theme of the temporal asymmetry in relation to decoherence and irreversibility. Interesting imputs related to education science will be done.<\\/p>\",\n\"7dc54f58-2a6c-44eb-b906-98a184d1bac1\",\n\"On the Concept of Time in Everyday Life and between Physics and Mathematics\",\n\"In this paper I consider the concept of time in a general way as daily human time and then within physics with relation to mathematics. I consider the arrow of time and then focus the attention on quantum mechanics, with its particular peculiarities, examining important concepts like temporal asymmetry, complexity, decoherence, irreversibility, information theory, chaos theory. In conclusion I consider the notion of time connected to a new theory in progress, called \\u201cPrimordial Dynamic Space\\u201d theory.\",\n\"2021-01-01\",\n\"10.23880/eoij-16000268\"],\n [{\n 'v': 3,\n 'f': \"3\",\n },\n\"2020-01-22\",\n\"Di Sia\",\n\"Birth and development of quantum physics: a transdisciplinary approach\",\n\"
The last century has been a period of extreme interest for scientific research, marked by the overcoming of the classical frontiers of scientific knowledge.Research oriented towards the infinitely small and infinitely big, in both cases beyondthe borders of the visible. Quantum physics has led to a new Copernican revolution,opening the way to new questions that have led to a new view of reality. At the sametime, new theories have developed, involving every field of science, philosophy and art, rediscovering the link between unity and totality and the importance of humanpotential. In a transdisciplinary approach we consider quantum field theory, new ideason the concepts of vacuum and entanglement, metaphysical aspects of quantum revolution and the introduction of different interpretative approaches on the \\u201cWhole\\u201d.<\\/p>\",\n\"b466b2fd-b0c3-4573-abc5-229532212be1\",\nNaN,\nNaN,\nNaN,\nNaN],\n [{\n 'v': 4,\n 'f': \"4\",\n },\n\"2020-01-22\",\n\"Bedoya\",\n\"Fabricaci\\u00f3n de capas antirreflejantes y absorbedores solares mediante la t\\u00e9cnica Sol-gel: Un resumen sobre la variaci\\u00f3n de s\\u00edntesis y condiciones experimentales realizadas en la UTP\",\n\"
Se prepararon pel\\u00edculas delgadas de SiO2 en relaci\\u00f3n molar TEOS:H2O:EtOH 1:18:1.8 y CuCoMn en relaci\\u00f3n molar Cu:Co:Mn 1:3:3 por el m\\u00e9todo de recubrimiento por inmersi\\u00f3n (Sol-gel), bajo condiciones fijas de velocidad de dep\\u00f3sito y n\\u00famero de capas. Inicialmente se usaron sustratos de vidrios con el fin de analizar el comportamiento \\u00f3ptico de los recubrimientos utilizando espectroscop\\u00eda UV-Vis y FTIR. Una vez depositados los recubrimientos de SiO2 se sometieron a secado a temperatura ambiente y dentro de un horno tubular a 70 \\u00b0C. Por otro lado, las muestras de CuCoMn se trataron t\\u00e9rmicamente a diferentes temperaturas de recocido (550 \\u00b0C, 600 \\u00b0C y 650 \\u00b0C) durante 12 horas a una rampa de 1 \\u00b0C/min. Los resultados parciales obtenidos muestran que las pel\\u00edculas exhiben una absortancia entre 75% - 95 %, lo cual est\\u00e1 acorde con lo reportado en la literatura para este material. Sin embargo, para aumentar este valor es necesario ampliar el estudio del material, con el fin de definir su estructura, composici\\u00f3n y morfolog\\u00eda. El objetivo es obtener recubrimientos con las propiedades \\u00f3pticas y estructurales adecuadas con el fin de ser usados en la fabricaci\\u00f3n de la superficie absorbedora de calentadores de agua e instalaciones de energ\\u00eda solar.<\\/p>\",\n\"56360b84-72d3-42bc-b963-067e95e1ade3\",\nNaN,\nNaN,\nNaN,\nNaN]],\n columns: [[\"number\", \"index\"], [\"string\", \"rejected_date\"], [\"string\", \"first_author\"], [\"string\", \"title_x\"], [\"string\", \"abstract_x\"], [\"string\", \"submission_id\"], [\"string\", \"title_y\"], [\"string\", \"abstract_y\"], [\"string\", \"date\"], [\"string\", \"doi\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n
\n"
+ ],
+ "text/plain": [
+ " rejected_date first_author \\\n",
+ "0 2020-01-22 Kong \n",
+ "1 2020-01-22 Bowman \n",
+ "2 2020-01-22 Di Sia \n",
+ "3 2020-01-22 Di Sia \n",
+ "4 2020-01-22 Bedoya \n",
+ "\n",
+ " title_x \\\n",
+ "0 Predicting Prolonged Length of Hospital Stay f... \n",
+ "1 OSF Prereg Template \n",
+ "2 On the Concept of Time in everyday Life and be... \n",
+ "3 Birth and development of quantum physics: a tr... \n",
+ "4 Fabricación de capas antirreflejantes y absorb... \n",
+ "\n",
+ " abstract_x \\\n",
+ "0 \\n BACKGROUND\\n ... \n",
+ "1
Preregistration is the act of submitting a ... \n",
+ "2
In this paper I consider the concept of tim... \n",
+ "3
The last century has been a period of extre... \n",
+ "4
Se prepararon películas delgadas de SiO2 en... \n",
+ "\n",
+ " submission_id \\\n",
+ "0 6ef9af47-8fa7-4abb-af69-0c8a522b6f9a \n",
+ "1 2239203f-fa3b-4402-a185-1398861aba66 \n",
+ "2 7dc54f58-2a6c-44eb-b906-98a184d1bac1 \n",
+ "3 b466b2fd-b0c3-4573-abc5-229532212be1 \n",
+ "4 56360b84-72d3-42bc-b963-067e95e1ade3 \n",
+ "\n",
+ " title_y \\\n",
+ "0 NaN \n",
+ "1 NaN \n",
+ "2 On the Concept of Time in Everyday Life and be... \n",
+ "3 NaN \n",
+ "4 NaN \n",
+ "\n",
+ " abstract_y date \\\n",
+ "0 NaN NaN \n",
+ "1 NaN NaN \n",
+ "2 In this paper I consider the concept of time i... 2021-01-01 \n",
+ "3 NaN NaN \n",
+ "4 NaN NaN \n",
+ "\n",
+ " doi \n",
+ "0 NaN \n",
+ "1 NaN \n",
+ "2 10.23880/eoij-16000268 \n",
+ "3 NaN \n",
+ "4 NaN "
+ ]
+ },
+ "execution_count": 18,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "merged_results = pd.merge(\n",
+ " rejected_publication_data,\n",
+ " output,\n",
+ " left_on='submission_id',\n",
+ " right_on='submission_id',\n",
+ " how='left')\n",
+ "\n",
+ "merged_results.head()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "WHfO5HvqbWoR"
+ },
+ "source": [
+ "## 5. Add Matching Score\n",
+ "\n",
+ "We have found some publications that might match our rejected articles. Now we need to score them to see whether they are good matches.\n",
+ "\n",
+ "In this case we'll measure the edit distance between the titles. The most commonly-used edit distance between strings is [Levensthtein distance](https://en.wikipedia.org/wiki/Jaccard_index), which is [nicely implemented in Python in the `Levenshtein` package](https://rapidfuzz.github.io/Levenshtein/).\n",
+ "\n",
+ "The `Levenshtein` package has a function \"ratio\" which uses Levenshtein distance to get a similarity (not distance) score between 0 (disimilar) and 1 (identical). We will use this to compare titles converted to lowercase.\n",
+ "\n",
+ "Sorting the results by score descending (from highest to lowest) we can see that there was one good match. If we wanted to make the matching more automatic, we could choose to filter out everything with a score less than e.g. 0.75."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "3pxX8k8u52JA",
+ "outputId": "7570c530-8fba-49cb-e6de-4a7474bbe080"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "0.7111111111111111\n",
+ "0.9090909090909091\n"
+ ]
+ }
+ ],
+ "source": [
+ "from Levenshtein import ratio\n",
+ "\n",
+ "def similarity(string1: str, string2: str) -> float:\n",
+ " \"\"\"\n",
+ " Case-insensitive similarity score made by subtracting the normalised\n",
+ " Levenshtein distance from 1.\n",
+ " \"\"\"\n",
+ " if pd.isna(string1) or pd.isna(string2):\n",
+ " return 0.\n",
+ " else:\n",
+ " return ratio(string1.lower(), string2.lower())\n",
+ "\n",
+ "print(similarity('The cat sat on the mat', 'The dog sat on the frog'))\n",
+ "print(similarity('The cat sat on the mat', 'The mat sat on the cat'))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 246
+ },
+ "id": "wNcx52H3zDnz",
+ "outputId": "421be014-42a1-4fc2-8362-052bc7accb80"
+ },
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "repr_error": "0",
+ "type": "dataframe"
+ },
+ "application/vnd.google.colaboratory.module+javascript": "\n import \"https://ssl.gstatic.com/colaboratory/data_table/e523c247d1e24a05/data_table.js\";\n\n const table = window.createDataTable({\n data: [[{\n 'v': 2,\n 'f': \"2\",\n },\n\"7dc54f58-2a6c-44eb-b906-98a184d1bac1\",\n\"2020-01-22\",\n\"On the Concept of Time in everyday Life and between Physics and Mathematics\",\n\"On the Concept of Time in Everyday Life and between Physics and Mathematics\",\n\"
In this paper I consider the concept of time in a general way as daily human time andthen within physics with relation to mathematics. I focus the attention on quantum mechanics, with its particular peculiarities, examining peculiar important questions like the temporal asymmetry, the Prigogine\\u2019s position and the time-reversal operator of Wigner. I conclude considering the theme of the temporal asymmetry in relation to decoherence and irreversibility. Interesting imputs related to education science will be done.<\\/p>\",\n\"In this paper I consider the concept of time in a general way as daily human time and then within physics with relation to mathematics. I consider the arrow of time and then focus the attention on quantum mechanics, with its particular peculiarities, examining important concepts like temporal asymmetry, complexity, decoherence, irreversibility, information theory, chaos theory. In conclusion I consider the notion of time connected to a new theory in progress, called \\u201cPrimordial Dynamic Space\\u201d theory.\",\n\"10.23880/eoij-16000268\",\n{\n 'v': 0.7055393586005831,\n 'f': \"0.7055393586005831\",\n }]],\n columns: [[\"number\", \"index\"], [\"string\", \"submission_id\"], [\"string\", \"rejected_date\"], [\"string\", \"original_title\"], [\"string\", \"published_title\"], [\"string\", \"abstract_x\"], [\"string\", \"abstract_y\"], [\"string\", \"doi\"], [\"number\", \"score\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n
\n"
+ ],
+ "text/plain": [
+ " submission_id rejected_date \\\n",
+ "2 7dc54f58-2a6c-44eb-b906-98a184d1bac1 2020-01-22 \n",
+ "\n",
+ " original_title \\\n",
+ "2 On the Concept of Time in everyday Life and be... \n",
+ "\n",
+ " published_title \\\n",
+ "2 On the Concept of Time in Everyday Life and be... \n",
+ "\n",
+ " abstract_x \\\n",
+ "2
"
+ ],
+ "text/plain": [
+ " id name \\\n",
+ "0 grid.798367.4 Bank of New York \n",
+ "1 grid.798343.2 Research Foundation of University of New York \n",
+ "2 grid.797561.b New York Hospital-Cornell Medical Center \n",
+ "3 grid.796770.8 Research Foundation of City University of New ... \n",
+ "4 grid.796173.d Bank of New York Mellon Trust Co NA \n",
+ "5 grid.795276.8 New York University Medical Center \n",
+ "6 grid.794869.d International General Electric Company of New ... \n",
+ "7 grid.782261.8 New York Digital Investment Group LLC \n",
+ "8 grid.778414.9 China CITIC Bank International Ltd New York Br... \n",
+ "9 grid.777726.4 Morgan Guaranty Trust Company of New York \n",
+ "\n",
+ " country_code country_name types city_name state_name \n",
+ "0 US United States [Company] NaN NaN \n",
+ "1 US United States [Education] NaN NaN \n",
+ "2 US United States [Healthcare] New York New York \n",
+ "3 US United States [Other] NaN NaN \n",
+ "4 US United States [Company] NaN NaN \n",
+ "5 US United States [Education] New York New York \n",
+ "6 US United States [Other] NaN NaN \n",
+ "7 US United States [Other] NaN NaN \n",
+ "8 US United States [Government] NaN NaN \n",
+ "9 US United States [Company] NaN NaN "
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "%%dsldf \n",
+ "search organizations \n",
+ " for \"new york\" \n",
+ "return organizations limit 10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 252
+ },
+ "colab_type": "code",
+ "executionInfo": {
+ "elapsed": 1809,
+ "status": "ok",
+ "timestamp": 1574702323641,
+ "user": {
+ "displayName": "Michele Pasin",
+ "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mBu8LVjIGgontF2Wax51BoL5KFx8esezX3bUmaa0g=s64",
+ "userId": "10309320684375994511"
+ },
+ "user_tz": 0
+ },
+ "id": "P3UWAR0QkkKg",
+ "outputId": "9e1be9ab-e3cf-4aca-f621-27f8b93a8a91"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Returned Organizations: 9 (total = 9)\n",
+ "\u001b[2mTime: 0.62s\u001b[0m\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
id
\n",
+ "
name
\n",
+ "
country_code
\n",
+ "
country_name
\n",
+ "
types
\n",
+ "
acronym
\n",
+ "
city_name
\n",
+ "
latitude
\n",
+ "
linkout
\n",
+ "
longitude
\n",
+ "
state_name
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
0
\n",
+ "
grid.757191.c
\n",
+ "
New York Community Bank
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Company]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
+ "
grid.507861.d
\n",
+ "
Mohawk Valley Community College
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
MVCC
\n",
+ "
Utica
\n",
+ "
43.076850
\n",
+ "
[https://www.mvcc.edu/]
\n",
+ "
-75.220120
\n",
+ "
New York
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
grid.490742.c
\n",
+ "
Health Foundation for Western & Central New York
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Nonprofit]
\n",
+ "
NaN
\n",
+ "
Buffalo
\n",
+ "
42.874810
\n",
+ "
[https://hfwcny.org/]
\n",
+ "
-78.849690
\n",
+ "
New York
\n",
+ "
\n",
+ "
\n",
+ "
3
\n",
+ "
grid.480917.3
\n",
+ "
New York Community Trust
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Nonprofit]
\n",
+ "
NaN
\n",
+ "
New York
\n",
+ "
40.758870
\n",
+ "
[http://www.nycommunitytrust.org/]
\n",
+ "
-73.968185
\n",
+ "
New York
\n",
+ "
\n",
+ "
\n",
+ "
4
\n",
+ "
grid.478715.8
\n",
+ "
Central New York Community Foundation
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Nonprofit]
\n",
+ "
CNYCF
\n",
+ "
Syracuse
\n",
+ "
43.056038
\n",
+ "
[https://www.cnycf.org/]
\n",
+ "
-76.148210
\n",
+ "
New York
\n",
+ "
\n",
+ "
\n",
+ "
5
\n",
+ "
grid.475804.a
\n",
+ "
Community Service Society of New York
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Other]
\n",
+ "
CSS
\n",
+ "
New York
\n",
+ "
40.749622
\n",
+ "
[http://www.cssny.org/]
\n",
+ "
-73.974620
\n",
+ "
New York
\n",
+ "
\n",
+ "
\n",
+ "
6
\n",
+ "
grid.475783.a
\n",
+ "
Long Term Care Community Coalition
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Other]
\n",
+ "
LTCCC
\n",
+ "
New York
\n",
+ "
40.751163
\n",
+ "
[http://www.ltccc.org/]
\n",
+ "
-73.992470
\n",
+ "
New York
\n",
+ "
\n",
+ "
\n",
+ "
7
\n",
+ "
grid.429257.f
\n",
+ "
Korean Community Services of Metropolitan New ...
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Nonprofit]
\n",
+ "
KCS
\n",
+ "
New York
\n",
+ "
40.770954
\n",
+ "
[https://www.kcsny.org/]
\n",
+ "
-73.786670
\n",
+ "
New York
\n",
+ "
\n",
+ "
\n",
+ "
8
\n",
+ "
funder.196228
\n",
+ "
Community Health Foundation of Western and Cen...
\n",
+ "
NaN
\n",
+ "
United States
\n",
+ "
NaN
\n",
+ "
Community Health Foundation of Western and Centra
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " id name \\\n",
+ "0 grid.757191.c New York Community Bank \n",
+ "1 grid.507861.d Mohawk Valley Community College \n",
+ "2 grid.490742.c Health Foundation for Western & Central New York \n",
+ "3 grid.480917.3 New York Community Trust \n",
+ "4 grid.478715.8 Central New York Community Foundation \n",
+ "5 grid.475804.a Community Service Society of New York \n",
+ "6 grid.475783.a Long Term Care Community Coalition \n",
+ "7 grid.429257.f Korean Community Services of Metropolitan New ... \n",
+ "8 funder.196228 Community Health Foundation of Western and Cen... \n",
+ "\n",
+ " country_code country_name types \\\n",
+ "0 US United States [Company] \n",
+ "1 US United States [Education] \n",
+ "2 US United States [Nonprofit] \n",
+ "3 US United States [Nonprofit] \n",
+ "4 US United States [Nonprofit] \n",
+ "5 US United States [Other] \n",
+ "6 US United States [Other] \n",
+ "7 US United States [Nonprofit] \n",
+ "8 NaN United States NaN \n",
+ "\n",
+ " acronym city_name latitude \\\n",
+ "0 NaN NaN NaN \n",
+ "1 MVCC Utica 43.076850 \n",
+ "2 NaN Buffalo 42.874810 \n",
+ "3 NaN New York 40.758870 \n",
+ "4 CNYCF Syracuse 43.056038 \n",
+ "5 CSS New York 40.749622 \n",
+ "6 LTCCC New York 40.751163 \n",
+ "7 KCS New York 40.770954 \n",
+ "8 Community Health Foundation of Western and Centra NaN NaN \n",
+ "\n",
+ " linkout longitude state_name \n",
+ "0 NaN NaN NaN \n",
+ "1 [https://www.mvcc.edu/] -75.220120 New York \n",
+ "2 [https://hfwcny.org/] -78.849690 New York \n",
+ "3 [http://www.nycommunitytrust.org/] -73.968185 New York \n",
+ "4 [https://www.cnycf.org/] -76.148210 New York \n",
+ "5 [http://www.cssny.org/] -73.974620 New York \n",
+ "6 [http://www.ltccc.org/] -73.992470 New York \n",
+ "7 [https://www.kcsny.org/] -73.786670 New York \n",
+ "8 NaN NaN NaN "
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "%%dsldf \n",
+ "search organizations \n",
+ " for \"new york AND community\" \n",
+ "return organizations limit 10"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "colab_type": "text",
+ "id": "Baz2j_cmd2Fd"
+ },
+ "source": [
+ "### Fielded search \n",
+ "\n",
+ "We can easily look up an organization using its ID, e.g."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 151
+ },
+ "colab_type": "code",
+ "executionInfo": {
+ "elapsed": 1050,
+ "status": "ok",
+ "timestamp": 1574704472898,
+ "user": {
+ "displayName": "Michele Pasin",
+ "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mBu8LVjIGgontF2Wax51BoL5KFx8esezX3bUmaa0g=s64",
+ "userId": "10309320684375994511"
+ },
+ "user_tz": 0
+ },
+ "id": "jNBg_c3ed2Fe",
+ "outputId": "5cbfb9d9-dcdc-4a34-aa1c-d99987b91cb9"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Returned Errors: 1\n",
+ "\u001b[2mTime: 5.84s\u001b[0m\n",
+ "Query Error\n",
+ "Semantic errors found:\n",
+ "\tField / Fieldset 'all' is not present in Source 'organizations'. Available fields: acronym,city_name,cnrs_ids,country_code,country_name,dimensions_url,established,external_ids_fundref,hesa_ids,id,isni_ids,latitude,linkout,longitude,name,nuts_level1_code,nuts_level1_name,nuts_level2_code,nuts_level2_name,nuts_level3_code,nuts_level3_name,organization_child_ids,organization_parent_ids,organization_related_ids,orgref_ids,redirect,ror_ids,score,state_name,status,types,ucas_ids,ukprn_ids,wikidata_ids,wikipedia_url and available fieldsets: basics,nuts\n"
+ ]
+ }
+ ],
+ "source": [
+ "%%dsldf \n",
+ "search organizations \n",
+ " where id=\"grid.468887.d\" \n",
+ "return organizations[all] "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 315
+ },
+ "colab_type": "code",
+ "executionInfo": {
+ "elapsed": 1020,
+ "status": "ok",
+ "timestamp": 1574702525174,
+ "user": {
+ "displayName": "Michele Pasin",
+ "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mBu8LVjIGgontF2Wax51BoL5KFx8esezX3bUmaa0g=s64",
+ "userId": "10309320684375994511"
+ },
+ "user_tz": 0
+ },
+ "id": "GKh7VSOPk1Ye",
+ "outputId": "47a339ed-1f50-423c-8c04-e0ca3ad9347e"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Returned Organizations: 10 (total = 93)\n",
+ "\u001b[2mTime: 0.64s\u001b[0m\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
id
\n",
+ "
name
\n",
+ "
country_code
\n",
+ "
country_name
\n",
+ "
types
\n",
+ "
city_name
\n",
+ "
state_name
\n",
+ "
latitude
\n",
+ "
linkout
\n",
+ "
longitude
\n",
+ "
acronym
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
0
\n",
+ "
grid.798343.2
\n",
+ "
Research Foundation of University of New York
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
+ "
grid.795276.8
\n",
+ "
New York University Medical Center
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
New York
\n",
+ "
New York
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
grid.512545.2
\n",
+ "
State University of New York, Korea
\n",
+ "
KR
\n",
+ "
South Korea
\n",
+ "
[Education]
\n",
+ "
Incheon
\n",
+ "
NaN
\n",
+ "
37.376694
\n",
+ "
[http://www.sunykorea.ac.kr/]
\n",
+ "
126.667170
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
3
\n",
+ "
grid.511090.c
\n",
+ "
Craig Newmark Graduate School of Journalism at...
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
New York
\n",
+ "
New York
\n",
+ "
40.755230
\n",
+ "
[https://www.journalism.cuny.edu/]
\n",
+ "
-73.988830
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
4
\n",
+ "
grid.510787.c
\n",
+ "
Center for Migration Studies of New York
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
New York
\n",
+ "
New York
\n",
+ "
40.761470
\n",
+ "
[https://cmsny.org/]
\n",
+ "
-73.965450
\n",
+ "
CMS
\n",
+ "
\n",
+ "
\n",
+ "
5
\n",
+ "
grid.507867.b
\n",
+ "
New York State College of Ceramics
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
Alfred
\n",
+ "
New York
\n",
+ "
42.253372
\n",
+ "
[https://www.alfred.edu/academics/colleges-sch...
\n",
+ "
-77.787575
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
6
\n",
+ "
grid.507863.f
\n",
+ "
New York State School of Industrial and Labor ...
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
Ithaca
\n",
+ "
New York
\n",
+ "
42.439213
\n",
+ "
[https://www.ilr.cornell.edu/]
\n",
+ "
-76.493380
\n",
+ "
ILR
\n",
+ "
\n",
+ "
\n",
+ "
7
\n",
+ "
grid.507861.d
\n",
+ "
Mohawk Valley Community College
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
Utica
\n",
+ "
New York
\n",
+ "
43.076850
\n",
+ "
[https://www.mvcc.edu/]
\n",
+ "
-75.220120
\n",
+ "
MVCC
\n",
+ "
\n",
+ "
\n",
+ "
8
\n",
+ "
grid.507860.c
\n",
+ "
New York State College of Agriculture and Life...
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
Ithaca
\n",
+ "
New York
\n",
+ "
42.448290
\n",
+ "
[https://cals.cornell.edu/#]
\n",
+ "
-76.479390
\n",
+ "
CALS
\n",
+ "
\n",
+ "
\n",
+ "
9
\n",
+ "
grid.507859.6
\n",
+ "
New York State College of Veterinary Medicine ...
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
Ithaca
\n",
+ "
New York
\n",
+ "
42.447483
\n",
+ "
[https://www.vet.cornell.edu/]
\n",
+ "
-76.464905
\n",
+ "
NaN
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " id name \\\n",
+ "0 grid.798343.2 Research Foundation of University of New York \n",
+ "1 grid.795276.8 New York University Medical Center \n",
+ "2 grid.512545.2 State University of New York, Korea \n",
+ "3 grid.511090.c Craig Newmark Graduate School of Journalism at... \n",
+ "4 grid.510787.c Center for Migration Studies of New York \n",
+ "5 grid.507867.b New York State College of Ceramics \n",
+ "6 grid.507863.f New York State School of Industrial and Labor ... \n",
+ "7 grid.507861.d Mohawk Valley Community College \n",
+ "8 grid.507860.c New York State College of Agriculture and Life... \n",
+ "9 grid.507859.6 New York State College of Veterinary Medicine ... \n",
+ "\n",
+ " country_code country_name types city_name state_name latitude \\\n",
+ "0 US United States [Education] NaN NaN NaN \n",
+ "1 US United States [Education] New York New York NaN \n",
+ "2 KR South Korea [Education] Incheon NaN 37.376694 \n",
+ "3 US United States [Education] New York New York 40.755230 \n",
+ "4 US United States [Education] New York New York 40.761470 \n",
+ "5 US United States [Education] Alfred New York 42.253372 \n",
+ "6 US United States [Education] Ithaca New York 42.439213 \n",
+ "7 US United States [Education] Utica New York 43.076850 \n",
+ "8 US United States [Education] Ithaca New York 42.448290 \n",
+ "9 US United States [Education] Ithaca New York 42.447483 \n",
+ "\n",
+ " linkout longitude acronym \n",
+ "0 NaN NaN NaN \n",
+ "1 NaN NaN NaN \n",
+ "2 [http://www.sunykorea.ac.kr/] 126.667170 NaN \n",
+ "3 [https://www.journalism.cuny.edu/] -73.988830 NaN \n",
+ "4 [https://cmsny.org/] -73.965450 CMS \n",
+ "5 [https://www.alfred.edu/academics/colleges-sch... -77.787575 NaN \n",
+ "6 [https://www.ilr.cornell.edu/] -76.493380 ILR \n",
+ "7 [https://www.mvcc.edu/] -75.220120 MVCC \n",
+ "8 [https://cals.cornell.edu/#] -76.479390 CALS \n",
+ "9 [https://www.vet.cornell.edu/] -76.464905 NaN "
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "%%dsldf \n",
+ "search organizations \n",
+ " for \"new york\" \n",
+ " where types in [\"Education\"]\n",
+ "return organizations limit 10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 273
+ },
+ "colab_type": "code",
+ "executionInfo": {
+ "elapsed": 779,
+ "status": "ok",
+ "timestamp": 1574702569063,
+ "user": {
+ "displayName": "Michele Pasin",
+ "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mBu8LVjIGgontF2Wax51BoL5KFx8esezX3bUmaa0g=s64",
+ "userId": "10309320684375994511"
+ },
+ "user_tz": 0
+ },
+ "id": "W6_BukMKleWs",
+ "outputId": "caedaf98-ca87-4504-a505-e4371f623eb2"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Returned Organizations: 9 (total = 9)\n",
+ "\u001b[2mTime: 5.97s\u001b[0m\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
id
\n",
+ "
name
\n",
+ "
city_name
\n",
+ "
country_code
\n",
+ "
country_name
\n",
+ "
latitude
\n",
+ "
linkout
\n",
+ "
longitude
\n",
+ "
types
\n",
+ "
acronym
\n",
+ "
state_name
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
0
\n",
+ "
grid.512545.2
\n",
+ "
State University of New York, Korea
\n",
+ "
Incheon
\n",
+ "
KR
\n",
+ "
South Korea
\n",
+ "
37.376694
\n",
+ "
[http://www.sunykorea.ac.kr/]
\n",
+ "
126.667170
\n",
+ "
[Education]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
+ "
grid.479986.d
\n",
+ "
New York University Paris
\n",
+ "
Paris
\n",
+ "
FR
\n",
+ "
France
\n",
+ "
48.869614
\n",
+ "
[http://www.nyu.edu/paris.html]
\n",
+ "
2.346863
\n",
+ "
[Education]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
grid.473731.5
\n",
+ "
New York University Florence
\n",
+ "
Florence
\n",
+ "
IT
\n",
+ "
Italy
\n",
+ "
43.795910
\n",
+ "
[http://www.nyu.edu/florence.html]
\n",
+ "
11.265850
\n",
+ "
[Education]
\n",
+ "
NYU
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
3
\n",
+ "
grid.473728.d
\n",
+ "
New York Institute of Technology
\n",
+ "
Vancouver
\n",
+ "
CA
\n",
+ "
Canada
\n",
+ "
49.284374
\n",
+ "
[http://nyit.edu/vancouver]
\n",
+ "
-123.116480
\n",
+ "
[Education]
\n",
+ "
NYIT
\n",
+ "
British Columbia
\n",
+ "
\n",
+ "
\n",
+ "
4
\n",
+ "
grid.449989.1
\n",
+ "
University of New York in Prague
\n",
+ "
Prague
\n",
+ "
CZ
\n",
+ "
Czechia
\n",
+ "
50.074043
\n",
+ "
[https://www.unyp.cz/]
\n",
+ "
14.433994
\n",
+ "
[Education]
\n",
+ "
UNYP
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
5
\n",
+ "
grid.449457.f
\n",
+ "
New York University Shanghai
\n",
+ "
Shanghai
\n",
+ "
CN
\n",
+ "
China
\n",
+ "
31.225506
\n",
+ "
[https://shanghai.nyu.edu/]
\n",
+ "
121.533510
\n",
+ "
[Education]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
6
\n",
+ "
grid.444973.9
\n",
+ "
University of New York Tirana
\n",
+ "
Tirana
\n",
+ "
AL
\n",
+ "
Albania
\n",
+ "
41.311060
\n",
+ "
[http://unyt.edu.al/]
\n",
+ "
19.801466
\n",
+ "
[Education]
\n",
+ "
UNYT
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
7
\n",
+ "
grid.440573.1
\n",
+ "
New York University Abu Dhabi
\n",
+ "
Abu Dhabi
\n",
+ "
AE
\n",
+ "
United Arab Emirates
\n",
+ "
24.485000
\n",
+ "
[https://nyuad.nyu.edu/]
\n",
+ "
54.353000
\n",
+ "
[Education]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
8
\n",
+ "
grid.410685.e
\n",
+ "
SUNY Korea
\n",
+ "
Seoul
\n",
+ "
KR
\n",
+ "
South Korea
\n",
+ "
37.377018
\n",
+ "
[http://www.sunykorea.ac.kr/]
\n",
+ "
126.666770
\n",
+ "
[Education]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " id name city_name country_code \\\n",
+ "0 grid.512545.2 State University of New York, Korea Incheon KR \n",
+ "1 grid.479986.d New York University Paris Paris FR \n",
+ "2 grid.473731.5 New York University Florence Florence IT \n",
+ "3 grid.473728.d New York Institute of Technology Vancouver CA \n",
+ "4 grid.449989.1 University of New York in Prague Prague CZ \n",
+ "5 grid.449457.f New York University Shanghai Shanghai CN \n",
+ "6 grid.444973.9 University of New York Tirana Tirana AL \n",
+ "7 grid.440573.1 New York University Abu Dhabi Abu Dhabi AE \n",
+ "8 grid.410685.e SUNY Korea Seoul KR \n",
+ "\n",
+ " country_name latitude linkout \\\n",
+ "0 South Korea 37.376694 [http://www.sunykorea.ac.kr/] \n",
+ "1 France 48.869614 [http://www.nyu.edu/paris.html] \n",
+ "2 Italy 43.795910 [http://www.nyu.edu/florence.html] \n",
+ "3 Canada 49.284374 [http://nyit.edu/vancouver] \n",
+ "4 Czechia 50.074043 [https://www.unyp.cz/] \n",
+ "5 China 31.225506 [https://shanghai.nyu.edu/] \n",
+ "6 Albania 41.311060 [http://unyt.edu.al/] \n",
+ "7 United Arab Emirates 24.485000 [https://nyuad.nyu.edu/] \n",
+ "8 South Korea 37.377018 [http://www.sunykorea.ac.kr/] \n",
+ "\n",
+ " longitude types acronym state_name \n",
+ "0 126.667170 [Education] NaN NaN \n",
+ "1 2.346863 [Education] NaN NaN \n",
+ "2 11.265850 [Education] NYU NaN \n",
+ "3 -123.116480 [Education] NYIT British Columbia \n",
+ "4 14.433994 [Education] UNYP NaN \n",
+ "5 121.533510 [Education] NaN NaN \n",
+ "6 19.801466 [Education] UNYT NaN \n",
+ "7 54.353000 [Education] NaN NaN \n",
+ "8 126.666770 [Education] NaN NaN "
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "%%dsldf \n",
+ "search organizations \n",
+ " for \"new york\" \n",
+ " where types in [\"Education\"]\n",
+ " and country_name != \"United States\"\n",
+ "return organizations limit 10"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "colab_type": "text",
+ "id": "l4V7z5TCd2Fo"
+ },
+ "source": [
+ "### Returning facets \n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 315
+ },
+ "colab_type": "code",
+ "executionInfo": {
+ "elapsed": 1147,
+ "status": "ok",
+ "timestamp": 1574702640852,
+ "user": {
+ "displayName": "Michele Pasin",
+ "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mBu8LVjIGgontF2Wax51BoL5KFx8esezX3bUmaa0g=s64",
+ "userId": "10309320684375994511"
+ },
+ "user_tz": 0
+ },
+ "id": "1fqSIrMkd2Fp",
+ "outputId": "3add0d42-15b5-4471-c75d-2e5ba6e0d86a"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Returned Country_name: 11\n",
+ "\u001b[2mTime: 0.50s\u001b[0m\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "px.bar(df, x=\"filter_by\", y=\"results\", \n",
+ " title=\"Fields distribution for GRID data\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "colab_type": "text",
+ "id": "VsEa7X3EsPYH"
+ },
+ "source": [
+ "## Where to find out more\n",
+ "\n",
+ "Please have a look at the [official documentation](https://docs.dimensions.ai/dsl/data-sources.html) for more information on the organizations data source."
+ ]
+ }
+ ],
+ "metadata": {
+ "colab": {
+ "collapsed_sections": [],
+ "name": "Searching GRID organizations using the Dimensions API.ipynb",
+ "provenance": [
+ {
+ "file_id": "1khRLDKEZ-U_6ARyCJCOocRdH7U-nZKUT",
+ "timestamp": 1574700652421
+ }
+ ]
+ },
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "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.12.8"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/docs/.doctrees/nbsphinx/cookbooks/8-organizations/2-Industry-Collaboration.ipynb b/docs/.doctrees/nbsphinx/cookbooks/8-organizations/2-Industry-Collaboration.ipynb
index 310851ec..55967f0e 100644
--- a/docs/.doctrees/nbsphinx/cookbooks/8-organizations/2-Industry-Collaboration.ipynb
+++ b/docs/.doctrees/nbsphinx/cookbooks/8-organizations/2-Industry-Collaboration.ipynb
@@ -11,7 +11,7 @@
"source": [
"# Identifying the Industry Collaborators of an Academic Institution\n",
"\n",
- "Dimensions uses [GRID](https://grid.ac/) identifiers for institutions, hence you can take advantage of the GRID metadata with Dimensions queries. \n",
+ "Dimensions has an enormous amount of data about organizations and you can query this data with the Dimensions Analytics API.\n",
"\n",
"In this tutorial we identify all organizations that have an `industry` type. \n",
"\n",
@@ -29,7 +29,7 @@
"text": [
"==\n",
"CHANGELOG\n",
- "This notebook was last run on Jan 25, 2022\n",
+ "This notebook was last run on Sep 10, 2025\n",
"==\n"
]
}
@@ -64,19 +64,9 @@
"text/html": [
" \n",
+ " \n",
" "
]
},
@@ -96,8 +86,8 @@
"text": [
"==\n",
"Logging in..\n",
- "\u001b[2mDimcli - Dimensions API Client (v0.9.6)\u001b[0m\n",
- "\u001b[2mConnected to: - DSL v2.0\u001b[0m\n",
+ "\u001b[2mDimcli - Dimensions API Client (v1.4)\u001b[0m\n",
+ "\u001b[2mConnected to: - DSL v2.12\u001b[0m\n",
"\u001b[2mMethod: dsl.ini file\u001b[0m\n"
]
}
@@ -150,8 +140,8 @@
"id": "L6uIjSVnGRQV"
},
"source": [
- "For the purpose of this exercise, we will use [University of Trento, Italy (grid.11696.39)](https://grid.ac/institutes/grid.11696.39) as a starting point. \n",
- "You can pick any other GRID organization of course. Just use a [DSL query](https://digital-science.github.io/dimensions-api-lab/cookbooks/8-organizations/1-GRID-preview.html) or the [GRID website](https://grid.ac/institutes) to discover the ID of an organization that interests you. "
+ "For the purpose of this exercise, we will use University of Trento, Italy (organization ID `grid.11696.39`) as a starting point. \n",
+ "You can pick any other organization of course. Just use a [DSL query](https://digital-science.github.io/dimensions-api-lab/cookbooks/8-organizations/1-GRID-preview.html) to discover the ID of an organization that interests you. "
]
},
{
@@ -182,7 +172,7 @@
{
"data": {
"text/html": [
- "GRID: grid.11696.39 - University of Trento ⧉"
+ "Organization: grid.11696.39 - University of Trento ⧉"
],
"text/plain": [
""
@@ -206,7 +196,7 @@
],
"source": [
"#@markdown The main organization we are interested in:\n",
- "GRIDID = \"grid.11696.39\" #@param {type:\"string\"}\n",
+ "ORGID = \"grid.11696.39\" #@param {type:\"string\"}\n",
" \n",
"#@markdown The start/end year of publications used to extract industry collaborations:\n",
"YEAR_START = 2000 #@param {type: \"slider\", min: 1950, max: 2020}\n",
@@ -219,11 +209,11 @@
"# gen link to Dimensions\n",
"#\n",
"try:\n",
- " gridname = dsl.query(f\"\"\"search organizations where id=\"{GRIDID}\" return organizations[name]\"\"\", verbose=False).organizations[0]['name']\n",
+ " orgname = dsl.query(f\"\"\"search organizations where id=\"{ORGID}\" return organizations[name]\"\"\", verbose=False).organizations[0]['name']\n",
"except:\n",
- " gridname = \"\"\n",
- "from IPython.core.display import display, HTML\n",
- "display(HTML('GRID: {} - {} ⧉'.format(dimensions_url(GRIDID), GRIDID, gridname)))\n",
+ " orgname = \"\"\n",
+ "from IPython.display import display, HTML\n",
+ "display(HTML('Organization: {} - {} ⧉'.format(dimensions_url(ORGID), ORGID, orgname)))\n",
"display(HTML('Time period: {} to {}
"
+ " }) }; "
]
},
"metadata": {},
@@ -9070,7 +6383,7 @@
" x=\"aff_name\", \n",
" height=900, \n",
" color=\"aff_country\",\n",
- " title=f\"Top Countries and Industry collaborators for {gridname}-{GRIDID}\",\n",
+ " title=f\"Top Countries and Industry collaborators for {orgname}-{ORGID}\",\n",
" color_discrete_sequence=px.colors.diverging.Spectral)"
]
}
@@ -9099,7 +6412,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.9.9"
+ "version": "3.12.8"
},
"nteract": {
"version": "0.15.0"
diff --git a/docs/.doctrees/nbsphinx/cookbooks/8-organizations/3-Organizations-Collaboration-Network.ipynb b/docs/.doctrees/nbsphinx/cookbooks/8-organizations/3-Organizations-Collaboration-Network.ipynb
index 9dc9cbcf..ce8f4f27 100644
--- a/docs/.doctrees/nbsphinx/cookbooks/8-organizations/3-Organizations-Collaboration-Network.ipynb
+++ b/docs/.doctrees/nbsphinx/cookbooks/8-organizations/3-Organizations-Collaboration-Network.ipynb
@@ -28,7 +28,7 @@
"text": [
"==\n",
"CHANGELOG\n",
- "This notebook was last run on Aug 22, 2023\n",
+ "This notebook was last run on Sep 10, 2025\n",
"==\n"
]
}
@@ -58,33 +58,14 @@
"Collapsed": "false"
},
"outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.1.2\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m23.2.1\u001b[0m\n",
- "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n"
- ]
- },
{
"data": {
"text/html": [
" \n",
+ " \n",
" "
]
},
@@ -104,8 +85,8 @@
"text": [
"==\n",
"Logging in..\n",
- "\u001b[2mDimcli - Dimensions API Client (v1.1)\u001b[0m\n",
- "\u001b[2mConnected to: - DSL v2.7\u001b[0m\n",
+ "\u001b[2mDimcli - Dimensions API Client (v1.4)\u001b[0m\n",
+ "\u001b[2mConnected to: - DSL v2.12\u001b[0m\n",
"\u001b[2mMethod: dsl.ini file\u001b[0m\n"
]
}
@@ -159,9 +140,9 @@
"id": "L6uIjSVnGRQV"
},
"source": [
- "For the purpose of this exercise, we will use [grid.412125.1](https://grid.ac/institutes/grid.412125.1) (King Abdulaziz University, Saudi Arabia). \n",
+ "For the purpose of this exercise, we will use King Abdulaziz University, Saudi Arabia (grid.412125.1). \n",
"\n",
- "> You can try using a different GRID ID to see how results change, e.g. by [browsing for another GRID organization](https://grid.ac/institutes).\n"
+ "> You can try using a different organization ID to see how results change."
]
},
{
@@ -174,7 +155,7 @@
{
"data": {
"text/html": [
- "GRID: grid.412125.1 - King Abdulaziz University ⧉"
+ "Organization: grid.412125.1 - King Abdulaziz University ⧉"
],
"text/plain": [
""
@@ -209,7 +190,7 @@
}
],
"source": [
- "GRIDID = \"grid.412125.1\" #@param {type:\"string\"}\n",
+ "ORGID = \"grid.412125.1\" #@param {type:\"string\"}\n",
" \n",
"#@markdown The start/end year of publications used to extract patents\n",
"YEAR_START = 2000 #@param {type: \"slider\", min: 1950, max: 2020}\n",
@@ -226,11 +207,11 @@
"# gen link to Dimensions\n",
"#\n",
"try:\n",
- " gridname = dsl.query(f\"\"\"search organizations where id=\"{GRIDID}\" return organizations[name]\"\"\", verbose=False).organizations[0]['name']\n",
+ " orgname = dsl.query(f\"\"\"search organizations where id=\"{ORGID}\" return organizations[name]\"\"\", verbose=False).organizations[0]['name']\n",
"except:\n",
- " gridname = \"\"\n",
+ " orgname = \"\"\n",
"from IPython.display import display, HTML\n",
- "display(HTML('GRID: {} - {} ⧉'.format(dimensions_url(GRIDID), GRIDID, gridname)))\n",
+ "display(HTML('Organization: {} - {} ⧉'.format(dimensions_url(ORGID), ORGID, orgname)))\n",
"display(HTML('Time period: {} to {}'.format(YEAR_START, YEAR_END)))\n",
"display(HTML('Topic: \"{}\"
'.format(TOPIC)))\n"
]
@@ -292,10 +273,10 @@
"Note: \n",
"\n",
"* **Extra columns**. The resulting dataframe contains two extra columns: a) `id_from`, which is the 'seed' institution we start from; b) `level`, an optional parameter representing the network depth of the query (we'll see later how it is used with recursive querying).\n",
- "* **Self-collaboration**. The query returns 11 records - that's because the first one is normally the seed GRID (due to internal collaborations) which we will omit from the results.\n",
+ "* **Self-collaboration**. The query returns 11 records - that's because the first one is normally the seed organization (due to internal collaborations) which we will omit from the results.\n",
"* **Custom changes**. Lastly, it's important to remember that this step can be easily customised by changing the `query_template` sttructure. For example, we could focus on specific research areas (using FOR codes), or set a threshold based on citation counts. The possibilities are endless! \n",
"\n",
- "For example, let's try it out with our GRID ID:"
+ "For example, let's try it out with our organization ID:"
]
},
{
@@ -341,6 +322,7 @@
"
acronym
\n",
"
city_name
\n",
"
count
\n",
+ "
country_code
\n",
"
country_name
\n",
"
latitude
\n",
"
linkout
\n",
@@ -358,7 +340,8 @@
"
King Abdulaziz University
\n",
"
KAU
\n",
"
Jeddah
\n",
- "
1444
\n",
+ "
1435
\n",
+ "
SA
\n",
"
Saudi Arabia
\n",
"
21.493889
\n",
"
[http://www.kau.edu.sa/home_english.aspx]
\n",
@@ -375,6 +358,7 @@
"
NU
\n",
"
Boston
\n",
"
106
\n",
+ "
US
\n",
"
United States
\n",
"
42.339830
\n",
"
[http://www.northeastern.edu/]
\n",
@@ -391,6 +375,7 @@
"
NaN
\n",
"
Cambridge
\n",
"
98
\n",
+ "
US
\n",
"
United States
\n",
"
42.377052
\n",
"
[http://www.harvard.edu/]
\n",
@@ -407,6 +392,7 @@
"
MIT
\n",
"
Cambridge
\n",
"
73
\n",
+ "
US
\n",
"
United States
\n",
"
42.359820
\n",
"
[http://web.mit.edu/]
\n",
@@ -423,6 +409,7 @@
"
NU
\n",
"
Evanston
\n",
"
59
\n",
+ "
US
\n",
"
United States
\n",
"
42.054850
\n",
"
[http://www.northwestern.edu/]
\n",
@@ -434,27 +421,12 @@
" \n",
"
\n",
"
5
\n",
- "
grid.413735.7
\n",
- "
Harvard–MIT Division of Health Sciences and Te...
\n",
- "
HST
\n",
- "
Cambridge
\n",
- "
58
\n",
- "
United States
\n",
- "
42.361780
\n",
- "
[http://hst.mit.edu/]
\n",
- "
-71.086914
\n",
- "
[Education]
\n",
- "
Massachusetts
\n",
- "
grid.412125.1
\n",
- "
1
\n",
- "
\n",
- "
\n",
- "
6
\n",
"
grid.411340.3
\n",
"
Aligarh Muslim University
\n",
"
AMU
\n",
"
Aligarh
\n",
- "
47
\n",
+ "
46
\n",
+ "
IN
\n",
"
India
\n",
"
27.917370
\n",
"
[http://www.amu.ac.in/]
\n",
@@ -465,12 +437,13 @@
"
1
\n",
"
\n",
"
\n",
- "
7
\n",
+ "
6
\n",
"
grid.412621.2
\n",
"
Quaid-i-Azam University
\n",
"
QAU
\n",
"
Islamabad
\n",
- "
47
\n",
+ "
46
\n",
+ "
PK
\n",
"
Pakistan
\n",
"
33.747223
\n",
"
[http://www.qau.edu.pk/]
\n",
@@ -481,12 +454,47 @@
"
1
\n",
"
\n",
"
\n",
+ "
7
\n",
+ "
grid.411818.5
\n",
+ "
Jamia Millia Islamia
\n",
+ "
JMI
\n",
+ "
New Delhi
\n",
+ "
40
\n",
+ "
IN
\n",
+ "
India
\n",
+ "
28.561607
\n",
+ "
[http://jmi.ac.in/]
\n",
+ "
77.280150
\n",
+ "
[Education]
\n",
+ "
NaN
\n",
+ "
grid.412125.1
\n",
+ "
1
\n",
+ "
\n",
+ "
\n",
"
8
\n",
+ "
grid.62560.37
\n",
+ "
Brigham and Womens Hospital Inc
\n",
+ "
BWH
\n",
+ "
Boston
\n",
+ "
40
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
NaN
\n",
+ "
[http://www.brighamandwomens.org/]
\n",
+ "
NaN
\n",
+ "
[Healthcare]
\n",
+ "
Massachusetts
\n",
+ "
grid.412125.1
\n",
+ "
1
\n",
+ "
\n",
+ "
\n",
+ "
9
\n",
"
grid.33003.33
\n",
"
Suez Canal University
\n",
"
NaN
\n",
"
Ismailia
\n",
- "
42
\n",
+ "
39
\n",
+ "
EG
\n",
"
Egypt
\n",
"
30.622778
\n",
"
[http://scuegypt.edu.eg/ar/]
\n",
@@ -497,28 +505,13 @@
"
1
\n",
"
\n",
"
\n",
- "
9
\n",
- "
grid.411818.5
\n",
- "
Jamia Millia Islamia
\n",
- "
JMI
\n",
- "
New Delhi
\n",
- "
42
\n",
- "
India
\n",
- "
28.561607
\n",
- "
[http://jmi.ac.in/]
\n",
- "
77.280150
\n",
- "
[Education]
\n",
- "
NaN
\n",
- "
grid.412125.1
\n",
- "
1
\n",
- "
\n",
- "
\n",
"
10
\n",
"
grid.56302.32
\n",
"
King Saud University
\n",
"
KSU
\n",
"
Riyadh
\n",
- "
42
\n",
+ "
39
\n",
+ "
SA
\n",
"
Saudi Arabia
\n",
"
24.723982
\n",
"
[http://ksu.edu.sa/en/]
\n",
@@ -533,44 +526,44 @@
""
],
"text/plain": [
- " id name acronym \\\n",
- "0 grid.412125.1 King Abdulaziz University KAU \n",
- "1 grid.261112.7 Northeastern University NU \n",
- "2 grid.38142.3c Harvard University NaN \n",
- "3 grid.116068.8 Massachusetts Institute of Technology MIT \n",
- "4 grid.16753.36 Northwestern University NU \n",
- "5 grid.413735.7 Harvard–MIT Division of Health Sciences and Te... HST \n",
- "6 grid.411340.3 Aligarh Muslim University AMU \n",
- "7 grid.412621.2 Quaid-i-Azam University QAU \n",
- "8 grid.33003.33 Suez Canal University NaN \n",
- "9 grid.411818.5 Jamia Millia Islamia JMI \n",
- "10 grid.56302.32 King Saud University KSU \n",
+ " id name acronym city_name \\\n",
+ "0 grid.412125.1 King Abdulaziz University KAU Jeddah \n",
+ "1 grid.261112.7 Northeastern University NU Boston \n",
+ "2 grid.38142.3c Harvard University NaN Cambridge \n",
+ "3 grid.116068.8 Massachusetts Institute of Technology MIT Cambridge \n",
+ "4 grid.16753.36 Northwestern University NU Evanston \n",
+ "5 grid.411340.3 Aligarh Muslim University AMU Aligarh \n",
+ "6 grid.412621.2 Quaid-i-Azam University QAU Islamabad \n",
+ "7 grid.411818.5 Jamia Millia Islamia JMI New Delhi \n",
+ "8 grid.62560.37 Brigham and Womens Hospital Inc BWH Boston \n",
+ "9 grid.33003.33 Suez Canal University NaN Ismailia \n",
+ "10 grid.56302.32 King Saud University KSU Riyadh \n",
"\n",
- " city_name count country_name latitude \\\n",
- "0 Jeddah 1444 Saudi Arabia 21.493889 \n",
- "1 Boston 106 United States 42.339830 \n",
- "2 Cambridge 98 United States 42.377052 \n",
- "3 Cambridge 73 United States 42.359820 \n",
- "4 Evanston 59 United States 42.054850 \n",
- "5 Cambridge 58 United States 42.361780 \n",
- "6 Aligarh 47 India 27.917370 \n",
- "7 Islamabad 47 Pakistan 33.747223 \n",
- "8 Ismailia 42 Egypt 30.622778 \n",
- "9 New Delhi 42 India 28.561607 \n",
- "10 Riyadh 42 Saudi Arabia 24.723982 \n",
+ " count country_code country_name latitude \\\n",
+ "0 1435 SA Saudi Arabia 21.493889 \n",
+ "1 106 US United States 42.339830 \n",
+ "2 98 US United States 42.377052 \n",
+ "3 73 US United States 42.359820 \n",
+ "4 59 US United States 42.054850 \n",
+ "5 46 IN India 27.917370 \n",
+ "6 46 PK Pakistan 33.747223 \n",
+ "7 40 IN India 28.561607 \n",
+ "8 40 US United States NaN \n",
+ "9 39 EG Egypt 30.622778 \n",
+ "10 39 SA Saudi Arabia 24.723982 \n",
"\n",
- " linkout longitude types \\\n",
- "0 [http://www.kau.edu.sa/home_english.aspx] 39.250280 [Education] \n",
- "1 [http://www.northeastern.edu/] -71.089180 [Education] \n",
- "2 [http://www.harvard.edu/] -71.116650 [Education] \n",
- "3 [http://web.mit.edu/] -71.092110 [Education] \n",
- "4 [http://www.northwestern.edu/] -87.673940 [Education] \n",
- "5 [http://hst.mit.edu/] -71.086914 [Education] \n",
- "6 [http://www.amu.ac.in/] 78.077850 [Education] \n",
- "7 [http://www.qau.edu.pk/] 73.138885 [Education] \n",
- "8 [http://scuegypt.edu.eg/ar/] 32.275000 [Education] \n",
- "9 [http://jmi.ac.in/] 77.280150 [Education] \n",
- "10 [http://ksu.edu.sa/en/] 46.645840 [Education] \n",
+ " linkout longitude types \\\n",
+ "0 [http://www.kau.edu.sa/home_english.aspx] 39.250280 [Education] \n",
+ "1 [http://www.northeastern.edu/] -71.089180 [Education] \n",
+ "2 [http://www.harvard.edu/] -71.116650 [Education] \n",
+ "3 [http://web.mit.edu/] -71.092110 [Education] \n",
+ "4 [http://www.northwestern.edu/] -87.673940 [Education] \n",
+ "5 [http://www.amu.ac.in/] 78.077850 [Education] \n",
+ "6 [http://www.qau.edu.pk/] 73.138885 [Education] \n",
+ "7 [http://jmi.ac.in/] 77.280150 [Education] \n",
+ "8 [http://www.brighamandwomens.org/] NaN [Healthcare] \n",
+ "9 [http://scuegypt.edu.eg/ar/] 32.275000 [Education] \n",
+ "10 [http://ksu.edu.sa/en/] 46.645840 [Education] \n",
"\n",
" state_name id_from level \n",
"0 NaN grid.412125.1 1 \n",
@@ -578,10 +571,10 @@
"2 Massachusetts grid.412125.1 1 \n",
"3 Massachusetts grid.412125.1 1 \n",
"4 Illinois grid.412125.1 1 \n",
- "5 Massachusetts grid.412125.1 1 \n",
- "6 Uttar Pradesh grid.412125.1 1 \n",
+ "5 Uttar Pradesh grid.412125.1 1 \n",
+ "6 NaN grid.412125.1 1 \n",
"7 NaN grid.412125.1 1 \n",
- "8 NaN grid.412125.1 1 \n",
+ "8 Massachusetts grid.412125.1 1 \n",
"9 NaN grid.412125.1 1 \n",
"10 NaN grid.412125.1 1 "
]
@@ -592,7 +585,7 @@
}
],
"source": [
- "get_collaborators(GRIDID, printquery=True)"
+ "get_collaborators(ORGID, printquery=True)"
]
},
{
@@ -605,9 +598,9 @@
"\n",
"What if we want to retrieve the collaborators of the collaborators? In other words, what if we want to generate a larger network?\n",
"\n",
- "If we think of our collaboration data as a [graph structure](https://en.wikipedia.org/wiki/Graph_(discrete_mathematics)) with nodes and edges, we can see that the `get_collaborators` function defined above is limited. That's because it allows to obtain only the objects *directly* linked to the 'seed' GRID organization. \n",
+ "If we think of our collaboration data as a [graph structure](https://en.wikipedia.org/wiki/Graph_(discrete_mathematics)) with nodes and edges, we can see that the `get_collaborators` function defined above is limited. That's because it allows to obtain only the objects *directly* linked to the 'seed' organization. \n",
"\n",
- "We would like to run the same collaborators-extraction step **iteratively** for any GRID ID in our results, so to generate an N-degrees network where N is chosen by us. \n",
+ "We would like to run the same collaborators-extraction step **iteratively** for any ID in our results, so to generate an N-degrees network where N is chosen by us. \n",
"\n",
"To this purpose, we can set up a [recursive](https://en.wikipedia.org/wiki/Recursion_(computer_science)) function. This function essentially repeats the `get_collaborators` function as many times as needed. Here's what it looks like:"
]
@@ -627,8 +620,8 @@
" print(\"--\" * thislevel, seed, \" :: level =\", thislevel)\n",
" if thislevel < maxlevel:\n",
" # remove the originating grid-id\n",
- " gridslist = list(results[results['id'] != GRIDID]['id'])\n",
- " next_level_results = [recursive_network(x, maxlevel, thislevel+1) for x in gridslist]\n",
+ " orgslist = list(results[results['id'] != ORGID]['id'])\n",
+ " next_level_results = [recursive_network(x, maxlevel, thislevel+1) for x in orgslist]\n",
" next_level_results = pd.concat(next_level_results)\n",
" results = pd.concat([results, next_level_results])\n",
" return results\n",
@@ -671,11 +664,11 @@
"---- grid.38142.3c :: level = 2\n",
"---- grid.116068.8 :: level = 2\n",
"---- grid.16753.36 :: level = 2\n",
- "---- grid.413735.7 :: level = 2\n",
"---- grid.411340.3 :: level = 2\n",
"---- grid.412621.2 :: level = 2\n",
- "---- grid.33003.33 :: level = 2\n",
"---- grid.411818.5 :: level = 2\n",
+ "---- grid.62560.37 :: level = 2\n",
+ "---- grid.33003.33 :: level = 2\n",
"---- grid.56302.32 :: level = 2\n"
]
},
@@ -721,7 +714,7 @@
"
grid.412125.1
\n",
"
grid.412125.1
\n",
"
1
\n",
- "
1444
\n",
+ "
1435
\n",
"
King Abdulaziz University
\n",
"
KAU
\n",
"
Jeddah
\n",
@@ -802,7 +795,7 @@
],
"text/plain": [
" id_from id_to level count \\\n",
- "0 grid.412125.1 grid.412125.1 1 1444 \n",
+ "0 grid.412125.1 grid.412125.1 1 1435 \n",
"1 grid.412125.1 grid.261112.7 1 106 \n",
"2 grid.412125.1 grid.38142.3c 1 98 \n",
"3 grid.412125.1 grid.116068.8 1 73 \n",
@@ -836,7 +829,7 @@
}
],
"source": [
- "collaborators = recursive_network(GRIDID, maxlevel=2)\n",
+ "collaborators = recursive_network(ORGID, maxlevel=2)\n",
"# change column order for readability purposes\n",
"collaborators.rename(columns={\"id\": \"id_to\"}, inplace=True)\n",
"collaborators = collaborators[['id_from', 'id_to', 'level', 'count', 'name', 'acronym', 'city_name', 'state_name', 'country_name', 'latitude', 'longitude', 'linkout', 'types' ]]\n",
@@ -896,7 +889,7 @@
" "
],
"text/plain": [
- ""
+ ""
]
},
"execution_count": 8,
@@ -945,13 +938,13 @@
"\n",
" # calc size based on level\n",
" maxsize = int(nodes['level'].max()) + 1\n",
- " if row['id_to'] == GRIDID:\n",
+ " if row['id_to'] == ORGID:\n",
" size = maxsize\n",
" else:\n",
" size = maxsize - row['level']\n",
"\n",
" # calc color based on level\n",
- " if row['id_to'] == GRIDID:\n",
+ " if row['id_to'] == ORGID:\n",
" color = palette[0]\n",
" else:\n",
" color = palette[row['level'] * 2]\n",
@@ -990,10 +983,10 @@
" return g\n",
"\n",
"#\n",
- "# finall, run the viz builder\n",
+ "# finally, run the viz builder\n",
"#\n",
"g = build_visualization(collaborators)\n",
- "g.show(f\"network_{GRIDID}.html\")"
+ "g.show(f\"network_{ORGID}.html\")"
]
},
{
@@ -1006,7 +999,7 @@
"\n",
"What if we want to show a collaboration network focusing only on 'government' organizations? \n",
"\n",
- "That's pretty easy to do, since the GRID database includes information about **organization types**. We can easily see what types are available using the API and a `facet` query:"
+ "That's pretty easy to do, since the organization data set includes information about **organization types**. We can easily see what types are available using the API and a `facet` query:"
]
},
{
@@ -1020,8 +1013,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "Returned Types: 9\n",
- "\u001b[2mTime: 1.00s\u001b[0m\n"
+ "Returned Types: 8\n",
+ "\u001b[2mTime: 2.54s\u001b[0m\n"
]
},
{
@@ -1052,64 +1045,58 @@
" \n",
"
\n",
"
0
\n",
- "
Company
\n",
- "
30742
\n",
+ "
Other
\n",
+ "
165766
\n",
"
\n",
"
\n",
"
1
\n",
- "
Education
\n",
- "
20761
\n",
+ "
Company
\n",
+ "
158994
\n",
"
\n",
"
\n",
"
2
\n",
- "
Nonprofit
\n",
- "
17573
\n",
+ "
Education
\n",
+ "
22805
\n",
"
\n",
"
\n",
"
3
\n",
- "
Healthcare
\n",
- "
13926
\n",
+ "
Nonprofit
\n",
+ "
18361
\n",
"
\n",
"
\n",
"
4
\n",
- "
Facility
\n",
- "
10168
\n",
+ "
Healthcare
\n",
+ "
14865
\n",
"
\n",
"
\n",
"
5
\n",
"
Government
\n",
- "
6580
\n",
+ "
11545
\n",
"
\n",
"
\n",
"
6
\n",
- "
Other
\n",
- "
4017
\n",
+ "
Facility
\n",
+ "
10692
\n",
"
\n",
"
\n",
"
7
\n",
"
Archive
\n",
- "
2926
\n",
- "
\n",
- "
\n",
- "
8
\n",
- "
Education,Company
\n",
- "
1
\n",
+ "
3059
\n",
"
\n",
" \n",
"\n",
""
],
"text/plain": [
- " id count\n",
- "0 Company 30742\n",
- "1 Education 20761\n",
- "2 Nonprofit 17573\n",
- "3 Healthcare 13926\n",
- "4 Facility 10168\n",
- "5 Government 6580\n",
- "6 Other 4017\n",
- "7 Archive 2926\n",
- "8 Education,Company 1"
+ " id count\n",
+ "0 Other 165766\n",
+ "1 Company 158994\n",
+ "2 Education 22805\n",
+ "3 Nonprofit 18361\n",
+ "4 Healthcare 14865\n",
+ "5 Government 11545\n",
+ "6 Facility 10692\n",
+ "7 Archive 3059"
]
},
"execution_count": 9,
@@ -1133,7 +1120,7 @@
"* **Get more results**. We increase the number of results returned: `..return research_orgs limit 50`. This is to ensure we still have enough results after removing the ones that don't have the chosen 'type'\n",
"* **Remove unwanted data**. The new query filter `research_orgs.types in [\"{}\"]` will return also publications with multiple authors/affiliations, even though only one of them has the desired 'type'. So an extra step is required and this is achieved via the `keep_type` function below. This function simply filters out all unwanted organizations data after they're retrieved from the API. \n",
"\n",
- "That's it! Run the cell below to generate a new visualization showing only \"Government\" collaborators. Or try changing the value of `GRID_TYPE` to see different results. \n"
+ "That's it! Run the cell below to generate a new visualization showing only \"Government\" collaborators. Or try changing the value of `ORG_TYPE` to see different results. \n"
]
},
{
@@ -1150,7 +1137,6 @@
"-- grid.412125.1 :: level = 1\n",
"---- grid.7327.1 :: level = 2\n",
"---- grid.9227.e :: level = 2\n",
- "---- grid.20256.33 :: level = 2\n",
"---- grid.1089.0 :: level = 2\n",
"---- grid.14467.30 :: level = 2\n",
"network_grid.412125.1_Government.html\n"
@@ -1171,7 +1157,7 @@
" "
],
"text/plain": [
- ""
+ ""
]
},
"execution_count": 10,
@@ -1182,7 +1168,7 @@
"source": [
"#@markdown Try using one of the organization types from the list above\n",
"\n",
- "GRID_TYPE = \"Government\" #@param {type:\"string\"}\n",
+ "ORG_TYPE = \"Government\" #@param {type:\"string\"}\n",
"\n",
"query = \"\"\"search publications {}\n",
" where year in [{}:{}] \n",
@@ -1193,7 +1179,7 @@
"def keep_only_type(data, a_type, orgid):\n",
" clean_list = []\n",
" for x in data.research_orgs:\n",
- " # include also originating GRID to ensure chart is complete\n",
+ " # include also originating org to ensure chart is complete\n",
" if x['id'] == orgid or a_type in x['types']:\n",
" clean_list.append(x)\n",
" data.json['research_orgs'] = clean_list\n",
@@ -1206,8 +1192,8 @@
" TOPIC_CLAUSE = f\"\"\"for \"{TOPIC}\" \"\"\"\n",
" else:\n",
" TOPIC_CLAUSE = \"\"\n",
- " # include also the GRID_TYPE\n",
- " query_full = query.format(TOPIC_CLAUSE, YEAR_START, YEAR_END, orgid, GRID_TYPE)\n",
+ " # include also the ORG_TYPE\n",
+ " query_full = query.format(TOPIC_CLAUSE, YEAR_START, YEAR_END, orgid, ORG_TYPE)\n",
" if printquery: print(query_full)\n",
" data = dsl.query(query_full, verbose=False)\n",
" # remove results with unwanted types \n",
@@ -1221,7 +1207,7 @@
"#\n",
"# RUN THE RECURSIVE QUERY (same code as above)\n",
"#\n",
- "collaborators = recursive_network(GRIDID, maxlevel=2)\n",
+ "collaborators = recursive_network(ORGID, maxlevel=2)\n",
"collaborators.rename(columns={\"id\": \"id_to\"}, inplace=True)\n",
"collaborators = collaborators[['id_from', 'id_to', 'level', 'count', 'name', 'acronym', 'city_name', 'country_name', 'latitude', 'longitude', 'linkout', 'types' ]]\n",
"\n",
@@ -1229,7 +1215,7 @@
"# BUILD VIZ\n",
"#\n",
"g = build_visualization(collaborators)\n",
- "g.show(f\"network_{GRIDID}_{GRID_TYPE}.html\")\n",
+ "g.show(f\"network_{ORGID}_{ORG_TYPE}.html\")\n",
"\n"
]
},
@@ -1272,7 +1258,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.11.1"
+ "version": "3.12.8"
},
"nteract": {
"version": "0.15.0"
diff --git a/docs/.doctrees/nbsphinx/cookbooks/8-organizations/4-international-collaboration-by-year.ipynb b/docs/.doctrees/nbsphinx/cookbooks/8-organizations/4-international-collaboration-by-year.ipynb
index cea374f0..40286910 100644
--- a/docs/.doctrees/nbsphinx/cookbooks/8-organizations/4-international-collaboration-by-year.ipynb
+++ b/docs/.doctrees/nbsphinx/cookbooks/8-organizations/4-international-collaboration-by-year.ipynb
@@ -24,7 +24,7 @@
"text": [
"==\n",
"CHANGELOG\n",
- "This notebook was last run on Jan 25, 2022\n",
+ "This notebook was last run on Sep 10, 2025\n",
"==\n"
]
}
@@ -49,7 +49,7 @@
},
{
"cell_type": "code",
- "execution_count": 16,
+ "execution_count": 2,
"metadata": {
"Collapsed": "false"
},
@@ -59,19 +59,9 @@
"text/html": [
" \n",
+ " \n",
" "
]
},
@@ -91,8 +81,8 @@
"text": [
"==\n",
"Logging in..\n",
- "\u001b[2mDimcli - Dimensions API Client (v0.9.6)\u001b[0m\n",
- "\u001b[2mConnected to: - DSL v2.0\u001b[0m\n",
+ "\u001b[2mDimcli - Dimensions API Client (v1.4)\u001b[0m\n",
+ "\u001b[2mConnected to: - DSL v2.12\u001b[0m\n",
"\u001b[2mMethod: dsl.ini file\u001b[0m\n"
]
}
@@ -137,7 +127,7 @@
},
{
"cell_type": "code",
- "execution_count": 17,
+ "execution_count": 3,
"metadata": {
"Collapsed": "false"
},
@@ -146,8 +136,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "Returned Organizations: 16 (total = 16)\n",
- "\u001b[2mTime: 0.57s\u001b[0m\n"
+ "Returned Organizations: 20 (total = 23)\n",
+ "\u001b[2mTime: 0.53s\u001b[0m\n"
]
},
{
@@ -171,225 +161,298 @@
" \n",
"
\n",
"
\n",
+ "
id
\n",
+ "
name
\n",
"
city_name
\n",
+ "
country_code
\n",
"
country_name
\n",
- "
id
\n",
+ "
types
\n",
+ "
state_name
\n",
"
latitude
\n",
"
linkout
\n",
"
longitude
\n",
- "
name
\n",
- "
state_name
\n",
- "
types
\n",
"
acronym
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
+ "
grid.772384.d
\n",
+ "
Trelleborg Marine Systems Melbourne Pty Ltd
\n",
+ "
Victoria
\n",
+ "
AU
\n",
+ "
Australia
\n",
+ "
[Company]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
+ "
grid.746611.3
\n",
+ "
Noyes Bros Melbourne Pty Ltd
\n",
+ "
NaN
\n",
+ "
AU
\n",
+ "
Australia
\n",
+ "
[Other]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
grid.631568.f
\n",
+ "
CityLink Melbourne Ltd
\n",
+ "
NaN
\n",
+ "
AU
\n",
+ "
Australia
\n",
+ "
[Other]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
3
\n",
+ "
grid.530408.a
\n",
+ "
Melbourne Institute of Technology
\n",
"
Melbourne
\n",
+ "
AU
\n",
"
Australia
\n",
+ "
[Nonprofit]
\n",
+ "
Victoria
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
4
\n",
"
grid.511296.8
\n",
+ "
Melbourne Genomics Health Alliance
\n",
+ "
Melbourne
\n",
+ "
AU
\n",
+ "
Australia
\n",
+ "
[Nonprofit]
\n",
+ "
Victoria
\n",
"
-37.797960
\n",
"
[https://www.melbournegenomics.org.au/]
\n",
"
144.953870
\n",
- "
Melbourne Genomics Health Alliance
\n",
- "
Victoria
\n",
- "
[Nonprofit]
\n",
"
NaN
\n",
"
\n",
"
\n",
- "
1
\n",
+ "
5
\n",
+ "
grid.493437.e
\n",
+ "
RMIT Europe
\n",
"
Barcelona
\n",
+ "
ES
\n",
"
Spain
\n",
- "
grid.493437.e
\n",
+ "
[Education]
\n",
+ "
NaN
\n",
"
41.402576
\n",
"
[https://www.rmit.eu]
\n",
"
2.194333
\n",
- "
RMIT Europe
\n",
- "
NaN
\n",
- "
[Education]
\n",
"
RMIT
\n",
"
\n",
"
\n",
- "
2
\n",
+ "
6
\n",
+ "
grid.490309.7
\n",
+ "
Melbourne Sexual Health Centre
\n",
"
Carlton
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.490309.7
\n",
+ "
[Healthcare]
\n",
+ "
Victoria
\n",
"
-37.803123
\n",
"
[https://www.mshc.org.au/]
\n",
"
144.963840
\n",
- "
Melbourne Sexual Health Centre
\n",
- "
Victoria
\n",
- "
[Healthcare]
\n",
"
MSHC
\n",
"
\n",
"
\n",
- "
3
\n",
+ "
7
\n",
+ "
grid.477970.a
\n",
+ "
Melbourne Clinic
\n",
"
Richmond
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.477970.a
\n",
+ "
[Healthcare]
\n",
+ "
Victoria
\n",
"
-37.815063
\n",
"
[http://www.themelbourneclinic.com.au/]
\n",
"
144.999650
\n",
- "
Melbourne Clinic
\n",
- "
Victoria
\n",
- "
[Healthcare]
\n",
"
NaN
\n",
"
\n",
"
\n",
- "
4
\n",
- "
Melbourne
\n",
+ "
8
\n",
+ "
grid.474755.0
\n",
+ "
Leica Biosystems Melbourne Pty Ltd
\n",
+ "
Mt. Waverley
\n",
+ "
AU
\n",
"
Australia
\n",
+ "
[Company]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
[http://www.danaher.com/]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
9
\n",
"
grid.469061.c
\n",
+ "
Ridley College
\n",
+ "
Melbourne
\n",
+ "
AU
\n",
+ "
Australia
\n",
+ "
[Education]
\n",
+ "
Victoria
\n",
"
-37.783780
\n",
"
[https://www.ridley.edu.au/]
\n",
"
144.957660
\n",
- "
Ridley College
\n",
- "
Victoria
\n",
- "
[Education]
\n",
"
NaN
\n",
"
\n",
"
\n",
- "
5
\n",
+ "
10
\n",
+ "
grid.469026.f
\n",
+ "
Melbourne School of Theology
\n",
"
Melbourne
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.469026.f
\n",
+ "
[Education]
\n",
+ "
Victoria
\n",
"
-37.859700
\n",
"
[http://www.mst.edu.au/]
\n",
"
145.209410
\n",
- "
Melbourne School of Theology
\n",
- "
Victoria
\n",
- "
[Education]
\n",
"
MBI
\n",
"
\n",
"
\n",
- "
6
\n",
+ "
11
\n",
+ "
grid.468079.4
\n",
+ "
Port of Melbourne Corporation
\n",
"
Melbourne
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.468079.4
\n",
+ "
[Government]
\n",
+ "
Victoria
\n",
"
-37.824028
\n",
"
[http://www.portofmelbourne.com/]
\n",
"
144.907070
\n",
- "
Port of Melbourne Corporation
\n",
- "
Victoria
\n",
- "
[Government]
\n",
"
PoMC
\n",
"
\n",
"
\n",
- "
7
\n",
+ "
12
\n",
+ "
grid.468069.5
\n",
+ "
Melbourne Water
\n",
"
Melbourne
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.468069.5
\n",
+ "
[Government]
\n",
+ "
Victoria
\n",
"
-37.814007
\n",
"
[http://www.melbournewater.com.au/Pages/home.a...
\n",
"
144.946700
\n",
- "
Melbourne Water
\n",
- "
Victoria
\n",
- "
[Government]
\n",
"
NaN
\n",
"
\n",
"
\n",
- "
8
\n",
+ "
13
\n",
+ "
grid.452643.2
\n",
+ "
Melbourne Bioinformatics
\n",
"
Melbourne
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.452643.2
\n",
+ "
[Education]
\n",
+ "
Victoria
\n",
"
-37.799847
\n",
- "
[https://www.vlsci.org.au/]
\n",
+ "
[https://www.melbournebioinformatics.org.au]
\n",
"
144.964460
\n",
- "
Victorian Life Sciences Computation Initiative
\n",
- "
Victoria
\n",
- "
[Education]
\n",
- "
NaN
\n",
+ "
VLSCI
\n",
"
\n",
"
\n",
- "
9
\n",
+ "
14
\n",
+ "
grid.449135.e
\n",
+ "
Melbourne Free University
\n",
"
Melbourne
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.449135.e
\n",
+ "
[Education]
\n",
+ "
Victoria
\n",
"
NaN
\n",
"
NaN
\n",
"
NaN
\n",
- "
Melbourne Free University
\n",
- "
Victoria
\n",
- "
[Education]
\n",
"
NaN
\n",
"
\n",
"
\n",
- "
10
\n",
+ "
15
\n",
+ "
grid.440113.3
\n",
+ "
Royal Dental Hospital of Melbourne
\n",
"
Melbourne
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.440113.3
\n",
+ "
[Healthcare]
\n",
+ "
Victoria
\n",
"
-37.799260
\n",
"
[https://www.dhsv.org.au]
\n",
"
144.964630
\n",
- "
Royal Dental Hospital of Melbourne
\n",
- "
Victoria
\n",
- "
[Healthcare]
\n",
"
RDHM
\n",
"
\n",
"
\n",
- "
11
\n",
+ "
16
\n",
+ "
grid.438527.f
\n",
+ "
Royal Melbourne Institute of Technology Univer...
\n",
"
Melbourne
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.429299.d
\n",
- "
-37.798940
\n",
- "
[http://www.mh.org.au/]
\n",
- "
144.955930
\n",
- "
Melbourne Health
\n",
+ "
[Other]
\n",
"
Victoria
\n",
- "
[Healthcare]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
"
NaN
\n",
"
\n",
"
\n",
- "
12
\n",
+ "
17
\n",
+ "
grid.429299.d
\n",
+ "
Melbourne Health
\n",
"
Melbourne
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.416153.4
\n",
- "
-37.798756
\n",
- "
[http://www.rmh.mh.org.au/]
\n",
- "
144.955930
\n",
- "
Royal Melbourne Hospital
\n",
- "
Victoria
\n",
"
[Healthcare]
\n",
- "
RMH
\n",
- "
\n",
- "
\n",
- "
13
\n",
- "
Clayton
\n",
- "
Australia
\n",
- "
grid.410660.5
\n",
- "
-37.915775
\n",
- "
[http://nanomelbourne.com/]
\n",
- "
145.143660
\n",
- "
Melbourne Centre for Nanofabrication
\n",
"
Victoria
\n",
- "
[Facility]
\n",
- "
MCN
\n",
+ "
-37.798940
\n",
+ "
[http://www.mh.org.au/]
\n",
+ "
144.955930
\n",
+ "
NaN
\n",
"
\n",
"
\n",
- "
14
\n",
+ "
18
\n",
+ "
grid.416153.4
\n",
+ "
Royal Melbourne Hospital
\n",
"
Melbourne
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.1017.7
\n",
- "
-37.806747
\n",
- "
[https://www.rmit.edu.au/]
\n",
- "
144.962570
\n",
- "
RMIT University
\n",
+ "
[Healthcare]
\n",
"
Victoria
\n",
- "
[Education]
\n",
- "
RMIT
\n",
+ "
-37.798756
\n",
+ "
[http://www.rmh.mh.org.au/]
\n",
+ "
144.955930
\n",
+ "
RMH
\n",
"
\n",
"
\n",
- "
15
\n",
+ "
19
\n",
+ "
grid.413105.2
\n",
+ "
St Vincent's Hospital
\n",
"
Melbourne
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.1008.9
\n",
- "
-37.797115
\n",
- "
[http://www.unimelb.edu.au/]
\n",
- "
144.959980
\n",
- "
University of Melbourne
\n",
+ "
[Healthcare]
\n",
"
Victoria
\n",
- "
[Education]
\n",
+ "
-37.807000
\n",
+ "
[http://www.svhm.org.au/Pages/Home.aspx]
\n",
+ "
144.975000
\n",
"
NaN
\n",
"
\n",
" \n",
@@ -397,80 +460,96 @@
""
],
"text/plain": [
- " city_name country_name id latitude \\\n",
- "0 Melbourne Australia grid.511296.8 -37.797960 \n",
- "1 Barcelona Spain grid.493437.e 41.402576 \n",
- "2 Carlton Australia grid.490309.7 -37.803123 \n",
- "3 Richmond Australia grid.477970.a -37.815063 \n",
- "4 Melbourne Australia grid.469061.c -37.783780 \n",
- "5 Melbourne Australia grid.469026.f -37.859700 \n",
- "6 Melbourne Australia grid.468079.4 -37.824028 \n",
- "7 Melbourne Australia grid.468069.5 -37.814007 \n",
- "8 Melbourne Australia grid.452643.2 -37.799847 \n",
- "9 Melbourne Australia grid.449135.e NaN \n",
- "10 Melbourne Australia grid.440113.3 -37.799260 \n",
- "11 Melbourne Australia grid.429299.d -37.798940 \n",
- "12 Melbourne Australia grid.416153.4 -37.798756 \n",
- "13 Clayton Australia grid.410660.5 -37.915775 \n",
- "14 Melbourne Australia grid.1017.7 -37.806747 \n",
- "15 Melbourne Australia grid.1008.9 -37.797115 \n",
+ " id name \\\n",
+ "0 grid.772384.d Trelleborg Marine Systems Melbourne Pty Ltd \n",
+ "1 grid.746611.3 Noyes Bros Melbourne Pty Ltd \n",
+ "2 grid.631568.f CityLink Melbourne Ltd \n",
+ "3 grid.530408.a Melbourne Institute of Technology \n",
+ "4 grid.511296.8 Melbourne Genomics Health Alliance \n",
+ "5 grid.493437.e RMIT Europe \n",
+ "6 grid.490309.7 Melbourne Sexual Health Centre \n",
+ "7 grid.477970.a Melbourne Clinic \n",
+ "8 grid.474755.0 Leica Biosystems Melbourne Pty Ltd \n",
+ "9 grid.469061.c Ridley College \n",
+ "10 grid.469026.f Melbourne School of Theology \n",
+ "11 grid.468079.4 Port of Melbourne Corporation \n",
+ "12 grid.468069.5 Melbourne Water \n",
+ "13 grid.452643.2 Melbourne Bioinformatics \n",
+ "14 grid.449135.e Melbourne Free University \n",
+ "15 grid.440113.3 Royal Dental Hospital of Melbourne \n",
+ "16 grid.438527.f Royal Melbourne Institute of Technology Univer... \n",
+ "17 grid.429299.d Melbourne Health \n",
+ "18 grid.416153.4 Royal Melbourne Hospital \n",
+ "19 grid.413105.2 St Vincent's Hospital \n",
"\n",
- " linkout longitude \\\n",
- "0 [https://www.melbournegenomics.org.au/] 144.953870 \n",
- "1 [https://www.rmit.eu] 2.194333 \n",
- "2 [https://www.mshc.org.au/] 144.963840 \n",
- "3 [http://www.themelbourneclinic.com.au/] 144.999650 \n",
- "4 [https://www.ridley.edu.au/] 144.957660 \n",
- "5 [http://www.mst.edu.au/] 145.209410 \n",
- "6 [http://www.portofmelbourne.com/] 144.907070 \n",
- "7 [http://www.melbournewater.com.au/Pages/home.a... 144.946700 \n",
- "8 [https://www.vlsci.org.au/] 144.964460 \n",
- "9 NaN NaN \n",
- "10 [https://www.dhsv.org.au] 144.964630 \n",
- "11 [http://www.mh.org.au/] 144.955930 \n",
- "12 [http://www.rmh.mh.org.au/] 144.955930 \n",
- "13 [http://nanomelbourne.com/] 145.143660 \n",
- "14 [https://www.rmit.edu.au/] 144.962570 \n",
- "15 [http://www.unimelb.edu.au/] 144.959980 \n",
+ " city_name country_code country_name types state_name \\\n",
+ "0 Victoria AU Australia [Company] NaN \n",
+ "1 NaN AU Australia [Other] NaN \n",
+ "2 NaN AU Australia [Other] NaN \n",
+ "3 Melbourne AU Australia [Nonprofit] Victoria \n",
+ "4 Melbourne AU Australia [Nonprofit] Victoria \n",
+ "5 Barcelona ES Spain [Education] NaN \n",
+ "6 Carlton AU Australia [Healthcare] Victoria \n",
+ "7 Richmond AU Australia [Healthcare] Victoria \n",
+ "8 Mt. Waverley AU Australia [Company] NaN \n",
+ "9 Melbourne AU Australia [Education] Victoria \n",
+ "10 Melbourne AU Australia [Education] Victoria \n",
+ "11 Melbourne AU Australia [Government] Victoria \n",
+ "12 Melbourne AU Australia [Government] Victoria \n",
+ "13 Melbourne AU Australia [Education] Victoria \n",
+ "14 Melbourne AU Australia [Education] Victoria \n",
+ "15 Melbourne AU Australia [Healthcare] Victoria \n",
+ "16 Melbourne AU Australia [Other] Victoria \n",
+ "17 Melbourne AU Australia [Healthcare] Victoria \n",
+ "18 Melbourne AU Australia [Healthcare] Victoria \n",
+ "19 Melbourne AU Australia [Healthcare] Victoria \n",
"\n",
- " name state_name types \\\n",
- "0 Melbourne Genomics Health Alliance Victoria [Nonprofit] \n",
- "1 RMIT Europe NaN [Education] \n",
- "2 Melbourne Sexual Health Centre Victoria [Healthcare] \n",
- "3 Melbourne Clinic Victoria [Healthcare] \n",
- "4 Ridley College Victoria [Education] \n",
- "5 Melbourne School of Theology Victoria [Education] \n",
- "6 Port of Melbourne Corporation Victoria [Government] \n",
- "7 Melbourne Water Victoria [Government] \n",
- "8 Victorian Life Sciences Computation Initiative Victoria [Education] \n",
- "9 Melbourne Free University Victoria [Education] \n",
- "10 Royal Dental Hospital of Melbourne Victoria [Healthcare] \n",
- "11 Melbourne Health Victoria [Healthcare] \n",
- "12 Royal Melbourne Hospital Victoria [Healthcare] \n",
- "13 Melbourne Centre for Nanofabrication Victoria [Facility] \n",
- "14 RMIT University Victoria [Education] \n",
- "15 University of Melbourne Victoria [Education] \n",
+ " latitude linkout longitude \\\n",
+ "0 NaN NaN NaN \n",
+ "1 NaN NaN NaN \n",
+ "2 NaN NaN NaN \n",
+ "3 NaN NaN NaN \n",
+ "4 -37.797960 [https://www.melbournegenomics.org.au/] 144.953870 \n",
+ "5 41.402576 [https://www.rmit.eu] 2.194333 \n",
+ "6 -37.803123 [https://www.mshc.org.au/] 144.963840 \n",
+ "7 -37.815063 [http://www.themelbourneclinic.com.au/] 144.999650 \n",
+ "8 NaN [http://www.danaher.com/] NaN \n",
+ "9 -37.783780 [https://www.ridley.edu.au/] 144.957660 \n",
+ "10 -37.859700 [http://www.mst.edu.au/] 145.209410 \n",
+ "11 -37.824028 [http://www.portofmelbourne.com/] 144.907070 \n",
+ "12 -37.814007 [http://www.melbournewater.com.au/Pages/home.a... 144.946700 \n",
+ "13 -37.799847 [https://www.melbournebioinformatics.org.au] 144.964460 \n",
+ "14 NaN NaN NaN \n",
+ "15 -37.799260 [https://www.dhsv.org.au] 144.964630 \n",
+ "16 NaN NaN NaN \n",
+ "17 -37.798940 [http://www.mh.org.au/] 144.955930 \n",
+ "18 -37.798756 [http://www.rmh.mh.org.au/] 144.955930 \n",
+ "19 -37.807000 [http://www.svhm.org.au/Pages/Home.aspx] 144.975000 \n",
"\n",
" acronym \n",
"0 NaN \n",
- "1 RMIT \n",
- "2 MSHC \n",
+ "1 NaN \n",
+ "2 NaN \n",
"3 NaN \n",
"4 NaN \n",
- "5 MBI \n",
- "6 PoMC \n",
+ "5 RMIT \n",
+ "6 MSHC \n",
"7 NaN \n",
"8 NaN \n",
"9 NaN \n",
- "10 RDHM \n",
- "11 NaN \n",
- "12 RMH \n",
- "13 MCN \n",
- "14 RMIT \n",
- "15 NaN "
+ "10 MBI \n",
+ "11 PoMC \n",
+ "12 NaN \n",
+ "13 VLSCI \n",
+ "14 NaN \n",
+ "15 RDHM \n",
+ "16 NaN \n",
+ "17 NaN \n",
+ "18 RMH \n",
+ "19 NaN "
]
},
- "execution_count": 17,
+ "execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
@@ -483,7 +562,7 @@
},
{
"cell_type": "code",
- "execution_count": 18,
+ "execution_count": 4,
"metadata": {
"Collapsed": "false"
},
@@ -503,7 +582,7 @@
},
{
"cell_type": "code",
- "execution_count": 19,
+ "execution_count": 15,
"metadata": {
"Collapsed": "false"
},
@@ -512,8 +591,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "Returned Year: 12\n",
- "\u001b[2mTime: 0.57s\u001b[0m\n"
+ "Returned Year: 16\n",
+ "\u001b[2mTime: 0.55s\u001b[0m\n"
]
},
{
@@ -524,7 +603,6 @@
},
"data": [
{
- "alignmentgroup": "True",
"hovertemplate": "year=%{x} pubs=%{y}",
"legendgroup": "",
"marker": {
@@ -534,45 +612,23 @@
}
},
"name": "",
- "offsetgroup": "",
"orientation": "v",
"showlegend": false,
"textposition": "auto",
"type": "bar",
- "x": [
- 2021,
- 2020,
- 2019,
- 2018,
- 2017,
- 2016,
- 2015,
- 2014,
- 2013,
- 2012,
- 2011,
- 2022
- ],
+ "x": {
+ "bdata": "5QfoB+cH5gfkB+MH4gfhB+AH6QffB94H3QfcB9sH6gc=",
+ "dtype": "i2"
+ },
"xaxis": "x",
- "y": [
- 13015,
- 12183,
- 11039,
- 9954,
- 9198,
- 8281,
- 7720,
- 7184,
- 6779,
- 6030,
- 5742,
- 816
- ],
+ "y": {
+ "bdata": "9kygSotJ9UjhSOlA+T0ZOm42PjZDNBkx3y99K2koDwA=",
+ "dtype": "i2"
+ },
"yaxis": "y"
}
],
"layout": {
- "autosize": true,
"barmode": "relative",
"legend": {
"tracegroupgap": 0
@@ -759,57 +815,6 @@
"type": "heatmap"
}
],
- "heatmapgl": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "colorscale": [
- [
- 0,
- "#0d0887"
- ],
- [
- 0.1111111111111111,
- "#46039f"
- ],
- [
- 0.2222222222222222,
- "#7201a8"
- ],
- [
- 0.3333333333333333,
- "#9c179e"
- ],
- [
- 0.4444444444444444,
- "#bd3786"
- ],
- [
- 0.5555555555555556,
- "#d8576b"
- ],
- [
- 0.6666666666666666,
- "#ed7953"
- ],
- [
- 0.7777777777777778,
- "#fb9f3a"
- ],
- [
- 0.8888888888888888,
- "#fdca26"
- ],
- [
- 1,
- "#f0f921"
- ]
- ],
- "type": "heatmapgl"
- }
- ],
"histogram": [
{
"marker": {
@@ -952,11 +957,10 @@
],
"scatter": [
{
- "marker": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
+ "fillpattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
},
"type": "scatter"
}
@@ -1011,6 +1015,17 @@
"type": "scattergl"
}
],
+ "scattermap": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermap"
+ }
+ ],
"scattermapbox": [
{
"marker": {
@@ -1399,43 +1414,31 @@
},
"xaxis": {
"anchor": "y",
- "autorange": true,
"domain": [
0,
1
],
- "range": [
- 2010.5,
- 2022.5
- ],
"title": {
"text": "year"
- },
- "type": "linear"
+ }
},
"yaxis": {
"anchor": "x",
- "autorange": true,
"domain": [
0,
1
],
- "range": [
- 0,
- 13700
- ],
"title": {
"text": "pubs"
- },
- "type": "linear"
+ }
}
}
},
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAA/EAAAFoCAYAAAAfN3s3AAAAAXNSR0IArs4c6QAAIABJREFUeF7t3XmcHFW5P+B3kkAIhACBsIgoiAIiXrwKCLihonBZxStLQFllkd1oZBdQdgTZZQsiSBTwAoIRubIpKNsPUK/bRb2isoewQyAkM79PNWbMJNOZOX26O1PVz/yl5FR31XPeOnW+daq7u3p6enrCHwECBAgQIECAAAECBAgQIDDkBbqE+CHfR3aQAAECBAgQIECAAAECBAjUBIR4hUCAAAECBAgQIECAAAECBEoiIMSXpKPsJgECBAgQIECAAAECBAgQEOLVAAECBAgQIECAAAECBAgQKImAEF+SjrKbBAgQIECAAAECBAgQIEBAiFcDBAgQIECAAAECBAgQIECgJAJCfEk6ym4SIECAAAECBAgQIECAAAEhXg0QIECAAAECBAgQIECAAIGSCAjxJekou0mAAAECBAgQIECAAAECBIR4NUCAAAECBAgQIECAAAECBEoiIMSXpKPsJgECBAgQIECAAAECBAgQEOLVAAECBAgQIECAAAECBAgQKImAEF+SjrKbBAgQIECAAAECBAgQIEBAiFcDBAgQIECAAAECBAgQIECgJAJCfEk6ym4SIECAAAECBAgQIECAAAEhXg0QIECAAAECBAgQIECAAIGSCAjxJekou0mAAAECBAgQIECAAAECBIR4NUCAAAECBAgQIECAAAECBEoiIMSXpKPsJgECBAgQIECAAAECBAgQEOLVAAECBAgQIECAAAECBAgQKImAEF+SjrKbBAgQIECAAAECBAgQIEBAiFcDBAgQIECAAAECBAgQIECgJAJCfEk6ym4SIECAAAECBAgQIECAAAEhXg0QIECAAAECBAgQIECAAIGSCAjxJekou0mAAAECBAgQIECAAAECBIR4NUCAAAECBAgQIECAAAECBEoiIMSXpKPsJgECBAgQIECAAAECBAgQEOLVAAECBAgQIECAAAECBAgQKImAEF+SjrKbBAgQIECAAAECBAgQIEBAiFcDBAgQIECAAAECBAgQIECgJAJCfEk6ym4SIECAAAECBAgQIECAAAEhXg0QIECAAAECBAgQIECAAIGSCAjxJekou0mAAAECBAgQIECAAAECBIR4NUCAAAECBAgQIECAAAECBEoiIMSXpKPsJgECBAgQIECAAAECBAgQEOLVAAECBAgQIECAAAECBAgQKImAEF+SjrKbBAgQIECAAAECBAgQIEBAiFcDBAgQIECAAAECBAgQIECgJAJCfEk6ym4SIECAAAECBAgQIECAAAEhXg0QIECAAAECBAgQIECAAIGSCAjxJekou0mAAAECBAgQIECAAAECBIR4NUCAAAECBAgQIECAAAECBEoiIMSXpKPsJgECBAgQIECAAAECBAgQEOLVAAECBAgQIECAAAECBAgQKImAEF+SjrKbBAgQIECAAAECBAgQIEBAiFcDBAgQIECAAAECBAgQIECgJAJCfEk6ym4SIECAAAECBAgQIECAAAEhXg0QIECAAAECBAgQIECAAIGSCAjxJekou0mAAAECBAgQIECAAAECBIR4NUCAAAECBAgQIECAAAECBEoiIMSXpKPsJgECBAgQIECAAAECBAgQEOLVAAECBAgQIECAAAECBAgQKImAEF+SjrKbBAgQIECAAAECBAgQIEBAiFcDBAgQIECAAAECBAgQIECgJAJCfEk6ym4SIECAAAECBAgQIECAAAEhXg0QIECAAAECBAgQIECAAIGSCAjxJekou0mAAAECBAgQIECAAAECBIR4NUCAAAECBAgQIECAAAECBEoiIMSXpKPsJgECBAgQIECAAAECBAgQEOIza+CxadMzX8HmBAgQIECAAAECBAgQ6ByBNy09qnMOtgVHKsRnogrxmYA2J0CAAAECBAgQIECgowSE+LzuFuLz/EKIzwS0OQECBAgQIECAAAECHSUgxOd1txCf5yfEZ/rZnAABAgQIECBAgACBzhIQ4vP6W4jP8xPiM/1sToAAAQIECBAgQIBAZwkI8Xn9LcTn+QnxmX42J0CAAAECBAgQIECgswSE+Lz+FuLz/IT4TD+bEyBAgAABAgQIECDQWQJCfF5/C/F5fkJ8pp/NCRAgQIAAAQIECBDoLAEhPq+/hfg8PyE+08/mBAgQIECAAAECBAh0loAQn9ffQnyenxCf6WdzAgQIECBAgAABAgQ6S0CIz+tvIT7PT4jP9LM5AQIECBAgQIAAAQKdJSDE5/W3EJ/nJ8Rn+tmcAAECBAgQIECgmgJTp3bFrT8bVs2D++dRbb5pd4we3VPpY2zFwQnxeapCfJ6fEJ/pZ3MCBAgQIECAAIFqChQh/oJJw2PGjGoe30or9sT47YX4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1GnPxUb/eXBtL8894eDal8/N/vvetbfEcWdeHnvsuHls+YkNYsbrM+NXv/1z/OyuX9WC++kXXBXf/+GtceLhe8UyY5eIn9/969o32Xucfoh3ut0jQIAAAQJ1BIR4pUGAAAECBEogUHzB3d8ffSp++v1vxPDhw3r3uLu7O757zc1xziXX1B6vn/1XhPoJe21be2z+sBMujPt/81Dtn9Zec9WY1d0doxYZGZeecWjtvxWr9e9abWWfiS9BHdhFAgQIECAgxKsBAgQIECAwxAWmPftCfHibA+Mr++4Qu2y3ab97Wzw+//Qzz0dPT8QyY8fEsGH/CvrFBo8/OS2GDR9WexzfHwECBAgQIFBeASG+vH1nzwkQIECgQwS+9Z0f1n7b/ZfXn+u32zukzx0mAQIECBCoJyDEqw0CBAgQIDCEBYoV9i8c+s3az8vtv9s2Q3hP7RoBAgQIECDQDgEhvh3K3oMAAQIECBAgQIAAAQIECDRBQIhvAqKXIECAAAECBAgQIECAAAEC7RAQ4tuh7D0IECBAgAABAgQIECBAgEATBIT4JiB6CQIECBAgQIAAAQIECBAg0A4BIb4dyt6DAAECBAgQIECAAAECBAg0QUCIbwKilyBAgAABAgQIECBAgAABAu0QEOLboew9CBAgQIAAAQIECBAgQIBAEwSE+CYgegkCBAgQIECAAAECBAgQINAOASG+HcregwABAgQIECBAgAABAgQINEFAiG8CopcgQIAAAQIECBAgQIAAAQLtEBDi26HsPQgQIECAAAECBAgQIECAQBMEhPgmIHoJAgQIECBAgAABAgQIECDQDgEhvh3K3oMAAQIECBAgQIAAAQIECDRBQIhvAqKXIECAAAECBAgQIECAAAEC7RAQ4tuh7D0IECBAgAABAgQIECBAgEATBIT4JiB6CQIECBAgQIAAAQIECBAg0A4BIb4dyt6DAAECBAgQIECAAAECBAg0QUCIbwKilyBAgAABAgQIECBAgAABAu0QEOLboew9CBAgQIAAAQIECBAgQIBAEwSE+CYgegkCBAgQIECAAAECBAgQINAOASG+HcregwABAgQIECBAgAABAgQINEFAiG8CopcgQIAAAQIECBAgQIAAAQLtEBDi26HsPQgQIECAAAECBAgQIECAQBMEhPgmIHoJAgQIECBAgAABAgQIECDQDgEhvh3K3oMAAQIECBAgQIAAAQIECDRBQIhvAqKXIECAAAECBAgQIECAAAEC7RAQ4tuh7D0IECBAgAABAgQIECBAgEATBIT4JiB6CQIECBAgQIAAAQIECBAg0A4BIb4dyt6DAAECBAgQIECAAAECBAg0QUCIbwKilyBAgAABAgQIECBAgAABAu0QEOLboew9CBAgQIAAAQIECBAgQIBAEwSE+CYgegkCBAgQIECAAAECBAgQINAOASG+HcregwABAgQIECBAgAABAgQINEFAiG8CopcgQIAAAQIECBAgQIAAAQLtEBDi26HsPQgQIECAAAECBAgQIECAQBMEhPgmIHoJAgQIECBAgAABAgQIECDQDgEhvh3K3oMAAQIECBAgQIAAAQIECDRB4P8DC1pxmEv+R9UAAAAASUVORK5CYII=",
"text/html": [
- "
"
+ " }) }; "
]
},
"metadata": {},
@@ -8037,7 +7506,7 @@
" \n",
" \"\"\").as_dataframe()\n",
"\n",
- "allpubs.columns = ['pubs', 'year', ]\n",
+ "allpubs.columns = ['year', 'pubs']\n",
"\n",
"\n",
"\n",
@@ -8053,7 +7522,7 @@
" \n",
" \"\"\").as_dataframe()\n",
"\n",
- "international.columns = ['international_count', 'year', ]\n",
+ "international.columns = ['year', 'international_count']\n",
"\n",
"\n",
"domestic = dsl.query(f\"\"\"\n",
@@ -8068,7 +7537,7 @@
" \n",
" \"\"\").as_dataframe()\n",
"\n",
- "domestic.columns = ['domestic_count', 'year', ]\n",
+ "domestic.columns = ['year', 'domestic_count']\n",
"\n",
"internal = dsl.query(f\"\"\"\n",
" \n",
@@ -8082,13 +7551,13 @@
" \n",
" \"\"\").as_dataframe()\n",
"\n",
- "internal.columns = ['internal_count', 'year', ]\n",
+ "internal.columns = ['year', 'internal_count']\n",
"\n",
"\n",
"jdf = allpubs.set_index('year'). \\\n",
- " join(international.set_index('year')). \\\n",
- " join(domestic.set_index('year')). \\\n",
- " join(internal.set_index('year')) \n",
+ " merge(international, how='left', on='year'). \\\n",
+ " merge(domestic, how='left', on='year'). \\\n",
+ " merge(internal, how='left', on='year')\n",
"\n",
"px.bar(jdf, title=\"Univ. of Toronto: publications collaboration\")\n"
]
@@ -8125,7 +7594,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.9.9"
+ "version": "3.12.8"
},
"nteract": {
"version": "0.15.0"
diff --git a/docs/.doctrees/nbsphinx/cookbooks/8-organizations/5-mapping-organization-ids-to-organization-data.ipynb b/docs/.doctrees/nbsphinx/cookbooks/8-organizations/5-mapping-organization-ids-to-organization-data.ipynb
new file mode 100644
index 00000000..04fae69d
--- /dev/null
+++ b/docs/.doctrees/nbsphinx/cookbooks/8-organizations/5-mapping-organization-ids-to-organization-data.ipynb
@@ -0,0 +1,922 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "id": "hu34Y6_eo_8c"
+ },
+ "source": [
+ "# Mapping Organization IDs to Organization Data\n",
+ "\n",
+ "In this tutorial, we show how to use the [Dimensions Analytics API](https://www.dimensions.ai/dimensions-apis/) and organization data to extract organization IDs.\n",
+ "\n",
+ "**Use case scenarios:**\n",
+ "\n",
+ "* An analyst has a list of organizations of interest, and wants to get details of their publications from Dimensions. To do this, they they need to map them to organization IDs so they can extract information from the Dimensions database. The organization data can be run through the Dimensions API [extract_affiliations](https://docs.dimensions.ai/dsl/functions.html#function-extract-affiliations) function in order to extract IDs, which can then be utilized to get publication data statistics.\n",
+ "\n",
+ "* A second use case is to standardize messy organization data for \n",
+ "analysis. For example, an analyst might have a set of affiliation data containing many variants of organization names (\"University of Cambridge\", \"Cambridge University\"). By mapping to IDs, the analyst can standardize the data so it's easier to analyse."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "==\n",
+ "CHANGELOG\n",
+ "This notebook was last run on Sep 10, 2025\n",
+ "==\n"
+ ]
+ }
+ ],
+ "source": [
+ "import datetime\n",
+ "print(\"==\\nCHANGELOG\\nThis notebook was last run on %s\\n==\" % datetime.date.today().strftime('%b %d, %Y'))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "id": "lnk_dWT3pINN"
+ },
+ "source": [
+ "## Prerequisites \n",
+ "\n",
+ "This notebook assumes you have installed the [Dimcli](https://pypi.org/project/dimcli/) library and are familiar with the ['Getting Started' tutorial](https://api-lab.dimensions.ai/cookbooks/1-getting-started/1-Using-the-Dimcli-library-to-query-the-API.html).\n",
+ "\n",
+ "To generate an API key from the Dimensions webapp, go to \"My Account\". Under \"General Settings\" there is an \"API key\" section where there is a \"Create API key\" button. More information on this can be found [here](https://dimensions.freshdesk.com/support/solutions/articles/23000018791).\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "executionInfo": {
+ "elapsed": 18999,
+ "status": "ok",
+ "timestamp": 1624636934872,
+ "user": {
+ "displayName": "Derek Denning",
+ "photoUrl": "",
+ "userId": "01288319615638558065"
+ },
+ "user_tz": 300
+ },
+ "id": "p0v3SdNwpDLn",
+ "outputId": "8c654b2a-5fbe-4c73-feca-89ed1a0987f6"
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001b[2mSearching config file credentials for 'https://app.dimensions.ai' endpoint..\u001b[0m\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "==\n",
+ "Logging in..\n",
+ "==\n",
+ "Logging in..\n",
+ "\u001b[2mDimcli - Dimensions API Client (v1.4)\u001b[0m\n",
+ "\u001b[2mConnected to: - DSL v2.12\u001b[0m\n",
+ "\u001b[2mMethod: dsl.ini file\u001b[0m\n"
+ ]
+ }
+ ],
+ "source": [
+ "!pip install dimcli --quiet\n",
+ "\n",
+ "import dimcli\n",
+ "from dimcli.utils import *\n",
+ "from dimcli.functions import extract_affiliations\n",
+ "\n",
+ "import json\n",
+ "import sys\n",
+ "import pandas as pd\n",
+ "import re\n",
+ "import time\n",
+ "\n",
+ "print(\"==\\nLogging in..\")\n",
+ "# https://digital-science.github.io/dimcli/getting-started.html#authentication\n",
+ "ENDPOINT = \"https://app.dimensions.ai\"\n",
+ "\n",
+ "print(\"==\\nLogging in..\")\n",
+ "# https://digital-science.github.io/dimcli/getting-started.html#authentication\n",
+ "ENDPOINT = \"https://app.dimensions.ai\"\n",
+ "if 'google.colab' in sys.modules:\n",
+ " import getpass\n",
+ " KEY = getpass.getpass(prompt='API Key: ') \n",
+ " dimcli.login(key=KEY, endpoint=ENDPOINT)\n",
+ "else:\n",
+ " KEY = \"\"\n",
+ " dimcli.login(key=KEY, endpoint=ENDPOINT)\n",
+ "dsl = dimcli.Dsl()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "id": "RlPdopEbpeyE"
+ },
+ "source": [
+ "## 1. Importing Organization Data\n",
+ "\n",
+ "There are several ways to obtain organization data. Below we show examples for 2 different ways to obtain organization data that can be used to run through the Dimensions API for ID mapping. *For purposes of this demostration, we will be using method 1*. Please uncomment the other sections if you wish to use those methods instead.\n",
+ "\n",
+ "\n",
+ "1. Manually Generate Organization Data\n",
+ "2. Load Organization Data from Local Machine\n",
+ "\n",
+ "*Note* - To map organizational data to IDs, the data must conform to mapping specifications and contain data (if available) for the following 4 columns (with column headers being lowercase):\n",
+ "* name - name of the organization\n",
+ "* city - city of the organization\n",
+ "* state - state of the organization (use the full name of the state, not acronym)\n",
+ "* country - country of the organization\n",
+ "\n",
+ "\n",
+ "The user may use structured or unstructured organization data for mapping to IDs like the following:\n",
+ "\n",
+ "* Structured Data e.g., \n",
+ "`[{\"name\":\"Southwestern University\",\n",
+ " \"city\":\"Georgetown\",\n",
+ " \"state\":\"Texas\",\n",
+ " \"country\":\"USA\"}]`\n",
+ "* Unstructured Data\n",
+ "e.g., `[{\"affiliation\": \"university of oxford, uk\"}]`\n",
+ "\n",
+ "*For purposes of this notebook, we will be utilizing structured data in a pandas dataframe. Therefore, please ensure your organization dataset resembles the format observed under method 1, below.*\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "id": "X_t-RnDWv3BB"
+ },
+ "source": [
+ "### 1.1 Manually Generate Organization Data\n",
+ "\n",
+ "The following cell builds an example organization dataset."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 320
+ },
+ "executionInfo": {
+ "elapsed": 207,
+ "status": "ok",
+ "timestamp": 1624636951400,
+ "user": {
+ "displayName": "Derek Denning",
+ "photoUrl": "",
+ "userId": "01288319615638558065"
+ },
+ "user_tz": 300
+ },
+ "id": "YtckPfuTpXNi",
+ "outputId": "70d674be-a82a-4f49-fd52-48f1655e6a73"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
name
\n",
+ "
city
\n",
+ "
state
\n",
+ "
country
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
0
\n",
+ "
Augusta Univeristy
\n",
+ "
Augusta
\n",
+ "
Georgia
\n",
+ "
United States
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
+ "
Baylor College of Medicine
\n",
+ "
Houston
\n",
+ "
Texas
\n",
+ "
United States
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
Brown University
\n",
+ "
Providence
\n",
+ "
Rhode Island
\n",
+ "
United States
\n",
+ "
\n",
+ "
\n",
+ "
3
\n",
+ "
California Institute of Technology
\n",
+ "
Pasadena
\n",
+ "
California
\n",
+ "
United States
\n",
+ "
\n",
+ "
\n",
+ "
4
\n",
+ "
Duke Univerisity
\n",
+ "
Durham
\n",
+ "
North Carolina
\n",
+ "
United States
\n",
+ "
\n",
+ "
\n",
+ "
5
\n",
+ "
Emory University
\n",
+ "
Atlanta
\n",
+ "
Georgia
\n",
+ "
United States
\n",
+ "
\n",
+ "
\n",
+ "
6
\n",
+ "
Florida State University
\n",
+ "
Tallahassee
\n",
+ "
Florida
\n",
+ "
United States
\n",
+ "
\n",
+ "
\n",
+ "
7
\n",
+ "
Harvard Medical School
\n",
+ "
Boston
\n",
+ "
Massachusetts
\n",
+ "
United States
\n",
+ "
\n",
+ "
\n",
+ "
8
\n",
+ "
Kent State University
\n",
+ "
Kent
\n",
+ "
Ohio
\n",
+ "
United States
\n",
+ "
\n",
+ "
\n",
+ "
9
\n",
+ "
New York University
\n",
+ "
New York
\n",
+ "
New York
\n",
+ "
United States
\n",
+ "
\n",
+ "
\n",
+ "
10
\n",
+ "
Mayo Clinic
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
United States
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " name city state \\\n",
+ "0 Augusta Univeristy Augusta Georgia \n",
+ "1 Baylor College of Medicine Houston Texas \n",
+ "2 Brown University Providence Rhode Island \n",
+ "3 California Institute of Technology Pasadena California \n",
+ "4 Duke Univerisity Durham North Carolina \n",
+ "5 Emory University Atlanta Georgia \n",
+ "6 Florida State University Tallahassee Florida \n",
+ "7 Harvard Medical School Boston Massachusetts \n",
+ "8 Kent State University Kent Ohio \n",
+ "9 New York University New York New York \n",
+ "10 Mayo Clinic NaN NaN \n",
+ "\n",
+ " country \n",
+ "0 United States \n",
+ "1 United States \n",
+ "2 United States \n",
+ "3 United States \n",
+ "4 United States \n",
+ "5 United States \n",
+ "6 United States \n",
+ "7 United States \n",
+ "8 United States \n",
+ "9 United States \n",
+ "10 United States "
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# The following generates a table of organization data with 4 columns\n",
+ "organization_names = pd.Series(['Augusta Univeristy', 'Baylor College of Medicine', 'Brown University', 'California Institute of Technology', 'Duke Univerisity',\n",
+ " 'Emory University', 'Florida State University', 'Harvard Medical School', 'Kent State University', 'New York University', 'Mayo Clinic'])\n",
+ "organization_cities = pd.Series(['Augusta', 'Houston', 'Providence', 'Pasadena', 'Durham',\n",
+ " 'Atlanta', 'Tallahassee', 'Boston', 'Kent', 'New York'])\n",
+ "organization_states = pd.Series(['Georgia', 'Texas', 'Rhode Island', 'California', 'North Carolina',\n",
+ " 'Georgia', 'Florida', 'Massachusetts', 'Ohio', 'New York'])\n",
+ "organization_countries = pd.Series(['United States', 'United States', 'United States', 'United States', 'United States',\n",
+ " 'United States', 'United States', 'United States', 'United States', 'United States', 'United States'])\n",
+ "\n",
+ "orgs = pd.DataFrame({'name':organization_names, 'city':organization_cities, 'state':organization_states, 'country':organization_countries})\n",
+ "\n",
+ "# Preview Dataset\n",
+ "orgs"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "id": "FK2-EG8czdg_"
+ },
+ "source": [
+ "### 1.2 Load Organization Data from Local Machine\n",
+ "\n",
+ "The following cells can be utilized to import an excel file of organization data from a local machine.\n",
+ "\n",
+ "This method is useful for when you need to map hundreds or thousands of organizations to IDs, as the bulk process using the API will be much faster than any individual mapping.\n",
+ "\n",
+ "\n",
+ "*Please uncomment the cells below if to be utilized*"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "Collapsed": "false",
+ "id": "-OHw5k8Yzcfe"
+ },
+ "outputs": [],
+ "source": [
+ "# # Upload the organization dataset from local machine\n",
+ "\n",
+ "# from google.colab import files\n",
+ "# uploaded = files.upload()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "Collapsed": "false",
+ "id": "0oEG2QB1xqgH"
+ },
+ "outputs": [],
+ "source": [
+ "# # Load and preview the organization dataset into a pandas dataframe\n",
+ "\n",
+ "# import io\n",
+ "# import pandas as pd\n",
+ "\n",
+ "# orgs = pd.read_excel(io.BytesIO(uploaded['dataset_name.xlsx']))\n",
+ "\n",
+ "# orgs.head()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "id": "rOeRQ6S7244b"
+ },
+ "source": [
+ "## 2. Utilizing Dimensions API to Extract IDs\n",
+ "\n",
+ " The following cells will take our organization data and run it through the Dimensions API to pull back IDs mapped to each organization.\n",
+ "\n",
+ "Here, we utilize the \"[extract_affiliations](https://docs.dimensions.ai/dsl/functions.html#function-extract-affiliations)\" API function which can be used to enrich private datasets including non-disambiguated organizations data with Dimensions organization IDs.\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "Collapsed": "false",
+ "id": "s3QexS3m4OsV"
+ },
+ "outputs": [],
+ "source": [
+ "# First, we replace empty data with 'null' to satisfy mapping specifications\n",
+ "\n",
+ "orgs = orgs.fillna('null')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "Collapsed": "false",
+ "id": "rZqY2QTD26y5"
+ },
+ "outputs": [],
+ "source": [
+ "# Second, we will convert organization data from a dataframe to a dictionary (json) for ID mapping\n",
+ "\n",
+ "recs = orgs.to_dict(orient='records')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "executionInfo": {
+ "elapsed": 3106,
+ "status": "ok",
+ "timestamp": 1624636962862,
+ "user": {
+ "displayName": "Derek Denning",
+ "photoUrl": "",
+ "userId": "01288319615638558065"
+ },
+ "user_tz": 300
+ },
+ "id": "W_AkE-i231b8",
+ "outputId": "af752023-c2cd-45dc-948d-04b080a91b99"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "200 records complete!\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Then we will take the organization data, run it through the API and return organization IDs\n",
+ "\n",
+ "# Chunk records to batches, API takes up to 200 records at a time.\n",
+ "def chunk_records(l, n):\n",
+ " for i in range(0, len(l), n):\n",
+ " yield l[i : i + n]\n",
+ "\n",
+ "# Use dimcli's from extract_affiliations API wrapper to process data\n",
+ "\n",
+ "chunksize = 200\n",
+ "org_data = pd.DataFrame()\n",
+ "for k,chunk in enumerate(chunk_records(recs, chunksize)):\n",
+ " output = extract_affiliations(chunk, as_json=False)\n",
+ " org_data = pd.concat([org_data, output])\n",
+ " # Pause to avoid overloading API with too many calls too quickly\n",
+ " time.sleep(1)\n",
+ " print(f\"{(k+1)*chunksize} records complete!\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 321
+ },
+ "executionInfo": {
+ "elapsed": 177,
+ "status": "ok",
+ "timestamp": 1624636964136,
+ "user": {
+ "displayName": "Derek Denning",
+ "photoUrl": "",
+ "userId": "01288319615638558065"
+ },
+ "user_tz": 300
+ },
+ "id": "yFRkUViz34hf",
+ "outputId": "9c2d920b-93e5-4ad1-f84b-0871d9023801"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
input.city
\n",
+ "
input.country
\n",
+ "
input.name
\n",
+ "
input.state
\n",
+ "
grid_id
\n",
+ "
grid_name
\n",
+ "
grid_city
\n",
+ "
grid_state
\n",
+ "
grid_country
\n",
+ "
requires_review
\n",
+ "
geo_country_id
\n",
+ "
geo_country_name
\n",
+ "
geo_country_code
\n",
+ "
geo_state_id
\n",
+ "
geo_state_name
\n",
+ "
geo_state_code
\n",
+ "
geo_city_id
\n",
+ "
geo_city_name
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
0
\n",
+ "
Augusta
\n",
+ "
United States
\n",
+ "
Augusta Univeristy
\n",
+ "
Georgia
\n",
+ "
grid.410427.4
\n",
+ "
Augusta University
\n",
+ "
Augusta
\n",
+ "
Georgia
\n",
+ "
United States
\n",
+ "
False
\n",
+ "
6252001
\n",
+ "
United States
\n",
+ "
US
\n",
+ "
4197000
\n",
+ "
Georgia
\n",
+ "
US-GA
\n",
+ "
4180531
\n",
+ "
Augusta
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
+ "
Houston
\n",
+ "
United States
\n",
+ "
Baylor College of Medicine
\n",
+ "
Texas
\n",
+ "
grid.39382.33
\n",
+ "
Baylor College of Medicine
\n",
+ "
Houston
\n",
+ "
Texas
\n",
+ "
United States
\n",
+ "
False
\n",
+ "
6252001
\n",
+ "
United States
\n",
+ "
US
\n",
+ "
4736286
\n",
+ "
Texas
\n",
+ "
US-TX
\n",
+ "
4699066
\n",
+ "
Houston
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
Providence
\n",
+ "
United States
\n",
+ "
Brown University
\n",
+ "
Rhode Island
\n",
+ "
grid.40263.33
\n",
+ "
Brown University
\n",
+ "
Providence
\n",
+ "
Rhode Island
\n",
+ "
United States
\n",
+ "
False
\n",
+ "
6252001
\n",
+ "
United States
\n",
+ "
US
\n",
+ "
5224323
\n",
+ "
Rhode Island
\n",
+ "
US-RI
\n",
+ "
5224151
\n",
+ "
Providence
\n",
+ "
\n",
+ "
\n",
+ "
3
\n",
+ "
Pasadena
\n",
+ "
United States
\n",
+ "
California Institute of Technology
\n",
+ "
California
\n",
+ "
grid.20861.3d
\n",
+ "
California Institute of Technology
\n",
+ "
Pasadena
\n",
+ "
California
\n",
+ "
United States
\n",
+ "
False
\n",
+ "
6252001
\n",
+ "
United States
\n",
+ "
US
\n",
+ "
5332921
\n",
+ "
California
\n",
+ "
US-CA
\n",
+ "
5381396
\n",
+ "
Pasadena
\n",
+ "
\n",
+ "
\n",
+ "
4
\n",
+ "
Durham
\n",
+ "
United States
\n",
+ "
Duke Univerisity
\n",
+ "
North Carolina
\n",
+ "
grid.26009.3d
\n",
+ "
Duke University
\n",
+ "
Durham
\n",
+ "
North Carolina
\n",
+ "
United States
\n",
+ "
False
\n",
+ "
6252001
\n",
+ "
United States
\n",
+ "
US
\n",
+ "
4482348
\n",
+ "
North Carolina
\n",
+ "
US-NC
\n",
+ "
4464368
\n",
+ "
Durham
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " input.city input.country input.name \\\n",
+ "0 Augusta United States Augusta Univeristy \n",
+ "1 Houston United States Baylor College of Medicine \n",
+ "2 Providence United States Brown University \n",
+ "3 Pasadena United States California Institute of Technology \n",
+ "4 Durham United States Duke Univerisity \n",
+ "\n",
+ " input.state grid_id grid_name \\\n",
+ "0 Georgia grid.410427.4 Augusta University \n",
+ "1 Texas grid.39382.33 Baylor College of Medicine \n",
+ "2 Rhode Island grid.40263.33 Brown University \n",
+ "3 California grid.20861.3d California Institute of Technology \n",
+ "4 North Carolina grid.26009.3d Duke University \n",
+ "\n",
+ " grid_city grid_state grid_country requires_review geo_country_id \\\n",
+ "0 Augusta Georgia United States False 6252001 \n",
+ "1 Houston Texas United States False 6252001 \n",
+ "2 Providence Rhode Island United States False 6252001 \n",
+ "3 Pasadena California United States False 6252001 \n",
+ "4 Durham North Carolina United States False 6252001 \n",
+ "\n",
+ " geo_country_name geo_country_code geo_state_id geo_state_name \\\n",
+ "0 United States US 4197000 Georgia \n",
+ "1 United States US 4736286 Texas \n",
+ "2 United States US 5224323 Rhode Island \n",
+ "3 United States US 5332921 California \n",
+ "4 United States US 4482348 North Carolina \n",
+ "\n",
+ " geo_state_code geo_city_id geo_city_name \n",
+ "0 US-GA 4180531 Augusta \n",
+ "1 US-TX 4699066 Houston \n",
+ "2 US-RI 5224151 Providence \n",
+ "3 US-CA 5381396 Pasadena \n",
+ "4 US-NC 4464368 Durham "
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Preview the extracted organization ID dataframe\n",
+ "# Note: data columns labeled with \"input\" are the original organization data supplied to the API\n",
+ "\n",
+ "org_data.head()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "id": "0xmORlDluF0e"
+ },
+ "source": [
+ "Note: Some records returned in the mapping may require manual review, as some results may give more than one organization of interest (see below). The user can utilize this information to update their original organization data that is inputted to this notebook."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 400
+ },
+ "executionInfo": {
+ "elapsed": 202,
+ "status": "ok",
+ "timestamp": 1624636975652,
+ "user": {
+ "displayName": "Derek Denning",
+ "photoUrl": "",
+ "userId": "01288319615638558065"
+ },
+ "user_tz": 300
+ },
+ "id": "XhI6un5zxL7L",
+ "outputId": "26b38de2-f88d-4453-efc0-a174bd3dd739"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
input.city
\n",
+ "
input.country
\n",
+ "
input.name
\n",
+ "
input.state
\n",
+ "
grid_id
\n",
+ "
grid_name
\n",
+ "
grid_city
\n",
+ "
grid_state
\n",
+ "
grid_country
\n",
+ "
requires_review
\n",
+ "
geo_country_id
\n",
+ "
geo_country_name
\n",
+ "
geo_country_code
\n",
+ "
geo_state_id
\n",
+ "
geo_state_name
\n",
+ "
geo_state_code
\n",
+ "
geo_city_id
\n",
+ "
geo_city_name
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ "Empty DataFrame\n",
+ "Columns: [input.city, input.country, input.name, input.state, grid_id, grid_name, grid_city, grid_state, grid_country, requires_review, geo_country_id, geo_country_name, geo_country_code, geo_state_id, geo_state_name, geo_state_code, geo_city_id, geo_city_name]\n",
+ "Index: []"
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "org_data['requires_review'] = org_data['requires_review'].astype(str)\n",
+ "org_data_review = org_data.loc[org_data['requires_review'] == 'True']\n",
+ "org_data_review"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "id": "e2YjFdSk4X6X"
+ },
+ "source": [
+ "## 3. Save the ID Dataset we created\n",
+ "\n",
+ "The following cell will export the ID-mapped organization data to a csv file that can be saved to your local machine.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 17
+ },
+ "executionInfo": {
+ "elapsed": 132,
+ "status": "ok",
+ "timestamp": 1623264999048,
+ "user": {
+ "displayName": "Derek Denning",
+ "photoUrl": "",
+ "userId": "01288319615638558065"
+ },
+ "user_tz": 240
+ },
+ "id": "mvfSL5Ci38ft",
+ "outputId": "1585e34f-d308-4afd-e2cb-847a0e27a405"
+ },
+ "outputs": [],
+ "source": [
+ "# temporarily save pandas dataframe as file in colab environment\n",
+ "org_data.to_csv('file_name.csv')\n",
+ "\n",
+ "if 'google.colab' in sys.modules:\n",
+ " \n",
+ " from google.colab import files\n",
+ "\n",
+ " # download file to local machine\n",
+ " files.download('file_name.csv')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "id": "HWwI1o_q4vxv"
+ },
+ "source": [
+ "## Conclusions\n",
+ "\n",
+ "In this notebook we have shown how to use the [Dimensions Analytics API](https://www.dimensions.ai/dimensions-apis/) *extract_affiliations* function to assign identifiers to organizations data.\n",
+ "\n",
+ "For more background, see the [extract_affiliations function documentation](https://docs.dimensions.ai/dsl/functions.html#function-extract-affiliations), as well as the other functions available via the Dimensions API. \n",
+ "\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "colab": {
+ "collapsed_sections": [],
+ "name": "[APILAB] Derek Denning - grid_mapping_api.ipynb",
+ "provenance": []
+ },
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "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.12.8"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/docs/.doctrees/nbsphinx/cookbooks/8-organizations/6-organization-groups.ipynb b/docs/.doctrees/nbsphinx/cookbooks/8-organizations/6-organization-groups.ipynb
index 545ce5ee..6ca8faf2 100644
--- a/docs/.doctrees/nbsphinx/cookbooks/8-organizations/6-organization-groups.ipynb
+++ b/docs/.doctrees/nbsphinx/cookbooks/8-organizations/6-organization-groups.ipynb
@@ -11,13 +11,13 @@
"This tutorial shows how use the organization groups in Dimensions (e.g. the [funder groups](https://app.dimensions.ai/browse/facet-filter-groups/publication/funder_shared_group_facet)) in order to construct API queries. \n",
"\n",
"The Dimensions team maintains various organization groups definitions in the main Dimensions web application. \n",
- "These groups are not available directly via the API, but since they are a simple list of GRID identifiers, they can be easily downloaded as a CSV file. \n",
+ "These groups are not available directly via the API, but since they are a simple list of organization identifiers, they can be easily downloaded as a CSV file. \n",
"Once you have a CSV file, it is possible to parse it with Python and use its contents in an API query. \n",
"\n",
"Outline \n",
"\n",
"1. Downloading Dimensions' organization groups as a CSV file.\n",
- "2. Constructing API queries using a list of GRID IDs\n",
+ "2. Constructing API queries using a list of organization IDs\n",
" "
]
},
@@ -32,7 +32,7 @@
"text": [
"==\n",
"CHANGELOG\n",
- "This notebook was last run on Feb 21, 2022\n",
+ "This notebook was last run on Sep 10, 2025\n",
"==\n"
]
}
@@ -57,7 +57,7 @@
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": 2,
"metadata": {
"Collapsed": "false"
},
@@ -75,8 +75,8 @@
"text": [
"==\n",
"Logging in..\n",
- "\u001b[2mDimcli - Dimensions API Client (v0.9.6)\u001b[0m\n",
- "\u001b[2mConnected to: - DSL v2.0\u001b[0m\n",
+ "\u001b[2mDimcli - Dimensions API Client (v1.4)\u001b[0m\n",
+ "\u001b[2mConnected to: - DSL v2.12\u001b[0m\n",
"\u001b[2mMethod: dsl.ini file\u001b[0m\n"
]
}
@@ -118,7 +118,7 @@
"\n",
"2. Use the 'Copy to my Groups' command to create a copy of that group in your personal space.\n",
"\n",
- "3. Go to 'My Groups', where you can select 'Export group definitions' to download a CSV file containing the groups details including GRID IDs. \n",
+ "3. Go to 'My Groups', where you can select 'Export group definitions' to download a CSV file containing the groups details including organization IDs. \n",
"\n",
"See below a screenshot of the [Dimensions' groups page](http://api-sample-data.dimensions.ai/data/funder-groups/dimensions-funder-groups-page.jpg). \n",
"\n",
@@ -127,7 +127,7 @@
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": 3,
"metadata": {},
"outputs": [
{
@@ -139,7 +139,7 @@
""
]
},
- "execution_count": 7,
+ "execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
@@ -164,7 +164,7 @@
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": 4,
"metadata": {
"Collapsed": "false"
},
@@ -432,7 +432,7 @@
"24 grid.457898.f "
]
},
- "execution_count": 9,
+ "execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
@@ -449,7 +449,7 @@
"Collapsed": "false"
},
"source": [
- "Let's get the GRID IDs for the NSF and put them into a Python list.\n",
+ "Let's get the organization IDs for the NSF and put them into a Python list.\n",
"\n",
"Then we can generate queries programmatically using this list. \n",
"\n",
@@ -458,7 +458,7 @@
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": 5,
"metadata": {
"Collapsed": "false"
},
@@ -493,14 +493,14 @@
" 'grid.457898.f']"
]
},
- "execution_count": 11,
+ "execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "nsfgrids = data['ID'].to_list()\n",
- "nsfgrids"
+ "nsforgs = data['ID'].to_list()\n",
+ "nsforgs"
]
},
{
@@ -511,14 +511,14 @@
"source": [
"### How many grants from the NSF? \n",
"\n",
- "Let's try a simple API query that uses the contents of `nsfgrids`. \n",
+ "Let's try a simple API query that uses the contents of `nsforgs`. \n",
"\n",
"The total number of results should match [what you see in Dimensions](https://app.dimensions.ai/discover/publication?and_facet_funder_shared_group_facet=574603a4-0c27-4844-9f74-7e6810e25cfb).\n"
]
},
{
"cell_type": "code",
- "execution_count": 12,
+ "execution_count": 6,
"metadata": {
"Collapsed": "false"
},
@@ -532,8 +532,10 @@
" where funders.id in [\"grid.457768.f\", \"grid.457785.c\", \"grid.457799.1\", \"grid.457810.f\", \"grid.457836.b\", \"grid.457875.c\", \"grid.457916.8\", \"grid.457789.0\", \"grid.457813.c\", \"grid.457814.b\", \"grid.457842.8\", \"grid.457821.d\", \"grid.457772.4\", \"grid.457801.f\", \"grid.457891.6\", \"grid.457892.5\", \"grid.457845.f\", \"grid.457922.f\", \"grid.457896.1\", \"grid.431093.c\", \"grid.457758.c\", \"grid.457907.8\", \"grid.473792.c\", \"grid.457846.c\", \"grid.457898.f\"]\n",
"return grants[id+title]\n",
"\n",
- "Returned Grants: 20 (total = 601237)\n",
- "\u001b[2mTime: 2.03s\u001b[0m\n"
+ "Returned Grants: 20 (total = 621348)\n",
+ "\u001b[2mTime: 0.61s\u001b[0m\n",
+ "WARNINGS [1]\n",
+ "Field 'funders' is deprecated in favor of funder_orgs. Please refer to https://docs.dimensions.ai/dsl/releasenotes.html for more details\n"
]
},
{
@@ -564,133 +566,133 @@
" \n",
"
\n",
"
0
\n",
- "
grant.9752271
\n",
- "
NNA Planning: Developing community frameworks ...
\n",
+ "
grant.14880777
\n",
+ "
Postdoctoral Fellowship: PRFB: Mapping the Bum...
\n",
"
\n",
"
\n",
"
1
\n",
- "
grant.9890102
\n",
- "
RUI: Exciton-Phonon Interactions in Solids bas...
\n",
+ "
grant.14880767
\n",
+ "
Postdoctoral Fellowship: PRFB: Using the intro...
\n",
"
\n",
"
\n",
"
2
\n",
- "
grant.9982417
\n",
- "
CAREER: Empowering White-box Driven Analytics ...
\n",
+ "
grant.14976921
\n",
+ "
Rossbypalooza 2026: A Student-led Summer Schoo...
\n",
"
\n",
"
\n",
"
3
\n",
- "
grant.9982416
\n",
- "
CAREER: Holistic Framework for Constructing Dy...
\n",
+ "
grant.14955547
\n",
+ "
Postdoctoral Fellowship: PRFB: The Role of Pla...
\n",
"
\n",
"
\n",
"
4
\n",
- "
grant.9982395
\n",
- "
CAREER: Leveraging physical properties of mode...
\n",
+ "
grant.14880768
\n",
+ "
Postdoctoral Fellowship: PRFB: Testing a role ...
\n",
"
\n",
"
\n",
"
5
\n",
- "
grant.9785674
\n",
- "
BPC-AE Collaborative Research: Researching Equ...
\n",
+ "
grant.14973500
\n",
+ "
Postdoctoral Fellowship: EAR-PF: Reconstructin...
\n",
"
\n",
"
\n",
"
6
\n",
- "
grant.9785672
\n",
- "
BPC-AE Collaborative Research: Researching Equ...
\n",
+ "
grant.14976878
\n",
+ "
Conference: Recent Perspectives on Moments of ...
\n",
"
\n",
"
\n",
"
7
\n",
- "
grant.9752397
\n",
- "
Equitable Learning to Advance Technical Education
\n",
+ "
grant.14955637
\n",
+ "
Conference: Rutgers Gauge Theory, Low-Dimensio...
\n",
"
\n",
"
\n",
"
8
\n",
- "
grant.9995499
\n",
- "
CAREER: New imaging of mid-ocean ridge systems...
\n",
+ "
grant.14955550
\n",
+ "
Postdoctoral Fellowship: PRFB: Integrating the...
\n",
"
\n",
"
\n",
"
9
\n",
- "
grant.9995464
\n",
- "
CAREER: Reconstructing Parasite Abundance in R...
\n",
+ "
grant.14880771
\n",
+ "
Postdoctoral Fellowship: PRFB: Eco-evolutionar...
\n",
"
\n",
"
\n",
"
10
\n",
- "
grant.9752334
\n",
- "
Collaborative Research: SWIFT: Intelligent Dyn...
\n",
+ "
grant.14976854
\n",
+ "
Conference: Meeting in the Middle: Conference ...
\n",
"
\n",
"
\n",
"
11
\n",
- "
grant.9752333
\n",
- "
Collaborative Research: SWIFT: Intelligent Dyn...
\n",
+ "
grant.14976778
\n",
+ "
MCA: Eavesdropping vectors and disease transmi...
\n",
"
\n",
"
\n",
"
12
\n",
- "
grant.9995542
\n",
- "
CAREER: Learning Mechanisms from Single Cell M...
\n",
+ "
grant.14969598
\n",
+ "
Conference: Universal Statistics in Number Theory
\n",
"
\n",
"
\n",
"
13
\n",
- "
grant.9995538
\n",
- "
CAREER: A Transformative Approach for Teaching...
\n",
+ "
grant.14964639
\n",
+ "
Long term compliance observations of the evolv...
\n",
"
\n",
"
\n",
"
14
\n",
- "
grant.9995527
\n",
- "
CAREER: Interlimb Neural Coupling to Enhance G...
\n",
+ "
grant.14880779
\n",
+ "
Postdoctoral Fellowship: PRFB: Elucidating the...
\n",
"
\n",
"
\n",
"
15
\n",
- "
grant.9995522
\n",
- "
CAREER: Fossil Amber Insight Into Macroevoluti...
\n",
+ "
grant.14976745
\n",
+ "
What drives spatial variability in water-colum...
\n",
"
\n",
"
\n",
"
16
\n",
- "
grant.9995520
\n",
- "
2022 Origins of Life GRC and GRS: Environments...
\n",
+ "
grant.14976476
\n",
+ "
IRES: Exploring New Horizons in the Observable...
\n",
"
\n",
"
\n",
"
17
\n",
- "
grant.9995519
\n",
- "
CAREER: Invariants and Entropy of Square Integ...
\n",
+ "
grant.14969702
\n",
+ "
MCA Pilot PUI: Can unhatched eggs or trash aff...
\n",
"
\n",
"
\n",
"
18
\n",
- "
grant.9995488
\n",
- "
CAREER: Statistical Learning from a Modern Per...
\n",
+ "
grant.14954673
\n",
+ "
Conference: Geometry Labs United 2025
\n",
"
\n",
"
\n",
"
19
\n",
- "
grant.9995470
\n",
- "
CAREER: CAS- Climate: Making Decarbonization o...
\n",
+ "
grant.14976899
\n",
+ "
Collaborative Research: FIRE-MODEL: Advancing ...
\n",
"
\n",
" \n",
"\n",
""
],
"text/plain": [
- " id title\n",
- "0 grant.9752271 NNA Planning: Developing community frameworks ...\n",
- "1 grant.9890102 RUI: Exciton-Phonon Interactions in Solids bas...\n",
- "2 grant.9982417 CAREER: Empowering White-box Driven Analytics ...\n",
- "3 grant.9982416 CAREER: Holistic Framework for Constructing Dy...\n",
- "4 grant.9982395 CAREER: Leveraging physical properties of mode...\n",
- "5 grant.9785674 BPC-AE Collaborative Research: Researching Equ...\n",
- "6 grant.9785672 BPC-AE Collaborative Research: Researching Equ...\n",
- "7 grant.9752397 Equitable Learning to Advance Technical Education\n",
- "8 grant.9995499 CAREER: New imaging of mid-ocean ridge systems...\n",
- "9 grant.9995464 CAREER: Reconstructing Parasite Abundance in R...\n",
- "10 grant.9752334 Collaborative Research: SWIFT: Intelligent Dyn...\n",
- "11 grant.9752333 Collaborative Research: SWIFT: Intelligent Dyn...\n",
- "12 grant.9995542 CAREER: Learning Mechanisms from Single Cell M...\n",
- "13 grant.9995538 CAREER: A Transformative Approach for Teaching...\n",
- "14 grant.9995527 CAREER: Interlimb Neural Coupling to Enhance G...\n",
- "15 grant.9995522 CAREER: Fossil Amber Insight Into Macroevoluti...\n",
- "16 grant.9995520 2022 Origins of Life GRC and GRS: Environments...\n",
- "17 grant.9995519 CAREER: Invariants and Entropy of Square Integ...\n",
- "18 grant.9995488 CAREER: Statistical Learning from a Modern Per...\n",
- "19 grant.9995470 CAREER: CAS- Climate: Making Decarbonization o..."
+ " id title\n",
+ "0 grant.14880777 Postdoctoral Fellowship: PRFB: Mapping the Bum...\n",
+ "1 grant.14880767 Postdoctoral Fellowship: PRFB: Using the intro...\n",
+ "2 grant.14976921 Rossbypalooza 2026: A Student-led Summer Schoo...\n",
+ "3 grant.14955547 Postdoctoral Fellowship: PRFB: The Role of Pla...\n",
+ "4 grant.14880768 Postdoctoral Fellowship: PRFB: Testing a role ...\n",
+ "5 grant.14973500 Postdoctoral Fellowship: EAR-PF: Reconstructin...\n",
+ "6 grant.14976878 Conference: Recent Perspectives on Moments of ...\n",
+ "7 grant.14955637 Conference: Rutgers Gauge Theory, Low-Dimensio...\n",
+ "8 grant.14955550 Postdoctoral Fellowship: PRFB: Integrating the...\n",
+ "9 grant.14880771 Postdoctoral Fellowship: PRFB: Eco-evolutionar...\n",
+ "10 grant.14976854 Conference: Meeting in the Middle: Conference ...\n",
+ "11 grant.14976778 MCA: Eavesdropping vectors and disease transmi...\n",
+ "12 grant.14969598 Conference: Universal Statistics in Number Theory\n",
+ "13 grant.14964639 Long term compliance observations of the evolv...\n",
+ "14 grant.14880779 Postdoctoral Fellowship: PRFB: Elucidating the...\n",
+ "15 grant.14976745 What drives spatial variability in water-colum...\n",
+ "16 grant.14976476 IRES: Exploring New Horizons in the Observable...\n",
+ "17 grant.14969702 MCA Pilot PUI: Can unhatched eggs or trash aff...\n",
+ "18 grant.14954673 Conference: Geometry Labs United 2025\n",
+ "19 grant.14976899 Collaborative Research: FIRE-MODEL: Advancing ..."
]
},
- "execution_count": 12,
+ "execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
@@ -700,7 +702,7 @@
"\n",
"query = f\"\"\"\n",
"search grants \n",
- " where funders.id in {json.dumps(nsfgrids)}\n",
+ " where funders.id in {json.dumps(nsforgs)}\n",
"return grants[id+title]\n",
"\"\"\"\n",
"\n",
@@ -727,7 +729,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.9.9"
+ "version": "3.12.8"
}
},
"nbformat": 4,
diff --git a/docs/.doctrees/nbsphinx/cookbooks/8-organizations/7-benchmarking-organizations.ipynb b/docs/.doctrees/nbsphinx/cookbooks/8-organizations/7-benchmarking-organizations.ipynb
index 4ce0f55c..b38638a8 100644
--- a/docs/.doctrees/nbsphinx/cookbooks/8-organizations/7-benchmarking-organizations.ipynb
+++ b/docs/.doctrees/nbsphinx/cookbooks/8-organizations/7-benchmarking-organizations.ipynb
@@ -20,7 +20,7 @@
},
{
"cell_type": "code",
- "execution_count": 2,
+ "execution_count": 1,
"metadata": {},
"outputs": [
{
@@ -29,7 +29,7 @@
"text": [
"==\n",
"CHANGELOG\n",
- "This notebook was last run on Feb 21, 2022\n",
+ "This notebook was last run on Sep 10, 2025\n",
"==\n"
]
}
@@ -54,7 +54,7 @@
},
{
"cell_type": "code",
- "execution_count": 3,
+ "execution_count": 2,
"metadata": {},
"outputs": [
{
@@ -70,8 +70,8 @@
"text": [
"==\n",
"Logging in..\n",
- "\u001b[2mDimcli - Dimensions API Client (v0.9.6)\u001b[0m\n",
- "\u001b[2mConnected to: - DSL v2.0\u001b[0m\n",
+ "\u001b[2mDimcli - Dimensions API Client (v1.4)\u001b[0m\n",
+ "\u001b[2mConnected to: - DSL v2.12\u001b[0m\n",
"\u001b[2mMethod: dsl.ini file\u001b[0m\n"
]
}
@@ -122,7 +122,7 @@
},
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": 3,
"metadata": {
"Collapsed": "false",
"colab": {},
@@ -135,7 +135,7 @@
"output_type": "stream",
"text": [
"Returned Research_orgs: 20\n",
- "\u001b[2mTime: 21.14s\u001b[0m\n"
+ "\u001b[2mTime: 12.29s\u001b[0m\n"
]
},
{
@@ -159,204 +159,204 @@
" \n",
"
\n",
"
\n",
- "
altmetric_median
\n",
- "
count
\n",
"
id
\n",
"
name
\n",
+ "
altmetric_median
\n",
+ "
count
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
- "
5.0
\n",
- "
546592
\n",
"
grid.38142.3c
\n",
"
Harvard University
\n",
+ "
5.292790
\n",
+ "
715128
\n",
"
\n",
"
\n",
"
1
\n",
- "
3.0
\n",
- "
484017
\n",
"
grid.26999.3d
\n",
- "
University of Tokyo
\n",
+ "
The University of Tokyo
\n",
+ "
3.000000
\n",
+ "
570861
\n",
"
\n",
"
\n",
"
2
\n",
- "
4.0
\n",
- "
342764
\n",
"
grid.17063.33
\n",
"
University of Toronto
\n",
+ "
4.019046
\n",
+ "
435895
\n",
"
\n",
"
\n",
"
3
\n",
- "
3.0
\n",
- "
320966
\n",
"
grid.214458.e
\n",
- "
University of Michigan
\n",
+ "
University of Michigan-Ann Arbor
\n",
+ "
3.968242
\n",
+ "
412146
\n",
"
\n",
"
\n",
"
4
\n",
- "
3.0
\n",
- "
310485
\n",
- "
grid.258799.8
\n",
- "
Kyoto University
\n",
+ "
grid.168010.e
\n",
+ "
Stanford University
\n",
+ "
4.939072
\n",
+ "
393415
\n",
"
\n",
"
\n",
"
5
\n",
- "
4.0
\n",
- "
302094
\n",
- "
grid.168010.e
\n",
- "
Stanford University
\n",
+ "
grid.4991.5
\n",
+ "
University of Oxford
\n",
+ "
5.104038
\n",
+ "
387324
\n",
"
\n",
"
\n",
"
6
\n",
- "
4.0
\n",
- "
297558
\n",
"
grid.34477.33
\n",
"
University of Washington
\n",
+ "
4.304326
\n",
+ "
385718
\n",
"
\n",
"
\n",
"
7
\n",
- "
3.0
\n",
- "
297094
\n",
- "
grid.19006.3e
\n",
- "
University of California, Los Angeles
\n",
+ "
grid.21107.35
\n",
+ "
Johns Hopkins University
\n",
+ "
4.374951
\n",
+ "
381545
\n",
"
\n",
"
\n",
"
8
\n",
- "
5.0
\n",
- "
289280
\n",
- "
grid.4991.5
\n",
- "
University of Oxford
\n",
+ "
grid.19006.3e
\n",
+ "
University of California, Los Angeles
\n",
+ "
3.871221
\n",
+ "
373415
\n",
"
\n",
"
\n",
"
9
\n",
- "
4.0
\n",
- "
285143
\n",
- "
grid.21107.35
\n",
- "
Johns Hopkins University
\n",
+ "
grid.258799.8
\n",
+ "
Kyoto University
\n",
+ "
3.000000
\n",
+ "
370973
\n",
"
\n",
"
\n",
"
10
\n",
- "
4.0
\n",
- "
282170
\n",
- "
grid.5335.0
\n",
- "
University of Cambridge
\n",
+ "
grid.11899.38
\n",
+ "
Universidade de São Paulo
\n",
+ "
2.778797
\n",
+ "
367466
\n",
"
\n",
"
\n",
"
11
\n",
- "
2.0
\n",
- "
280405
\n",
- "
grid.11899.38
\n",
- "
University of São Paulo
\n",
+ "
grid.5335.0
\n",
+ "
University of Cambridge
\n",
+ "
4.412618
\n",
+ "
356990
\n",
"
\n",
"
\n",
"
12
\n",
- "
4.0
\n",
- "
271170
\n",
- "
grid.25879.31
\n",
- "
University of Pennsylvania
\n",
+ "
grid.47840.3f
\n",
+ "
University of California, Berkeley
\n",
+ "
4.103148
\n",
+ "
353011
\n",
"
\n",
"
\n",
"
13
\n",
- "
4.0
\n",
- "
266337
\n",
- "
grid.83440.3b
\n",
- "
University College London
\n",
+ "
grid.25879.31
\n",
+ "
University of Pennsylvania
\n",
+ "
4.491342
\n",
+ "
351125
\n",
"
\n",
"
\n",
"
14
\n",
- "
3.0
\n",
- "
265592
\n",
- "
grid.136593.b
\n",
- "
Osaka University
\n",
+ "
grid.17635.36
\n",
+ "
University of Minnesota Twin Cities
\n",
+ "
3.252271
\n",
+ "
324688
\n",
"
\n",
"
\n",
"
15
\n",
- "
3.0
\n",
- "
250749
\n",
- "
grid.69566.3a
\n",
- "
Tohoku University
\n",
+ "
grid.136593.b
\n",
+ "
Osaka University
\n",
+ "
3.000000
\n",
+ "
323974
\n",
"
\n",
"
\n",
"
16
\n",
- "
3.0
\n",
- "
244713
\n",
- "
grid.5386.8
\n",
- "
Cornell University
\n",
+ "
grid.83440.3b
\n",
+ "
University College London
\n",
+ "
4.154059
\n",
+ "
320344
\n",
"
\n",
"
\n",
"
17
\n",
- "
4.0
\n",
- "
242749
\n",
- "
grid.47840.3f
\n",
- "
University of California, Berkeley
\n",
+ "
grid.14003.36
\n",
+ "
University of Wisconsin-Madison
\n",
+ "
3.220404
\n",
+ "
316542
\n",
"
\n",
"
\n",
"
18
\n",
- "
3.0
\n",
- "
239283
\n",
- "
grid.17635.36
\n",
- "
University of Minnesota
\n",
+ "
grid.410726.6
\n",
+ "
University of Chinese Academy of Sciences
\n",
+ "
2.287477
\n",
+ "
313606
\n",
"
\n",
"
\n",
"
19
\n",
- "
4.0
\n",
- "
236142
\n",
- "
grid.21729.3f
\n",
- "
Columbia University
\n",
+ "
grid.47100.32
\n",
+ "
Yale University
\n",
+ "
4.602265
\n",
+ "
305202
\n",
"
\n",
" \n",
"\n",
""
],
"text/plain": [
- " altmetric_median count id \\\n",
- "0 5.0 546592 grid.38142.3c \n",
- "1 3.0 484017 grid.26999.3d \n",
- "2 4.0 342764 grid.17063.33 \n",
- "3 3.0 320966 grid.214458.e \n",
- "4 3.0 310485 grid.258799.8 \n",
- "5 4.0 302094 grid.168010.e \n",
- "6 4.0 297558 grid.34477.33 \n",
- "7 3.0 297094 grid.19006.3e \n",
- "8 5.0 289280 grid.4991.5 \n",
- "9 4.0 285143 grid.21107.35 \n",
- "10 4.0 282170 grid.5335.0 \n",
- "11 2.0 280405 grid.11899.38 \n",
- "12 4.0 271170 grid.25879.31 \n",
- "13 4.0 266337 grid.83440.3b \n",
- "14 3.0 265592 grid.136593.b \n",
- "15 3.0 250749 grid.69566.3a \n",
- "16 3.0 244713 grid.5386.8 \n",
- "17 4.0 242749 grid.47840.3f \n",
- "18 3.0 239283 grid.17635.36 \n",
- "19 4.0 236142 grid.21729.3f \n",
+ " id name \\\n",
+ "0 grid.38142.3c Harvard University \n",
+ "1 grid.26999.3d The University of Tokyo \n",
+ "2 grid.17063.33 University of Toronto \n",
+ "3 grid.214458.e University of Michigan-Ann Arbor \n",
+ "4 grid.168010.e Stanford University \n",
+ "5 grid.4991.5 University of Oxford \n",
+ "6 grid.34477.33 University of Washington \n",
+ "7 grid.21107.35 Johns Hopkins University \n",
+ "8 grid.19006.3e University of California, Los Angeles \n",
+ "9 grid.258799.8 Kyoto University \n",
+ "10 grid.11899.38 Universidade de São Paulo \n",
+ "11 grid.5335.0 University of Cambridge \n",
+ "12 grid.47840.3f University of California, Berkeley \n",
+ "13 grid.25879.31 University of Pennsylvania \n",
+ "14 grid.17635.36 University of Minnesota Twin Cities \n",
+ "15 grid.136593.b Osaka University \n",
+ "16 grid.83440.3b University College London \n",
+ "17 grid.14003.36 University of Wisconsin-Madison \n",
+ "18 grid.410726.6 University of Chinese Academy of Sciences \n",
+ "19 grid.47100.32 Yale University \n",
"\n",
- " name \n",
- "0 Harvard University \n",
- "1 University of Tokyo \n",
- "2 University of Toronto \n",
- "3 University of Michigan \n",
- "4 Kyoto University \n",
- "5 Stanford University \n",
- "6 University of Washington \n",
- "7 University of California, Los Angeles \n",
- "8 University of Oxford \n",
- "9 Johns Hopkins University \n",
- "10 University of Cambridge \n",
- "11 University of São Paulo \n",
- "12 University of Pennsylvania \n",
- "13 University College London \n",
- "14 Osaka University \n",
- "15 Tohoku University \n",
- "16 Cornell University \n",
- "17 University of California, Berkeley \n",
- "18 University of Minnesota \n",
- "19 Columbia University "
+ " altmetric_median count \n",
+ "0 5.292790 715128 \n",
+ "1 3.000000 570861 \n",
+ "2 4.019046 435895 \n",
+ "3 3.968242 412146 \n",
+ "4 4.939072 393415 \n",
+ "5 5.104038 387324 \n",
+ "6 4.304326 385718 \n",
+ "7 4.374951 381545 \n",
+ "8 3.871221 373415 \n",
+ "9 3.000000 370973 \n",
+ "10 2.778797 367466 \n",
+ "11 4.412618 356990 \n",
+ "12 4.103148 353011 \n",
+ "13 4.491342 351125 \n",
+ "14 3.252271 324688 \n",
+ "15 3.000000 323974 \n",
+ "16 4.154059 320344 \n",
+ "17 3.220404 316542 \n",
+ "18 2.287477 313606 \n",
+ "19 4.602265 305202 "
]
},
- "execution_count": 4,
+ "execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
@@ -369,7 +369,7 @@
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": 4,
"metadata": {
"Collapsed": "false",
"colab": {},
@@ -382,7 +382,7 @@
"output_type": "stream",
"text": [
"Returned Research_orgs: 20\n",
- "\u001b[2mTime: 6.63s\u001b[0m\n"
+ "\u001b[2mTime: 4.16s\u001b[0m\n"
]
},
{
@@ -406,204 +406,204 @@
" \n",
"
\n",
"
\n",
- "
citations_total
\n",
- "
count
\n",
"
id
\n",
"
name
\n",
+ "
citations_total
\n",
+ "
count
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
- "
28836616.0
\n",
- "
546592
\n",
"
grid.38142.3c
\n",
"
Harvard University
\n",
+ "
43542715.0
\n",
+ "
715128
\n",
"
\n",
"
\n",
"
1
\n",
- "
8545148.0
\n",
- "
484017
\n",
"
grid.26999.3d
\n",
- "
University of Tokyo
\n",
+ "
The University of Tokyo
\n",
+ "
12416944.0
\n",
+ "
570861
\n",
"
\n",
"
\n",
"
2
\n",
- "
11040840.0
\n",
- "
342764
\n",
"
grid.17063.33
\n",
"
University of Toronto
\n",
+ "
16896263.0
\n",
+ "
435895
\n",
"
\n",
"
\n",
"
3
\n",
- "
11710248.0
\n",
- "
320966
\n",
"
grid.214458.e
\n",
- "
University of Michigan
\n",
+ "
University of Michigan-Ann Arbor
\n",
+ "
17899164.0
\n",
+ "
412146
\n",
"
\n",
"
\n",
"
4
\n",
- "
5928948.0
\n",
- "
310485
\n",
- "
grid.258799.8
\n",
- "
Kyoto University
\n",
+ "
grid.168010.e
\n",
+ "
Stanford University
\n",
+ "
22857822.0
\n",
+ "
393415
\n",
"
\n",
"
\n",
"
5
\n",
- "
14738599.0
\n",
- "
302094
\n",
- "
grid.168010.e
\n",
- "
Stanford University
\n",
+ "
grid.4991.5
\n",
+ "
University of Oxford
\n",
+ "
17348878.0
\n",
+ "
387324
\n",
"
\n",
"
\n",
"
6
\n",
- "
12585381.0
\n",
- "
297558
\n",
"
grid.34477.33
\n",
"
University of Washington
\n",
+ "
19245227.0
\n",
+ "
385718
\n",
"
\n",
"
\n",
"
7
\n",
- "
11710928.0
\n",
- "
297094
\n",
- "
grid.19006.3e
\n",
- "
University of California, Los Angeles
\n",
+ "
grid.21107.35
\n",
+ "
Johns Hopkins University
\n",
+ "
18542871.0
\n",
+ "
381545
\n",
"
\n",
"
\n",
"
8
\n",
- "
10879614.0
\n",
- "
289280
\n",
- "
grid.4991.5
\n",
- "
University of Oxford
\n",
+ "
grid.19006.3e
\n",
+ "
University of California, Los Angeles
\n",
+ "
17370426.0
\n",
+ "
373415
\n",
"
\n",
"
\n",
"
9
\n",
- "
12084053.0
\n",
- "
285143
\n",
- "
grid.21107.35
\n",
- "
Johns Hopkins University
\n",
+ "
grid.258799.8
\n",
+ "
Kyoto University
\n",
+ "
8426700.0
\n",
+ "
370973
\n",
"
\n",
"
\n",
"
10
\n",
- "
10814051.0
\n",
- "
282170
\n",
- "
grid.5335.0
\n",
- "
University of Cambridge
\n",
+ "
grid.11899.38
\n",
+ "
Universidade de São Paulo
\n",
+ "
6823063.0
\n",
+ "
367466
\n",
"
\n",
"
\n",
"
11
\n",
- "
4105653.0
\n",
- "
280405
\n",
- "
grid.11899.38
\n",
- "
University of São Paulo
\n",
+ "
grid.5335.0
\n",
+ "
University of Cambridge
\n",
+ "
16495121.0
\n",
+ "
356990
\n",
"
\n",
"
\n",
"
12
\n",
- "
10450691.0
\n",
- "
271170
\n",
- "
grid.25879.31
\n",
- "
University of Pennsylvania
\n",
+ "
grid.47840.3f
\n",
+ "
University of California, Berkeley
\n",
+ "
19445292.0
\n",
+ "
353011
\n",
"
\n",
"
\n",
"
13
\n",
- "
9614297.0
\n",
- "
266337
\n",
- "
grid.83440.3b
\n",
- "
University College London
\n",
+ "
grid.25879.31
\n",
+ "
University of Pennsylvania
\n",
+ "
15634591.0
\n",
+ "
351125
\n",
"
\n",
"
\n",
"
14
\n",
- "
4653874.0
\n",
- "
265592
\n",
- "
grid.136593.b
\n",
- "
Osaka University
\n",
+ "
grid.17635.36
\n",
+ "
University of Minnesota Twin Cities
\n",
+ "
13100152.0
\n",
+ "
324688
\n",
"
\n",
"
\n",
"
15
\n",
- "
3694359.0
\n",
- "
250749
\n",
- "
grid.69566.3a
\n",
- "
Tohoku University
\n",
+ "
grid.136593.b
\n",
+ "
Osaka University
\n",
+ "
6486832.0
\n",
+ "
323974
\n",
"
\n",
"
\n",
"
16
\n",
- "
9370701.0
\n",
- "
244713
\n",
- "
grid.5386.8
\n",
- "
Cornell University
\n",
+ "
grid.83440.3b
\n",
+ "
University College London
\n",
+ "
13014090.0
\n",
+ "
320344
\n",
"
\n",
"
\n",
"
17
\n",
- "
11806056.0
\n",
- "
242749
\n",
- "
grid.47840.3f
\n",
- "
University of California, Berkeley
\n",
+ "
grid.14003.36
\n",
+ "
University of Wisconsin-Madison
\n",
+ "
13060297.0
\n",
+ "
316542
\n",
"
\n",
"
\n",
"
18
\n",
- "
8360048.0
\n",
- "
239283
\n",
- "
grid.17635.36
\n",
- "
University of Minnesota
\n",
+ "
grid.410726.6
\n",
+ "
University of Chinese Academy of Sciences
\n",
+ "
8305318.0
\n",
+ "
313606
\n",
"
\n",
"
\n",
"
19
\n",
- "
9400497.0
\n",
- "
236142
\n",
- "
grid.21729.3f
\n",
- "
Columbia University
\n",
+ "
grid.47100.32
\n",
+ "
Yale University
\n",
+ "
14768834.0
\n",
+ "
305202
\n",
"
\n",
" \n",
"\n",
""
],
"text/plain": [
- " citations_total count id \\\n",
- "0 28836616.0 546592 grid.38142.3c \n",
- "1 8545148.0 484017 grid.26999.3d \n",
- "2 11040840.0 342764 grid.17063.33 \n",
- "3 11710248.0 320966 grid.214458.e \n",
- "4 5928948.0 310485 grid.258799.8 \n",
- "5 14738599.0 302094 grid.168010.e \n",
- "6 12585381.0 297558 grid.34477.33 \n",
- "7 11710928.0 297094 grid.19006.3e \n",
- "8 10879614.0 289280 grid.4991.5 \n",
- "9 12084053.0 285143 grid.21107.35 \n",
- "10 10814051.0 282170 grid.5335.0 \n",
- "11 4105653.0 280405 grid.11899.38 \n",
- "12 10450691.0 271170 grid.25879.31 \n",
- "13 9614297.0 266337 grid.83440.3b \n",
- "14 4653874.0 265592 grid.136593.b \n",
- "15 3694359.0 250749 grid.69566.3a \n",
- "16 9370701.0 244713 grid.5386.8 \n",
- "17 11806056.0 242749 grid.47840.3f \n",
- "18 8360048.0 239283 grid.17635.36 \n",
- "19 9400497.0 236142 grid.21729.3f \n",
+ " id name citations_total \\\n",
+ "0 grid.38142.3c Harvard University 43542715.0 \n",
+ "1 grid.26999.3d The University of Tokyo 12416944.0 \n",
+ "2 grid.17063.33 University of Toronto 16896263.0 \n",
+ "3 grid.214458.e University of Michigan-Ann Arbor 17899164.0 \n",
+ "4 grid.168010.e Stanford University 22857822.0 \n",
+ "5 grid.4991.5 University of Oxford 17348878.0 \n",
+ "6 grid.34477.33 University of Washington 19245227.0 \n",
+ "7 grid.21107.35 Johns Hopkins University 18542871.0 \n",
+ "8 grid.19006.3e University of California, Los Angeles 17370426.0 \n",
+ "9 grid.258799.8 Kyoto University 8426700.0 \n",
+ "10 grid.11899.38 Universidade de São Paulo 6823063.0 \n",
+ "11 grid.5335.0 University of Cambridge 16495121.0 \n",
+ "12 grid.47840.3f University of California, Berkeley 19445292.0 \n",
+ "13 grid.25879.31 University of Pennsylvania 15634591.0 \n",
+ "14 grid.17635.36 University of Minnesota Twin Cities 13100152.0 \n",
+ "15 grid.136593.b Osaka University 6486832.0 \n",
+ "16 grid.83440.3b University College London 13014090.0 \n",
+ "17 grid.14003.36 University of Wisconsin-Madison 13060297.0 \n",
+ "18 grid.410726.6 University of Chinese Academy of Sciences 8305318.0 \n",
+ "19 grid.47100.32 Yale University 14768834.0 \n",
"\n",
- " name \n",
- "0 Harvard University \n",
- "1 University of Tokyo \n",
- "2 University of Toronto \n",
- "3 University of Michigan \n",
- "4 Kyoto University \n",
- "5 Stanford University \n",
- "6 University of Washington \n",
- "7 University of California, Los Angeles \n",
- "8 University of Oxford \n",
- "9 Johns Hopkins University \n",
- "10 University of Cambridge \n",
- "11 University of São Paulo \n",
- "12 University of Pennsylvania \n",
- "13 University College London \n",
- "14 Osaka University \n",
- "15 Tohoku University \n",
- "16 Cornell University \n",
- "17 University of California, Berkeley \n",
- "18 University of Minnesota \n",
- "19 Columbia University "
+ " count \n",
+ "0 715128 \n",
+ "1 570861 \n",
+ "2 435895 \n",
+ "3 412146 \n",
+ "4 393415 \n",
+ "5 387324 \n",
+ "6 385718 \n",
+ "7 381545 \n",
+ "8 373415 \n",
+ "9 370973 \n",
+ "10 367466 \n",
+ "11 356990 \n",
+ "12 353011 \n",
+ "13 351125 \n",
+ "14 324688 \n",
+ "15 323974 \n",
+ "16 320344 \n",
+ "17 316542 \n",
+ "18 313606 \n",
+ "19 305202 "
]
},
- "execution_count": 5,
+ "execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
@@ -616,7 +616,7 @@
},
{
"cell_type": "code",
- "execution_count": 6,
+ "execution_count": 5,
"metadata": {
"Collapsed": "false",
"colab": {},
@@ -629,7 +629,7 @@
"output_type": "stream",
"text": [
"Returned Research_orgs: 20\n",
- "\u001b[2mTime: 6.54s\u001b[0m\n"
+ "\u001b[2mTime: 5.11s\u001b[0m\n"
]
},
{
@@ -653,204 +653,204 @@
" \n",
"
\n",
"
\n",
- "
count
\n",
"
id
\n",
"
name
\n",
+ "
count
\n",
"
recent_citations_total
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
- "
546592
\n",
"
grid.38142.3c
\n",
"
Harvard University
\n",
- "
5562378.0
\n",
+ "
715128
\n",
+ "
5657002.0
\n",
"
\n",
"
\n",
"
1
\n",
- "
484017
\n",
"
grid.26999.3d
\n",
- "
University of Tokyo
\n",
- "
1471000.0
\n",
+ "
The University of Tokyo
\n",
+ "
570861
\n",
+ "
1498274.0
\n",
"
\n",
"
\n",
"
2
\n",
- "
342764
\n",
"
grid.17063.33
\n",
"
University of Toronto
\n",
- "
2380994.0
\n",
+ "
435895
\n",
+ "
2557162.0
\n",
"
\n",
"
\n",
"
3
\n",
- "
320966
\n",
"
grid.214458.e
\n",
- "
University of Michigan
\n",
- "
2370219.0
\n",
+ "
University of Michigan-Ann Arbor
\n",
+ "
412146
\n",
+ "
2411193.0
\n",
"
\n",
"
\n",
"
4
\n",
- "
310485
\n",
- "
grid.258799.8
\n",
- "
Kyoto University
\n",
- "
1006685.0
\n",
+ "
grid.168010.e
\n",
+ "
Stanford University
\n",
+ "
393415
\n",
+ "
3172519.0
\n",
"
\n",
"
\n",
"
5
\n",
- "
302094
\n",
- "
grid.168010.e
\n",
- "
Stanford University
\n",
- "
2985116.0
\n",
+ "
grid.4991.5
\n",
+ "
University of Oxford
\n",
+ "
387324
\n",
+ "
2687354.0
\n",
"
\n",
"
\n",
"
6
\n",
- "
297558
\n",
"
grid.34477.33
\n",
"
University of Washington
\n",
- "
2411827.0
\n",
+ "
385718
\n",
+ "
2508430.0
\n",
"
\n",
"
\n",
"
7
\n",
- "
297094
\n",
- "
grid.19006.3e
\n",
- "
University of California, Los Angeles
\n",
- "
2137101.0
\n",
+ "
grid.21107.35
\n",
+ "
Johns Hopkins University
\n",
+ "
381545
\n",
+ "
2441471.0
\n",
"
\n",
"
\n",
"
8
\n",
- "
289280
\n",
- "
grid.4991.5
\n",
- "
University of Oxford
\n",
- "
2504619.0
\n",
+ "
grid.19006.3e
\n",
+ "
University of California, Los Angeles
\n",
+ "
373415
\n",
+ "
2151381.0
\n",
"
\n",
"
\n",
"
9
\n",
- "
285143
\n",
- "
grid.21107.35
\n",
- "
Johns Hopkins University
\n",
- "
2352686.0
\n",
+ "
grid.258799.8
\n",
+ "
Kyoto University
\n",
+ "
370973
\n",
+ "
966227.0
\n",
"
\n",
"
\n",
"
10
\n",
- "
282170
\n",
- "
grid.5335.0
\n",
- "
University of Cambridge
\n",
- "
2110364.0
\n",
+ "
grid.11899.38
\n",
+ "
Universidade de São Paulo
\n",
+ "
367466
\n",
+ "
1207947.0
\n",
"
\n",
"
\n",
"
11
\n",
- "
280405
\n",
- "
grid.11899.38
\n",
- "
University of São Paulo
\n",
- "
1124894.0
\n",
+ "
grid.5335.0
\n",
+ "
University of Cambridge
\n",
+ "
356990
\n",
+ "
2258714.0
\n",
"
\n",
"
\n",
"
12
\n",
- "
271170
\n",
- "
grid.25879.31
\n",
- "
University of Pennsylvania
\n",
- "
2049126.0
\n",
+ "
grid.47840.3f
\n",
+ "
University of California, Berkeley
\n",
+ "
353011
\n",
+ "
2404905.0
\n",
"
\n",
"
\n",
"
13
\n",
- "
266337
\n",
- "
grid.83440.3b
\n",
- "
University College London
\n",
- "
2197569.0
\n",
+ "
grid.25879.31
\n",
+ "
University of Pennsylvania
\n",
+ "
351125
\n",
+ "
2063182.0
\n",
"
\n",
"
\n",
"
14
\n",
- "
265592
\n",
- "
grid.136593.b
\n",
- "
Osaka University
\n",
- "
727151.0
\n",
+ "
grid.17635.36
\n",
+ "
University of Minnesota Twin Cities
\n",
+ "
324688
\n",
+ "
1575033.0
\n",
"
\n",
"
\n",
"
15
\n",
- "
250749
\n",
- "
grid.69566.3a
\n",
- "
Tohoku University
\n",
- "
644246.0
\n",
+ "
grid.136593.b
\n",
+ "
Osaka University
\n",
+ "
323974
\n",
+ "
691161.0
\n",
"
\n",
"
\n",
"
16
\n",
- "
244713
\n",
- "
grid.5386.8
\n",
- "
Cornell University
\n",
- "
1809884.0
\n",
+ "
grid.83440.3b
\n",
+ "
University College London
\n",
+ "
320344
\n",
+ "
2241297.0
\n",
"
\n",
"
\n",
"
17
\n",
- "
242749
\n",
- "
grid.47840.3f
\n",
- "
University of California, Berkeley
\n",
- "
2057506.0
\n",
+ "
grid.14003.36
\n",
+ "
University of Wisconsin-Madison
\n",
+ "
316542
\n",
+ "
1508661.0
\n",
"
\n",
"
\n",
"
18
\n",
- "
239283
\n",
- "
grid.17635.36
\n",
- "
University of Minnesota
\n",
- "
1519539.0
\n",
+ "
grid.410726.6
\n",
+ "
University of Chinese Academy of Sciences
\n",
+ "
313606
\n",
+ "
2620498.0
\n",
"
\n",
"
\n",
"
19
\n",
- "
236142
\n",
- "
grid.21729.3f
\n",
- "
Columbia University
\n",
- "
1754780.0
\n",
+ "
grid.47100.32
\n",
+ "
Yale University
\n",
+ "
305202
\n",
+ "
1861426.0
\n",
"
\n",
" \n",
"\n",
""
],
"text/plain": [
- " count id name \\\n",
- "0 546592 grid.38142.3c Harvard University \n",
- "1 484017 grid.26999.3d University of Tokyo \n",
- "2 342764 grid.17063.33 University of Toronto \n",
- "3 320966 grid.214458.e University of Michigan \n",
- "4 310485 grid.258799.8 Kyoto University \n",
- "5 302094 grid.168010.e Stanford University \n",
- "6 297558 grid.34477.33 University of Washington \n",
- "7 297094 grid.19006.3e University of California, Los Angeles \n",
- "8 289280 grid.4991.5 University of Oxford \n",
- "9 285143 grid.21107.35 Johns Hopkins University \n",
- "10 282170 grid.5335.0 University of Cambridge \n",
- "11 280405 grid.11899.38 University of São Paulo \n",
- "12 271170 grid.25879.31 University of Pennsylvania \n",
- "13 266337 grid.83440.3b University College London \n",
- "14 265592 grid.136593.b Osaka University \n",
- "15 250749 grid.69566.3a Tohoku University \n",
- "16 244713 grid.5386.8 Cornell University \n",
- "17 242749 grid.47840.3f University of California, Berkeley \n",
- "18 239283 grid.17635.36 University of Minnesota \n",
- "19 236142 grid.21729.3f Columbia University \n",
+ " id name count \\\n",
+ "0 grid.38142.3c Harvard University 715128 \n",
+ "1 grid.26999.3d The University of Tokyo 570861 \n",
+ "2 grid.17063.33 University of Toronto 435895 \n",
+ "3 grid.214458.e University of Michigan-Ann Arbor 412146 \n",
+ "4 grid.168010.e Stanford University 393415 \n",
+ "5 grid.4991.5 University of Oxford 387324 \n",
+ "6 grid.34477.33 University of Washington 385718 \n",
+ "7 grid.21107.35 Johns Hopkins University 381545 \n",
+ "8 grid.19006.3e University of California, Los Angeles 373415 \n",
+ "9 grid.258799.8 Kyoto University 370973 \n",
+ "10 grid.11899.38 Universidade de São Paulo 367466 \n",
+ "11 grid.5335.0 University of Cambridge 356990 \n",
+ "12 grid.47840.3f University of California, Berkeley 353011 \n",
+ "13 grid.25879.31 University of Pennsylvania 351125 \n",
+ "14 grid.17635.36 University of Minnesota Twin Cities 324688 \n",
+ "15 grid.136593.b Osaka University 323974 \n",
+ "16 grid.83440.3b University College London 320344 \n",
+ "17 grid.14003.36 University of Wisconsin-Madison 316542 \n",
+ "18 grid.410726.6 University of Chinese Academy of Sciences 313606 \n",
+ "19 grid.47100.32 Yale University 305202 \n",
"\n",
" recent_citations_total \n",
- "0 5562378.0 \n",
- "1 1471000.0 \n",
- "2 2380994.0 \n",
- "3 2370219.0 \n",
- "4 1006685.0 \n",
- "5 2985116.0 \n",
- "6 2411827.0 \n",
- "7 2137101.0 \n",
- "8 2504619.0 \n",
- "9 2352686.0 \n",
- "10 2110364.0 \n",
- "11 1124894.0 \n",
- "12 2049126.0 \n",
- "13 2197569.0 \n",
- "14 727151.0 \n",
- "15 644246.0 \n",
- "16 1809884.0 \n",
- "17 2057506.0 \n",
- "18 1519539.0 \n",
- "19 1754780.0 "
+ "0 5657002.0 \n",
+ "1 1498274.0 \n",
+ "2 2557162.0 \n",
+ "3 2411193.0 \n",
+ "4 3172519.0 \n",
+ "5 2687354.0 \n",
+ "6 2508430.0 \n",
+ "7 2441471.0 \n",
+ "8 2151381.0 \n",
+ "9 966227.0 \n",
+ "10 1207947.0 \n",
+ "11 2258714.0 \n",
+ "12 2404905.0 \n",
+ "13 2063182.0 \n",
+ "14 1575033.0 \n",
+ "15 691161.0 \n",
+ "16 2241297.0 \n",
+ "17 1508661.0 \n",
+ "18 2620498.0 \n",
+ "19 1861426.0 "
]
},
- "execution_count": 6,
+ "execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
@@ -874,7 +874,7 @@
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": 6,
"metadata": {
"Collapsed": "false",
"colab": {},
@@ -887,7 +887,7 @@
"output_type": "stream",
"text": [
"Returned Year: 20\n",
- "\u001b[2mTime: 4.06s\u001b[0m\n"
+ "\u001b[2mTime: 5.16s\u001b[0m\n"
]
},
{
@@ -911,161 +911,161 @@
" \n",
"
SR2.0 refers to a prominent argument made by some geneticists, often via social and popular media, which inadvertently amounts to a refinement of scientific racism. At face value it is an attack on racism in science. Upon closer inspection its primary, possibly unconscious, purpose appears to be to protect contemporary genetic research from the charge of racism. The argument is often made alongside an emphasis upon long-falsified errors of early science and open expressions of racism in wider society, rather than the intelligence and statistical theory which has informed both genetics and the social construct scientific racism for a century. The core argument is invalid. It also has profound epistemological failings, including misunderstanding the nature of social constructions and how they how they interact with empirical facts. Finally, the proponents do not fully support their own argument; this exposes the argument\\u2019s substantive function as a defensive holding device.
\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"submission_id\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 10,\n \"samples\": [\n \"879bff9a-169b-425f-a027-11f04e0448ea\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
+ },
+ "application/vnd.google.colaboratory.module+javascript": "\n import \"https://ssl.gstatic.com/colaboratory/data_table/e523c247d1e24a05/data_table.js\";\n\n const table = window.createDataTable({\n data: [[{\n 'v': 0,\n 'f': \"0\",\n },\n\"2020-01-22\",\n\"Kong\",\n\"Predicting Prolonged Length of Hospital Stay for Peritoneal Dialysis\\u2013Treated Patients Using Stacked Generalization: Model Development and Validation Study (Preprint)\",\n\"\\n BACKGROUND\\n
The increasing number of patients treated with peritoneal dialysis (PD) and their consistently high rate of hospital admissions have placed a large burden on the health care system. Early clinical interventions and optimal management of patients at a high risk of prolonged length of stay (pLOS) may help improve the medical efficiency and prognosis of PD-treated patients. If timely clinical interventions are not provided, patients at a high risk of pLOS may face a poor prognosis and high medical expenses, which will also be a burden on hospitals. Therefore, physicians need an effective pLOS prediction model for PD-treated patients.<\\/p>\\n <\\/sec>\\n \\n OBJECTIVE\\n
This study aimed to develop an optimal data-driven model for predicting the pLOS risk of PD-treated patients using basic admission data.<\\/p>\\n <\\/sec>\\n \\n METHODS\\n
Patient data collected using the Hospital Quality Monitoring System (HQMS) in China were used to develop pLOS prediction models. A stacking model was constructed with support vector machine, random forest (RF), and K-nearest neighbor algorithms as its base models and traditional logistic regression (LR) as its meta-model. The meta-model used the outputs of all 3 base models as input and generated the output of the stacking model. Another LR-based pLOS prediction model was built as the benchmark model. The prediction performance of the stacking model was compared with that of its base models and the benchmark model. Five-fold cross-validation was employed to develop and validate the models. Performance measures included the Brier score, area under the receiver operating characteristic curve (AUROC), estimated calibration index (ECI), accuracy, sensitivity, specificity, and geometric mean (Gm). In addition, a calibration plot was employed to visually demonstrate the calibration power of each model.<\\/p>\\n <\\/sec>\\n \\n RESULTS\\n
The final cohort extracted from the HQMS database consisted of 23,992 eligible PD-treated patients, among whom 30.3% had a pLOS (ie, longer than the average LOS, which was 16 days in our study). Among the models, the stacking model achieved the best calibration (ECI 8.691), balanced accuracy (Gm 0.690), accuracy (0.695), and specificity (0.701). Meanwhile, the stacking and RF models had the best overall performance (Brier score 0.174 for both) and discrimination (AUROC 0.757 for the stacking model and 0.756 for the RF model). Compared with the benchmark LR model, the stacking model was superior in all performance measures except sensitivity, but there was no significant difference in sensitivity between the 2 models. The 2-sided <i>t</i> tests revealed significant performance differences between the stacking and LR models in overall performance, discrimination, calibration, balanced accuracy, and accuracy.<\\/p>\\n <\\/sec>\\n \\n CONCLUSIONS\\n
This study is the first to develop data-driven pLOS prediction models for PD-treated patients using basic admission data from a national database. The results indicate the feasibility of utilizing a stacking-based pLOS prediction model for PD-treated patients. The pLOS prediction tools developed in this study have the potential to assist clinicians in identifying patients at a high risk of pLOS and to allocate resources optimally for PD-treated patients.<\\/p>\\n <\\/sec>\",\n\"6ef9af47-8fa7-4abb-af69-0c8a522b6f9a\"],\n [{\n 'v': 1,\n 'f': \"1\",\n },\n\"2020-01-22\",\n\"Bowman\",\n\"OSF Prereg Template\",\n\"
Preregistration is the act of submitting a study plan, ideally also with analytical plan, to a registry prior to conducting the work. Preregistration increases the discoverability of research even if it does not get published further. Adding specific analysis plans can clarify the distinction between planned, confirmatory tests and unplanned, exploratory research. This preprint contains a template for the \\u201cOSF Prereg\\u201d form available from the OSF Registry. An earlier version was originally developed for the Preregistration Challenge, an education campaign designed to initiate preregistration as a habit prior to data collection in basic research, funded by the Laura and John Arnold Foundation (now Arnold Ventures) and conducted by the Center for Open Science. More information is available at https://cos.io/prereg, and other templates are available at: https://osf.io/zab38/<\\/p>\",\n\"2239203f-fa3b-4402-a185-1398861aba66\"],\n [{\n 'v': 2,\n 'f': \"2\",\n },\n\"2020-01-22\",\n\"Di Sia\",\n\"On the Concept of Time in everyday Life and between Physics and Mathematics\",\n\"
In this paper I consider the concept of time in a general way as daily human time andthen within physics with relation to mathematics. I focus the attention on quantum mechanics, with its particular peculiarities, examining peculiar important questions like the temporal asymmetry, the Prigogine\\u2019s position and the time-reversal operator of Wigner. I conclude considering the theme of the temporal asymmetry in relation to decoherence and irreversibility. Interesting imputs related to education science will be done.<\\/p>\",\n\"7dc54f58-2a6c-44eb-b906-98a184d1bac1\"],\n [{\n 'v': 3,\n 'f': \"3\",\n },\n\"2020-01-22\",\n\"Di Sia\",\n\"Birth and development of quantum physics: a transdisciplinary approach\",\n\"
The last century has been a period of extreme interest for scientific research, marked by the overcoming of the classical frontiers of scientific knowledge.Research oriented towards the infinitely small and infinitely big, in both cases beyondthe borders of the visible. Quantum physics has led to a new Copernican revolution,opening the way to new questions that have led to a new view of reality. At the sametime, new theories have developed, involving every field of science, philosophy and art, rediscovering the link between unity and totality and the importance of humanpotential. In a transdisciplinary approach we consider quantum field theory, new ideason the concepts of vacuum and entanglement, metaphysical aspects of quantum revolution and the introduction of different interpretative approaches on the \\u201cWhole\\u201d.<\\/p>\",\n\"b466b2fd-b0c3-4573-abc5-229532212be1\"],\n [{\n 'v': 4,\n 'f': \"4\",\n },\n\"2020-01-22\",\n\"Bedoya\",\n\"Fabricaci\\u00f3n de capas antirreflejantes y absorbedores solares mediante la t\\u00e9cnica Sol-gel: Un resumen sobre la variaci\\u00f3n de s\\u00edntesis y condiciones experimentales realizadas en la UTP\",\n\"
Se prepararon pel\\u00edculas delgadas de SiO2 en relaci\\u00f3n molar TEOS:H2O:EtOH 1:18:1.8 y CuCoMn en relaci\\u00f3n molar Cu:Co:Mn 1:3:3 por el m\\u00e9todo de recubrimiento por inmersi\\u00f3n (Sol-gel), bajo condiciones fijas de velocidad de dep\\u00f3sito y n\\u00famero de capas. Inicialmente se usaron sustratos de vidrios con el fin de analizar el comportamiento \\u00f3ptico de los recubrimientos utilizando espectroscop\\u00eda UV-Vis y FTIR. Una vez depositados los recubrimientos de SiO2 se sometieron a secado a temperatura ambiente y dentro de un horno tubular a 70 \\u00b0C. Por otro lado, las muestras de CuCoMn se trataron t\\u00e9rmicamente a diferentes temperaturas de recocido (550 \\u00b0C, 600 \\u00b0C y 650 \\u00b0C) durante 12 horas a una rampa de 1 \\u00b0C/min. Los resultados parciales obtenidos muestran que las pel\\u00edculas exhiben una absortancia entre 75% - 95 %, lo cual est\\u00e1 acorde con lo reportado en la literatura para este material. Sin embargo, para aumentar este valor es necesario ampliar el estudio del material, con el fin de definir su estructura, composici\\u00f3n y morfolog\\u00eda. El objetivo es obtener recubrimientos con las propiedades \\u00f3pticas y estructurales adecuadas con el fin de ser usados en la fabricaci\\u00f3n de la superficie absorbedora de calentadores de agua e instalaciones de energ\\u00eda solar.<\\/p>\",\n\"56360b84-72d3-42bc-b963-067e95e1ade3\"],\n [{\n 'v': 5,\n 'f': \"5\",\n },\n\"2020-01-22\",\n\"Coretta\",\n\"Open Science in phonetics and phonology\",\n\"
Open Science is a movement that stresses the importance of a more honest and transparent scientific attitude by promoting a series of research principles and by warning from common, although not necessarily intentional, questionable practices and misconceptions. The term Open Science as a whole refers to the fundamental concepts of 'openness, transparency, rigour, reproducibility, replicability, and accumulation of knowledge' (Cruwell 2018). The goodness of the latter depends in great part on the reproducibility and replicability of the studies that contribute to knowledge accumulation.<\\/p>\",\n\"4c0ca94a-14f2-4f86-b014-ac47f7d5170c\"],\n [{\n 'v': 6,\n 'f': \"6\",\n },\n\"2020-01-22\",\n\"Wekke\",\n\"Merumuskan Masalah Penelitian dengan Metode MAIL\",\n\"
Ringkasan kuliah di pascasarjana STAIN Sorong.<\\/p>\",\n\"494a322a-7a51-460b-8dcb-dcfbb405e9e6\"],\n [{\n 'v': 7,\n 'f': \"7\",\n },\n\"2020-01-22\",\n\"Hern\\u00e1ndez-Caballero\",\n\"Epigen\\u00e9tica en c\\u00e1ncer\",\n\"
Las c\\u00e9lulas contienen informaci\\u00f3n determinada por el genoma propio del organismo al que pertenecen, lo cual le permite el desarrollo y diferenciaci\\u00f3n propios de su especie, en este sentido la informaci\\u00f3n epigen\\u00e9tica constituye una capa adicional de informaci\\u00f3n reguladora que vuelve m\\u00e1s complejos los procesos celulares. La metilaci\\u00f3n del DNA es la marca epigen\\u00e9tica de inactivaci\\u00f3n m\\u00e1s conocida y como el proceso reversible que es, consiste en un fen\\u00f3meno din\\u00e1mico que cambia durante la vida de la c\\u00e9lula. Los cambios epigen\\u00e9ticos inciden directamente en la conformaci\\u00f3n que adquiere la cromatina, con lo que se regula el c\\u00f3mo se expresen los genes y su actividad, a su vez, depende de modificaciones postraduccionales en las prote\\u00ednas histonas. Las histonas al igual que el DNA tambi\\u00e9n pueden presentar modificaciones epigen\\u00e9ticas.El c\\u00e1ncer es una patolog\\u00eda heterog\\u00e9nea que durante mucho tiempo se crey\\u00f3 era el resultado \\u00fanicamente de la adquisici\\u00f3n de mutaciones gen\\u00e9ticas o rearreglos cromos\\u00f3micos, que desembocaban en la p\\u00e9rdida del funcionamiento de genes encargados de evitar el crecimiento celular descontrolado y de la desregulaci\\u00f3n de la actividad de genes encargados de promover la proliferaci\\u00f3n. No obstante, la expresi\\u00f3n adecuada de los genes es fundamental para mantener el fenotipo celular normal, y el control de dicha expresi\\u00f3n va m\\u00e1s all\\u00e1 de la sola presencia de una secuencia gen\\u00e9tica sin cambio. Sin embargo, las alteraciones epigen\\u00e9ticas que preceden y contribuyen al inicio del desarrollo de un c\\u00e1ncer a\\u00fan no se conocen de forma precisa.Actualmente la metilaci\\u00f3n de DNA es la principal marca epigen\\u00e9tica m\\u00e1s ampliamente estudiada. La diversidad en el uso de t\\u00e9cnicas para realizar este cometido va desde m\\u00e9todos sencillos como el uso de enzimas de restricci\\u00f3n sensibles a la metilaci\\u00f3n, para digerir DNA gen\\u00f3mico y analizar peque\\u00f1as regiones de DNA, pasando por el uso de bisulfito de sodio para analizar el estado de metilaci\\u00f3n en las citosinas hasta los m\\u00e9todos actuales de secuenciaci\\u00f3n a gran escala que permiten el an\\u00e1lisis simultaneo de gran cantidad de muestras y de amplias regiones del genoma completo, llegando a analizar hasta 3 millones de variantes gen\\u00e9ticas en un individuo. A la par, se ha desarrollado software especializado en epigen\\u00e9tica, permitiendo conocer la ubicaci\\u00f3n de sitios de metilaci\\u00f3n para luego hacer su b\\u00fasqueda en muestras biol\\u00f3gicas y se han desarrollado programas complejos para el an\\u00e1lisis de datos masivos obtenidos a trav\\u00e9s del uso de plataformas basadas en hibridaci\\u00f3n (microarreglos) y la secuenciaci\\u00f3n masiva con diversas afinidades (DNA-seq, RNA-seq, ChIP-seq, FAIRE-seq, ATAC-seq, MeDIP-seq, MBD-seq) y WGBS. Los cambios epigen\\u00e9ticos aberrantes en el c\\u00e1ncer pueden ser evidentes desde etapas tempranas, lo que ha llevado a pensar que, esta desregulaci\\u00f3n precede de hecho a los eventos tumorales transformadores preliminares cl\\u00e1sicos (mutaciones de supresores y/o protooncogenes e inestabilidad gen\\u00f3mica). Entre las alteraciones epigen\\u00e9ticas m\\u00e1s reconocidas en los tumores est\\u00e1 el silenciamiento asociado a hipermetilaci\\u00f3n de islas CpG en los promotores de los genes supresores como CDKN2A y RASSF1.Aunado a esto, los miRNAs tambi\\u00e9n pueden actuar como supresores u oncogenes en diferentes tipos de c\\u00e1ncer. Es por esto que, las modificaciones epigen\\u00e9ticas son un componente importante en la etiolog\\u00eda del c\\u00e1ncer y debido a su reversibilidad constituyen blancos terap\\u00e9uticos prometedores para diagnostico o tratamiento y potencial como posibles biomarcadores.<\\/p>\",\n\"4745cfed-18ac-465f-80b5-59c437a8ab2d\"],\n [{\n 'v': 8,\n 'f': \"8\",\n },\n\"2020-01-22\",\n\"Joyce\",\n\"Scientific Racism 2.0 (SR2.0): An erroneous argument from genetics which inadvertently refines scientific racism\",\n\"
SR2.0 refers to a prominent argument made by some geneticists, often via social and popular media, which inadvertently amounts to a refinement of scientific racism. At face value it is an attack on racism in science. Upon closer inspection its primary, possibly unconscious, purpose appears to be to protect contemporary genetic research from the charge of racism. The argument is often made alongside an emphasis upon long-falsified errors of early science and open expressions of racism in wider society, rather than the intelligence and statistical theory which has informed both genetics and the social construct scientific racism for a century. The core argument is invalid. It also has profound epistemological failings, including misunderstanding the nature of social constructions and how they how they interact with empirical facts. Finally, the proponents do not fully support their own argument; this exposes the argument\\u2019s substantive function as a defensive holding device.<\\/p>\",\n\"879bff9a-169b-425f-a027-11f04e0448ea\"],\n [{\n 'v': 9,\n 'f': \"9\",\n },\n\"2020-01-22\",\n\"Sinar\",\n\"Functional Features of Forensic Corruption Case in Indonesia\",\n\"
This study examines the multimodal use of language affecting the social interaction in the Indonesian Court for Corruption Crimes as the research data source. The objective is to analyze the metafunction multimodal functional features of law enforcement and witnesses in the proceedings of forensic corruption case in Indonesia. Multimodal theory as a new technology that has been invented by linguists was used in this research to analyse forensic language. The findings showed that the multimodal systems were valuable in analysing the forensic functional features in the court room and the functional features of representational, interactive and compositional meanings were present in the court room involving gestures, postures, gazes, nonverbal communication, eye contacts, etc.<\\/p>\",\n\"e262d61c-32bb-4690-b814-e20ee7add13f\"]],\n columns: [[\"number\", \"index\"], [\"string\", \"rejected_date\"], [\"string\", \"first_author\"], [\"string\", \"title\"], [\"string\", \"abstract\"], [\"string\", \"submission_id\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n
\n \n \n\n\n \n
`;\n parentElement.appendChild(quickchartButtonContainerElement);\n }\n\n appendQuickchartButton(table);\n "
+ },
+ "metadata": {},
+ "execution_count": 15
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## 2. Define the search template\n",
+ "\n",
+ "Python concatenates multiple strings one after another in brackets, so we have written it out as shown below so that we can add comments to the query. This format isn't necessary, but hopefully it's helpful!"
+ ],
+ "metadata": {
+ "id": "4gO-Sw9RkPKx"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "template = (\n",
+ " 'search publications '\n",
+ " 'in title_abstract_only ' # Search the whole of the publication\n",
+ " 'for \"{title}\" ' # Stop words will be automatically excluded\n",
+ " 'where date > \"{rejected_date}\" '\n",
+ " 'and ('\n",
+ " 'authors = \"{first_author}\"'\n",
+ " # The line below gives an example of how you could also search for\n",
+ " # the surname of the corresponding author if you have it:\n",
+ " # ' or authors = \"{corresponding_author}\"'\n",
+ " ') '\n",
+ " 'return publications['\n",
+ " 'date' # Published date\n",
+ " '+'\n",
+ " 'doi' # DOI of the published article\n",
+ " '+'\n",
+ " 'title' # Title of the published article\n",
+ " '+'\n",
+ " 'abstract' # Abstract of the published article\n",
+ " '] '\n",
+ " 'limit 1' # Get the most relevant result only\n",
+ ")\n",
+ "\n",
+ "template"
+ ],
+ "metadata": {
+ "id": "UcVe6Ocm6Fiv",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 36
+ },
+ "outputId": "cb54d3a0-9236-4981-c629-d6f56ab69ab2"
+ },
+ "execution_count": 16,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ "'search publications in title_abstract_only for \"{title}\" where date > \"{rejected_date}\" and (authors = \"{first_author}\") return publications[date+doi+title+abstract] limit 1'"
+ ],
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "type": "string"
+ }
+ },
+ "metadata": {},
+ "execution_count": 16
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## 3. Iteratively Query the Dimensions API for the retracted articles"
+ ],
+ "metadata": {
+ "id": "wAIXlRBUkiU8"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "import string\n",
+ "from tqdm.notebook import tqdm\n",
+ "\n",
+ "def no_punctuation(s: str) -> str:\n",
+ " \"\"\"\n",
+ " Remove punctuation from a python string\n",
+ " \"\"\"\n",
+ " return s.translate(str.maketrans('', '', string.punctuation))\n",
+ "\n",
+ "# We'll store all our results in this list as we iterate, then join them together at the end...\n",
+ "results = []\n",
+ "\n",
+ "# For each row in the data set as a python dictionary:\n",
+ "for row in tqdm(rejected_publication_data.to_dict(orient=\"records\")):\n",
+ " row['title'] = no_punctuation(row['title'])\n",
+ " query = template.format(**row)\n",
+ " best = dsl.query(query, verbose=False).as_dataframe()\n",
+ " best['submission_id'] = row['submission_id']\n",
+ " results.append(best)\n",
+ "\n",
+ "# Join results together\n",
+ "output = pd.concat(results)\n",
+ "\n",
+ "output.head() # .head() shows just a few rows"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 250,
+ "referenced_widgets": [
+ "a3690f3660a74a0e9af686a2f6ca8304",
+ "03a4c6bae6ca429f96347855a43adac9",
+ "62b20a5d1b1649ab8a2d76c3f4ab7981",
+ "c39293df4cb24387bf8f2638f241c824",
+ "8ab3cbaeb64a413fb51632f9ef182e9c",
+ "f2c1b4851d644eb3bdf048721d255a88",
+ "06fefdea62084b6097b03a497734dbc2",
+ "bd7d718456174f2794a2a2593cf1144a",
+ "c96c1481e38f4c82872c15eda63cde58",
+ "9c5c614ecf7e4fec9e02778e0a938762",
+ "aeeb243ec979404e8d80b3ef1c0a4070"
+ ]
+ },
+ "id": "Legvd8_cpPq4",
+ "outputId": "94828b40-3f54-4327-d93f-d35a9f58958d"
+ },
+ "execution_count": 17,
+ "outputs": [
+ {
+ "output_type": "display_data",
+ "data": {
+ "text/plain": [
+ " 0%| | 0/10 [00:00, ?it/s]"
+ ],
+ "application/vnd.jupyter.widget-view+json": {
+ "version_major": 2,
+ "version_minor": 0,
+ "model_id": "a3690f3660a74a0e9af686a2f6ca8304"
+ }
+ },
+ "metadata": {}
+ },
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " submission_id \\\n",
+ "0 7dc54f58-2a6c-44eb-b906-98a184d1bac1 \n",
+ "0 e262d61c-32bb-4690-b814-e20ee7add13f \n",
+ "\n",
+ " title \\\n",
+ "0 On the Concept of Time in Everyday Life and be... \n",
+ "0 Functional Features of Forensic Corruption Cas... \n",
+ "\n",
+ " abstract date \\\n",
+ "0 In this paper I consider the concept of time i... 2021-01-01 \n",
+ "0
\n"
+ ],
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "type": "dataframe",
+ "variable_name": "output",
+ "summary": "{\n \"name\": \"output\",\n \"rows\": 2,\n \"fields\": [\n {\n \"column\": \"submission_id\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"e262d61c-32bb-4690-b814-e20ee7add13f\",\n \"7dc54f58-2a6c-44eb-b906-98a184d1bac1\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"title\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"Functional Features of Forensic Corruption Case in Indonesia\",\n \"On the Concept of Time in Everyday Life and between Physics and Mathematics\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"abstract\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"
Functional Features of Forensic Corruption Case in Indonesia
\",\n \"In this paper I consider the concept of time in a general way as daily human time and then within physics with relation to mathematics. I consider the arrow of time and then focus the attention on quantum mechanics, with its particular peculiarities, examining important concepts like temporal asymmetry, complexity, decoherence, irreversibility, information theory, chaos theory. In conclusion I consider the notion of time connected to a new theory in progress, called \\u201cPrimordial Dynamic Space\\u201d theory.\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"date\",\n \"properties\": {\n \"dtype\": \"date\",\n \"min\": \"2020-02-28\",\n \"max\": \"2021-01-01\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"2020-02-28\",\n \"2021-01-01\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"doi\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"10.31228/osf.io/m3xa6\",\n \"10.23880/eoij-16000268\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
+ },
+ "application/vnd.google.colaboratory.module+javascript": "\n import \"https://ssl.gstatic.com/colaboratory/data_table/e523c247d1e24a05/data_table.js\";\n\n const table = window.createDataTable({\n data: [[{\n 'v': 0,\n 'f': \"0\",\n },\n\"7dc54f58-2a6c-44eb-b906-98a184d1bac1\",\n\"On the Concept of Time in Everyday Life and between Physics and Mathematics\",\n\"In this paper I consider the concept of time in a general way as daily human time and then within physics with relation to mathematics. I consider the arrow of time and then focus the attention on quantum mechanics, with its particular peculiarities, examining important concepts like temporal asymmetry, complexity, decoherence, irreversibility, information theory, chaos theory. In conclusion I consider the notion of time connected to a new theory in progress, called \\u201cPrimordial Dynamic Space\\u201d theory.\",\n\"2021-01-01\",\n\"10.23880/eoij-16000268\"],\n [{\n 'v': 0,\n 'f': \"0\",\n },\n\"e262d61c-32bb-4690-b814-e20ee7add13f\",\n\"Functional Features of Forensic Corruption Case in Indonesia\",\n\"
Functional Features of Forensic Corruption Case in Indonesia<\\/p>\",\n\"2020-02-28\",\n\"10.31228/osf.io/m3xa6\"]],\n columns: [[\"number\", \"index\"], [\"string\", \"submission_id\"], [\"string\", \"title\"], [\"string\", \"abstract\"], [\"string\", \"date\"], [\"string\", \"doi\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n
Preregistration is the act of submitting a ... \n",
+ "2
In this paper I consider the concept of tim... \n",
+ "3
The last century has been a period of extre... \n",
+ "4
Se prepararon películas delgadas de SiO2 en... \n",
+ "\n",
+ " submission_id \\\n",
+ "0 6ef9af47-8fa7-4abb-af69-0c8a522b6f9a \n",
+ "1 2239203f-fa3b-4402-a185-1398861aba66 \n",
+ "2 7dc54f58-2a6c-44eb-b906-98a184d1bac1 \n",
+ "3 b466b2fd-b0c3-4573-abc5-229532212be1 \n",
+ "4 56360b84-72d3-42bc-b963-067e95e1ade3 \n",
+ "\n",
+ " title_y \\\n",
+ "0 NaN \n",
+ "1 NaN \n",
+ "2 On the Concept of Time in Everyday Life and be... \n",
+ "3 NaN \n",
+ "4 NaN \n",
+ "\n",
+ " abstract_y date \\\n",
+ "0 NaN NaN \n",
+ "1 NaN NaN \n",
+ "2 In this paper I consider the concept of time i... 2021-01-01 \n",
+ "3 NaN NaN \n",
+ "4 NaN NaN \n",
+ "\n",
+ " doi \n",
+ "0 NaN \n",
+ "1 NaN \n",
+ "2 10.23880/eoij-16000268 \n",
+ "3 NaN \n",
+ "4 NaN "
+ ],
+ "text/html": [
+ "\n",
+ "
SR2.0 refers to a prominent argument made by some geneticists, often via social and popular media, which inadvertently amounts to a refinement of scientific racism. At face value it is an attack on racism in science. Upon closer inspection its primary, possibly unconscious, purpose appears to be to protect contemporary genetic research from the charge of racism. The argument is often made alongside an emphasis upon long-falsified errors of early science and open expressions of racism in wider society, rather than the intelligence and statistical theory which has informed both genetics and the social construct scientific racism for a century. The core argument is invalid. It also has profound epistemological failings, including misunderstanding the nature of social constructions and how they how they interact with empirical facts. Finally, the proponents do not fully support their own argument; this exposes the argument\\u2019s substantive function as a defensive holding device.
The increasing number of patients treated with peritoneal dialysis (PD) and their consistently high rate of hospital admissions have placed a large burden on the health care system. Early clinical interventions and optimal management of patients at a high risk of prolonged length of stay (pLOS) may help improve the medical efficiency and prognosis of PD-treated patients. If timely clinical interventions are not provided, patients at a high risk of pLOS may face a poor prognosis and high medical expenses, which will also be a burden on hospitals. Therefore, physicians need an effective pLOS prediction model for PD-treated patients.<\\/p>\\n <\\/sec>\\n \\n OBJECTIVE\\n
This study aimed to develop an optimal data-driven model for predicting the pLOS risk of PD-treated patients using basic admission data.<\\/p>\\n <\\/sec>\\n \\n METHODS\\n
Patient data collected using the Hospital Quality Monitoring System (HQMS) in China were used to develop pLOS prediction models. A stacking model was constructed with support vector machine, random forest (RF), and K-nearest neighbor algorithms as its base models and traditional logistic regression (LR) as its meta-model. The meta-model used the outputs of all 3 base models as input and generated the output of the stacking model. Another LR-based pLOS prediction model was built as the benchmark model. The prediction performance of the stacking model was compared with that of its base models and the benchmark model. Five-fold cross-validation was employed to develop and validate the models. Performance measures included the Brier score, area under the receiver operating characteristic curve (AUROC), estimated calibration index (ECI), accuracy, sensitivity, specificity, and geometric mean (Gm). In addition, a calibration plot was employed to visually demonstrate the calibration power of each model.<\\/p>\\n <\\/sec>\\n \\n RESULTS\\n
The final cohort extracted from the HQMS database consisted of 23,992 eligible PD-treated patients, among whom 30.3% had a pLOS (ie, longer than the average LOS, which was 16 days in our study). Among the models, the stacking model achieved the best calibration (ECI 8.691), balanced accuracy (Gm 0.690), accuracy (0.695), and specificity (0.701). Meanwhile, the stacking and RF models had the best overall performance (Brier score 0.174 for both) and discrimination (AUROC 0.757 for the stacking model and 0.756 for the RF model). Compared with the benchmark LR model, the stacking model was superior in all performance measures except sensitivity, but there was no significant difference in sensitivity between the 2 models. The 2-sided <i>t</i> tests revealed significant performance differences between the stacking and LR models in overall performance, discrimination, calibration, balanced accuracy, and accuracy.<\\/p>\\n <\\/sec>\\n \\n CONCLUSIONS\\n
This study is the first to develop data-driven pLOS prediction models for PD-treated patients using basic admission data from a national database. The results indicate the feasibility of utilizing a stacking-based pLOS prediction model for PD-treated patients. The pLOS prediction tools developed in this study have the potential to assist clinicians in identifying patients at a high risk of pLOS and to allocate resources optimally for PD-treated patients.<\\/p>\\n <\\/sec>\",\n\"6ef9af47-8fa7-4abb-af69-0c8a522b6f9a\",\nNaN,\nNaN,\nNaN,\nNaN],\n [{\n 'v': 1,\n 'f': \"1\",\n },\n\"2020-01-22\",\n\"Bowman\",\n\"OSF Prereg Template\",\n\"
Preregistration is the act of submitting a study plan, ideally also with analytical plan, to a registry prior to conducting the work. Preregistration increases the discoverability of research even if it does not get published further. Adding specific analysis plans can clarify the distinction between planned, confirmatory tests and unplanned, exploratory research. This preprint contains a template for the \\u201cOSF Prereg\\u201d form available from the OSF Registry. An earlier version was originally developed for the Preregistration Challenge, an education campaign designed to initiate preregistration as a habit prior to data collection in basic research, funded by the Laura and John Arnold Foundation (now Arnold Ventures) and conducted by the Center for Open Science. More information is available at https://cos.io/prereg, and other templates are available at: https://osf.io/zab38/<\\/p>\",\n\"2239203f-fa3b-4402-a185-1398861aba66\",\nNaN,\nNaN,\nNaN,\nNaN],\n [{\n 'v': 2,\n 'f': \"2\",\n },\n\"2020-01-22\",\n\"Di Sia\",\n\"On the Concept of Time in everyday Life and between Physics and Mathematics\",\n\"
In this paper I consider the concept of time in a general way as daily human time andthen within physics with relation to mathematics. I focus the attention on quantum mechanics, with its particular peculiarities, examining peculiar important questions like the temporal asymmetry, the Prigogine\\u2019s position and the time-reversal operator of Wigner. I conclude considering the theme of the temporal asymmetry in relation to decoherence and irreversibility. Interesting imputs related to education science will be done.<\\/p>\",\n\"7dc54f58-2a6c-44eb-b906-98a184d1bac1\",\n\"On the Concept of Time in Everyday Life and between Physics and Mathematics\",\n\"In this paper I consider the concept of time in a general way as daily human time and then within physics with relation to mathematics. I consider the arrow of time and then focus the attention on quantum mechanics, with its particular peculiarities, examining important concepts like temporal asymmetry, complexity, decoherence, irreversibility, information theory, chaos theory. In conclusion I consider the notion of time connected to a new theory in progress, called \\u201cPrimordial Dynamic Space\\u201d theory.\",\n\"2021-01-01\",\n\"10.23880/eoij-16000268\"],\n [{\n 'v': 3,\n 'f': \"3\",\n },\n\"2020-01-22\",\n\"Di Sia\",\n\"Birth and development of quantum physics: a transdisciplinary approach\",\n\"
The last century has been a period of extreme interest for scientific research, marked by the overcoming of the classical frontiers of scientific knowledge.Research oriented towards the infinitely small and infinitely big, in both cases beyondthe borders of the visible. Quantum physics has led to a new Copernican revolution,opening the way to new questions that have led to a new view of reality. At the sametime, new theories have developed, involving every field of science, philosophy and art, rediscovering the link between unity and totality and the importance of humanpotential. In a transdisciplinary approach we consider quantum field theory, new ideason the concepts of vacuum and entanglement, metaphysical aspects of quantum revolution and the introduction of different interpretative approaches on the \\u201cWhole\\u201d.<\\/p>\",\n\"b466b2fd-b0c3-4573-abc5-229532212be1\",\nNaN,\nNaN,\nNaN,\nNaN],\n [{\n 'v': 4,\n 'f': \"4\",\n },\n\"2020-01-22\",\n\"Bedoya\",\n\"Fabricaci\\u00f3n de capas antirreflejantes y absorbedores solares mediante la t\\u00e9cnica Sol-gel: Un resumen sobre la variaci\\u00f3n de s\\u00edntesis y condiciones experimentales realizadas en la UTP\",\n\"
Se prepararon pel\\u00edculas delgadas de SiO2 en relaci\\u00f3n molar TEOS:H2O:EtOH 1:18:1.8 y CuCoMn en relaci\\u00f3n molar Cu:Co:Mn 1:3:3 por el m\\u00e9todo de recubrimiento por inmersi\\u00f3n (Sol-gel), bajo condiciones fijas de velocidad de dep\\u00f3sito y n\\u00famero de capas. Inicialmente se usaron sustratos de vidrios con el fin de analizar el comportamiento \\u00f3ptico de los recubrimientos utilizando espectroscop\\u00eda UV-Vis y FTIR. Una vez depositados los recubrimientos de SiO2 se sometieron a secado a temperatura ambiente y dentro de un horno tubular a 70 \\u00b0C. Por otro lado, las muestras de CuCoMn se trataron t\\u00e9rmicamente a diferentes temperaturas de recocido (550 \\u00b0C, 600 \\u00b0C y 650 \\u00b0C) durante 12 horas a una rampa de 1 \\u00b0C/min. Los resultados parciales obtenidos muestran que las pel\\u00edculas exhiben una absortancia entre 75% - 95 %, lo cual est\\u00e1 acorde con lo reportado en la literatura para este material. Sin embargo, para aumentar este valor es necesario ampliar el estudio del material, con el fin de definir su estructura, composici\\u00f3n y morfolog\\u00eda. El objetivo es obtener recubrimientos con las propiedades \\u00f3pticas y estructurales adecuadas con el fin de ser usados en la fabricaci\\u00f3n de la superficie absorbedora de calentadores de agua e instalaciones de energ\\u00eda solar.<\\/p>\",\n\"56360b84-72d3-42bc-b963-067e95e1ade3\",\nNaN,\nNaN,\nNaN,\nNaN]],\n columns: [[\"number\", \"index\"], [\"string\", \"rejected_date\"], [\"string\", \"first_author\"], [\"string\", \"title_x\"], [\"string\", \"abstract_x\"], [\"string\", \"submission_id\"], [\"string\", \"title_y\"], [\"string\", \"abstract_y\"], [\"string\", \"date\"], [\"string\", \"doi\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n
\n \n \n\n\n \n
`;\n parentElement.appendChild(quickchartButtonContainerElement);\n }\n\n appendQuickchartButton(table);\n "
+ },
+ "metadata": {},
+ "execution_count": 18
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## 5. Add Matching Score\n",
+ "\n",
+ "We have found some publications that might match our rejected articles. Now we need to score them to see whether they are good matches.\n",
+ "\n",
+ "In this case we'll measure the edit distance between the titles. The most commonly-used edit distance between strings is [Levensthtein distance](https://en.wikipedia.org/wiki/Jaccard_index), which is [nicely implemented in Python in the `Levenshtein` package](https://rapidfuzz.github.io/Levenshtein/).\n",
+ "\n",
+ "The `Levenshtein` package has a function \"ratio\" which uses Levenshtein distance to get a similarity (not distance) score between 0 (disimilar) and 1 (identical). We will use this to compare titles converted to lowercase.\n",
+ "\n",
+ "Sorting the results by score descending (from highest to lowest) we can see that there was one good match. If we wanted to make the matching more automatic, we could choose to filter out everything with a score less than e.g. 0.75."
+ ],
+ "metadata": {
+ "id": "WHfO5HvqbWoR"
+ }
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "from Levenshtein import ratio\n",
+ "\n",
+ "def similarity(string1: str, string2: str) -> float:\n",
+ " \"\"\"\n",
+ " Case-insensitive similarity score made by subtracting the normalised\n",
+ " Levenshtein distance from 1.\n",
+ " \"\"\"\n",
+ " if pd.isna(string1) or pd.isna(string2):\n",
+ " return 0.\n",
+ " else:\n",
+ " return ratio(string1.lower(), string2.lower())\n",
+ "\n",
+ "print(similarity('The cat sat on the mat', 'The dog sat on the frog'))\n",
+ "print(similarity('The cat sat on the mat', 'The mat sat on the cat'))"
+ ],
+ "metadata": {
+ "id": "3pxX8k8u52JA",
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "outputId": "7570c530-8fba-49cb-e6de-4a7474bbe080"
+ },
+ "execution_count": 24,
+ "outputs": [
+ {
+ "output_type": "stream",
+ "name": "stdout",
+ "text": [
+ "0.7111111111111111\n",
+ "0.9090909090909091\n"
+ ]
+ }
+ ]
+ },
+ {
+ "cell_type": "code",
+ "source": [
+ "merged_results['score'] = merged_results.apply(\n",
+ " lambda row: similarity(row['abstract_x'], row['abstract_y']),\n",
+ " axis=1\n",
+ ")\n",
+ "\n",
+ "merged_results = merged_results.sort_values(\"score\", ascending=False)\n",
+ "\n",
+ "final_output = merged_results[[\n",
+ " 'submission_id',\n",
+ " 'rejected_date',\n",
+ " 'title_x',\n",
+ " 'title_y',\n",
+ " 'abstract_x',\n",
+ " 'abstract_y',\n",
+ " 'doi',\n",
+ " 'score'\n",
+ "]]\n",
+ "\n",
+ "final_output.columns = [\n",
+ " 'submission_id',\n",
+ " 'rejected_date',\n",
+ " 'original_title',\n",
+ " 'published_title',\n",
+ " 'abstract_x',\n",
+ " 'abstract_y',\n",
+ " 'doi',\n",
+ " 'score'\n",
+ "]\n",
+ "\n",
+ "final_output"
+ ],
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 246
+ },
+ "id": "wNcx52H3zDnz",
+ "outputId": "421be014-42a1-4fc2-8362-052bc7accb80"
+ },
+ "execution_count": 26,
+ "outputs": [
+ {
+ "output_type": "execute_result",
+ "data": {
+ "text/plain": [
+ " submission_id rejected_date \\\n",
+ "2 7dc54f58-2a6c-44eb-b906-98a184d1bac1 2020-01-22 \n",
+ "\n",
+ " original_title \\\n",
+ "2 On the Concept of Time in everyday Life and be... \n",
+ "\n",
+ " published_title \\\n",
+ "2 On the Concept of Time in Everyday Life and be... \n",
+ "\n",
+ " abstract_x \\\n",
+ "2
In this paper I consider the concept of tim... \n",
+ "\n",
+ " abstract_y doi \\\n",
+ "2 In this paper I consider the concept of time i... 10.23880/eoij-16000268 \n",
+ "\n",
+ " score \n",
+ "2 0.705539 "
+ ],
+ "text/html": [
+ "\n",
+ "
\n"
+ ],
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "type": "dataframe",
+ "repr_error": "0"
+ },
+ "application/vnd.google.colaboratory.module+javascript": "\n import \"https://ssl.gstatic.com/colaboratory/data_table/e523c247d1e24a05/data_table.js\";\n\n const table = window.createDataTable({\n data: [[{\n 'v': 2,\n 'f': \"2\",\n },\n\"7dc54f58-2a6c-44eb-b906-98a184d1bac1\",\n\"2020-01-22\",\n\"On the Concept of Time in everyday Life and between Physics and Mathematics\",\n\"On the Concept of Time in Everyday Life and between Physics and Mathematics\",\n\"
In this paper I consider the concept of time in a general way as daily human time andthen within physics with relation to mathematics. I focus the attention on quantum mechanics, with its particular peculiarities, examining peculiar important questions like the temporal asymmetry, the Prigogine\\u2019s position and the time-reversal operator of Wigner. I conclude considering the theme of the temporal asymmetry in relation to decoherence and irreversibility. Interesting imputs related to education science will be done.<\\/p>\",\n\"In this paper I consider the concept of time in a general way as daily human time and then within physics with relation to mathematics. I consider the arrow of time and then focus the attention on quantum mechanics, with its particular peculiarities, examining important concepts like temporal asymmetry, complexity, decoherence, irreversibility, information theory, chaos theory. In conclusion I consider the notion of time connected to a new theory in progress, called \\u201cPrimordial Dynamic Space\\u201d theory.\",\n\"10.23880/eoij-16000268\",\n{\n 'v': 0.7055393586005831,\n 'f': \"0.7055393586005831\",\n }]],\n columns: [[\"number\", \"index\"], [\"string\", \"submission_id\"], [\"string\", \"rejected_date\"], [\"string\", \"original_title\"], [\"string\", \"published_title\"], [\"string\", \"abstract_x\"], [\"string\", \"abstract_y\"], [\"string\", \"doi\"], [\"number\", \"score\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n
\n \n \n\n\n \n
`;\n parentElement.appendChild(quickchartButtonContainerElement);\n }\n\n appendQuickchartButton(table);\n "
+ },
+ "metadata": {},
+ "execution_count": 26
+ }
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "## 6. Conclusion\n",
+ "\n",
+ "In this tutorial we have shown how to use the Dimensions API to search for articles with titles and abstracts that contain similar terms to the titles of articles that have been rejected in the past.\n",
+ "\n",
+ "In terms of next steps, we might choose to do some bibliometric analysis of the articles we rejected. We could also try to improve our search process by extracting keywords from our article abstracts and searching for those too."
+ ],
+ "metadata": {
+ "id": "l639SwiweHiZ"
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/docs/_sources/cookbooks/8-organizations/1-Organization-data-preview.ipynb.txt b/docs/_sources/cookbooks/8-organizations/1-Organization-data-preview.ipynb.txt
new file mode 100644
index 00000000..ee0a14f7
--- /dev/null
+++ b/docs/_sources/cookbooks/8-organizations/1-Organization-data-preview.ipynb.txt
@@ -0,0 +1,5308 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "colab_type": "text",
+ "id": "AuCkj0Qwywjy"
+ },
+ "source": [
+ "# The Organizations API: Features Overview\n",
+ "\n",
+ "This tutorial provides an overview of the [Organizations data source](https://docs.dimensions.ai/dsl/datasource-organizations.html) available via the [Dimensions Analytics API](https://docs.dimensions.ai/dsl/). \n",
+ "\n",
+ "The topics covered in this notebook are:\n",
+ "\n",
+ "* How to align your affiliation data with Dimensions using the API [disambiguation service](https://docs.dimensions.ai/dsl/functions.html#function-extract-affiliations) \n",
+ "* How to retrieve organizations metadata using the [search fields](https://docs.dimensions.ai/dsl/datasource-organizations.html) available\n",
+ "* How to use the [schema API](https://docs.dimensions.ai/dsl/data-sources.html#metadata-api) to obtain some statistics about the Organizations data available \n",
+ " \n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "==\n",
+ "CHANGELOG\n",
+ "This notebook was last run on Sep 10, 2025\n",
+ "==\n"
+ ]
+ }
+ ],
+ "source": [
+ "import datetime\n",
+ "print(\"==\\nCHANGELOG\\nThis notebook was last run on %s\\n==\" % datetime.date.today().strftime('%b %d, %Y'))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "colab_type": "text",
+ "id": "OwTp1dybd2FF"
+ },
+ "source": [
+ "## Prerequisites\n",
+ "\n",
+ "This notebook assumes you have installed the [Dimcli](https://pypi.org/project/dimcli/) library and are familiar with the ['Getting Started' tutorial](https://api-lab.dimensions.ai/cookbooks/1-getting-started/1-Using-the-Dimcli-library-to-query-the-API.html)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "Collapsed": "false"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ " \n",
+ " \n",
+ " "
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001b[2mSearching config file credentials for 'https://app.dimensions.ai' endpoint..\u001b[0m\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "==\n",
+ "Logging in..\n",
+ "\u001b[2mDimcli - Dimensions API Client (v1.4)\u001b[0m\n",
+ "\u001b[2mConnected to: - DSL v2.12\u001b[0m\n",
+ "\u001b[2mMethod: dsl.ini file\u001b[0m\n"
+ ]
+ }
+ ],
+ "source": [
+ "!pip install dimcli tqdm plotly -U --quiet\n",
+ "\n",
+ "import dimcli\n",
+ "from dimcli.utils import *\n",
+ "\n",
+ "import json, sys, time\n",
+ "import pandas as pd\n",
+ "from tqdm.notebook import tqdm as pbar\n",
+ "import plotly.express as px # plotly>=4.8.1\n",
+ "if not 'google.colab' in sys.modules:\n",
+ " # make js dependecies local / needed by html exports\n",
+ " from plotly.offline import init_notebook_mode\n",
+ " init_notebook_mode(connected=True)\n",
+ "#\n",
+ "\n",
+ "print(\"==\\nLogging in..\")\n",
+ "# https://digital-science.github.io/dimcli/getting-started.html#authentication\n",
+ "ENDPOINT = \"https://app.dimensions.ai\"\n",
+ "if 'google.colab' in sys.modules:\n",
+ " import getpass\n",
+ " KEY = getpass.getpass(prompt='API Key: ') \n",
+ " dimcli.login(key=KEY, endpoint=ENDPOINT)\n",
+ "else:\n",
+ " KEY = \"\"\n",
+ " dimcli.login(key=KEY, endpoint=ENDPOINT)\n",
+ "dsl = dimcli.Dsl()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "colab_type": "text",
+ "id": "JcnVEdOAywj3"
+ },
+ "source": [
+ "---"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "colab_type": "text",
+ "id": "8zxcg9gPgZAv"
+ },
+ "source": [
+ "## 1. Matching affiliation data to Dimensions Organization IDs using `extract_affiliations`\n",
+ "\n",
+ "The API function `extract_affiliations` ([docs](https://docs.dimensions.ai/dsl/functions.html#function-extract-affiliations)) can be used to enrich private datasets including non-disambiguated organizations data with Dimensions IDs, so to then take advantage of the wealth of linked data available in Dimensions.\n",
+ "\n",
+ "For example, let's assume our dataset has four columns (*affiliation name*, *city*, *state* and *country*) - any of which can be empty of course. Like this:\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {},
+ "colab_type": "code",
+ "id": "cj5zBndjhgMM"
+ },
+ "outputs": [],
+ "source": [
+ "affiliations = [\n",
+ " ['University of Nebraska–Lincoln', 'Lincoln', 'Nebraska', 'United States'],\n",
+ " ['Tarbiat Modares University', 'Tehran', '', 'Iran'],\n",
+ " ['Harvard University', 'Cambridge', 'Massachusetts', 'United States'],\n",
+ " ['China Academy of Chinese Medical Sciences', 'Beijing', '', 'China'],\n",
+ " ['Liaoning University', 'Shenyang', '', 'China'],\n",
+ " ['Liaoning Normal University', 'Dalian', '', 'China'],\n",
+ " ['P.G. Department of Zoology and Research Centre, Shri Shiv Chhatrapati College of Arts, Commerce and Science, Junnar 410502, Pune, India.', '', '', ''],\n",
+ " ['Sungkyunkwan University', 'Seoul', '', 'South Korea'],\n",
+ " ['Centre for Materials for Electronics Technology', 'Pune', '', 'India'],\n",
+ " ['Institut Necker-Enfants Malades (INEM), INSERM U1151-CNRS UMR8253, Université de Paris, Faculté de Médecine, 156 rue de Vaugirard, 75730 Paris Cedex 15, France', '', '', '']\n",
+ " ]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "colab_type": "text",
+ "id": "AcAypP1agx3M"
+ },
+ "source": [
+ "We want to look up Dimensions Organization identifiers for those affiliations using the **structured** affiliation matching. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 256,
+ "resources": {
+ "http://localhost:8080/nbextensions/google.colab/colabwidgets/controls.css": {
+ "data": "LyogQ29weXJpZ2h0IChjKSBKdXB5dGVyIERldmVsb3BtZW50IFRlYW0uCiAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTW9kaWZpZWQgQlNEIExpY2Vuc2UuCiAqLwoKIC8qIFdlIGltcG9ydCBhbGwgb2YgdGhlc2UgdG9nZXRoZXIgaW4gYSBzaW5nbGUgY3NzIGZpbGUgYmVjYXVzZSB0aGUgV2VicGFjawpsb2FkZXIgc2VlcyBvbmx5IG9uZSBmaWxlIGF0IGEgdGltZS4gVGhpcyBhbGxvd3MgcG9zdGNzcyB0byBzZWUgdGhlIHZhcmlhYmxlCmRlZmluaXRpb25zIHdoZW4gdGhleSBhcmUgdXNlZC4gKi8KCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnwgQ29weXJpZ2h0IChjKSBKdXB5dGVyIERldmVsb3BtZW50IFRlYW0uCnwgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNb2RpZmllZCBCU0QgTGljZW5zZS4KfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKIC8qClRoaXMgZmlsZSBpcyBjb3BpZWQgZnJvbSB0aGUgSnVweXRlckxhYiBwcm9qZWN0IHRvIGRlZmluZSBkZWZhdWx0IHN0eWxpbmcgZm9yCndoZW4gdGhlIHdpZGdldCBzdHlsaW5nIGlzIGNvbXBpbGVkIGRvd24gdG8gZWxpbWluYXRlIENTUyB2YXJpYWJsZXMuIFdlIG1ha2Ugb25lCmNoYW5nZSAtIHdlIGNvbW1lbnQgb3V0IHRoZSBmb250IGltcG9ydCBiZWxvdy4KKi8KCiAvKioKICogVGhlIG1hdGVyaWFsIGRlc2lnbiBjb2xvcnMgYXJlIGFkYXB0ZWQgZnJvbSBnb29nbGUtbWF0ZXJpYWwtY29sb3IgdjEuMi42CiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5sZXZhbi9nb29nbGUtbWF0ZXJpYWwtY29sb3IKICogaHR0cHM6Ly9naXRodWIuY29tL2RhbmxldmFuL2dvb2dsZS1tYXRlcmlhbC1jb2xvci9ibG9iL2Y2N2NhNWY0MDI4YjJmMWIzNDg2MmY2NGIwY2E2NzMyM2Y5MWIwODgvZGlzdC9wYWxldHRlLnZhci5jc3MKICoKICogVGhlIGxpY2Vuc2UgZm9yIHRoZSBtYXRlcmlhbCBkZXNpZ24gY29sb3IgQ1NTIHZhcmlhYmxlcyBpcyBhcyBmb2xsb3dzIChzZWUKICogaHR0cHM6Ly9naXRodWIuY29tL2RhbmxldmFuL2dvb2dsZS1tYXRlcmlhbC1jb2xvci9ibG9iL2Y2N2NhNWY0MDI4YjJmMWIzNDg2MmY2NGIwY2E2NzMyM2Y5MWIwODgvTElDRU5TRSkKICoKICogVGhlIE1JVCBMaWNlbnNlIChNSVQpCiAqCiAqIENvcHlyaWdodCAoYykgMjAxNCBEYW4gTGUgVmFuCiAqCiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwogKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwogKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgogKgogKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgogKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KICoKICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQogKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAqIFNPRlRXQVJFLgogKi8KCiAvKgpUaGUgZm9sbG93aW5nIENTUyB2YXJpYWJsZXMgZGVmaW5lIHRoZSBtYWluLCBwdWJsaWMgQVBJIGZvciBzdHlsaW5nIEp1cHl0ZXJMYWIuClRoZXNlIHZhcmlhYmxlcyBzaG91bGQgYmUgdXNlZCBieSBhbGwgcGx1Z2lucyB3aGVyZXZlciBwb3NzaWJsZS4gSW4gb3RoZXIKd29yZHMsIHBsdWdpbnMgc2hvdWxkIG5vdCBkZWZpbmUgY3VzdG9tIGNvbG9ycywgc2l6ZXMsIGV0YyB1bmxlc3MgYWJzb2x1dGVseQpuZWNlc3NhcnkuIFRoaXMgZW5hYmxlcyB1c2VycyB0byBjaGFuZ2UgdGhlIHZpc3VhbCB0aGVtZSBvZiBKdXB5dGVyTGFiCmJ5IGNoYW5naW5nIHRoZXNlIHZhcmlhYmxlcy4KCk1hbnkgdmFyaWFibGVzIGFwcGVhciBpbiBhbiBvcmRlcmVkIHNlcXVlbmNlICgwLDEsMiwzKS4gVGhlc2Ugc2VxdWVuY2VzCmFyZSBkZXNpZ25lZCB0byB3b3JrIHdlbGwgdG9nZXRoZXIsIHNvIGZvciBleGFtcGxlLCBgLS1qcC1ib3JkZXItY29sb3IxYCBzaG91bGQKYmUgdXNlZCB3aXRoIGAtLWpwLWxheW91dC1jb2xvcjFgLiBUaGUgbnVtYmVycyBoYXZlIHRoZSBmb2xsb3dpbmcgbWVhbmluZ3M6CgoqIDA6IHN1cGVyLXByaW1hcnksIHJlc2VydmVkIGZvciBzcGVjaWFsIGVtcGhhc2lzCiogMTogcHJpbWFyeSwgbW9zdCBpbXBvcnRhbnQgdW5kZXIgbm9ybWFsIHNpdHVhdGlvbnMKKiAyOiBzZWNvbmRhcnksIG5leHQgbW9zdCBpbXBvcnRhbnQgdW5kZXIgbm9ybWFsIHNpdHVhdGlvbnMKKiAzOiB0ZXJ0aWFyeSwgbmV4dCBtb3N0IGltcG9ydGFudCB1bmRlciBub3JtYWwgc2l0dWF0aW9ucwoKVGhyb3VnaG91dCBKdXB5dGVyTGFiLCB3ZSBhcmUgbW9zdGx5IGZvbGxvd2luZyBwcmluY2lwbGVzIGZyb20gR29vZ2xlJ3MKTWF0ZXJpYWwgRGVzaWduIHdoZW4gc2VsZWN0aW5nIGNvbG9ycy4gV2UgYXJlIG5vdCwgaG93ZXZlciwgZm9sbG93aW5nCmFsbCBvZiBNRCBhcyBpdCBpcyBub3Qgb3B0aW1pemVkIGZvciBkZW5zZSwgaW5mb3JtYXRpb24gcmljaCBVSXMuCiovCgogLyoKICogT3B0aW9uYWwgbW9ub3NwYWNlIGZvbnQgZm9yIGlucHV0L291dHB1dCBwcm9tcHQuCiAqLwoKIC8qIENvbW1lbnRlZCBvdXQgaW4gaXB5d2lkZ2V0cyBzaW5jZSB3ZSBkb24ndCBuZWVkIGl0LiAqLwoKIC8qIEBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9Um9ib3RvK01vbm8nKTsgKi8KCiAvKgogKiBBZGRlZCBmb3IgY29tcGFiaXRpbGl0eSB3aXRoIG91dHB1dCBhcmVhCiAqLwoKIDpyb290IHsKCiAgLyogQm9yZGVycwoKICBUaGUgZm9sbG93aW5nIHZhcmlhYmxlcywgc3BlY2lmeSB0aGUgdmlzdWFsIHN0eWxpbmcgb2YgYm9yZGVycyBpbiBKdXB5dGVyTGFiLgogICAqLwoKICAvKiBVSSBGb250cwoKICBUaGUgVUkgZm9udCBDU1MgdmFyaWFibGVzIGFyZSB1c2VkIGZvciB0aGUgdHlwb2dyYXBoeSBhbGwgb2YgdGhlIEp1cHl0ZXJMYWIKICB1c2VyIGludGVyZmFjZSBlbGVtZW50cyB0aGF0IGFyZSBub3QgZGlyZWN0bHkgdXNlciBnZW5lcmF0ZWQgY29udGVudC4KICAqLyAvKiBCYXNlIGZvbnQgc2l6ZSAqLyAvKiBFbnN1cmVzIHB4IHBlcmZlY3QgRm9udEF3ZXNvbWUgaWNvbnMgKi8KCiAgLyogVXNlIHRoZXNlIGZvbnQgY29sb3JzIGFnYWluc3QgdGhlIGNvcnJlc3BvbmRpbmcgbWFpbiBsYXlvdXQgY29sb3JzLgogICAgIEluIGEgbGlnaHQgdGhlbWUsIHRoZXNlIGdvIGZyb20gZGFyayB0byBsaWdodC4KICAqLwoKICAvKiBVc2UgdGhlc2UgYWdhaW5zdCB0aGUgYnJhbmQvYWNjZW50L3dhcm4vZXJyb3IgY29sb3JzLgogICAgIFRoZXNlIHdpbGwgdHlwaWNhbGx5IGdvIGZyb20gbGlnaHQgdG8gZGFya2VyLCBpbiBib3RoIGEgZGFyayBhbmQgbGlnaHQgdGhlbWUKICAgKi8KCiAgLyogQ29udGVudCBGb250cwoKICBDb250ZW50IGZvbnQgdmFyaWFibGVzIGFyZSB1c2VkIGZvciB0eXBvZ3JhcGh5IG9mIHVzZXIgZ2VuZXJhdGVkIGNvbnRlbnQuCiAgKi8gLyogQmFzZSBmb250IHNpemUgKi8KCgogIC8qIExheW91dAoKICBUaGUgZm9sbG93aW5nIGFyZSB0aGUgbWFpbiBsYXlvdXQgY29sb3JzIHVzZSBpbiBKdXB5dGVyTGFiLiBJbiBhIGxpZ2h0CiAgdGhlbWUgdGhlc2Ugd291bGQgZ28gZnJvbSBsaWdodCB0byBkYXJrLgogICovCgogIC8qIEJyYW5kL2FjY2VudCAqLwoKICAvKiBTdGF0ZSBjb2xvcnMgKHdhcm4sIGVycm9yLCBzdWNjZXNzLCBpbmZvKSAqLwoKICAvKiBDZWxsIHNwZWNpZmljIHN0eWxlcyAqLwogIC8qIEEgY3VzdG9tIGJsZW5kIG9mIE1EIGdyZXkgYW5kIGJsdWUgNjAwCiAgICogU2VlIGh0dHBzOi8vbWV5ZXJ3ZWIuY29tL2VyaWMvdG9vbHMvY29sb3ItYmxlbmQvIzU0NkU3QToxRTg4RTU6NTpoZXggKi8KICAvKiBBIGN1c3RvbSBibGVuZCBvZiBNRCBncmV5IGFuZCBvcmFuZ2UgNjAwCiAgICogaHR0cHM6Ly9tZXllcndlYi5jb20vZXJpYy90b29scy9jb2xvci1ibGVuZC8jNTQ2RTdBOkY0NTExRTo1OmhleCAqLwoKICAvKiBOb3RlYm9vayBzcGVjaWZpYyBzdHlsZXMgKi8KCiAgLyogQ29uc29sZSBzcGVjaWZpYyBzdHlsZXMgKi8KCiAgLyogVG9vbGJhciBzcGVjaWZpYyBzdHlsZXMgKi8KfQoKIC8qIENvcHlyaWdodCAoYykgSnVweXRlciBEZXZlbG9wbWVudCBUZWFtLgogKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1vZGlmaWVkIEJTRCBMaWNlbnNlLgogKi8KCiAvKgogKiBXZSBhc3N1bWUgdGhhdCB0aGUgQ1NTIHZhcmlhYmxlcyBpbgogKiBodHRwczovL2dpdGh1Yi5jb20vanVweXRlcmxhYi9qdXB5dGVybGFiL2Jsb2IvbWFzdGVyL3NyYy9kZWZhdWx0LXRoZW1lL3ZhcmlhYmxlcy5jc3MKICogaGF2ZSBiZWVuIGRlZmluZWQuCiAqLwoKIC8qIFRoaXMgZmlsZSBoYXMgY29kZSBkZXJpdmVkIGZyb20gUGhvc3Bob3JKUyBDU1MgZmlsZXMsIGFzIG5vdGVkIGJlbG93LiBUaGUgbGljZW5zZSBmb3IgdGhpcyBQaG9zcGhvckpTIGNvZGUgaXM6CgpDb3B5cmlnaHQgKGMpIDIwMTQtMjAxNywgUGhvc3Bob3JKUyBDb250cmlidXRvcnMKQWxsIHJpZ2h0cyByZXNlcnZlZC4KClJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAptb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKCiogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzCiAgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCgoqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCiAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCgoqIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIGNvcHlyaWdodCBob2xkZXIgbm9yIHRoZSBuYW1lcyBvZiBpdHMKICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgpUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIKQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQpJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQpGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTApEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgpTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgpDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLApPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQpPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKKi8KCiAvKgogKiBUaGUgZm9sbG93aW5nIHNlY3Rpb24gaXMgZGVyaXZlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9waG9zcGhvcmpzL3Bob3NwaG9yL2Jsb2IvMjNiOWQwNzVlYmM1YjczYWIxNDhiNmViZmMyMGFmOTdmODU3MTRjNC9wYWNrYWdlcy93aWRnZXRzL3N0eWxlL3RhYmJhci5jc3MgCiAqIFdlJ3ZlIHNjb3BlZCB0aGUgcnVsZXMgc28gdGhhdCB0aGV5IGFyZSBjb25zaXN0ZW50IHdpdGggZXhhY3RseSBvdXIgY29kZS4KICovCgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIHsKICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICBkaXNwbGF5OiBmbGV4OwogIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7CiAgdXNlci1zZWxlY3Q6IG5vbmU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXJbZGF0YS1vcmllbnRhdGlvbj0naG9yaXpvbnRhbCddIHsKICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7CiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7CiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhcltkYXRhLW9yaWVudGF0aW9uPSd2ZXJ0aWNhbCddIHsKICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsOwogIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgPiAucC1UYWJCYXItY29udGVudCB7CiAgbWFyZ2luOiAwOwogIHBhZGRpbmc6IDA7CiAgZGlzcGxheTogLXdlYmtpdC1ib3g7CiAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgZGlzcGxheTogZmxleDsKICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAtbXMtZmxleDogMSAxIGF1dG87CiAgICAgICAgICBmbGV4OiAxIDEgYXV0bzsKICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXJbZGF0YS1vcmllbnRhdGlvbj0naG9yaXpvbnRhbCddID4gLnAtVGFiQmFyLWNvbnRlbnQgewogIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDsKICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93Owp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyW2RhdGEtb3JpZW50YXRpb249J3ZlcnRpY2FsJ10gPiAucC1UYWJCYXItY29udGVudCB7CiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWIgewogIGRpc3BsYXk6IC13ZWJraXQtYm94OwogIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogIGRpc3BsYXk6IGZsZXg7CiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOwogIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICBvdmVyZmxvdzogaGlkZGVuOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWJJY29uLAouanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkNsb3NlSWNvbiB7CiAgLXdlYmtpdC1ib3gtZmxleDogMDsKICAgICAgLW1zLWZsZXg6IDAgMCBhdXRvOwogICAgICAgICAgZmxleDogMCAwIGF1dG87Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkxhYmVsIHsKICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAtbXMtZmxleDogMSAxIGF1dG87CiAgICAgICAgICBmbGV4OiAxIDEgYXV0bzsKICBvdmVyZmxvdzogaGlkZGVuOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYi5wLW1vZC1oaWRkZW4gewogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhci5wLW1vZC1kcmFnZ2luZyAucC1UYWJCYXItdGFiIHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIucC1tb2QtZHJhZ2dpbmdbZGF0YS1vcmllbnRhdGlvbj0naG9yaXpvbnRhbCddIC5wLVRhYkJhci10YWIgewogIGxlZnQ6IDA7CiAgLXdlYmtpdC10cmFuc2l0aW9uOiBsZWZ0IDE1MG1zIGVhc2U7CiAgdHJhbnNpdGlvbjogbGVmdCAxNTBtcyBlYXNlOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyLnAtbW9kLWRyYWdnaW5nW2RhdGEtb3JpZW50YXRpb249J3ZlcnRpY2FsJ10gLnAtVGFiQmFyLXRhYiB7CiAgdG9wOiAwOwogIC13ZWJraXQtdHJhbnNpdGlvbjogdG9wIDE1MG1zIGVhc2U7CiAgdHJhbnNpdGlvbjogdG9wIDE1MG1zIGVhc2U7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIucC1tb2QtZHJhZ2dpbmcgLnAtVGFiQmFyLXRhYi5wLW1vZC1kcmFnZ2luZyB7CiAgLXdlYmtpdC10cmFuc2l0aW9uOiBub25lOwogIHRyYW5zaXRpb246IG5vbmU7Cn0KCiAvKiBFbmQgdGFiYmFyLmNzcyAqLwoKIDpyb290IHsgLyogbWFyZ2luIGJldHdlZW4gaW5saW5lIGVsZW1lbnRzICovCgogICAgLyogRnJvbSBNYXRlcmlhbCBEZXNpZ24gTGl0ZSAqLwp9CgogLmp1cHl0ZXItd2lkZ2V0cyB7CiAgICBtYXJnaW46IDJweDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGNvbG9yOiBibGFjazsKICAgIG92ZXJmbG93OiB2aXNpYmxlOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy5qdXB5dGVyLXdpZGdldHMtZGlzY29ubmVjdGVkOjpiZWZvcmUgewogICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICBoZWlnaHQ6IDI4cHg7Cn0KCiAuanAtT3V0cHV0LXJlc3VsdCA+IC5qdXB5dGVyLXdpZGdldHMgewogICAgbWFyZ2luLWxlZnQ6IDA7CiAgICBtYXJnaW4tcmlnaHQ6IDA7Cn0KCiAvKiB2Ym94IGFuZCBoYm94ICovCgogLndpZGdldC1pbmxpbmUtaGJveCB7CiAgICAvKiBIb3Jpem9udGFsIHdpZGdldHMgKi8KICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOwogICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7CiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAtd2Via2l0LWJveC1hbGlnbjogYmFzZWxpbmU7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGJhc2VsaW5lOwogICAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7Cn0KCiAud2lkZ2V0LWlubGluZS12Ym94IHsKICAgIC8qIFZlcnRpY2FsIFdpZGdldHMgKi8KICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwp9CgogLndpZGdldC1ib3ggewogICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBtYXJnaW46IDA7CiAgICBvdmVyZmxvdzogYXV0bzsKfQoKIC53aWRnZXQtZ3JpZGJveCB7CiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICBkaXNwbGF5OiBncmlkOwogICAgbWFyZ2luOiAwOwogICAgb3ZlcmZsb3c6IGF1dG87Cn0KCiAud2lkZ2V0LWhib3ggewogICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOwogICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7CiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7Cn0KCiAud2lkZ2V0LXZib3ggewogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgogLyogR2VuZXJhbCBCdXR0b24gU3R5bGluZyAqLwoKIC5qdXB5dGVyLWJ1dHRvbiB7CiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7CiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4OwogICAgcGFkZGluZy10b3A6IDBweDsKICAgIHBhZGRpbmctYm90dG9tOiAwcHg7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgY3Vyc29yOiBwb2ludGVyOwoKICAgIGhlaWdodDogMjhweDsKICAgIGJvcmRlcjogMHB4IHNvbGlkOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CgogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0VFRUVFRTsKICAgIGJvcmRlci1jb2xvcjogI0UwRTBFMDsKICAgIGJvcmRlcjogbm9uZTsKfQoKIC5qdXB5dGVyLWJ1dHRvbiBpLmZhIHsKICAgIG1hcmdpbi1yaWdodDogNHB4OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7Cn0KCiAuanVweXRlci1idXR0b246ZW1wdHk6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICJcMjAwYiI7IC8qIHplcm8td2lkdGggc3BhY2UgKi8KfQoKIC5qdXB5dGVyLXdpZGdldHMuanVweXRlci1idXR0b246ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLmp1cHl0ZXItYnV0dG9uIGkuZmEuY2VudGVyIHsKICAgIG1hcmdpbi1yaWdodDogMDsKfQoKIC5qdXB5dGVyLWJ1dHRvbjpob3ZlcjplbmFibGVkLCAuanVweXRlci1idXR0b246Zm9jdXM6ZW5hYmxlZCB7CiAgICAvKiBNRCBMaXRlIDJkcCBzaGFkb3cgKi8KICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAuMTQpLAogICAgICAgICAgICAgICAgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAuMiksCiAgICAgICAgICAgICAgICAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIC4xMik7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgLjE0KSwKICAgICAgICAgICAgICAgIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgLjIpLAogICAgICAgICAgICAgICAgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTIpOwp9CgogLmp1cHl0ZXItYnV0dG9uOmFjdGl2ZSwgLmp1cHl0ZXItYnV0dG9uLm1vZC1hY3RpdmUgewogICAgLyogTUQgTGl0ZSA0ZHAgc2hhZG93ICovCiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNHB4IDVweCAwIHJnYmEoMCwgMCwgMCwgLjE0KSwKICAgICAgICAgICAgICAgIDAgMXB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIC4xMiksCiAgICAgICAgICAgICAgICAwIDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIC4yKTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCA0cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTQpLAogICAgICAgICAgICAgICAgMCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgLjEyKSwKICAgICAgICAgICAgICAgIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgLjIpOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0JEQkRCRDsKfQoKIC5qdXB5dGVyLWJ1dHRvbjpmb2N1czplbmFibGVkIHsKICAgIG91dGxpbmU6IDFweCBzb2xpZCAjNjRCNUY2Owp9CgogLyogQnV0dG9uICJQcmltYXJ5IiBTdHlsaW5nICovCgogLmp1cHl0ZXItYnV0dG9uLm1vZC1wcmltYXJ5IHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEuMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NkYzOwp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1wcmltYXJ5Lm1vZC1hY3RpdmUgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTk3NkQyOwp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1wcmltYXJ5OmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMxOTc2RDI7Cn0KCiAvKiBCdXR0b24gIlN1Y2Nlc3MiIFN0eWxpbmcgKi8KCiAuanVweXRlci1idXR0b24ubW9kLXN1Y2Nlc3MgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICM0Q0FGNTA7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLXN1Y2Nlc3MubW9kLWFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzODhFM0M7CiB9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1zdWNjZXNzOmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzODhFM0M7CiB9CgogLyogQnV0dG9uICJJbmZvIiBTdHlsaW5nICovCgogLmp1cHl0ZXItYnV0dG9uLm1vZC1pbmZvIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEuMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCQ0Q0Owp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1pbmZvLm1vZC1hY3RpdmUgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5N0E3Owp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1pbmZvOmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDk3QTc7Cn0KCiAvKiBCdXR0b24gIldhcm5pbmciIFN0eWxpbmcgKi8KCiAuanVweXRlci1idXR0b24ubW9kLXdhcm5pbmcgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGRjk4MDA7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLXdhcm5pbmcubW9kLWFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGNTdDMDA7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLXdhcm5pbmc6YWN0aXZlIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0Y1N0MwMDsKfQoKIC8qIEJ1dHRvbiAiRGFuZ2VyIiBTdHlsaW5nICovCgogLmp1cHl0ZXItYnV0dG9uLm1vZC1kYW5nZXIgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGNDQzMzY7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLWRhbmdlci5tb2QtYWN0aXZlIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0QzMkYyRjsKfQoKIC5qdXB5dGVyLWJ1dHRvbi5tb2QtZGFuZ2VyOmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNEMzJGMkY7Cn0KCiAvKiBXaWRnZXQgQnV0dG9uKi8KCiAud2lkZ2V0LWJ1dHRvbiwgLndpZGdldC10b2dnbGUtYnV0dG9uIHsKICAgIHdpZHRoOiAxNDhweDsKfQoKIC8qIFdpZGdldCBMYWJlbCBTdHlsaW5nICovCgogLyogT3ZlcnJpZGUgQm9vdHN0cmFwIGxhYmVsIGNzcyAqLwoKIC5qdXB5dGVyLXdpZGdldHMgbGFiZWwgewogICAgbWFyZ2luLWJvdHRvbTogMDsKICAgIG1hcmdpbi1ib3R0b206IGluaXRpYWw7Cn0KCiAud2lkZ2V0LWxhYmVsLWJhc2ljIHsKICAgIC8qIEJhc2ljIExhYmVsICovCiAgICBjb2xvcjogYmxhY2s7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWxhYmVsIHsKICAgIC8qIExhYmVsICovCiAgICBjb2xvcjogYmxhY2s7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWlubGluZS1oYm94IC53aWRnZXQtbGFiZWwgewogICAgLyogSG9yaXpvbnRhbCBXaWRnZXQgTGFiZWwgKi8KICAgIGNvbG9yOiBibGFjazsKICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgbWFyZ2luLXJpZ2h0OiA4cHg7CiAgICB3aWR0aDogODBweDsKICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwp9CgogLndpZGdldC1pbmxpbmUtdmJveCAud2lkZ2V0LWxhYmVsIHsKICAgIC8qIFZlcnRpY2FsIFdpZGdldCBMYWJlbCAqLwogICAgY29sb3I6IGJsYWNrOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAvKiBXaWRnZXQgUmVhZG91dCBTdHlsaW5nICovCgogLndpZGdldC1yZWFkb3V0IHsKICAgIGNvbG9yOiBibGFjazsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIGhlaWdodDogMjhweDsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCiAud2lkZ2V0LXJlYWRvdXQub3ZlcmZsb3cgewogICAgLyogT3ZlcmZsb3dpbmcgUmVhZG91dCAqLwoKICAgIC8qIEZyb20gTWF0ZXJpYWwgRGVzaWduIExpdGUKICAgICAgICBzaGFkb3cta2V5LXVtYnJhLW9wYWNpdHk6IDAuMjsKICAgICAgICBzaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHk6IDAuMTQ7CiAgICAgICAgc2hhZG93LWFtYmllbnQtc2hhZG93LW9wYWNpdHk6IDAuMTI7CiAgICAgKi8KICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAuMiksCiAgICAgICAgICAgICAgICAgICAgICAgIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgLjE0KSwKICAgICAgICAgICAgICAgICAgICAgICAgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTIpOwoKICAgIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgLjIpLAogICAgICAgICAgICAgICAgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAuMTQpLAogICAgICAgICAgICAgICAgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTIpOwp9CgogLndpZGdldC1pbmxpbmUtaGJveCAud2lkZ2V0LXJlYWRvdXQgewogICAgLyogSG9yaXpvbnRhbCBSZWFkb3V0ICovCiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBtYXgtd2lkdGg6IDE0OHB4OwogICAgbWluLXdpZHRoOiA3MnB4OwogICAgbWFyZ2luLWxlZnQ6IDRweDsKfQoKIC53aWRnZXQtaW5saW5lLXZib3ggLndpZGdldC1yZWFkb3V0IHsKICAgIC8qIFZlcnRpY2FsIFJlYWRvdXQgKi8KICAgIG1hcmdpbi10b3A6IDRweDsKICAgIC8qIGFzIHdpZGUgYXMgdGhlIHdpZGdldCAqLwogICAgd2lkdGg6IGluaGVyaXQ7Cn0KCiAvKiBXaWRnZXQgQ2hlY2tib3ggU3R5bGluZyAqLwoKIC53aWRnZXQtY2hlY2tib3ggewogICAgd2lkdGg6IDMwMHB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWNoZWNrYm94IGlucHV0W3R5cGU9ImNoZWNrYm94Il0gewogICAgbWFyZ2luOiAwcHggOHB4IDBweCAwcHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKICAgIGZvbnQtc2l6ZTogbGFyZ2U7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGNlbnRlcjsKICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7Cn0KCiAvKiBXaWRnZXQgVmFsaWQgU3R5bGluZyAqLwoKIC53aWRnZXQtdmFsaWQgewogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICB3aWR0aDogMTQ4cHg7CiAgICBmb250LXNpemU6IDEzcHg7Cn0KCiAud2lkZ2V0LXZhbGlkIGk6YmVmb3JlIHsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgbWFyZ2luLXJpZ2h0OiA0cHg7CiAgICBtYXJnaW4tbGVmdDogNHB4OwoKICAgIC8qIGZyb20gdGhlIGZhIGNsYXNzIGluIEZvbnRBd2Vzb21lOiBodHRwczovL2dpdGh1Yi5jb20vRm9ydEF3ZXNvbWUvRm9udC1Bd2Vzb21lL2Jsb2IvNDkxMDBjN2MzYTdiNThkNTBiYWE3MWVmZWYxMWFmNDFhNjZiMDNkMy9jc3MvZm9udC1hd2Vzb21lLmNzcyNMMTQgKi8KICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIDE0cHgvMSBGb250QXdlc29tZTsKICAgIGZvbnQtc2l6ZTogaW5oZXJpdDsKICAgIHRleHQtcmVuZGVyaW5nOiBhdXRvOwogICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwp9CgogLndpZGdldC12YWxpZC5tb2QtdmFsaWQgaTpiZWZvcmUgewogICAgY29udGVudDogIlxmMDBjIjsKICAgIGNvbG9yOiBncmVlbjsKfQoKIC53aWRnZXQtdmFsaWQubW9kLWludmFsaWQgaTpiZWZvcmUgewogICAgY29udGVudDogIlxmMDBkIjsKICAgIGNvbG9yOiByZWQ7Cn0KCiAud2lkZ2V0LXZhbGlkLm1vZC12YWxpZCAud2lkZ2V0LXZhbGlkLXJlYWRvdXQgewogICAgZGlzcGxheTogbm9uZTsKfQoKIC8qIFdpZGdldCBUZXh0IGFuZCBUZXh0QXJlYSBTdHlpbmcgKi8KCiAud2lkZ2V0LXRleHRhcmVhLCAud2lkZ2V0LXRleHQgewogICAgd2lkdGg6IDMwMHB4Owp9CgogLndpZGdldC10ZXh0IGlucHV0W3R5cGU9InRleHQiXSwgLndpZGdldC10ZXh0IGlucHV0W3R5cGU9Im51bWJlciJdewogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LXRleHQgaW5wdXRbdHlwZT0idGV4dCJdOmRpc2FibGVkLCAud2lkZ2V0LXRleHQgaW5wdXRbdHlwZT0ibnVtYmVyIl06ZGlzYWJsZWQsIC53aWRnZXQtdGV4dGFyZWEgdGV4dGFyZWE6ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLndpZGdldC10ZXh0IGlucHV0W3R5cGU9InRleHQiXSwgLndpZGdldC10ZXh0IGlucHV0W3R5cGU9Im51bWJlciJdLCAud2lkZ2V0LXRleHRhcmVhIHRleHRhcmVhIHsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44KTsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBtaW4td2lkdGg6IDA7IC8qIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgZm9yIHRoZSBmbGV4Ym94IHRvIHNocmluayB0aGlzIGlucHV0ICovCiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDsKfQoKIC53aWRnZXQtdGV4dGFyZWEgdGV4dGFyZWEgewogICAgaGVpZ2h0OiBpbmhlcml0OwogICAgd2lkdGg6IGluaGVyaXQ7Cn0KCiAud2lkZ2V0LXRleHQgaW5wdXQ6Zm9jdXMsIC53aWRnZXQtdGV4dGFyZWEgdGV4dGFyZWE6Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjNjRCNUY2Owp9CgogLyogV2lkZ2V0IFNsaWRlciAqLwoKIC53aWRnZXQtc2xpZGVyIC51aS1zbGlkZXIgewogICAgLyogU2xpZGVyIFRyYWNrICovCiAgICBib3JkZXI6IDFweCBzb2xpZCAjQkRCREJEOwogICAgYmFja2dyb3VuZDogI0JEQkRCRDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIGJvcmRlci1yYWRpdXM6IDBweDsKfQoKIC53aWRnZXQtc2xpZGVyIC51aS1zbGlkZXIgLnVpLXNsaWRlci1oYW5kbGUgewogICAgLyogU2xpZGVyIEhhbmRsZSAqLwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OyAvKiBmb2N1c2VkIHNsaWRlciBoYW5kbGVzIGFyZSBjb2xvcmVkIC0gc2VlIGJlbG93ICovCiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICB6LWluZGV4OiAxOwogICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgLyogT3ZlcnJpZGUganF1ZXJ5LXVpICovCn0KCiAvKiBPdmVycmlkZSBqcXVlcnktdWkgKi8KCiAud2lkZ2V0LXNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlOmhvdmVyLCAud2lkZ2V0LXNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlOmZvY3VzIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjMjE5NkYzOwp9CgogLndpZGdldC1zbGlkZXIgLnVpLXNsaWRlciAudWktc2xpZGVyLWhhbmRsZTphY3RpdmUgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZGMzsKICAgIGJvcmRlci1jb2xvcjogIzIxOTZGMzsKICAgIHotaW5kZXg6IDI7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4yKTsKICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpOwp9CgogLndpZGdldC1zbGlkZXIgIC51aS1zbGlkZXIgLnVpLXNsaWRlci1yYW5nZSB7CiAgICAvKiBJbnRlcnZhbCBiZXR3ZWVuIHRoZSB0d28gc3BlY2lmaWVkIHZhbHVlIG9mIGEgZG91YmxlIHNsaWRlciAqLwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgYmFja2dyb3VuZDogIzIxOTZGMzsKICAgIHotaW5kZXg6IDA7Cn0KCiAvKiBTaGFwZXMgb2YgU2xpZGVyIEhhbmRsZXMgKi8KCiAud2lkZ2V0LWhzbGlkZXIgLnVpLXNsaWRlciAudWktc2xpZGVyLWhhbmRsZSB7CiAgICB3aWR0aDogMTZweDsKICAgIGhlaWdodDogMTZweDsKICAgIG1hcmdpbi10b3A6IC03cHg7CiAgICBtYXJnaW4tbGVmdDogLTdweDsKICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgIHRvcDogMDsKfQoKIC53aWRnZXQtdnNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlIHsKICAgIHdpZHRoOiAxNnB4OwogICAgaGVpZ2h0OiAxNnB4OwogICAgbWFyZ2luLWJvdHRvbTogLTdweDsKICAgIG1hcmdpbi1sZWZ0OiAtN3B4OwogICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgbGVmdDogMDsKfQoKIC53aWRnZXQtaHNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItcmFuZ2UgewogICAgaGVpZ2h0OiA4cHg7CiAgICBtYXJnaW4tdG9wOiAtM3B4Owp9CgogLndpZGdldC12c2xpZGVyIC51aS1zbGlkZXIgLnVpLXNsaWRlci1yYW5nZSB7CiAgICB3aWR0aDogOHB4OwogICAgbWFyZ2luLWxlZnQ6IC0zcHg7Cn0KCiAvKiBIb3Jpem9udGFsIFNsaWRlciAqLwoKIC53aWRnZXQtaHNsaWRlciB7CiAgICB3aWR0aDogMzAwcHg7CiAgICBoZWlnaHQ6IDI4cHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKCiAgICAvKiBPdmVycmlkZSB0aGUgYWxpZ24taXRlbXMgYmFzZWxpbmUuIFRoaXMgd2F5LCB0aGUgZGVzY3JpcHRpb24gYW5kIHJlYWRvdXQKICAgIHN0aWxsIHNlZW0gdG8gYWxpZ24gdGhlaXIgYmFzZWxpbmUgcHJvcGVybHksIGFuZCB3ZSBkb24ndCBoYXZlIHRvIGhhdmUKICAgIGFsaWduLXNlbGY6IHN0cmV0Y2ggaW4gdGhlIC5zbGlkZXItY29udGFpbmVyLiAqLwogICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwp9CgogLndpZGdldHMtc2xpZGVyIC5zbGlkZXItY29udGFpbmVyIHsKICAgIG92ZXJmbG93OiB2aXNpYmxlOwp9CgogLndpZGdldC1oc2xpZGVyIC5zbGlkZXItY29udGFpbmVyIHsKICAgIGhlaWdodDogMjhweDsKICAgIG1hcmdpbi1sZWZ0OiA2cHg7CiAgICBtYXJnaW4tcmlnaHQ6IDZweDsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXg6IDEgMSAxNDhweDsKICAgICAgICAgICAgZmxleDogMSAxIDE0OHB4Owp9CgogLndpZGdldC1oc2xpZGVyIC51aS1zbGlkZXIgewogICAgLyogSW5uZXIsIGludmlzaWJsZSBzbGlkZSBkaXYgKi8KICAgIGhlaWdodDogNHB4OwogICAgbWFyZ2luLXRvcDogMTJweDsKICAgIHdpZHRoOiAxMDAlOwp9CgogLyogVmVydGljYWwgU2xpZGVyICovCgogLndpZGdldC12Ym94IC53aWRnZXQtbGFiZWwgewogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LXZzbGlkZXIgewogICAgLyogVmVydGljYWwgU2xpZGVyICovCiAgICBoZWlnaHQ6IDIwMHB4OwogICAgd2lkdGg6IDcycHg7Cn0KCiAud2lkZ2V0LXZzbGlkZXIgLnNsaWRlci1jb250YWluZXIgewogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleDogMSAxIDE0OHB4OwogICAgICAgICAgICBmbGV4OiAxIDEgMTQ4cHg7CiAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICAgIG1hcmdpbi1ib3R0b206IDZweDsKICAgIG1hcmdpbi10b3A6IDZweDsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgogLndpZGdldC12c2xpZGVyIC51aS1zbGlkZXItdmVydGljYWwgewogICAgLyogSW5uZXIsIGludmlzaWJsZSBzbGlkZSBkaXYgKi8KICAgIHdpZHRoOiA0cHg7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIG1hcmdpbi1yaWdodDogYXV0bzsKfQoKIC8qIFdpZGdldCBQcm9ncmVzcyBTdHlsaW5nICovCgogLnByb2dyZXNzLWJhciB7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IG5vbmU7CiAgICB0cmFuc2l0aW9uOiBub25lOwp9CgogLnByb2dyZXNzLWJhciB7CiAgICBoZWlnaHQ6IDI4cHg7Cn0KCiAucHJvZ3Jlc3MtYmFyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7Cn0KCiAucHJvZ3Jlc3MtYmFyLXN1Y2Nlc3MgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzRDQUY1MDsKfQoKIC5wcm9ncmVzcy1iYXItaW5mbyB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCQ0Q0Owp9CgogLnByb2dyZXNzLWJhci13YXJuaW5nIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGRjk4MDA7Cn0KCiAucHJvZ3Jlc3MtYmFyLWRhbmdlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjQ0MzM2Owp9CgogLnByb2dyZXNzIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNFRUVFRUU7CiAgICBib3JkZXI6IG5vbmU7CiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7Cn0KCiAvKiBIb3Jpc29udGFsIFByb2dyZXNzICovCgogLndpZGdldC1ocHJvZ3Jlc3MgewogICAgLyogUHJvZ3Jlc3MgQmFyICovCiAgICBoZWlnaHQ6IDI4cHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKICAgIHdpZHRoOiAzMDBweDsKICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKCn0KCiAud2lkZ2V0LWhwcm9ncmVzcyAucHJvZ3Jlc3MgewogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleC1wb3NpdGl2ZTogMTsKICAgICAgICAgICAgZmxleC1ncm93OiAxOwogICAgbWFyZ2luLXRvcDogNHB4OwogICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaDsKICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgLyogT3ZlcnJpZGUgYm9vdHN0cmFwIHN0eWxlICovCiAgICBoZWlnaHQ6IGF1dG87CiAgICBoZWlnaHQ6IGluaXRpYWw7Cn0KCiAvKiBWZXJ0aWNhbCBQcm9ncmVzcyAqLwoKIC53aWRnZXQtdnByb2dyZXNzIHsKICAgIGhlaWdodDogMjAwcHg7CiAgICB3aWR0aDogNzJweDsKfQoKIC53aWRnZXQtdnByb2dyZXNzIC5wcm9ncmVzcyB7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICB3aWR0aDogMjBweDsKICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogICAgbWFyZ2luLWJvdHRvbTogMDsKfQoKIC8qIFNlbGVjdCBXaWRnZXQgU3R5bGluZyAqLwoKIC53aWRnZXQtZHJvcGRvd24gewogICAgaGVpZ2h0OiAyOHB4OwogICAgd2lkdGg6IDMwMHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWRyb3Bkb3duID4gc2VsZWN0IHsKICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjOUU5RTlFOwogICAgYm9yZGVyLXJhZGl1czogMDsKICAgIGhlaWdodDogaW5oZXJpdDsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXg6IDEgMSAxNDhweDsKICAgICAgICAgICAgZmxleDogMSAxIDE0OHB4OwogICAgbWluLXdpZHRoOiAwOyAvKiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIGZvciB0aGUgZmxleGJveCB0byBzaHJpbmsgdGhpcyBpbnB1dCAqLwogICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OwogICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lOwogICAgICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7CiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAuOCk7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwogICAgcGFkZGluZy1sZWZ0OiA4cHg7CglhcHBlYXJhbmNlOiBub25lOwoJLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwoJLW1vei1hcHBlYXJhbmNlOiBub25lOwogICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKCWJhY2tncm91bmQtc2l6ZTogMjBweDsKCWJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IGNlbnRlcjsKICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejRLUENFdExTQkhaVzVsY21GMGIzSTZJRUZrYjJKbElFbHNiSFZ6ZEhKaGRHOXlJREU1TGpJdU1Td2dVMVpISUVWNGNHOXlkQ0JRYkhWbkxVbHVJQzRnVTFaSElGWmxjbk5wYjI0NklEWXVNREFnUW5WcGJHUWdNQ2tnSUMwdFBnbzhjM1puSUhabGNuTnBiMjQ5SWpFdU1TSWdhV1E5SWt4aGVXVnlYekVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lJSGc5SWpCd2VDSWdlVDBpTUhCNElnb0pJSFpwWlhkQ2IzZzlJakFnTUNBeE9DQXhPQ0lnYzNSNWJHVTlJbVZ1WVdKc1pTMWlZV05yWjNKdmRXNWtPbTVsZHlBd0lEQWdNVGdnTVRnN0lpQjRiV3c2YzNCaFkyVTlJbkJ5WlhObGNuWmxJajRLUEhOMGVXeGxJSFI1Y0dVOUluUmxlSFF2WTNOeklqNEtDUzV6ZERCN1ptbHNiRHB1YjI1bE8zMEtQQzl6ZEhsc1pUNEtQSEJoZEdnZ1pEMGlUVFV1TWl3MUxqbE1PU3c1TGpkc015NDRMVE11T0d3eExqSXNNUzR5YkMwMExqa3NOV3d0TkM0NUxUVk1OUzR5TERVdU9Yb2lMejRLUEhCaGRHZ2dZMnhoYzNNOUluTjBNQ0lnWkQwaVRUQXRNQzQyYURFNGRqRTRTREJXTFRBdU5ub2lMejRLUEM5emRtYytDZyIpOwp9CgogLndpZGdldC1kcm9wZG93biA+IHNlbGVjdDpmb2N1cyB7CiAgICBib3JkZXItY29sb3I6ICM2NEI1RjY7Cn0KCiAud2lkZ2V0LWRyb3Bkb3duID4gc2VsZWN0OmRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNjsKfQoKIC8qIFRvIGRpc2FibGUgdGhlIGRvdHRlZCBib3JkZXIgaW4gRmlyZWZveCBhcm91bmQgc2VsZWN0IGNvbnRyb2xzLgogICBTZWUgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMTg4NTMwMDIgKi8KCiAud2lkZ2V0LWRyb3Bkb3duID4gc2VsZWN0Oi1tb3otZm9jdXNyaW5nIHsKICAgIGNvbG9yOiB0cmFuc3BhcmVudDsKICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwOwp9CgogLyogU2VsZWN0IGFuZCBTZWxlY3RNdWx0aXBsZSAqLwoKIC53aWRnZXQtc2VsZWN0IHsKICAgIHdpZHRoOiAzMDBweDsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwoKICAgIC8qIEJlY2F1c2UgRmlyZWZveCBkZWZpbmVzIHRoZSBiYXNlbGluZSBvZiBhIHNlbGVjdCBhcyB0aGUgYm90dG9tIG9mIHRoZQogICAgY29udHJvbCwgd2UgYWxpZ24gdGhlIGVudGlyZSBjb250cm9sIHRvIHRoZSB0b3AgYW5kIGFkZCBwYWRkaW5nIHRvIHRoZQogICAgc2VsZWN0IHRvIGdldCBhbiBhcHByb3hpbWF0ZSBmaXJzdCBsaW5lIGJhc2VsaW5lIGFsaWdubWVudC4gKi8KICAgIC13ZWJraXQtYm94LWFsaWduOiBzdGFydDsKICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0Owp9CgogLndpZGdldC1zZWxlY3QgPiBzZWxlY3QgewogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleDogMSAxIDE0OHB4OwogICAgICAgICAgICBmbGV4OiAxIDEgMTQ4cHg7CiAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7CiAgICBvdmVyZmxvdzogYXV0bzsKICAgIGhlaWdodDogaW5oZXJpdDsKCiAgICAvKiBCZWNhdXNlIEZpcmVmb3ggZGVmaW5lcyB0aGUgYmFzZWxpbmUgb2YgYSBzZWxlY3QgYXMgdGhlIGJvdHRvbSBvZiB0aGUKICAgIGNvbnRyb2wsIHdlIGFsaWduIHRoZSBlbnRpcmUgY29udHJvbCB0byB0aGUgdG9wIGFuZCBhZGQgcGFkZGluZyB0byB0aGUKICAgIHNlbGVjdCB0byBnZXQgYW4gYXBwcm94aW1hdGUgZmlyc3QgbGluZSBiYXNlbGluZSBhbGlnbm1lbnQuICovCiAgICBwYWRkaW5nLXRvcDogNXB4Owp9CgogLndpZGdldC1zZWxlY3QgPiBzZWxlY3Q6Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjNjRCNUY2Owp9CgogLndpZ2V0LXNlbGVjdCA+IHNlbGVjdCA+IG9wdGlvbiB7CiAgICBwYWRkaW5nLWxlZnQ6IDRweDsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgLyogbGluZS1oZWlnaHQgZG9lc24ndCB3b3JrIG9uIHNvbWUgYnJvd3NlcnMgZm9yIHNlbGVjdCBvcHRpb25zICovCiAgICBwYWRkaW5nLXRvcDogY2FsYygyOHB4IC0gdmFyKC0tanAtd2lkZ2V0cy1mb250LXNpemUpIC8gMik7CiAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygyOHB4IC0gdmFyKC0tanAtd2lkZ2V0cy1mb250LXNpemUpIC8gMik7Cn0KCiAvKiBUb2dnbGUgQnV0dG9ucyBTdHlsaW5nICovCgogLndpZGdldC10b2dnbGUtYnV0dG9ucyB7CiAgICBsaW5lLWhlaWdodDogMjhweDsKfQoKIC53aWRnZXQtdG9nZ2xlLWJ1dHRvbnMgLndpZGdldC10b2dnbGUtYnV0dG9uIHsKICAgIG1hcmdpbi1sZWZ0OiAycHg7CiAgICBtYXJnaW4tcmlnaHQ6IDJweDsKfQoKIC53aWRnZXQtdG9nZ2xlLWJ1dHRvbnMgLmp1cHl0ZXItYnV0dG9uOmRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNjsKfQoKIC8qIFJhZGlvIEJ1dHRvbnMgU3R5bGluZyAqLwoKIC53aWRnZXQtcmFkaW8gewogICAgd2lkdGg6IDMwMHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LXJhZGlvLWJveCB7CiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogICAgZGlzcGxheTogZmxleDsKICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIC13ZWJraXQtYm94LWFsaWduOiBzdHJldGNoOwogICAgICAgIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoOwogICAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTsKICAgIG1hcmdpbi1ib3R0b206IDhweDsKfQoKIC53aWRnZXQtcmFkaW8tYm94IGxhYmVsIHsKICAgIGhlaWdodDogMjBweDsKICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgZm9udC1zaXplOiAxM3B4Owp9CgogLndpZGdldC1yYWRpby1ib3ggaW5wdXQgewogICAgaGVpZ2h0OiAyMHB4OwogICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICBtYXJnaW46IDAgOHB4IDAgMXB4OwogICAgZmxvYXQ6IGxlZnQ7Cn0KCiAvKiBDb2xvciBQaWNrZXIgU3R5bGluZyAqLwoKIC53aWRnZXQtY29sb3JwaWNrZXIgewogICAgd2lkdGg6IDMwMHB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWNvbG9ycGlja2VyID4gLndpZGdldC1jb2xvcnBpY2tlci1pbnB1dCB7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgIG1pbi13aWR0aDogNzJweDsKfQoKIC53aWRnZXQtY29sb3JwaWNrZXIgaW5wdXRbdHlwZT0iY29sb3IiXSB7CiAgICB3aWR0aDogMjhweDsKICAgIGhlaWdodDogMjhweDsKICAgIHBhZGRpbmc6IDAgMnB4OyAvKiBtYWtlIHRoZSBjb2xvciBzcXVhcmUgYWN0dWFsbHkgc3F1YXJlIG9uIENocm9tZSBvbiBPUyBYICovCiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44KTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBib3JkZXItbGVmdDogbm9uZTsKICAgIC13ZWJraXQtYm94LWZsZXg6IDA7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDA7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDsKICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaDsKICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50Owp9CgogLndpZGdldC1jb2xvcnBpY2tlci5jb25jaXNlIGlucHV0W3R5cGU9ImNvbG9yIl0gewogICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjOUU5RTlFOwp9CgogLndpZGdldC1jb2xvcnBpY2tlciBpbnB1dFt0eXBlPSJjb2xvciJdOmZvY3VzLCAud2lkZ2V0LWNvbG9ycGlja2VyIGlucHV0W3R5cGU9InRleHQiXTpmb2N1cyB7CiAgICBib3JkZXItY29sb3I6ICM2NEI1RjY7Cn0KCiAud2lkZ2V0LWNvbG9ycGlja2VyIGlucHV0W3R5cGU9InRleHQiXSB7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7CiAgICBoZWlnaHQ6IDI4cHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICBtaW4td2lkdGg6IDA7IC8qIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgZm9yIHRoZSBmbGV4Ym94IHRvIHNocmluayB0aGlzIGlucHV0ICovCiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQoKIC53aWRnZXQtY29sb3JwaWNrZXIgaW5wdXRbdHlwZT0idGV4dCJdOmRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNjsKfQoKIC8qIERhdGUgUGlja2VyIFN0eWxpbmcgKi8KCiAud2lkZ2V0LWRhdGVwaWNrZXIgewogICAgd2lkdGg6IDMwMHB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWRhdGVwaWNrZXIgaW5wdXRbdHlwZT0iZGF0ZSJdIHsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTsKICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAxOwogICAgICAgIGZsZXgtc2hyaW5rOiAxOwogICAgbWluLXdpZHRoOiAwOyAvKiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIGZvciB0aGUgZmxleGJveCB0byBzaHJpbmsgdGhpcyBpbnB1dCAqLwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OwogICAgaGVpZ2h0OiAyOHB4OwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgcGFkZGluZzogNHB4IDhweDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQoKIC53aWRnZXQtZGF0ZXBpY2tlciBpbnB1dFt0eXBlPSJkYXRlIl06Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjNjRCNUY2Owp9CgogLndpZGdldC1kYXRlcGlja2VyIGlucHV0W3R5cGU9ImRhdGUiXTppbnZhbGlkIHsKICAgIGJvcmRlci1jb2xvcjogI0ZGOTgwMDsKfQoKIC53aWRnZXQtZGF0ZXBpY2tlciBpbnB1dFt0eXBlPSJkYXRlIl06ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLyogUGxheSBXaWRnZXQgKi8KCiAud2lkZ2V0LXBsYXkgewogICAgd2lkdGg6IDE0OHB4OwogICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICAtd2Via2l0LWJveC1hbGlnbjogc3RyZXRjaDsKICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RyZXRjaDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7Cn0KCiAud2lkZ2V0LXBsYXkgLmp1cHl0ZXItYnV0dG9uIHsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTsKICAgIGhlaWdodDogYXV0bzsKfQoKIC53aWRnZXQtcGxheSAuanVweXRlci1idXR0b246ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLyogVGFiIFdpZGdldCAqLwoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiB7CiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogICAgZGlzcGxheTogZmxleDsKICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciB7CiAgICAvKiBOZWNlc3Nhcnkgc28gdGhhdCBhIHRhYiBjYW4gYmUgc2hpZnRlZCBkb3duIHRvIG92ZXJsYXkgdGhlIGJvcmRlciBvZiB0aGUgYm94IGJlbG93LiAqLwogICAgb3ZlcmZsb3cteDogdmlzaWJsZTsKICAgIG92ZXJmbG93LXk6IHZpc2libGU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgPiAucC1UYWJCYXItY29udGVudCB7CiAgICAvKiBNYWtlIHN1cmUgdGhhdCB0aGUgdGFiIGdyb3dzIGZyb20gYm90dG9tIHVwICovCiAgICAtd2Via2l0LWJveC1hbGlnbjogZW5kOwogICAgICAgIC1tcy1mbGV4LWFsaWduOiBlbmQ7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKICAgIG1pbi13aWR0aDogMDsKICAgIG1pbi1oZWlnaHQ6IDA7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAud2lkZ2V0LXRhYi1jb250ZW50cyB7CiAgICB3aWR0aDogMTAwJTsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIG1hcmdpbjogMDsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIHBhZGRpbmc6IDE1cHg7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBvdmVyZmxvdzogYXV0bzsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciB7CiAgICBmb250OiAxM3B4IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgICBtaW4taGVpZ2h0OiAyNXB4Owp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWIgewogICAgLXdlYmtpdC1ib3gtZmxleDogMDsKICAgICAgICAtbXMtZmxleDogMCAxIDE0NHB4OwogICAgICAgICAgICBmbGV4OiAwIDEgMTQ0cHg7CiAgICBtaW4td2lkdGg6IDM1cHg7CiAgICBtaW4taGVpZ2h0OiAyNXB4OwogICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICBtYXJnaW4tbGVmdDogLTFweDsKICAgIHBhZGRpbmc6IDBweCAxMHB4OwogICAgYmFja2dyb3VuZDogI0VFRUVFRTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC41KTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWIucC1tb2QtY3VycmVudCB7CiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAxLjApOwogICAgLyogV2Ugd2FudCB0aGUgYmFja2dyb3VuZCB0byBtYXRjaCB0aGUgdGFiIGNvbnRlbnQgYmFja2dyb3VuZCAqLwogICAgYmFja2dyb3VuZDogd2hpdGU7CiAgICBtaW4taGVpZ2h0OiAyNnB4OwogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7CiAgICBvdmVyZmxvdzogdmlzaWJsZTsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciAucC1UYWJCYXItdGFiLnAtbW9kLWN1cnJlbnQ6YmVmb3JlIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogLTFweDsKICAgIGxlZnQ6IC0xcHg7CiAgICBjb250ZW50OiAnJzsKICAgIGhlaWdodDogMnB4OwogICAgd2lkdGg6IGNhbGMoMTAwJSArIDJweCk7CiAgICBiYWNrZ3JvdW5kOiAjMjE5NkYzOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWI6Zmlyc3QtY2hpbGQgewogICAgbWFyZ2luLWxlZnQ6IDA7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYjpob3Zlcjpub3QoLnAtbW9kLWN1cnJlbnQpIHsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLW1vZC1jbG9zYWJsZSA+IC5wLVRhYkJhci10YWJDbG9zZUljb24gewogICAgbWFyZ2luLWxlZnQ6IDRweDsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciAucC1tb2QtY2xvc2FibGUgPiAucC1UYWJCYXItdGFiQ2xvc2VJY29uOmJlZm9yZSB7CiAgICBmb250LWZhbWlseTogRm9udEF3ZXNvbWU7CiAgICBjb250ZW50OiAnXGYwMGQnOyAvKiBjbG9zZSAqLwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWJJY29uLAouanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkxhYmVsLAouanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkNsb3NlSWNvbiB7CiAgICBsaW5lLWhlaWdodDogMjRweDsKfQoKIC8qIEFjY29yZGlvbiBXaWRnZXQgKi8KCiAucC1Db2xsYXBzZSB7CiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogICAgZGlzcGxheTogZmxleDsKICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIC13ZWJraXQtYm94LWFsaWduOiBzdHJldGNoOwogICAgICAgIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoOwogICAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKfQoKIC5wLUNvbGxhcHNlLWhlYWRlciB7CiAgICBwYWRkaW5nOiA0cHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAuNSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUVFRUVFOwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIHBhZGRpbmc6IDEwcHggMTVweDsKICAgIGZvbnQtd2VpZ2h0OiBib2xkOwp9CgogLnAtQ29sbGFwc2UtaGVhZGVyOmhvdmVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwp9CgogLnAtQ29sbGFwc2Utb3BlbiA+IC5wLUNvbGxhcHNlLWhlYWRlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDEuMCk7CiAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICBib3JkZXItYm90dG9tOiBub25lOwp9CgogLnAtQ29sbGFwc2UgLnAtQ29sbGFwc2UtaGVhZGVyOjpiZWZvcmUgewogICAgY29udGVudDogJ1xmMGRhXDAwQTAnOyAgLyogY2FyZXQtcmlnaHQsIG5vbi1icmVha2luZyBzcGFjZSAqLwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgZm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgMTRweC8xIEZvbnRBd2Vzb21lOwogICAgZm9udC1zaXplOiBpbmhlcml0OwogICAgdGV4dC1yZW5kZXJpbmc6IGF1dG87CiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7Cn0KCiAucC1Db2xsYXBzZS1vcGVuID4gLnAtQ29sbGFwc2UtaGVhZGVyOjpiZWZvcmUgewogICAgY29udGVudDogJ1xmMGQ3XDAwQTAnOyAvKiBjYXJldC1kb3duLCBub24tYnJlYWtpbmcgc3BhY2UgKi8KfQoKIC5wLUNvbGxhcHNlLWNvbnRlbnRzIHsKICAgIHBhZGRpbmc6IDE1cHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44KTsKICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzlFOUU5RTsKICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzlFOUU5RTsKICAgIG92ZXJmbG93OiBhdXRvOwp9CgogLnAtQWNjb3JkaW9uIHsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgLXdlYmtpdC1ib3gtYWxpZ246IHN0cmV0Y2g7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IHN0cmV0Y2g7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwp9CgogLnAtQWNjb3JkaW9uIC5wLUNvbGxhcHNlIHsKICAgIG1hcmdpbi1ib3R0b206IDA7Cn0KCiAucC1BY2NvcmRpb24gLnAtQ29sbGFwc2UgKyAucC1Db2xsYXBzZSB7CiAgICBtYXJnaW4tdG9wOiA0cHg7Cn0KCiAvKiBIVE1MIHdpZGdldCAqLwoKIC53aWRnZXQtaHRtbCwgLndpZGdldC1odG1sbWF0aCB7CiAgICBmb250LXNpemU6IDEzcHg7Cn0KCiAud2lkZ2V0LWh0bWwgPiAud2lkZ2V0LWh0bWwtY29udGVudCwgLndpZGdldC1odG1sbWF0aCA+IC53aWRnZXQtaHRtbC1jb250ZW50IHsKICAgIC8qIEZpbGwgb3V0IHRoZSBhcmVhIGluIHRoZSBIVE1MIHdpZGdldCAqLwogICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaDsKICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleC1wb3NpdGl2ZTogMTsKICAgICAgICAgICAgZmxleC1ncm93OiAxOwogICAgLW1zLWZsZXgtbmVnYXRpdmU6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAvKiBNYWtlcyBzdXJlIHRoZSBiYXNlbGluZSBpcyBzdGlsbCBhbGlnbmVkIHdpdGggb3RoZXIgZWxlbWVudHMgKi8KICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgLyogTWFrZSBpdCBwb3NzaWJsZSB0byBoYXZlIGFic29sdXRlbHktcG9zaXRpb25lZCBlbGVtZW50cyBpbiB0aGUgaHRtbCAqLwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgovKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWk0dUwyNXZaR1ZmYlc5a2RXeGxjeTlBYW5Wd2VYUmxjaTEzYVdSblpYUnpMMk52Ym5SeWIyeHpMMk56Y3k5M2FXUm5aWFJ6TG1OemN5SXNJaTR1TDI1dlpHVmZiVzlrZFd4bGN5OUFhblZ3ZVhSbGNpMTNhV1JuWlhSekwyTnZiblJ5YjJ4ekwyTnpjeTlzWVdKMllYSnBZV0pzWlhNdVkzTnpJaXdpTGk0dmJtOWtaVjl0YjJSMWJHVnpMMEJxZFhCNWRHVnlMWGRwWkdkbGRITXZZMjl1ZEhKdmJITXZZM056TDIxaGRHVnlhV0ZzWTI5c2IzSnpMbU56Y3lJc0lpNHVMMjV2WkdWZmJXOWtkV3hsY3k5QWFuVndlWFJsY2kxM2FXUm5aWFJ6TDJOdmJuUnliMnh6TDJOemN5OTNhV1JuWlhSekxXSmhjMlV1WTNOeklpd2lMaTR2Ym05a1pWOXRiMlIxYkdWekwwQnFkWEI1ZEdWeUxYZHBaR2RsZEhNdlkyOXVkSEp2YkhNdlkzTnpMM0JvYjNOd2FHOXlMbU56Y3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFUczdSMEZGUnpzN1EwRkZSanM3YTBOQlJXbERPenREUTA1c1F6czdPeXRGUVVjclJUczdRMEZGTDBVN096czdSVUZKUlRzN1EwTlVSanM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3UjBFMlFrYzdPME5FYUVKSU96czdPenM3T3pzN096czdPenM3T3pzN08wVkJiVUpGT3p0RFFVZEdPenRIUVVWSE96dERRVU5HTEhsRVFVRjVSRHM3UTBGRE1VUXNlVVZCUVhsRk96dERRVVY2UlRzN1IwRkZSenM3UTBGUFNEczdSVUZGUlRzN08wdEJSMGM3TzBWQlVVZzdPenM3U1VGSlJTeERRVWwzUWl4dlFrRkJiMElzUTBGSGFFSXNNRU5CUVRCRE96dEZRVWQ0UlRzN1NVRkZSVHM3UlVGUFJqczdTMEZGUnpzN1JVRlBTRHM3TzBsQlIwVXNRMEZYZDBJc2IwSkJRVzlDT3pzN1JVRlZPVU03T3pzN1NVRkpSVHM3UlVGUFJpeHJRa0ZCYTBJN08wVkJXV3hDTEN0RFFVRXJRenM3UlVGelFpOURMREJDUVVFd1FqdEZRV0V4UWpzMFJVRkRNRVU3UlVGRk1VVTdkMFZCUTNORk96dEZRVWQwUlN3NFFrRkJPRUk3TzBWQlN6bENMRFpDUVVFMlFqczdSVUZKTjBJc05rSkJRVFpDTzBOQlVUbENPenREUlhwTlJEczdSMEZGUnpzN1EwRkZTRHM3T3p0SFFVbEhPenREUTFKSU96czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdSVUU0UWtVN08wTkJSVVk3T3p0SFFVZEhPenREUVVWSU8wVkJRMFVzY1VKQlFXTTdSVUZCWkN4eFFrRkJZenRGUVVGa0xHTkJRV003UlVGRFpDd3dRa0ZCTUVJN1JVRkRNVUlzZFVKQlFYVkNPMFZCUTNaQ0xITkNRVUZ6UWp0RlFVTjBRaXhyUWtGQmEwSTdRMEZEYmtJN08wTkJSMFE3UlVGRFJTd3JRa0ZCYjBJN1JVRkJjRUlzT0VKQlFXOUNPMDFCUVhCQ0xIZENRVUZ2UWp0VlFVRndRaXh2UWtGQmIwSTdRMEZEY2tJN08wTkJSMFE3UlVGRFJTdzJRa0ZCZFVJN1JVRkJka0lzT0VKQlFYVkNPMDFCUVhaQ0xESkNRVUYxUWp0VlFVRjJRaXgxUWtGQmRVSTdRMEZEZUVJN08wTkJSMFE3UlVGRFJTeFZRVUZWTzBWQlExWXNWMEZCVnp0RlFVTllMSEZDUVVGak8wVkJRV1FzY1VKQlFXTTdSVUZCWkN4alFVRmpPMFZCUTJRc2IwSkJRV1U3VFVGQlppeHRRa0ZCWlR0VlFVRm1MR1ZCUVdVN1JVRkRaaXh6UWtGQmMwSTdRMEZEZGtJN08wTkJSMFE3UlVGRFJTd3JRa0ZCYjBJN1JVRkJjRUlzT0VKQlFXOUNPMDFCUVhCQ0xIZENRVUZ2UWp0VlFVRndRaXh2UWtGQmIwSTdRMEZEY2tJN08wTkJSMFE3UlVGRFJTdzJRa0ZCZFVJN1JVRkJka0lzT0VKQlFYVkNPMDFCUVhaQ0xESkNRVUYxUWp0VlFVRjJRaXgxUWtGQmRVSTdRMEZEZUVJN08wTkJSMFE3UlVGRFJTeHhRa0ZCWXp0RlFVRmtMSEZDUVVGak8wVkJRV1FzWTBGQll6dEZRVU5rTEN0Q1FVRnZRanRGUVVGd1FpdzRRa0ZCYjBJN1RVRkJjRUlzZDBKQlFXOUNPMVZCUVhCQ0xHOUNRVUZ2UWp0RlFVTndRaXdyUWtGQmRVSTdWVUZCZGtJc2RVSkJRWFZDTzBWQlEzWkNMR2xDUVVGcFFqdERRVU5zUWpzN1EwRkhSRHM3UlVGRlJTeHZRa0ZCWlR0TlFVRm1MRzFDUVVGbE8xVkJRV1lzWlVGQlpUdERRVU5vUWpzN1EwRkhSRHRGUVVORkxHOUNRVUZsTzAxQlFXWXNiVUpCUVdVN1ZVRkJaaXhsUVVGbE8wVkJRMllzYVVKQlFXbENPMFZCUTJwQ0xHOUNRVUZ2UWp0RFFVTnlRanM3UTBGSFJEdEZRVU5GTEhsQ1FVRjVRanREUVVNeFFqczdRMEZIUkR0RlFVTkZMRzFDUVVGdFFqdERRVU53UWpzN1EwRkhSRHRGUVVORkxGRkJRVkU3UlVGRFVpeHZRMEZCTkVJN1JVRkJOVUlzTkVKQlFUUkNPME5CUXpkQ096dERRVWRFTzBWQlEwVXNUMEZCVHp0RlFVTlFMRzFEUVVFeVFqdEZRVUV6UWl3eVFrRkJNa0k3UTBGRE5VSTdPME5CUjBRN1JVRkRSU3g1UWtGQmFVSTdSVUZCYWtJc2FVSkJRV2xDTzBOQlEyeENPenREUVVWRUxHOUNRVUZ2UWpzN1EwUTVSM0JDTEZGQlZYRkRMRzlEUVVGdlF6czdTVUV5UW5KRkxDdENRVUVyUWp0RFFVbHNRenM3UTBGRlJEdEpRVU5KTEZsQlFXbERPMGxCUTJwRExDdENRVUYxUWp0WlFVRjJRaXgxUWtGQmRVSTdTVUZEZGtJc1lVRkJLMEk3U1VGREwwSXNhMEpCUVd0Q08wTkJRM0pDT3p0RFFVVkVPMGxCUTBrc2EwSkJRVFpETzBsQlF6ZERMR0ZCUVhkRE8wTkJRek5ET3p0RFFVVkVPMGxCUTBrc1pVRkJaVHRKUVVObUxHZENRVUZuUWp0RFFVTnVRanM3UTBGRlJDeHRRa0ZCYlVJN08wTkJSVzVDTzBsQlEwa3NkMEpCUVhkQ08wbEJRM2hDTEN0Q1FVRjFRanRaUVVGMlFpeDFRa0ZCZFVJN1NVRkRka0lzY1VKQlFXTTdTVUZCWkN4eFFrRkJZenRKUVVGa0xHTkJRV003U1VGRFpDd3JRa0ZCYjBJN1NVRkJjRUlzT0VKQlFXOUNPMUZCUVhCQ0xIZENRVUZ2UWp0WlFVRndRaXh2UWtGQmIwSTdTVUZEY0VJc05FSkJRWE5DTzFGQlFYUkNMSGxDUVVGelFqdFpRVUYwUWl4elFrRkJjMEk3UTBGRGVrSTdPME5CUlVRN1NVRkRTU3h6UWtGQmMwSTdTVUZEZEVJc0swSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl4eFFrRkJZenRKUVVGa0xIRkNRVUZqTzBsQlFXUXNZMEZCWXp0SlFVTmtMRFpDUVVGMVFqdEpRVUYyUWl3NFFrRkJkVUk3VVVGQmRrSXNNa0pCUVhWQ08xbEJRWFpDTEhWQ1FVRjFRanRKUVVOMlFpd3dRa0ZCYjBJN1VVRkJjRUlzZFVKQlFXOUNPMWxCUVhCQ0xHOUNRVUZ2UWp0RFFVTjJRanM3UTBGRlJEdEpRVU5KTEN0Q1FVRjFRanRaUVVGMlFpeDFRa0ZCZFVJN1NVRkRka0lzY1VKQlFXTTdTVUZCWkN4eFFrRkJZenRKUVVGa0xHTkJRV003U1VGRFpDeFZRVUZWTzBsQlExWXNaVUZCWlR0RFFVTnNRanM3UTBGRlJEdEpRVU5KTEN0Q1FVRjFRanRaUVVGMlFpeDFRa0ZCZFVJN1NVRkRka0lzWTBGQll6dEpRVU5rTEZWQlFWVTdTVUZEVml4bFFVRmxPME5CUTJ4Q096dERRVVZFTzBsQlEwa3NLMEpCUVc5Q08wbEJRWEJDTERoQ1FVRnZRanRSUVVGd1FpeDNRa0ZCYjBJN1dVRkJjRUlzYjBKQlFXOUNPME5CUTNaQ096dERRVVZFTzBsQlEwa3NOa0pCUVhWQ08wbEJRWFpDTERoQ1FVRjFRanRSUVVGMlFpd3lRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPME5CUXpGQ096dERRVVZFTERSQ1FVRTBRanM3UTBGRk5VSTdTVUZEU1N4dFFrRkJiVUk3U1VGRGJrSXNiMEpCUVc5Q08wbEJRM0JDTEdsQ1FVRnBRanRKUVVOcVFpeHZRa0ZCYjBJN1NVRkRjRUlzYzBKQlFYTkNPMGxCUTNSQ0xHOUNRVUZ2UWp0SlFVTndRaXhwUWtGQmFVSTdTVUZEYWtJc2QwSkJRWGRDTzBsQlEzaENMRzFDUVVGdFFqdEpRVU51UWl4blFrRkJkVU03U1VGRGRrTXNaMEpCUVdkQ096dEpRVVZvUWl4aFFVRjNRenRKUVVONFF5eHJRa0ZCYTBJN1NVRkRiRUlzYTBKQlFUWkRPMGxCUXpkRExIbENRVUZwUWp0WlFVRnFRaXhwUWtGQmFVSTdPMGxCUldwQ0xIbENRVUZuUXp0SlFVTm9ReXd3UWtGQk1FTTdTVUZETVVNc2MwSkJRWE5ETzBsQlEzUkRMR0ZCUVdFN1EwRkRhRUk3TzBOQlJVUTdTVUZEU1N4clFrRkJPRU03U1VGRE9VTXNjVUpCUVhGQ08wTkJRM2hDT3p0RFFVVkVPMGxCUTBrc2FVSkJRV2xDTEVOQlFVTXNjMEpCUVhOQ08wTkJRek5ET3p0RFFVVkVPMGxCUTBrc1lVRkJORU03UTBGREwwTTdPME5CUlVRN1NVRkRTU3huUWtGQlowSTdRMEZEYmtJN08wTkJSVVE3U1VGRFNTeDNRa0ZCZDBJN1NVRkRlRUk3T3l0RFFVVXJSVHRaUVVZdlJUczdLME5CUlN0Rk8wTkJRMnhHT3p0RFFVVkVPMGxCUTBrc2QwSkJRWGRDTzBsQlEzaENPenRwUkVGRk5rVTdXVUZHTjBVN08ybEVRVVUyUlR0SlFVTTNSU3g1UWtGQlowTTdTVUZEYUVNc01FSkJRVEJETzBOQlF6ZERPenREUVVWRU8wbEJRMGtzTWtKQlFUaEVPME5CUTJwRk96dERRVVZFTERoQ1FVRTRRanM3UTBGRk9VSTdTVUZEU1N4blEwRkJkME03U1VGRGVFTXNNRUpCUVhsRE8wTkJRelZET3p0RFFVVkVPMGxCUTBrc09FSkJRWGRETzBsQlEzaERMREJDUVVGNVF6dERRVU0xUXpzN1EwRkZSRHRKUVVOSkxEaENRVUYzUXp0SlFVTjRReXd3UWtGQmVVTTdRMEZETlVNN08wTkJSVVFzT0VKQlFUaENPenREUVVVNVFqdEpRVU5KTEdkRFFVRjNRenRKUVVONFF5d3dRa0ZCTWtNN1EwRkRPVU03TzBOQlJVUTdTVUZEU1N3NFFrRkJkME03U1VGRGVFTXNNRUpCUVRKRE8wVkJRemRET3p0RFFVVkdPMGxCUTBrc09FSkJRWGRETzBsQlEzaERMREJDUVVFeVF6dEZRVU0zUXpzN1EwRkZSQ3d5UWtGQk1rSTdPME5CUlRWQ08wbEJRMGtzWjBOQlFYZERPMGxCUTNoRExEQkNRVUYzUXp0RFFVTXpRenM3UTBGRlJEdEpRVU5KTERoQ1FVRjNRenRKUVVONFF5d3dRa0ZCZDBNN1EwRkRNME03TzBOQlJVUTdTVUZEU1N3NFFrRkJkME03U1VGRGVFTXNNRUpCUVhkRE8wTkJRek5ET3p0RFFVVkVMRGhDUVVFNFFqczdRMEZGT1VJN1NVRkRTU3huUTBGQmQwTTdTVUZEZUVNc01FSkJRWGRETzBOQlF6TkRPenREUVVWRU8wbEJRMGtzT0VKQlFYZERPMGxCUTNoRExEQkNRVUYzUXp0RFFVTXpRenM3UTBGRlJEdEpRVU5KTERoQ1FVRjNRenRKUVVONFF5d3dRa0ZCZDBNN1EwRkRNME03TzBOQlJVUXNOa0pCUVRaQ096dERRVVUzUWp0SlFVTkpMR2REUVVGM1F6dEpRVU40UXl3d1FrRkJlVU03UTBGRE5VTTdPME5CUlVRN1NVRkRTU3c0UWtGQmQwTTdTVUZEZUVNc01FSkJRWGxETzBOQlF6VkRPenREUVVWRU8wbEJRMGtzT0VKQlFYZERPMGxCUTNoRExEQkNRVUY1UXp0RFFVTTFRenM3UTBGRlJDeHJRa0ZCYTBJN08wTkJSV3hDTzBsQlEwa3NZVUZCTkVNN1EwRkRMME03TzBOQlJVUXNNRUpCUVRCQ096dERRVVV4UWl4clEwRkJhME03TzBOQlEyeERPMGxCUTBrc2FVSkJRWFZDTzBsQlFYWkNMSFZDUVVGMVFqdERRVU14UWpzN1EwRkZSRHRKUVVOSkxHbENRVUZwUWp0SlFVTnFRaXhoUVVGeFF6dEpRVU55UXl4blFrRkJkVU03U1VGRGRrTXNhVUpCUVdsQ08wbEJRMnBDTEhkQ1FVRjNRanRKUVVONFFpeHZRa0ZCYjBJN1NVRkRjRUlzYTBKQlFUWkRPME5CUTJoRU96dERRVVZFTzBsQlEwa3NWMEZCVnp0SlFVTllMR0ZCUVhGRE8wbEJRM0pETEdkQ1FVRjFRenRKUVVOMlF5eHBRa0ZCYVVJN1NVRkRha0lzZDBKQlFYZENPMGxCUTNoQ0xHOUNRVUZ2UWp0SlFVTndRaXhyUWtGQk5rTTdRMEZEYUVRN08wTkJSVVE3U1VGRFNTdzJRa0ZCTmtJN1NVRkROMElzWVVGQmNVTTdTVUZEY2tNc2EwSkJRV3RDTzBsQlEyeENMR3RDUVVFd1JEdEpRVU14UkN4WlFVRTBRenRKUVVNMVF5eHhRa0ZCWlR0UlFVRm1MR1ZCUVdVN1EwRkRiRUk3TzBOQlJVUTdTVUZEU1N3eVFrRkJNa0k3U1VGRE0wSXNZVUZCY1VNN1NVRkRja01zYlVKQlFXMUNPMGxCUTI1Q0xHdENRVUUyUXp0RFFVTm9SRHM3UTBGRlJDdzBRa0ZCTkVJN08wTkJSVFZDTzBsQlEwa3NZVUZCZFVNN1NVRkRka01zWjBKQlFYVkRPMGxCUTNaRExHRkJRWGRETzBsQlEzaERMR3RDUVVFMlF6dEpRVU0zUXl4cFFrRkJhVUk3U1VGRGFrSXNiMEpCUVc5Q08wbEJRM0JDTEcxQ1FVRnRRanREUVVOMFFqczdRMEZGUkR0SlFVTkpMSGxDUVVGNVFqczdTVUZGZWtJN096czdUMEZKUnp0SlFVTklPenQxUkVGRmIwUTdPMGxCVFhCRU96c3JRMEZGTkVNN1EwRkRMME03TzBOQlJVUTdTVUZEU1N4M1FrRkJkMEk3U1VGRGVFSXNiVUpCUVcxQ08wbEJRMjVDTEdsQ1FVRm5SRHRKUVVOb1JDeG5Ra0ZCSzBNN1NVRkRMME1zYVVKQlFUWkRPME5CUTJoRU96dERRVVZFTzBsQlEwa3NjMEpCUVhOQ08wbEJRM1JDTEdkQ1FVRTBRenRKUVVNMVF5d3lRa0ZCTWtJN1NVRkRNMElzWlVGQlpUdERRVU5zUWpzN1EwRkZSQ3cyUWtGQk5rSTdPME5CUlRkQ08wbEJRMGtzWVVGQmMwTTdTVUZEZEVNc1lVRkJkME03U1VGRGVFTXNhMEpCUVRaRE8wTkJRMmhFT3p0RFFVVkVPMGxCUTBrc2QwSkJRV2RGTzBsQlEyaEZMR3RDUVVFMlF6dEpRVU0zUXl4cFFrRkJhVUk3U1VGRGFrSXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4eFFrRkJaVHRSUVVGbUxHVkJRV1U3U1VGRFppdzBRa0ZCYlVJN1VVRkJia0lzYlVKQlFXMUNPME5CUTNSQ096dERRVVZFTERCQ1FVRXdRanM3UTBGRk1VSTdTVUZEU1N4aFFVRjNRenRKUVVONFF5eHJRa0ZCTmtNN1NVRkROME1zWVVGQk5FTTdTVUZETlVNc1owSkJRWFZETzBOQlF6RkRPenREUVVWRU8wbEJRMGtzYTBKQlFUWkRPMGxCUXpkRExHdENRVUU0UXp0SlFVTTVReXhwUWtGQk5rTTdPMGxCUlRkRExEQktRVUV3U2p0SlFVTXhTaXh6UWtGQmMwSTdTVUZEZEVJc09FTkJRVGhETzBsQlF6bERMRzFDUVVGdFFqdEpRVU51UWl4eFFrRkJjVUk3U1VGRGNrSXNiME5CUVc5RE8wbEJRM0JETEcxRFFVRnRRenREUVVOMFF6czdRMEZGUkR0SlFVTkpMR2xDUVVGcFFqdEpRVU5xUWl4aFFVRmhPME5CUTJoQ096dERRVVZFTzBsQlEwa3NhVUpCUVdsQ08wbEJRMnBDTEZkQlFWYzdRMEZEWkRzN1EwRkZSRHRKUVVOSkxHTkJRV003UTBGRGFrSTdPME5CUlVRc2NVTkJRWEZET3p0RFFVVnlRenRKUVVOSkxHRkJRWE5ETzBOQlEzcERPenREUVVWRU8wbEJRMGtzWVVGQmQwTTdTVUZEZUVNc2EwSkJRVFpETzBOQlEyaEVPenREUVVWRU8wbEJRMGtzWVVGQk5FTTdRMEZETDBNN08wTkJSVVE3U1VGRFNTd3JRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPMGxCUTNaQ0xEQkNRVUYzUmp0SlFVTjRSaXgzUWtGQk1rUTdTVUZETTBRc2VVSkJRWEZETzBsQlEzSkRMR2RDUVVGMVF6dEpRVU4yUXl4cFFrRkJjMFk3U1VGRGRFWXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4aFFVRmhMRU5CUVVNc2FVVkJRV2xGTzBsQlF5OUZMSEZDUVVGbE8xRkJRV1lzWlVGQlpUdEpRVU5tTEhsQ1FVRjVRanREUVVNMVFqczdRMEZGUkR0SlFVTkpMR2RDUVVGblFqdEpRVU5vUWl4bFFVRmxPME5CUTJ4Q096dERRVVZFTzBsQlEwa3NjMEpCUVhsRU8wTkJRelZFT3p0RFFVVkVMRzFDUVVGdFFqczdRMEZGYmtJN1NVRkRTU3hyUWtGQmEwSTdTVUZEYkVJc01FSkJRVFJGTzBsQlF6VkZMRzlDUVVGdlF6dEpRVU53UXl3clFrRkJkVUk3V1VGQmRrSXNkVUpCUVhWQ08wbEJRM1pDTEcxQ1FVRnRRanRKUVVOdVFpeHRRa0ZCYlVJN1EwRkRkRUk3TzBOQlJVUTdTVUZEU1N4dFFrRkJiVUk3U1VGRGJrSXNlVUpCUVhsQ0xFTkJRVU1zYjBSQlFXOUVPMGxCUXpsRkxHMUNRVUZ0UWp0SlFVTnVRaXgzUWtGQmJVVTdTVUZEYmtVc01FSkJRV2xITzBsQlEycEhMQ3RDUVVGMVFqdFpRVUYyUWl4MVFrRkJkVUk3U1VGRGRrSXNWMEZCVnp0SlFVTllMSFZDUVVGMVFpeERRVUZETEhkQ1FVRjNRanREUVVOdVJEczdRMEZGUkN4M1FrRkJkMEk3TzBOQlEzaENPMGxCUTBrc01FSkJRU3RFTzBsQlF5OUVMREJDUVVGcFJ6dERRVU53UnpzN1EwRkZSRHRKUVVOSkxEQkNRVUVyUkR0SlFVTXZSQ3h6UWtGQk1rUTdTVUZETTBRc1YwRkJWenRKUVVOWUxEaENRVUZ6UWp0WlFVRjBRaXh6UWtGQmMwSTdRMEZEZWtJN08wTkJSVVE3U1VGRFNTeHBSVUZCYVVVN1NVRkRha1VzYlVKQlFXMUNPMGxCUTI1Q0xHOUNRVUY1UkR0SlFVTjZSQ3hYUVVGWE8wTkJRMlE3TzBOQlJVUXNPRUpCUVRoQ096dERRVVU1UWp0SlFVTkpMRmxCUVRSRE8wbEJRelZETEdGQlFUWkRPMGxCUXpkRExHbENRVUZuU2p0SlFVTm9TaXhyUWtGQmNVYzdTVUZEY2tjc2JVSkJRVzFDTzBsQlEyNUNMRTlCUVU4N1EwRkRWanM3UTBGRlJEdEpRVU5KTEZsQlFUUkRPMGxCUXpWRExHRkJRVFpETzBsQlF6ZERMRzlDUVVGMVJ6dEpRVU4yUnl4clFrRkJhVW83U1VGRGFrb3NiVUpCUVcxQ08wbEJRMjVDTEZGQlFWRTdRMEZEV0RzN1EwRkZSRHRKUVVOSkxGbEJRVFpFTzBsQlF6ZEVMR2xDUVVGNVNqdERRVU0xU2pzN1EwRkZSRHRKUVVOSkxGZEJRVFJFTzBsQlF6VkVMR3RDUVVFd1NqdERRVU0zU2pzN1EwRkZSQ3gxUWtGQmRVSTdPME5CUlhaQ08wbEJRMGtzWVVGQmMwTTdTVUZEZEVNc1lVRkJkME03U1VGRGVFTXNhMEpCUVRaRE96dEpRVVUzUXpzN2IwUkJSV2RFTzBsQlEyaEVMREJDUVVGdlFqdFJRVUZ3UWl4MVFrRkJiMEk3V1VGQmNFSXNiMEpCUVc5Q08wTkJRM1pDT3p0RFFVVkVPMGxCUTBrc2EwSkJRV3RDTzBOQlEzSkNPenREUVVWRU8wbEJRMGtzWVVGQmQwTTdTVUZEZUVNc2FVSkJRWGRITzBsQlEzaEhMR3RDUVVGNVJ6dEpRVU42Unl4dlFrRkJLME03VVVGQkwwTXNiMEpCUVN0RE8xbEJRUzlETEdkQ1FVRXJRenREUVVOc1JEczdRMEZGUkR0SlFVTkpMR2REUVVGblF6dEpRVU5vUXl4WlFVRnBSRHRKUVVOcVJDeHBRa0ZCYlVjN1NVRkRia2NzV1VGQldUdERRVU5tT3p0RFFVVkVMSEZDUVVGeFFqczdRMEZGY2tJN1NVRkRTU3hoUVVGM1F6dEpRVU40UXl4clFrRkJOa003UTBGRGFFUTdPME5CUlVRN1NVRkRTU3h4UWtGQmNVSTdTVUZEY2tJc1kwRkJNRU03U1VGRE1VTXNXVUZCTWtNN1EwRkRPVU03TzBOQlJVUTdTVUZEU1N4dlFrRkJLME03VVVGQkwwTXNiMEpCUVN0RE8xbEJRUzlETEdkQ1FVRXJRenRKUVVNdlF5eHJRa0ZCYTBJN1NVRkRiRUlzYlVKQlFXMUNPMGxCUTI1Q0xHMUNRVUV3Unp0SlFVTXhSeXhuUWtGQmRVYzdTVUZEZGtjc2NVSkJRV003U1VGQlpDeHhRa0ZCWXp0SlFVRmtMR05CUVdNN1NVRkRaQ3cyUWtGQmRVSTdTVUZCZGtJc09FSkJRWFZDTzFGQlFYWkNMREpDUVVGMVFqdFpRVUYyUWl4MVFrRkJkVUk3UTBGRE1VSTdPME5CUlVRN1NVRkRTU3huUTBGQlowTTdTVUZEYUVNc1YwRkJaMFE3U1VGRGFFUXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4clFrRkJhMEk3U1VGRGJFSXNiVUpCUVcxQ08wTkJRM1JDT3p0RFFVVkVMRFpDUVVFMlFqczdRMEZGTjBJN1NVRkRTU3g1UWtGQmVVSTdTVUZKZWtJc2FVSkJRV2xDTzBOQlEzQkNPenREUVVWRU8wbEJRMGtzWVVGQmQwTTdRMEZETTBNN08wTkJSVVE3U1VGRFNTd3dRa0ZCZVVNN1EwRkROVU03TzBOQlJVUTdTVUZEU1N3d1FrRkJNa003UTBGRE9VTTdPME5CUlVRN1NVRkRTU3d3UWtGQmQwTTdRMEZETTBNN08wTkJSVVE3U1VGRFNTd3dRa0ZCZDBNN1EwRkRNME03TzBOQlJVUTdTVUZEU1N3d1FrRkJlVU03UTBGRE5VTTdPME5CUlVRN1NVRkRTU3d3UWtGQk1FTTdTVUZETVVNc1lVRkJZVHRKUVVOaUxIbENRVUZwUWp0WlFVRnFRaXhwUWtGQmFVSTdRMEZEY0VJN08wTkJSVVFzZVVKQlFYbENPenREUVVWNlFqdEpRVU5KTEd0Q1FVRnJRanRKUVVOc1FpeGhRVUYzUXp0SlFVTjRReXhyUWtGQk5rTTdTVUZETjBNc1lVRkJjME03U1VGRGRFTXNNRUpCUVc5Q08xRkJRWEJDTEhWQ1FVRnZRanRaUVVGd1FpeHZRa0ZCYjBJN08wTkJSWFpDT3p0RFFVVkVPMGxCUTBrc2IwSkJRV0U3VVVGQllpeHhRa0ZCWVR0WlFVRmlMR0ZCUVdFN1NVRkRZaXhuUWtGQk5FTTdTVUZETlVNc2JVSkJRU3RETzBsQlF5OURMRFpDUVVGdlFqdFJRVUZ3UWl4dlFrRkJiMEk3U1VGRGNFSXNPRUpCUVRoQ08wbEJRemxDTEdGQlFXZENPMGxCUVdoQ0xHZENRVUZuUWp0RFFVTnVRanM3UTBGRlJDeDFRa0ZCZFVJN08wTkJSWFpDTzBsQlEwa3NZMEZCTUVNN1NVRkRNVU1zV1VGQk1rTTdRMEZET1VNN08wTkJSVVE3U1VGRFNTeHZRa0ZCWVR0UlFVRmlMSEZDUVVGaE8xbEJRV0lzWVVGQllUdEpRVU5pTEZsQlFUUkRPMGxCUXpWRExHdENRVUZyUWp0SlFVTnNRaXh0UWtGQmJVSTdTVUZEYmtJc2FVSkJRV2xDTzBOQlEzQkNPenREUVVWRUxESkNRVUV5UWpzN1EwRkZNMEk3U1VGRFNTeGhRVUYzUXp0SlFVTjRReXhoUVVGelF6dEpRVU4wUXl4clFrRkJOa003UTBGRGFFUTdPME5CUlVRN1NVRkRTU3h2UWtGQmIwSTdTVUZEY0VJc01FSkJRWGRHTzBsQlEzaEdMR2xDUVVGcFFqdEpRVU5xUWl4blFrRkJaMEk3U1VGRGFFSXNiMEpCUVN0RE8xRkJRUzlETEc5Q1FVRXJRenRaUVVFdlF5eG5Ra0ZCSzBNN1NVRkRMME1zWVVGQllTeERRVUZETEdsRlFVRnBSVHRKUVVNdlJTd3JRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPMGxCUTNaQ0xIbENRVUY1UWp0SlFVTjZRaXg1UWtGQmFVSTdXVUZCYWtJc2FVSkJRV2xDTzBsQlEycENMSGRDUVVFeVJEdEpRVU16UkN4NVFrRkJjVU03U1VGRGNrTXNaMEpCUVhWRE8wbEJRM1pETEc5Q1FVRnZRanRKUVVOd1FpeHJRa0ZCZVVRN1EwRkROVVFzYVVKQlFXbENPME5CUTJwQ0xIbENRVUY1UWp0RFFVTjZRaXh6UWtGQmMwSTdTVUZEYmtJc05rSkJRVFpDTzBOQlEyaERMSE5DUVVGelFqdERRVU4wUWl4clEwRkJhME03U1VGREwwSXNhM1ZDUVVGdFJEdERRVU4wUkRzN1EwRkRSRHRKUVVOSkxITkNRVUY1UkR0RFFVTTFSRHM3UTBGRlJEdEpRVU5KTEdGQlFUUkRPME5CUXk5RE96dERRVVZFT3paRFFVTTJRenM3UTBGRE4wTTdTVUZEU1N4dFFrRkJiVUk3U1VGRGJrSXNkMEpCUVhkQ08wTkJRek5DT3p0RFFVVkVMQ3RDUVVFclFqczdRMEZGTDBJN1NVRkRTU3hoUVVGelF6dEpRVU4wUXl4clFrRkJOa003TzBsQlJUZERPenRyUlVGRk9FUTdTVUZET1VRc2VVSkJRWGRDTzFGQlFYaENMSE5DUVVGM1FqdFpRVUY0UWl4M1FrRkJkMEk3UTBGRE0wSTdPME5CUlVRN1NVRkRTU3d3UWtGQmQwWTdTVUZEZUVZc2QwSkJRVEpFTzBsQlF6TkVMSGxDUVVGeFF6dEpRVU55UXl4blFrRkJkVU03U1VGRGRrTXNiMEpCUVN0RE8xRkJRUzlETEc5Q1FVRXJRenRaUVVFdlF5eG5Ra0ZCSzBNN1NVRkRMME1zZVVKQlFYbENPMGxCUTNwQ0xHVkJRV1U3U1VGRFppeG5Ra0ZCWjBJN08wbEJSV2hDT3p0clJVRkZPRVE3U1VGRE9VUXNhVUpCUVdsQ08wTkJRM0JDT3p0RFFVVkVPMGxCUTBrc2MwSkJRWGxFTzBOQlF6VkVPenREUVVWRU8wbEJRMGtzYTBKQlFUaERPMGxCUXpsRExHdENRVUUyUXp0SlFVTTNReXhyUlVGQmEwVTdTVUZEYkVVc01FUkJRV2xHTzBsQlEycEdMRFpFUVVGdlJqdERRVU4yUmpzN1EwRkpSQ3cwUWtGQk5FSTdPME5CUlRWQ08wbEJRMGtzYTBKQlFUWkRPME5CUTJoRU96dERRVVZFTzBsQlEwa3NhVUpCUVhORE8wbEJRM1JETEd0Q1FVRjFRenREUVVNeFF6czdRMEZGUkR0SlFVTkpMR0ZCUVRSRE8wTkJReTlET3p0RFFVVkVMREpDUVVFeVFqczdRMEZGTTBJN1NVRkRTU3hoUVVGelF6dEpRVU4wUXl4clFrRkJOa003UTBGRGFFUTdPME5CUlVRN1NVRkRTU3h4UWtGQll6dEpRVUZrTEhGQ1FVRmpPMGxCUVdRc1kwRkJZenRKUVVOa0xEWkNRVUYxUWp0SlFVRjJRaXc0UWtGQmRVSTdVVUZCZGtJc01rSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl3eVFrRkJjVUk3VVVGQmNrSXNkMEpCUVhGQ08xbEJRWEpDTEhGQ1FVRnhRanRKUVVOeVFpd3JRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPMGxCUTNaQ0xHOUNRVUZoTzFGQlFXSXNjVUpCUVdFN1dVRkJZaXhoUVVGaE8wbEJRMklzYlVKQlFUaEVPME5CUTJwRk96dERRVVZFTzBsQlEwa3NZVUZCTkVNN1NVRkROVU1zYTBKQlFXbEVPMGxCUTJwRUxHZENRVUYxUXp0RFFVTXhRenM3UTBGRlJEdEpRVU5KTEdGQlFUUkRPMGxCUXpWRExHdENRVUZwUkR0SlFVTnFSQ3h2UWtGQk5FUTdTVUZETlVRc1dVRkJXVHREUVVObU96dERRVVZFTERCQ1FVRXdRanM3UTBGRk1VSTdTVUZEU1N4aFFVRnpRenRKUVVOMFF5eGhRVUYzUXp0SlFVTjRReXhyUWtGQk5rTTdRMEZEYUVRN08wTkJSVVE3U1VGRFNTeHZRa0ZCWVR0UlFVRmlMSEZDUVVGaE8xbEJRV0lzWVVGQllUdEpRVU5pTEhGQ1FVRmxPMUZCUVdZc1pVRkJaVHRKUVVObUxHZENRVUVyUXp0RFFVTnNSRHM3UTBGRlJEdEpRVU5KTEZsQlFYVkRPMGxCUTNaRExHRkJRWGRETzBsQlEzaERMR1ZCUVdVc1EwRkJReXcyUkVGQk5rUTdTVUZETjBVc2EwSkJRWEZFTzBsQlEzSkVMSGxDUVVGeFF6dEpRVU55UXl3d1FrRkJkMFk3U1VGRGVFWXNhMEpCUVd0Q08wbEJRMnhDTEc5Q1FVRmhPMUZCUVdJc2NVSkJRV0U3V1VGQllpeGhRVUZoTzBsQlEySXNjVUpCUVdVN1VVRkJaaXhsUVVGbE8wbEJRMllzSzBKQlFYVkNPMWxCUVhaQ0xIVkNRVUYxUWp0SlFVTjJRaXcyUWtGQmIwSTdVVUZCY0VJc2IwSkJRVzlDTzBsQlEzQkNMSGxDUVVGNVFqdERRVU0xUWpzN1EwRkZSRHRKUVVOSkxDdENRVUUyUmp0RFFVTm9SenM3UTBGRlJEdEpRVU5KTEhOQ1FVRjVSRHREUVVNMVJEczdRMEZGUkR0SlFVTkpMRzlDUVVGaE8xRkJRV0lzY1VKQlFXRTdXVUZCWWl4aFFVRmhPMGxCUTJJc2VVSkJRWGxDTzBsQlEzcENMR0ZCUVhkRE8wbEJRM2hETEd0Q1FVRTJRenRKUVVNM1F5eHJRa0ZCY1VRN1NVRkRja1FzZVVKQlFYRkRPMGxCUTNKRExEQkNRVUYzUmp0SlFVTjRSaXhuUWtGQmRVTTdTVUZEZGtNc2FVSkJRWE5HTzBsQlEzUkdMR0ZCUVdFc1EwRkJReXhwUlVGQmFVVTdTVUZETDBVc2NVSkJRV1U3VVVGQlppeGxRVUZsTzBsQlEyWXNLMEpCUVhWQ08xbEJRWFpDTEhWQ1FVRjFRanREUVVNeFFqczdRMEZGUkR0SlFVTkpMR0ZCUVRSRE8wTkJReTlET3p0RFFVVkVMSGxDUVVGNVFqczdRMEZGZWtJN1NVRkRTU3hoUVVGelF6dEpRVU4wUXl4aFFVRjNRenRKUVVONFF5eHJRa0ZCTmtNN1EwRkRhRVE3TzBOQlJVUTdTVUZEU1N4dlFrRkJZVHRSUVVGaUxIRkNRVUZoTzFsQlFXSXNZVUZCWVR0SlFVTmlMSEZDUVVGbE8xRkJRV1lzWlVGQlpUdEpRVU5tTEdGQlFXRXNRMEZCUXl4cFJVRkJhVVU3U1VGREwwVXNlVUpCUVhsQ08wbEJRM3BDTEdGQlFYZERPMGxCUTNoRExEQkNRVUYzUmp0SlFVTjRSaXgzUWtGQk1rUTdTVUZETTBRc2VVSkJRWEZETzBsQlEzSkRMR2RDUVVGMVF6dEpRVU4yUXl4cFFrRkJjMFk3U1VGRGRFWXNLMEpCUVhWQ08xbEJRWFpDTEhWQ1FVRjFRanREUVVNeFFqczdRMEZGUkR0SlFVTkpMSE5DUVVGNVJEdERRVU0xUkRzN1EwRkZSRHRKUVVOSkxITkNRVUZ2UXp0RFFVTjJRenM3UTBGRlJEdEpRVU5KTEdGQlFUUkRPME5CUXk5RE96dERRVVZFTEdsQ1FVRnBRanM3UTBGRmFrSTdTVUZEU1N4aFFVRTBRenRKUVVNMVF5eHhRa0ZCWXp0SlFVRmtMSEZDUVVGak8wbEJRV1FzWTBGQll6dEpRVU5rTERKQ1FVRnhRanRSUVVGeVFpeDNRa0ZCY1VJN1dVRkJja0lzY1VKQlFYRkNPME5CUTNoQ096dERRVVZFTzBsQlEwa3NiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4aFFVRmhPME5CUTJoQ096dERRVVZFTzBsQlEwa3NZVUZCTkVNN1EwRkRMME03TzBOQlJVUXNaMEpCUVdkQ096dERRVVZvUWp0SlFVTkpMSEZDUVVGak8wbEJRV1FzY1VKQlFXTTdTVUZCWkN4alFVRmpPMGxCUTJRc05rSkJRWFZDTzBsQlFYWkNMRGhDUVVGMVFqdFJRVUYyUWl3eVFrRkJkVUk3V1VGQmRrSXNkVUpCUVhWQ08wTkJRekZDT3p0RFFVVkVPMGxCUTBrc2VVWkJRWGxHTzBsQlEzcEdMRzlDUVVGdlFqdEpRVU53UWl4dlFrRkJiMEk3UTBGRGRrSTdPME5CUlVRN1NVRkRTU3hwUkVGQmFVUTdTVUZEYWtRc2RVSkJRWE5DTzFGQlFYUkNMRzlDUVVGelFqdFpRVUYwUWl4elFrRkJjMEk3U1VGRGRFSXNZVUZCWVR0SlFVTmlMR05CUVdNN1EwRkRha0k3TzBOQlJVUTdTVUZEU1N4WlFVRlpPMGxCUTFvc0swSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl4VlFVRlZPMGxCUTFZc2EwSkJRVzlETzBsQlEzQkRMSGxDUVVGblF6dEpRVU5vUXl3d1FrRkJOa1E3U1VGRE4wUXNZMEZCTmtNN1NVRkROME1zYjBKQlFXRTdVVUZCWWl4eFFrRkJZVHRaUVVGaUxHRkJRV0U3U1VGRFlpeGxRVUZsTzBOQlEyeENPenREUVVWRU8wbEJRMGtzZDBOQlFTdEVPMGxCUXk5RUxHbENRVUZ0Ump0RFFVTjBSanM3UTBGRlJEdEpRVU5KTEc5Q1FVRnBSRHRSUVVGcVJDeHZRa0ZCYVVRN1dVRkJha1FzWjBKQlFXbEVPMGxCUTJwRUxHZENRVUZuUWp0SlFVTm9RaXhwUWtGQmJVWTdTVUZEYmtZc2EwSkJRWEZFTzBsQlEzSkVMR3RDUVVFclF6dEpRVU12UXl4clFrRkJhMEk3U1VGRGJFSXNiMEpCUVc5RE8wbEJRM0JETEhsQ1FVRm5RenRKUVVOb1F5d3dRa0ZCTmtRN1NVRkROMFFzYjBKQlFXOUNPMGxCUTNCQ0xHMUNRVUZ0UWp0RFFVTjBRanM3UTBGRlJEdEpRVU5KTERCQ1FVRm5RenRKUVVOb1F5eG5SVUZCWjBVN1NVRkRhRVVzYTBKQlFXOURPMGxCUTNCRExHbENRVUYxUmp0SlFVTjJSaXh0UTBGQk9FTTdXVUZCT1VNc01rSkJRVGhETzBsQlF6bERMR3RDUVVGclFqdERRVU55UWpzN1EwRkZSRHRKUVVOSkxHMUNRVUZ0UWp0SlFVTnVRaXhWUVVGMVF6dEpRVU4yUXl4WFFVRjNRenRKUVVONFF5eFpRVUZaTzBsQlExb3NXVUZCYjBRN1NVRkRjRVFzZDBKQlFTdERPMGxCUXk5RExHOUNRVUZ0UXp0RFFVTjBRenM3UTBGRlJEdEpRVU5KTEdWQlFXVTdRMEZEYkVJN08wTkJSVVE3U1VGRFNTeHJRa0ZCYjBNN1NVRkRjRU1zZVVKQlFXZERPME5CUTI1RE96dERRVVZFTzBsQlEwa3NhVUpCUVdsQ08wTkJRM0JDT3p0RFFVVkVPMGxCUTBrc2VVSkJRWGxDTzBsQlEzcENMR2xDUVVGcFFpeERRVUZETEZkQlFWYzdRMEZEYUVNN08wTkJSVVE3T3p0SlFVZEpMR3RDUVVGeFJEdERRVU40UkRzN1EwRkZSQ3h6UWtGQmMwSTdPME5CUlhSQ08wbEJRMGtzY1VKQlFXTTdTVUZCWkN4eFFrRkJZenRKUVVGa0xHTkJRV003U1VGRFpDdzJRa0ZCZFVJN1NVRkJka0lzT0VKQlFYVkNPMUZCUVhaQ0xESkNRVUYxUWp0WlFVRjJRaXgxUWtGQmRVSTdTVUZEZGtJc01rSkJRWEZDTzFGQlFYSkNMSGRDUVVGeFFqdFpRVUZ5UWl4eFFrRkJjVUk3UTBGRGVFSTdPME5CUlVRN1NVRkRTU3hoUVVGNVF6dEpRVU42UXl4blFrRkJaMEk3U1VGRGFFSXNlVUpCUVdkRE8wbEJRMmhETERCQ1FVRXdRenRKUVVNeFF5d3dRa0ZCY1VVN1NVRkRja1VzYlVKQlFTdEdPMGxCUXk5R0xHdENRVUZyUWp0RFFVTnlRanM3UTBGRlJEdEpRVU5KTEhkQ1FVRXdRenRKUVVNeFF5eDVRa0ZCWjBNN1EwRkRia003TzBOQlJVUTdTVUZEU1N4M1FrRkJNRU03U1VGRE1VTXNNRUpCUVdkRE8wbEJRMmhETEdkQ1FVRm5RanRKUVVOb1FpeHZRa0ZCYjBJN1EwRkRka0k3TzBOQlJVUTdTVUZEU1N4elFrRkJjMElzUlVGQlJTeHhRMEZCY1VNN1NVRkROMFFzYzBKQlFYTkNPMGxCUTNSQ0xEaERRVUU0UXp0SlFVTTVReXh0UWtGQmJVSTdTVUZEYmtJc2NVSkJRWEZDTzBsQlEzSkNMRzlEUVVGdlF6dEpRVU53UXl4dFEwRkJiVU03UTBGRGRFTTdPME5CUlVRN1NVRkRTU3h6UWtGQmMwSXNRMEZCUXl4dlEwRkJiME03UTBGRE9VUTdPME5CUlVRN1NVRkRTU3hqUVVFMlF6dEpRVU0zUXl4M1FrRkJNRU03U1VGRE1VTXNlVUpCUVdkRE8wbEJRMmhETEN0Q1FVRXdSVHRKUVVNeFJTeG5RMEZCTWtVN1NVRkRNMFVzYVVOQlFUUkZPMGxCUXpWRkxHVkJRV1U3UTBGRGJFSTdPME5CUlVRN1NVRkRTU3h4UWtGQll6dEpRVUZrTEhGQ1FVRmpPMGxCUVdRc1kwRkJZenRKUVVOa0xEWkNRVUYxUWp0SlFVRjJRaXc0UWtGQmRVSTdVVUZCZGtJc01rSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl3eVFrRkJjVUk3VVVGQmNrSXNkMEpCUVhGQ08xbEJRWEpDTEhGQ1FVRnhRanREUVVONFFqczdRMEZGUkR0SlFVTkpMR2xDUVVGcFFqdERRVU53UWpzN1EwRkZSRHRKUVVOSkxHZENRVUZuUWp0RFFVTnVRanM3UTBGSlJDeHBRa0ZCYVVJN08wTkJSV3BDTzBsQlEwa3NaMEpCUVhWRE8wTkJRekZET3p0RFFVVkVPMGxCUTBrc01FTkJRVEJETzBsQlF6RkRMRFpDUVVGdlFqdFJRVUZ3UWl4dlFrRkJiMEk3U1VGRGNFSXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4eFFrRkJaVHRSUVVGbUxHVkJRV1U3U1VGRFppeHJSVUZCYTBVN1NVRkRiRVVzYTBKQlFUWkRPMGxCUXpkRExIbEZRVUY1UlR0SlFVTjZSU3h0UWtGQmJVSTdRMEZEZEVJaUxDSm1hV3hsSWpvaVkyOXVkSEp2YkhNdVkzTnpJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpTHlvZ1EyOXdlWEpwWjJoMElDaGpLU0JLZFhCNWRHVnlJRVJsZG1Wc2IzQnRaVzUwSUZSbFlXMHVYRzRnS2lCRWFYTjBjbWxpZFhSbFpDQjFibVJsY2lCMGFHVWdkR1Z5YlhNZ2IyWWdkR2hsSUUxdlpHbG1hV1ZrSUVKVFJDQk1hV05sYm5ObExseHVJQ292WEc1Y2JpQXZLaUJYWlNCcGJYQnZjblFnWVd4c0lHOW1JSFJvWlhObElIUnZaMlYwYUdWeUlHbHVJR0VnYzJsdVoyeGxJR056Y3lCbWFXeGxJR0psWTJGMWMyVWdkR2hsSUZkbFluQmhZMnRjYm14dllXUmxjaUJ6WldWeklHOXViSGtnYjI1bElHWnBiR1VnWVhRZ1lTQjBhVzFsTGlCVWFHbHpJR0ZzYkc5M2N5QndiM04wWTNOeklIUnZJSE5sWlNCMGFHVWdkbUZ5YVdGaWJHVmNibVJsWm1sdWFYUnBiMjV6SUhkb1pXNGdkR2hsZVNCaGNtVWdkWE5sWkM0Z0tpOWNibHh1UUdsdGNHOXlkQ0JjSWk0dmJHRmlkbUZ5YVdGaWJHVnpMbU56YzF3aU8xeHVRR2x0Y0c5eWRDQmNJaTR2ZDJsa1oyVjBjeTFpWVhObExtTnpjMXdpTzF4dUlpd2lMeW90TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExWeHVmQ0JEYjNCNWNtbG5hSFFnS0dNcElFcDFjSGwwWlhJZ1JHVjJaV3h2Y0cxbGJuUWdWR1ZoYlM1Y2Jud2dSR2x6ZEhKcFluVjBaV1FnZFc1a1pYSWdkR2hsSUhSbGNtMXpJRzltSUhSb1pTQk5iMlJwWm1sbFpDQkNVMFFnVEdsalpXNXpaUzVjYm53dExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRLaTljYmx4dUx5cGNibFJvYVhNZ1ptbHNaU0JwY3lCamIzQnBaV1FnWm5KdmJTQjBhR1VnU25Wd2VYUmxja3hoWWlCd2NtOXFaV04wSUhSdklHUmxabWx1WlNCa1pXWmhkV3gwSUhOMGVXeHBibWNnWm05eVhHNTNhR1Z1SUhSb1pTQjNhV1JuWlhRZ2MzUjViR2x1WnlCcGN5QmpiMjF3YVd4bFpDQmtiM2R1SUhSdklHVnNhVzFwYm1GMFpTQkRVMU1nZG1GeWFXRmliR1Z6TGlCWFpTQnRZV3RsSUc5dVpWeHVZMmhoYm1kbElDMGdkMlVnWTI5dGJXVnVkQ0J2ZFhRZ2RHaGxJR1p2Ym5RZ2FXMXdiM0owSUdKbGJHOTNMbHh1S2k5Y2JseHVRR2x0Y0c5eWRDQmNJaTR2YldGMFpYSnBZV3hqYjJ4dmNuTXVZM056WENJN1hHNWNiaThxWEc1VWFHVWdabTlzYkc5M2FXNW5JRU5UVXlCMllYSnBZV0pzWlhNZ1pHVm1hVzVsSUhSb1pTQnRZV2x1TENCd2RXSnNhV01nUVZCSklHWnZjaUJ6ZEhsc2FXNW5JRXAxY0hsMFpYSk1ZV0l1WEc1VWFHVnpaU0IyWVhKcFlXSnNaWE1nYzJodmRXeGtJR0psSUhWelpXUWdZbmtnWVd4c0lIQnNkV2RwYm5NZ2QyaGxjbVYyWlhJZ2NHOXpjMmxpYkdVdUlFbHVJRzkwYUdWeVhHNTNiM0prY3l3Z2NHeDFaMmx1Y3lCemFHOTFiR1FnYm05MElHUmxabWx1WlNCamRYTjBiMjBnWTI5c2IzSnpMQ0J6YVhwbGN5d2daWFJqSUhWdWJHVnpjeUJoWW5OdmJIVjBaV3g1WEc1dVpXTmxjM05oY25rdUlGUm9hWE1nWlc1aFlteGxjeUIxYzJWeWN5QjBieUJqYUdGdVoyVWdkR2hsSUhacGMzVmhiQ0IwYUdWdFpTQnZaaUJLZFhCNWRHVnlUR0ZpWEc1aWVTQmphR0Z1WjJsdVp5QjBhR1Z6WlNCMllYSnBZV0pzWlhNdVhHNWNiazFoYm5rZ2RtRnlhV0ZpYkdWeklHRndjR1ZoY2lCcGJpQmhiaUJ2Y21SbGNtVmtJSE5sY1hWbGJtTmxJQ2d3TERFc01pd3pLUzRnVkdobGMyVWdjMlZ4ZFdWdVkyVnpYRzVoY21VZ1pHVnphV2R1WldRZ2RHOGdkMjl5YXlCM1pXeHNJSFJ2WjJWMGFHVnlMQ0J6YnlCbWIzSWdaWGhoYlhCc1pTd2dZQzB0YW5BdFltOXlaR1Z5TFdOdmJHOXlNV0FnYzJodmRXeGtYRzVpWlNCMWMyVmtJSGRwZEdnZ1lDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1XQXVJRlJvWlNCdWRXMWlaWEp6SUdoaGRtVWdkR2hsSUdadmJHeHZkMmx1WnlCdFpXRnVhVzVuY3pwY2JseHVLaUF3T2lCemRYQmxjaTF3Y21sdFlYSjVMQ0J5WlhObGNuWmxaQ0JtYjNJZ2MzQmxZMmxoYkNCbGJYQm9ZWE5wYzF4dUtpQXhPaUJ3Y21sdFlYSjVMQ0J0YjNOMElHbHRjRzl5ZEdGdWRDQjFibVJsY2lCdWIzSnRZV3dnYzJsMGRXRjBhVzl1YzF4dUtpQXlPaUJ6WldOdmJtUmhjbmtzSUc1bGVIUWdiVzl6ZENCcGJYQnZjblJoYm5RZ2RXNWtaWElnYm05eWJXRnNJSE5wZEhWaGRHbHZibk5jYmlvZ016b2dkR1Z5ZEdsaGNua3NJRzVsZUhRZ2JXOXpkQ0JwYlhCdmNuUmhiblFnZFc1a1pYSWdibTl5YldGc0lITnBkSFZoZEdsdmJuTmNibHh1VkdoeWIzVm5hRzkxZENCS2RYQjVkR1Z5VEdGaUxDQjNaU0JoY21VZ2JXOXpkR3g1SUdadmJHeHZkMmx1WnlCd2NtbHVZMmx3YkdWeklHWnliMjBnUjI5dloyeGxKM05jYmsxaGRHVnlhV0ZzSUVSbGMybG5iaUIzYUdWdUlITmxiR1ZqZEdsdVp5QmpiMnh2Y25NdUlGZGxJR0Z5WlNCdWIzUXNJR2h2ZDJWMlpYSXNJR1p2Ykd4dmQybHVaMXh1WVd4c0lHOW1JRTFFSUdGeklHbDBJR2x6SUc1dmRDQnZjSFJwYldsNlpXUWdabTl5SUdSbGJuTmxMQ0JwYm1admNtMWhkR2x2YmlCeWFXTm9JRlZKY3k1Y2Jpb3ZYRzVjYmx4dUx5cGNiaUFxSUU5d2RHbHZibUZzSUcxdmJtOXpjR0ZqWlNCbWIyNTBJR1p2Y2lCcGJuQjFkQzl2ZFhSd2RYUWdjSEp2YlhCMExseHVJQ292WEc0Z0x5b2dRMjl0YldWdWRHVmtJRzkxZENCcGJpQnBjSGwzYVdSblpYUnpJSE5wYm1ObElIZGxJR1J2YmlkMElHNWxaV1FnYVhRdUlDb3ZYRzR2S2lCQWFXMXdiM0owSUhWeWJDZ25hSFIwY0hNNkx5OW1iMjUwY3k1bmIyOW5iR1ZoY0dsekxtTnZiUzlqYzNNL1ptRnRhV3g1UFZKdlltOTBieXROYjI1dkp5azdJQ292WEc1Y2JpOHFYRzRnS2lCQlpHUmxaQ0JtYjNJZ1kyOXRjR0ZpYVhScGJHbDBlU0IzYVhSb0lHOTFkSEIxZENCaGNtVmhYRzRnS2k5Y2JqcHliMjkwSUh0Y2JpQWdMUzFxY0MxcFkyOXVMWE5sWVhKamFEb2dibTl1WlR0Y2JpQWdMUzFxY0MxMWFTMXpaV3hsWTNRdFkyRnlaWFE2SUc1dmJtVTdYRzU5WEc1Y2JseHVPbkp2YjNRZ2UxeHVYRzRnSUM4cUlFSnZjbVJsY25OY2JseHVJQ0JVYUdVZ1ptOXNiRzkzYVc1bklIWmhjbWxoWW14bGN5d2djM0JsWTJsbWVTQjBhR1VnZG1semRXRnNJSE4wZVd4cGJtY2diMllnWW05eVpHVnljeUJwYmlCS2RYQjVkR1Z5VEdGaUxseHVJQ0FnS2k5Y2JseHVJQ0F0TFdwd0xXSnZjbVJsY2kxM2FXUjBhRG9nTVhCNE8xeHVJQ0F0TFdwd0xXSnZjbVJsY2kxamIyeHZjakE2SUhaaGNpZ3RMVzFrTFdkeVpYa3ROekF3S1R0Y2JpQWdMUzFxY0MxaWIzSmtaWEl0WTI5c2IzSXhPaUIyWVhJb0xTMXRaQzFuY21WNUxUVXdNQ2s3WEc0Z0lDMHRhbkF0WW05eVpHVnlMV052Ykc5eU1qb2dkbUZ5S0MwdGJXUXRaM0psZVMwek1EQXBPMXh1SUNBdExXcHdMV0p2Y21SbGNpMWpiMnh2Y2pNNklIWmhjaWd0TFcxa0xXZHlaWGt0TVRBd0tUdGNibHh1SUNBdktpQlZTU0JHYjI1MGMxeHVYRzRnSUZSb1pTQlZTU0JtYjI1MElFTlRVeUIyWVhKcFlXSnNaWE1nWVhKbElIVnpaV1FnWm05eUlIUm9aU0IwZVhCdlozSmhjR2g1SUdGc2JDQnZaaUIwYUdVZ1NuVndlWFJsY2t4aFlseHVJQ0IxYzJWeUlHbHVkR1Z5Wm1GalpTQmxiR1Z0Wlc1MGN5QjBhR0YwSUdGeVpTQnViM1FnWkdseVpXTjBiSGtnZFhObGNpQm5aVzVsY21GMFpXUWdZMjl1ZEdWdWRDNWNiaUFnS2k5Y2JseHVJQ0F0TFdwd0xYVnBMV1p2Ym5RdGMyTmhiR1V0Wm1GamRHOXlPaUF4TGpJN1hHNGdJQzB0YW5BdGRXa3RabTl1ZEMxemFYcGxNRG9nWTJGc1l5aDJZWElvTFMxcWNDMTFhUzFtYjI1MExYTnBlbVV4S1M5MllYSW9MUzFxY0MxMWFTMW1iMjUwTFhOallXeGxMV1poWTNSdmNpa3BPMXh1SUNBdExXcHdMWFZwTFdadmJuUXRjMmw2WlRFNklERXpjSGc3SUM4cUlFSmhjMlVnWm05dWRDQnphWHBsSUNvdlhHNGdJQzB0YW5BdGRXa3RabTl1ZEMxemFYcGxNam9nWTJGc1l5aDJZWElvTFMxcWNDMTFhUzFtYjI1MExYTnBlbVV4S1NwMllYSW9MUzFxY0MxMWFTMW1iMjUwTFhOallXeGxMV1poWTNSdmNpa3BPMXh1SUNBdExXcHdMWFZwTFdadmJuUXRjMmw2WlRNNklHTmhiR01vZG1GeUtDMHRhbkF0ZFdrdFptOXVkQzF6YVhwbE1pa3FkbUZ5S0MwdGFuQXRkV2t0Wm05dWRDMXpZMkZzWlMxbVlXTjBiM0lwS1R0Y2JpQWdMUzFxY0MxMWFTMXBZMjl1TFdadmJuUXRjMmw2WlRvZ01UUndlRHNnTHlvZ1JXNXpkWEpsY3lCd2VDQndaWEptWldOMElFWnZiblJCZDJWemIyMWxJR2xqYjI1eklDb3ZYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMW1ZVzFwYkhrNklGd2lTR1ZzZG1WMGFXTmhJRTVsZFdWY0lpd2dTR1ZzZG1WMGFXTmhMQ0JCY21saGJDd2djMkZ1Y3kxelpYSnBaanRjYmx4dUlDQXZLaUJWYzJVZ2RHaGxjMlVnWm05dWRDQmpiMnh2Y25NZ1lXZGhhVzV6ZENCMGFHVWdZMjl5Y21WemNHOXVaR2x1WnlCdFlXbHVJR3hoZVc5MWRDQmpiMnh2Y25NdVhHNGdJQ0FnSUVsdUlHRWdiR2xuYUhRZ2RHaGxiV1VzSUhSb1pYTmxJR2R2SUdaeWIyMGdaR0Z5YXlCMGJ5QnNhV2RvZEM1Y2JpQWdLaTljYmx4dUlDQXRMV3B3TFhWcExXWnZiblF0WTI5c2IzSXdPaUJ5WjJKaEtEQXNNQ3d3TERFdU1DazdYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMWpiMnh2Y2pFNklISm5ZbUVvTUN3d0xEQXNNQzQ0S1R0Y2JpQWdMUzFxY0MxMWFTMW1iMjUwTFdOdmJHOXlNam9nY21kaVlTZ3dMREFzTUN3d0xqVXBPMXh1SUNBdExXcHdMWFZwTFdadmJuUXRZMjlzYjNJek9pQnlaMkpoS0RBc01Dd3dMREF1TXlrN1hHNWNiaUFnTHlvZ1ZYTmxJSFJvWlhObElHRm5ZV2x1YzNRZ2RHaGxJR0p5WVc1a0wyRmpZMlZ1ZEM5M1lYSnVMMlZ5Y205eUlHTnZiRzl5Y3k1Y2JpQWdJQ0FnVkdobGMyVWdkMmxzYkNCMGVYQnBZMkZzYkhrZ1oyOGdabkp2YlNCc2FXZG9kQ0IwYnlCa1lYSnJaWElzSUdsdUlHSnZkR2dnWVNCa1lYSnJJR0Z1WkNCc2FXZG9kQ0IwYUdWdFpWeHVJQ0FnS2k5Y2JseHVJQ0F0TFdwd0xXbHVkbVZ5YzJVdGRXa3RabTl1ZEMxamIyeHZjakE2SUhKblltRW9NalUxTERJMU5Td3lOVFVzTVNrN1hHNGdJQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNVG9nY21kaVlTZ3lOVFVzTWpVMUxESTFOU3d4TGpBcE8xeHVJQ0F0TFdwd0xXbHVkbVZ5YzJVdGRXa3RabTl1ZEMxamIyeHZjakk2SUhKblltRW9NalUxTERJMU5Td3lOVFVzTUM0M0tUdGNiaUFnTFMxcWNDMXBiblpsY25ObExYVnBMV1p2Ym5RdFkyOXNiM0l6T2lCeVoySmhLREkxTlN3eU5UVXNNalUxTERBdU5TazdYRzVjYmlBZ0x5b2dRMjl1ZEdWdWRDQkdiMjUwYzF4dVhHNGdJRU52Ym5SbGJuUWdabTl1ZENCMllYSnBZV0pzWlhNZ1lYSmxJSFZ6WldRZ1ptOXlJSFI1Y0c5bmNtRndhSGtnYjJZZ2RYTmxjaUJuWlc1bGNtRjBaV1FnWTI5dWRHVnVkQzVjYmlBZ0tpOWNibHh1SUNBdExXcHdMV052Ym5SbGJuUXRabTl1ZEMxemFYcGxPaUF4TTNCNE8xeHVJQ0F0TFdwd0xXTnZiblJsYm5RdGJHbHVaUzFvWldsbmFIUTZJREV1TlR0Y2JpQWdMUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJd09pQmliR0ZqYXp0Y2JpQWdMUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJeE9pQmliR0ZqYXp0Y2JpQWdMUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJeU9pQjJZWElvTFMxdFpDMW5jbVY1TFRjd01DazdYRzRnSUMwdGFuQXRZMjl1ZEdWdWRDMW1iMjUwTFdOdmJHOXlNem9nZG1GeUtDMHRiV1F0WjNKbGVTMDFNREFwTzF4dVhHNGdJQzB0YW5BdGRXa3RabTl1ZEMxelkyRnNaUzFtWVdOMGIzSTZJREV1TWp0Y2JpQWdMUzFxY0MxMWFTMW1iMjUwTFhOcGVtVXdPaUJqWVd4aktIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdGMybDZaVEVwTDNaaGNpZ3RMV3B3TFhWcExXWnZiblF0YzJOaGJHVXRabUZqZEc5eUtTazdYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMXphWHBsTVRvZ01UTndlRHNnTHlvZ1FtRnpaU0JtYjI1MElITnBlbVVnS2k5Y2JpQWdMUzFxY0MxMWFTMW1iMjUwTFhOcGVtVXlPaUJqWVd4aktIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdGMybDZaVEVwS25aaGNpZ3RMV3B3TFhWcExXWnZiblF0YzJOaGJHVXRabUZqZEc5eUtTazdYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMXphWHBsTXpvZ1kyRnNZeWgyWVhJb0xTMXFjQzExYVMxbWIyNTBMWE5wZW1VeUtTcDJZWElvTFMxcWNDMTFhUzFtYjI1MExYTmpZV3hsTFdaaFkzUnZjaWtwTzF4dVhHNGdJQzB0YW5BdFkyOWtaUzFtYjI1MExYTnBlbVU2SURFemNIZzdYRzRnSUMwdGFuQXRZMjlrWlMxc2FXNWxMV2hsYVdkb2REb2dNUzR6TURjN1hHNGdJQzB0YW5BdFkyOWtaUzF3WVdSa2FXNW5PaUExY0hnN1hHNGdJQzB0YW5BdFkyOWtaUzFtYjI1MExXWmhiV2xzZVRvZ2JXOXViM053WVdObE8xeHVYRzVjYmlBZ0x5b2dUR0Y1YjNWMFhHNWNiaUFnVkdobElHWnZiR3h2ZDJsdVp5QmhjbVVnZEdobElHMWhhVzRnYkdGNWIzVjBJR052Ykc5eWN5QjFjMlVnYVc0Z1NuVndlWFJsY2t4aFlpNGdTVzRnWVNCc2FXZG9kRnh1SUNCMGFHVnRaU0IwYUdWelpTQjNiM1ZzWkNCbmJ5Qm1jbTl0SUd4cFoyaDBJSFJ2SUdSaGNtc3VYRzRnSUNvdlhHNWNiaUFnTFMxcWNDMXNZWGx2ZFhRdFkyOXNiM0l3T2lCM2FHbDBaVHRjYmlBZ0xTMXFjQzFzWVhsdmRYUXRZMjlzYjNJeE9pQjNhR2wwWlR0Y2JpQWdMUzFxY0Mxc1lYbHZkWFF0WTI5c2IzSXlPaUIyWVhJb0xTMXRaQzFuY21WNUxUSXdNQ2s3WEc0Z0lDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU16b2dkbUZ5S0MwdGJXUXRaM0psZVMwME1EQXBPMXh1WEc0Z0lDOHFJRUp5WVc1a0wyRmpZMlZ1ZENBcUwxeHVYRzRnSUMwdGFuQXRZbkpoYm1RdFkyOXNiM0l3T2lCMllYSW9MUzF0WkMxaWJIVmxMVGN3TUNrN1hHNGdJQzB0YW5BdFluSmhibVF0WTI5c2IzSXhPaUIyWVhJb0xTMXRaQzFpYkhWbExUVXdNQ2s3WEc0Z0lDMHRhbkF0WW5KaGJtUXRZMjlzYjNJeU9pQjJZWElvTFMxdFpDMWliSFZsTFRNd01DazdYRzRnSUMwdGFuQXRZbkpoYm1RdFkyOXNiM0l6T2lCMllYSW9MUzF0WkMxaWJIVmxMVEV3TUNrN1hHNWNiaUFnTFMxcWNDMWhZMk5sYm5RdFkyOXNiM0l3T2lCMllYSW9MUzF0WkMxbmNtVmxiaTAzTURBcE8xeHVJQ0F0TFdwd0xXRmpZMlZ1ZEMxamIyeHZjakU2SUhaaGNpZ3RMVzFrTFdkeVpXVnVMVFV3TUNrN1hHNGdJQzB0YW5BdFlXTmpaVzUwTFdOdmJHOXlNam9nZG1GeUtDMHRiV1F0WjNKbFpXNHRNekF3S1R0Y2JpQWdMUzFxY0MxaFkyTmxiblF0WTI5c2IzSXpPaUIyWVhJb0xTMXRaQzFuY21WbGJpMHhNREFwTzF4dVhHNGdJQzhxSUZOMFlYUmxJR052Ykc5eWN5QW9kMkZ5Yml3Z1pYSnliM0lzSUhOMVkyTmxjM01zSUdsdVptOHBJQ292WEc1Y2JpQWdMUzFxY0MxM1lYSnVMV052Ykc5eU1Eb2dkbUZ5S0MwdGJXUXRiM0poYm1kbExUY3dNQ2s3WEc0Z0lDMHRhbkF0ZDJGeWJpMWpiMnh2Y2pFNklIWmhjaWd0TFcxa0xXOXlZVzVuWlMwMU1EQXBPMXh1SUNBdExXcHdMWGRoY200dFkyOXNiM0l5T2lCMllYSW9MUzF0WkMxdmNtRnVaMlV0TXpBd0tUdGNiaUFnTFMxcWNDMTNZWEp1TFdOdmJHOXlNem9nZG1GeUtDMHRiV1F0YjNKaGJtZGxMVEV3TUNrN1hHNWNiaUFnTFMxcWNDMWxjbkp2Y2kxamIyeHZjakE2SUhaaGNpZ3RMVzFrTFhKbFpDMDNNREFwTzF4dUlDQXRMV3B3TFdWeWNtOXlMV052Ykc5eU1Ub2dkbUZ5S0MwdGJXUXRjbVZrTFRVd01DazdYRzRnSUMwdGFuQXRaWEp5YjNJdFkyOXNiM0l5T2lCMllYSW9MUzF0WkMxeVpXUXRNekF3S1R0Y2JpQWdMUzFxY0MxbGNuSnZjaTFqYjJ4dmNqTTZJSFpoY2lndExXMWtMWEpsWkMweE1EQXBPMXh1WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqQTZJSFpoY2lndExXMWtMV2R5WldWdUxUY3dNQ2s3WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqRTZJSFpoY2lndExXMWtMV2R5WldWdUxUVXdNQ2s3WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqSTZJSFpoY2lndExXMWtMV2R5WldWdUxUTXdNQ2s3WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqTTZJSFpoY2lndExXMWtMV2R5WldWdUxURXdNQ2s3WEc1Y2JpQWdMUzFxY0MxcGJtWnZMV052Ykc5eU1Eb2dkbUZ5S0MwdGJXUXRZM2xoYmkwM01EQXBPMXh1SUNBdExXcHdMV2x1Wm04dFkyOXNiM0l4T2lCMllYSW9MUzF0WkMxamVXRnVMVFV3TUNrN1hHNGdJQzB0YW5BdGFXNW1ieTFqYjJ4dmNqSTZJSFpoY2lndExXMWtMV041WVc0dE16QXdLVHRjYmlBZ0xTMXFjQzFwYm1adkxXTnZiRzl5TXpvZ2RtRnlLQzB0YldRdFkzbGhiaTB4TURBcE8xeHVYRzRnSUM4cUlFTmxiR3dnYzNCbFkybG1hV01nYzNSNWJHVnpJQ292WEc1Y2JpQWdMUzFxY0MxalpXeHNMWEJoWkdScGJtYzZJRFZ3ZUR0Y2JpQWdMUzFxY0MxalpXeHNMV1ZrYVhSdmNpMWlZV05yWjNKdmRXNWtPaUFqWmpkbU4yWTNPMXh1SUNBdExXcHdMV05sYkd3dFpXUnBkRzl5TFdKdmNtUmxjaTFqYjJ4dmNqb2dJMk5tWTJaalpqdGNiaUFnTFMxcWNDMWpaV3hzTFdWa2FYUnZjaTFpWVdOclozSnZkVzVrTFdWa2FYUTZJSFpoY2lndExXcHdMWFZwTFd4aGVXOTFkQzFqYjJ4dmNqRXBPMXh1SUNBdExXcHdMV05sYkd3dFpXUnBkRzl5TFdKdmNtUmxjaTFqYjJ4dmNpMWxaR2wwT2lCMllYSW9MUzFxY0MxaWNtRnVaQzFqYjJ4dmNqRXBPMXh1SUNBdExXcHdMV05sYkd3dGNISnZiWEIwTFhkcFpIUm9PaUF4TURCd2VEdGNiaUFnTFMxcWNDMWpaV3hzTFhCeWIyMXdkQzFtYjI1MExXWmhiV2xzZVRvZ0oxSnZZbTkwYnlCTmIyNXZKeXdnYlc5dWIzTndZV05sTzF4dUlDQXRMV3B3TFdObGJHd3RjSEp2YlhCMExXeGxkSFJsY2kxemNHRmphVzVuT2lBd2NIZzdYRzRnSUMwdGFuQXRZMlZzYkMxd2NtOXRjSFF0YjNCaFkybDBlVG9nTVM0d08xeHVJQ0F0TFdwd0xXTmxiR3d0Y0hKdmJYQjBMVzl3WVdOcGRIa3RibTkwTFdGamRHbDJaVG9nTUM0ME8xeHVJQ0F0TFdwd0xXTmxiR3d0Y0hKdmJYQjBMV1p2Ym5RdFkyOXNiM0l0Ym05MExXRmpkR2wyWlRvZ2RtRnlLQzB0YldRdFozSmxlUzAzTURBcE8xeHVJQ0F2S2lCQklHTjFjM1J2YlNCaWJHVnVaQ0J2WmlCTlJDQm5jbVY1SUdGdVpDQmliSFZsSURZd01GeHVJQ0FnS2lCVFpXVWdhSFIwY0hNNkx5OXRaWGxsY25kbFlpNWpiMjB2WlhKcFl5OTBiMjlzY3k5amIyeHZjaTFpYkdWdVpDOGpOVFEyUlRkQk9qRkZPRGhGTlRvMU9taGxlQ0FxTDF4dUlDQXRMV3B3TFdObGJHd3RhVzV3Y205dGNIUXRabTl1ZEMxamIyeHZjam9nSXpNd04wWkRNVHRjYmlBZ0x5b2dRU0JqZFhOMGIyMGdZbXhsYm1RZ2IyWWdUVVFnWjNKbGVTQmhibVFnYjNKaGJtZGxJRFl3TUZ4dUlDQWdLaUJvZEhSd2N6b3ZMMjFsZVdWeWQyVmlMbU52YlM5bGNtbGpMM1J2YjJ4ekwyTnZiRzl5TFdKc1pXNWtMeU0xTkRaRk4wRTZSalExTVRGRk9qVTZhR1Y0SUNvdlhHNGdJQzB0YW5BdFkyVnNiQzF2ZFhSd2NtOXRjSFF0Wm05dWRDMWpiMnh2Y2pvZ0kwSkdOVUl6UkR0Y2JseHVJQ0F2S2lCT2IzUmxZbTl2YXlCemNHVmphV1pwWXlCemRIbHNaWE1nS2k5Y2JseHVJQ0F0TFdwd0xXNXZkR1ZpYjI5ckxYQmhaR1JwYm1jNklERXdjSGc3WEc0Z0lDMHRhbkF0Ym05MFpXSnZiMnN0YzJOeWIyeHNMWEJoWkdScGJtYzZJREV3TUhCNE8xeHVYRzRnSUM4cUlFTnZibk52YkdVZ2MzQmxZMmxtYVdNZ2MzUjViR1Z6SUNvdlhHNWNiaUFnTFMxcWNDMWpiMjV6YjJ4bExXSmhZMnRuY205MWJtUTZJSFpoY2lndExXMWtMV2R5WlhrdE1UQXdLVHRjYmx4dUlDQXZLaUJVYjI5c1ltRnlJSE53WldOcFptbGpJSE4wZVd4bGN5QXFMMXh1WEc0Z0lDMHRhbkF0ZEc5dmJHSmhjaTFpYjNKa1pYSXRZMjlzYjNJNklIWmhjaWd0TFcxa0xXZHlaWGt0TkRBd0tUdGNiaUFnTFMxcWNDMTBiMjlzWW1GeUxXMXBZM0p2TFdobGFXZG9kRG9nT0hCNE8xeHVJQ0F0TFdwd0xYUnZiMnhpWVhJdFltRmphMmR5YjNWdVpEb2dkbUZ5S0MwdGFuQXRiR0Y1YjNWMExXTnZiRzl5TUNrN1hHNGdJQzB0YW5BdGRHOXZiR0poY2kxaWIzZ3RjMmhoWkc5M09pQXdjSGdnTUhCNElESndlQ0F3Y0hnZ2NtZGlZU2d3TERBc01Dd3dMakkwS1R0Y2JpQWdMUzFxY0MxMGIyOXNZbUZ5TFdobFlXUmxjaTF0WVhKbmFXNDZJRFJ3ZUNBMGNIZ2dNSEI0SURSd2VEdGNiaUFnTFMxcWNDMTBiMjlzWW1GeUxXRmpkR2wyWlMxaVlXTnJaM0p2ZFc1a09pQjJZWElvTFMxdFpDMW5jbVY1TFRNd01DazdYRzU5WEc0aUxDSXZLaXBjYmlBcUlGUm9aU0J0WVhSbGNtbGhiQ0JrWlhOcFoyNGdZMjlzYjNKeklHRnlaU0JoWkdGd2RHVmtJR1p5YjIwZ1oyOXZaMnhsTFcxaGRHVnlhV0ZzTFdOdmJHOXlJSFl4TGpJdU5seHVJQ29nYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDJSaGJteGxkbUZ1TDJkdmIyZHNaUzF0WVhSbGNtbGhiQzFqYjJ4dmNseHVJQ29nYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDJSaGJteGxkbUZ1TDJkdmIyZHNaUzF0WVhSbGNtbGhiQzFqYjJ4dmNpOWliRzlpTDJZMk4yTmhOV1kwTURJNFlqSm1NV0l6TkRnMk1tWTJOR0l3WTJFMk56TXlNMlk1TVdJd09EZ3ZaR2x6ZEM5d1lXeGxkSFJsTG5aaGNpNWpjM05jYmlBcVhHNGdLaUJVYUdVZ2JHbGpaVzV6WlNCbWIzSWdkR2hsSUcxaGRHVnlhV0ZzSUdSbGMybG5iaUJqYjJ4dmNpQkRVMU1nZG1GeWFXRmliR1Z6SUdseklHRnpJR1p2Ykd4dmQzTWdLSE5sWlZ4dUlDb2dhSFIwY0hNNkx5OW5hWFJvZFdJdVkyOXRMMlJoYm14bGRtRnVMMmR2YjJkc1pTMXRZWFJsY21saGJDMWpiMnh2Y2k5aWJHOWlMMlkyTjJOaE5XWTBNREk0WWpKbU1XSXpORGcyTW1ZMk5HSXdZMkUyTnpNeU0yWTVNV0l3T0RndlRFbERSVTVUUlNsY2JpQXFYRzRnS2lCVWFHVWdUVWxVSUV4cFkyVnVjMlVnS0UxSlZDbGNiaUFxWEc0Z0tpQkRiM0I1Y21sbmFIUWdLR01wSURJd01UUWdSR0Z1SUV4bElGWmhibHh1SUNwY2JpQXFJRkJsY20xcGMzTnBiMjRnYVhNZ2FHVnlaV0o1SUdkeVlXNTBaV1FzSUdaeVpXVWdiMllnWTJoaGNtZGxMQ0IwYnlCaGJua2djR1Z5YzI5dUlHOWlkR0ZwYm1sdVp5QmhJR052Y0hsY2JpQXFJRzltSUhSb2FYTWdjMjltZEhkaGNtVWdZVzVrSUdGemMyOWphV0YwWldRZ1pHOWpkVzFsYm5SaGRHbHZiaUJtYVd4bGN5QW9kR2hsSUZ3aVUyOW1kSGRoY21WY0lpa3NJSFJ2SUdSbFlXeGNiaUFxSUdsdUlIUm9aU0JUYjJaMGQyRnlaU0IzYVhSb2IzVjBJSEpsYzNSeWFXTjBhVzl1TENCcGJtTnNkV1JwYm1jZ2QybDBhRzkxZENCc2FXMXBkR0YwYVc5dUlIUm9aU0J5YVdkb2RITmNiaUFxSUhSdklIVnpaU3dnWTI5d2VTd2diVzlrYVdaNUxDQnRaWEpuWlN3Z2NIVmliR2x6YUN3Z1pHbHpkSEpwWW5WMFpTd2djM1ZpYkdsalpXNXpaU3dnWVc1a0wyOXlJSE5sYkd4Y2JpQXFJR052Y0dsbGN5QnZaaUIwYUdVZ1UyOW1kSGRoY21Vc0lHRnVaQ0IwYnlCd1pYSnRhWFFnY0dWeWMyOXVjeUIwYnlCM2FHOXRJSFJvWlNCVGIyWjBkMkZ5WlNCcGMxeHVJQ29nWm5WeWJtbHphR1ZrSUhSdklHUnZJSE52TENCemRXSnFaV04wSUhSdklIUm9aU0JtYjJ4c2IzZHBibWNnWTI5dVpHbDBhVzl1Y3pwY2JpQXFYRzRnS2lCVWFHVWdZV0p2ZG1VZ1kyOXdlWEpwWjJoMElHNXZkR2xqWlNCaGJtUWdkR2hwY3lCd1pYSnRhWE56YVc5dUlHNXZkR2xqWlNCemFHRnNiQ0JpWlNCcGJtTnNkV1JsWkNCcGJseHVJQ29nWVd4c0lHTnZjR2xsY3lCdmNpQnpkV0p6ZEdGdWRHbGhiQ0J3YjNKMGFXOXVjeUJ2WmlCMGFHVWdVMjltZEhkaGNtVXVYRzRnS2x4dUlDb2dWRWhGSUZOUFJsUlhRVkpGSUVsVElGQlNUMVpKUkVWRUlGd2lRVk1nU1ZOY0lpd2dWMGxVU0U5VlZDQlhRVkpTUVU1VVdTQlBSaUJCVGxrZ1MwbE9SQ3dnUlZoUVVrVlRVeUJQVWx4dUlDb2dTVTFRVEVsRlJDd2dTVTVEVEZWRVNVNUhJRUpWVkNCT1QxUWdURWxOU1ZSRlJDQlVUeUJVU0VVZ1YwRlNVa0ZPVkVsRlV5QlBSaUJOUlZKRFNFRk9WRUZDU1V4SlZGa3NYRzRnS2lCR1NWUk9SVk5USUVaUFVpQkJJRkJCVWxSSlExVk1RVklnVUZWU1VFOVRSU0JCVGtRZ1RrOU9TVTVHVWtsT1IwVk5SVTVVTGlCSlRpQk9UeUJGVmtWT1ZDQlRTRUZNVENCVVNFVmNiaUFxSUVGVlZFaFBVbE1nVDFJZ1EwOVFXVkpKUjBoVUlFaFBURVJGVWxNZ1FrVWdURWxCUWt4RklFWlBVaUJCVGxrZ1EweEJTVTBzSUVSQlRVRkhSVk1nVDFJZ1QxUklSVkpjYmlBcUlFeEpRVUpKVEVsVVdTd2dWMGhGVkVoRlVpQkpUaUJCVGlCQlExUkpUMDRnVDBZZ1EwOU9WRkpCUTFRc0lGUlBVbFFnVDFJZ1QxUklSVkpYU1ZORkxDQkJVa2xUU1U1SElFWlNUMDBzWEc0Z0tpQlBWVlFnVDBZZ1QxSWdTVTRnUTA5T1RrVkRWRWxQVGlCWFNWUklJRlJJUlNCVFQwWlVWMEZTUlNCUFVpQlVTRVVnVlZORklFOVNJRTlVU0VWU0lFUkZRVXhKVGtkVElFbE9JRlJJUlZ4dUlDb2dVMDlHVkZkQlVrVXVYRzRnS2k5Y2JqcHliMjkwSUh0Y2JpQWdMUzF0WkMxeVpXUXROVEE2SUNOR1JrVkNSVVU3WEc0Z0lDMHRiV1F0Y21Wa0xURXdNRG9nSTBaR1EwUkVNanRjYmlBZ0xTMXRaQzF5WldRdE1qQXdPaUFqUlVZNVFUbEJPMXh1SUNBdExXMWtMWEpsWkMwek1EQTZJQ05GTlRjek56TTdYRzRnSUMwdGJXUXRjbVZrTFRRd01Eb2dJMFZHTlRNMU1EdGNiaUFnTFMxdFpDMXlaV1F0TlRBd09pQWpSalEwTXpNMk8xeHVJQ0F0TFcxa0xYSmxaQzAyTURBNklDTkZOVE01TXpVN1hHNGdJQzB0YldRdGNtVmtMVGN3TURvZ0kwUXpNa1l5Ump0Y2JpQWdMUzF0WkMxeVpXUXRPREF3T2lBalF6WXlPREk0TzF4dUlDQXRMVzFrTFhKbFpDMDVNREE2SUNOQ056RkRNVU03WEc0Z0lDMHRiV1F0Y21Wa0xVRXhNREE2SUNOR1JqaEJPREE3WEc0Z0lDMHRiV1F0Y21Wa0xVRXlNREE2SUNOR1JqVXlOVEk3WEc0Z0lDMHRiV1F0Y21Wa0xVRTBNREE2SUNOR1JqRTNORFE3WEc0Z0lDMHRiV1F0Y21Wa0xVRTNNREE2SUNORU5UQXdNREE3WEc1Y2JpQWdMUzF0WkMxd2FXNXJMVFV3T2lBalJrTkZORVZETzF4dUlDQXRMVzFrTFhCcGJtc3RNVEF3T2lBalJqaENRa1F3TzF4dUlDQXRMVzFrTFhCcGJtc3RNakF3T2lBalJqUTRSa0l4TzF4dUlDQXRMVzFrTFhCcGJtc3RNekF3T2lBalJqQTJNamt5TzF4dUlDQXRMVzFrTFhCcGJtc3ROREF3T2lBalJVTTBNRGRCTzF4dUlDQXRMVzFrTFhCcGJtc3ROVEF3T2lBalJUa3hSVFl6TzF4dUlDQXRMVzFrTFhCcGJtc3ROakF3T2lBalJEZ3hRall3TzF4dUlDQXRMVzFrTFhCcGJtc3ROekF3T2lBalF6SXhPRFZDTzF4dUlDQXRMVzFrTFhCcGJtc3RPREF3T2lBalFVUXhORFUzTzF4dUlDQXRMVzFrTFhCcGJtc3RPVEF3T2lBak9EZ3dSVFJHTzF4dUlDQXRMVzFrTFhCcGJtc3RRVEV3TURvZ0kwWkdPREJCUWp0Y2JpQWdMUzF0WkMxd2FXNXJMVUV5TURBNklDTkdSalF3T0RFN1hHNGdJQzB0YldRdGNHbHVheTFCTkRBd09pQWpSalV3TURVM08xeHVJQ0F0TFcxa0xYQnBibXN0UVRjd01Eb2dJME0xTVRFMk1qdGNibHh1SUNBdExXMWtMWEIxY25Cc1pTMDFNRG9nSTBZelJUVkdOVHRjYmlBZ0xTMXRaQzF3ZFhKd2JHVXRNVEF3T2lBalJURkNSVVUzTzF4dUlDQXRMVzFrTFhCMWNuQnNaUzB5TURBNklDTkRSVGt6UkRnN1hHNGdJQzB0YldRdGNIVnljR3hsTFRNd01Eb2dJMEpCTmpoRE9EdGNiaUFnTFMxdFpDMXdkWEp3YkdVdE5EQXdPaUFqUVVJME4wSkRPMXh1SUNBdExXMWtMWEIxY25Cc1pTMDFNREE2SUNNNVF6STNRakE3WEc0Z0lDMHRiV1F0Y0hWeWNHeGxMVFl3TURvZ0l6aEZNalJCUVR0Y2JpQWdMUzF0WkMxd2RYSndiR1V0TnpBd09pQWpOMEl4UmtFeU8xeHVJQ0F0TFcxa0xYQjFjbkJzWlMwNE1EQTZJQ00yUVRGQ09VRTdYRzRnSUMwdGJXUXRjSFZ5Y0d4bExUa3dNRG9nSXpSQk1UUTRRenRjYmlBZ0xTMXRaQzF3ZFhKd2JHVXRRVEV3TURvZ0kwVkJPREJHUXp0Y2JpQWdMUzF0WkMxd2RYSndiR1V0UVRJd01Eb2dJMFV3TkRCR1FqdGNiaUFnTFMxdFpDMXdkWEp3YkdVdFFUUXdNRG9nSTBRMU1EQkdPVHRjYmlBZ0xTMXRaQzF3ZFhKd2JHVXRRVGN3TURvZ0kwRkJNREJHUmp0Y2JseHVJQ0F0TFcxa0xXUmxaWEF0Y0hWeWNHeGxMVFV3T2lBalJVUkZOMFkyTzF4dUlDQXRMVzFrTFdSbFpYQXRjSFZ5Y0d4bExURXdNRG9nSTBReFF6UkZPVHRjYmlBZ0xTMXRaQzFrWldWd0xYQjFjbkJzWlMweU1EQTZJQ05DTXpsRVJFSTdYRzRnSUMwdGJXUXRaR1ZsY0Mxd2RYSndiR1V0TXpBd09pQWpPVFUzTlVORU8xeHVJQ0F0TFcxa0xXUmxaWEF0Y0hWeWNHeGxMVFF3TURvZ0l6ZEZOVGRETWp0Y2JpQWdMUzF0WkMxa1pXVndMWEIxY25Cc1pTMDFNREE2SUNNMk56TkJRamM3WEc0Z0lDMHRiV1F0WkdWbGNDMXdkWEp3YkdVdE5qQXdPaUFqTlVVek5VSXhPMXh1SUNBdExXMWtMV1JsWlhBdGNIVnljR3hsTFRjd01Eb2dJelV4TWtSQk9EdGNiaUFnTFMxdFpDMWtaV1Z3TFhCMWNuQnNaUzA0TURBNklDTTBOVEkzUVRBN1hHNGdJQzB0YldRdFpHVmxjQzF3ZFhKd2JHVXRPVEF3T2lBak16RXhRamt5TzF4dUlDQXRMVzFrTFdSbFpYQXRjSFZ5Y0d4bExVRXhNREE2SUNOQ016ZzRSa1k3WEc0Z0lDMHRiV1F0WkdWbGNDMXdkWEp3YkdVdFFUSXdNRG9nSXpkRE5FUkdSanRjYmlBZ0xTMXRaQzFrWldWd0xYQjFjbkJzWlMxQk5EQXdPaUFqTmpVeFJrWkdPMXh1SUNBdExXMWtMV1JsWlhBdGNIVnljR3hsTFVFM01EQTZJQ00yTWpBd1JVRTdYRzVjYmlBZ0xTMXRaQzFwYm1ScFoyOHROVEE2SUNORk9FVkJSalk3WEc0Z0lDMHRiV1F0YVc1a2FXZHZMVEV3TURvZ0kwTTFRMEZGT1R0Y2JpQWdMUzF0WkMxcGJtUnBaMjh0TWpBd09pQWpPVVpCT0VSQk8xeHVJQ0F0TFcxa0xXbHVaR2xuYnkwek1EQTZJQ00zT1RnMlEwSTdYRzRnSUMwdGJXUXRhVzVrYVdkdkxUUXdNRG9nSXpWRE5rSkRNRHRjYmlBZ0xTMXRaQzFwYm1ScFoyOHROVEF3T2lBak0wWTFNVUkxTzF4dUlDQXRMVzFrTFdsdVpHbG5ieTAyTURBNklDTXpPVFE1UVVJN1hHNGdJQzB0YldRdGFXNWthV2R2TFRjd01Eb2dJek13TTBZNVJqdGNiaUFnTFMxdFpDMXBibVJwWjI4dE9EQXdPaUFqTWpnek5Ua3pPMXh1SUNBdExXMWtMV2x1WkdsbmJ5MDVNREE2SUNNeFFUSXpOMFU3WEc0Z0lDMHRiV1F0YVc1a2FXZHZMVUV4TURBNklDTTRRemxGUmtZN1hHNGdJQzB0YldRdGFXNWthV2R2TFVFeU1EQTZJQ00xTXpaRVJrVTdYRzRnSUMwdGJXUXRhVzVrYVdkdkxVRTBNREE2SUNNelJEVkJSa1U3WEc0Z0lDMHRiV1F0YVc1a2FXZHZMVUUzTURBNklDTXpNRFJHUmtVN1hHNWNiaUFnTFMxdFpDMWliSFZsTFRVd09pQWpSVE5HTWtaRU8xeHVJQ0F0TFcxa0xXSnNkV1V0TVRBd09pQWpRa0pFUlVaQ08xeHVJQ0F0TFcxa0xXSnNkV1V0TWpBd09pQWpPVEJEUVVZNU8xeHVJQ0F0TFcxa0xXSnNkV1V0TXpBd09pQWpOalJDTlVZMk8xeHVJQ0F0TFcxa0xXSnNkV1V0TkRBd09pQWpOREpCTlVZMU8xeHVJQ0F0TFcxa0xXSnNkV1V0TlRBd09pQWpNakU1TmtZek8xeHVJQ0F0TFcxa0xXSnNkV1V0TmpBd09pQWpNVVU0T0VVMU8xeHVJQ0F0TFcxa0xXSnNkV1V0TnpBd09pQWpNVGszTmtReU8xeHVJQ0F0TFcxa0xXSnNkV1V0T0RBd09pQWpNVFUyTlVNd08xeHVJQ0F0TFcxa0xXSnNkV1V0T1RBd09pQWpNRVEwTjBFeE8xeHVJQ0F0TFcxa0xXSnNkV1V0UVRFd01Eb2dJemd5UWpGR1JqdGNiaUFnTFMxdFpDMWliSFZsTFVFeU1EQTZJQ00wTkRoQlJrWTdYRzRnSUMwdGJXUXRZbXgxWlMxQk5EQXdPaUFqTWprM09VWkdPMXh1SUNBdExXMWtMV0pzZFdVdFFUY3dNRG9nSXpJNU5qSkdSanRjYmx4dUlDQXRMVzFrTFd4cFoyaDBMV0pzZFdVdE5UQTZJQ05GTVVZMVJrVTdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzB4TURBNklDTkNNMFUxUmtNN1hHNGdJQzB0YldRdGJHbG5hSFF0WW14MVpTMHlNREE2SUNNNE1VUTBSa0U3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMwek1EQTZJQ00wUmtNelJqYzdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzAwTURBNklDTXlPVUkyUmpZN1hHNGdJQzB0YldRdGJHbG5hSFF0WW14MVpTMDFNREE2SUNNd00wRTVSalE3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMwMk1EQTZJQ013TXpsQ1JUVTdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzAzTURBNklDTXdNamc0UkRFN1hHNGdJQzB0YldRdGJHbG5hSFF0WW14MVpTMDRNREE2SUNNd01qYzNRa1E3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMwNU1EQTZJQ013TVRVM09VSTdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzFCTVRBd09pQWpPREJFT0VaR08xeHVJQ0F0TFcxa0xXeHBaMmgwTFdKc2RXVXRRVEl3TURvZ0l6UXdRelJHUmp0Y2JpQWdMUzF0WkMxc2FXZG9kQzFpYkhWbExVRTBNREE2SUNNd01FSXdSa1k3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMxQk56QXdPaUFqTURBNU1VVkJPMXh1WEc0Z0lDMHRiV1F0WTNsaGJpMDFNRG9nSTBVd1JqZEdRVHRjYmlBZ0xTMXRaQzFqZVdGdUxURXdNRG9nSTBJeVJVSkdNanRjYmlBZ0xTMXRaQzFqZVdGdUxUSXdNRG9nSXpnd1JFVkZRVHRjYmlBZ0xTMXRaQzFqZVdGdUxUTXdNRG9nSXpSRVJEQkZNVHRjYmlBZ0xTMXRaQzFqZVdGdUxUUXdNRG9nSXpJMlF6WkVRVHRjYmlBZ0xTMXRaQzFqZVdGdUxUVXdNRG9nSXpBd1FrTkVORHRjYmlBZ0xTMXRaQzFqZVdGdUxUWXdNRG9nSXpBd1FVTkRNVHRjYmlBZ0xTMXRaQzFqZVdGdUxUY3dNRG9nSXpBd09UZEJOenRjYmlBZ0xTMXRaQzFqZVdGdUxUZ3dNRG9nSXpBd09ETTRSanRjYmlBZ0xTMXRaQzFqZVdGdUxUa3dNRG9nSXpBd05qQTJORHRjYmlBZ0xTMXRaQzFqZVdGdUxVRXhNREE2SUNNNE5FWkdSa1k3WEc0Z0lDMHRiV1F0WTNsaGJpMUJNakF3T2lBak1UaEdSa1pHTzF4dUlDQXRMVzFrTFdONVlXNHRRVFF3TURvZ0l6QXdSVFZHUmp0Y2JpQWdMUzF0WkMxamVXRnVMVUUzTURBNklDTXdNRUk0UkRRN1hHNWNiaUFnTFMxdFpDMTBaV0ZzTFRVd09pQWpSVEJHTWtZeE8xeHVJQ0F0TFcxa0xYUmxZV3d0TVRBd09pQWpRakpFUmtSQ08xeHVJQ0F0TFcxa0xYUmxZV3d0TWpBd09pQWpPREJEUWtNME8xeHVJQ0F0TFcxa0xYUmxZV3d0TXpBd09pQWpORVJDTmtGRE8xeHVJQ0F0TFcxa0xYUmxZV3d0TkRBd09pQWpNalpCTmpsQk8xeHVJQ0F0TFcxa0xYUmxZV3d0TlRBd09pQWpNREE1TmpnNE8xeHVJQ0F0TFcxa0xYUmxZV3d0TmpBd09pQWpNREE0T1RkQ08xeHVJQ0F0TFcxa0xYUmxZV3d0TnpBd09pQWpNREEzT1RaQ08xeHVJQ0F0TFcxa0xYUmxZV3d0T0RBd09pQWpNREEyT1RWRE8xeHVJQ0F0TFcxa0xYUmxZV3d0T1RBd09pQWpNREEwUkRRd08xeHVJQ0F0TFcxa0xYUmxZV3d0UVRFd01Eb2dJMEUzUmtaRlFqdGNiaUFnTFMxdFpDMTBaV0ZzTFVFeU1EQTZJQ00yTkVaR1JFRTdYRzRnSUMwdGJXUXRkR1ZoYkMxQk5EQXdPaUFqTVVSRk9VSTJPMXh1SUNBdExXMWtMWFJsWVd3dFFUY3dNRG9nSXpBd1FrWkJOVHRjYmx4dUlDQXRMVzFrTFdkeVpXVnVMVFV3T2lBalJUaEdOVVU1TzF4dUlDQXRMVzFrTFdkeVpXVnVMVEV3TURvZ0kwTTRSVFpET1R0Y2JpQWdMUzF0WkMxbmNtVmxiaTB5TURBNklDTkJOVVEyUVRjN1hHNGdJQzB0YldRdFozSmxaVzR0TXpBd09pQWpPREZETnpnME8xeHVJQ0F0TFcxa0xXZHlaV1Z1TFRRd01Eb2dJelkyUWtJMlFUdGNiaUFnTFMxdFpDMW5jbVZsYmkwMU1EQTZJQ00wUTBGR05UQTdYRzRnSUMwdGJXUXRaM0psWlc0dE5qQXdPaUFqTkROQk1EUTNPMXh1SUNBdExXMWtMV2R5WldWdUxUY3dNRG9nSXpNNE9FVXpRenRjYmlBZ0xTMXRaQzFuY21WbGJpMDRNREE2SUNNeVJUZEVNekk3WEc0Z0lDMHRiV1F0WjNKbFpXNHRPVEF3T2lBak1VSTFSVEl3TzF4dUlDQXRMVzFrTFdkeVpXVnVMVUV4TURBNklDTkNPVVkyUTBFN1hHNGdJQzB0YldRdFozSmxaVzR0UVRJd01Eb2dJelk1UmpCQlJUdGNiaUFnTFMxdFpDMW5jbVZsYmkxQk5EQXdPaUFqTURCRk5qYzJPMXh1SUNBdExXMWtMV2R5WldWdUxVRTNNREE2SUNNd01FTTROVE03WEc1Y2JpQWdMUzF0WkMxc2FXZG9kQzFuY21WbGJpMDFNRG9nSTBZeFJqaEZPVHRjYmlBZ0xTMXRaQzFzYVdkb2RDMW5jbVZsYmkweE1EQTZJQ05FUTBWRVF6ZzdYRzRnSUMwdGJXUXRiR2xuYUhRdFozSmxaVzR0TWpBd09pQWpRelZGTVVFMU8xeHVJQ0F0TFcxa0xXeHBaMmgwTFdkeVpXVnVMVE13TURvZ0kwRkZSRFU0TVR0Y2JpQWdMUzF0WkMxc2FXZG9kQzFuY21WbGJpMDBNREE2SUNNNVEwTkROalU3WEc0Z0lDMHRiV1F0YkdsbmFIUXRaM0psWlc0dE5UQXdPaUFqT0VKRE16UkJPMXh1SUNBdExXMWtMV3hwWjJoMExXZHlaV1Z1TFRZd01Eb2dJemREUWpNME1qdGNiaUFnTFMxdFpDMXNhV2RvZEMxbmNtVmxiaTAzTURBNklDTTJPRGxHTXpnN1hHNGdJQzB0YldRdGJHbG5hSFF0WjNKbFpXNHRPREF3T2lBak5UVTRRakpHTzF4dUlDQXRMVzFrTFd4cFoyaDBMV2R5WldWdUxUa3dNRG9nSXpNek5qa3hSVHRjYmlBZ0xTMXRaQzFzYVdkb2RDMW5jbVZsYmkxQk1UQXdPaUFqUTBOR1Jqa3dPMXh1SUNBdExXMWtMV3hwWjJoMExXZHlaV1Z1TFVFeU1EQTZJQ05DTWtaR05UazdYRzRnSUMwdGJXUXRiR2xuYUhRdFozSmxaVzR0UVRRd01Eb2dJemMyUmtZd016dGNiaUFnTFMxdFpDMXNhV2RvZEMxbmNtVmxiaTFCTnpBd09pQWpOalJFUkRFM08xeHVYRzRnSUMwdGJXUXRiR2x0WlMwMU1Eb2dJMFk1UmtKRk56dGNiaUFnTFMxdFpDMXNhVzFsTFRFd01Eb2dJMFl3UmpSRE16dGNiaUFnTFMxdFpDMXNhVzFsTFRJd01Eb2dJMFUyUlVVNVF6dGNiaUFnTFMxdFpDMXNhVzFsTFRNd01Eb2dJMFJEUlRjM05UdGNiaUFnTFMxdFpDMXNhVzFsTFRRd01Eb2dJMFEwUlRFMU56dGNiaUFnTFMxdFpDMXNhVzFsTFRVd01Eb2dJME5FUkVNek9UdGNiaUFnTFMxdFpDMXNhVzFsTFRZd01Eb2dJME13UTBFek16dGNiaUFnTFMxdFpDMXNhVzFsTFRjd01Eb2dJMEZHUWpReVFqdGNiaUFnTFMxdFpDMXNhVzFsTFRnd01Eb2dJemxGT1VReU5EdGNiaUFnTFMxdFpDMXNhVzFsTFRrd01Eb2dJemd5TnpjeE56dGNiaUFnTFMxdFpDMXNhVzFsTFVFeE1EQTZJQ05HTkVaR09ERTdYRzRnSUMwdGJXUXRiR2x0WlMxQk1qQXdPaUFqUlVWR1JqUXhPMXh1SUNBdExXMWtMV3hwYldVdFFUUXdNRG9nSTBNMlJrWXdNRHRjYmlBZ0xTMXRaQzFzYVcxbExVRTNNREE2SUNOQlJVVkJNREE3WEc1Y2JpQWdMUzF0WkMxNVpXeHNiM2N0TlRBNklDTkdSa1pFUlRjN1hHNGdJQzB0YldRdGVXVnNiRzkzTFRFd01Eb2dJMFpHUmpsRE5EdGNiaUFnTFMxdFpDMTVaV3hzYjNjdE1qQXdPaUFqUmtaR05UbEVPMXh1SUNBdExXMWtMWGxsYkd4dmR5MHpNREE2SUNOR1JrWXhOelk3WEc0Z0lDMHRiV1F0ZVdWc2JHOTNMVFF3TURvZ0kwWkdSVVUxT0R0Y2JpQWdMUzF0WkMxNVpXeHNiM2N0TlRBd09pQWpSa1pGUWpOQ08xeHVJQ0F0TFcxa0xYbGxiR3h2ZHkwMk1EQTZJQ05HUkVRNE16VTdYRzRnSUMwdGJXUXRlV1ZzYkc5M0xUY3dNRG9nSTBaQ1F6QXlSRHRjYmlBZ0xTMXRaQzE1Wld4c2IzY3RPREF3T2lBalJqbEJPREkxTzF4dUlDQXRMVzFrTFhsbGJHeHZkeTA1TURBNklDTkdOVGRHTVRjN1hHNGdJQzB0YldRdGVXVnNiRzkzTFVFeE1EQTZJQ05HUmtaR09FUTdYRzRnSUMwdGJXUXRlV1ZzYkc5M0xVRXlNREE2SUNOR1JrWkdNREE3WEc0Z0lDMHRiV1F0ZVdWc2JHOTNMVUUwTURBNklDTkdSa1ZCTURBN1hHNGdJQzB0YldRdGVXVnNiRzkzTFVFM01EQTZJQ05HUmtRMk1EQTdYRzVjYmlBZ0xTMXRaQzFoYldKbGNpMDFNRG9nSTBaR1JqaEZNVHRjYmlBZ0xTMXRaQzFoYldKbGNpMHhNREE2SUNOR1JrVkRRak03WEc0Z0lDMHRiV1F0WVcxaVpYSXRNakF3T2lBalJrWkZNRGd5TzF4dUlDQXRMVzFrTFdGdFltVnlMVE13TURvZ0kwWkdSRFUwUmp0Y2JpQWdMUzF0WkMxaGJXSmxjaTAwTURBNklDTkdSa05CTWpnN1hHNGdJQzB0YldRdFlXMWlaWEl0TlRBd09pQWpSa1pETVRBM08xeHVJQ0F0TFcxa0xXRnRZbVZ5TFRZd01Eb2dJMFpHUWpNd01EdGNiaUFnTFMxdFpDMWhiV0psY2kwM01EQTZJQ05HUmtFd01EQTdYRzRnSUMwdGJXUXRZVzFpWlhJdE9EQXdPaUFqUmtZNFJqQXdPMXh1SUNBdExXMWtMV0Z0WW1WeUxUa3dNRG9nSTBaR05rWXdNRHRjYmlBZ0xTMXRaQzFoYldKbGNpMUJNVEF3T2lBalJrWkZOVGRHTzF4dUlDQXRMVzFrTFdGdFltVnlMVUV5TURBNklDTkdSa1EzTkRBN1hHNGdJQzB0YldRdFlXMWlaWEl0UVRRd01Eb2dJMFpHUXpRd01EdGNiaUFnTFMxdFpDMWhiV0psY2kxQk56QXdPaUFqUmtaQlFqQXdPMXh1WEc0Z0lDMHRiV1F0YjNKaGJtZGxMVFV3T2lBalJrWkdNMFV3TzF4dUlDQXRMVzFrTFc5eVlXNW5aUzB4TURBNklDTkdSa1V3UWpJN1hHNGdJQzB0YldRdGIzSmhibWRsTFRJd01Eb2dJMFpHUTBNNE1EdGNiaUFnTFMxdFpDMXZjbUZ1WjJVdE16QXdPaUFqUmtaQ056UkVPMXh1SUNBdExXMWtMVzl5WVc1blpTMDBNREE2SUNOR1JrRTNNalk3WEc0Z0lDMHRiV1F0YjNKaGJtZGxMVFV3TURvZ0kwWkdPVGd3TUR0Y2JpQWdMUzF0WkMxdmNtRnVaMlV0TmpBd09pQWpSa0k0UXpBd08xeHVJQ0F0TFcxa0xXOXlZVzVuWlMwM01EQTZJQ05HTlRkRE1EQTdYRzRnSUMwdGJXUXRiM0poYm1kbExUZ3dNRG9nSTBWR05rTXdNRHRjYmlBZ0xTMXRaQzF2Y21GdVoyVXRPVEF3T2lBalJUWTFNVEF3TzF4dUlDQXRMVzFrTFc5eVlXNW5aUzFCTVRBd09pQWpSa1pFTVRnd08xeHVJQ0F0TFcxa0xXOXlZVzVuWlMxQk1qQXdPaUFqUmtaQlFqUXdPMXh1SUNBdExXMWtMVzl5WVc1blpTMUJOREF3T2lBalJrWTVNVEF3TzF4dUlDQXRMVzFrTFc5eVlXNW5aUzFCTnpBd09pQWpSa1kyUkRBd08xeHVYRzRnSUMwdGJXUXRaR1ZsY0MxdmNtRnVaMlV0TlRBNklDTkdRa1U1UlRjN1hHNGdJQzB0YldRdFpHVmxjQzF2Y21GdVoyVXRNVEF3T2lBalJrWkRRMEpETzF4dUlDQXRMVzFrTFdSbFpYQXRiM0poYm1kbExUSXdNRG9nSTBaR1FVSTVNVHRjYmlBZ0xTMXRaQzFrWldWd0xXOXlZVzVuWlMwek1EQTZJQ05HUmpoQk5qVTdYRzRnSUMwdGJXUXRaR1ZsY0MxdmNtRnVaMlV0TkRBd09pQWpSa1kzTURRek8xeHVJQ0F0TFcxa0xXUmxaWEF0YjNKaGJtZGxMVFV3TURvZ0kwWkdOVGN5TWp0Y2JpQWdMUzF0WkMxa1pXVndMVzl5WVc1blpTMDJNREE2SUNOR05EVXhNVVU3WEc0Z0lDMHRiV1F0WkdWbGNDMXZjbUZ1WjJVdE56QXdPaUFqUlRZMFFURTVPMXh1SUNBdExXMWtMV1JsWlhBdGIzSmhibWRsTFRnd01Eb2dJMFE0TkRNeE5UdGNiaUFnTFMxdFpDMWtaV1Z3TFc5eVlXNW5aUzA1TURBNklDTkNSak0yTUVNN1hHNGdJQzB0YldRdFpHVmxjQzF2Y21GdVoyVXRRVEV3TURvZ0kwWkdPVVU0TUR0Y2JpQWdMUzF0WkMxa1pXVndMVzl5WVc1blpTMUJNakF3T2lBalJrWTJSVFF3TzF4dUlDQXRMVzFrTFdSbFpYQXRiM0poYm1kbExVRTBNREE2SUNOR1JqTkVNREE3WEc0Z0lDMHRiV1F0WkdWbGNDMXZjbUZ1WjJVdFFUY3dNRG9nSTBSRU1rTXdNRHRjYmx4dUlDQXRMVzFrTFdKeWIzZHVMVFV3T2lBalJVWkZRa1U1TzF4dUlDQXRMVzFrTFdKeWIzZHVMVEV3TURvZ0kwUTNRME5ET0R0Y2JpQWdMUzF0WkMxaWNtOTNiaTB5TURBNklDTkNRMEZCUVRRN1hHNGdJQzB0YldRdFluSnZkMjR0TXpBd09pQWpRVEU0T0RkR08xeHVJQ0F0TFcxa0xXSnliM2R1TFRRd01Eb2dJemhFTmtVMk16dGNiaUFnTFMxdFpDMWljbTkzYmkwMU1EQTZJQ00zT1RVMU5EZzdYRzRnSUMwdGJXUXRZbkp2ZDI0dE5qQXdPaUFqTmtRMFF6UXhPMXh1SUNBdExXMWtMV0p5YjNkdUxUY3dNRG9nSXpWRU5EQXpOenRjYmlBZ0xTMXRaQzFpY205M2JpMDRNREE2SUNNMFJUTTBNa1U3WEc0Z0lDMHRiV1F0WW5KdmQyNHRPVEF3T2lBak0wVXlOekl6TzF4dVhHNGdJQzB0YldRdFozSmxlUzAxTURvZ0kwWkJSa0ZHUVR0Y2JpQWdMUzF0WkMxbmNtVjVMVEV3TURvZ0kwWTFSalZHTlR0Y2JpQWdMUzF0WkMxbmNtVjVMVEl3TURvZ0kwVkZSVVZGUlR0Y2JpQWdMUzF0WkMxbmNtVjVMVE13TURvZ0kwVXdSVEJGTUR0Y2JpQWdMUzF0WkMxbmNtVjVMVFF3TURvZ0kwSkVRa1JDUkR0Y2JpQWdMUzF0WkMxbmNtVjVMVFV3TURvZ0l6bEZPVVU1UlR0Y2JpQWdMUzF0WkMxbmNtVjVMVFl3TURvZ0l6YzFOelUzTlR0Y2JpQWdMUzF0WkMxbmNtVjVMVGN3TURvZ0l6WXhOakUyTVR0Y2JpQWdMUzF0WkMxbmNtVjVMVGd3TURvZ0l6UXlOREkwTWp0Y2JpQWdMUzF0WkMxbmNtVjVMVGt3TURvZ0l6SXhNakV5TVR0Y2JseHVJQ0F0TFcxa0xXSnNkV1V0WjNKbGVTMDFNRG9nSTBWRFJVWkdNVHRjYmlBZ0xTMXRaQzFpYkhWbExXZHlaWGt0TVRBd09pQWpRMFpFT0VSRE8xeHVJQ0F0TFcxa0xXSnNkV1V0WjNKbGVTMHlNREE2SUNOQ01FSkZRelU3WEc0Z0lDMHRiV1F0WW14MVpTMW5jbVY1TFRNd01Eb2dJemt3UVRSQlJUdGNiaUFnTFMxdFpDMWliSFZsTFdkeVpYa3ROREF3T2lBak56ZzVNRGxETzF4dUlDQXRMVzFrTFdKc2RXVXRaM0psZVMwMU1EQTZJQ00yTURkRU9FSTdYRzRnSUMwdGJXUXRZbXgxWlMxbmNtVjVMVFl3TURvZ0l6VTBOa1UzUVR0Y2JpQWdMUzF0WkMxaWJIVmxMV2R5WlhrdE56QXdPaUFqTkRVMVFUWTBPMXh1SUNBdExXMWtMV0pzZFdVdFozSmxlUzA0TURBNklDTXpOelEzTkVZN1hHNGdJQzB0YldRdFlteDFaUzFuY21WNUxUa3dNRG9nSXpJMk16SXpPRHRjYm4waUxDSXZLaUJEYjNCNWNtbG5hSFFnS0dNcElFcDFjSGwwWlhJZ1JHVjJaV3h2Y0cxbGJuUWdWR1ZoYlM1Y2JpQXFJRVJwYzNSeWFXSjFkR1ZrSUhWdVpHVnlJSFJvWlNCMFpYSnRjeUJ2WmlCMGFHVWdUVzlrYVdacFpXUWdRbE5FSUV4cFkyVnVjMlV1WEc0Z0tpOWNibHh1THlwY2JpQXFJRmRsSUdGemMzVnRaU0IwYUdGMElIUm9aU0JEVTFNZ2RtRnlhV0ZpYkdWeklHbHVYRzRnS2lCb2RIUndjem92TDJkcGRHaDFZaTVqYjIwdmFuVndlWFJsY214aFlpOXFkWEI1ZEdWeWJHRmlMMkpzYjJJdmJXRnpkR1Z5TDNOeVl5OWtaV1poZFd4MExYUm9aVzFsTDNaaGNtbGhZbXhsY3k1amMzTmNiaUFxSUdoaGRtVWdZbVZsYmlCa1pXWnBibVZrTGx4dUlDb3ZYRzVjYmtCcGJYQnZjblFnWENJdUwzQm9iM053YUc5eUxtTnpjMXdpTzF4dVhHNDZjbTl2ZENCN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxXTnZiRzl5T2lCMllYSW9MUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRiR0ZpWld3dFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WTI5c2IzSXBPMXh1SUNBZ0lDMHRhbkF0ZDJsa1oyVjBjeTF5WldGa2IzVjBMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXTnZiRzl5S1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdFptOXVkQzF6YVhwbE9pQjJZWElvTFMxcWNDMTFhUzFtYjI1MExYTnBlbVV4S1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGJXRnlaMmx1T2lBeWNIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRNklESTRjSGc3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFEb2dNekF3Y0hnN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxM2FXUjBhQzF6YUc5eWREb2dZMkZzWXloMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFDa2dMeUF5SUMwZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxdFlYSm5hVzRwS1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFhkcFpIUm9MWFJwYm5rNklHTmhiR01vZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdndGMyaHZjblFwSUM4Z01pQXRJSFpoY2lndExXcHdMWGRwWkdkbGRITXRiV0Z5WjJsdUtTazdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMXRZWEpuYVc0NklEUndlRHNnTHlvZ2JXRnlaMmx1SUdKbGRIZGxaVzRnYVc1c2FXNWxJR1ZzWlcxbGJuUnpJQ292WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFzWVdKbGJDMTNhV1IwYURvZ09EQndlRHRjYmlBZ0lDQXRMV3B3TFhkcFpHZGxkSE10WW05eVpHVnlMWGRwWkhSb09pQjJZWElvTFMxcWNDMWliM0prWlhJdGQybGtkR2dwTzF4dUlDQWdJQzB0YW5BdGQybGtaMlYwY3kxMlpYSjBhV05oYkMxb1pXbG5hSFE2SURJd01IQjRPMXh1SUNBZ0lDMHRhbkF0ZDJsa1oyVjBjeTFvYjNKcGVtOXVkR0ZzTFhSaFlpMW9aV2xuYUhRNklESTBjSGc3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdodmNtbDZiMjUwWVd3dGRHRmlMWGRwWkhSb09pQXhORFJ3ZUR0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGFHOXlhWHB2Ym5SaGJDMTBZV0l0ZEc5d0xXSnZjbVJsY2pvZ01uQjRPMXh1SUNBZ0lDMHRhbkF0ZDJsa1oyVjBjeTF3Y205bmNtVnpjeTEwYUdsamEyNWxjM002SURJd2NIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMV052Ym5SaGFXNWxjaTF3WVdSa2FXNW5PaUF4TlhCNE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxd1lXUmthVzVuT2lBMGNIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMWEpoWkdsdkxXbDBaVzB0YUdWcFoyaDBMV0ZrYW5WemRHMWxiblE2SURod2VEdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRjbUZrYVc4dGFYUmxiUzFvWldsbmFIUTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLU0F0SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Y21Ga2FXOHRhWFJsYlMxb1pXbG5hSFF0WVdScWRYTjBiV1Z1ZENrcE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56T2lBMGNIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWliM0prWlhJdGQybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WW05eVpHVnlMWGRwWkhSb0tUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXaGhibVJzWlMxemFYcGxPaUF4Tm5CNE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGFHRnVaR3hsTFdKdmNtUmxjaTFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRZbTl5WkdWeUxXTnZiRzl5TVNrN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxb1lXNWtiR1V0WW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1TazdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWhZM1JwZG1VdGFHRnVaR3hsTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzFpY21GdVpDMWpiMnh2Y2pFcE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXRaVzUxTFdsMFpXMHRhR1ZwWjJoME9pQXlOSEI0TzF4dUlDQWdJQzB0YW5BdGQybGtaMlYwY3kxa2NtOXdaRzkzYmkxaGNuSnZkem9nZFhKc0tGd2laR0YwWVRwcGJXRm5aUzl6ZG1jcmVHMXNPMkpoYzJVMk5DeFFSRGswWWxkM1oyUnRWbmxqTW14Mlltb3dhVTFUTkhkSmFVSnNZbTFPZGxwSGJIVmFlakJwWkZoU2JVeFVaMmxRZWpSTFVFTkZkRXhUUWtoYVZ6VnNZMjFHTUdJelNUWkpSVVpyWWpKS2JFbEZiSE5pU0ZaNlpFaEthR1JIT1hsSlJFVTFUR3BKZFUxVGQyZFZNVnBJU1VWV05HTkhPWGxrUTBKUllraFdia3hWYkhWSlF6Um5WVEZhU0VsR1dteGpiazV3WWpJME5rbEVXWFZOUkVGblVXNVdjR0pIVVdkTlEydG5TVU13ZEZCbmJ6aGpNMXB1U1VoYWJHTnVUbkJpTWpRNVNXcEZkVTFUU1dkaFYxRTVTV3Q0YUdWWFZubFlla1ZwU1Vob2RHSkhOWHBRVTBwdlpFaFNkMDlwT0haa00yUXpURzVqZWt4dE9YbGFlVGg1VFVSQmQwd3pUakphZVVsblpVY3hjMkp1VFRabFIzaHdZbTF6T1VsdGFEQmtTRUUyVEhrNU0yUXpZM1ZrZWsxMVlqTktia3g2UlRWUFZHdDJaVWQ0Y0dKdGMybEpTR2M1U1dwQ2QyVkRTV2RsVkRCcFRVaENORWxuYjBwSlNGcHdXbGhrUTJJelp6bEpha0ZuVFVOQmVFOURRWGhQUTBsbll6TlNOV0pIVlRsSmJWWjFXVmRLYzFwVE1XbFpWMDV5V2pOS2RtUlhOV3RQYlRWc1pIbEJkMGxFUVdkTlZHZG5UVlJuTjBscFFqUmlWM2MyWXpOQ2FGa3lWVGxKYmtKNVdsaE9iR051V214SmFqUkxVRWhPTUdWWGVHeEpTRkkxWTBkVk9VbHVVbXhsU0ZGMldUTk9la2xxTkV0RFV6VjZaRVJDTjFwdGJITmlSSEIxWWpJMWJFOHpNRXRRUXpsNlpFaHNjMXBVTkV0UVNFSm9aRWRuWjFwRU1HbFVWRlYxVFdsM01VeHFiRTFQVTNjMVRHcGtjMDE1TkRSTVZFMTFUMGQzZUV4cVNYTk5VelI1WWtNd01FeHFhM05PVjNkMFRrTTBOVXhVVmsxT1V6UjVURVJWZFU5WWIybE1lalJMVUVoQ2FHUkhaMmRaTW5ob1l6Tk5PVWx1VGpCTlEwbG5Xa1F3YVZSVVFYUk5RelF5WVVSRk5HUnFSVFJUUkVKWFRGUkJkVTV1YjJsTWVqUkxVRU01ZW1SdFl5dERaMXdpS1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0WTI5c2IzSTZJSFpoY2lndExXcHdMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNU2s3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV0p2Y21SbGNpMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdFltOXlaR1Z5TFdOdmJHOXlNU2s3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV1p2WTNWekxXSnZjbVJsY2kxamIyeHZjam9nZG1GeUtDMHRhbkF0WW5KaGJtUXRZMjlzYjNJeUtUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV0p2Y21SbGNpMTNhV1IwYUNrN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxXUnBjMkZpYkdWa0xXOXdZV05wZEhrNklEQXVOanRjYmx4dUlDQWdJQzhxSUVaeWIyMGdUV0YwWlhKcFlXd2dSR1Z6YVdkdUlFeHBkR1VnS2k5Y2JpQWdJQ0F0TFcxa0xYTm9ZV1J2ZHkxclpYa3RkVzFpY21FdGIzQmhZMmwwZVRvZ01DNHlPMXh1SUNBZ0lDMHRiV1F0YzJoaFpHOTNMV3RsZVMxd1pXNTFiV0p5WVMxdmNHRmphWFI1T2lBd0xqRTBPMXh1SUNBZ0lDMHRiV1F0YzJoaFpHOTNMV0Z0WW1sbGJuUXRjMmhoWkc5M0xXOXdZV05wZEhrNklEQXVNVEk3WEc1OVhHNWNiaTVxZFhCNWRHVnlMWGRwWkdkbGRITWdlMXh1SUNBZ0lHMWhjbWRwYmpvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxdFlYSm5hVzRwTzF4dUlDQWdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRZMjlzYjNJcE8xeHVJQ0FnSUc5MlpYSm1iRzkzT2lCMmFYTnBZbXhsTzF4dWZWeHVYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpMbXAxY0hsMFpYSXRkMmxrWjJWMGN5MWthWE5qYjI1dVpXTjBaV1E2T21KbFptOXlaU0I3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ2FHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1ZlZ4dVhHNHVhbkF0VDNWMGNIVjBMWEpsYzNWc2RDQStJQzVxZFhCNWRHVnlMWGRwWkdkbGRITWdlMXh1SUNBZ0lHMWhjbWRwYmkxc1pXWjBPaUF3TzF4dUlDQWdJRzFoY21kcGJpMXlhV2RvZERvZ01EdGNibjFjYmx4dUx5b2dkbUp2ZUNCaGJtUWdhR0p2ZUNBcUwxeHVYRzR1ZDJsa1oyVjBMV2x1YkdsdVpTMW9ZbTk0SUh0Y2JpQWdJQ0F2S2lCSWIzSnBlbTl1ZEdGc0lIZHBaR2RsZEhNZ0tpOWNiaUFnSUNCaWIzZ3RjMmw2YVc1bk9pQmliM0prWlhJdFltOTRPMXh1SUNBZ0lHUnBjM0JzWVhrNklHWnNaWGc3WEc0Z0lDQWdabXhsZUMxa2FYSmxZM1JwYjI0NklISnZkenRjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWW1GelpXeHBibVU3WEc1OVhHNWNiaTUzYVdSblpYUXRhVzVzYVc1bExYWmliM2dnZTF4dUlDQWdJQzhxSUZabGNuUnBZMkZzSUZkcFpHZGxkSE1nS2k5Y2JpQWdJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeHVJQ0FnSUdScGMzQnNZWGs2SUdac1pYZzdYRzRnSUNBZ1pteGxlQzFrYVhKbFkzUnBiMjQ2SUdOdmJIVnRianRjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWTJWdWRHVnlPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXSnZlQ0I3WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeHVJQ0FnSUcxaGNtZHBiam9nTUR0Y2JpQWdJQ0J2ZG1WeVpteHZkem9nWVhWMGJ6dGNibjFjYmx4dUxuZHBaR2RsZEMxbmNtbGtZbTk0SUh0Y2JpQWdJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeHVJQ0FnSUdScGMzQnNZWGs2SUdkeWFXUTdYRzRnSUNBZ2JXRnlaMmx1T2lBd08xeHVJQ0FnSUc5MlpYSm1iRzkzT2lCaGRYUnZPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXaGliM2dnZTF4dUlDQWdJR1pzWlhndFpHbHlaV04wYVc5dU9pQnliM2M3WEc1OVhHNWNiaTUzYVdSblpYUXRkbUp2ZUNCN1hHNGdJQ0FnWm14bGVDMWthWEpsWTNScGIyNDZJR052YkhWdGJqdGNibjFjYmx4dUx5b2dSMlZ1WlhKaGJDQkNkWFIwYjI0Z1UzUjViR2x1WnlBcUwxeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNGdlMXh1SUNBZ0lIQmhaR1JwYm1jdGJHVm1kRG9nTVRCd2VEdGNiaUFnSUNCd1lXUmthVzVuTFhKcFoyaDBPaUF4TUhCNE8xeHVJQ0FnSUhCaFpHUnBibWN0ZEc5d09pQXdjSGc3WEc0Z0lDQWdjR0ZrWkdsdVp5MWliM1IwYjIwNklEQndlRHRjYmlBZ0lDQmthWE53YkdGNU9pQnBibXhwYm1VdFlteHZZMnM3WEc0Z0lDQWdkMmhwZEdVdGMzQmhZMlU2SUc1dmQzSmhjRHRjYmlBZ0lDQnZkbVZ5Wm14dmR6b2dhR2xrWkdWdU8xeHVJQ0FnSUhSbGVIUXRiM1psY21ac2IzYzZJR1ZzYkdsd2MybHpPMXh1SUNBZ0lIUmxlSFF0WVd4cFoyNDZJR05sYm5SbGNqdGNiaUFnSUNCbWIyNTBMWE5wZW1VNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdFptOXVkQzF6YVhwbEtUdGNiaUFnSUNCamRYSnpiM0k2SUhCdmFXNTBaWEk3WEc1Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzVzYVc1bExXaGxhV2RvZENrN1hHNGdJQ0FnWW05eVpHVnlPaUF3Y0hnZ2MyOXNhV1E3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ1ltOTRMWE5vWVdSdmR6b2dibTl1WlR0Y2JseHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzExYVMxbWIyNTBMV052Ykc5eU1TazdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNaWs3WEc0Z0lDQWdZbTl5WkdWeUxXTnZiRzl5T2lCMllYSW9MUzFxY0MxaWIzSmtaWEl0WTI5c2IzSXlLVHRjYmlBZ0lDQmliM0prWlhJNklHNXZibVU3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJpQnBMbVpoSUh0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFcxaGNtZHBiaWs3WEc0Z0lDQWdjRzlwYm5SbGNpMWxkbVZ1ZEhNNklHNXZibVU3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJqcGxiWEIwZVRwaVpXWnZjbVVnZTF4dUlDQWdJR052Ym5SbGJuUTZJRndpWEZ3eU1EQmlYQ0k3SUM4cUlIcGxjbTh0ZDJsa2RHZ2djM0JoWTJVZ0tpOWNibjFjYmx4dUxtcDFjSGwwWlhJdGQybGtaMlYwY3k1cWRYQjVkR1Z5TFdKMWRIUnZianBrYVhOaFlteGxaQ0I3WEc0Z0lDQWdiM0JoWTJsMGVUb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWthWE5oWW14bFpDMXZjR0ZqYVhSNUtUdGNibjFjYmx4dUxtcDFjSGwwWlhJdFluVjBkRzl1SUdrdVptRXVZMlZ1ZEdWeUlIdGNiaUFnSUNCdFlYSm5hVzR0Y21sbmFIUTZJREE3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJqcG9iM1psY2pwbGJtRmliR1ZrTENBdWFuVndlWFJsY2kxaWRYUjBiMjQ2Wm05amRYTTZaVzVoWW14bFpDQjdYRzRnSUNBZ0x5b2dUVVFnVEdsMFpTQXlaSEFnYzJoaFpHOTNJQ292WEc0Z0lDQWdZbTk0TFhOb1lXUnZkem9nTUNBeWNIZ2dNbkI0SURBZ2NtZGlZU2d3TENBd0xDQXdMQ0IyWVhJb0xTMXRaQzF6YUdGa2IzY3RhMlY1TFhCbGJuVnRZbkpoTFc5d1lXTnBkSGtwS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBd0lETndlQ0F4Y0hnZ0xUSndlQ0J5WjJKaEtEQXNJREFzSURBc0lIWmhjaWd0TFcxa0xYTm9ZV1J2ZHkxclpYa3RkVzFpY21FdGIzQmhZMmwwZVNrcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEQWdNWEI0SURWd2VDQXdJSEpuWW1Fb01Dd2dNQ3dnTUN3Z2RtRnlLQzB0YldRdGMyaGhaRzkzTFdGdFltbGxiblF0YzJoaFpHOTNMVzl3WVdOcGRIa3BLVHRjYm4xY2JseHVMbXAxY0hsMFpYSXRZblYwZEc5dU9tRmpkR2wyWlN3Z0xtcDFjSGwwWlhJdFluVjBkRzl1TG0xdlpDMWhZM1JwZG1VZ2UxeHVJQ0FnSUM4cUlFMUVJRXhwZEdVZ05HUndJSE5vWVdSdmR5QXFMMXh1SUNBZ0lHSnZlQzF6YUdGa2IzYzZJREFnTkhCNElEVndlQ0F3SUhKblltRW9NQ3dnTUN3Z01Dd2dkbUZ5S0MwdGJXUXRjMmhoWkc5M0xXdGxlUzF3Wlc1MWJXSnlZUzF2Y0dGamFYUjVLU2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTUNBeGNIZ2dNVEJ3ZUNBd0lISm5ZbUVvTUN3Z01Dd2dNQ3dnZG1GeUtDMHRiV1F0YzJoaFpHOTNMV0Z0WW1sbGJuUXRjMmhoWkc5M0xXOXdZV05wZEhrcEtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXdJREp3ZUNBMGNIZ2dMVEZ3ZUNCeVoySmhLREFzSURBc0lEQXNJSFpoY2lndExXMWtMWE5vWVdSdmR5MXJaWGt0ZFcxaWNtRXRiM0JoWTJsMGVTa3BPMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxMWFTMW1iMjUwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRiR0Y1YjNWMExXTnZiRzl5TXlrN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFdKMWRIUnZianBtYjJOMWN6cGxibUZpYkdWa0lIdGNiaUFnSUNCdmRYUnNhVzVsT2lBeGNIZ2djMjlzYVdRZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJuQjFkQzFtYjJOMWN5MWliM0prWlhJdFkyOXNiM0lwTzF4dWZWeHVYRzR2S2lCQ2RYUjBiMjRnWENKUWNtbHRZWEo1WENJZ1UzUjViR2x1WnlBcUwxeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNHViVzlrTFhCeWFXMWhjbmtnZTF4dUlDQWdJR052Ykc5eU9pQjJZWElvTFMxcWNDMXBiblpsY25ObExYVnBMV1p2Ym5RdFkyOXNiM0l4S1R0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzFpY21GdVpDMWpiMnh2Y2pFcE8xeHVmVnh1WEc0dWFuVndlWFJsY2kxaWRYUjBiMjR1Ylc5a0xYQnlhVzFoY25rdWJXOWtMV0ZqZEdsMlpTQjdYRzRnSUNBZ1kyOXNiM0k2SUhaaGNpZ3RMV3B3TFdsdWRtVnljMlV0ZFdrdFptOXVkQzFqYjJ4dmNqQXBPMXh1SUNBZ0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklIWmhjaWd0TFdwd0xXSnlZVzVrTFdOdmJHOXlNQ2s3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJpNXRiMlF0Y0hKcGJXRnllVHBoWTNScGRtVWdlMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxcGJuWmxjbk5sTFhWcExXWnZiblF0WTI5c2IzSXdLVHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMWljbUZ1WkMxamIyeHZjakFwTzF4dWZWeHVYRzR2S2lCQ2RYUjBiMjRnWENKVGRXTmpaWE56WENJZ1UzUjViR2x1WnlBcUwxeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNHViVzlrTFhOMVkyTmxjM01nZTF4dUlDQWdJR052Ykc5eU9pQjJZWElvTFMxcWNDMXBiblpsY25ObExYVnBMV1p2Ym5RdFkyOXNiM0l4S1R0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzF6ZFdOalpYTnpMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRjM1ZqWTJWemN5NXRiMlF0WVdOMGFYWmxJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNQ2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRjM1ZqWTJWemN5MWpiMnh2Y2pBcE8xeHVJSDFjYmx4dUxtcDFjSGwwWlhJdFluVjBkRzl1TG0xdlpDMXpkV05qWlhOek9tRmpkR2wyWlNCN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMV2x1ZG1WeWMyVXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFhOMVkyTmxjM010WTI5c2IzSXdLVHRjYmlCOVhHNWNiaUF2S2lCQ2RYUjBiMjRnWENKSmJtWnZYQ0lnVTNSNWJHbHVaeUFxTDF4dVhHNHVhblZ3ZVhSbGNpMWlkWFIwYjI0dWJXOWtMV2x1Wm04Z2UxeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzFwYm5abGNuTmxMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFxY0MxcGJtWnZMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRhVzVtYnk1dGIyUXRZV04wYVhabElIdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0YVc1MlpYSnpaUzExYVMxbWIyNTBMV052Ykc5eU1DazdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNW1ieTFqYjJ4dmNqQXBPMXh1ZlZ4dVhHNHVhblZ3ZVhSbGNpMWlkWFIwYjI0dWJXOWtMV2x1Wm04NllXTjBhWFpsSUh0Y2JpQWdJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRhVzUyWlhKelpTMTFhUzFtYjI1MExXTnZiRzl5TUNrN1hHNGdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0YVc1bWJ5MWpiMnh2Y2pBcE8xeHVmVnh1WEc0dktpQkNkWFIwYjI0Z1hDSlhZWEp1YVc1blhDSWdVM1I1YkdsdVp5QXFMMXh1WEc0dWFuVndlWFJsY2kxaWRYUjBiMjR1Ylc5a0xYZGhjbTVwYm1jZ2UxeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzFwYm5abGNuTmxMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFxY0MxM1lYSnVMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRkMkZ5Ym1sdVp5NXRiMlF0WVdOMGFYWmxJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNQ2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMkZ5YmkxamIyeHZjakFwTzF4dWZWeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNHViVzlrTFhkaGNtNXBibWM2WVdOMGFYWmxJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNQ2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMkZ5YmkxamIyeHZjakFwTzF4dWZWeHVYRzR2S2lCQ2RYUjBiMjRnWENKRVlXNW5aWEpjSWlCVGRIbHNhVzVuSUNvdlhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJpNXRiMlF0WkdGdVoyVnlJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRaWEp5YjNJdFkyOXNiM0l4S1R0Y2JuMWNibHh1TG1wMWNIbDBaWEl0WW5WMGRHOXVMbTF2WkMxa1lXNW5aWEl1Ylc5a0xXRmpkR2wyWlNCN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMV2x1ZG1WeWMyVXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFdWeWNtOXlMV052Ykc5eU1DazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRaR0Z1WjJWeU9tRmpkR2wyWlNCN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMV2x1ZG1WeWMyVXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFdWeWNtOXlMV052Ykc5eU1DazdYRzU5WEc1Y2JpOHFJRmRwWkdkbGRDQkNkWFIwYjI0cUwxeHVYRzR1ZDJsa1oyVjBMV0oxZEhSdmJpd2dMbmRwWkdkbGRDMTBiMmRuYkdVdFluVjBkRzl1SUh0Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGQybGtkR2d0YzJodmNuUXBPMXh1ZlZ4dVhHNHZLaUJYYVdSblpYUWdUR0ZpWld3Z1UzUjViR2x1WnlBcUwxeHVYRzR2S2lCUGRtVnljbWxrWlNCQ2IyOTBjM1J5WVhBZ2JHRmlaV3dnWTNOeklDb3ZYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpJR3hoWW1Wc0lIdGNiaUFnSUNCdFlYSm5hVzR0WW05MGRHOXRPaUJwYm1sMGFXRnNPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXeGhZbVZzTFdKaGMybGpJSHRjYmlBZ0lDQXZLaUJDWVhOcFl5Qk1ZV0psYkNBcUwxeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV3hoWW1Wc0xXTnZiRzl5S1R0Y2JpQWdJQ0JtYjI1MExYTnBlbVU2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Wm05dWRDMXphWHBsS1R0Y2JpQWdJQ0J2ZG1WeVpteHZkem9nYUdsa1pHVnVPMXh1SUNBZ0lIUmxlSFF0YjNabGNtWnNiM2M2SUdWc2JHbHdjMmx6TzF4dUlDQWdJSGRvYVhSbExYTndZV05sT2lCdWIzZHlZWEE3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGJHRmlaV3dnZTF4dUlDQWdJQzhxSUV4aFltVnNJQ292WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGJHRmlaV3d0WTI5c2IzSXBPMXh1SUNBZ0lHWnZiblF0YzJsNlpUb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MW1iMjUwTFhOcGVtVXBPMXh1SUNBZ0lHOTJaWEptYkc5M09pQm9hV1JrWlc0N1hHNGdJQ0FnZEdWNGRDMXZkbVZ5Wm14dmR6b2daV3hzYVhCemFYTTdYRzRnSUNBZ2QyaHBkR1V0YzNCaFkyVTZJRzV2ZDNKaGNEdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JuMWNibHh1TG5kcFpHZGxkQzFwYm14cGJtVXRhR0p2ZUNBdWQybGtaMlYwTFd4aFltVnNJSHRjYmlBZ0lDQXZLaUJJYjNKcGVtOXVkR0ZzSUZkcFpHZGxkQ0JNWVdKbGJDQXFMMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFd4aFltVnNMV052Ykc5eUtUdGNiaUFnSUNCMFpYaDBMV0ZzYVdkdU9pQnlhV2RvZER0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklHTmhiR01vSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMVzFoY21kcGJpa2dLaUF5SUNrN1hHNGdJQ0FnZDJsa2RHZzZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzVzYVc1bExXeGhZbVZzTFhkcFpIUm9LVHRjYmlBZ0lDQm1iR1Y0TFhOb2NtbHVhem9nTUR0Y2JuMWNibHh1TG5kcFpHZGxkQzFwYm14cGJtVXRkbUp2ZUNBdWQybGtaMlYwTFd4aFltVnNJSHRjYmlBZ0lDQXZLaUJXWlhKMGFXTmhiQ0JYYVdSblpYUWdUR0ZpWld3Z0tpOWNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFzWVdKbGJDMWpiMnh2Y2lrN1hHNGdJQ0FnZEdWNGRDMWhiR2xuYmpvZ1kyVnVkR1Z5TzF4dUlDQWdJR3hwYm1VdGFHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1ZlZ4dVhHNHZLaUJYYVdSblpYUWdVbVZoWkc5MWRDQlRkSGxzYVc1bklDb3ZYRzVjYmk1M2FXUm5aWFF0Y21WaFpHOTFkQ0I3WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGNtVmhaRzkxZEMxamIyeHZjaWs3WEc0Z0lDQWdabTl1ZEMxemFYcGxPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2s3WEc0Z0lDQWdhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dUlDQWdJR3hwYm1VdGFHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1SUNBZ0lHOTJaWEptYkc5M09pQm9hV1JrWlc0N1hHNGdJQ0FnZDJocGRHVXRjM0JoWTJVNklHNXZkM0poY0R0Y2JpQWdJQ0IwWlhoMExXRnNhV2R1T2lCalpXNTBaWEk3WEc1OVhHNWNiaTUzYVdSblpYUXRjbVZoWkc5MWRDNXZkbVZ5Wm14dmR5QjdYRzRnSUNBZ0x5b2dUM1psY21ac2IzZHBibWNnVW1WaFpHOTFkQ0FxTDF4dVhHNGdJQ0FnTHlvZ1JuSnZiU0JOWVhSbGNtbGhiQ0JFWlhOcFoyNGdUR2wwWlZ4dUlDQWdJQ0FnSUNCemFHRmtiM2N0YTJWNUxYVnRZbkpoTFc5d1lXTnBkSGs2SURBdU1qdGNiaUFnSUNBZ0lDQWdjMmhoWkc5M0xXdGxlUzF3Wlc1MWJXSnlZUzF2Y0dGamFYUjVPaUF3TGpFME8xeHVJQ0FnSUNBZ0lDQnphR0ZrYjNjdFlXMWlhV1Z1ZEMxemFHRmtiM2N0YjNCaFkybDBlVG9nTUM0eE1qdGNiaUFnSUNBZ0tpOWNiaUFnSUNBdGQyVmlhMmwwTFdKdmVDMXphR0ZrYjNjNklEQWdNbkI0SURKd2VDQXdJSEpuWW1Fb01Dd2dNQ3dnTUN3Z01DNHlLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJREFnTTNCNElERndlQ0F0TW5CNElISm5ZbUVvTUN3Z01Dd2dNQ3dnTUM0eE5Da3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXdJREZ3ZUNBMWNIZ2dNQ0J5WjJKaEtEQXNJREFzSURBc0lEQXVNVElwTzF4dVhHNGdJQ0FnTFcxdmVpMWliM2d0YzJoaFpHOTNPaUF3SURKd2VDQXljSGdnTUNCeVoySmhLREFzSURBc0lEQXNJREF1TWlrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F3SUROd2VDQXhjSGdnTFRKd2VDQnlaMkpoS0RBc0lEQXNJREFzSURBdU1UUXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ01DQXhjSGdnTlhCNElEQWdjbWRpWVNnd0xDQXdMQ0F3TENBd0xqRXlLVHRjYmx4dUlDQWdJR0p2ZUMxemFHRmtiM2M2SURBZ01uQjRJREp3ZUNBd0lISm5ZbUVvTUN3Z01Dd2dNQ3dnTUM0eUtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXdJRE53ZUNBeGNIZ2dMVEp3ZUNCeVoySmhLREFzSURBc0lEQXNJREF1TVRRcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEQWdNWEI0SURWd2VDQXdJSEpuWW1Fb01Dd2dNQ3dnTUN3Z01DNHhNaWs3WEc1OVhHNWNiaTUzYVdSblpYUXRhVzVzYVc1bExXaGliM2dnTG5kcFpHZGxkQzF5WldGa2IzVjBJSHRjYmlBZ0lDQXZLaUJJYjNKcGVtOXVkR0ZzSUZKbFlXUnZkWFFnS2k5Y2JpQWdJQ0IwWlhoMExXRnNhV2R1T2lCalpXNTBaWEk3WEc0Z0lDQWdiV0Y0TFhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUMxemFHOXlkQ2s3WEc0Z0lDQWdiV2x1TFhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUMxMGFXNTVLVHRjYmlBZ0lDQnRZWEpuYVc0dGJHVm1kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRiV0Z5WjJsdUtUdGNibjFjYmx4dUxuZHBaR2RsZEMxcGJteHBibVV0ZG1KdmVDQXVkMmxrWjJWMExYSmxZV1J2ZFhRZ2UxeHVJQ0FnSUM4cUlGWmxjblJwWTJGc0lGSmxZV1J2ZFhRZ0tpOWNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxdFlYSm5hVzRwTzF4dUlDQWdJQzhxSUdGeklIZHBaR1VnWVhNZ2RHaGxJSGRwWkdkbGRDQXFMMXh1SUNBZ0lIZHBaSFJvT2lCcGJtaGxjbWwwTzF4dWZWeHVYRzR2S2lCWGFXUm5aWFFnUTJobFkydGliM2dnVTNSNWJHbHVaeUFxTDF4dVhHNHVkMmxrWjJWMExXTm9aV05yWW05NElIdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdncE8xeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JuMWNibHh1TG5kcFpHZGxkQzFqYUdWamEySnZlQ0JwYm5CMWRGdDBlWEJsUFZ3aVkyaGxZMnRpYjNoY0lsMGdlMXh1SUNBZ0lHMWhjbWRwYmpvZ01IQjRJR05oYkdNb0lIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFcxaGNtZHBiaWtnS2lBeUlDa2dNSEI0SURCd2VEdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JpQWdJQ0JtYjI1MExYTnBlbVU2SUd4aGNtZGxPMXh1SUNBZ0lHWnNaWGd0WjNKdmR6b2dNVHRjYmlBZ0lDQm1iR1Y0TFhOb2NtbHVhem9nTUR0Y2JpQWdJQ0JoYkdsbmJpMXpaV3htT2lCalpXNTBaWEk3WEc1OVhHNWNiaThxSUZkcFpHZGxkQ0JXWVd4cFpDQlRkSGxzYVc1bklDb3ZYRzVjYmk1M2FXUm5aWFF0ZG1Gc2FXUWdlMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQnNhVzVsTFdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdndGMyaHZjblFwTzF4dUlDQWdJR1p2Ym5RdGMybDZaVG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFtYjI1MExYTnBlbVVwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFpoYkdsa0lHazZZbVZtYjNKbElIdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFcxaGNtZHBiaWs3WEc0Z0lDQWdiV0Z5WjJsdUxXeGxablE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMVzFoY21kcGJpazdYRzVjYmlBZ0lDQXZLaUJtY205dElIUm9aU0JtWVNCamJHRnpjeUJwYmlCR2IyNTBRWGRsYzI5dFpUb2dhSFIwY0hNNkx5OW5hWFJvZFdJdVkyOXRMMFp2Y25SQmQyVnpiMjFsTDBadmJuUXRRWGRsYzI5dFpTOWliRzlpTHpRNU1UQXdZemRqTTJFM1lqVTRaRFV3WW1GaE56RmxabVZtTVRGaFpqUXhZVFkyWWpBelpETXZZM056TDJadmJuUXRZWGRsYzI5dFpTNWpjM01qVERFMElDb3ZYRzRnSUNBZ1pHbHpjR3hoZVRvZ2FXNXNhVzVsTFdKc2IyTnJPMXh1SUNBZ0lHWnZiblE2SUc1dmNtMWhiQ0J1YjNKdFlXd2dibTl5YldGc0lERTBjSGd2TVNCR2IyNTBRWGRsYzI5dFpUdGNiaUFnSUNCbWIyNTBMWE5wZW1VNklHbHVhR1Z5YVhRN1hHNGdJQ0FnZEdWNGRDMXlaVzVrWlhKcGJtYzZJR0YxZEc4N1hHNGdJQ0FnTFhkbFltdHBkQzFtYjI1MExYTnRiMjkwYUdsdVp6b2dZVzUwYVdGc2FXRnpaV1E3WEc0Z0lDQWdMVzF2ZWkxdmMzZ3RabTl1ZEMxemJXOXZkR2hwYm1jNklHZHlZWGx6WTJGc1pUdGNibjFjYmx4dUxuZHBaR2RsZEMxMllXeHBaQzV0YjJRdGRtRnNhV1FnYVRwaVpXWnZjbVVnZTF4dUlDQWdJR052Ym5SbGJuUTZJRndpWEZ4bU1EQmpYQ0k3WEc0Z0lDQWdZMjlzYjNJNklHZHlaV1Z1TzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFpoYkdsa0xtMXZaQzFwYm5aaGJHbGtJR2s2WW1WbWIzSmxJSHRjYmlBZ0lDQmpiMjUwWlc1ME9pQmNJbHhjWmpBd1pGd2lPMXh1SUNBZ0lHTnZiRzl5T2lCeVpXUTdYRzU5WEc1Y2JpNTNhV1JuWlhRdGRtRnNhV1F1Ylc5a0xYWmhiR2xrSUM1M2FXUm5aWFF0ZG1Gc2FXUXRjbVZoWkc5MWRDQjdYRzRnSUNBZ1pHbHpjR3hoZVRvZ2JtOXVaVHRjYm4xY2JseHVMeW9nVjJsa1oyVjBJRlJsZUhRZ1lXNWtJRlJsZUhSQmNtVmhJRk4wZVdsdVp5QXFMMXh1WEc0dWQybGtaMlYwTFhSbGVIUmhjbVZoTENBdWQybGtaMlYwTFhSbGVIUWdlMXh1SUNBZ0lIZHBaSFJvT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGRHVjRkQ0JwYm5CMWRGdDBlWEJsUFZ3aWRHVjRkRndpWFN3Z0xuZHBaR2RsZEMxMFpYaDBJR2x1Y0hWMFczUjVjR1U5WENKdWRXMWlaWEpjSWwxN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVJQ0FnSUd4cGJtVXRhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFJsZUhRZ2FXNXdkWFJiZEhsd1pUMWNJblJsZUhSY0lsMDZaR2x6WVdKc1pXUXNJQzUzYVdSblpYUXRkR1Y0ZENCcGJuQjFkRnQwZVhCbFBWd2liblZ0WW1WeVhDSmRPbVJwYzJGaWJHVmtMQ0F1ZDJsa1oyVjBMWFJsZUhSaGNtVmhJSFJsZUhSaGNtVmhPbVJwYzJGaWJHVmtJSHRjYmlBZ0lDQnZjR0ZqYVhSNU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXUnBjMkZpYkdWa0xXOXdZV05wZEhrcE8xeHVmVnh1WEc0dWQybGtaMlYwTFhSbGVIUWdhVzV3ZFhSYmRIbHdaVDFjSW5SbGVIUmNJbDBzSUM1M2FXUm5aWFF0ZEdWNGRDQnBibkIxZEZ0MGVYQmxQVndpYm5WdFltVnlYQ0pkTENBdWQybGtaMlYwTFhSbGVIUmhjbVZoSUhSbGVIUmhjbVZoSUh0Y2JpQWdJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeHVJQ0FnSUdKdmNtUmxjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFdOdmJHOXlLVHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdKaFkydG5jbTkxYm1RdFkyOXNiM0lwTzF4dUlDQWdJR052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdOdmJHOXlLVHRjYmlBZ0lDQm1iMjUwTFhOcGVtVTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRabTl1ZEMxemFYcGxLVHRjYmlBZ0lDQndZV1JrYVc1bk9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwSUdOaGJHTW9JSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdGNHRmtaR2x1WnlrZ0tpQWdNaUFwTzF4dUlDQWdJR1pzWlhndFozSnZkem9nTVR0Y2JpQWdJQ0J0YVc0dGQybGtkR2c2SURBN0lDOHFJRlJvYVhNZ2JXRnJaWE1nYVhRZ2NHOXpjMmxpYkdVZ1ptOXlJSFJvWlNCbWJHVjRZbTk0SUhSdklITm9jbWx1YXlCMGFHbHpJR2x1Y0hWMElDb3ZYRzRnSUNBZ1pteGxlQzF6YUhKcGJtczZJREU3WEc0Z0lDQWdiM1YwYkdsdVpUb2dibTl1WlNBaGFXMXdiM0owWVc1ME8xeHVmVnh1WEc0dWQybGtaMlYwTFhSbGVIUmhjbVZoSUhSbGVIUmhjbVZoSUh0Y2JpQWdJQ0JvWldsbmFIUTZJR2x1YUdWeWFYUTdYRzRnSUNBZ2QybGtkR2c2SUdsdWFHVnlhWFE3WEc1OVhHNWNiaTUzYVdSblpYUXRkR1Y0ZENCcGJuQjFkRHBtYjJOMWN5d2dMbmRwWkdkbGRDMTBaWGgwWVhKbFlTQjBaWGgwWVhKbFlUcG1iMk4xY3lCN1hHNGdJQ0FnWW05eVpHVnlMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdadlkzVnpMV0p2Y21SbGNpMWpiMnh2Y2lrN1hHNTlYRzVjYmk4cUlGZHBaR2RsZENCVGJHbGtaWElnS2k5Y2JseHVMbmRwWkdkbGRDMXpiR2xrWlhJZ0xuVnBMWE5zYVdSbGNpQjdYRzRnSUNBZ0x5b2dVMnhwWkdWeUlGUnlZV05ySUNvdlhHNGdJQ0FnWW05eVpHVnlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMV3hoZVc5MWRDMWpiMnh2Y2pNcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RNklIWmhjaWd0TFdwd0xXeGhlVzkxZEMxamIyeHZjak1wTzF4dUlDQWdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hHNGdJQ0FnY0c5emFYUnBiMjQ2SUhKbGJHRjBhWFpsTzF4dUlDQWdJR0p2Y21SbGNpMXlZV1JwZFhNNklEQndlRHRjYm4xY2JseHVMbmRwWkdkbGRDMXpiR2xrWlhJZ0xuVnBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlMV2hoYm1Sc1pTQjdYRzRnSUNBZ0x5b2dVMnhwWkdWeUlFaGhibVJzWlNBcUwxeHVJQ0FnSUc5MWRHeHBibVU2SUc1dmJtVWdJV2x0Y0c5eWRHRnVkRHNnTHlvZ1ptOWpkWE5sWkNCemJHbGtaWElnYUdGdVpHeGxjeUJoY21VZ1kyOXNiM0psWkNBdElITmxaU0JpWld4dmR5QXFMMXh1SUNBZ0lIQnZjMmwwYVc5dU9pQmhZbk52YkhWMFpUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFvWVc1a2JHVXRZbUZqYTJkeWIzVnVaQzFqYjJ4dmNpazdYRzRnSUNBZ1ltOXlaR1Z5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFpYjNKa1pYSXRkMmxrZEdncElITnZiR2xrSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV2hoYm1Sc1pTMWliM0prWlhJdFkyOXNiM0lwTzF4dUlDQWdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hHNGdJQ0FnZWkxcGJtUmxlRG9nTVR0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdsdFlXZGxPaUJ1YjI1bE95QXZLaUJQZG1WeWNtbGtaU0JxY1hWbGNua3RkV2tnS2k5Y2JuMWNibHh1THlvZ1QzWmxjbkpwWkdVZ2FuRjFaWEo1TFhWcElDb3ZYRzR1ZDJsa1oyVjBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlJQzUxYVMxemJHbGtaWEl0YUdGdVpHeGxPbWh2ZG1WeUxDQXVkMmxrWjJWMExYTnNhV1JsY2lBdWRXa3RjMnhwWkdWeUlDNTFhUzF6Ykdsa1pYSXRhR0Z1Wkd4bE9tWnZZM1Z6SUh0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWhZM1JwZG1VdGFHRnVaR3hsTFdOdmJHOXlLVHRjYmlBZ0lDQmliM0prWlhJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGMyeHBaR1Z5TFdKdmNtUmxjaTEzYVdSMGFDa2djMjlzYVdRZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0WVdOMGFYWmxMV2hoYm1Sc1pTMWpiMnh2Y2lrN1hHNTlYRzVjYmk1M2FXUm5aWFF0YzJ4cFpHVnlJQzUxYVMxemJHbGtaWElnTG5WcExYTnNhV1JsY2kxb1lXNWtiR1U2WVdOMGFYWmxJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxaFkzUnBkbVV0YUdGdVpHeGxMV052Ykc5eUtUdGNiaUFnSUNCaWIzSmtaWEl0WTI5c2IzSTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXRmpkR2wyWlMxb1lXNWtiR1V0WTI5c2IzSXBPMXh1SUNBZ0lIb3RhVzVrWlhnNklESTdYRzRnSUNBZ2RISmhibk5tYjNKdE9pQnpZMkZzWlNneExqSXBPMXh1ZlZ4dVhHNHVkMmxrWjJWMExYTnNhV1JsY2lBZ0xuVnBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlMWEpoYm1kbElIdGNiaUFnSUNBdktpQkpiblJsY25aaGJDQmlaWFIzWldWdUlIUm9aU0IwZDI4Z2MzQmxZMmxtYVdWa0lIWmhiSFZsSUc5bUlHRWdaRzkxWW14bElITnNhV1JsY2lBcUwxeHVJQ0FnSUhCdmMybDBhVzl1T2lCaFluTnZiSFYwWlR0Y2JpQWdJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFoWTNScGRtVXRhR0Z1Wkd4bExXTnZiRzl5S1R0Y2JpQWdJQ0I2TFdsdVpHVjRPaUF3TzF4dWZWeHVYRzR2S2lCVGFHRndaWE1nYjJZZ1UyeHBaR1Z5SUVoaGJtUnNaWE1nS2k5Y2JseHVMbmRwWkdkbGRDMW9jMnhwWkdWeUlDNTFhUzF6Ykdsa1pYSWdMblZwTFhOc2FXUmxjaTFvWVc1a2JHVWdlMXh1SUNBZ0lIZHBaSFJvT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFvWVc1a2JHVXRjMmw2WlNrN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMW9ZVzVrYkdVdGMybDZaU2s3WEc0Z0lDQWdiV0Z5WjJsdUxYUnZjRG9nWTJGc1l5Z29kbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56S1NBdElIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGMyeHBaR1Z5TFdoaGJtUnNaUzF6YVhwbEtTa2dMeUF5SUMwZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ2JXRnlaMmx1TFd4bFpuUTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0YUdGdVpHeGxMWE5wZW1VcElDOGdMVElnS3lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFpYjNKa1pYSXRkMmxrZEdncEtUdGNiaUFnSUNCaWIzSmtaWEl0Y21Ga2FYVnpPaUExTUNVN1hHNGdJQ0FnZEc5d09pQXdPMXh1ZlZ4dVhHNHVkMmxrWjJWMExYWnpiR2xrWlhJZ0xuVnBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlMV2hoYm1Sc1pTQjdYRzRnSUNBZ2QybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV2hoYm1Sc1pTMXphWHBsS1R0Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXaGhibVJzWlMxemFYcGxLVHRjYmlBZ0lDQnRZWEpuYVc0dFltOTBkRzl0T2lCallXeGpLSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXaGhibVJzWlMxemFYcGxLU0F2SUMweUlDc2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdFltOXlaR1Z5TFhkcFpIUm9LU2s3WEc0Z0lDQWdiV0Z5WjJsdUxXeGxablE2SUdOaGJHTW9LSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxYUnlZV05yTFhSb2FXTnJibVZ6Y3lrZ0xTQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxb1lXNWtiR1V0YzJsNlpTa3BJQzhnTWlBdElIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGMyeHBaR1Z5TFdKdmNtUmxjaTEzYVdSMGFDa3BPMXh1SUNBZ0lHSnZjbVJsY2kxeVlXUnBkWE02SURVd0pUdGNiaUFnSUNCc1pXWjBPaUF3TzF4dWZWeHVYRzR1ZDJsa1oyVjBMV2h6Ykdsa1pYSWdMblZwTFhOc2FXUmxjaUF1ZFdrdGMyeHBaR1Z5TFhKaGJtZGxJSHRjYmlBZ0lDQm9aV2xuYUhRNklHTmhiR01vSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMWFJ5WVdOckxYUm9hV05yYm1WemN5a2dLaUF5SUNrN1hHNGdJQ0FnYldGeVoybHVMWFJ2Y0RvZ1kyRnNZeWdvZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRkSEpoWTJzdGRHaHBZMnR1WlhOektTQXRJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxYUnlZV05yTFhSb2FXTnJibVZ6Y3lrZ0tpQXlJQ2tnTHlBeUlDMGdkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdFltOXlaR1Z5TFhkcFpIUm9LU2s3WEc1OVhHNWNiaTUzYVdSblpYUXRkbk5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlJQzUxYVMxemJHbGtaWEl0Y21GdVoyVWdlMXh1SUNBZ0lIZHBaSFJvT2lCallXeGpLQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMTBjbUZqYXkxMGFHbGphMjVsYzNNcElDb2dNaUFwTzF4dUlDQWdJRzFoY21kcGJpMXNaV1owT2lCallXeGpLQ2gyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMTBjbUZqYXkxMGFHbGphMjVsYzNNcElDMGdkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56S1NBcUlESWdLU0F2SURJZ0xTQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxaWIzSmtaWEl0ZDJsa2RHZ3BLVHRjYm4xY2JseHVMeW9nU0c5eWFYcHZiblJoYkNCVGJHbGtaWElnS2k5Y2JseHVMbmRwWkdkbGRDMW9jMnhwWkdWeUlIdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdncE8xeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JseHVJQ0FnSUM4cUlFOTJaWEp5YVdSbElIUm9aU0JoYkdsbmJpMXBkR1Z0Y3lCaVlYTmxiR2x1WlM0Z1ZHaHBjeUIzWVhrc0lIUm9aU0JrWlhOamNtbHdkR2x2YmlCaGJtUWdjbVZoWkc5MWRGeHVJQ0FnSUhOMGFXeHNJSE5sWlcwZ2RHOGdZV3hwWjI0Z2RHaGxhWElnWW1GelpXeHBibVVnY0hKdmNHVnliSGtzSUdGdVpDQjNaU0JrYjI0bmRDQm9ZWFpsSUhSdklHaGhkbVZjYmlBZ0lDQmhiR2xuYmkxelpXeG1PaUJ6ZEhKbGRHTm9JR2x1SUhSb1pTQXVjMnhwWkdWeUxXTnZiblJoYVc1bGNpNGdLaTljYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWTJWdWRHVnlPMXh1ZlZ4dVhHNHVkMmxrWjJWMGN5MXpiR2xrWlhJZ0xuTnNhV1JsY2kxamIyNTBZV2x1WlhJZ2UxeHVJQ0FnSUc5MlpYSm1iRzkzT2lCMmFYTnBZbXhsTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV2h6Ykdsa1pYSWdMbk5zYVdSbGNpMWpiMjUwWVdsdVpYSWdlMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQnRZWEpuYVc0dGJHVm1kRG9nWTJGc1l5aDJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxb1lXNWtiR1V0YzJsNlpTa2dMeUF5SUMwZ01pQXFJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXSnZjbVJsY2kxM2FXUjBhQ2twTzF4dUlDQWdJRzFoY21kcGJpMXlhV2RvZERvZ1kyRnNZeWgyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMW9ZVzVrYkdVdGMybDZaU2tnTHlBeUlDMGdNaUFxSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV0p2Y21SbGNpMTNhV1IwYUNrcE8xeHVJQ0FnSUdac1pYZzZJREVnTVNCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFDMXphRzl5ZENrN1hHNTlYRzVjYmk1M2FXUm5aWFF0YUhOc2FXUmxjaUF1ZFdrdGMyeHBaR1Z5SUh0Y2JpQWdJQ0F2S2lCSmJtNWxjaXdnYVc1MmFYTnBZbXhsSUhOc2FXUmxJR1JwZGlBcUwxeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRkSEpoWTJzdGRHaHBZMnR1WlhOektUdGNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQmpZV3hqS0NoMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBJQzBnZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRkSEpoWTJzdGRHaHBZMnR1WlhOektTa2dMeUF5S1R0Y2JpQWdJQ0IzYVdSMGFEb2dNVEF3SlR0Y2JuMWNibHh1THlvZ1ZtVnlkR2xqWVd3Z1UyeHBaR1Z5SUNvdlhHNWNiaTUzYVdSblpYUXRkbUp2ZUNBdWQybGtaMlYwTFd4aFltVnNJSHRjYmlBZ0lDQm9aV2xuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFdobGFXZG9kQ2s3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGRuTnNhV1JsY2lCN1hHNGdJQ0FnTHlvZ1ZtVnlkR2xqWVd3Z1UyeHBaR1Z5SUNvdlhHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWFpsY25ScFkyRnNMV2hsYVdkb2RDazdYRzRnSUNBZ2QybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMWGRwWkhSb0xYUnBibmtwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFp6Ykdsa1pYSWdMbk5zYVdSbGNpMWpiMjUwWVdsdVpYSWdlMXh1SUNBZ0lHWnNaWGc2SURFZ01TQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxM2FXUjBhQzF6YUc5eWRDazdYRzRnSUNBZ2JXRnlaMmx1TFd4bFpuUTZJR0YxZEc4N1hHNGdJQ0FnYldGeVoybHVMWEpwWjJoME9pQmhkWFJ2TzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklHTmhiR01vZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRhR0Z1Wkd4bExYTnBlbVVwSUM4Z01pQXRJRElnS2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFpYjNKa1pYSXRkMmxrZEdncEtUdGNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQmpZV3hqS0haaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV2hoYm1Sc1pTMXphWHBsS1NBdklESWdMU0F5SUNvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ1pHbHpjR3hoZVRvZ1pteGxlRHRjYmlBZ0lDQm1iR1Y0TFdScGNtVmpkR2x2YmpvZ1kyOXNkVzF1TzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFp6Ykdsa1pYSWdMblZwTFhOc2FXUmxjaTEyWlhKMGFXTmhiQ0I3WEc0Z0lDQWdMeW9nU1c1dVpYSXNJR2x1ZG1semFXSnNaU0J6Ykdsa1pTQmthWFlnS2k5Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56S1R0Y2JpQWdJQ0JtYkdWNExXZHliM2M2SURFN1hHNGdJQ0FnYldGeVoybHVMV3hsWm5RNklHRjFkRzg3WEc0Z0lDQWdiV0Z5WjJsdUxYSnBaMmgwT2lCaGRYUnZPMXh1ZlZ4dVhHNHZLaUJYYVdSblpYUWdVSEp2WjNKbGMzTWdVM1I1YkdsdVp5QXFMMXh1WEc0dWNISnZaM0psYzNNdFltRnlJSHRjYmlBZ0lDQXRkMlZpYTJsMExYUnlZVzV6YVhScGIyNDZJRzV2Ym1VN1hHNGdJQ0FnTFcxdmVpMTBjbUZ1YzJsMGFXOXVPaUJ1YjI1bE8xeHVJQ0FnSUMxdGN5MTBjbUZ1YzJsMGFXOXVPaUJ1YjI1bE8xeHVJQ0FnSUMxdkxYUnlZVzV6YVhScGIyNDZJRzV2Ym1VN1hHNGdJQ0FnZEhKaGJuTnBkR2x2YmpvZ2JtOXVaVHRjYm4xY2JseHVMbkJ5YjJkeVpYTnpMV0poY2lCN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVmVnh1WEc0dWNISnZaM0psYzNNdFltRnlJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMWljbUZ1WkMxamIyeHZjakVwTzF4dWZWeHVYRzR1Y0hKdlozSmxjM010WW1GeUxYTjFZMk5sYzNNZ2UxeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFhOMVkyTmxjM010WTI5c2IzSXhLVHRjYm4xY2JseHVMbkJ5YjJkeVpYTnpMV0poY2kxcGJtWnZJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMXBibVp2TFdOdmJHOXlNU2s3WEc1OVhHNWNiaTV3Y205bmNtVnpjeTFpWVhJdGQyRnlibWx1WnlCN1hHNGdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJGeWJpMWpiMnh2Y2pFcE8xeHVmVnh1WEc0dWNISnZaM0psYzNNdFltRnlMV1JoYm1kbGNpQjdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdFpYSnliM0l0WTI5c2IzSXhLVHRjYm4xY2JseHVMbkJ5YjJkeVpYTnpJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMXNZWGx2ZFhRdFkyOXNiM0l5S1R0Y2JpQWdJQ0JpYjNKa1pYSTZJRzV2Ym1VN1hHNGdJQ0FnWW05NExYTm9ZV1J2ZHpvZ2JtOXVaVHRjYm4xY2JseHVMeW9nU0c5eWFYTnZiblJoYkNCUWNtOW5jbVZ6Y3lBcUwxeHVYRzR1ZDJsa1oyVjBMV2h3Y205bmNtVnpjeUI3WEc0Z0lDQWdMeW9nVUhKdlozSmxjM01nUW1GeUlDb3ZYRzRnSUNBZ2FHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVJQ0FnSUhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUNrN1hHNGdJQ0FnWVd4cFoyNHRhWFJsYlhNNklHTmxiblJsY2p0Y2JseHVmVnh1WEc0dWQybGtaMlYwTFdod2NtOW5jbVZ6Y3lBdWNISnZaM0psYzNNZ2UxeHVJQ0FnSUdac1pYZ3RaM0p2ZHpvZ01UdGNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwTzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0Y0dGa1pHbHVaeWs3WEc0Z0lDQWdZV3hwWjI0dGMyVnNaam9nYzNSeVpYUmphRHRjYmlBZ0lDQXZLaUJQZG1WeWNtbGtaU0JpYjI5MGMzUnlZWEFnYzNSNWJHVWdLaTljYmlBZ0lDQm9aV2xuYUhRNklHbHVhWFJwWVd3N1hHNTlYRzVjYmk4cUlGWmxjblJwWTJGc0lGQnliMmR5WlhOeklDb3ZYRzVjYmk1M2FXUm5aWFF0ZG5CeWIyZHlaWE56SUh0Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRkbVZ5ZEdsallXd3RhR1ZwWjJoMEtUdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdndGRHbHVlU2s3WEc1OVhHNWNiaTUzYVdSblpYUXRkbkJ5YjJkeVpYTnpJQzV3Y205bmNtVnpjeUI3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJSGRwWkhSb09pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYQnliMmR5WlhOekxYUm9hV05yYm1WemN5azdYRzRnSUNBZ2JXRnlaMmx1TFd4bFpuUTZJR0YxZEc4N1hHNGdJQ0FnYldGeVoybHVMWEpwWjJoME9pQmhkWFJ2TzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklEQTdYRzU5WEc1Y2JpOHFJRk5sYkdWamRDQlhhV1JuWlhRZ1UzUjViR2x1WnlBcUwxeHVYRzR1ZDJsa1oyVjBMV1J5YjNCa2IzZHVJSHRjYmlBZ0lDQm9aV2xuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFdobGFXZG9kQ2s3WEc0Z0lDQWdkMmxrZEdnNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFhkcFpIUm9LVHRjYmlBZ0lDQnNhVzVsTFdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNibjFjYmx4dUxuZHBaR2RsZEMxa2NtOXdaRzkzYmlBK0lITmxiR1ZqZENCN1hHNGdJQ0FnY0dGa1pHbHVaeTF5YVdkb2REb2dNakJ3ZUR0Y2JpQWdJQ0JpYjNKa1pYSTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFhkcFpIUm9LU0J6YjJ4cFpDQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdKdmNtUmxjaTFqYjJ4dmNpazdYRzRnSUNBZ1ltOXlaR1Z5TFhKaFpHbDFjem9nTUR0Y2JpQWdJQ0JvWldsbmFIUTZJR2x1YUdWeWFYUTdYRzRnSUNBZ1pteGxlRG9nTVNBeElIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFhkcFpIUm9MWE5vYjNKMEtUdGNiaUFnSUNCdGFXNHRkMmxrZEdnNklEQTdJQzhxSUZSb2FYTWdiV0ZyWlhNZ2FYUWdjRzl6YzJsaWJHVWdabTl5SUhSb1pTQm1iR1Y0WW05NElIUnZJSE5vY21sdWF5QjBhR2x6SUdsdWNIVjBJQ292WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdJQ0J2ZFhSc2FXNWxPaUJ1YjI1bElDRnBiWEJ2Y25SaGJuUTdYRzRnSUNBZ1ltOTRMWE5vWVdSdmR6b2dibTl1WlR0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSmhZMnRuY205MWJtUXRZMjlzYjNJcE8xeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXTnZiRzl5S1R0Y2JpQWdJQ0JtYjI1MExYTnBlbVU2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Wm05dWRDMXphWHBsS1R0Y2JpQWdJQ0IyWlhKMGFXTmhiQzFoYkdsbmJqb2dkRzl3TzF4dUlDQWdJSEJoWkdScGJtY3RiR1ZtZERvZ1kyRnNZeWdnZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMXdZV1JrYVc1bktTQXFJRElwTzF4dVhIUmhjSEJsWVhKaGJtTmxPaUJ1YjI1bE8xeHVYSFF0ZDJWaWEybDBMV0Z3Y0dWaGNtRnVZMlU2SUc1dmJtVTdYRzVjZEMxdGIzb3RZWEJ3WldGeVlXNWpaVG9nYm05dVpUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xYSmxjR1ZoZERvZ2JtOHRjbVZ3WldGME8xeHVYSFJpWVdOclozSnZkVzVrTFhOcGVtVTZJREl3Y0hnN1hHNWNkR0poWTJ0bmNtOTFibVF0Y0c5emFYUnBiMjQ2SUhKcFoyaDBJR05sYm5SbGNqdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXbHRZV2RsT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdSeWIzQmtiM2R1TFdGeWNtOTNLVHRjYm4xY2JpNTNhV1JuWlhRdFpISnZjR1J2ZDI0Z1BpQnpaV3hsWTNRNlptOWpkWE1nZTF4dUlDQWdJR0p2Y21SbGNpMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJuQjFkQzFtYjJOMWN5MWliM0prWlhJdFkyOXNiM0lwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV1J5YjNCa2IzZHVJRDRnYzJWc1pXTjBPbVJwYzJGaWJHVmtJSHRjYmlBZ0lDQnZjR0ZqYVhSNU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXUnBjMkZpYkdWa0xXOXdZV05wZEhrcE8xeHVmVnh1WEc0dktpQlVieUJrYVhOaFlteGxJSFJvWlNCa2IzUjBaV1FnWW05eVpHVnlJR2x1SUVacGNtVm1iM2dnWVhKdmRXNWtJSE5sYkdWamRDQmpiMjUwY205c2N5NWNiaUFnSUZObFpTQm9kSFJ3T2k4dmMzUmhZMnR2ZG1WeVpteHZkeTVqYjIwdllTOHhPRGcxTXpBd01pQXFMMXh1TG5kcFpHZGxkQzFrY205d1pHOTNiaUErSUhObGJHVmpkRG90Ylc5NkxXWnZZM1Z6Y21sdVp5QjdYRzRnSUNBZ1kyOXNiM0k2SUhSeVlXNXpjR0Z5Wlc1ME8xeHVJQ0FnSUhSbGVIUXRjMmhoWkc5M09pQXdJREFnTUNBak1EQXdPMXh1ZlZ4dVhHNHZLaUJUWld4bFkzUWdZVzVrSUZObGJHVmpkRTExYkhScGNHeGxJQ292WEc1Y2JpNTNhV1JuWlhRdGMyVnNaV04wSUh0Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGQybGtkR2dwTzF4dUlDQWdJR3hwYm1VdGFHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1WEc0Z0lDQWdMeW9nUW1WallYVnpaU0JHYVhKbFptOTRJR1JsWm1sdVpYTWdkR2hsSUdKaGMyVnNhVzVsSUc5bUlHRWdjMlZzWldOMElHRnpJSFJvWlNCaWIzUjBiMjBnYjJZZ2RHaGxYRzRnSUNBZ1kyOXVkSEp2YkN3Z2QyVWdZV3hwWjI0Z2RHaGxJR1Z1ZEdseVpTQmpiMjUwY205c0lIUnZJSFJvWlNCMGIzQWdZVzVrSUdGa1pDQndZV1JrYVc1bklIUnZJSFJvWlZ4dUlDQWdJSE5sYkdWamRDQjBieUJuWlhRZ1lXNGdZWEJ3Y205NGFXMWhkR1VnWm1seWMzUWdiR2x1WlNCaVlYTmxiR2x1WlNCaGJHbG5ibTFsYm5RdUlDb3ZYRzRnSUNBZ1lXeHBaMjR0YVhSbGJYTTZJR1pzWlhndGMzUmhjblE3WEc1OVhHNWNiaTUzYVdSblpYUXRjMlZzWldOMElENGdjMlZzWldOMElIdGNiaUFnSUNCaWIzSmtaWEk2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1d2RYUXRZbTl5WkdWeUxYZHBaSFJvS1NCemIyeHBaQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSnZjbVJsY2kxamIyeHZjaWs3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxaVlXTnJaM0p2ZFc1a0xXTnZiRzl5S1R0Y2JpQWdJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxamIyeHZjaWs3WEc0Z0lDQWdabTl1ZEMxemFYcGxPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2s3WEc0Z0lDQWdabXhsZURvZ01TQXhJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzVzYVc1bExYZHBaSFJvTFhOb2IzSjBLVHRjYmlBZ0lDQnZkWFJzYVc1bE9pQnViMjVsSUNGcGJYQnZjblJoYm5RN1hHNGdJQ0FnYjNabGNtWnNiM2M2SUdGMWRHODdYRzRnSUNBZ2FHVnBaMmgwT2lCcGJtaGxjbWwwTzF4dVhHNGdJQ0FnTHlvZ1FtVmpZWFZ6WlNCR2FYSmxabTk0SUdSbFptbHVaWE1nZEdobElHSmhjMlZzYVc1bElHOW1JR0VnYzJWc1pXTjBJR0Z6SUhSb1pTQmliM1IwYjIwZ2IyWWdkR2hsWEc0Z0lDQWdZMjl1ZEhKdmJDd2dkMlVnWVd4cFoyNGdkR2hsSUdWdWRHbHlaU0JqYjI1MGNtOXNJSFJ2SUhSb1pTQjBiM0FnWVc1a0lHRmtaQ0J3WVdSa2FXNW5JSFJ2SUhSb1pWeHVJQ0FnSUhObGJHVmpkQ0IwYnlCblpYUWdZVzRnWVhCd2NtOTRhVzFoZEdVZ1ptbHljM1FnYkdsdVpTQmlZWE5sYkdsdVpTQmhiR2xuYm0xbGJuUXVJQ292WEc0Z0lDQWdjR0ZrWkdsdVp5MTBiM0E2SURWd2VEdGNibjFjYmx4dUxuZHBaR2RsZEMxelpXeGxZM1FnUGlCelpXeGxZM1E2Wm05amRYTWdlMXh1SUNBZ0lHSnZjbVJsY2kxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMW1iMk4xY3kxaWIzSmtaWEl0WTI5c2IzSXBPMXh1ZlZ4dVhHNHVkMmxuWlhRdGMyVnNaV04wSUQ0Z2MyVnNaV04wSUQ0Z2IzQjBhVzl1SUh0Y2JpQWdJQ0J3WVdSa2FXNW5MV3hsWm5RNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0Y0dGa1pHbHVaeWs3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ0x5b2diR2x1WlMxb1pXbG5hSFFnWkc5bGMyNG5kQ0IzYjNKcklHOXVJSE52YldVZ1luSnZkM05sY25NZ1ptOXlJSE5sYkdWamRDQnZjSFJwYjI1eklDb3ZYRzRnSUNBZ2NHRmtaR2x1WnkxMGIzQTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLUzEyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2t2TWlrN1hHNGdJQ0FnY0dGa1pHbHVaeTFpYjNSMGIyMDZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLUzEyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2t2TWlrN1hHNTlYRzVjYmx4dVhHNHZLaUJVYjJkbmJHVWdRblYwZEc5dWN5QlRkSGxzYVc1bklDb3ZYRzVjYmk1M2FXUm5aWFF0ZEc5bloyeGxMV0oxZEhSdmJuTWdlMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVmVnh1WEc0dWQybGtaMlYwTFhSdloyZHNaUzFpZFhSMGIyNXpJQzUzYVdSblpYUXRkRzluWjJ4bExXSjFkSFJ2YmlCN1hHNGdJQ0FnYldGeVoybHVMV3hsWm5RNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGJXRnlaMmx1S1R0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGJXRnlaMmx1S1R0Y2JuMWNibHh1TG5kcFpHZGxkQzEwYjJkbmJHVXRZblYwZEc5dWN5QXVhblZ3ZVhSbGNpMWlkWFIwYjI0NlpHbHpZV0pzWldRZ2UxeHVJQ0FnSUc5d1lXTnBkSGs2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WkdsellXSnNaV1F0YjNCaFkybDBlU2s3WEc1OVhHNWNiaThxSUZKaFpHbHZJRUoxZEhSdmJuTWdVM1I1YkdsdVp5QXFMMXh1WEc0dWQybGtaMlYwTFhKaFpHbHZJSHRjYmlBZ0lDQjNhV1IwYURvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0ZDJsa2RHZ3BPMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVmVnh1WEc0dWQybGtaMlYwTFhKaFpHbHZMV0p2ZUNCN1hHNGdJQ0FnWkdsemNHeGhlVG9nWm14bGVEdGNiaUFnSUNCbWJHVjRMV1JwY21WamRHbHZiam9nWTI5c2RXMXVPMXh1SUNBZ0lHRnNhV2R1TFdsMFpXMXpPaUJ6ZEhKbGRHTm9PMXh1SUNBZ0lHSnZlQzF6YVhwcGJtYzZJR0p2Y21SbGNpMWliM2c3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGNtRmthVzh0YVhSbGJTMW9aV2xuYUhRdFlXUnFkWE4wYldWdWRDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGNtRmthVzh0WW05NElHeGhZbVZzSUh0Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjbUZrYVc4dGFYUmxiUzFvWldsbmFIUXBPMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWEpoWkdsdkxXbDBaVzB0YUdWcFoyaDBLVHRjYmlBZ0lDQm1iMjUwTFhOcGVtVTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRabTl1ZEMxemFYcGxLVHRjYm4xY2JseHVMbmRwWkdkbGRDMXlZV1JwYnkxaWIzZ2dhVzV3ZFhRZ2UxeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF5WVdScGJ5MXBkR1Z0TFdobGFXZG9kQ2s3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Y21Ga2FXOHRhWFJsYlMxb1pXbG5hSFFwTzF4dUlDQWdJRzFoY21kcGJqb2dNQ0JqWVd4aktDQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwSUNvZ01pQXBJREFnTVhCNE8xeHVJQ0FnSUdac2IyRjBPaUJzWldaME8xeHVmVnh1WEc0dktpQkRiMnh2Y2lCUWFXTnJaWElnVTNSNWJHbHVaeUFxTDF4dVhHNHVkMmxrWjJWMExXTnZiRzl5Y0dsamEyVnlJSHRjYmlBZ0lDQjNhV1IwYURvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0ZDJsa2RHZ3BPMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQnNhVzVsTFdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNibjFjYmx4dUxuZHBaR2RsZEMxamIyeHZjbkJwWTJ0bGNpQStJQzUzYVdSblpYUXRZMjlzYjNKd2FXTnJaWEl0YVc1d2RYUWdlMXh1SUNBZ0lHWnNaWGd0WjNKdmR6b2dNVHRjYmlBZ0lDQm1iR1Y0TFhOb2NtbHVhem9nTVR0Y2JpQWdJQ0J0YVc0dGQybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMWGRwWkhSb0xYUnBibmtwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV052Ykc5eWNHbGphMlZ5SUdsdWNIVjBXM1I1Y0dVOVhDSmpiMnh2Y2x3aVhTQjdYRzRnSUNBZ2QybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ2FHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1SUNBZ0lIQmhaR1JwYm1jNklEQWdNbkI0T3lBdktpQnRZV3RsSUhSb1pTQmpiMnh2Y2lCemNYVmhjbVVnWVdOMGRXRnNiSGtnYzNGMVlYSmxJRzl1SUVOb2NtOXRaU0J2YmlCUFV5QllJQ292WEc0Z0lDQWdZbUZqYTJkeWIzVnVaRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWlZV05yWjNKdmRXNWtMV052Ykc5eUtUdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWpiMnh2Y2lrN1hHNGdJQ0FnWW05eVpHVnlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSnZjbVJsY2kxM2FXUjBhQ2tnYzI5c2FXUWdkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxaWIzSmtaWEl0WTI5c2IzSXBPMXh1SUNBZ0lHSnZjbVJsY2kxc1pXWjBPaUJ1YjI1bE8xeHVJQ0FnSUdac1pYZ3RaM0p2ZHpvZ01EdGNiaUFnSUNCbWJHVjRMWE5vY21sdWF6b2dNRHRjYmlBZ0lDQmliM2d0YzJsNmFXNW5PaUJpYjNKa1pYSXRZbTk0TzF4dUlDQWdJR0ZzYVdkdUxYTmxiR1k2SUhOMGNtVjBZMmc3WEc0Z0lDQWdiM1YwYkdsdVpUb2dibTl1WlNBaGFXMXdiM0owWVc1ME8xeHVmVnh1WEc0dWQybGtaMlYwTFdOdmJHOXljR2xqYTJWeUxtTnZibU5wYzJVZ2FXNXdkWFJiZEhsd1pUMWNJbU52Ykc5eVhDSmRJSHRjYmlBZ0lDQmliM0prWlhJdGJHVm1kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFdOdmJHOXlLVHRjYm4xY2JseHVMbmRwWkdkbGRDMWpiMnh2Y25CcFkydGxjaUJwYm5CMWRGdDBlWEJsUFZ3aVkyOXNiM0pjSWwwNlptOWpkWE1zSUM1M2FXUm5aWFF0WTI5c2IzSndhV05yWlhJZ2FXNXdkWFJiZEhsd1pUMWNJblJsZUhSY0lsMDZabTlqZFhNZ2UxeHVJQ0FnSUdKdmNtUmxjaTFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxbWIyTjFjeTFpYjNKa1pYSXRZMjlzYjNJcE8xeHVmVnh1WEc0dWQybGtaMlYwTFdOdmJHOXljR2xqYTJWeUlHbHVjSFYwVzNSNWNHVTlYQ0owWlhoMFhDSmRJSHRjYmlBZ0lDQm1iR1Y0TFdkeWIzYzZJREU3WEc0Z0lDQWdiM1YwYkdsdVpUb2dibTl1WlNBaGFXMXdiM0owWVc1ME8xeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JpQWdJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV0poWTJ0bmNtOTFibVF0WTI5c2IzSXBPMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV052Ykc5eUtUdGNiaUFnSUNCaWIzSmtaWEk2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1d2RYUXRZbTl5WkdWeUxYZHBaSFJvS1NCemIyeHBaQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSnZjbVJsY2kxamIyeHZjaWs3WEc0Z0lDQWdabTl1ZEMxemFYcGxPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2s3WEc0Z0lDQWdjR0ZrWkdsdVp6b2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxd1lXUmthVzVuS1NCallXeGpLQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExYQmhaR1JwYm1jcElDb2dJRElnS1R0Y2JpQWdJQ0J0YVc0dGQybGtkR2c2SURBN0lDOHFJRlJvYVhNZ2JXRnJaWE1nYVhRZ2NHOXpjMmxpYkdVZ1ptOXlJSFJvWlNCbWJHVjRZbTk0SUhSdklITm9jbWx1YXlCMGFHbHpJR2x1Y0hWMElDb3ZYRzRnSUNBZ1pteGxlQzF6YUhKcGJtczZJREU3WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JuMWNibHh1TG5kcFpHZGxkQzFqYjJ4dmNuQnBZMnRsY2lCcGJuQjFkRnQwZVhCbFBWd2lkR1Y0ZEZ3aVhUcGthWE5oWW14bFpDQjdYRzRnSUNBZ2IzQmhZMmwwZVRvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxa2FYTmhZbXhsWkMxdmNHRmphWFI1S1R0Y2JuMWNibHh1THlvZ1JHRjBaU0JRYVdOclpYSWdVM1I1YkdsdVp5QXFMMXh1WEc0dWQybGtaMlYwTFdSaGRHVndhV05yWlhJZ2UxeHVJQ0FnSUhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUNrN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVJQ0FnSUd4cGJtVXRhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV1JoZEdWd2FXTnJaWElnYVc1d2RYUmJkSGx3WlQxY0ltUmhkR1ZjSWwwZ2UxeHVJQ0FnSUdac1pYZ3RaM0p2ZHpvZ01UdGNiaUFnSUNCbWJHVjRMWE5vY21sdWF6b2dNVHRjYmlBZ0lDQnRhVzR0ZDJsa2RHZzZJREE3SUM4cUlGUm9hWE1nYldGclpYTWdhWFFnY0c5emMybGliR1VnWm05eUlIUm9aU0JtYkdWNFltOTRJSFJ2SUhOb2NtbHVheUIwYUdseklHbHVjSFYwSUNvdlhHNGdJQ0FnYjNWMGJHbHVaVG9nYm05dVpTQWhhVzF3YjNKMFlXNTBPMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQmliM0prWlhJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0WW05eVpHVnlMWGRwWkhSb0tTQnpiMnhwWkNCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV0p2Y21SbGNpMWpiMnh2Y2lrN1hHNGdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWlZV05yWjNKdmRXNWtMV052Ykc5eUtUdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWpiMnh2Y2lrN1hHNGdJQ0FnWm05dWRDMXphWHBsT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdadmJuUXRjMmw2WlNrN1hHNGdJQ0FnY0dGa1pHbHVaem9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMXdZV1JrYVc1bktTQmpZV3hqS0NCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMWEJoWkdScGJtY3BJQ29nSURJZ0tUdGNiaUFnSUNCaWIzZ3RjMmw2YVc1bk9pQmliM0prWlhJdFltOTRPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXUmhkR1Z3YVdOclpYSWdhVzV3ZFhSYmRIbHdaVDFjSW1SaGRHVmNJbDA2Wm05amRYTWdlMXh1SUNBZ0lHSnZjbVJsY2kxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMW1iMk4xY3kxaWIzSmtaWEl0WTI5c2IzSXBPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXUmhkR1Z3YVdOclpYSWdhVzV3ZFhSYmRIbHdaVDFjSW1SaGRHVmNJbDA2YVc1MllXeHBaQ0I3WEc0Z0lDQWdZbTl5WkdWeUxXTnZiRzl5T2lCMllYSW9MUzFxY0MxM1lYSnVMV052Ykc5eU1TazdYRzU5WEc1Y2JpNTNhV1JuWlhRdFpHRjBaWEJwWTJ0bGNpQnBibkIxZEZ0MGVYQmxQVndpWkdGMFpWd2lYVHBrYVhOaFlteGxaQ0I3WEc0Z0lDQWdiM0JoWTJsMGVUb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWthWE5oWW14bFpDMXZjR0ZqYVhSNUtUdGNibjFjYmx4dUx5b2dVR3hoZVNCWGFXUm5aWFFnS2k5Y2JseHVMbmRwWkdkbGRDMXdiR0Y1SUh0Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGQybGtkR2d0YzJodmNuUXBPMXh1SUNBZ0lHUnBjM0JzWVhrNklHWnNaWGc3WEc0Z0lDQWdZV3hwWjI0dGFYUmxiWE02SUhOMGNtVjBZMmc3WEc1OVhHNWNiaTUzYVdSblpYUXRjR3hoZVNBdWFuVndlWFJsY2kxaWRYUjBiMjRnZTF4dUlDQWdJR1pzWlhndFozSnZkem9nTVR0Y2JpQWdJQ0JvWldsbmFIUTZJR0YxZEc4N1hHNTlYRzVjYmk1M2FXUm5aWFF0Y0d4aGVTQXVhblZ3ZVhSbGNpMWlkWFIwYjI0NlpHbHpZV0pzWldRZ2UxeHVJQ0FnSUc5d1lXTnBkSGs2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WkdsellXSnNaV1F0YjNCaFkybDBlU2s3WEc1OVhHNWNiaThxSUZSaFlpQlhhV1JuWlhRZ0tpOWNibHh1TG1wMWNIbDBaWEl0ZDJsa1oyVjBjeTUzYVdSblpYUXRkR0ZpSUh0Y2JpQWdJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeHVJQ0FnSUdac1pYZ3RaR2x5WldOMGFXOXVPaUJqYjJ4MWJXNDdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUI3WEc0Z0lDQWdMeW9nVG1WalpYTnpZWEo1SUhOdklIUm9ZWFFnWVNCMFlXSWdZMkZ1SUdKbElITm9hV1owWldRZ1pHOTNiaUIwYnlCdmRtVnliR0Y1SUhSb1pTQmliM0prWlhJZ2IyWWdkR2hsSUdKdmVDQmlaV3h2ZHk0Z0tpOWNiaUFnSUNCdmRtVnlabXh2ZHkxNE9pQjJhWE5wWW14bE8xeHVJQ0FnSUc5MlpYSm1iRzkzTFhrNklIWnBjMmxpYkdVN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpQStJQzV3TFZSaFlrSmhjaTFqYjI1MFpXNTBJSHRjYmlBZ0lDQXZLaUJOWVd0bElITjFjbVVnZEdoaGRDQjBhR1VnZEdGaUlHZHliM2R6SUdaeWIyMGdZbTkwZEc5dElIVndJQ292WEc0Z0lDQWdZV3hwWjI0dGFYUmxiWE02SUdac1pYZ3RaVzVrTzF4dUlDQWdJRzFwYmkxM2FXUjBhRG9nTUR0Y2JpQWdJQ0J0YVc0dGFHVnBaMmgwT2lBd08xeHVmVnh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVkMmxrWjJWMExYUmhZaTFqYjI1MFpXNTBjeUI3WEc0Z0lDQWdkMmxrZEdnNklERXdNQ1U3WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdJQ0J0WVhKbmFXNDZJREE3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaRG9nZG1GeUtDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1TazdYRzRnSUNBZ1kyOXNiM0k2SUhaaGNpZ3RMV3B3TFhWcExXWnZiblF0WTI5c2IzSXhLVHRjYmlBZ0lDQmliM0prWlhJNklIWmhjaWd0TFdwd0xXSnZjbVJsY2kxM2FXUjBhQ2tnYzI5c2FXUWdkbUZ5S0MwdGFuQXRZbTl5WkdWeUxXTnZiRzl5TVNrN1hHNGdJQ0FnY0dGa1pHbHVaem9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFqYjI1MFlXbHVaWEl0Y0dGa1pHbHVaeWs3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJRzkyWlhKbWJHOTNPaUJoZFhSdk8xeHVmVnh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdlMXh1SUNBZ0lHWnZiblE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Wm05dWRDMXphWHBsS1NCSVpXeDJaWFJwWTJFc0lFRnlhV0ZzTENCellXNXpMWE5sY21sbU8xeHVJQ0FnSUcxcGJpMW9aV2xuYUhRNklHTmhiR01vZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFvYjNKcGVtOXVkR0ZzTFhSaFlpMW9aV2xuYUhRcElDc2dkbUZ5S0MwdGFuQXRZbTl5WkdWeUxYZHBaSFJvS1NrN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpQXVjQzFVWVdKQ1lYSXRkR0ZpSUh0Y2JpQWdJQ0JtYkdWNE9pQXdJREVnZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFvYjNKcGVtOXVkR0ZzTFhSaFlpMTNhV1IwYUNrN1hHNGdJQ0FnYldsdUxYZHBaSFJvT2lBek5YQjRPMXh1SUNBZ0lHMXBiaTFvWldsbmFIUTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxb2IzSnBlbTl1ZEdGc0xYUmhZaTFvWldsbmFIUXBJQ3NnZG1GeUtDMHRhbkF0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ2JHbHVaUzFvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhRzl5YVhwdmJuUmhiQzEwWVdJdGFHVnBaMmgwS1R0Y2JpQWdJQ0J0WVhKbmFXNHRiR1ZtZERvZ1kyRnNZeWd0TVNBcUlIWmhjaWd0TFdwd0xXSnZjbVJsY2kxM2FXUjBhQ2twTzF4dUlDQWdJSEJoWkdScGJtYzZJREJ3ZUNBeE1IQjRPMXh1SUNBZ0lHSmhZMnRuY205MWJtUTZJSFpoY2lndExXcHdMV3hoZVc5MWRDMWpiMnh2Y2pJcE8xeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzExYVMxbWIyNTBMV052Ykc5eU1pazdYRzRnSUNBZ1ltOXlaR1Z5T2lCMllYSW9MUzFxY0MxaWIzSmtaWEl0ZDJsa2RHZ3BJSE52Ykdsa0lIWmhjaWd0TFdwd0xXSnZjbVJsY2kxamIyeHZjakVwTzF4dUlDQWdJR0p2Y21SbGNpMWliM1IwYjIwNklHNXZibVU3WEc0Z0lDQWdjRzl6YVhScGIyNDZJSEpsYkdGMGFYWmxPMXh1ZlZ4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWElnTG5BdFZHRmlRbUZ5TFhSaFlpNXdMVzF2WkMxamRYSnlaVzUwSUh0Y2JpQWdJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUM4cUlGZGxJSGRoYm5RZ2RHaGxJR0poWTJ0bmNtOTFibVFnZEc4Z2JXRjBZMmdnZEdobElIUmhZaUJqYjI1MFpXNTBJR0poWTJ0bmNtOTFibVFnS2k5Y2JpQWdJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzFxY0Mxc1lYbHZkWFF0WTI5c2IzSXhLVHRjYmlBZ0lDQnRhVzR0YUdWcFoyaDBPaUJqWVd4aktIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFHOXlhWHB2Ym5SaGJDMTBZV0l0YUdWcFoyaDBLU0FySURJZ0tpQjJZWElvTFMxcWNDMWliM0prWlhJdGQybGtkR2dwS1R0Y2JpQWdJQ0IwY21GdWMyWnZjbTA2SUhSeVlXNXpiR0YwWlZrb2RtRnlLQzB0YW5BdFltOXlaR1Z5TFhkcFpIUm9LU2s3WEc0Z0lDQWdiM1psY21ac2IzYzZJSFpwYzJsaWJHVTdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaUxuQXRiVzlrTFdOMWNuSmxiblE2WW1WbWIzSmxJSHRjYmlBZ0lDQndiM05wZEdsdmJqb2dZV0p6YjJ4MWRHVTdYRzRnSUNBZ2RHOXdPaUJqWVd4aktDMHhJQ29nZG1GeUtDMHRhbkF0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ2JHVm1kRG9nWTJGc1l5Z3RNU0FxSUhaaGNpZ3RMV3B3TFdKdmNtUmxjaTEzYVdSMGFDa3BPMXh1SUNBZ0lHTnZiblJsYm5RNklDY25PMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxb2IzSnBlbTl1ZEdGc0xYUmhZaTEwYjNBdFltOXlaR1Z5S1R0Y2JpQWdJQ0IzYVdSMGFEb2dZMkZzWXlneE1EQWxJQ3NnTWlBcUlIWmhjaWd0TFdwd0xXSnZjbVJsY2kxM2FXUjBhQ2twTzF4dUlDQWdJR0poWTJ0bmNtOTFibVE2SUhaaGNpZ3RMV3B3TFdKeVlXNWtMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaU9tWnBjbk4wTFdOb2FXeGtJSHRjYmlBZ0lDQnRZWEpuYVc0dGJHVm1kRG9nTUR0Y2JuMWNibHh1TG1wMWNIbDBaWEl0ZDJsa1oyVjBjeTUzYVdSblpYUXRkR0ZpSUQ0Z0xuQXRWR0ZpUW1GeUlDNXdMVlJoWWtKaGNpMTBZV0k2YUc5MlpYSTZibTkwS0M1d0xXMXZaQzFqZFhKeVpXNTBLU0I3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaRG9nZG1GeUtDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1TazdYRzRnSUNBZ1kyOXNiM0k2SUhaaGNpZ3RMV3B3TFhWcExXWnZiblF0WTI5c2IzSXhLVHRjYm4xY2JseHVMbXAxY0hsMFpYSXRkMmxrWjJWMGN5NTNhV1JuWlhRdGRHRmlJRDRnTG5BdFZHRmlRbUZ5SUM1d0xXMXZaQzFqYkc5ellXSnNaU0ErSUM1d0xWUmhZa0poY2kxMFlXSkRiRzl6WlVsamIyNGdlMXh1SUNBZ0lHMWhjbWRwYmkxc1pXWjBPaUEwY0hnN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpQXVjQzF0YjJRdFkyeHZjMkZpYkdVZ1BpQXVjQzFVWVdKQ1lYSXRkR0ZpUTJ4dmMyVkpZMjl1T21KbFptOXlaU0I3WEc0Z0lDQWdabTl1ZEMxbVlXMXBiSGs2SUVadmJuUkJkMlZ6YjIxbE8xeHVJQ0FnSUdOdmJuUmxiblE2SUNkY1hHWXdNR1FuT3lBdktpQmpiRzl6WlNBcUwxeHVmVnh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdMbkF0VkdGaVFtRnlMWFJoWWtsamIyNHNYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpMbmRwWkdkbGRDMTBZV0lnUGlBdWNDMVVZV0pDWVhJZ0xuQXRWR0ZpUW1GeUxYUmhZa3hoWW1Wc0xGeHVMbXAxY0hsMFpYSXRkMmxrWjJWMGN5NTNhV1JuWlhRdGRHRmlJRDRnTG5BdFZHRmlRbUZ5SUM1d0xWUmhZa0poY2kxMFlXSkRiRzl6WlVsamIyNGdlMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2h2Y21sNmIyNTBZV3d0ZEdGaUxXaGxhV2RvZENrN1hHNTlYRzVjYmk4cUlFRmpZMjl5WkdsdmJpQlhhV1JuWlhRZ0tpOWNibHh1TG5BdFEyOXNiR0Z3YzJVZ2UxeHVJQ0FnSUdScGMzQnNZWGs2SUdac1pYZzdYRzRnSUNBZ1pteGxlQzFrYVhKbFkzUnBiMjQ2SUdOdmJIVnRianRjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nYzNSeVpYUmphRHRjYm4xY2JseHVMbkF0UTI5c2JHRndjMlV0YUdWaFpHVnlJSHRjYmlBZ0lDQndZV1JrYVc1bk9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwTzF4dUlDQWdJR04xY25OdmNqb2djRzlwYm5SbGNqdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZFdrdFptOXVkQzFqYjJ4dmNqSXBPMXh1SUNBZ0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklIWmhjaWd0TFdwd0xXeGhlVzkxZEMxamIyeHZjaklwTzF4dUlDQWdJR0p2Y21SbGNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMV0p2Y21SbGNpMWpiMnh2Y2pFcE8xeHVJQ0FnSUhCaFpHUnBibWM2SUdOaGJHTW9kbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWpiMjUwWVdsdVpYSXRjR0ZrWkdsdVp5a2dLaUF5SUM4Z015a2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWpiMjUwWVdsdVpYSXRjR0ZrWkdsdVp5azdYRzRnSUNBZ1ptOXVkQzEzWldsbmFIUTZJR0p2YkdRN1hHNTlYRzVjYmk1d0xVTnZiR3hoY0hObExXaGxZV1JsY2pwb2IzWmxjaUI3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRiR0Y1YjNWMExXTnZiRzl5TVNrN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNibjFjYmx4dUxuQXRRMjlzYkdGd2MyVXRiM0JsYmlBK0lDNXdMVU52Ykd4aGNITmxMV2hsWVdSbGNpQjdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdFkyOXNiM0l3S1R0Y2JpQWdJQ0JqZFhKemIzSTZJR1JsWm1GMWJIUTdYRzRnSUNBZ1ltOXlaR1Z5TFdKdmRIUnZiVG9nYm05dVpUdGNibjFjYmx4dUxuQXRRMjlzYkdGd2MyVWdMbkF0UTI5c2JHRndjMlV0YUdWaFpHVnlPanBpWldadmNtVWdlMXh1SUNBZ0lHTnZiblJsYm5RNklDZGNYR1l3WkdGY1hEQXdRVEFuT3lBZ0x5b2dZMkZ5WlhRdGNtbG5hSFFzSUc1dmJpMWljbVZoYTJsdVp5QnpjR0ZqWlNBcUwxeHVJQ0FnSUdScGMzQnNZWGs2SUdsdWJHbHVaUzFpYkc5amF6dGNiaUFnSUNCbWIyNTBPaUJ1YjNKdFlXd2dibTl5YldGc0lHNXZjbTFoYkNBeE5IQjRMekVnUm05dWRFRjNaWE52YldVN1hHNGdJQ0FnWm05dWRDMXphWHBsT2lCcGJtaGxjbWwwTzF4dUlDQWdJSFJsZUhRdGNtVnVaR1Z5YVc1bk9pQmhkWFJ2TzF4dUlDQWdJQzEzWldKcmFYUXRabTl1ZEMxemJXOXZkR2hwYm1jNklHRnVkR2xoYkdsaGMyVmtPMXh1SUNBZ0lDMXRiM290YjNONExXWnZiblF0YzIxdmIzUm9hVzVuT2lCbmNtRjVjMk5oYkdVN1hHNTlYRzVjYmk1d0xVTnZiR3hoY0hObExXOXdaVzRnUGlBdWNDMURiMnhzWVhCelpTMW9aV0ZrWlhJNk9tSmxabTl5WlNCN1hHNGdJQ0FnWTI5dWRHVnVkRG9nSjF4Y1pqQmtOMXhjTURCQk1DYzdJQzhxSUdOaGNtVjBMV1J2ZDI0c0lHNXZiaTFpY21WaGEybHVaeUJ6Y0dGalpTQXFMMXh1ZlZ4dVhHNHVjQzFEYjJ4c1lYQnpaUzFqYjI1MFpXNTBjeUI3WEc0Z0lDQWdjR0ZrWkdsdVp6b2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWpiMjUwWVdsdVpYSXRjR0ZrWkdsdVp5azdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdFkyOXNiM0l4S1R0Y2JpQWdJQ0JpYjNKa1pYSXRiR1ZtZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxaWIzSmtaWEl0ZDJsa2RHZ3BJSE52Ykdsa0lIWmhjaWd0TFdwd0xXSnZjbVJsY2kxamIyeHZjakVwTzF4dUlDQWdJR0p2Y21SbGNpMXlhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxaWIzSmtaWEl0ZDJsa2RHZ3BJSE52Ykdsa0lIWmhjaWd0TFdwd0xXSnZjbVJsY2kxamIyeHZjakVwTzF4dUlDQWdJR0p2Y21SbGNpMWliM1IwYjIwNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdFltOXlaR1Z5TFhkcFpIUm9LU0J6YjJ4cFpDQjJZWElvTFMxcWNDMWliM0prWlhJdFkyOXNiM0l4S1R0Y2JpQWdJQ0J2ZG1WeVpteHZkem9nWVhWMGJ6dGNibjFjYmx4dUxuQXRRV05qYjNKa2FXOXVJSHRjYmlBZ0lDQmthWE53YkdGNU9pQm1iR1Y0TzF4dUlDQWdJR1pzWlhndFpHbHlaV04wYVc5dU9pQmpiMngxYlc0N1hHNGdJQ0FnWVd4cFoyNHRhWFJsYlhNNklITjBjbVYwWTJnN1hHNTlYRzVjYmk1d0xVRmpZMjl5WkdsdmJpQXVjQzFEYjJ4c1lYQnpaU0I3WEc0Z0lDQWdiV0Z5WjJsdUxXSnZkSFJ2YlRvZ01EdGNibjFjYmx4dUxuQXRRV05qYjNKa2FXOXVJQzV3TFVOdmJHeGhjSE5sSUNzZ0xuQXRRMjlzYkdGd2MyVWdlMXh1SUNBZ0lHMWhjbWRwYmkxMGIzQTZJRFJ3ZUR0Y2JuMWNibHh1WEc1Y2JpOHFJRWhVVFV3Z2QybGtaMlYwSUNvdlhHNWNiaTUzYVdSblpYUXRhSFJ0YkN3Z0xuZHBaR2RsZEMxb2RHMXNiV0YwYUNCN1hHNGdJQ0FnWm05dWRDMXphWHBsT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdadmJuUXRjMmw2WlNrN1hHNTlYRzVjYmk1M2FXUm5aWFF0YUhSdGJDQStJQzUzYVdSblpYUXRhSFJ0YkMxamIyNTBaVzUwTENBdWQybGtaMlYwTFdoMGJXeHRZWFJvSUQ0Z0xuZHBaR2RsZEMxb2RHMXNMV052Ym5SbGJuUWdlMXh1SUNBZ0lDOHFJRVpwYkd3Z2IzVjBJSFJvWlNCaGNtVmhJR2x1SUhSb1pTQklWRTFNSUhkcFpHZGxkQ0FxTDF4dUlDQWdJR0ZzYVdkdUxYTmxiR1k2SUhOMGNtVjBZMmc3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJR1pzWlhndGMyaHlhVzVyT2lBeE8xeHVJQ0FnSUM4cUlFMWhhMlZ6SUhOMWNtVWdkR2hsSUdKaGMyVnNhVzVsSUdseklITjBhV3hzSUdGc2FXZHVaV1FnZDJsMGFDQnZkR2hsY2lCbGJHVnRaVzUwY3lBcUwxeHVJQ0FnSUd4cGJtVXRhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dUlDQWdJQzhxSUUxaGEyVWdhWFFnY0c5emMybGliR1VnZEc4Z2FHRjJaU0JoWW5OdmJIVjBaV3g1TFhCdmMybDBhVzl1WldRZ1pXeGxiV1Z1ZEhNZ2FXNGdkR2hsSUdoMGJXd2dLaTljYmlBZ0lDQndiM05wZEdsdmJqb2djbVZzWVhScGRtVTdYRzU5WEc0aUxDSXZLaUJVYUdseklHWnBiR1VnYUdGeklHTnZaR1VnWkdWeWFYWmxaQ0JtY205dElGQm9iM053YUc5eVNsTWdRMU5USUdacGJHVnpMQ0JoY3lCdWIzUmxaQ0JpWld4dmR5NGdWR2hsSUd4cFkyVnVjMlVnWm05eUlIUm9hWE1nVUdodmMzQm9iM0pLVXlCamIyUmxJR2x6T2x4dVhHNURiM0I1Y21sbmFIUWdLR01wSURJd01UUXRNakF4Tnl3Z1VHaHZjM0JvYjNKS1V5QkRiMjUwY21saWRYUnZjbk5jYmtGc2JDQnlhV2RvZEhNZ2NtVnpaWEoyWldRdVhHNWNibEpsWkdsemRISnBZblYwYVc5dUlHRnVaQ0IxYzJVZ2FXNGdjMjkxY21ObElHRnVaQ0JpYVc1aGNua2dabTl5YlhNc0lIZHBkR2dnYjNJZ2QybDBhRzkxZEZ4dWJXOWthV1pwWTJGMGFXOXVMQ0JoY21VZ2NHVnliV2wwZEdWa0lIQnliM1pwWkdWa0lIUm9ZWFFnZEdobElHWnZiR3h2ZDJsdVp5QmpiMjVrYVhScGIyNXpJR0Z5WlNCdFpYUTZYRzVjYmlvZ1VtVmthWE4wY21saWRYUnBiMjV6SUc5bUlITnZkWEpqWlNCamIyUmxJRzExYzNRZ2NtVjBZV2x1SUhSb1pTQmhZbTkyWlNCamIzQjVjbWxuYUhRZ2JtOTBhV05sTENCMGFHbHpYRzRnSUd4cGMzUWdiMllnWTI5dVpHbDBhVzl1Y3lCaGJtUWdkR2hsSUdadmJHeHZkMmx1WnlCa2FYTmpiR0ZwYldWeUxseHVYRzRxSUZKbFpHbHpkSEpwWW5WMGFXOXVjeUJwYmlCaWFXNWhjbmtnWm05eWJTQnRkWE4wSUhKbGNISnZaSFZqWlNCMGFHVWdZV0p2ZG1VZ1kyOXdlWEpwWjJoMElHNXZkR2xqWlN4Y2JpQWdkR2hwY3lCc2FYTjBJRzltSUdOdmJtUnBkR2x2Ym5NZ1lXNWtJSFJvWlNCbWIyeHNiM2RwYm1jZ1pHbHpZMnhoYVcxbGNpQnBiaUIwYUdVZ1pHOWpkVzFsYm5SaGRHbHZibHh1SUNCaGJtUXZiM0lnYjNSb1pYSWdiV0YwWlhKcFlXeHpJSEJ5YjNacFpHVmtJSGRwZEdnZ2RHaGxJR1JwYzNSeWFXSjFkR2x2Ymk1Y2JseHVLaUJPWldsMGFHVnlJSFJvWlNCdVlXMWxJRzltSUhSb1pTQmpiM0I1Y21sbmFIUWdhRzlzWkdWeUlHNXZjaUIwYUdVZ2JtRnRaWE1nYjJZZ2FYUnpYRzRnSUdOdmJuUnlhV0oxZEc5eWN5QnRZWGtnWW1VZ2RYTmxaQ0IwYnlCbGJtUnZjbk5sSUc5eUlIQnliMjF2ZEdVZ2NISnZaSFZqZEhNZ1pHVnlhWFpsWkNCbWNtOXRYRzRnSUhSb2FYTWdjMjltZEhkaGNtVWdkMmwwYUc5MWRDQnpjR1ZqYVdacFl5QndjbWx2Y2lCM2NtbDBkR1Z1SUhCbGNtMXBjM05wYjI0dVhHNWNibFJJU1ZNZ1UwOUdWRmRCVWtVZ1NWTWdVRkpQVmtsRVJVUWdRbGtnVkVoRklFTlBVRmxTU1VkSVZDQklUMHhFUlZKVElFRk9SQ0JEVDA1VVVrbENWVlJQVWxNZ1hDSkJVeUJKVTF3aVhHNUJUa1FnUVU1WklFVllVRkpGVTFNZ1QxSWdTVTFRVEVsRlJDQlhRVkpTUVU1VVNVVlRMQ0JKVGtOTVZVUkpUa2NzSUVKVlZDQk9UMVFnVEVsTlNWUkZSQ0JVVHl3Z1ZFaEZYRzVKVFZCTVNVVkVJRmRCVWxKQlRsUkpSVk1nVDBZZ1RVVlNRMGhCVGxSQlFrbE1TVlJaSUVGT1JDQkdTVlJPUlZOVElFWlBVaUJCSUZCQlVsUkpRMVZNUVZJZ1VGVlNVRTlUUlNCQlVrVmNia1JKVTBOTVFVbE5SVVF1SUVsT0lFNVBJRVZXUlU1VUlGTklRVXhNSUZSSVJTQkRUMUJaVWtsSFNGUWdTRTlNUkVWU0lFOVNJRU5QVGxSU1NVSlZWRTlTVXlCQ1JTQk1TVUZDVEVWY2JrWlBVaUJCVGxrZ1JFbFNSVU5VTENCSlRrUkpVa1ZEVkN3Z1NVNURTVVJGVGxSQlRDd2dVMUJGUTBsQlRDd2dSVmhGVFZCTVFWSlpMQ0JQVWlCRFQwNVRSVkZWUlU1VVNVRk1YRzVFUVUxQlIwVlRJQ2hKVGtOTVZVUkpUa2NzSUVKVlZDQk9UMVFnVEVsTlNWUkZSQ0JVVHl3Z1VGSlBRMVZTUlUxRlRsUWdUMFlnVTFWQ1UxUkpWRlZVUlNCSFQwOUVVeUJQVWx4dVUwVlNWa2xEUlZNN0lFeFBVMU1nVDBZZ1ZWTkZMQ0JFUVZSQkxDQlBVaUJRVWs5R1NWUlRPeUJQVWlCQ1ZWTkpUa1ZUVXlCSlRsUkZVbEpWVUZSSlQwNHBJRWhQVjBWV1JWSmNia05CVlZORlJDQkJUa1FnVDA0Z1FVNVpJRlJJUlU5U1dTQlBSaUJNU1VGQ1NVeEpWRmtzSUZkSVJWUklSVklnU1U0Z1EwOU9WRkpCUTFRc0lGTlVVa2xEVkNCTVNVRkNTVXhKVkZrc1hHNVBVaUJVVDFKVUlDaEpUa05NVlVSSlRrY2dUa1ZIVEVsSFJVNURSU0JQVWlCUFZFaEZVbGRKVTBVcElFRlNTVk5KVGtjZ1NVNGdRVTVaSUZkQldTQlBWVlFnVDBZZ1ZFaEZJRlZUUlZ4dVQwWWdWRWhKVXlCVFQwWlVWMEZTUlN3Z1JWWkZUaUJKUmlCQlJGWkpVMFZFSUU5R0lGUklSU0JRVDFOVFNVSkpURWxVV1NCUFJpQlRWVU5JSUVSQlRVRkhSUzVjYmx4dUtpOWNibHh1THlwY2JpQXFJRlJvWlNCbWIyeHNiM2RwYm1jZ2MyVmpkR2x2YmlCcGN5QmtaWEpwZG1Wa0lHWnliMjBnYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDNCb2IzTndhRzl5YW5NdmNHaHZjM0JvYjNJdllteHZZaTh5TTJJNVpEQTNOV1ZpWXpWaU56TmhZakUwT0dJMlpXSm1Zekl3WVdZNU4yWTROVGN4TkdNMEwzQmhZMnRoWjJWekwzZHBaR2RsZEhNdmMzUjViR1V2ZEdGaVltRnlMbU56Y3lCY2JpQXFJRmRsSjNabElITmpiM0JsWkNCMGFHVWdjblZzWlhNZ2MyOGdkR2hoZENCMGFHVjVJR0Z5WlNCamIyNXphWE4wWlc1MElIZHBkR2dnWlhoaFkzUnNlU0J2ZFhJZ1kyOWtaUzVjYmlBcUwxeHVYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpMbmRwWkdkbGRDMTBZV0lnUGlBdWNDMVVZV0pDWVhJZ2UxeHVJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeHVJQ0F0ZDJWaWEybDBMWFZ6WlhJdGMyVnNaV04wT2lCdWIyNWxPMXh1SUNBdGJXOTZMWFZ6WlhJdGMyVnNaV04wT2lCdWIyNWxPMXh1SUNBdGJYTXRkWE5sY2kxelpXeGxZM1E2SUc1dmJtVTdYRzRnSUhWelpYSXRjMlZzWldOME9pQnViMjVsTzF4dWZWeHVYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNsdGtZWFJoTFc5eWFXVnVkR0YwYVc5dVBTZG9iM0pwZW05dWRHRnNKMTBnZTF4dUlDQm1iR1Y0TFdScGNtVmpkR2x2YmpvZ2NtOTNPMXh1ZlZ4dVhHNWNiaTVxZFhCNWRHVnlMWGRwWkdkbGRITXVkMmxrWjJWMExYUmhZaUErSUM1d0xWUmhZa0poY2x0a1lYUmhMVzl5YVdWdWRHRjBhVzl1UFNkMlpYSjBhV05oYkNkZElIdGNiaUFnWm14bGVDMWthWEpsWTNScGIyNDZJR052YkhWdGJqdGNibjFjYmx4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWElnUGlBdWNDMVVZV0pDWVhJdFkyOXVkR1Z1ZENCN1hHNGdJRzFoY21kcGJqb2dNRHRjYmlBZ2NHRmtaR2x1WnpvZ01EdGNiaUFnWkdsemNHeGhlVG9nWm14bGVEdGNiaUFnWm14bGVEb2dNU0F4SUdGMWRHODdYRzRnSUd4cGMzUXRjM1I1YkdVdGRIbHdaVG9nYm05dVpUdGNibjFjYmx4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWEpiWkdGMFlTMXZjbWxsYm5SaGRHbHZiajBuYUc5eWFYcHZiblJoYkNkZElENGdMbkF0VkdGaVFtRnlMV052Ym5SbGJuUWdlMXh1SUNCbWJHVjRMV1JwY21WamRHbHZiam9nY205M08xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjbHRrWVhSaExXOXlhV1Z1ZEdGMGFXOXVQU2QyWlhKMGFXTmhiQ2RkSUQ0Z0xuQXRWR0ZpUW1GeUxXTnZiblJsYm5RZ2UxeHVJQ0JtYkdWNExXUnBjbVZqZEdsdmJqb2dZMjlzZFcxdU8xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaUlIdGNiaUFnWkdsemNHeGhlVG9nWm14bGVEdGNiaUFnWm14bGVDMWthWEpsWTNScGIyNDZJSEp2ZHp0Y2JpQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdiM1psY21ac2IzYzZJR2hwWkdSbGJqdGNibjFjYmx4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWElnTG5BdFZHRmlRbUZ5TFhSaFlrbGpiMjRzWEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdMbkF0VkdGaVFtRnlMWFJoWWtOc2IzTmxTV052YmlCN1hHNGdJR1pzWlhnNklEQWdNQ0JoZFhSdk8xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaVRHRmlaV3dnZTF4dUlDQm1iR1Y0T2lBeElERWdZWFYwYnp0Y2JpQWdiM1psY21ac2IzYzZJR2hwWkdSbGJqdGNiaUFnZDJocGRHVXRjM0JoWTJVNklHNXZkM0poY0R0Y2JuMWNibHh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdMbkF0VkdGaVFtRnlMWFJoWWk1d0xXMXZaQzFvYVdSa1pXNGdlMXh1SUNCa2FYTndiR0Y1T2lCdWIyNWxJQ0ZwYlhCdmNuUmhiblE3WEc1OVhHNWNibHh1TG1wMWNIbDBaWEl0ZDJsa1oyVjBjeTUzYVdSblpYUXRkR0ZpSUQ0Z0xuQXRWR0ZpUW1GeUxuQXRiVzlrTFdSeVlXZG5hVzVuSUM1d0xWUmhZa0poY2kxMFlXSWdlMXh1SUNCd2IzTnBkR2x2YmpvZ2NtVnNZWFJwZG1VN1hHNTlYRzVjYmx4dUxtcDFjSGwwWlhJdGQybGtaMlYwY3k1M2FXUm5aWFF0ZEdGaUlENGdMbkF0VkdGaVFtRnlMbkF0Ylc5a0xXUnlZV2RuYVc1blcyUmhkR0V0YjNKcFpXNTBZWFJwYjI0OUoyaHZjbWw2YjI1MFlXd25YU0F1Y0MxVVlXSkNZWEl0ZEdGaUlIdGNiaUFnYkdWbWREb2dNRHRjYmlBZ2RISmhibk5wZEdsdmJqb2diR1ZtZENBeE5UQnRjeUJsWVhObE8xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaTV3TFcxdlpDMWtjbUZuWjJsdVoxdGtZWFJoTFc5eWFXVnVkR0YwYVc5dVBTZDJaWEowYVdOaGJDZGRJQzV3TFZSaFlrSmhjaTEwWVdJZ2UxeHVJQ0IwYjNBNklEQTdYRzRnSUhSeVlXNXphWFJwYjI0NklIUnZjQ0F4TlRCdGN5QmxZWE5sTzF4dWZWeHVYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpNXdMVzF2WkMxa2NtRm5aMmx1WnlBdWNDMVVZV0pDWVhJdGRHRmlMbkF0Ylc5a0xXUnlZV2RuYVc1bklIdGNiaUFnZEhKaGJuTnBkR2x2YmpvZ2JtOXVaVHRjYm4xY2JseHVMeW9nUlc1a0lIUmhZbUpoY2k1amMzTWdLaTljYmlKZGZRPT0gKi8=",
+ "headers": [
+ [
+ "content-type",
+ "text/css"
+ ]
+ ],
+ "ok": true,
+ "status": 200,
+ "status_text": ""
+ }
+ }
+ },
+ "colab_type": "code",
+ "executionInfo": {
+ "elapsed": 13863,
+ "status": "ok",
+ "timestamp": 1574701755053,
+ "user": {
+ "displayName": "Michele Pasin",
+ "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mBu8LVjIGgontF2Wax51BoL5KFx8esezX3bUmaa0g=s64",
+ "userId": "10309320684375994511"
+ },
+ "user_tz": 0
+ },
+ "id": "HvPf2W1HiLoE",
+ "outputId": "448714d9-df07-47e8-b3e4-9c963e3021d7"
+ },
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "8549169e2ba046c29ab3adeb6a09c465",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ " 0%| | 0/10 [00:00, ?it/s]"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "{'results': [{'geo': {'cities': [{'geonames_id': 5072006, 'name': 'Lincoln'}], 'countries': [{'code': 'US', 'geonames_id': 6252001, 'name': 'United States'}], 'states': [{'code': 'US-NE', 'geonames_id': 5073708, 'name': 'Nebraska'}]}, 'input': {'city': 'Lincoln', 'country': 'United States', 'name': 'University of Nebraska–Lincoln', 'state': 'Nebraska'}, 'institutes': [{'institute': {'city': 'Lincoln', 'country': 'United States', 'id': 'grid.24434.35', 'name': 'University of Nebraska–Lincoln', 'state': 'Nebraska'}, 'metadata': {'requires_manual_review': False}}]}]}\n",
+ "{'results': [{'geo': {'cities': [{'geonames_id': 112931, 'name': 'Tehran'}], 'countries': [{'code': 'IR', 'geonames_id': 130758, 'name': 'Iran'}], 'states': [{'code': None, 'geonames_id': 110791, 'name': 'Tehran'}]}, 'input': {'city': 'Tehran', 'country': 'Iran', 'name': 'Tarbiat Modares University', 'state': ''}, 'institutes': [{'institute': {'city': 'Tehran', 'country': 'Iran', 'id': 'grid.412266.5', 'name': 'Tarbiat Modares University', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}\n",
+ "{'results': [{'geo': {'cities': [{'geonames_id': 4931972, 'name': 'Cambridge'}], 'countries': [{'code': 'US', 'geonames_id': 6252001, 'name': 'United States'}], 'states': [{'code': 'US-MA', 'geonames_id': 6254926, 'name': 'Massachusetts'}]}, 'input': {'city': 'Cambridge', 'country': 'United States', 'name': 'Harvard University', 'state': 'Massachusetts'}, 'institutes': [{'institute': {'city': 'Cambridge', 'country': 'United States', 'id': 'grid.38142.3c', 'name': 'Harvard University', 'state': 'Massachusetts'}, 'metadata': {'requires_manual_review': False}}]}]}\n",
+ "{'results': [{'geo': {'cities': [{'geonames_id': 1816670, 'name': 'Beijing'}], 'countries': [{'code': 'CN', 'geonames_id': 1814991, 'name': 'China'}], 'states': [{'code': None, 'geonames_id': 2038349, 'name': 'Beijing'}]}, 'input': {'city': 'Beijing', 'country': 'China', 'name': 'China Academy of Chinese Medical Sciences', 'state': ''}, 'institutes': [{'institute': {'city': 'Beijing', 'country': 'China', 'id': 'grid.410318.f', 'name': 'China Academy of Chinese Medical Sciences', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}\n",
+ "{'results': [{'geo': {'cities': [{'geonames_id': 2034937, 'name': 'Shenyang'}], 'countries': [{'code': 'CN', 'geonames_id': 1814991, 'name': 'China'}], 'states': [{'code': None, 'geonames_id': 2036115, 'name': 'Liaoning'}]}, 'input': {'city': 'Shenyang', 'country': 'China', 'name': 'Liaoning University', 'state': ''}, 'institutes': [{'institute': {'city': 'Shenyang', 'country': 'China', 'id': 'grid.411356.4', 'name': 'Liaoning University', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}\n",
+ "{'results': [{'geo': {'cities': [{'geonames_id': 1814087, 'name': 'Dalian'}], 'countries': [{'code': 'CN', 'geonames_id': 1814991, 'name': 'China'}], 'states': [{'code': None, 'geonames_id': 2036115, 'name': 'Liaoning'}]}, 'input': {'city': 'Dalian', 'country': 'China', 'name': 'Liaoning Normal University', 'state': ''}, 'institutes': [{'institute': {'city': 'Dalian', 'country': 'China', 'id': 'grid.440818.1', 'name': 'Liaoning Normal University', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}\n",
+ "{'results': [{'geo': {'cities': [], 'countries': [], 'states': []}, 'input': {'city': '', 'country': '', 'name': 'P.G. Department of Zoology and Research Centre, Shri Shiv Chhatrapati College of Arts, Commerce and Science, Junnar 410502, Pune, India.', 'state': ''}, 'institutes': []}]}\n",
+ "{'results': [{'geo': {'cities': [{'geonames_id': 1835848, 'name': 'Seoul'}], 'countries': [{'code': 'KR', 'geonames_id': 1835841, 'name': 'South Korea'}], 'states': [{'code': None, 'geonames_id': 1835847, 'name': 'Seoul'}]}, 'input': {'city': 'Seoul', 'country': 'South Korea', 'name': 'Sungkyunkwan University', 'state': ''}, 'institutes': [{'institute': {'city': 'Seoul', 'country': 'South Korea', 'id': 'grid.264381.a', 'name': 'Sungkyunkwan University', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}\n",
+ "{'results': [{'geo': {'cities': [{'geonames_id': 1259229, 'name': 'Pune'}], 'countries': [{'code': 'IN', 'geonames_id': 1269750, 'name': 'India'}], 'states': [{'code': None, 'geonames_id': 1264418, 'name': 'Maharashtra'}]}, 'input': {'city': 'Pune', 'country': 'India', 'name': 'Centre for Materials for Electronics Technology', 'state': ''}, 'institutes': [{'institute': {'city': 'Pune', 'country': 'India', 'id': 'grid.494569.3', 'name': 'Centre for Materials for Electronics Technology', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}\n",
+ "{'results': [{'geo': {'cities': [{'geonames_id': 2988507, 'name': 'Paris'}], 'countries': [{'code': 'FR', 'geonames_id': 3017382, 'name': 'France'}], 'states': [{'code': None, 'geonames_id': 3012874, 'name': 'Ile-de-France'}]}, 'input': {'city': '', 'country': '', 'name': 'Institut Necker-Enfants Malades (INEM), INSERM U1151-CNRS UMR8253, Université de Paris, Faculté de Médecine, 156 rue de Vaugirard, 75730 Paris Cedex 15, France', 'state': ''}, 'institutes': [{'institute': {'city': 'Paris', 'country': 'France', 'id': 'grid.508487.6', 'name': 'Université Paris Cité', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}\n"
+ ]
+ }
+ ],
+ "source": [
+ "for d in pbar(affiliations):\n",
+ " res = dsl.query(f\"\"\"extract_affiliations(name=\"{d[0]}\", city=\"{d[1]}\", state=\"{d[2]}\", country=\"{d[3]}\")\"\"\")\n",
+ " time.sleep(0.5)\n",
+ " print(res.json)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "colab_type": "text",
+ "id": "dORmKMr-iLld"
+ },
+ "source": [
+ "If we combine the affiliation data into a single long string, we can also perform the same king of operation using the **unstructured** affiliation matching. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 256,
+ "resources": {
+ "http://localhost:8080/nbextensions/google.colab/colabwidgets/controls.css": {
+ "data": "LyogQ29weXJpZ2h0IChjKSBKdXB5dGVyIERldmVsb3BtZW50IFRlYW0uCiAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTW9kaWZpZWQgQlNEIExpY2Vuc2UuCiAqLwoKIC8qIFdlIGltcG9ydCBhbGwgb2YgdGhlc2UgdG9nZXRoZXIgaW4gYSBzaW5nbGUgY3NzIGZpbGUgYmVjYXVzZSB0aGUgV2VicGFjawpsb2FkZXIgc2VlcyBvbmx5IG9uZSBmaWxlIGF0IGEgdGltZS4gVGhpcyBhbGxvd3MgcG9zdGNzcyB0byBzZWUgdGhlIHZhcmlhYmxlCmRlZmluaXRpb25zIHdoZW4gdGhleSBhcmUgdXNlZC4gKi8KCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnwgQ29weXJpZ2h0IChjKSBKdXB5dGVyIERldmVsb3BtZW50IFRlYW0uCnwgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNb2RpZmllZCBCU0QgTGljZW5zZS4KfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKIC8qClRoaXMgZmlsZSBpcyBjb3BpZWQgZnJvbSB0aGUgSnVweXRlckxhYiBwcm9qZWN0IHRvIGRlZmluZSBkZWZhdWx0IHN0eWxpbmcgZm9yCndoZW4gdGhlIHdpZGdldCBzdHlsaW5nIGlzIGNvbXBpbGVkIGRvd24gdG8gZWxpbWluYXRlIENTUyB2YXJpYWJsZXMuIFdlIG1ha2Ugb25lCmNoYW5nZSAtIHdlIGNvbW1lbnQgb3V0IHRoZSBmb250IGltcG9ydCBiZWxvdy4KKi8KCiAvKioKICogVGhlIG1hdGVyaWFsIGRlc2lnbiBjb2xvcnMgYXJlIGFkYXB0ZWQgZnJvbSBnb29nbGUtbWF0ZXJpYWwtY29sb3IgdjEuMi42CiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5sZXZhbi9nb29nbGUtbWF0ZXJpYWwtY29sb3IKICogaHR0cHM6Ly9naXRodWIuY29tL2RhbmxldmFuL2dvb2dsZS1tYXRlcmlhbC1jb2xvci9ibG9iL2Y2N2NhNWY0MDI4YjJmMWIzNDg2MmY2NGIwY2E2NzMyM2Y5MWIwODgvZGlzdC9wYWxldHRlLnZhci5jc3MKICoKICogVGhlIGxpY2Vuc2UgZm9yIHRoZSBtYXRlcmlhbCBkZXNpZ24gY29sb3IgQ1NTIHZhcmlhYmxlcyBpcyBhcyBmb2xsb3dzIChzZWUKICogaHR0cHM6Ly9naXRodWIuY29tL2RhbmxldmFuL2dvb2dsZS1tYXRlcmlhbC1jb2xvci9ibG9iL2Y2N2NhNWY0MDI4YjJmMWIzNDg2MmY2NGIwY2E2NzMyM2Y5MWIwODgvTElDRU5TRSkKICoKICogVGhlIE1JVCBMaWNlbnNlIChNSVQpCiAqCiAqIENvcHlyaWdodCAoYykgMjAxNCBEYW4gTGUgVmFuCiAqCiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwogKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwogKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgogKgogKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgogKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KICoKICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQogKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAqIFNPRlRXQVJFLgogKi8KCiAvKgpUaGUgZm9sbG93aW5nIENTUyB2YXJpYWJsZXMgZGVmaW5lIHRoZSBtYWluLCBwdWJsaWMgQVBJIGZvciBzdHlsaW5nIEp1cHl0ZXJMYWIuClRoZXNlIHZhcmlhYmxlcyBzaG91bGQgYmUgdXNlZCBieSBhbGwgcGx1Z2lucyB3aGVyZXZlciBwb3NzaWJsZS4gSW4gb3RoZXIKd29yZHMsIHBsdWdpbnMgc2hvdWxkIG5vdCBkZWZpbmUgY3VzdG9tIGNvbG9ycywgc2l6ZXMsIGV0YyB1bmxlc3MgYWJzb2x1dGVseQpuZWNlc3NhcnkuIFRoaXMgZW5hYmxlcyB1c2VycyB0byBjaGFuZ2UgdGhlIHZpc3VhbCB0aGVtZSBvZiBKdXB5dGVyTGFiCmJ5IGNoYW5naW5nIHRoZXNlIHZhcmlhYmxlcy4KCk1hbnkgdmFyaWFibGVzIGFwcGVhciBpbiBhbiBvcmRlcmVkIHNlcXVlbmNlICgwLDEsMiwzKS4gVGhlc2Ugc2VxdWVuY2VzCmFyZSBkZXNpZ25lZCB0byB3b3JrIHdlbGwgdG9nZXRoZXIsIHNvIGZvciBleGFtcGxlLCBgLS1qcC1ib3JkZXItY29sb3IxYCBzaG91bGQKYmUgdXNlZCB3aXRoIGAtLWpwLWxheW91dC1jb2xvcjFgLiBUaGUgbnVtYmVycyBoYXZlIHRoZSBmb2xsb3dpbmcgbWVhbmluZ3M6CgoqIDA6IHN1cGVyLXByaW1hcnksIHJlc2VydmVkIGZvciBzcGVjaWFsIGVtcGhhc2lzCiogMTogcHJpbWFyeSwgbW9zdCBpbXBvcnRhbnQgdW5kZXIgbm9ybWFsIHNpdHVhdGlvbnMKKiAyOiBzZWNvbmRhcnksIG5leHQgbW9zdCBpbXBvcnRhbnQgdW5kZXIgbm9ybWFsIHNpdHVhdGlvbnMKKiAzOiB0ZXJ0aWFyeSwgbmV4dCBtb3N0IGltcG9ydGFudCB1bmRlciBub3JtYWwgc2l0dWF0aW9ucwoKVGhyb3VnaG91dCBKdXB5dGVyTGFiLCB3ZSBhcmUgbW9zdGx5IGZvbGxvd2luZyBwcmluY2lwbGVzIGZyb20gR29vZ2xlJ3MKTWF0ZXJpYWwgRGVzaWduIHdoZW4gc2VsZWN0aW5nIGNvbG9ycy4gV2UgYXJlIG5vdCwgaG93ZXZlciwgZm9sbG93aW5nCmFsbCBvZiBNRCBhcyBpdCBpcyBub3Qgb3B0aW1pemVkIGZvciBkZW5zZSwgaW5mb3JtYXRpb24gcmljaCBVSXMuCiovCgogLyoKICogT3B0aW9uYWwgbW9ub3NwYWNlIGZvbnQgZm9yIGlucHV0L291dHB1dCBwcm9tcHQuCiAqLwoKIC8qIENvbW1lbnRlZCBvdXQgaW4gaXB5d2lkZ2V0cyBzaW5jZSB3ZSBkb24ndCBuZWVkIGl0LiAqLwoKIC8qIEBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9Um9ib3RvK01vbm8nKTsgKi8KCiAvKgogKiBBZGRlZCBmb3IgY29tcGFiaXRpbGl0eSB3aXRoIG91dHB1dCBhcmVhCiAqLwoKIDpyb290IHsKCiAgLyogQm9yZGVycwoKICBUaGUgZm9sbG93aW5nIHZhcmlhYmxlcywgc3BlY2lmeSB0aGUgdmlzdWFsIHN0eWxpbmcgb2YgYm9yZGVycyBpbiBKdXB5dGVyTGFiLgogICAqLwoKICAvKiBVSSBGb250cwoKICBUaGUgVUkgZm9udCBDU1MgdmFyaWFibGVzIGFyZSB1c2VkIGZvciB0aGUgdHlwb2dyYXBoeSBhbGwgb2YgdGhlIEp1cHl0ZXJMYWIKICB1c2VyIGludGVyZmFjZSBlbGVtZW50cyB0aGF0IGFyZSBub3QgZGlyZWN0bHkgdXNlciBnZW5lcmF0ZWQgY29udGVudC4KICAqLyAvKiBCYXNlIGZvbnQgc2l6ZSAqLyAvKiBFbnN1cmVzIHB4IHBlcmZlY3QgRm9udEF3ZXNvbWUgaWNvbnMgKi8KCiAgLyogVXNlIHRoZXNlIGZvbnQgY29sb3JzIGFnYWluc3QgdGhlIGNvcnJlc3BvbmRpbmcgbWFpbiBsYXlvdXQgY29sb3JzLgogICAgIEluIGEgbGlnaHQgdGhlbWUsIHRoZXNlIGdvIGZyb20gZGFyayB0byBsaWdodC4KICAqLwoKICAvKiBVc2UgdGhlc2UgYWdhaW5zdCB0aGUgYnJhbmQvYWNjZW50L3dhcm4vZXJyb3IgY29sb3JzLgogICAgIFRoZXNlIHdpbGwgdHlwaWNhbGx5IGdvIGZyb20gbGlnaHQgdG8gZGFya2VyLCBpbiBib3RoIGEgZGFyayBhbmQgbGlnaHQgdGhlbWUKICAgKi8KCiAgLyogQ29udGVudCBGb250cwoKICBDb250ZW50IGZvbnQgdmFyaWFibGVzIGFyZSB1c2VkIGZvciB0eXBvZ3JhcGh5IG9mIHVzZXIgZ2VuZXJhdGVkIGNvbnRlbnQuCiAgKi8gLyogQmFzZSBmb250IHNpemUgKi8KCgogIC8qIExheW91dAoKICBUaGUgZm9sbG93aW5nIGFyZSB0aGUgbWFpbiBsYXlvdXQgY29sb3JzIHVzZSBpbiBKdXB5dGVyTGFiLiBJbiBhIGxpZ2h0CiAgdGhlbWUgdGhlc2Ugd291bGQgZ28gZnJvbSBsaWdodCB0byBkYXJrLgogICovCgogIC8qIEJyYW5kL2FjY2VudCAqLwoKICAvKiBTdGF0ZSBjb2xvcnMgKHdhcm4sIGVycm9yLCBzdWNjZXNzLCBpbmZvKSAqLwoKICAvKiBDZWxsIHNwZWNpZmljIHN0eWxlcyAqLwogIC8qIEEgY3VzdG9tIGJsZW5kIG9mIE1EIGdyZXkgYW5kIGJsdWUgNjAwCiAgICogU2VlIGh0dHBzOi8vbWV5ZXJ3ZWIuY29tL2VyaWMvdG9vbHMvY29sb3ItYmxlbmQvIzU0NkU3QToxRTg4RTU6NTpoZXggKi8KICAvKiBBIGN1c3RvbSBibGVuZCBvZiBNRCBncmV5IGFuZCBvcmFuZ2UgNjAwCiAgICogaHR0cHM6Ly9tZXllcndlYi5jb20vZXJpYy90b29scy9jb2xvci1ibGVuZC8jNTQ2RTdBOkY0NTExRTo1OmhleCAqLwoKICAvKiBOb3RlYm9vayBzcGVjaWZpYyBzdHlsZXMgKi8KCiAgLyogQ29uc29sZSBzcGVjaWZpYyBzdHlsZXMgKi8KCiAgLyogVG9vbGJhciBzcGVjaWZpYyBzdHlsZXMgKi8KfQoKIC8qIENvcHlyaWdodCAoYykgSnVweXRlciBEZXZlbG9wbWVudCBUZWFtLgogKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1vZGlmaWVkIEJTRCBMaWNlbnNlLgogKi8KCiAvKgogKiBXZSBhc3N1bWUgdGhhdCB0aGUgQ1NTIHZhcmlhYmxlcyBpbgogKiBodHRwczovL2dpdGh1Yi5jb20vanVweXRlcmxhYi9qdXB5dGVybGFiL2Jsb2IvbWFzdGVyL3NyYy9kZWZhdWx0LXRoZW1lL3ZhcmlhYmxlcy5jc3MKICogaGF2ZSBiZWVuIGRlZmluZWQuCiAqLwoKIC8qIFRoaXMgZmlsZSBoYXMgY29kZSBkZXJpdmVkIGZyb20gUGhvc3Bob3JKUyBDU1MgZmlsZXMsIGFzIG5vdGVkIGJlbG93LiBUaGUgbGljZW5zZSBmb3IgdGhpcyBQaG9zcGhvckpTIGNvZGUgaXM6CgpDb3B5cmlnaHQgKGMpIDIwMTQtMjAxNywgUGhvc3Bob3JKUyBDb250cmlidXRvcnMKQWxsIHJpZ2h0cyByZXNlcnZlZC4KClJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAptb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKCiogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzCiAgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCgoqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCiAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCgoqIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIGNvcHlyaWdodCBob2xkZXIgbm9yIHRoZSBuYW1lcyBvZiBpdHMKICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgpUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIKQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQpJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQpGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTApEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgpTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgpDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLApPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQpPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKKi8KCiAvKgogKiBUaGUgZm9sbG93aW5nIHNlY3Rpb24gaXMgZGVyaXZlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9waG9zcGhvcmpzL3Bob3NwaG9yL2Jsb2IvMjNiOWQwNzVlYmM1YjczYWIxNDhiNmViZmMyMGFmOTdmODU3MTRjNC9wYWNrYWdlcy93aWRnZXRzL3N0eWxlL3RhYmJhci5jc3MgCiAqIFdlJ3ZlIHNjb3BlZCB0aGUgcnVsZXMgc28gdGhhdCB0aGV5IGFyZSBjb25zaXN0ZW50IHdpdGggZXhhY3RseSBvdXIgY29kZS4KICovCgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIHsKICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICBkaXNwbGF5OiBmbGV4OwogIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7CiAgdXNlci1zZWxlY3Q6IG5vbmU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXJbZGF0YS1vcmllbnRhdGlvbj0naG9yaXpvbnRhbCddIHsKICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7CiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7CiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhcltkYXRhLW9yaWVudGF0aW9uPSd2ZXJ0aWNhbCddIHsKICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsOwogIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgPiAucC1UYWJCYXItY29udGVudCB7CiAgbWFyZ2luOiAwOwogIHBhZGRpbmc6IDA7CiAgZGlzcGxheTogLXdlYmtpdC1ib3g7CiAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgZGlzcGxheTogZmxleDsKICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAtbXMtZmxleDogMSAxIGF1dG87CiAgICAgICAgICBmbGV4OiAxIDEgYXV0bzsKICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXJbZGF0YS1vcmllbnRhdGlvbj0naG9yaXpvbnRhbCddID4gLnAtVGFiQmFyLWNvbnRlbnQgewogIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDsKICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93Owp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyW2RhdGEtb3JpZW50YXRpb249J3ZlcnRpY2FsJ10gPiAucC1UYWJCYXItY29udGVudCB7CiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWIgewogIGRpc3BsYXk6IC13ZWJraXQtYm94OwogIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogIGRpc3BsYXk6IGZsZXg7CiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOwogIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICBvdmVyZmxvdzogaGlkZGVuOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWJJY29uLAouanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkNsb3NlSWNvbiB7CiAgLXdlYmtpdC1ib3gtZmxleDogMDsKICAgICAgLW1zLWZsZXg6IDAgMCBhdXRvOwogICAgICAgICAgZmxleDogMCAwIGF1dG87Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkxhYmVsIHsKICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAtbXMtZmxleDogMSAxIGF1dG87CiAgICAgICAgICBmbGV4OiAxIDEgYXV0bzsKICBvdmVyZmxvdzogaGlkZGVuOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYi5wLW1vZC1oaWRkZW4gewogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhci5wLW1vZC1kcmFnZ2luZyAucC1UYWJCYXItdGFiIHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIucC1tb2QtZHJhZ2dpbmdbZGF0YS1vcmllbnRhdGlvbj0naG9yaXpvbnRhbCddIC5wLVRhYkJhci10YWIgewogIGxlZnQ6IDA7CiAgLXdlYmtpdC10cmFuc2l0aW9uOiBsZWZ0IDE1MG1zIGVhc2U7CiAgdHJhbnNpdGlvbjogbGVmdCAxNTBtcyBlYXNlOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyLnAtbW9kLWRyYWdnaW5nW2RhdGEtb3JpZW50YXRpb249J3ZlcnRpY2FsJ10gLnAtVGFiQmFyLXRhYiB7CiAgdG9wOiAwOwogIC13ZWJraXQtdHJhbnNpdGlvbjogdG9wIDE1MG1zIGVhc2U7CiAgdHJhbnNpdGlvbjogdG9wIDE1MG1zIGVhc2U7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIucC1tb2QtZHJhZ2dpbmcgLnAtVGFiQmFyLXRhYi5wLW1vZC1kcmFnZ2luZyB7CiAgLXdlYmtpdC10cmFuc2l0aW9uOiBub25lOwogIHRyYW5zaXRpb246IG5vbmU7Cn0KCiAvKiBFbmQgdGFiYmFyLmNzcyAqLwoKIDpyb290IHsgLyogbWFyZ2luIGJldHdlZW4gaW5saW5lIGVsZW1lbnRzICovCgogICAgLyogRnJvbSBNYXRlcmlhbCBEZXNpZ24gTGl0ZSAqLwp9CgogLmp1cHl0ZXItd2lkZ2V0cyB7CiAgICBtYXJnaW46IDJweDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGNvbG9yOiBibGFjazsKICAgIG92ZXJmbG93OiB2aXNpYmxlOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy5qdXB5dGVyLXdpZGdldHMtZGlzY29ubmVjdGVkOjpiZWZvcmUgewogICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICBoZWlnaHQ6IDI4cHg7Cn0KCiAuanAtT3V0cHV0LXJlc3VsdCA+IC5qdXB5dGVyLXdpZGdldHMgewogICAgbWFyZ2luLWxlZnQ6IDA7CiAgICBtYXJnaW4tcmlnaHQ6IDA7Cn0KCiAvKiB2Ym94IGFuZCBoYm94ICovCgogLndpZGdldC1pbmxpbmUtaGJveCB7CiAgICAvKiBIb3Jpem9udGFsIHdpZGdldHMgKi8KICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOwogICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7CiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAtd2Via2l0LWJveC1hbGlnbjogYmFzZWxpbmU7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGJhc2VsaW5lOwogICAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7Cn0KCiAud2lkZ2V0LWlubGluZS12Ym94IHsKICAgIC8qIFZlcnRpY2FsIFdpZGdldHMgKi8KICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwp9CgogLndpZGdldC1ib3ggewogICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBtYXJnaW46IDA7CiAgICBvdmVyZmxvdzogYXV0bzsKfQoKIC53aWRnZXQtZ3JpZGJveCB7CiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICBkaXNwbGF5OiBncmlkOwogICAgbWFyZ2luOiAwOwogICAgb3ZlcmZsb3c6IGF1dG87Cn0KCiAud2lkZ2V0LWhib3ggewogICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOwogICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7CiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7Cn0KCiAud2lkZ2V0LXZib3ggewogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgogLyogR2VuZXJhbCBCdXR0b24gU3R5bGluZyAqLwoKIC5qdXB5dGVyLWJ1dHRvbiB7CiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7CiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4OwogICAgcGFkZGluZy10b3A6IDBweDsKICAgIHBhZGRpbmctYm90dG9tOiAwcHg7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgY3Vyc29yOiBwb2ludGVyOwoKICAgIGhlaWdodDogMjhweDsKICAgIGJvcmRlcjogMHB4IHNvbGlkOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CgogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0VFRUVFRTsKICAgIGJvcmRlci1jb2xvcjogI0UwRTBFMDsKICAgIGJvcmRlcjogbm9uZTsKfQoKIC5qdXB5dGVyLWJ1dHRvbiBpLmZhIHsKICAgIG1hcmdpbi1yaWdodDogNHB4OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7Cn0KCiAuanVweXRlci1idXR0b246ZW1wdHk6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICJcMjAwYiI7IC8qIHplcm8td2lkdGggc3BhY2UgKi8KfQoKIC5qdXB5dGVyLXdpZGdldHMuanVweXRlci1idXR0b246ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLmp1cHl0ZXItYnV0dG9uIGkuZmEuY2VudGVyIHsKICAgIG1hcmdpbi1yaWdodDogMDsKfQoKIC5qdXB5dGVyLWJ1dHRvbjpob3ZlcjplbmFibGVkLCAuanVweXRlci1idXR0b246Zm9jdXM6ZW5hYmxlZCB7CiAgICAvKiBNRCBMaXRlIDJkcCBzaGFkb3cgKi8KICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAuMTQpLAogICAgICAgICAgICAgICAgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAuMiksCiAgICAgICAgICAgICAgICAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIC4xMik7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgLjE0KSwKICAgICAgICAgICAgICAgIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgLjIpLAogICAgICAgICAgICAgICAgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTIpOwp9CgogLmp1cHl0ZXItYnV0dG9uOmFjdGl2ZSwgLmp1cHl0ZXItYnV0dG9uLm1vZC1hY3RpdmUgewogICAgLyogTUQgTGl0ZSA0ZHAgc2hhZG93ICovCiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNHB4IDVweCAwIHJnYmEoMCwgMCwgMCwgLjE0KSwKICAgICAgICAgICAgICAgIDAgMXB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIC4xMiksCiAgICAgICAgICAgICAgICAwIDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIC4yKTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCA0cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTQpLAogICAgICAgICAgICAgICAgMCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgLjEyKSwKICAgICAgICAgICAgICAgIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgLjIpOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0JEQkRCRDsKfQoKIC5qdXB5dGVyLWJ1dHRvbjpmb2N1czplbmFibGVkIHsKICAgIG91dGxpbmU6IDFweCBzb2xpZCAjNjRCNUY2Owp9CgogLyogQnV0dG9uICJQcmltYXJ5IiBTdHlsaW5nICovCgogLmp1cHl0ZXItYnV0dG9uLm1vZC1wcmltYXJ5IHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEuMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NkYzOwp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1wcmltYXJ5Lm1vZC1hY3RpdmUgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTk3NkQyOwp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1wcmltYXJ5OmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMxOTc2RDI7Cn0KCiAvKiBCdXR0b24gIlN1Y2Nlc3MiIFN0eWxpbmcgKi8KCiAuanVweXRlci1idXR0b24ubW9kLXN1Y2Nlc3MgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICM0Q0FGNTA7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLXN1Y2Nlc3MubW9kLWFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzODhFM0M7CiB9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1zdWNjZXNzOmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzODhFM0M7CiB9CgogLyogQnV0dG9uICJJbmZvIiBTdHlsaW5nICovCgogLmp1cHl0ZXItYnV0dG9uLm1vZC1pbmZvIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEuMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCQ0Q0Owp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1pbmZvLm1vZC1hY3RpdmUgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5N0E3Owp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1pbmZvOmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDk3QTc7Cn0KCiAvKiBCdXR0b24gIldhcm5pbmciIFN0eWxpbmcgKi8KCiAuanVweXRlci1idXR0b24ubW9kLXdhcm5pbmcgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGRjk4MDA7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLXdhcm5pbmcubW9kLWFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGNTdDMDA7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLXdhcm5pbmc6YWN0aXZlIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0Y1N0MwMDsKfQoKIC8qIEJ1dHRvbiAiRGFuZ2VyIiBTdHlsaW5nICovCgogLmp1cHl0ZXItYnV0dG9uLm1vZC1kYW5nZXIgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGNDQzMzY7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLWRhbmdlci5tb2QtYWN0aXZlIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0QzMkYyRjsKfQoKIC5qdXB5dGVyLWJ1dHRvbi5tb2QtZGFuZ2VyOmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNEMzJGMkY7Cn0KCiAvKiBXaWRnZXQgQnV0dG9uKi8KCiAud2lkZ2V0LWJ1dHRvbiwgLndpZGdldC10b2dnbGUtYnV0dG9uIHsKICAgIHdpZHRoOiAxNDhweDsKfQoKIC8qIFdpZGdldCBMYWJlbCBTdHlsaW5nICovCgogLyogT3ZlcnJpZGUgQm9vdHN0cmFwIGxhYmVsIGNzcyAqLwoKIC5qdXB5dGVyLXdpZGdldHMgbGFiZWwgewogICAgbWFyZ2luLWJvdHRvbTogMDsKICAgIG1hcmdpbi1ib3R0b206IGluaXRpYWw7Cn0KCiAud2lkZ2V0LWxhYmVsLWJhc2ljIHsKICAgIC8qIEJhc2ljIExhYmVsICovCiAgICBjb2xvcjogYmxhY2s7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWxhYmVsIHsKICAgIC8qIExhYmVsICovCiAgICBjb2xvcjogYmxhY2s7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWlubGluZS1oYm94IC53aWRnZXQtbGFiZWwgewogICAgLyogSG9yaXpvbnRhbCBXaWRnZXQgTGFiZWwgKi8KICAgIGNvbG9yOiBibGFjazsKICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgbWFyZ2luLXJpZ2h0OiA4cHg7CiAgICB3aWR0aDogODBweDsKICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwp9CgogLndpZGdldC1pbmxpbmUtdmJveCAud2lkZ2V0LWxhYmVsIHsKICAgIC8qIFZlcnRpY2FsIFdpZGdldCBMYWJlbCAqLwogICAgY29sb3I6IGJsYWNrOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAvKiBXaWRnZXQgUmVhZG91dCBTdHlsaW5nICovCgogLndpZGdldC1yZWFkb3V0IHsKICAgIGNvbG9yOiBibGFjazsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIGhlaWdodDogMjhweDsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCiAud2lkZ2V0LXJlYWRvdXQub3ZlcmZsb3cgewogICAgLyogT3ZlcmZsb3dpbmcgUmVhZG91dCAqLwoKICAgIC8qIEZyb20gTWF0ZXJpYWwgRGVzaWduIExpdGUKICAgICAgICBzaGFkb3cta2V5LXVtYnJhLW9wYWNpdHk6IDAuMjsKICAgICAgICBzaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHk6IDAuMTQ7CiAgICAgICAgc2hhZG93LWFtYmllbnQtc2hhZG93LW9wYWNpdHk6IDAuMTI7CiAgICAgKi8KICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAuMiksCiAgICAgICAgICAgICAgICAgICAgICAgIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgLjE0KSwKICAgICAgICAgICAgICAgICAgICAgICAgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTIpOwoKICAgIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgLjIpLAogICAgICAgICAgICAgICAgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAuMTQpLAogICAgICAgICAgICAgICAgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTIpOwp9CgogLndpZGdldC1pbmxpbmUtaGJveCAud2lkZ2V0LXJlYWRvdXQgewogICAgLyogSG9yaXpvbnRhbCBSZWFkb3V0ICovCiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBtYXgtd2lkdGg6IDE0OHB4OwogICAgbWluLXdpZHRoOiA3MnB4OwogICAgbWFyZ2luLWxlZnQ6IDRweDsKfQoKIC53aWRnZXQtaW5saW5lLXZib3ggLndpZGdldC1yZWFkb3V0IHsKICAgIC8qIFZlcnRpY2FsIFJlYWRvdXQgKi8KICAgIG1hcmdpbi10b3A6IDRweDsKICAgIC8qIGFzIHdpZGUgYXMgdGhlIHdpZGdldCAqLwogICAgd2lkdGg6IGluaGVyaXQ7Cn0KCiAvKiBXaWRnZXQgQ2hlY2tib3ggU3R5bGluZyAqLwoKIC53aWRnZXQtY2hlY2tib3ggewogICAgd2lkdGg6IDMwMHB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWNoZWNrYm94IGlucHV0W3R5cGU9ImNoZWNrYm94Il0gewogICAgbWFyZ2luOiAwcHggOHB4IDBweCAwcHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKICAgIGZvbnQtc2l6ZTogbGFyZ2U7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGNlbnRlcjsKICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7Cn0KCiAvKiBXaWRnZXQgVmFsaWQgU3R5bGluZyAqLwoKIC53aWRnZXQtdmFsaWQgewogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICB3aWR0aDogMTQ4cHg7CiAgICBmb250LXNpemU6IDEzcHg7Cn0KCiAud2lkZ2V0LXZhbGlkIGk6YmVmb3JlIHsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgbWFyZ2luLXJpZ2h0OiA0cHg7CiAgICBtYXJnaW4tbGVmdDogNHB4OwoKICAgIC8qIGZyb20gdGhlIGZhIGNsYXNzIGluIEZvbnRBd2Vzb21lOiBodHRwczovL2dpdGh1Yi5jb20vRm9ydEF3ZXNvbWUvRm9udC1Bd2Vzb21lL2Jsb2IvNDkxMDBjN2MzYTdiNThkNTBiYWE3MWVmZWYxMWFmNDFhNjZiMDNkMy9jc3MvZm9udC1hd2Vzb21lLmNzcyNMMTQgKi8KICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIDE0cHgvMSBGb250QXdlc29tZTsKICAgIGZvbnQtc2l6ZTogaW5oZXJpdDsKICAgIHRleHQtcmVuZGVyaW5nOiBhdXRvOwogICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwp9CgogLndpZGdldC12YWxpZC5tb2QtdmFsaWQgaTpiZWZvcmUgewogICAgY29udGVudDogIlxmMDBjIjsKICAgIGNvbG9yOiBncmVlbjsKfQoKIC53aWRnZXQtdmFsaWQubW9kLWludmFsaWQgaTpiZWZvcmUgewogICAgY29udGVudDogIlxmMDBkIjsKICAgIGNvbG9yOiByZWQ7Cn0KCiAud2lkZ2V0LXZhbGlkLm1vZC12YWxpZCAud2lkZ2V0LXZhbGlkLXJlYWRvdXQgewogICAgZGlzcGxheTogbm9uZTsKfQoKIC8qIFdpZGdldCBUZXh0IGFuZCBUZXh0QXJlYSBTdHlpbmcgKi8KCiAud2lkZ2V0LXRleHRhcmVhLCAud2lkZ2V0LXRleHQgewogICAgd2lkdGg6IDMwMHB4Owp9CgogLndpZGdldC10ZXh0IGlucHV0W3R5cGU9InRleHQiXSwgLndpZGdldC10ZXh0IGlucHV0W3R5cGU9Im51bWJlciJdewogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LXRleHQgaW5wdXRbdHlwZT0idGV4dCJdOmRpc2FibGVkLCAud2lkZ2V0LXRleHQgaW5wdXRbdHlwZT0ibnVtYmVyIl06ZGlzYWJsZWQsIC53aWRnZXQtdGV4dGFyZWEgdGV4dGFyZWE6ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLndpZGdldC10ZXh0IGlucHV0W3R5cGU9InRleHQiXSwgLndpZGdldC10ZXh0IGlucHV0W3R5cGU9Im51bWJlciJdLCAud2lkZ2V0LXRleHRhcmVhIHRleHRhcmVhIHsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44KTsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBtaW4td2lkdGg6IDA7IC8qIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgZm9yIHRoZSBmbGV4Ym94IHRvIHNocmluayB0aGlzIGlucHV0ICovCiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDsKfQoKIC53aWRnZXQtdGV4dGFyZWEgdGV4dGFyZWEgewogICAgaGVpZ2h0OiBpbmhlcml0OwogICAgd2lkdGg6IGluaGVyaXQ7Cn0KCiAud2lkZ2V0LXRleHQgaW5wdXQ6Zm9jdXMsIC53aWRnZXQtdGV4dGFyZWEgdGV4dGFyZWE6Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjNjRCNUY2Owp9CgogLyogV2lkZ2V0IFNsaWRlciAqLwoKIC53aWRnZXQtc2xpZGVyIC51aS1zbGlkZXIgewogICAgLyogU2xpZGVyIFRyYWNrICovCiAgICBib3JkZXI6IDFweCBzb2xpZCAjQkRCREJEOwogICAgYmFja2dyb3VuZDogI0JEQkRCRDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIGJvcmRlci1yYWRpdXM6IDBweDsKfQoKIC53aWRnZXQtc2xpZGVyIC51aS1zbGlkZXIgLnVpLXNsaWRlci1oYW5kbGUgewogICAgLyogU2xpZGVyIEhhbmRsZSAqLwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OyAvKiBmb2N1c2VkIHNsaWRlciBoYW5kbGVzIGFyZSBjb2xvcmVkIC0gc2VlIGJlbG93ICovCiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICB6LWluZGV4OiAxOwogICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgLyogT3ZlcnJpZGUganF1ZXJ5LXVpICovCn0KCiAvKiBPdmVycmlkZSBqcXVlcnktdWkgKi8KCiAud2lkZ2V0LXNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlOmhvdmVyLCAud2lkZ2V0LXNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlOmZvY3VzIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjMjE5NkYzOwp9CgogLndpZGdldC1zbGlkZXIgLnVpLXNsaWRlciAudWktc2xpZGVyLWhhbmRsZTphY3RpdmUgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZGMzsKICAgIGJvcmRlci1jb2xvcjogIzIxOTZGMzsKICAgIHotaW5kZXg6IDI7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4yKTsKICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpOwp9CgogLndpZGdldC1zbGlkZXIgIC51aS1zbGlkZXIgLnVpLXNsaWRlci1yYW5nZSB7CiAgICAvKiBJbnRlcnZhbCBiZXR3ZWVuIHRoZSB0d28gc3BlY2lmaWVkIHZhbHVlIG9mIGEgZG91YmxlIHNsaWRlciAqLwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgYmFja2dyb3VuZDogIzIxOTZGMzsKICAgIHotaW5kZXg6IDA7Cn0KCiAvKiBTaGFwZXMgb2YgU2xpZGVyIEhhbmRsZXMgKi8KCiAud2lkZ2V0LWhzbGlkZXIgLnVpLXNsaWRlciAudWktc2xpZGVyLWhhbmRsZSB7CiAgICB3aWR0aDogMTZweDsKICAgIGhlaWdodDogMTZweDsKICAgIG1hcmdpbi10b3A6IC03cHg7CiAgICBtYXJnaW4tbGVmdDogLTdweDsKICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgIHRvcDogMDsKfQoKIC53aWRnZXQtdnNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlIHsKICAgIHdpZHRoOiAxNnB4OwogICAgaGVpZ2h0OiAxNnB4OwogICAgbWFyZ2luLWJvdHRvbTogLTdweDsKICAgIG1hcmdpbi1sZWZ0OiAtN3B4OwogICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgbGVmdDogMDsKfQoKIC53aWRnZXQtaHNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItcmFuZ2UgewogICAgaGVpZ2h0OiA4cHg7CiAgICBtYXJnaW4tdG9wOiAtM3B4Owp9CgogLndpZGdldC12c2xpZGVyIC51aS1zbGlkZXIgLnVpLXNsaWRlci1yYW5nZSB7CiAgICB3aWR0aDogOHB4OwogICAgbWFyZ2luLWxlZnQ6IC0zcHg7Cn0KCiAvKiBIb3Jpem9udGFsIFNsaWRlciAqLwoKIC53aWRnZXQtaHNsaWRlciB7CiAgICB3aWR0aDogMzAwcHg7CiAgICBoZWlnaHQ6IDI4cHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKCiAgICAvKiBPdmVycmlkZSB0aGUgYWxpZ24taXRlbXMgYmFzZWxpbmUuIFRoaXMgd2F5LCB0aGUgZGVzY3JpcHRpb24gYW5kIHJlYWRvdXQKICAgIHN0aWxsIHNlZW0gdG8gYWxpZ24gdGhlaXIgYmFzZWxpbmUgcHJvcGVybHksIGFuZCB3ZSBkb24ndCBoYXZlIHRvIGhhdmUKICAgIGFsaWduLXNlbGY6IHN0cmV0Y2ggaW4gdGhlIC5zbGlkZXItY29udGFpbmVyLiAqLwogICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwp9CgogLndpZGdldHMtc2xpZGVyIC5zbGlkZXItY29udGFpbmVyIHsKICAgIG92ZXJmbG93OiB2aXNpYmxlOwp9CgogLndpZGdldC1oc2xpZGVyIC5zbGlkZXItY29udGFpbmVyIHsKICAgIGhlaWdodDogMjhweDsKICAgIG1hcmdpbi1sZWZ0OiA2cHg7CiAgICBtYXJnaW4tcmlnaHQ6IDZweDsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXg6IDEgMSAxNDhweDsKICAgICAgICAgICAgZmxleDogMSAxIDE0OHB4Owp9CgogLndpZGdldC1oc2xpZGVyIC51aS1zbGlkZXIgewogICAgLyogSW5uZXIsIGludmlzaWJsZSBzbGlkZSBkaXYgKi8KICAgIGhlaWdodDogNHB4OwogICAgbWFyZ2luLXRvcDogMTJweDsKICAgIHdpZHRoOiAxMDAlOwp9CgogLyogVmVydGljYWwgU2xpZGVyICovCgogLndpZGdldC12Ym94IC53aWRnZXQtbGFiZWwgewogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LXZzbGlkZXIgewogICAgLyogVmVydGljYWwgU2xpZGVyICovCiAgICBoZWlnaHQ6IDIwMHB4OwogICAgd2lkdGg6IDcycHg7Cn0KCiAud2lkZ2V0LXZzbGlkZXIgLnNsaWRlci1jb250YWluZXIgewogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleDogMSAxIDE0OHB4OwogICAgICAgICAgICBmbGV4OiAxIDEgMTQ4cHg7CiAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICAgIG1hcmdpbi1ib3R0b206IDZweDsKICAgIG1hcmdpbi10b3A6IDZweDsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgogLndpZGdldC12c2xpZGVyIC51aS1zbGlkZXItdmVydGljYWwgewogICAgLyogSW5uZXIsIGludmlzaWJsZSBzbGlkZSBkaXYgKi8KICAgIHdpZHRoOiA0cHg7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIG1hcmdpbi1yaWdodDogYXV0bzsKfQoKIC8qIFdpZGdldCBQcm9ncmVzcyBTdHlsaW5nICovCgogLnByb2dyZXNzLWJhciB7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IG5vbmU7CiAgICB0cmFuc2l0aW9uOiBub25lOwp9CgogLnByb2dyZXNzLWJhciB7CiAgICBoZWlnaHQ6IDI4cHg7Cn0KCiAucHJvZ3Jlc3MtYmFyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7Cn0KCiAucHJvZ3Jlc3MtYmFyLXN1Y2Nlc3MgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzRDQUY1MDsKfQoKIC5wcm9ncmVzcy1iYXItaW5mbyB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCQ0Q0Owp9CgogLnByb2dyZXNzLWJhci13YXJuaW5nIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGRjk4MDA7Cn0KCiAucHJvZ3Jlc3MtYmFyLWRhbmdlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjQ0MzM2Owp9CgogLnByb2dyZXNzIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNFRUVFRUU7CiAgICBib3JkZXI6IG5vbmU7CiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7Cn0KCiAvKiBIb3Jpc29udGFsIFByb2dyZXNzICovCgogLndpZGdldC1ocHJvZ3Jlc3MgewogICAgLyogUHJvZ3Jlc3MgQmFyICovCiAgICBoZWlnaHQ6IDI4cHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKICAgIHdpZHRoOiAzMDBweDsKICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKCn0KCiAud2lkZ2V0LWhwcm9ncmVzcyAucHJvZ3Jlc3MgewogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleC1wb3NpdGl2ZTogMTsKICAgICAgICAgICAgZmxleC1ncm93OiAxOwogICAgbWFyZ2luLXRvcDogNHB4OwogICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaDsKICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgLyogT3ZlcnJpZGUgYm9vdHN0cmFwIHN0eWxlICovCiAgICBoZWlnaHQ6IGF1dG87CiAgICBoZWlnaHQ6IGluaXRpYWw7Cn0KCiAvKiBWZXJ0aWNhbCBQcm9ncmVzcyAqLwoKIC53aWRnZXQtdnByb2dyZXNzIHsKICAgIGhlaWdodDogMjAwcHg7CiAgICB3aWR0aDogNzJweDsKfQoKIC53aWRnZXQtdnByb2dyZXNzIC5wcm9ncmVzcyB7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICB3aWR0aDogMjBweDsKICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogICAgbWFyZ2luLWJvdHRvbTogMDsKfQoKIC8qIFNlbGVjdCBXaWRnZXQgU3R5bGluZyAqLwoKIC53aWRnZXQtZHJvcGRvd24gewogICAgaGVpZ2h0OiAyOHB4OwogICAgd2lkdGg6IDMwMHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWRyb3Bkb3duID4gc2VsZWN0IHsKICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjOUU5RTlFOwogICAgYm9yZGVyLXJhZGl1czogMDsKICAgIGhlaWdodDogaW5oZXJpdDsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXg6IDEgMSAxNDhweDsKICAgICAgICAgICAgZmxleDogMSAxIDE0OHB4OwogICAgbWluLXdpZHRoOiAwOyAvKiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIGZvciB0aGUgZmxleGJveCB0byBzaHJpbmsgdGhpcyBpbnB1dCAqLwogICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OwogICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lOwogICAgICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7CiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAuOCk7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwogICAgcGFkZGluZy1sZWZ0OiA4cHg7CglhcHBlYXJhbmNlOiBub25lOwoJLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwoJLW1vei1hcHBlYXJhbmNlOiBub25lOwogICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKCWJhY2tncm91bmQtc2l6ZTogMjBweDsKCWJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IGNlbnRlcjsKICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejRLUENFdExTQkhaVzVsY21GMGIzSTZJRUZrYjJKbElFbHNiSFZ6ZEhKaGRHOXlJREU1TGpJdU1Td2dVMVpISUVWNGNHOXlkQ0JRYkhWbkxVbHVJQzRnVTFaSElGWmxjbk5wYjI0NklEWXVNREFnUW5WcGJHUWdNQ2tnSUMwdFBnbzhjM1puSUhabGNuTnBiMjQ5SWpFdU1TSWdhV1E5SWt4aGVXVnlYekVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lJSGc5SWpCd2VDSWdlVDBpTUhCNElnb0pJSFpwWlhkQ2IzZzlJakFnTUNBeE9DQXhPQ0lnYzNSNWJHVTlJbVZ1WVdKc1pTMWlZV05yWjNKdmRXNWtPbTVsZHlBd0lEQWdNVGdnTVRnN0lpQjRiV3c2YzNCaFkyVTlJbkJ5WlhObGNuWmxJajRLUEhOMGVXeGxJSFI1Y0dVOUluUmxlSFF2WTNOeklqNEtDUzV6ZERCN1ptbHNiRHB1YjI1bE8zMEtQQzl6ZEhsc1pUNEtQSEJoZEdnZ1pEMGlUVFV1TWl3MUxqbE1PU3c1TGpkc015NDRMVE11T0d3eExqSXNNUzR5YkMwMExqa3NOV3d0TkM0NUxUVk1OUzR5TERVdU9Yb2lMejRLUEhCaGRHZ2dZMnhoYzNNOUluTjBNQ0lnWkQwaVRUQXRNQzQyYURFNGRqRTRTREJXTFRBdU5ub2lMejRLUEM5emRtYytDZyIpOwp9CgogLndpZGdldC1kcm9wZG93biA+IHNlbGVjdDpmb2N1cyB7CiAgICBib3JkZXItY29sb3I6ICM2NEI1RjY7Cn0KCiAud2lkZ2V0LWRyb3Bkb3duID4gc2VsZWN0OmRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNjsKfQoKIC8qIFRvIGRpc2FibGUgdGhlIGRvdHRlZCBib3JkZXIgaW4gRmlyZWZveCBhcm91bmQgc2VsZWN0IGNvbnRyb2xzLgogICBTZWUgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMTg4NTMwMDIgKi8KCiAud2lkZ2V0LWRyb3Bkb3duID4gc2VsZWN0Oi1tb3otZm9jdXNyaW5nIHsKICAgIGNvbG9yOiB0cmFuc3BhcmVudDsKICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwOwp9CgogLyogU2VsZWN0IGFuZCBTZWxlY3RNdWx0aXBsZSAqLwoKIC53aWRnZXQtc2VsZWN0IHsKICAgIHdpZHRoOiAzMDBweDsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwoKICAgIC8qIEJlY2F1c2UgRmlyZWZveCBkZWZpbmVzIHRoZSBiYXNlbGluZSBvZiBhIHNlbGVjdCBhcyB0aGUgYm90dG9tIG9mIHRoZQogICAgY29udHJvbCwgd2UgYWxpZ24gdGhlIGVudGlyZSBjb250cm9sIHRvIHRoZSB0b3AgYW5kIGFkZCBwYWRkaW5nIHRvIHRoZQogICAgc2VsZWN0IHRvIGdldCBhbiBhcHByb3hpbWF0ZSBmaXJzdCBsaW5lIGJhc2VsaW5lIGFsaWdubWVudC4gKi8KICAgIC13ZWJraXQtYm94LWFsaWduOiBzdGFydDsKICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0Owp9CgogLndpZGdldC1zZWxlY3QgPiBzZWxlY3QgewogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleDogMSAxIDE0OHB4OwogICAgICAgICAgICBmbGV4OiAxIDEgMTQ4cHg7CiAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7CiAgICBvdmVyZmxvdzogYXV0bzsKICAgIGhlaWdodDogaW5oZXJpdDsKCiAgICAvKiBCZWNhdXNlIEZpcmVmb3ggZGVmaW5lcyB0aGUgYmFzZWxpbmUgb2YgYSBzZWxlY3QgYXMgdGhlIGJvdHRvbSBvZiB0aGUKICAgIGNvbnRyb2wsIHdlIGFsaWduIHRoZSBlbnRpcmUgY29udHJvbCB0byB0aGUgdG9wIGFuZCBhZGQgcGFkZGluZyB0byB0aGUKICAgIHNlbGVjdCB0byBnZXQgYW4gYXBwcm94aW1hdGUgZmlyc3QgbGluZSBiYXNlbGluZSBhbGlnbm1lbnQuICovCiAgICBwYWRkaW5nLXRvcDogNXB4Owp9CgogLndpZGdldC1zZWxlY3QgPiBzZWxlY3Q6Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjNjRCNUY2Owp9CgogLndpZ2V0LXNlbGVjdCA+IHNlbGVjdCA+IG9wdGlvbiB7CiAgICBwYWRkaW5nLWxlZnQ6IDRweDsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgLyogbGluZS1oZWlnaHQgZG9lc24ndCB3b3JrIG9uIHNvbWUgYnJvd3NlcnMgZm9yIHNlbGVjdCBvcHRpb25zICovCiAgICBwYWRkaW5nLXRvcDogY2FsYygyOHB4IC0gdmFyKC0tanAtd2lkZ2V0cy1mb250LXNpemUpIC8gMik7CiAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygyOHB4IC0gdmFyKC0tanAtd2lkZ2V0cy1mb250LXNpemUpIC8gMik7Cn0KCiAvKiBUb2dnbGUgQnV0dG9ucyBTdHlsaW5nICovCgogLndpZGdldC10b2dnbGUtYnV0dG9ucyB7CiAgICBsaW5lLWhlaWdodDogMjhweDsKfQoKIC53aWRnZXQtdG9nZ2xlLWJ1dHRvbnMgLndpZGdldC10b2dnbGUtYnV0dG9uIHsKICAgIG1hcmdpbi1sZWZ0OiAycHg7CiAgICBtYXJnaW4tcmlnaHQ6IDJweDsKfQoKIC53aWRnZXQtdG9nZ2xlLWJ1dHRvbnMgLmp1cHl0ZXItYnV0dG9uOmRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNjsKfQoKIC8qIFJhZGlvIEJ1dHRvbnMgU3R5bGluZyAqLwoKIC53aWRnZXQtcmFkaW8gewogICAgd2lkdGg6IDMwMHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LXJhZGlvLWJveCB7CiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogICAgZGlzcGxheTogZmxleDsKICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIC13ZWJraXQtYm94LWFsaWduOiBzdHJldGNoOwogICAgICAgIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoOwogICAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTsKICAgIG1hcmdpbi1ib3R0b206IDhweDsKfQoKIC53aWRnZXQtcmFkaW8tYm94IGxhYmVsIHsKICAgIGhlaWdodDogMjBweDsKICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgZm9udC1zaXplOiAxM3B4Owp9CgogLndpZGdldC1yYWRpby1ib3ggaW5wdXQgewogICAgaGVpZ2h0OiAyMHB4OwogICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICBtYXJnaW46IDAgOHB4IDAgMXB4OwogICAgZmxvYXQ6IGxlZnQ7Cn0KCiAvKiBDb2xvciBQaWNrZXIgU3R5bGluZyAqLwoKIC53aWRnZXQtY29sb3JwaWNrZXIgewogICAgd2lkdGg6IDMwMHB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWNvbG9ycGlja2VyID4gLndpZGdldC1jb2xvcnBpY2tlci1pbnB1dCB7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgIG1pbi13aWR0aDogNzJweDsKfQoKIC53aWRnZXQtY29sb3JwaWNrZXIgaW5wdXRbdHlwZT0iY29sb3IiXSB7CiAgICB3aWR0aDogMjhweDsKICAgIGhlaWdodDogMjhweDsKICAgIHBhZGRpbmc6IDAgMnB4OyAvKiBtYWtlIHRoZSBjb2xvciBzcXVhcmUgYWN0dWFsbHkgc3F1YXJlIG9uIENocm9tZSBvbiBPUyBYICovCiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44KTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBib3JkZXItbGVmdDogbm9uZTsKICAgIC13ZWJraXQtYm94LWZsZXg6IDA7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDA7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDsKICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaDsKICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50Owp9CgogLndpZGdldC1jb2xvcnBpY2tlci5jb25jaXNlIGlucHV0W3R5cGU9ImNvbG9yIl0gewogICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjOUU5RTlFOwp9CgogLndpZGdldC1jb2xvcnBpY2tlciBpbnB1dFt0eXBlPSJjb2xvciJdOmZvY3VzLCAud2lkZ2V0LWNvbG9ycGlja2VyIGlucHV0W3R5cGU9InRleHQiXTpmb2N1cyB7CiAgICBib3JkZXItY29sb3I6ICM2NEI1RjY7Cn0KCiAud2lkZ2V0LWNvbG9ycGlja2VyIGlucHV0W3R5cGU9InRleHQiXSB7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7CiAgICBoZWlnaHQ6IDI4cHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICBtaW4td2lkdGg6IDA7IC8qIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgZm9yIHRoZSBmbGV4Ym94IHRvIHNocmluayB0aGlzIGlucHV0ICovCiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQoKIC53aWRnZXQtY29sb3JwaWNrZXIgaW5wdXRbdHlwZT0idGV4dCJdOmRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNjsKfQoKIC8qIERhdGUgUGlja2VyIFN0eWxpbmcgKi8KCiAud2lkZ2V0LWRhdGVwaWNrZXIgewogICAgd2lkdGg6IDMwMHB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWRhdGVwaWNrZXIgaW5wdXRbdHlwZT0iZGF0ZSJdIHsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTsKICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAxOwogICAgICAgIGZsZXgtc2hyaW5rOiAxOwogICAgbWluLXdpZHRoOiAwOyAvKiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIGZvciB0aGUgZmxleGJveCB0byBzaHJpbmsgdGhpcyBpbnB1dCAqLwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OwogICAgaGVpZ2h0OiAyOHB4OwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgcGFkZGluZzogNHB4IDhweDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQoKIC53aWRnZXQtZGF0ZXBpY2tlciBpbnB1dFt0eXBlPSJkYXRlIl06Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjNjRCNUY2Owp9CgogLndpZGdldC1kYXRlcGlja2VyIGlucHV0W3R5cGU9ImRhdGUiXTppbnZhbGlkIHsKICAgIGJvcmRlci1jb2xvcjogI0ZGOTgwMDsKfQoKIC53aWRnZXQtZGF0ZXBpY2tlciBpbnB1dFt0eXBlPSJkYXRlIl06ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLyogUGxheSBXaWRnZXQgKi8KCiAud2lkZ2V0LXBsYXkgewogICAgd2lkdGg6IDE0OHB4OwogICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICAtd2Via2l0LWJveC1hbGlnbjogc3RyZXRjaDsKICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RyZXRjaDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7Cn0KCiAud2lkZ2V0LXBsYXkgLmp1cHl0ZXItYnV0dG9uIHsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTsKICAgIGhlaWdodDogYXV0bzsKfQoKIC53aWRnZXQtcGxheSAuanVweXRlci1idXR0b246ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLyogVGFiIFdpZGdldCAqLwoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiB7CiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogICAgZGlzcGxheTogZmxleDsKICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciB7CiAgICAvKiBOZWNlc3Nhcnkgc28gdGhhdCBhIHRhYiBjYW4gYmUgc2hpZnRlZCBkb3duIHRvIG92ZXJsYXkgdGhlIGJvcmRlciBvZiB0aGUgYm94IGJlbG93LiAqLwogICAgb3ZlcmZsb3cteDogdmlzaWJsZTsKICAgIG92ZXJmbG93LXk6IHZpc2libGU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgPiAucC1UYWJCYXItY29udGVudCB7CiAgICAvKiBNYWtlIHN1cmUgdGhhdCB0aGUgdGFiIGdyb3dzIGZyb20gYm90dG9tIHVwICovCiAgICAtd2Via2l0LWJveC1hbGlnbjogZW5kOwogICAgICAgIC1tcy1mbGV4LWFsaWduOiBlbmQ7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKICAgIG1pbi13aWR0aDogMDsKICAgIG1pbi1oZWlnaHQ6IDA7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAud2lkZ2V0LXRhYi1jb250ZW50cyB7CiAgICB3aWR0aDogMTAwJTsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIG1hcmdpbjogMDsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIHBhZGRpbmc6IDE1cHg7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBvdmVyZmxvdzogYXV0bzsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciB7CiAgICBmb250OiAxM3B4IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgICBtaW4taGVpZ2h0OiAyNXB4Owp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWIgewogICAgLXdlYmtpdC1ib3gtZmxleDogMDsKICAgICAgICAtbXMtZmxleDogMCAxIDE0NHB4OwogICAgICAgICAgICBmbGV4OiAwIDEgMTQ0cHg7CiAgICBtaW4td2lkdGg6IDM1cHg7CiAgICBtaW4taGVpZ2h0OiAyNXB4OwogICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICBtYXJnaW4tbGVmdDogLTFweDsKICAgIHBhZGRpbmc6IDBweCAxMHB4OwogICAgYmFja2dyb3VuZDogI0VFRUVFRTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC41KTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWIucC1tb2QtY3VycmVudCB7CiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAxLjApOwogICAgLyogV2Ugd2FudCB0aGUgYmFja2dyb3VuZCB0byBtYXRjaCB0aGUgdGFiIGNvbnRlbnQgYmFja2dyb3VuZCAqLwogICAgYmFja2dyb3VuZDogd2hpdGU7CiAgICBtaW4taGVpZ2h0OiAyNnB4OwogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7CiAgICBvdmVyZmxvdzogdmlzaWJsZTsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciAucC1UYWJCYXItdGFiLnAtbW9kLWN1cnJlbnQ6YmVmb3JlIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogLTFweDsKICAgIGxlZnQ6IC0xcHg7CiAgICBjb250ZW50OiAnJzsKICAgIGhlaWdodDogMnB4OwogICAgd2lkdGg6IGNhbGMoMTAwJSArIDJweCk7CiAgICBiYWNrZ3JvdW5kOiAjMjE5NkYzOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWI6Zmlyc3QtY2hpbGQgewogICAgbWFyZ2luLWxlZnQ6IDA7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYjpob3Zlcjpub3QoLnAtbW9kLWN1cnJlbnQpIHsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLW1vZC1jbG9zYWJsZSA+IC5wLVRhYkJhci10YWJDbG9zZUljb24gewogICAgbWFyZ2luLWxlZnQ6IDRweDsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciAucC1tb2QtY2xvc2FibGUgPiAucC1UYWJCYXItdGFiQ2xvc2VJY29uOmJlZm9yZSB7CiAgICBmb250LWZhbWlseTogRm9udEF3ZXNvbWU7CiAgICBjb250ZW50OiAnXGYwMGQnOyAvKiBjbG9zZSAqLwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWJJY29uLAouanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkxhYmVsLAouanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkNsb3NlSWNvbiB7CiAgICBsaW5lLWhlaWdodDogMjRweDsKfQoKIC8qIEFjY29yZGlvbiBXaWRnZXQgKi8KCiAucC1Db2xsYXBzZSB7CiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogICAgZGlzcGxheTogZmxleDsKICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIC13ZWJraXQtYm94LWFsaWduOiBzdHJldGNoOwogICAgICAgIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoOwogICAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKfQoKIC5wLUNvbGxhcHNlLWhlYWRlciB7CiAgICBwYWRkaW5nOiA0cHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAuNSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUVFRUVFOwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIHBhZGRpbmc6IDEwcHggMTVweDsKICAgIGZvbnQtd2VpZ2h0OiBib2xkOwp9CgogLnAtQ29sbGFwc2UtaGVhZGVyOmhvdmVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwp9CgogLnAtQ29sbGFwc2Utb3BlbiA+IC5wLUNvbGxhcHNlLWhlYWRlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDEuMCk7CiAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICBib3JkZXItYm90dG9tOiBub25lOwp9CgogLnAtQ29sbGFwc2UgLnAtQ29sbGFwc2UtaGVhZGVyOjpiZWZvcmUgewogICAgY29udGVudDogJ1xmMGRhXDAwQTAnOyAgLyogY2FyZXQtcmlnaHQsIG5vbi1icmVha2luZyBzcGFjZSAqLwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgZm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgMTRweC8xIEZvbnRBd2Vzb21lOwogICAgZm9udC1zaXplOiBpbmhlcml0OwogICAgdGV4dC1yZW5kZXJpbmc6IGF1dG87CiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7Cn0KCiAucC1Db2xsYXBzZS1vcGVuID4gLnAtQ29sbGFwc2UtaGVhZGVyOjpiZWZvcmUgewogICAgY29udGVudDogJ1xmMGQ3XDAwQTAnOyAvKiBjYXJldC1kb3duLCBub24tYnJlYWtpbmcgc3BhY2UgKi8KfQoKIC5wLUNvbGxhcHNlLWNvbnRlbnRzIHsKICAgIHBhZGRpbmc6IDE1cHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44KTsKICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzlFOUU5RTsKICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzlFOUU5RTsKICAgIG92ZXJmbG93OiBhdXRvOwp9CgogLnAtQWNjb3JkaW9uIHsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgLXdlYmtpdC1ib3gtYWxpZ246IHN0cmV0Y2g7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IHN0cmV0Y2g7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwp9CgogLnAtQWNjb3JkaW9uIC5wLUNvbGxhcHNlIHsKICAgIG1hcmdpbi1ib3R0b206IDA7Cn0KCiAucC1BY2NvcmRpb24gLnAtQ29sbGFwc2UgKyAucC1Db2xsYXBzZSB7CiAgICBtYXJnaW4tdG9wOiA0cHg7Cn0KCiAvKiBIVE1MIHdpZGdldCAqLwoKIC53aWRnZXQtaHRtbCwgLndpZGdldC1odG1sbWF0aCB7CiAgICBmb250LXNpemU6IDEzcHg7Cn0KCiAud2lkZ2V0LWh0bWwgPiAud2lkZ2V0LWh0bWwtY29udGVudCwgLndpZGdldC1odG1sbWF0aCA+IC53aWRnZXQtaHRtbC1jb250ZW50IHsKICAgIC8qIEZpbGwgb3V0IHRoZSBhcmVhIGluIHRoZSBIVE1MIHdpZGdldCAqLwogICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaDsKICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleC1wb3NpdGl2ZTogMTsKICAgICAgICAgICAgZmxleC1ncm93OiAxOwogICAgLW1zLWZsZXgtbmVnYXRpdmU6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAvKiBNYWtlcyBzdXJlIHRoZSBiYXNlbGluZSBpcyBzdGlsbCBhbGlnbmVkIHdpdGggb3RoZXIgZWxlbWVudHMgKi8KICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgLyogTWFrZSBpdCBwb3NzaWJsZSB0byBoYXZlIGFic29sdXRlbHktcG9zaXRpb25lZCBlbGVtZW50cyBpbiB0aGUgaHRtbCAqLwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgovKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWk0dUwyNXZaR1ZmYlc5a2RXeGxjeTlBYW5Wd2VYUmxjaTEzYVdSblpYUnpMMk52Ym5SeWIyeHpMMk56Y3k5M2FXUm5aWFJ6TG1OemN5SXNJaTR1TDI1dlpHVmZiVzlrZFd4bGN5OUFhblZ3ZVhSbGNpMTNhV1JuWlhSekwyTnZiblJ5YjJ4ekwyTnpjeTlzWVdKMllYSnBZV0pzWlhNdVkzTnpJaXdpTGk0dmJtOWtaVjl0YjJSMWJHVnpMMEJxZFhCNWRHVnlMWGRwWkdkbGRITXZZMjl1ZEhKdmJITXZZM056TDIxaGRHVnlhV0ZzWTI5c2IzSnpMbU56Y3lJc0lpNHVMMjV2WkdWZmJXOWtkV3hsY3k5QWFuVndlWFJsY2kxM2FXUm5aWFJ6TDJOdmJuUnliMnh6TDJOemN5OTNhV1JuWlhSekxXSmhjMlV1WTNOeklpd2lMaTR2Ym05a1pWOXRiMlIxYkdWekwwQnFkWEI1ZEdWeUxYZHBaR2RsZEhNdlkyOXVkSEp2YkhNdlkzTnpMM0JvYjNOd2FHOXlMbU56Y3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFUczdSMEZGUnpzN1EwRkZSanM3YTBOQlJXbERPenREUTA1c1F6czdPeXRGUVVjclJUczdRMEZGTDBVN096czdSVUZKUlRzN1EwTlVSanM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3UjBFMlFrYzdPME5FYUVKSU96czdPenM3T3pzN096czdPenM3T3pzN08wVkJiVUpGT3p0RFFVZEdPenRIUVVWSE96dERRVU5HTEhsRVFVRjVSRHM3UTBGRE1VUXNlVVZCUVhsRk96dERRVVY2UlRzN1IwRkZSenM3UTBGUFNEczdSVUZGUlRzN08wdEJSMGM3TzBWQlVVZzdPenM3U1VGSlJTeERRVWwzUWl4dlFrRkJiMElzUTBGSGFFSXNNRU5CUVRCRE96dEZRVWQ0UlRzN1NVRkZSVHM3UlVGUFJqczdTMEZGUnpzN1JVRlBTRHM3TzBsQlIwVXNRMEZYZDBJc2IwSkJRVzlDT3pzN1JVRlZPVU03T3pzN1NVRkpSVHM3UlVGUFJpeHJRa0ZCYTBJN08wVkJXV3hDTEN0RFFVRXJRenM3UlVGelFpOURMREJDUVVFd1FqdEZRV0V4UWpzMFJVRkRNRVU3UlVGRk1VVTdkMFZCUTNORk96dEZRVWQwUlN3NFFrRkJPRUk3TzBWQlN6bENMRFpDUVVFMlFqczdSVUZKTjBJc05rSkJRVFpDTzBOQlVUbENPenREUlhwTlJEczdSMEZGUnpzN1EwRkZTRHM3T3p0SFFVbEhPenREUTFKSU96czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdSVUU0UWtVN08wTkJSVVk3T3p0SFFVZEhPenREUVVWSU8wVkJRMFVzY1VKQlFXTTdSVUZCWkN4eFFrRkJZenRGUVVGa0xHTkJRV003UlVGRFpDd3dRa0ZCTUVJN1JVRkRNVUlzZFVKQlFYVkNPMFZCUTNaQ0xITkNRVUZ6UWp0RlFVTjBRaXhyUWtGQmEwSTdRMEZEYmtJN08wTkJSMFE3UlVGRFJTd3JRa0ZCYjBJN1JVRkJjRUlzT0VKQlFXOUNPMDFCUVhCQ0xIZENRVUZ2UWp0VlFVRndRaXh2UWtGQmIwSTdRMEZEY2tJN08wTkJSMFE3UlVGRFJTdzJRa0ZCZFVJN1JVRkJka0lzT0VKQlFYVkNPMDFCUVhaQ0xESkNRVUYxUWp0VlFVRjJRaXgxUWtGQmRVSTdRMEZEZUVJN08wTkJSMFE3UlVGRFJTeFZRVUZWTzBWQlExWXNWMEZCVnp0RlFVTllMSEZDUVVGak8wVkJRV1FzY1VKQlFXTTdSVUZCWkN4alFVRmpPMFZCUTJRc2IwSkJRV1U3VFVGQlppeHRRa0ZCWlR0VlFVRm1MR1ZCUVdVN1JVRkRaaXh6UWtGQmMwSTdRMEZEZGtJN08wTkJSMFE3UlVGRFJTd3JRa0ZCYjBJN1JVRkJjRUlzT0VKQlFXOUNPMDFCUVhCQ0xIZENRVUZ2UWp0VlFVRndRaXh2UWtGQmIwSTdRMEZEY2tJN08wTkJSMFE3UlVGRFJTdzJRa0ZCZFVJN1JVRkJka0lzT0VKQlFYVkNPMDFCUVhaQ0xESkNRVUYxUWp0VlFVRjJRaXgxUWtGQmRVSTdRMEZEZUVJN08wTkJSMFE3UlVGRFJTeHhRa0ZCWXp0RlFVRmtMSEZDUVVGak8wVkJRV1FzWTBGQll6dEZRVU5rTEN0Q1FVRnZRanRGUVVGd1FpdzRRa0ZCYjBJN1RVRkJjRUlzZDBKQlFXOUNPMVZCUVhCQ0xHOUNRVUZ2UWp0RlFVTndRaXdyUWtGQmRVSTdWVUZCZGtJc2RVSkJRWFZDTzBWQlEzWkNMR2xDUVVGcFFqdERRVU5zUWpzN1EwRkhSRHM3UlVGRlJTeHZRa0ZCWlR0TlFVRm1MRzFDUVVGbE8xVkJRV1lzWlVGQlpUdERRVU5vUWpzN1EwRkhSRHRGUVVORkxHOUNRVUZsTzAxQlFXWXNiVUpCUVdVN1ZVRkJaaXhsUVVGbE8wVkJRMllzYVVKQlFXbENPMFZCUTJwQ0xHOUNRVUZ2UWp0RFFVTnlRanM3UTBGSFJEdEZRVU5GTEhsQ1FVRjVRanREUVVNeFFqczdRMEZIUkR0RlFVTkZMRzFDUVVGdFFqdERRVU53UWpzN1EwRkhSRHRGUVVORkxGRkJRVkU3UlVGRFVpeHZRMEZCTkVJN1JVRkJOVUlzTkVKQlFUUkNPME5CUXpkQ096dERRVWRFTzBWQlEwVXNUMEZCVHp0RlFVTlFMRzFEUVVFeVFqdEZRVUV6UWl3eVFrRkJNa0k3UTBGRE5VSTdPME5CUjBRN1JVRkRSU3g1UWtGQmFVSTdSVUZCYWtJc2FVSkJRV2xDTzBOQlEyeENPenREUVVWRUxHOUNRVUZ2UWpzN1EwUTVSM0JDTEZGQlZYRkRMRzlEUVVGdlF6czdTVUV5UW5KRkxDdENRVUVyUWp0RFFVbHNRenM3UTBGRlJEdEpRVU5KTEZsQlFXbERPMGxCUTJwRExDdENRVUYxUWp0WlFVRjJRaXgxUWtGQmRVSTdTVUZEZGtJc1lVRkJLMEk3U1VGREwwSXNhMEpCUVd0Q08wTkJRM0pDT3p0RFFVVkVPMGxCUTBrc2EwSkJRVFpETzBsQlF6ZERMR0ZCUVhkRE8wTkJRek5ET3p0RFFVVkVPMGxCUTBrc1pVRkJaVHRKUVVObUxHZENRVUZuUWp0RFFVTnVRanM3UTBGRlJDeHRRa0ZCYlVJN08wTkJSVzVDTzBsQlEwa3NkMEpCUVhkQ08wbEJRM2hDTEN0Q1FVRjFRanRaUVVGMlFpeDFRa0ZCZFVJN1NVRkRka0lzY1VKQlFXTTdTVUZCWkN4eFFrRkJZenRKUVVGa0xHTkJRV003U1VGRFpDd3JRa0ZCYjBJN1NVRkJjRUlzT0VKQlFXOUNPMUZCUVhCQ0xIZENRVUZ2UWp0WlFVRndRaXh2UWtGQmIwSTdTVUZEY0VJc05FSkJRWE5DTzFGQlFYUkNMSGxDUVVGelFqdFpRVUYwUWl4elFrRkJjMEk3UTBGRGVrSTdPME5CUlVRN1NVRkRTU3h6UWtGQmMwSTdTVUZEZEVJc0swSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl4eFFrRkJZenRKUVVGa0xIRkNRVUZqTzBsQlFXUXNZMEZCWXp0SlFVTmtMRFpDUVVGMVFqdEpRVUYyUWl3NFFrRkJkVUk3VVVGQmRrSXNNa0pCUVhWQ08xbEJRWFpDTEhWQ1FVRjFRanRKUVVOMlFpd3dRa0ZCYjBJN1VVRkJjRUlzZFVKQlFXOUNPMWxCUVhCQ0xHOUNRVUZ2UWp0RFFVTjJRanM3UTBGRlJEdEpRVU5KTEN0Q1FVRjFRanRaUVVGMlFpeDFRa0ZCZFVJN1NVRkRka0lzY1VKQlFXTTdTVUZCWkN4eFFrRkJZenRKUVVGa0xHTkJRV003U1VGRFpDeFZRVUZWTzBsQlExWXNaVUZCWlR0RFFVTnNRanM3UTBGRlJEdEpRVU5KTEN0Q1FVRjFRanRaUVVGMlFpeDFRa0ZCZFVJN1NVRkRka0lzWTBGQll6dEpRVU5rTEZWQlFWVTdTVUZEVml4bFFVRmxPME5CUTJ4Q096dERRVVZFTzBsQlEwa3NLMEpCUVc5Q08wbEJRWEJDTERoQ1FVRnZRanRSUVVGd1FpeDNRa0ZCYjBJN1dVRkJjRUlzYjBKQlFXOUNPME5CUTNaQ096dERRVVZFTzBsQlEwa3NOa0pCUVhWQ08wbEJRWFpDTERoQ1FVRjFRanRSUVVGMlFpd3lRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPME5CUXpGQ096dERRVVZFTERSQ1FVRTBRanM3UTBGRk5VSTdTVUZEU1N4dFFrRkJiVUk3U1VGRGJrSXNiMEpCUVc5Q08wbEJRM0JDTEdsQ1FVRnBRanRKUVVOcVFpeHZRa0ZCYjBJN1NVRkRjRUlzYzBKQlFYTkNPMGxCUTNSQ0xHOUNRVUZ2UWp0SlFVTndRaXhwUWtGQmFVSTdTVUZEYWtJc2QwSkJRWGRDTzBsQlEzaENMRzFDUVVGdFFqdEpRVU51UWl4blFrRkJkVU03U1VGRGRrTXNaMEpCUVdkQ096dEpRVVZvUWl4aFFVRjNRenRKUVVONFF5eHJRa0ZCYTBJN1NVRkRiRUlzYTBKQlFUWkRPMGxCUXpkRExIbENRVUZwUWp0WlFVRnFRaXhwUWtGQmFVSTdPMGxCUldwQ0xIbENRVUZuUXp0SlFVTm9ReXd3UWtGQk1FTTdTVUZETVVNc2MwSkJRWE5ETzBsQlEzUkRMR0ZCUVdFN1EwRkRhRUk3TzBOQlJVUTdTVUZEU1N4clFrRkJPRU03U1VGRE9VTXNjVUpCUVhGQ08wTkJRM2hDT3p0RFFVVkVPMGxCUTBrc2FVSkJRV2xDTEVOQlFVTXNjMEpCUVhOQ08wTkJRek5ET3p0RFFVVkVPMGxCUTBrc1lVRkJORU03UTBGREwwTTdPME5CUlVRN1NVRkRTU3huUWtGQlowSTdRMEZEYmtJN08wTkJSVVE3U1VGRFNTeDNRa0ZCZDBJN1NVRkRlRUk3T3l0RFFVVXJSVHRaUVVZdlJUczdLME5CUlN0Rk8wTkJRMnhHT3p0RFFVVkVPMGxCUTBrc2QwSkJRWGRDTzBsQlEzaENPenRwUkVGRk5rVTdXVUZHTjBVN08ybEVRVVUyUlR0SlFVTTNSU3g1UWtGQlowTTdTVUZEYUVNc01FSkJRVEJETzBOQlF6ZERPenREUVVWRU8wbEJRMGtzTWtKQlFUaEVPME5CUTJwRk96dERRVVZFTERoQ1FVRTRRanM3UTBGRk9VSTdTVUZEU1N4blEwRkJkME03U1VGRGVFTXNNRUpCUVhsRE8wTkJRelZET3p0RFFVVkVPMGxCUTBrc09FSkJRWGRETzBsQlEzaERMREJDUVVGNVF6dERRVU0xUXpzN1EwRkZSRHRKUVVOSkxEaENRVUYzUXp0SlFVTjRReXd3UWtGQmVVTTdRMEZETlVNN08wTkJSVVFzT0VKQlFUaENPenREUVVVNVFqdEpRVU5KTEdkRFFVRjNRenRKUVVONFF5d3dRa0ZCTWtNN1EwRkRPVU03TzBOQlJVUTdTVUZEU1N3NFFrRkJkME03U1VGRGVFTXNNRUpCUVRKRE8wVkJRemRET3p0RFFVVkdPMGxCUTBrc09FSkJRWGRETzBsQlEzaERMREJDUVVFeVF6dEZRVU0zUXpzN1EwRkZSQ3d5UWtGQk1rSTdPME5CUlRWQ08wbEJRMGtzWjBOQlFYZERPMGxCUTNoRExEQkNRVUYzUXp0RFFVTXpRenM3UTBGRlJEdEpRVU5KTERoQ1FVRjNRenRKUVVONFF5d3dRa0ZCZDBNN1EwRkRNME03TzBOQlJVUTdTVUZEU1N3NFFrRkJkME03U1VGRGVFTXNNRUpCUVhkRE8wTkJRek5ET3p0RFFVVkVMRGhDUVVFNFFqczdRMEZGT1VJN1NVRkRTU3huUTBGQmQwTTdTVUZEZUVNc01FSkJRWGRETzBOQlF6TkRPenREUVVWRU8wbEJRMGtzT0VKQlFYZERPMGxCUTNoRExEQkNRVUYzUXp0RFFVTXpRenM3UTBGRlJEdEpRVU5KTERoQ1FVRjNRenRKUVVONFF5d3dRa0ZCZDBNN1EwRkRNME03TzBOQlJVUXNOa0pCUVRaQ096dERRVVUzUWp0SlFVTkpMR2REUVVGM1F6dEpRVU40UXl3d1FrRkJlVU03UTBGRE5VTTdPME5CUlVRN1NVRkRTU3c0UWtGQmQwTTdTVUZEZUVNc01FSkJRWGxETzBOQlF6VkRPenREUVVWRU8wbEJRMGtzT0VKQlFYZERPMGxCUTNoRExEQkNRVUY1UXp0RFFVTTFRenM3UTBGRlJDeHJRa0ZCYTBJN08wTkJSV3hDTzBsQlEwa3NZVUZCTkVNN1EwRkRMME03TzBOQlJVUXNNRUpCUVRCQ096dERRVVV4UWl4clEwRkJhME03TzBOQlEyeERPMGxCUTBrc2FVSkJRWFZDTzBsQlFYWkNMSFZDUVVGMVFqdERRVU14UWpzN1EwRkZSRHRKUVVOSkxHbENRVUZwUWp0SlFVTnFRaXhoUVVGeFF6dEpRVU55UXl4blFrRkJkVU03U1VGRGRrTXNhVUpCUVdsQ08wbEJRMnBDTEhkQ1FVRjNRanRKUVVONFFpeHZRa0ZCYjBJN1NVRkRjRUlzYTBKQlFUWkRPME5CUTJoRU96dERRVVZFTzBsQlEwa3NWMEZCVnp0SlFVTllMR0ZCUVhGRE8wbEJRM0pETEdkQ1FVRjFRenRKUVVOMlF5eHBRa0ZCYVVJN1NVRkRha0lzZDBKQlFYZENPMGxCUTNoQ0xHOUNRVUZ2UWp0SlFVTndRaXhyUWtGQk5rTTdRMEZEYUVRN08wTkJSVVE3U1VGRFNTdzJRa0ZCTmtJN1NVRkROMElzWVVGQmNVTTdTVUZEY2tNc2EwSkJRV3RDTzBsQlEyeENMR3RDUVVFd1JEdEpRVU14UkN4WlFVRTBRenRKUVVNMVF5eHhRa0ZCWlR0UlFVRm1MR1ZCUVdVN1EwRkRiRUk3TzBOQlJVUTdTVUZEU1N3eVFrRkJNa0k3U1VGRE0wSXNZVUZCY1VNN1NVRkRja01zYlVKQlFXMUNPMGxCUTI1Q0xHdENRVUUyUXp0RFFVTm9SRHM3UTBGRlJDdzBRa0ZCTkVJN08wTkJSVFZDTzBsQlEwa3NZVUZCZFVNN1NVRkRka01zWjBKQlFYVkRPMGxCUTNaRExHRkJRWGRETzBsQlEzaERMR3RDUVVFMlF6dEpRVU0zUXl4cFFrRkJhVUk3U1VGRGFrSXNiMEpCUVc5Q08wbEJRM0JDTEcxQ1FVRnRRanREUVVOMFFqczdRMEZGUkR0SlFVTkpMSGxDUVVGNVFqczdTVUZGZWtJN096czdUMEZKUnp0SlFVTklPenQxUkVGRmIwUTdPMGxCVFhCRU96c3JRMEZGTkVNN1EwRkRMME03TzBOQlJVUTdTVUZEU1N4M1FrRkJkMEk3U1VGRGVFSXNiVUpCUVcxQ08wbEJRMjVDTEdsQ1FVRm5SRHRKUVVOb1JDeG5Ra0ZCSzBNN1NVRkRMME1zYVVKQlFUWkRPME5CUTJoRU96dERRVVZFTzBsQlEwa3NjMEpCUVhOQ08wbEJRM1JDTEdkQ1FVRTBRenRKUVVNMVF5d3lRa0ZCTWtJN1NVRkRNMElzWlVGQlpUdERRVU5zUWpzN1EwRkZSQ3cyUWtGQk5rSTdPME5CUlRkQ08wbEJRMGtzWVVGQmMwTTdTVUZEZEVNc1lVRkJkME03U1VGRGVFTXNhMEpCUVRaRE8wTkJRMmhFT3p0RFFVVkVPMGxCUTBrc2QwSkJRV2RGTzBsQlEyaEZMR3RDUVVFMlF6dEpRVU0zUXl4cFFrRkJhVUk3U1VGRGFrSXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4eFFrRkJaVHRSUVVGbUxHVkJRV1U3U1VGRFppdzBRa0ZCYlVJN1VVRkJia0lzYlVKQlFXMUNPME5CUTNSQ096dERRVVZFTERCQ1FVRXdRanM3UTBGRk1VSTdTVUZEU1N4aFFVRjNRenRKUVVONFF5eHJRa0ZCTmtNN1NVRkROME1zWVVGQk5FTTdTVUZETlVNc1owSkJRWFZETzBOQlF6RkRPenREUVVWRU8wbEJRMGtzYTBKQlFUWkRPMGxCUXpkRExHdENRVUU0UXp0SlFVTTVReXhwUWtGQk5rTTdPMGxCUlRkRExEQktRVUV3U2p0SlFVTXhTaXh6UWtGQmMwSTdTVUZEZEVJc09FTkJRVGhETzBsQlF6bERMRzFDUVVGdFFqdEpRVU51UWl4eFFrRkJjVUk3U1VGRGNrSXNiME5CUVc5RE8wbEJRM0JETEcxRFFVRnRRenREUVVOMFF6czdRMEZGUkR0SlFVTkpMR2xDUVVGcFFqdEpRVU5xUWl4aFFVRmhPME5CUTJoQ096dERRVVZFTzBsQlEwa3NhVUpCUVdsQ08wbEJRMnBDTEZkQlFWYzdRMEZEWkRzN1EwRkZSRHRKUVVOSkxHTkJRV003UTBGRGFrSTdPME5CUlVRc2NVTkJRWEZET3p0RFFVVnlRenRKUVVOSkxHRkJRWE5ETzBOQlEzcERPenREUVVWRU8wbEJRMGtzWVVGQmQwTTdTVUZEZUVNc2EwSkJRVFpETzBOQlEyaEVPenREUVVWRU8wbEJRMGtzWVVGQk5FTTdRMEZETDBNN08wTkJSVVE3U1VGRFNTd3JRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPMGxCUTNaQ0xEQkNRVUYzUmp0SlFVTjRSaXgzUWtGQk1rUTdTVUZETTBRc2VVSkJRWEZETzBsQlEzSkRMR2RDUVVGMVF6dEpRVU4yUXl4cFFrRkJjMFk3U1VGRGRFWXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4aFFVRmhMRU5CUVVNc2FVVkJRV2xGTzBsQlF5OUZMSEZDUVVGbE8xRkJRV1lzWlVGQlpUdEpRVU5tTEhsQ1FVRjVRanREUVVNMVFqczdRMEZGUkR0SlFVTkpMR2RDUVVGblFqdEpRVU5vUWl4bFFVRmxPME5CUTJ4Q096dERRVVZFTzBsQlEwa3NjMEpCUVhsRU8wTkJRelZFT3p0RFFVVkVMRzFDUVVGdFFqczdRMEZGYmtJN1NVRkRTU3hyUWtGQmEwSTdTVUZEYkVJc01FSkJRVFJGTzBsQlF6VkZMRzlDUVVGdlF6dEpRVU53UXl3clFrRkJkVUk3V1VGQmRrSXNkVUpCUVhWQ08wbEJRM1pDTEcxQ1FVRnRRanRKUVVOdVFpeHRRa0ZCYlVJN1EwRkRkRUk3TzBOQlJVUTdTVUZEU1N4dFFrRkJiVUk3U1VGRGJrSXNlVUpCUVhsQ0xFTkJRVU1zYjBSQlFXOUVPMGxCUXpsRkxHMUNRVUZ0UWp0SlFVTnVRaXgzUWtGQmJVVTdTVUZEYmtVc01FSkJRV2xITzBsQlEycEhMQ3RDUVVGMVFqdFpRVUYyUWl4MVFrRkJkVUk3U1VGRGRrSXNWMEZCVnp0SlFVTllMSFZDUVVGMVFpeERRVUZETEhkQ1FVRjNRanREUVVOdVJEczdRMEZGUkN4M1FrRkJkMEk3TzBOQlEzaENPMGxCUTBrc01FSkJRU3RFTzBsQlF5OUVMREJDUVVGcFJ6dERRVU53UnpzN1EwRkZSRHRKUVVOSkxEQkNRVUVyUkR0SlFVTXZSQ3h6UWtGQk1rUTdTVUZETTBRc1YwRkJWenRKUVVOWUxEaENRVUZ6UWp0WlFVRjBRaXh6UWtGQmMwSTdRMEZEZWtJN08wTkJSVVE3U1VGRFNTeHBSVUZCYVVVN1NVRkRha1VzYlVKQlFXMUNPMGxCUTI1Q0xHOUNRVUY1UkR0SlFVTjZSQ3hYUVVGWE8wTkJRMlE3TzBOQlJVUXNPRUpCUVRoQ096dERRVVU1UWp0SlFVTkpMRmxCUVRSRE8wbEJRelZETEdGQlFUWkRPMGxCUXpkRExHbENRVUZuU2p0SlFVTm9TaXhyUWtGQmNVYzdTVUZEY2tjc2JVSkJRVzFDTzBsQlEyNUNMRTlCUVU4N1EwRkRWanM3UTBGRlJEdEpRVU5KTEZsQlFUUkRPMGxCUXpWRExHRkJRVFpETzBsQlF6ZERMRzlDUVVGMVJ6dEpRVU4yUnl4clFrRkJhVW83U1VGRGFrb3NiVUpCUVcxQ08wbEJRMjVDTEZGQlFWRTdRMEZEV0RzN1EwRkZSRHRKUVVOSkxGbEJRVFpFTzBsQlF6ZEVMR2xDUVVGNVNqdERRVU0xU2pzN1EwRkZSRHRKUVVOSkxGZEJRVFJFTzBsQlF6VkVMR3RDUVVFd1NqdERRVU0zU2pzN1EwRkZSQ3gxUWtGQmRVSTdPME5CUlhaQ08wbEJRMGtzWVVGQmMwTTdTVUZEZEVNc1lVRkJkME03U1VGRGVFTXNhMEpCUVRaRE96dEpRVVUzUXpzN2IwUkJSV2RFTzBsQlEyaEVMREJDUVVGdlFqdFJRVUZ3UWl4MVFrRkJiMEk3V1VGQmNFSXNiMEpCUVc5Q08wTkJRM1pDT3p0RFFVVkVPMGxCUTBrc2EwSkJRV3RDTzBOQlEzSkNPenREUVVWRU8wbEJRMGtzWVVGQmQwTTdTVUZEZUVNc2FVSkJRWGRITzBsQlEzaEhMR3RDUVVGNVJ6dEpRVU42Unl4dlFrRkJLME03VVVGQkwwTXNiMEpCUVN0RE8xbEJRUzlETEdkQ1FVRXJRenREUVVOc1JEczdRMEZGUkR0SlFVTkpMR2REUVVGblF6dEpRVU5vUXl4WlFVRnBSRHRKUVVOcVJDeHBRa0ZCYlVjN1NVRkRia2NzV1VGQldUdERRVU5tT3p0RFFVVkVMSEZDUVVGeFFqczdRMEZGY2tJN1NVRkRTU3hoUVVGM1F6dEpRVU40UXl4clFrRkJOa003UTBGRGFFUTdPME5CUlVRN1NVRkRTU3h4UWtGQmNVSTdTVUZEY2tJc1kwRkJNRU03U1VGRE1VTXNXVUZCTWtNN1EwRkRPVU03TzBOQlJVUTdTVUZEU1N4dlFrRkJLME03VVVGQkwwTXNiMEpCUVN0RE8xbEJRUzlETEdkQ1FVRXJRenRKUVVNdlF5eHJRa0ZCYTBJN1NVRkRiRUlzYlVKQlFXMUNPMGxCUTI1Q0xHMUNRVUV3Unp0SlFVTXhSeXhuUWtGQmRVYzdTVUZEZGtjc2NVSkJRV003U1VGQlpDeHhRa0ZCWXp0SlFVRmtMR05CUVdNN1NVRkRaQ3cyUWtGQmRVSTdTVUZCZGtJc09FSkJRWFZDTzFGQlFYWkNMREpDUVVGMVFqdFpRVUYyUWl4MVFrRkJkVUk3UTBGRE1VSTdPME5CUlVRN1NVRkRTU3huUTBGQlowTTdTVUZEYUVNc1YwRkJaMFE3U1VGRGFFUXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4clFrRkJhMEk3U1VGRGJFSXNiVUpCUVcxQ08wTkJRM1JDT3p0RFFVVkVMRFpDUVVFMlFqczdRMEZGTjBJN1NVRkRTU3g1UWtGQmVVSTdTVUZKZWtJc2FVSkJRV2xDTzBOQlEzQkNPenREUVVWRU8wbEJRMGtzWVVGQmQwTTdRMEZETTBNN08wTkJSVVE3U1VGRFNTd3dRa0ZCZVVNN1EwRkROVU03TzBOQlJVUTdTVUZEU1N3d1FrRkJNa003UTBGRE9VTTdPME5CUlVRN1NVRkRTU3d3UWtGQmQwTTdRMEZETTBNN08wTkJSVVE3U1VGRFNTd3dRa0ZCZDBNN1EwRkRNME03TzBOQlJVUTdTVUZEU1N3d1FrRkJlVU03UTBGRE5VTTdPME5CUlVRN1NVRkRTU3d3UWtGQk1FTTdTVUZETVVNc1lVRkJZVHRKUVVOaUxIbENRVUZwUWp0WlFVRnFRaXhwUWtGQmFVSTdRMEZEY0VJN08wTkJSVVFzZVVKQlFYbENPenREUVVWNlFqdEpRVU5KTEd0Q1FVRnJRanRKUVVOc1FpeGhRVUYzUXp0SlFVTjRReXhyUWtGQk5rTTdTVUZETjBNc1lVRkJjME03U1VGRGRFTXNNRUpCUVc5Q08xRkJRWEJDTEhWQ1FVRnZRanRaUVVGd1FpeHZRa0ZCYjBJN08wTkJSWFpDT3p0RFFVVkVPMGxCUTBrc2IwSkJRV0U3VVVGQllpeHhRa0ZCWVR0WlFVRmlMR0ZCUVdFN1NVRkRZaXhuUWtGQk5FTTdTVUZETlVNc2JVSkJRU3RETzBsQlF5OURMRFpDUVVGdlFqdFJRVUZ3UWl4dlFrRkJiMEk3U1VGRGNFSXNPRUpCUVRoQ08wbEJRemxDTEdGQlFXZENPMGxCUVdoQ0xHZENRVUZuUWp0RFFVTnVRanM3UTBGRlJDeDFRa0ZCZFVJN08wTkJSWFpDTzBsQlEwa3NZMEZCTUVNN1NVRkRNVU1zV1VGQk1rTTdRMEZET1VNN08wTkJSVVE3U1VGRFNTeHZRa0ZCWVR0UlFVRmlMSEZDUVVGaE8xbEJRV0lzWVVGQllUdEpRVU5pTEZsQlFUUkRPMGxCUXpWRExHdENRVUZyUWp0SlFVTnNRaXh0UWtGQmJVSTdTVUZEYmtJc2FVSkJRV2xDTzBOQlEzQkNPenREUVVWRUxESkNRVUV5UWpzN1EwRkZNMEk3U1VGRFNTeGhRVUYzUXp0SlFVTjRReXhoUVVGelF6dEpRVU4wUXl4clFrRkJOa003UTBGRGFFUTdPME5CUlVRN1NVRkRTU3h2UWtGQmIwSTdTVUZEY0VJc01FSkJRWGRHTzBsQlEzaEdMR2xDUVVGcFFqdEpRVU5xUWl4blFrRkJaMEk3U1VGRGFFSXNiMEpCUVN0RE8xRkJRUzlETEc5Q1FVRXJRenRaUVVFdlF5eG5Ra0ZCSzBNN1NVRkRMME1zWVVGQllTeERRVUZETEdsRlFVRnBSVHRKUVVNdlJTd3JRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPMGxCUTNaQ0xIbENRVUY1UWp0SlFVTjZRaXg1UWtGQmFVSTdXVUZCYWtJc2FVSkJRV2xDTzBsQlEycENMSGRDUVVFeVJEdEpRVU16UkN4NVFrRkJjVU03U1VGRGNrTXNaMEpCUVhWRE8wbEJRM1pETEc5Q1FVRnZRanRKUVVOd1FpeHJRa0ZCZVVRN1EwRkROVVFzYVVKQlFXbENPME5CUTJwQ0xIbENRVUY1UWp0RFFVTjZRaXh6UWtGQmMwSTdTVUZEYmtJc05rSkJRVFpDTzBOQlEyaERMSE5DUVVGelFqdERRVU4wUWl4clEwRkJhME03U1VGREwwSXNhM1ZDUVVGdFJEdERRVU4wUkRzN1EwRkRSRHRKUVVOSkxITkNRVUY1UkR0RFFVTTFSRHM3UTBGRlJEdEpRVU5KTEdGQlFUUkRPME5CUXk5RE96dERRVVZFT3paRFFVTTJRenM3UTBGRE4wTTdTVUZEU1N4dFFrRkJiVUk3U1VGRGJrSXNkMEpCUVhkQ08wTkJRek5DT3p0RFFVVkVMQ3RDUVVFclFqczdRMEZGTDBJN1NVRkRTU3hoUVVGelF6dEpRVU4wUXl4clFrRkJOa003TzBsQlJUZERPenRyUlVGRk9FUTdTVUZET1VRc2VVSkJRWGRDTzFGQlFYaENMSE5DUVVGM1FqdFpRVUY0UWl4M1FrRkJkMEk3UTBGRE0wSTdPME5CUlVRN1NVRkRTU3d3UWtGQmQwWTdTVUZEZUVZc2QwSkJRVEpFTzBsQlF6TkVMSGxDUVVGeFF6dEpRVU55UXl4blFrRkJkVU03U1VGRGRrTXNiMEpCUVN0RE8xRkJRUzlETEc5Q1FVRXJRenRaUVVFdlF5eG5Ra0ZCSzBNN1NVRkRMME1zZVVKQlFYbENPMGxCUTNwQ0xHVkJRV1U3U1VGRFppeG5Ra0ZCWjBJN08wbEJSV2hDT3p0clJVRkZPRVE3U1VGRE9VUXNhVUpCUVdsQ08wTkJRM0JDT3p0RFFVVkVPMGxCUTBrc2MwSkJRWGxFTzBOQlF6VkVPenREUVVWRU8wbEJRMGtzYTBKQlFUaERPMGxCUXpsRExHdENRVUUyUXp0SlFVTTNReXhyUlVGQmEwVTdTVUZEYkVVc01FUkJRV2xHTzBsQlEycEdMRFpFUVVGdlJqdERRVU4yUmpzN1EwRkpSQ3cwUWtGQk5FSTdPME5CUlRWQ08wbEJRMGtzYTBKQlFUWkRPME5CUTJoRU96dERRVVZFTzBsQlEwa3NhVUpCUVhORE8wbEJRM1JETEd0Q1FVRjFRenREUVVNeFF6czdRMEZGUkR0SlFVTkpMR0ZCUVRSRE8wTkJReTlET3p0RFFVVkVMREpDUVVFeVFqczdRMEZGTTBJN1NVRkRTU3hoUVVGelF6dEpRVU4wUXl4clFrRkJOa003UTBGRGFFUTdPME5CUlVRN1NVRkRTU3h4UWtGQll6dEpRVUZrTEhGQ1FVRmpPMGxCUVdRc1kwRkJZenRKUVVOa0xEWkNRVUYxUWp0SlFVRjJRaXc0UWtGQmRVSTdVVUZCZGtJc01rSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl3eVFrRkJjVUk3VVVGQmNrSXNkMEpCUVhGQ08xbEJRWEpDTEhGQ1FVRnhRanRKUVVOeVFpd3JRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPMGxCUTNaQ0xHOUNRVUZoTzFGQlFXSXNjVUpCUVdFN1dVRkJZaXhoUVVGaE8wbEJRMklzYlVKQlFUaEVPME5CUTJwRk96dERRVVZFTzBsQlEwa3NZVUZCTkVNN1NVRkROVU1zYTBKQlFXbEVPMGxCUTJwRUxHZENRVUYxUXp0RFFVTXhRenM3UTBGRlJEdEpRVU5KTEdGQlFUUkRPMGxCUXpWRExHdENRVUZwUkR0SlFVTnFSQ3h2UWtGQk5FUTdTVUZETlVRc1dVRkJXVHREUVVObU96dERRVVZFTERCQ1FVRXdRanM3UTBGRk1VSTdTVUZEU1N4aFFVRnpRenRKUVVOMFF5eGhRVUYzUXp0SlFVTjRReXhyUWtGQk5rTTdRMEZEYUVRN08wTkJSVVE3U1VGRFNTeHZRa0ZCWVR0UlFVRmlMSEZDUVVGaE8xbEJRV0lzWVVGQllUdEpRVU5pTEhGQ1FVRmxPMUZCUVdZc1pVRkJaVHRKUVVObUxHZENRVUVyUXp0RFFVTnNSRHM3UTBGRlJEdEpRVU5KTEZsQlFYVkRPMGxCUTNaRExHRkJRWGRETzBsQlEzaERMR1ZCUVdVc1EwRkJReXcyUkVGQk5rUTdTVUZETjBVc2EwSkJRWEZFTzBsQlEzSkVMSGxDUVVGeFF6dEpRVU55UXl3d1FrRkJkMFk3U1VGRGVFWXNhMEpCUVd0Q08wbEJRMnhDTEc5Q1FVRmhPMUZCUVdJc2NVSkJRV0U3V1VGQllpeGhRVUZoTzBsQlEySXNjVUpCUVdVN1VVRkJaaXhsUVVGbE8wbEJRMllzSzBKQlFYVkNPMWxCUVhaQ0xIVkNRVUYxUWp0SlFVTjJRaXcyUWtGQmIwSTdVVUZCY0VJc2IwSkJRVzlDTzBsQlEzQkNMSGxDUVVGNVFqdERRVU0xUWpzN1EwRkZSRHRKUVVOSkxDdENRVUUyUmp0RFFVTm9SenM3UTBGRlJEdEpRVU5KTEhOQ1FVRjVSRHREUVVNMVJEczdRMEZGUkR0SlFVTkpMRzlDUVVGaE8xRkJRV0lzY1VKQlFXRTdXVUZCWWl4aFFVRmhPMGxCUTJJc2VVSkJRWGxDTzBsQlEzcENMR0ZCUVhkRE8wbEJRM2hETEd0Q1FVRTJRenRKUVVNM1F5eHJRa0ZCY1VRN1NVRkRja1FzZVVKQlFYRkRPMGxCUTNKRExEQkNRVUYzUmp0SlFVTjRSaXhuUWtGQmRVTTdTVUZEZGtNc2FVSkJRWE5HTzBsQlEzUkdMR0ZCUVdFc1EwRkJReXhwUlVGQmFVVTdTVUZETDBVc2NVSkJRV1U3VVVGQlppeGxRVUZsTzBsQlEyWXNLMEpCUVhWQ08xbEJRWFpDTEhWQ1FVRjFRanREUVVNeFFqczdRMEZGUkR0SlFVTkpMR0ZCUVRSRE8wTkJReTlET3p0RFFVVkVMSGxDUVVGNVFqczdRMEZGZWtJN1NVRkRTU3hoUVVGelF6dEpRVU4wUXl4aFFVRjNRenRKUVVONFF5eHJRa0ZCTmtNN1EwRkRhRVE3TzBOQlJVUTdTVUZEU1N4dlFrRkJZVHRSUVVGaUxIRkNRVUZoTzFsQlFXSXNZVUZCWVR0SlFVTmlMSEZDUVVGbE8xRkJRV1lzWlVGQlpUdEpRVU5tTEdGQlFXRXNRMEZCUXl4cFJVRkJhVVU3U1VGREwwVXNlVUpCUVhsQ08wbEJRM3BDTEdGQlFYZERPMGxCUTNoRExEQkNRVUYzUmp0SlFVTjRSaXgzUWtGQk1rUTdTVUZETTBRc2VVSkJRWEZETzBsQlEzSkRMR2RDUVVGMVF6dEpRVU4yUXl4cFFrRkJjMFk3U1VGRGRFWXNLMEpCUVhWQ08xbEJRWFpDTEhWQ1FVRjFRanREUVVNeFFqczdRMEZGUkR0SlFVTkpMSE5DUVVGNVJEdERRVU0xUkRzN1EwRkZSRHRKUVVOSkxITkNRVUZ2UXp0RFFVTjJRenM3UTBGRlJEdEpRVU5KTEdGQlFUUkRPME5CUXk5RE96dERRVVZFTEdsQ1FVRnBRanM3UTBGRmFrSTdTVUZEU1N4aFFVRTBRenRKUVVNMVF5eHhRa0ZCWXp0SlFVRmtMSEZDUVVGak8wbEJRV1FzWTBGQll6dEpRVU5rTERKQ1FVRnhRanRSUVVGeVFpeDNRa0ZCY1VJN1dVRkJja0lzY1VKQlFYRkNPME5CUTNoQ096dERRVVZFTzBsQlEwa3NiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4aFFVRmhPME5CUTJoQ096dERRVVZFTzBsQlEwa3NZVUZCTkVNN1EwRkRMME03TzBOQlJVUXNaMEpCUVdkQ096dERRVVZvUWp0SlFVTkpMSEZDUVVGak8wbEJRV1FzY1VKQlFXTTdTVUZCWkN4alFVRmpPMGxCUTJRc05rSkJRWFZDTzBsQlFYWkNMRGhDUVVGMVFqdFJRVUYyUWl3eVFrRkJkVUk3V1VGQmRrSXNkVUpCUVhWQ08wTkJRekZDT3p0RFFVVkVPMGxCUTBrc2VVWkJRWGxHTzBsQlEzcEdMRzlDUVVGdlFqdEpRVU53UWl4dlFrRkJiMEk3UTBGRGRrSTdPME5CUlVRN1NVRkRTU3hwUkVGQmFVUTdTVUZEYWtRc2RVSkJRWE5DTzFGQlFYUkNMRzlDUVVGelFqdFpRVUYwUWl4elFrRkJjMEk3U1VGRGRFSXNZVUZCWVR0SlFVTmlMR05CUVdNN1EwRkRha0k3TzBOQlJVUTdTVUZEU1N4WlFVRlpPMGxCUTFvc0swSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl4VlFVRlZPMGxCUTFZc2EwSkJRVzlETzBsQlEzQkRMSGxDUVVGblF6dEpRVU5vUXl3d1FrRkJOa1E3U1VGRE4wUXNZMEZCTmtNN1NVRkROME1zYjBKQlFXRTdVVUZCWWl4eFFrRkJZVHRaUVVGaUxHRkJRV0U3U1VGRFlpeGxRVUZsTzBOQlEyeENPenREUVVWRU8wbEJRMGtzZDBOQlFTdEVPMGxCUXk5RUxHbENRVUZ0Ump0RFFVTjBSanM3UTBGRlJEdEpRVU5KTEc5Q1FVRnBSRHRSUVVGcVJDeHZRa0ZCYVVRN1dVRkJha1FzWjBKQlFXbEVPMGxCUTJwRUxHZENRVUZuUWp0SlFVTm9RaXhwUWtGQmJVWTdTVUZEYmtZc2EwSkJRWEZFTzBsQlEzSkVMR3RDUVVFclF6dEpRVU12UXl4clFrRkJhMEk3U1VGRGJFSXNiMEpCUVc5RE8wbEJRM0JETEhsQ1FVRm5RenRKUVVOb1F5d3dRa0ZCTmtRN1NVRkROMFFzYjBKQlFXOUNPMGxCUTNCQ0xHMUNRVUZ0UWp0RFFVTjBRanM3UTBGRlJEdEpRVU5KTERCQ1FVRm5RenRKUVVOb1F5eG5SVUZCWjBVN1NVRkRhRVVzYTBKQlFXOURPMGxCUTNCRExHbENRVUYxUmp0SlFVTjJSaXh0UTBGQk9FTTdXVUZCT1VNc01rSkJRVGhETzBsQlF6bERMR3RDUVVGclFqdERRVU55UWpzN1EwRkZSRHRKUVVOSkxHMUNRVUZ0UWp0SlFVTnVRaXhWUVVGMVF6dEpRVU4yUXl4WFFVRjNRenRKUVVONFF5eFpRVUZaTzBsQlExb3NXVUZCYjBRN1NVRkRjRVFzZDBKQlFTdERPMGxCUXk5RExHOUNRVUZ0UXp0RFFVTjBRenM3UTBGRlJEdEpRVU5KTEdWQlFXVTdRMEZEYkVJN08wTkJSVVE3U1VGRFNTeHJRa0ZCYjBNN1NVRkRjRU1zZVVKQlFXZERPME5CUTI1RE96dERRVVZFTzBsQlEwa3NhVUpCUVdsQ08wTkJRM0JDT3p0RFFVVkVPMGxCUTBrc2VVSkJRWGxDTzBsQlEzcENMR2xDUVVGcFFpeERRVUZETEZkQlFWYzdRMEZEYUVNN08wTkJSVVE3T3p0SlFVZEpMR3RDUVVGeFJEdERRVU40UkRzN1EwRkZSQ3h6UWtGQmMwSTdPME5CUlhSQ08wbEJRMGtzY1VKQlFXTTdTVUZCWkN4eFFrRkJZenRKUVVGa0xHTkJRV003U1VGRFpDdzJRa0ZCZFVJN1NVRkJka0lzT0VKQlFYVkNPMUZCUVhaQ0xESkNRVUYxUWp0WlFVRjJRaXgxUWtGQmRVSTdTVUZEZGtJc01rSkJRWEZDTzFGQlFYSkNMSGRDUVVGeFFqdFpRVUZ5UWl4eFFrRkJjVUk3UTBGRGVFSTdPME5CUlVRN1NVRkRTU3hoUVVGNVF6dEpRVU42UXl4blFrRkJaMEk3U1VGRGFFSXNlVUpCUVdkRE8wbEJRMmhETERCQ1FVRXdRenRKUVVNeFF5d3dRa0ZCY1VVN1NVRkRja1VzYlVKQlFTdEdPMGxCUXk5R0xHdENRVUZyUWp0RFFVTnlRanM3UTBGRlJEdEpRVU5KTEhkQ1FVRXdRenRKUVVNeFF5eDVRa0ZCWjBNN1EwRkRia003TzBOQlJVUTdTVUZEU1N4M1FrRkJNRU03U1VGRE1VTXNNRUpCUVdkRE8wbEJRMmhETEdkQ1FVRm5RanRKUVVOb1FpeHZRa0ZCYjBJN1EwRkRka0k3TzBOQlJVUTdTVUZEU1N4elFrRkJjMElzUlVGQlJTeHhRMEZCY1VNN1NVRkROMFFzYzBKQlFYTkNPMGxCUTNSQ0xEaERRVUU0UXp0SlFVTTVReXh0UWtGQmJVSTdTVUZEYmtJc2NVSkJRWEZDTzBsQlEzSkNMRzlEUVVGdlF6dEpRVU53UXl4dFEwRkJiVU03UTBGRGRFTTdPME5CUlVRN1NVRkRTU3h6UWtGQmMwSXNRMEZCUXl4dlEwRkJiME03UTBGRE9VUTdPME5CUlVRN1NVRkRTU3hqUVVFMlF6dEpRVU0zUXl4M1FrRkJNRU03U1VGRE1VTXNlVUpCUVdkRE8wbEJRMmhETEN0Q1FVRXdSVHRKUVVNeFJTeG5RMEZCTWtVN1NVRkRNMFVzYVVOQlFUUkZPMGxCUXpWRkxHVkJRV1U3UTBGRGJFSTdPME5CUlVRN1NVRkRTU3h4UWtGQll6dEpRVUZrTEhGQ1FVRmpPMGxCUVdRc1kwRkJZenRKUVVOa0xEWkNRVUYxUWp0SlFVRjJRaXc0UWtGQmRVSTdVVUZCZGtJc01rSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl3eVFrRkJjVUk3VVVGQmNrSXNkMEpCUVhGQ08xbEJRWEpDTEhGQ1FVRnhRanREUVVONFFqczdRMEZGUkR0SlFVTkpMR2xDUVVGcFFqdERRVU53UWpzN1EwRkZSRHRKUVVOSkxHZENRVUZuUWp0RFFVTnVRanM3UTBGSlJDeHBRa0ZCYVVJN08wTkJSV3BDTzBsQlEwa3NaMEpCUVhWRE8wTkJRekZET3p0RFFVVkVPMGxCUTBrc01FTkJRVEJETzBsQlF6RkRMRFpDUVVGdlFqdFJRVUZ3UWl4dlFrRkJiMEk3U1VGRGNFSXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4eFFrRkJaVHRSUVVGbUxHVkJRV1U3U1VGRFppeHJSVUZCYTBVN1NVRkRiRVVzYTBKQlFUWkRPMGxCUXpkRExIbEZRVUY1UlR0SlFVTjZSU3h0UWtGQmJVSTdRMEZEZEVJaUxDSm1hV3hsSWpvaVkyOXVkSEp2YkhNdVkzTnpJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpTHlvZ1EyOXdlWEpwWjJoMElDaGpLU0JLZFhCNWRHVnlJRVJsZG1Wc2IzQnRaVzUwSUZSbFlXMHVYRzRnS2lCRWFYTjBjbWxpZFhSbFpDQjFibVJsY2lCMGFHVWdkR1Z5YlhNZ2IyWWdkR2hsSUUxdlpHbG1hV1ZrSUVKVFJDQk1hV05sYm5ObExseHVJQ292WEc1Y2JpQXZLaUJYWlNCcGJYQnZjblFnWVd4c0lHOW1JSFJvWlhObElIUnZaMlYwYUdWeUlHbHVJR0VnYzJsdVoyeGxJR056Y3lCbWFXeGxJR0psWTJGMWMyVWdkR2hsSUZkbFluQmhZMnRjYm14dllXUmxjaUJ6WldWeklHOXViSGtnYjI1bElHWnBiR1VnWVhRZ1lTQjBhVzFsTGlCVWFHbHpJR0ZzYkc5M2N5QndiM04wWTNOeklIUnZJSE5sWlNCMGFHVWdkbUZ5YVdGaWJHVmNibVJsWm1sdWFYUnBiMjV6SUhkb1pXNGdkR2hsZVNCaGNtVWdkWE5sWkM0Z0tpOWNibHh1UUdsdGNHOXlkQ0JjSWk0dmJHRmlkbUZ5YVdGaWJHVnpMbU56YzF3aU8xeHVRR2x0Y0c5eWRDQmNJaTR2ZDJsa1oyVjBjeTFpWVhObExtTnpjMXdpTzF4dUlpd2lMeW90TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExWeHVmQ0JEYjNCNWNtbG5hSFFnS0dNcElFcDFjSGwwWlhJZ1JHVjJaV3h2Y0cxbGJuUWdWR1ZoYlM1Y2Jud2dSR2x6ZEhKcFluVjBaV1FnZFc1a1pYSWdkR2hsSUhSbGNtMXpJRzltSUhSb1pTQk5iMlJwWm1sbFpDQkNVMFFnVEdsalpXNXpaUzVjYm53dExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRLaTljYmx4dUx5cGNibFJvYVhNZ1ptbHNaU0JwY3lCamIzQnBaV1FnWm5KdmJTQjBhR1VnU25Wd2VYUmxja3hoWWlCd2NtOXFaV04wSUhSdklHUmxabWx1WlNCa1pXWmhkV3gwSUhOMGVXeHBibWNnWm05eVhHNTNhR1Z1SUhSb1pTQjNhV1JuWlhRZ2MzUjViR2x1WnlCcGN5QmpiMjF3YVd4bFpDQmtiM2R1SUhSdklHVnNhVzFwYm1GMFpTQkRVMU1nZG1GeWFXRmliR1Z6TGlCWFpTQnRZV3RsSUc5dVpWeHVZMmhoYm1kbElDMGdkMlVnWTI5dGJXVnVkQ0J2ZFhRZ2RHaGxJR1p2Ym5RZ2FXMXdiM0owSUdKbGJHOTNMbHh1S2k5Y2JseHVRR2x0Y0c5eWRDQmNJaTR2YldGMFpYSnBZV3hqYjJ4dmNuTXVZM056WENJN1hHNWNiaThxWEc1VWFHVWdabTlzYkc5M2FXNW5JRU5UVXlCMllYSnBZV0pzWlhNZ1pHVm1hVzVsSUhSb1pTQnRZV2x1TENCd2RXSnNhV01nUVZCSklHWnZjaUJ6ZEhsc2FXNW5JRXAxY0hsMFpYSk1ZV0l1WEc1VWFHVnpaU0IyWVhKcFlXSnNaWE1nYzJodmRXeGtJR0psSUhWelpXUWdZbmtnWVd4c0lIQnNkV2RwYm5NZ2QyaGxjbVYyWlhJZ2NHOXpjMmxpYkdVdUlFbHVJRzkwYUdWeVhHNTNiM0prY3l3Z2NHeDFaMmx1Y3lCemFHOTFiR1FnYm05MElHUmxabWx1WlNCamRYTjBiMjBnWTI5c2IzSnpMQ0J6YVhwbGN5d2daWFJqSUhWdWJHVnpjeUJoWW5OdmJIVjBaV3g1WEc1dVpXTmxjM05oY25rdUlGUm9hWE1nWlc1aFlteGxjeUIxYzJWeWN5QjBieUJqYUdGdVoyVWdkR2hsSUhacGMzVmhiQ0IwYUdWdFpTQnZaaUJLZFhCNWRHVnlUR0ZpWEc1aWVTQmphR0Z1WjJsdVp5QjBhR1Z6WlNCMllYSnBZV0pzWlhNdVhHNWNiazFoYm5rZ2RtRnlhV0ZpYkdWeklHRndjR1ZoY2lCcGJpQmhiaUJ2Y21SbGNtVmtJSE5sY1hWbGJtTmxJQ2d3TERFc01pd3pLUzRnVkdobGMyVWdjMlZ4ZFdWdVkyVnpYRzVoY21VZ1pHVnphV2R1WldRZ2RHOGdkMjl5YXlCM1pXeHNJSFJ2WjJWMGFHVnlMQ0J6YnlCbWIzSWdaWGhoYlhCc1pTd2dZQzB0YW5BdFltOXlaR1Z5TFdOdmJHOXlNV0FnYzJodmRXeGtYRzVpWlNCMWMyVmtJSGRwZEdnZ1lDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1XQXVJRlJvWlNCdWRXMWlaWEp6SUdoaGRtVWdkR2hsSUdadmJHeHZkMmx1WnlCdFpXRnVhVzVuY3pwY2JseHVLaUF3T2lCemRYQmxjaTF3Y21sdFlYSjVMQ0J5WlhObGNuWmxaQ0JtYjNJZ2MzQmxZMmxoYkNCbGJYQm9ZWE5wYzF4dUtpQXhPaUJ3Y21sdFlYSjVMQ0J0YjNOMElHbHRjRzl5ZEdGdWRDQjFibVJsY2lCdWIzSnRZV3dnYzJsMGRXRjBhVzl1YzF4dUtpQXlPaUJ6WldOdmJtUmhjbmtzSUc1bGVIUWdiVzl6ZENCcGJYQnZjblJoYm5RZ2RXNWtaWElnYm05eWJXRnNJSE5wZEhWaGRHbHZibk5jYmlvZ016b2dkR1Z5ZEdsaGNua3NJRzVsZUhRZ2JXOXpkQ0JwYlhCdmNuUmhiblFnZFc1a1pYSWdibTl5YldGc0lITnBkSFZoZEdsdmJuTmNibHh1VkdoeWIzVm5hRzkxZENCS2RYQjVkR1Z5VEdGaUxDQjNaU0JoY21VZ2JXOXpkR3g1SUdadmJHeHZkMmx1WnlCd2NtbHVZMmx3YkdWeklHWnliMjBnUjI5dloyeGxKM05jYmsxaGRHVnlhV0ZzSUVSbGMybG5iaUIzYUdWdUlITmxiR1ZqZEdsdVp5QmpiMnh2Y25NdUlGZGxJR0Z5WlNCdWIzUXNJR2h2ZDJWMlpYSXNJR1p2Ykd4dmQybHVaMXh1WVd4c0lHOW1JRTFFSUdGeklHbDBJR2x6SUc1dmRDQnZjSFJwYldsNlpXUWdabTl5SUdSbGJuTmxMQ0JwYm1admNtMWhkR2x2YmlCeWFXTm9JRlZKY3k1Y2Jpb3ZYRzVjYmx4dUx5cGNiaUFxSUU5d2RHbHZibUZzSUcxdmJtOXpjR0ZqWlNCbWIyNTBJR1p2Y2lCcGJuQjFkQzl2ZFhSd2RYUWdjSEp2YlhCMExseHVJQ292WEc0Z0x5b2dRMjl0YldWdWRHVmtJRzkxZENCcGJpQnBjSGwzYVdSblpYUnpJSE5wYm1ObElIZGxJR1J2YmlkMElHNWxaV1FnYVhRdUlDb3ZYRzR2S2lCQWFXMXdiM0owSUhWeWJDZ25hSFIwY0hNNkx5OW1iMjUwY3k1bmIyOW5iR1ZoY0dsekxtTnZiUzlqYzNNL1ptRnRhV3g1UFZKdlltOTBieXROYjI1dkp5azdJQ292WEc1Y2JpOHFYRzRnS2lCQlpHUmxaQ0JtYjNJZ1kyOXRjR0ZpYVhScGJHbDBlU0IzYVhSb0lHOTFkSEIxZENCaGNtVmhYRzRnS2k5Y2JqcHliMjkwSUh0Y2JpQWdMUzFxY0MxcFkyOXVMWE5sWVhKamFEb2dibTl1WlR0Y2JpQWdMUzFxY0MxMWFTMXpaV3hsWTNRdFkyRnlaWFE2SUc1dmJtVTdYRzU5WEc1Y2JseHVPbkp2YjNRZ2UxeHVYRzRnSUM4cUlFSnZjbVJsY25OY2JseHVJQ0JVYUdVZ1ptOXNiRzkzYVc1bklIWmhjbWxoWW14bGN5d2djM0JsWTJsbWVTQjBhR1VnZG1semRXRnNJSE4wZVd4cGJtY2diMllnWW05eVpHVnljeUJwYmlCS2RYQjVkR1Z5VEdGaUxseHVJQ0FnS2k5Y2JseHVJQ0F0TFdwd0xXSnZjbVJsY2kxM2FXUjBhRG9nTVhCNE8xeHVJQ0F0TFdwd0xXSnZjbVJsY2kxamIyeHZjakE2SUhaaGNpZ3RMVzFrTFdkeVpYa3ROekF3S1R0Y2JpQWdMUzFxY0MxaWIzSmtaWEl0WTI5c2IzSXhPaUIyWVhJb0xTMXRaQzFuY21WNUxUVXdNQ2s3WEc0Z0lDMHRhbkF0WW05eVpHVnlMV052Ykc5eU1qb2dkbUZ5S0MwdGJXUXRaM0psZVMwek1EQXBPMXh1SUNBdExXcHdMV0p2Y21SbGNpMWpiMnh2Y2pNNklIWmhjaWd0TFcxa0xXZHlaWGt0TVRBd0tUdGNibHh1SUNBdktpQlZTU0JHYjI1MGMxeHVYRzRnSUZSb1pTQlZTU0JtYjI1MElFTlRVeUIyWVhKcFlXSnNaWE1nWVhKbElIVnpaV1FnWm05eUlIUm9aU0IwZVhCdlozSmhjR2g1SUdGc2JDQnZaaUIwYUdVZ1NuVndlWFJsY2t4aFlseHVJQ0IxYzJWeUlHbHVkR1Z5Wm1GalpTQmxiR1Z0Wlc1MGN5QjBhR0YwSUdGeVpTQnViM1FnWkdseVpXTjBiSGtnZFhObGNpQm5aVzVsY21GMFpXUWdZMjl1ZEdWdWRDNWNiaUFnS2k5Y2JseHVJQ0F0TFdwd0xYVnBMV1p2Ym5RdGMyTmhiR1V0Wm1GamRHOXlPaUF4TGpJN1hHNGdJQzB0YW5BdGRXa3RabTl1ZEMxemFYcGxNRG9nWTJGc1l5aDJZWElvTFMxcWNDMTFhUzFtYjI1MExYTnBlbVV4S1M5MllYSW9MUzFxY0MxMWFTMW1iMjUwTFhOallXeGxMV1poWTNSdmNpa3BPMXh1SUNBdExXcHdMWFZwTFdadmJuUXRjMmw2WlRFNklERXpjSGc3SUM4cUlFSmhjMlVnWm05dWRDQnphWHBsSUNvdlhHNGdJQzB0YW5BdGRXa3RabTl1ZEMxemFYcGxNam9nWTJGc1l5aDJZWElvTFMxcWNDMTFhUzFtYjI1MExYTnBlbVV4S1NwMllYSW9MUzFxY0MxMWFTMW1iMjUwTFhOallXeGxMV1poWTNSdmNpa3BPMXh1SUNBdExXcHdMWFZwTFdadmJuUXRjMmw2WlRNNklHTmhiR01vZG1GeUtDMHRhbkF0ZFdrdFptOXVkQzF6YVhwbE1pa3FkbUZ5S0MwdGFuQXRkV2t0Wm05dWRDMXpZMkZzWlMxbVlXTjBiM0lwS1R0Y2JpQWdMUzFxY0MxMWFTMXBZMjl1TFdadmJuUXRjMmw2WlRvZ01UUndlRHNnTHlvZ1JXNXpkWEpsY3lCd2VDQndaWEptWldOMElFWnZiblJCZDJWemIyMWxJR2xqYjI1eklDb3ZYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMW1ZVzFwYkhrNklGd2lTR1ZzZG1WMGFXTmhJRTVsZFdWY0lpd2dTR1ZzZG1WMGFXTmhMQ0JCY21saGJDd2djMkZ1Y3kxelpYSnBaanRjYmx4dUlDQXZLaUJWYzJVZ2RHaGxjMlVnWm05dWRDQmpiMnh2Y25NZ1lXZGhhVzV6ZENCMGFHVWdZMjl5Y21WemNHOXVaR2x1WnlCdFlXbHVJR3hoZVc5MWRDQmpiMnh2Y25NdVhHNGdJQ0FnSUVsdUlHRWdiR2xuYUhRZ2RHaGxiV1VzSUhSb1pYTmxJR2R2SUdaeWIyMGdaR0Z5YXlCMGJ5QnNhV2RvZEM1Y2JpQWdLaTljYmx4dUlDQXRMV3B3TFhWcExXWnZiblF0WTI5c2IzSXdPaUJ5WjJKaEtEQXNNQ3d3TERFdU1DazdYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMWpiMnh2Y2pFNklISm5ZbUVvTUN3d0xEQXNNQzQ0S1R0Y2JpQWdMUzFxY0MxMWFTMW1iMjUwTFdOdmJHOXlNam9nY21kaVlTZ3dMREFzTUN3d0xqVXBPMXh1SUNBdExXcHdMWFZwTFdadmJuUXRZMjlzYjNJek9pQnlaMkpoS0RBc01Dd3dMREF1TXlrN1hHNWNiaUFnTHlvZ1ZYTmxJSFJvWlhObElHRm5ZV2x1YzNRZ2RHaGxJR0p5WVc1a0wyRmpZMlZ1ZEM5M1lYSnVMMlZ5Y205eUlHTnZiRzl5Y3k1Y2JpQWdJQ0FnVkdobGMyVWdkMmxzYkNCMGVYQnBZMkZzYkhrZ1oyOGdabkp2YlNCc2FXZG9kQ0IwYnlCa1lYSnJaWElzSUdsdUlHSnZkR2dnWVNCa1lYSnJJR0Z1WkNCc2FXZG9kQ0IwYUdWdFpWeHVJQ0FnS2k5Y2JseHVJQ0F0TFdwd0xXbHVkbVZ5YzJVdGRXa3RabTl1ZEMxamIyeHZjakE2SUhKblltRW9NalUxTERJMU5Td3lOVFVzTVNrN1hHNGdJQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNVG9nY21kaVlTZ3lOVFVzTWpVMUxESTFOU3d4TGpBcE8xeHVJQ0F0TFdwd0xXbHVkbVZ5YzJVdGRXa3RabTl1ZEMxamIyeHZjakk2SUhKblltRW9NalUxTERJMU5Td3lOVFVzTUM0M0tUdGNiaUFnTFMxcWNDMXBiblpsY25ObExYVnBMV1p2Ym5RdFkyOXNiM0l6T2lCeVoySmhLREkxTlN3eU5UVXNNalUxTERBdU5TazdYRzVjYmlBZ0x5b2dRMjl1ZEdWdWRDQkdiMjUwYzF4dVhHNGdJRU52Ym5SbGJuUWdabTl1ZENCMllYSnBZV0pzWlhNZ1lYSmxJSFZ6WldRZ1ptOXlJSFI1Y0c5bmNtRndhSGtnYjJZZ2RYTmxjaUJuWlc1bGNtRjBaV1FnWTI5dWRHVnVkQzVjYmlBZ0tpOWNibHh1SUNBdExXcHdMV052Ym5SbGJuUXRabTl1ZEMxemFYcGxPaUF4TTNCNE8xeHVJQ0F0TFdwd0xXTnZiblJsYm5RdGJHbHVaUzFvWldsbmFIUTZJREV1TlR0Y2JpQWdMUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJd09pQmliR0ZqYXp0Y2JpQWdMUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJeE9pQmliR0ZqYXp0Y2JpQWdMUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJeU9pQjJZWElvTFMxdFpDMW5jbVY1TFRjd01DazdYRzRnSUMwdGFuQXRZMjl1ZEdWdWRDMW1iMjUwTFdOdmJHOXlNem9nZG1GeUtDMHRiV1F0WjNKbGVTMDFNREFwTzF4dVhHNGdJQzB0YW5BdGRXa3RabTl1ZEMxelkyRnNaUzFtWVdOMGIzSTZJREV1TWp0Y2JpQWdMUzFxY0MxMWFTMW1iMjUwTFhOcGVtVXdPaUJqWVd4aktIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdGMybDZaVEVwTDNaaGNpZ3RMV3B3TFhWcExXWnZiblF0YzJOaGJHVXRabUZqZEc5eUtTazdYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMXphWHBsTVRvZ01UTndlRHNnTHlvZ1FtRnpaU0JtYjI1MElITnBlbVVnS2k5Y2JpQWdMUzFxY0MxMWFTMW1iMjUwTFhOcGVtVXlPaUJqWVd4aktIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdGMybDZaVEVwS25aaGNpZ3RMV3B3TFhWcExXWnZiblF0YzJOaGJHVXRabUZqZEc5eUtTazdYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMXphWHBsTXpvZ1kyRnNZeWgyWVhJb0xTMXFjQzExYVMxbWIyNTBMWE5wZW1VeUtTcDJZWElvTFMxcWNDMTFhUzFtYjI1MExYTmpZV3hsTFdaaFkzUnZjaWtwTzF4dVhHNGdJQzB0YW5BdFkyOWtaUzFtYjI1MExYTnBlbVU2SURFemNIZzdYRzRnSUMwdGFuQXRZMjlrWlMxc2FXNWxMV2hsYVdkb2REb2dNUzR6TURjN1hHNGdJQzB0YW5BdFkyOWtaUzF3WVdSa2FXNW5PaUExY0hnN1hHNGdJQzB0YW5BdFkyOWtaUzFtYjI1MExXWmhiV2xzZVRvZ2JXOXViM053WVdObE8xeHVYRzVjYmlBZ0x5b2dUR0Y1YjNWMFhHNWNiaUFnVkdobElHWnZiR3h2ZDJsdVp5QmhjbVVnZEdobElHMWhhVzRnYkdGNWIzVjBJR052Ykc5eWN5QjFjMlVnYVc0Z1NuVndlWFJsY2t4aFlpNGdTVzRnWVNCc2FXZG9kRnh1SUNCMGFHVnRaU0IwYUdWelpTQjNiM1ZzWkNCbmJ5Qm1jbTl0SUd4cFoyaDBJSFJ2SUdSaGNtc3VYRzRnSUNvdlhHNWNiaUFnTFMxcWNDMXNZWGx2ZFhRdFkyOXNiM0l3T2lCM2FHbDBaVHRjYmlBZ0xTMXFjQzFzWVhsdmRYUXRZMjlzYjNJeE9pQjNhR2wwWlR0Y2JpQWdMUzFxY0Mxc1lYbHZkWFF0WTI5c2IzSXlPaUIyWVhJb0xTMXRaQzFuY21WNUxUSXdNQ2s3WEc0Z0lDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU16b2dkbUZ5S0MwdGJXUXRaM0psZVMwME1EQXBPMXh1WEc0Z0lDOHFJRUp5WVc1a0wyRmpZMlZ1ZENBcUwxeHVYRzRnSUMwdGFuQXRZbkpoYm1RdFkyOXNiM0l3T2lCMllYSW9MUzF0WkMxaWJIVmxMVGN3TUNrN1hHNGdJQzB0YW5BdFluSmhibVF0WTI5c2IzSXhPaUIyWVhJb0xTMXRaQzFpYkhWbExUVXdNQ2s3WEc0Z0lDMHRhbkF0WW5KaGJtUXRZMjlzYjNJeU9pQjJZWElvTFMxdFpDMWliSFZsTFRNd01DazdYRzRnSUMwdGFuQXRZbkpoYm1RdFkyOXNiM0l6T2lCMllYSW9MUzF0WkMxaWJIVmxMVEV3TUNrN1hHNWNiaUFnTFMxcWNDMWhZMk5sYm5RdFkyOXNiM0l3T2lCMllYSW9MUzF0WkMxbmNtVmxiaTAzTURBcE8xeHVJQ0F0TFdwd0xXRmpZMlZ1ZEMxamIyeHZjakU2SUhaaGNpZ3RMVzFrTFdkeVpXVnVMVFV3TUNrN1hHNGdJQzB0YW5BdFlXTmpaVzUwTFdOdmJHOXlNam9nZG1GeUtDMHRiV1F0WjNKbFpXNHRNekF3S1R0Y2JpQWdMUzFxY0MxaFkyTmxiblF0WTI5c2IzSXpPaUIyWVhJb0xTMXRaQzFuY21WbGJpMHhNREFwTzF4dVhHNGdJQzhxSUZOMFlYUmxJR052Ykc5eWN5QW9kMkZ5Yml3Z1pYSnliM0lzSUhOMVkyTmxjM01zSUdsdVptOHBJQ292WEc1Y2JpQWdMUzFxY0MxM1lYSnVMV052Ykc5eU1Eb2dkbUZ5S0MwdGJXUXRiM0poYm1kbExUY3dNQ2s3WEc0Z0lDMHRhbkF0ZDJGeWJpMWpiMnh2Y2pFNklIWmhjaWd0TFcxa0xXOXlZVzVuWlMwMU1EQXBPMXh1SUNBdExXcHdMWGRoY200dFkyOXNiM0l5T2lCMllYSW9MUzF0WkMxdmNtRnVaMlV0TXpBd0tUdGNiaUFnTFMxcWNDMTNZWEp1TFdOdmJHOXlNem9nZG1GeUtDMHRiV1F0YjNKaGJtZGxMVEV3TUNrN1hHNWNiaUFnTFMxcWNDMWxjbkp2Y2kxamIyeHZjakE2SUhaaGNpZ3RMVzFrTFhKbFpDMDNNREFwTzF4dUlDQXRMV3B3TFdWeWNtOXlMV052Ykc5eU1Ub2dkbUZ5S0MwdGJXUXRjbVZrTFRVd01DazdYRzRnSUMwdGFuQXRaWEp5YjNJdFkyOXNiM0l5T2lCMllYSW9MUzF0WkMxeVpXUXRNekF3S1R0Y2JpQWdMUzFxY0MxbGNuSnZjaTFqYjJ4dmNqTTZJSFpoY2lndExXMWtMWEpsWkMweE1EQXBPMXh1WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqQTZJSFpoY2lndExXMWtMV2R5WldWdUxUY3dNQ2s3WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqRTZJSFpoY2lndExXMWtMV2R5WldWdUxUVXdNQ2s3WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqSTZJSFpoY2lndExXMWtMV2R5WldWdUxUTXdNQ2s3WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqTTZJSFpoY2lndExXMWtMV2R5WldWdUxURXdNQ2s3WEc1Y2JpQWdMUzFxY0MxcGJtWnZMV052Ykc5eU1Eb2dkbUZ5S0MwdGJXUXRZM2xoYmkwM01EQXBPMXh1SUNBdExXcHdMV2x1Wm04dFkyOXNiM0l4T2lCMllYSW9MUzF0WkMxamVXRnVMVFV3TUNrN1hHNGdJQzB0YW5BdGFXNW1ieTFqYjJ4dmNqSTZJSFpoY2lndExXMWtMV041WVc0dE16QXdLVHRjYmlBZ0xTMXFjQzFwYm1adkxXTnZiRzl5TXpvZ2RtRnlLQzB0YldRdFkzbGhiaTB4TURBcE8xeHVYRzRnSUM4cUlFTmxiR3dnYzNCbFkybG1hV01nYzNSNWJHVnpJQ292WEc1Y2JpQWdMUzFxY0MxalpXeHNMWEJoWkdScGJtYzZJRFZ3ZUR0Y2JpQWdMUzFxY0MxalpXeHNMV1ZrYVhSdmNpMWlZV05yWjNKdmRXNWtPaUFqWmpkbU4yWTNPMXh1SUNBdExXcHdMV05sYkd3dFpXUnBkRzl5TFdKdmNtUmxjaTFqYjJ4dmNqb2dJMk5tWTJaalpqdGNiaUFnTFMxcWNDMWpaV3hzTFdWa2FYUnZjaTFpWVdOclozSnZkVzVrTFdWa2FYUTZJSFpoY2lndExXcHdMWFZwTFd4aGVXOTFkQzFqYjJ4dmNqRXBPMXh1SUNBdExXcHdMV05sYkd3dFpXUnBkRzl5TFdKdmNtUmxjaTFqYjJ4dmNpMWxaR2wwT2lCMllYSW9MUzFxY0MxaWNtRnVaQzFqYjJ4dmNqRXBPMXh1SUNBdExXcHdMV05sYkd3dGNISnZiWEIwTFhkcFpIUm9PaUF4TURCd2VEdGNiaUFnTFMxcWNDMWpaV3hzTFhCeWIyMXdkQzFtYjI1MExXWmhiV2xzZVRvZ0oxSnZZbTkwYnlCTmIyNXZKeXdnYlc5dWIzTndZV05sTzF4dUlDQXRMV3B3TFdObGJHd3RjSEp2YlhCMExXeGxkSFJsY2kxemNHRmphVzVuT2lBd2NIZzdYRzRnSUMwdGFuQXRZMlZzYkMxd2NtOXRjSFF0YjNCaFkybDBlVG9nTVM0d08xeHVJQ0F0TFdwd0xXTmxiR3d0Y0hKdmJYQjBMVzl3WVdOcGRIa3RibTkwTFdGamRHbDJaVG9nTUM0ME8xeHVJQ0F0TFdwd0xXTmxiR3d0Y0hKdmJYQjBMV1p2Ym5RdFkyOXNiM0l0Ym05MExXRmpkR2wyWlRvZ2RtRnlLQzB0YldRdFozSmxlUzAzTURBcE8xeHVJQ0F2S2lCQklHTjFjM1J2YlNCaWJHVnVaQ0J2WmlCTlJDQm5jbVY1SUdGdVpDQmliSFZsSURZd01GeHVJQ0FnS2lCVFpXVWdhSFIwY0hNNkx5OXRaWGxsY25kbFlpNWpiMjB2WlhKcFl5OTBiMjlzY3k5amIyeHZjaTFpYkdWdVpDOGpOVFEyUlRkQk9qRkZPRGhGTlRvMU9taGxlQ0FxTDF4dUlDQXRMV3B3TFdObGJHd3RhVzV3Y205dGNIUXRabTl1ZEMxamIyeHZjam9nSXpNd04wWkRNVHRjYmlBZ0x5b2dRU0JqZFhOMGIyMGdZbXhsYm1RZ2IyWWdUVVFnWjNKbGVTQmhibVFnYjNKaGJtZGxJRFl3TUZ4dUlDQWdLaUJvZEhSd2N6b3ZMMjFsZVdWeWQyVmlMbU52YlM5bGNtbGpMM1J2YjJ4ekwyTnZiRzl5TFdKc1pXNWtMeU0xTkRaRk4wRTZSalExTVRGRk9qVTZhR1Y0SUNvdlhHNGdJQzB0YW5BdFkyVnNiQzF2ZFhSd2NtOXRjSFF0Wm05dWRDMWpiMnh2Y2pvZ0kwSkdOVUl6UkR0Y2JseHVJQ0F2S2lCT2IzUmxZbTl2YXlCemNHVmphV1pwWXlCemRIbHNaWE1nS2k5Y2JseHVJQ0F0TFdwd0xXNXZkR1ZpYjI5ckxYQmhaR1JwYm1jNklERXdjSGc3WEc0Z0lDMHRhbkF0Ym05MFpXSnZiMnN0YzJOeWIyeHNMWEJoWkdScGJtYzZJREV3TUhCNE8xeHVYRzRnSUM4cUlFTnZibk52YkdVZ2MzQmxZMmxtYVdNZ2MzUjViR1Z6SUNvdlhHNWNiaUFnTFMxcWNDMWpiMjV6YjJ4bExXSmhZMnRuY205MWJtUTZJSFpoY2lndExXMWtMV2R5WlhrdE1UQXdLVHRjYmx4dUlDQXZLaUJVYjI5c1ltRnlJSE53WldOcFptbGpJSE4wZVd4bGN5QXFMMXh1WEc0Z0lDMHRhbkF0ZEc5dmJHSmhjaTFpYjNKa1pYSXRZMjlzYjNJNklIWmhjaWd0TFcxa0xXZHlaWGt0TkRBd0tUdGNiaUFnTFMxcWNDMTBiMjlzWW1GeUxXMXBZM0p2TFdobGFXZG9kRG9nT0hCNE8xeHVJQ0F0TFdwd0xYUnZiMnhpWVhJdFltRmphMmR5YjNWdVpEb2dkbUZ5S0MwdGFuQXRiR0Y1YjNWMExXTnZiRzl5TUNrN1hHNGdJQzB0YW5BdGRHOXZiR0poY2kxaWIzZ3RjMmhoWkc5M09pQXdjSGdnTUhCNElESndlQ0F3Y0hnZ2NtZGlZU2d3TERBc01Dd3dMakkwS1R0Y2JpQWdMUzFxY0MxMGIyOXNZbUZ5TFdobFlXUmxjaTF0WVhKbmFXNDZJRFJ3ZUNBMGNIZ2dNSEI0SURSd2VEdGNiaUFnTFMxcWNDMTBiMjlzWW1GeUxXRmpkR2wyWlMxaVlXTnJaM0p2ZFc1a09pQjJZWElvTFMxdFpDMW5jbVY1TFRNd01DazdYRzU5WEc0aUxDSXZLaXBjYmlBcUlGUm9aU0J0WVhSbGNtbGhiQ0JrWlhOcFoyNGdZMjlzYjNKeklHRnlaU0JoWkdGd2RHVmtJR1p5YjIwZ1oyOXZaMnhsTFcxaGRHVnlhV0ZzTFdOdmJHOXlJSFl4TGpJdU5seHVJQ29nYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDJSaGJteGxkbUZ1TDJkdmIyZHNaUzF0WVhSbGNtbGhiQzFqYjJ4dmNseHVJQ29nYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDJSaGJteGxkbUZ1TDJkdmIyZHNaUzF0WVhSbGNtbGhiQzFqYjJ4dmNpOWliRzlpTDJZMk4yTmhOV1kwTURJNFlqSm1NV0l6TkRnMk1tWTJOR0l3WTJFMk56TXlNMlk1TVdJd09EZ3ZaR2x6ZEM5d1lXeGxkSFJsTG5aaGNpNWpjM05jYmlBcVhHNGdLaUJVYUdVZ2JHbGpaVzV6WlNCbWIzSWdkR2hsSUcxaGRHVnlhV0ZzSUdSbGMybG5iaUJqYjJ4dmNpQkRVMU1nZG1GeWFXRmliR1Z6SUdseklHRnpJR1p2Ykd4dmQzTWdLSE5sWlZ4dUlDb2dhSFIwY0hNNkx5OW5hWFJvZFdJdVkyOXRMMlJoYm14bGRtRnVMMmR2YjJkc1pTMXRZWFJsY21saGJDMWpiMnh2Y2k5aWJHOWlMMlkyTjJOaE5XWTBNREk0WWpKbU1XSXpORGcyTW1ZMk5HSXdZMkUyTnpNeU0yWTVNV0l3T0RndlRFbERSVTVUUlNsY2JpQXFYRzRnS2lCVWFHVWdUVWxVSUV4cFkyVnVjMlVnS0UxSlZDbGNiaUFxWEc0Z0tpQkRiM0I1Y21sbmFIUWdLR01wSURJd01UUWdSR0Z1SUV4bElGWmhibHh1SUNwY2JpQXFJRkJsY20xcGMzTnBiMjRnYVhNZ2FHVnlaV0o1SUdkeVlXNTBaV1FzSUdaeVpXVWdiMllnWTJoaGNtZGxMQ0IwYnlCaGJua2djR1Z5YzI5dUlHOWlkR0ZwYm1sdVp5QmhJR052Y0hsY2JpQXFJRzltSUhSb2FYTWdjMjltZEhkaGNtVWdZVzVrSUdGemMyOWphV0YwWldRZ1pHOWpkVzFsYm5SaGRHbHZiaUJtYVd4bGN5QW9kR2hsSUZ3aVUyOW1kSGRoY21WY0lpa3NJSFJ2SUdSbFlXeGNiaUFxSUdsdUlIUm9aU0JUYjJaMGQyRnlaU0IzYVhSb2IzVjBJSEpsYzNSeWFXTjBhVzl1TENCcGJtTnNkV1JwYm1jZ2QybDBhRzkxZENCc2FXMXBkR0YwYVc5dUlIUm9aU0J5YVdkb2RITmNiaUFxSUhSdklIVnpaU3dnWTI5d2VTd2diVzlrYVdaNUxDQnRaWEpuWlN3Z2NIVmliR2x6YUN3Z1pHbHpkSEpwWW5WMFpTd2djM1ZpYkdsalpXNXpaU3dnWVc1a0wyOXlJSE5sYkd4Y2JpQXFJR052Y0dsbGN5QnZaaUIwYUdVZ1UyOW1kSGRoY21Vc0lHRnVaQ0IwYnlCd1pYSnRhWFFnY0dWeWMyOXVjeUIwYnlCM2FHOXRJSFJvWlNCVGIyWjBkMkZ5WlNCcGMxeHVJQ29nWm5WeWJtbHphR1ZrSUhSdklHUnZJSE52TENCemRXSnFaV04wSUhSdklIUm9aU0JtYjJ4c2IzZHBibWNnWTI5dVpHbDBhVzl1Y3pwY2JpQXFYRzRnS2lCVWFHVWdZV0p2ZG1VZ1kyOXdlWEpwWjJoMElHNXZkR2xqWlNCaGJtUWdkR2hwY3lCd1pYSnRhWE56YVc5dUlHNXZkR2xqWlNCemFHRnNiQ0JpWlNCcGJtTnNkV1JsWkNCcGJseHVJQ29nWVd4c0lHTnZjR2xsY3lCdmNpQnpkV0p6ZEdGdWRHbGhiQ0J3YjNKMGFXOXVjeUJ2WmlCMGFHVWdVMjltZEhkaGNtVXVYRzRnS2x4dUlDb2dWRWhGSUZOUFJsUlhRVkpGSUVsVElGQlNUMVpKUkVWRUlGd2lRVk1nU1ZOY0lpd2dWMGxVU0U5VlZDQlhRVkpTUVU1VVdTQlBSaUJCVGxrZ1MwbE9SQ3dnUlZoUVVrVlRVeUJQVWx4dUlDb2dTVTFRVEVsRlJDd2dTVTVEVEZWRVNVNUhJRUpWVkNCT1QxUWdURWxOU1ZSRlJDQlVUeUJVU0VVZ1YwRlNVa0ZPVkVsRlV5QlBSaUJOUlZKRFNFRk9WRUZDU1V4SlZGa3NYRzRnS2lCR1NWUk9SVk5USUVaUFVpQkJJRkJCVWxSSlExVk1RVklnVUZWU1VFOVRSU0JCVGtRZ1RrOU9TVTVHVWtsT1IwVk5SVTVVTGlCSlRpQk9UeUJGVmtWT1ZDQlRTRUZNVENCVVNFVmNiaUFxSUVGVlZFaFBVbE1nVDFJZ1EwOVFXVkpKUjBoVUlFaFBURVJGVWxNZ1FrVWdURWxCUWt4RklFWlBVaUJCVGxrZ1EweEJTVTBzSUVSQlRVRkhSVk1nVDFJZ1QxUklSVkpjYmlBcUlFeEpRVUpKVEVsVVdTd2dWMGhGVkVoRlVpQkpUaUJCVGlCQlExUkpUMDRnVDBZZ1EwOU9WRkpCUTFRc0lGUlBVbFFnVDFJZ1QxUklSVkpYU1ZORkxDQkJVa2xUU1U1SElFWlNUMDBzWEc0Z0tpQlBWVlFnVDBZZ1QxSWdTVTRnUTA5T1RrVkRWRWxQVGlCWFNWUklJRlJJUlNCVFQwWlVWMEZTUlNCUFVpQlVTRVVnVlZORklFOVNJRTlVU0VWU0lFUkZRVXhKVGtkVElFbE9JRlJJUlZ4dUlDb2dVMDlHVkZkQlVrVXVYRzRnS2k5Y2JqcHliMjkwSUh0Y2JpQWdMUzF0WkMxeVpXUXROVEE2SUNOR1JrVkNSVVU3WEc0Z0lDMHRiV1F0Y21Wa0xURXdNRG9nSTBaR1EwUkVNanRjYmlBZ0xTMXRaQzF5WldRdE1qQXdPaUFqUlVZNVFUbEJPMXh1SUNBdExXMWtMWEpsWkMwek1EQTZJQ05GTlRjek56TTdYRzRnSUMwdGJXUXRjbVZrTFRRd01Eb2dJMFZHTlRNMU1EdGNiaUFnTFMxdFpDMXlaV1F0TlRBd09pQWpSalEwTXpNMk8xeHVJQ0F0TFcxa0xYSmxaQzAyTURBNklDTkZOVE01TXpVN1hHNGdJQzB0YldRdGNtVmtMVGN3TURvZ0kwUXpNa1l5Ump0Y2JpQWdMUzF0WkMxeVpXUXRPREF3T2lBalF6WXlPREk0TzF4dUlDQXRMVzFrTFhKbFpDMDVNREE2SUNOQ056RkRNVU03WEc0Z0lDMHRiV1F0Y21Wa0xVRXhNREE2SUNOR1JqaEJPREE3WEc0Z0lDMHRiV1F0Y21Wa0xVRXlNREE2SUNOR1JqVXlOVEk3WEc0Z0lDMHRiV1F0Y21Wa0xVRTBNREE2SUNOR1JqRTNORFE3WEc0Z0lDMHRiV1F0Y21Wa0xVRTNNREE2SUNORU5UQXdNREE3WEc1Y2JpQWdMUzF0WkMxd2FXNXJMVFV3T2lBalJrTkZORVZETzF4dUlDQXRMVzFrTFhCcGJtc3RNVEF3T2lBalJqaENRa1F3TzF4dUlDQXRMVzFrTFhCcGJtc3RNakF3T2lBalJqUTRSa0l4TzF4dUlDQXRMVzFrTFhCcGJtc3RNekF3T2lBalJqQTJNamt5TzF4dUlDQXRMVzFrTFhCcGJtc3ROREF3T2lBalJVTTBNRGRCTzF4dUlDQXRMVzFrTFhCcGJtc3ROVEF3T2lBalJUa3hSVFl6TzF4dUlDQXRMVzFrTFhCcGJtc3ROakF3T2lBalJEZ3hRall3TzF4dUlDQXRMVzFrTFhCcGJtc3ROekF3T2lBalF6SXhPRFZDTzF4dUlDQXRMVzFrTFhCcGJtc3RPREF3T2lBalFVUXhORFUzTzF4dUlDQXRMVzFrTFhCcGJtc3RPVEF3T2lBak9EZ3dSVFJHTzF4dUlDQXRMVzFrTFhCcGJtc3RRVEV3TURvZ0kwWkdPREJCUWp0Y2JpQWdMUzF0WkMxd2FXNXJMVUV5TURBNklDTkdSalF3T0RFN1hHNGdJQzB0YldRdGNHbHVheTFCTkRBd09pQWpSalV3TURVM08xeHVJQ0F0TFcxa0xYQnBibXN0UVRjd01Eb2dJME0xTVRFMk1qdGNibHh1SUNBdExXMWtMWEIxY25Cc1pTMDFNRG9nSTBZelJUVkdOVHRjYmlBZ0xTMXRaQzF3ZFhKd2JHVXRNVEF3T2lBalJURkNSVVUzTzF4dUlDQXRMVzFrTFhCMWNuQnNaUzB5TURBNklDTkRSVGt6UkRnN1hHNGdJQzB0YldRdGNIVnljR3hsTFRNd01Eb2dJMEpCTmpoRE9EdGNiaUFnTFMxdFpDMXdkWEp3YkdVdE5EQXdPaUFqUVVJME4wSkRPMXh1SUNBdExXMWtMWEIxY25Cc1pTMDFNREE2SUNNNVF6STNRakE3WEc0Z0lDMHRiV1F0Y0hWeWNHeGxMVFl3TURvZ0l6aEZNalJCUVR0Y2JpQWdMUzF0WkMxd2RYSndiR1V0TnpBd09pQWpOMEl4UmtFeU8xeHVJQ0F0TFcxa0xYQjFjbkJzWlMwNE1EQTZJQ00yUVRGQ09VRTdYRzRnSUMwdGJXUXRjSFZ5Y0d4bExUa3dNRG9nSXpSQk1UUTRRenRjYmlBZ0xTMXRaQzF3ZFhKd2JHVXRRVEV3TURvZ0kwVkJPREJHUXp0Y2JpQWdMUzF0WkMxd2RYSndiR1V0UVRJd01Eb2dJMFV3TkRCR1FqdGNiaUFnTFMxdFpDMXdkWEp3YkdVdFFUUXdNRG9nSTBRMU1EQkdPVHRjYmlBZ0xTMXRaQzF3ZFhKd2JHVXRRVGN3TURvZ0kwRkJNREJHUmp0Y2JseHVJQ0F0TFcxa0xXUmxaWEF0Y0hWeWNHeGxMVFV3T2lBalJVUkZOMFkyTzF4dUlDQXRMVzFrTFdSbFpYQXRjSFZ5Y0d4bExURXdNRG9nSTBReFF6UkZPVHRjYmlBZ0xTMXRaQzFrWldWd0xYQjFjbkJzWlMweU1EQTZJQ05DTXpsRVJFSTdYRzRnSUMwdGJXUXRaR1ZsY0Mxd2RYSndiR1V0TXpBd09pQWpPVFUzTlVORU8xeHVJQ0F0TFcxa0xXUmxaWEF0Y0hWeWNHeGxMVFF3TURvZ0l6ZEZOVGRETWp0Y2JpQWdMUzF0WkMxa1pXVndMWEIxY25Cc1pTMDFNREE2SUNNMk56TkJRamM3WEc0Z0lDMHRiV1F0WkdWbGNDMXdkWEp3YkdVdE5qQXdPaUFqTlVVek5VSXhPMXh1SUNBdExXMWtMV1JsWlhBdGNIVnljR3hsTFRjd01Eb2dJelV4TWtSQk9EdGNiaUFnTFMxdFpDMWtaV1Z3TFhCMWNuQnNaUzA0TURBNklDTTBOVEkzUVRBN1hHNGdJQzB0YldRdFpHVmxjQzF3ZFhKd2JHVXRPVEF3T2lBak16RXhRamt5TzF4dUlDQXRMVzFrTFdSbFpYQXRjSFZ5Y0d4bExVRXhNREE2SUNOQ016ZzRSa1k3WEc0Z0lDMHRiV1F0WkdWbGNDMXdkWEp3YkdVdFFUSXdNRG9nSXpkRE5FUkdSanRjYmlBZ0xTMXRaQzFrWldWd0xYQjFjbkJzWlMxQk5EQXdPaUFqTmpVeFJrWkdPMXh1SUNBdExXMWtMV1JsWlhBdGNIVnljR3hsTFVFM01EQTZJQ00yTWpBd1JVRTdYRzVjYmlBZ0xTMXRaQzFwYm1ScFoyOHROVEE2SUNORk9FVkJSalk3WEc0Z0lDMHRiV1F0YVc1a2FXZHZMVEV3TURvZ0kwTTFRMEZGT1R0Y2JpQWdMUzF0WkMxcGJtUnBaMjh0TWpBd09pQWpPVVpCT0VSQk8xeHVJQ0F0TFcxa0xXbHVaR2xuYnkwek1EQTZJQ00zT1RnMlEwSTdYRzRnSUMwdGJXUXRhVzVrYVdkdkxUUXdNRG9nSXpWRE5rSkRNRHRjYmlBZ0xTMXRaQzFwYm1ScFoyOHROVEF3T2lBak0wWTFNVUkxTzF4dUlDQXRMVzFrTFdsdVpHbG5ieTAyTURBNklDTXpPVFE1UVVJN1hHNGdJQzB0YldRdGFXNWthV2R2TFRjd01Eb2dJek13TTBZNVJqdGNiaUFnTFMxdFpDMXBibVJwWjI4dE9EQXdPaUFqTWpnek5Ua3pPMXh1SUNBdExXMWtMV2x1WkdsbmJ5MDVNREE2SUNNeFFUSXpOMFU3WEc0Z0lDMHRiV1F0YVc1a2FXZHZMVUV4TURBNklDTTRRemxGUmtZN1hHNGdJQzB0YldRdGFXNWthV2R2TFVFeU1EQTZJQ00xTXpaRVJrVTdYRzRnSUMwdGJXUXRhVzVrYVdkdkxVRTBNREE2SUNNelJEVkJSa1U3WEc0Z0lDMHRiV1F0YVc1a2FXZHZMVUUzTURBNklDTXpNRFJHUmtVN1hHNWNiaUFnTFMxdFpDMWliSFZsTFRVd09pQWpSVE5HTWtaRU8xeHVJQ0F0TFcxa0xXSnNkV1V0TVRBd09pQWpRa0pFUlVaQ08xeHVJQ0F0TFcxa0xXSnNkV1V0TWpBd09pQWpPVEJEUVVZNU8xeHVJQ0F0TFcxa0xXSnNkV1V0TXpBd09pQWpOalJDTlVZMk8xeHVJQ0F0TFcxa0xXSnNkV1V0TkRBd09pQWpOREpCTlVZMU8xeHVJQ0F0TFcxa0xXSnNkV1V0TlRBd09pQWpNakU1TmtZek8xeHVJQ0F0TFcxa0xXSnNkV1V0TmpBd09pQWpNVVU0T0VVMU8xeHVJQ0F0TFcxa0xXSnNkV1V0TnpBd09pQWpNVGszTmtReU8xeHVJQ0F0TFcxa0xXSnNkV1V0T0RBd09pQWpNVFUyTlVNd08xeHVJQ0F0TFcxa0xXSnNkV1V0T1RBd09pQWpNRVEwTjBFeE8xeHVJQ0F0TFcxa0xXSnNkV1V0UVRFd01Eb2dJemd5UWpGR1JqdGNiaUFnTFMxdFpDMWliSFZsTFVFeU1EQTZJQ00wTkRoQlJrWTdYRzRnSUMwdGJXUXRZbXgxWlMxQk5EQXdPaUFqTWprM09VWkdPMXh1SUNBdExXMWtMV0pzZFdVdFFUY3dNRG9nSXpJNU5qSkdSanRjYmx4dUlDQXRMVzFrTFd4cFoyaDBMV0pzZFdVdE5UQTZJQ05GTVVZMVJrVTdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzB4TURBNklDTkNNMFUxUmtNN1hHNGdJQzB0YldRdGJHbG5hSFF0WW14MVpTMHlNREE2SUNNNE1VUTBSa0U3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMwek1EQTZJQ00wUmtNelJqYzdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzAwTURBNklDTXlPVUkyUmpZN1hHNGdJQzB0YldRdGJHbG5hSFF0WW14MVpTMDFNREE2SUNNd00wRTVSalE3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMwMk1EQTZJQ013TXpsQ1JUVTdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzAzTURBNklDTXdNamc0UkRFN1hHNGdJQzB0YldRdGJHbG5hSFF0WW14MVpTMDRNREE2SUNNd01qYzNRa1E3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMwNU1EQTZJQ013TVRVM09VSTdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzFCTVRBd09pQWpPREJFT0VaR08xeHVJQ0F0TFcxa0xXeHBaMmgwTFdKc2RXVXRRVEl3TURvZ0l6UXdRelJHUmp0Y2JpQWdMUzF0WkMxc2FXZG9kQzFpYkhWbExVRTBNREE2SUNNd01FSXdSa1k3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMxQk56QXdPaUFqTURBNU1VVkJPMXh1WEc0Z0lDMHRiV1F0WTNsaGJpMDFNRG9nSTBVd1JqZEdRVHRjYmlBZ0xTMXRaQzFqZVdGdUxURXdNRG9nSTBJeVJVSkdNanRjYmlBZ0xTMXRaQzFqZVdGdUxUSXdNRG9nSXpnd1JFVkZRVHRjYmlBZ0xTMXRaQzFqZVdGdUxUTXdNRG9nSXpSRVJEQkZNVHRjYmlBZ0xTMXRaQzFqZVdGdUxUUXdNRG9nSXpJMlF6WkVRVHRjYmlBZ0xTMXRaQzFqZVdGdUxUVXdNRG9nSXpBd1FrTkVORHRjYmlBZ0xTMXRaQzFqZVdGdUxUWXdNRG9nSXpBd1FVTkRNVHRjYmlBZ0xTMXRaQzFqZVdGdUxUY3dNRG9nSXpBd09UZEJOenRjYmlBZ0xTMXRaQzFqZVdGdUxUZ3dNRG9nSXpBd09ETTRSanRjYmlBZ0xTMXRaQzFqZVdGdUxUa3dNRG9nSXpBd05qQTJORHRjYmlBZ0xTMXRaQzFqZVdGdUxVRXhNREE2SUNNNE5FWkdSa1k3WEc0Z0lDMHRiV1F0WTNsaGJpMUJNakF3T2lBak1UaEdSa1pHTzF4dUlDQXRMVzFrTFdONVlXNHRRVFF3TURvZ0l6QXdSVFZHUmp0Y2JpQWdMUzF0WkMxamVXRnVMVUUzTURBNklDTXdNRUk0UkRRN1hHNWNiaUFnTFMxdFpDMTBaV0ZzTFRVd09pQWpSVEJHTWtZeE8xeHVJQ0F0TFcxa0xYUmxZV3d0TVRBd09pQWpRakpFUmtSQ08xeHVJQ0F0TFcxa0xYUmxZV3d0TWpBd09pQWpPREJEUWtNME8xeHVJQ0F0TFcxa0xYUmxZV3d0TXpBd09pQWpORVJDTmtGRE8xeHVJQ0F0TFcxa0xYUmxZV3d0TkRBd09pQWpNalpCTmpsQk8xeHVJQ0F0TFcxa0xYUmxZV3d0TlRBd09pQWpNREE1TmpnNE8xeHVJQ0F0TFcxa0xYUmxZV3d0TmpBd09pQWpNREE0T1RkQ08xeHVJQ0F0TFcxa0xYUmxZV3d0TnpBd09pQWpNREEzT1RaQ08xeHVJQ0F0TFcxa0xYUmxZV3d0T0RBd09pQWpNREEyT1RWRE8xeHVJQ0F0TFcxa0xYUmxZV3d0T1RBd09pQWpNREEwUkRRd08xeHVJQ0F0TFcxa0xYUmxZV3d0UVRFd01Eb2dJMEUzUmtaRlFqdGNiaUFnTFMxdFpDMTBaV0ZzTFVFeU1EQTZJQ00yTkVaR1JFRTdYRzRnSUMwdGJXUXRkR1ZoYkMxQk5EQXdPaUFqTVVSRk9VSTJPMXh1SUNBdExXMWtMWFJsWVd3dFFUY3dNRG9nSXpBd1FrWkJOVHRjYmx4dUlDQXRMVzFrTFdkeVpXVnVMVFV3T2lBalJUaEdOVVU1TzF4dUlDQXRMVzFrTFdkeVpXVnVMVEV3TURvZ0kwTTRSVFpET1R0Y2JpQWdMUzF0WkMxbmNtVmxiaTB5TURBNklDTkJOVVEyUVRjN1hHNGdJQzB0YldRdFozSmxaVzR0TXpBd09pQWpPREZETnpnME8xeHVJQ0F0TFcxa0xXZHlaV1Z1TFRRd01Eb2dJelkyUWtJMlFUdGNiaUFnTFMxdFpDMW5jbVZsYmkwMU1EQTZJQ00wUTBGR05UQTdYRzRnSUMwdGJXUXRaM0psWlc0dE5qQXdPaUFqTkROQk1EUTNPMXh1SUNBdExXMWtMV2R5WldWdUxUY3dNRG9nSXpNNE9FVXpRenRjYmlBZ0xTMXRaQzFuY21WbGJpMDRNREE2SUNNeVJUZEVNekk3WEc0Z0lDMHRiV1F0WjNKbFpXNHRPVEF3T2lBak1VSTFSVEl3TzF4dUlDQXRMVzFrTFdkeVpXVnVMVUV4TURBNklDTkNPVVkyUTBFN1hHNGdJQzB0YldRdFozSmxaVzR0UVRJd01Eb2dJelk1UmpCQlJUdGNiaUFnTFMxdFpDMW5jbVZsYmkxQk5EQXdPaUFqTURCRk5qYzJPMXh1SUNBdExXMWtMV2R5WldWdUxVRTNNREE2SUNNd01FTTROVE03WEc1Y2JpQWdMUzF0WkMxc2FXZG9kQzFuY21WbGJpMDFNRG9nSTBZeFJqaEZPVHRjYmlBZ0xTMXRaQzFzYVdkb2RDMW5jbVZsYmkweE1EQTZJQ05FUTBWRVF6ZzdYRzRnSUMwdGJXUXRiR2xuYUhRdFozSmxaVzR0TWpBd09pQWpRelZGTVVFMU8xeHVJQ0F0TFcxa0xXeHBaMmgwTFdkeVpXVnVMVE13TURvZ0kwRkZSRFU0TVR0Y2JpQWdMUzF0WkMxc2FXZG9kQzFuY21WbGJpMDBNREE2SUNNNVEwTkROalU3WEc0Z0lDMHRiV1F0YkdsbmFIUXRaM0psWlc0dE5UQXdPaUFqT0VKRE16UkJPMXh1SUNBdExXMWtMV3hwWjJoMExXZHlaV1Z1TFRZd01Eb2dJemREUWpNME1qdGNiaUFnTFMxdFpDMXNhV2RvZEMxbmNtVmxiaTAzTURBNklDTTJPRGxHTXpnN1hHNGdJQzB0YldRdGJHbG5hSFF0WjNKbFpXNHRPREF3T2lBak5UVTRRakpHTzF4dUlDQXRMVzFrTFd4cFoyaDBMV2R5WldWdUxUa3dNRG9nSXpNek5qa3hSVHRjYmlBZ0xTMXRaQzFzYVdkb2RDMW5jbVZsYmkxQk1UQXdPaUFqUTBOR1Jqa3dPMXh1SUNBdExXMWtMV3hwWjJoMExXZHlaV1Z1TFVFeU1EQTZJQ05DTWtaR05UazdYRzRnSUMwdGJXUXRiR2xuYUhRdFozSmxaVzR0UVRRd01Eb2dJemMyUmtZd016dGNiaUFnTFMxdFpDMXNhV2RvZEMxbmNtVmxiaTFCTnpBd09pQWpOalJFUkRFM08xeHVYRzRnSUMwdGJXUXRiR2x0WlMwMU1Eb2dJMFk1UmtKRk56dGNiaUFnTFMxdFpDMXNhVzFsTFRFd01Eb2dJMFl3UmpSRE16dGNiaUFnTFMxdFpDMXNhVzFsTFRJd01Eb2dJMFUyUlVVNVF6dGNiaUFnTFMxdFpDMXNhVzFsTFRNd01Eb2dJMFJEUlRjM05UdGNiaUFnTFMxdFpDMXNhVzFsTFRRd01Eb2dJMFEwUlRFMU56dGNiaUFnTFMxdFpDMXNhVzFsTFRVd01Eb2dJME5FUkVNek9UdGNiaUFnTFMxdFpDMXNhVzFsTFRZd01Eb2dJME13UTBFek16dGNiaUFnTFMxdFpDMXNhVzFsTFRjd01Eb2dJMEZHUWpReVFqdGNiaUFnTFMxdFpDMXNhVzFsTFRnd01Eb2dJemxGT1VReU5EdGNiaUFnTFMxdFpDMXNhVzFsTFRrd01Eb2dJemd5TnpjeE56dGNiaUFnTFMxdFpDMXNhVzFsTFVFeE1EQTZJQ05HTkVaR09ERTdYRzRnSUMwdGJXUXRiR2x0WlMxQk1qQXdPaUFqUlVWR1JqUXhPMXh1SUNBdExXMWtMV3hwYldVdFFUUXdNRG9nSTBNMlJrWXdNRHRjYmlBZ0xTMXRaQzFzYVcxbExVRTNNREE2SUNOQlJVVkJNREE3WEc1Y2JpQWdMUzF0WkMxNVpXeHNiM2N0TlRBNklDTkdSa1pFUlRjN1hHNGdJQzB0YldRdGVXVnNiRzkzTFRFd01Eb2dJMFpHUmpsRE5EdGNiaUFnTFMxdFpDMTVaV3hzYjNjdE1qQXdPaUFqUmtaR05UbEVPMXh1SUNBdExXMWtMWGxsYkd4dmR5MHpNREE2SUNOR1JrWXhOelk3WEc0Z0lDMHRiV1F0ZVdWc2JHOTNMVFF3TURvZ0kwWkdSVVUxT0R0Y2JpQWdMUzF0WkMxNVpXeHNiM2N0TlRBd09pQWpSa1pGUWpOQ08xeHVJQ0F0TFcxa0xYbGxiR3h2ZHkwMk1EQTZJQ05HUkVRNE16VTdYRzRnSUMwdGJXUXRlV1ZzYkc5M0xUY3dNRG9nSTBaQ1F6QXlSRHRjYmlBZ0xTMXRaQzE1Wld4c2IzY3RPREF3T2lBalJqbEJPREkxTzF4dUlDQXRMVzFrTFhsbGJHeHZkeTA1TURBNklDTkdOVGRHTVRjN1hHNGdJQzB0YldRdGVXVnNiRzkzTFVFeE1EQTZJQ05HUmtaR09FUTdYRzRnSUMwdGJXUXRlV1ZzYkc5M0xVRXlNREE2SUNOR1JrWkdNREE3WEc0Z0lDMHRiV1F0ZVdWc2JHOTNMVUUwTURBNklDTkdSa1ZCTURBN1hHNGdJQzB0YldRdGVXVnNiRzkzTFVFM01EQTZJQ05HUmtRMk1EQTdYRzVjYmlBZ0xTMXRaQzFoYldKbGNpMDFNRG9nSTBaR1JqaEZNVHRjYmlBZ0xTMXRaQzFoYldKbGNpMHhNREE2SUNOR1JrVkRRak03WEc0Z0lDMHRiV1F0WVcxaVpYSXRNakF3T2lBalJrWkZNRGd5TzF4dUlDQXRMVzFrTFdGdFltVnlMVE13TURvZ0kwWkdSRFUwUmp0Y2JpQWdMUzF0WkMxaGJXSmxjaTAwTURBNklDTkdSa05CTWpnN1hHNGdJQzB0YldRdFlXMWlaWEl0TlRBd09pQWpSa1pETVRBM08xeHVJQ0F0TFcxa0xXRnRZbVZ5TFRZd01Eb2dJMFpHUWpNd01EdGNiaUFnTFMxdFpDMWhiV0psY2kwM01EQTZJQ05HUmtFd01EQTdYRzRnSUMwdGJXUXRZVzFpWlhJdE9EQXdPaUFqUmtZNFJqQXdPMXh1SUNBdExXMWtMV0Z0WW1WeUxUa3dNRG9nSTBaR05rWXdNRHRjYmlBZ0xTMXRaQzFoYldKbGNpMUJNVEF3T2lBalJrWkZOVGRHTzF4dUlDQXRMVzFrTFdGdFltVnlMVUV5TURBNklDTkdSa1EzTkRBN1hHNGdJQzB0YldRdFlXMWlaWEl0UVRRd01Eb2dJMFpHUXpRd01EdGNiaUFnTFMxdFpDMWhiV0psY2kxQk56QXdPaUFqUmtaQlFqQXdPMXh1WEc0Z0lDMHRiV1F0YjNKaGJtZGxMVFV3T2lBalJrWkdNMFV3TzF4dUlDQXRMVzFrTFc5eVlXNW5aUzB4TURBNklDTkdSa1V3UWpJN1hHNGdJQzB0YldRdGIzSmhibWRsTFRJd01Eb2dJMFpHUTBNNE1EdGNiaUFnTFMxdFpDMXZjbUZ1WjJVdE16QXdPaUFqUmtaQ056UkVPMXh1SUNBdExXMWtMVzl5WVc1blpTMDBNREE2SUNOR1JrRTNNalk3WEc0Z0lDMHRiV1F0YjNKaGJtZGxMVFV3TURvZ0kwWkdPVGd3TUR0Y2JpQWdMUzF0WkMxdmNtRnVaMlV0TmpBd09pQWpSa0k0UXpBd08xeHVJQ0F0TFcxa0xXOXlZVzVuWlMwM01EQTZJQ05HTlRkRE1EQTdYRzRnSUMwdGJXUXRiM0poYm1kbExUZ3dNRG9nSTBWR05rTXdNRHRjYmlBZ0xTMXRaQzF2Y21GdVoyVXRPVEF3T2lBalJUWTFNVEF3TzF4dUlDQXRMVzFrTFc5eVlXNW5aUzFCTVRBd09pQWpSa1pFTVRnd08xeHVJQ0F0TFcxa0xXOXlZVzVuWlMxQk1qQXdPaUFqUmtaQlFqUXdPMXh1SUNBdExXMWtMVzl5WVc1blpTMUJOREF3T2lBalJrWTVNVEF3TzF4dUlDQXRMVzFrTFc5eVlXNW5aUzFCTnpBd09pQWpSa1kyUkRBd08xeHVYRzRnSUMwdGJXUXRaR1ZsY0MxdmNtRnVaMlV0TlRBNklDTkdRa1U1UlRjN1hHNGdJQzB0YldRdFpHVmxjQzF2Y21GdVoyVXRNVEF3T2lBalJrWkRRMEpETzF4dUlDQXRMVzFrTFdSbFpYQXRiM0poYm1kbExUSXdNRG9nSTBaR1FVSTVNVHRjYmlBZ0xTMXRaQzFrWldWd0xXOXlZVzVuWlMwek1EQTZJQ05HUmpoQk5qVTdYRzRnSUMwdGJXUXRaR1ZsY0MxdmNtRnVaMlV0TkRBd09pQWpSa1kzTURRek8xeHVJQ0F0TFcxa0xXUmxaWEF0YjNKaGJtZGxMVFV3TURvZ0kwWkdOVGN5TWp0Y2JpQWdMUzF0WkMxa1pXVndMVzl5WVc1blpTMDJNREE2SUNOR05EVXhNVVU3WEc0Z0lDMHRiV1F0WkdWbGNDMXZjbUZ1WjJVdE56QXdPaUFqUlRZMFFURTVPMXh1SUNBdExXMWtMV1JsWlhBdGIzSmhibWRsTFRnd01Eb2dJMFE0TkRNeE5UdGNiaUFnTFMxdFpDMWtaV1Z3TFc5eVlXNW5aUzA1TURBNklDTkNSak0yTUVNN1hHNGdJQzB0YldRdFpHVmxjQzF2Y21GdVoyVXRRVEV3TURvZ0kwWkdPVVU0TUR0Y2JpQWdMUzF0WkMxa1pXVndMVzl5WVc1blpTMUJNakF3T2lBalJrWTJSVFF3TzF4dUlDQXRMVzFrTFdSbFpYQXRiM0poYm1kbExVRTBNREE2SUNOR1JqTkVNREE3WEc0Z0lDMHRiV1F0WkdWbGNDMXZjbUZ1WjJVdFFUY3dNRG9nSTBSRU1rTXdNRHRjYmx4dUlDQXRMVzFrTFdKeWIzZHVMVFV3T2lBalJVWkZRa1U1TzF4dUlDQXRMVzFrTFdKeWIzZHVMVEV3TURvZ0kwUTNRME5ET0R0Y2JpQWdMUzF0WkMxaWNtOTNiaTB5TURBNklDTkNRMEZCUVRRN1hHNGdJQzB0YldRdFluSnZkMjR0TXpBd09pQWpRVEU0T0RkR08xeHVJQ0F0TFcxa0xXSnliM2R1TFRRd01Eb2dJemhFTmtVMk16dGNiaUFnTFMxdFpDMWljbTkzYmkwMU1EQTZJQ00zT1RVMU5EZzdYRzRnSUMwdGJXUXRZbkp2ZDI0dE5qQXdPaUFqTmtRMFF6UXhPMXh1SUNBdExXMWtMV0p5YjNkdUxUY3dNRG9nSXpWRU5EQXpOenRjYmlBZ0xTMXRaQzFpY205M2JpMDRNREE2SUNNMFJUTTBNa1U3WEc0Z0lDMHRiV1F0WW5KdmQyNHRPVEF3T2lBak0wVXlOekl6TzF4dVhHNGdJQzB0YldRdFozSmxlUzAxTURvZ0kwWkJSa0ZHUVR0Y2JpQWdMUzF0WkMxbmNtVjVMVEV3TURvZ0kwWTFSalZHTlR0Y2JpQWdMUzF0WkMxbmNtVjVMVEl3TURvZ0kwVkZSVVZGUlR0Y2JpQWdMUzF0WkMxbmNtVjVMVE13TURvZ0kwVXdSVEJGTUR0Y2JpQWdMUzF0WkMxbmNtVjVMVFF3TURvZ0kwSkVRa1JDUkR0Y2JpQWdMUzF0WkMxbmNtVjVMVFV3TURvZ0l6bEZPVVU1UlR0Y2JpQWdMUzF0WkMxbmNtVjVMVFl3TURvZ0l6YzFOelUzTlR0Y2JpQWdMUzF0WkMxbmNtVjVMVGN3TURvZ0l6WXhOakUyTVR0Y2JpQWdMUzF0WkMxbmNtVjVMVGd3TURvZ0l6UXlOREkwTWp0Y2JpQWdMUzF0WkMxbmNtVjVMVGt3TURvZ0l6SXhNakV5TVR0Y2JseHVJQ0F0TFcxa0xXSnNkV1V0WjNKbGVTMDFNRG9nSTBWRFJVWkdNVHRjYmlBZ0xTMXRaQzFpYkhWbExXZHlaWGt0TVRBd09pQWpRMFpFT0VSRE8xeHVJQ0F0TFcxa0xXSnNkV1V0WjNKbGVTMHlNREE2SUNOQ01FSkZRelU3WEc0Z0lDMHRiV1F0WW14MVpTMW5jbVY1TFRNd01Eb2dJemt3UVRSQlJUdGNiaUFnTFMxdFpDMWliSFZsTFdkeVpYa3ROREF3T2lBak56ZzVNRGxETzF4dUlDQXRMVzFrTFdKc2RXVXRaM0psZVMwMU1EQTZJQ00yTURkRU9FSTdYRzRnSUMwdGJXUXRZbXgxWlMxbmNtVjVMVFl3TURvZ0l6VTBOa1UzUVR0Y2JpQWdMUzF0WkMxaWJIVmxMV2R5WlhrdE56QXdPaUFqTkRVMVFUWTBPMXh1SUNBdExXMWtMV0pzZFdVdFozSmxlUzA0TURBNklDTXpOelEzTkVZN1hHNGdJQzB0YldRdFlteDFaUzFuY21WNUxUa3dNRG9nSXpJMk16SXpPRHRjYm4waUxDSXZLaUJEYjNCNWNtbG5hSFFnS0dNcElFcDFjSGwwWlhJZ1JHVjJaV3h2Y0cxbGJuUWdWR1ZoYlM1Y2JpQXFJRVJwYzNSeWFXSjFkR1ZrSUhWdVpHVnlJSFJvWlNCMFpYSnRjeUJ2WmlCMGFHVWdUVzlrYVdacFpXUWdRbE5FSUV4cFkyVnVjMlV1WEc0Z0tpOWNibHh1THlwY2JpQXFJRmRsSUdGemMzVnRaU0IwYUdGMElIUm9aU0JEVTFNZ2RtRnlhV0ZpYkdWeklHbHVYRzRnS2lCb2RIUndjem92TDJkcGRHaDFZaTVqYjIwdmFuVndlWFJsY214aFlpOXFkWEI1ZEdWeWJHRmlMMkpzYjJJdmJXRnpkR1Z5TDNOeVl5OWtaV1poZFd4MExYUm9aVzFsTDNaaGNtbGhZbXhsY3k1amMzTmNiaUFxSUdoaGRtVWdZbVZsYmlCa1pXWnBibVZrTGx4dUlDb3ZYRzVjYmtCcGJYQnZjblFnWENJdUwzQm9iM053YUc5eUxtTnpjMXdpTzF4dVhHNDZjbTl2ZENCN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxXTnZiRzl5T2lCMllYSW9MUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRiR0ZpWld3dFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WTI5c2IzSXBPMXh1SUNBZ0lDMHRhbkF0ZDJsa1oyVjBjeTF5WldGa2IzVjBMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXTnZiRzl5S1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdFptOXVkQzF6YVhwbE9pQjJZWElvTFMxcWNDMTFhUzFtYjI1MExYTnBlbVV4S1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGJXRnlaMmx1T2lBeWNIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRNklESTRjSGc3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFEb2dNekF3Y0hnN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxM2FXUjBhQzF6YUc5eWREb2dZMkZzWXloMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFDa2dMeUF5SUMwZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxdFlYSm5hVzRwS1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFhkcFpIUm9MWFJwYm5rNklHTmhiR01vZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdndGMyaHZjblFwSUM4Z01pQXRJSFpoY2lndExXcHdMWGRwWkdkbGRITXRiV0Z5WjJsdUtTazdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMXRZWEpuYVc0NklEUndlRHNnTHlvZ2JXRnlaMmx1SUdKbGRIZGxaVzRnYVc1c2FXNWxJR1ZzWlcxbGJuUnpJQ292WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFzWVdKbGJDMTNhV1IwYURvZ09EQndlRHRjYmlBZ0lDQXRMV3B3TFhkcFpHZGxkSE10WW05eVpHVnlMWGRwWkhSb09pQjJZWElvTFMxcWNDMWliM0prWlhJdGQybGtkR2dwTzF4dUlDQWdJQzB0YW5BdGQybGtaMlYwY3kxMlpYSjBhV05oYkMxb1pXbG5hSFE2SURJd01IQjRPMXh1SUNBZ0lDMHRhbkF0ZDJsa1oyVjBjeTFvYjNKcGVtOXVkR0ZzTFhSaFlpMW9aV2xuYUhRNklESTBjSGc3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdodmNtbDZiMjUwWVd3dGRHRmlMWGRwWkhSb09pQXhORFJ3ZUR0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGFHOXlhWHB2Ym5SaGJDMTBZV0l0ZEc5d0xXSnZjbVJsY2pvZ01uQjRPMXh1SUNBZ0lDMHRhbkF0ZDJsa1oyVjBjeTF3Y205bmNtVnpjeTEwYUdsamEyNWxjM002SURJd2NIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMV052Ym5SaGFXNWxjaTF3WVdSa2FXNW5PaUF4TlhCNE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxd1lXUmthVzVuT2lBMGNIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMWEpoWkdsdkxXbDBaVzB0YUdWcFoyaDBMV0ZrYW5WemRHMWxiblE2SURod2VEdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRjbUZrYVc4dGFYUmxiUzFvWldsbmFIUTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLU0F0SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Y21Ga2FXOHRhWFJsYlMxb1pXbG5hSFF0WVdScWRYTjBiV1Z1ZENrcE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56T2lBMGNIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWliM0prWlhJdGQybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WW05eVpHVnlMWGRwWkhSb0tUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXaGhibVJzWlMxemFYcGxPaUF4Tm5CNE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGFHRnVaR3hsTFdKdmNtUmxjaTFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRZbTl5WkdWeUxXTnZiRzl5TVNrN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxb1lXNWtiR1V0WW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1TazdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWhZM1JwZG1VdGFHRnVaR3hsTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzFpY21GdVpDMWpiMnh2Y2pFcE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXRaVzUxTFdsMFpXMHRhR1ZwWjJoME9pQXlOSEI0TzF4dUlDQWdJQzB0YW5BdGQybGtaMlYwY3kxa2NtOXdaRzkzYmkxaGNuSnZkem9nZFhKc0tGd2laR0YwWVRwcGJXRm5aUzl6ZG1jcmVHMXNPMkpoYzJVMk5DeFFSRGswWWxkM1oyUnRWbmxqTW14Mlltb3dhVTFUTkhkSmFVSnNZbTFPZGxwSGJIVmFlakJwWkZoU2JVeFVaMmxRZWpSTFVFTkZkRXhUUWtoYVZ6VnNZMjFHTUdJelNUWkpSVVpyWWpKS2JFbEZiSE5pU0ZaNlpFaEthR1JIT1hsSlJFVTFUR3BKZFUxVGQyZFZNVnBJU1VWV05HTkhPWGxrUTBKUllraFdia3hWYkhWSlF6Um5WVEZhU0VsR1dteGpiazV3WWpJME5rbEVXWFZOUkVGblVXNVdjR0pIVVdkTlEydG5TVU13ZEZCbmJ6aGpNMXB1U1VoYWJHTnVUbkJpTWpRNVNXcEZkVTFUU1dkaFYxRTVTV3Q0YUdWWFZubFlla1ZwU1Vob2RHSkhOWHBRVTBwdlpFaFNkMDlwT0haa00yUXpURzVqZWt4dE9YbGFlVGg1VFVSQmQwd3pUakphZVVsblpVY3hjMkp1VFRabFIzaHdZbTF6T1VsdGFEQmtTRUUyVEhrNU0yUXpZM1ZrZWsxMVlqTktia3g2UlRWUFZHdDJaVWQ0Y0dKdGMybEpTR2M1U1dwQ2QyVkRTV2RsVkRCcFRVaENORWxuYjBwSlNGcHdXbGhrUTJJelp6bEpha0ZuVFVOQmVFOURRWGhQUTBsbll6TlNOV0pIVlRsSmJWWjFXVmRLYzFwVE1XbFpWMDV5V2pOS2RtUlhOV3RQYlRWc1pIbEJkMGxFUVdkTlZHZG5UVlJuTjBscFFqUmlWM2MyWXpOQ2FGa3lWVGxKYmtKNVdsaE9iR051V214SmFqUkxVRWhPTUdWWGVHeEpTRkkxWTBkVk9VbHVVbXhsU0ZGMldUTk9la2xxTkV0RFV6VjZaRVJDTjFwdGJITmlSSEIxWWpJMWJFOHpNRXRRUXpsNlpFaHNjMXBVTkV0UVNFSm9aRWRuWjFwRU1HbFVWRlYxVFdsM01VeHFiRTFQVTNjMVRHcGtjMDE1TkRSTVZFMTFUMGQzZUV4cVNYTk5VelI1WWtNd01FeHFhM05PVjNkMFRrTTBOVXhVVmsxT1V6UjVURVJWZFU5WWIybE1lalJMVUVoQ2FHUkhaMmRaTW5ob1l6Tk5PVWx1VGpCTlEwbG5Xa1F3YVZSVVFYUk5RelF5WVVSRk5HUnFSVFJUUkVKWFRGUkJkVTV1YjJsTWVqUkxVRU01ZW1SdFl5dERaMXdpS1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0WTI5c2IzSTZJSFpoY2lndExXcHdMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNU2s3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV0p2Y21SbGNpMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdFltOXlaR1Z5TFdOdmJHOXlNU2s3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV1p2WTNWekxXSnZjbVJsY2kxamIyeHZjam9nZG1GeUtDMHRhbkF0WW5KaGJtUXRZMjlzYjNJeUtUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV0p2Y21SbGNpMTNhV1IwYUNrN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxXUnBjMkZpYkdWa0xXOXdZV05wZEhrNklEQXVOanRjYmx4dUlDQWdJQzhxSUVaeWIyMGdUV0YwWlhKcFlXd2dSR1Z6YVdkdUlFeHBkR1VnS2k5Y2JpQWdJQ0F0TFcxa0xYTm9ZV1J2ZHkxclpYa3RkVzFpY21FdGIzQmhZMmwwZVRvZ01DNHlPMXh1SUNBZ0lDMHRiV1F0YzJoaFpHOTNMV3RsZVMxd1pXNTFiV0p5WVMxdmNHRmphWFI1T2lBd0xqRTBPMXh1SUNBZ0lDMHRiV1F0YzJoaFpHOTNMV0Z0WW1sbGJuUXRjMmhoWkc5M0xXOXdZV05wZEhrNklEQXVNVEk3WEc1OVhHNWNiaTVxZFhCNWRHVnlMWGRwWkdkbGRITWdlMXh1SUNBZ0lHMWhjbWRwYmpvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxdFlYSm5hVzRwTzF4dUlDQWdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRZMjlzYjNJcE8xeHVJQ0FnSUc5MlpYSm1iRzkzT2lCMmFYTnBZbXhsTzF4dWZWeHVYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpMbXAxY0hsMFpYSXRkMmxrWjJWMGN5MWthWE5qYjI1dVpXTjBaV1E2T21KbFptOXlaU0I3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ2FHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1ZlZ4dVhHNHVhbkF0VDNWMGNIVjBMWEpsYzNWc2RDQStJQzVxZFhCNWRHVnlMWGRwWkdkbGRITWdlMXh1SUNBZ0lHMWhjbWRwYmkxc1pXWjBPaUF3TzF4dUlDQWdJRzFoY21kcGJpMXlhV2RvZERvZ01EdGNibjFjYmx4dUx5b2dkbUp2ZUNCaGJtUWdhR0p2ZUNBcUwxeHVYRzR1ZDJsa1oyVjBMV2x1YkdsdVpTMW9ZbTk0SUh0Y2JpQWdJQ0F2S2lCSWIzSnBlbTl1ZEdGc0lIZHBaR2RsZEhNZ0tpOWNiaUFnSUNCaWIzZ3RjMmw2YVc1bk9pQmliM0prWlhJdFltOTRPMXh1SUNBZ0lHUnBjM0JzWVhrNklHWnNaWGc3WEc0Z0lDQWdabXhsZUMxa2FYSmxZM1JwYjI0NklISnZkenRjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWW1GelpXeHBibVU3WEc1OVhHNWNiaTUzYVdSblpYUXRhVzVzYVc1bExYWmliM2dnZTF4dUlDQWdJQzhxSUZabGNuUnBZMkZzSUZkcFpHZGxkSE1nS2k5Y2JpQWdJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeHVJQ0FnSUdScGMzQnNZWGs2SUdac1pYZzdYRzRnSUNBZ1pteGxlQzFrYVhKbFkzUnBiMjQ2SUdOdmJIVnRianRjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWTJWdWRHVnlPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXSnZlQ0I3WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeHVJQ0FnSUcxaGNtZHBiam9nTUR0Y2JpQWdJQ0J2ZG1WeVpteHZkem9nWVhWMGJ6dGNibjFjYmx4dUxuZHBaR2RsZEMxbmNtbGtZbTk0SUh0Y2JpQWdJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeHVJQ0FnSUdScGMzQnNZWGs2SUdkeWFXUTdYRzRnSUNBZ2JXRnlaMmx1T2lBd08xeHVJQ0FnSUc5MlpYSm1iRzkzT2lCaGRYUnZPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXaGliM2dnZTF4dUlDQWdJR1pzWlhndFpHbHlaV04wYVc5dU9pQnliM2M3WEc1OVhHNWNiaTUzYVdSblpYUXRkbUp2ZUNCN1hHNGdJQ0FnWm14bGVDMWthWEpsWTNScGIyNDZJR052YkhWdGJqdGNibjFjYmx4dUx5b2dSMlZ1WlhKaGJDQkNkWFIwYjI0Z1UzUjViR2x1WnlBcUwxeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNGdlMXh1SUNBZ0lIQmhaR1JwYm1jdGJHVm1kRG9nTVRCd2VEdGNiaUFnSUNCd1lXUmthVzVuTFhKcFoyaDBPaUF4TUhCNE8xeHVJQ0FnSUhCaFpHUnBibWN0ZEc5d09pQXdjSGc3WEc0Z0lDQWdjR0ZrWkdsdVp5MWliM1IwYjIwNklEQndlRHRjYmlBZ0lDQmthWE53YkdGNU9pQnBibXhwYm1VdFlteHZZMnM3WEc0Z0lDQWdkMmhwZEdVdGMzQmhZMlU2SUc1dmQzSmhjRHRjYmlBZ0lDQnZkbVZ5Wm14dmR6b2dhR2xrWkdWdU8xeHVJQ0FnSUhSbGVIUXRiM1psY21ac2IzYzZJR1ZzYkdsd2MybHpPMXh1SUNBZ0lIUmxlSFF0WVd4cFoyNDZJR05sYm5SbGNqdGNiaUFnSUNCbWIyNTBMWE5wZW1VNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdFptOXVkQzF6YVhwbEtUdGNiaUFnSUNCamRYSnpiM0k2SUhCdmFXNTBaWEk3WEc1Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzVzYVc1bExXaGxhV2RvZENrN1hHNGdJQ0FnWW05eVpHVnlPaUF3Y0hnZ2MyOXNhV1E3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ1ltOTRMWE5vWVdSdmR6b2dibTl1WlR0Y2JseHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzExYVMxbWIyNTBMV052Ykc5eU1TazdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNaWs3WEc0Z0lDQWdZbTl5WkdWeUxXTnZiRzl5T2lCMllYSW9MUzFxY0MxaWIzSmtaWEl0WTI5c2IzSXlLVHRjYmlBZ0lDQmliM0prWlhJNklHNXZibVU3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJpQnBMbVpoSUh0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFcxaGNtZHBiaWs3WEc0Z0lDQWdjRzlwYm5SbGNpMWxkbVZ1ZEhNNklHNXZibVU3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJqcGxiWEIwZVRwaVpXWnZjbVVnZTF4dUlDQWdJR052Ym5SbGJuUTZJRndpWEZ3eU1EQmlYQ0k3SUM4cUlIcGxjbTh0ZDJsa2RHZ2djM0JoWTJVZ0tpOWNibjFjYmx4dUxtcDFjSGwwWlhJdGQybGtaMlYwY3k1cWRYQjVkR1Z5TFdKMWRIUnZianBrYVhOaFlteGxaQ0I3WEc0Z0lDQWdiM0JoWTJsMGVUb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWthWE5oWW14bFpDMXZjR0ZqYVhSNUtUdGNibjFjYmx4dUxtcDFjSGwwWlhJdFluVjBkRzl1SUdrdVptRXVZMlZ1ZEdWeUlIdGNiaUFnSUNCdFlYSm5hVzR0Y21sbmFIUTZJREE3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJqcG9iM1psY2pwbGJtRmliR1ZrTENBdWFuVndlWFJsY2kxaWRYUjBiMjQ2Wm05amRYTTZaVzVoWW14bFpDQjdYRzRnSUNBZ0x5b2dUVVFnVEdsMFpTQXlaSEFnYzJoaFpHOTNJQ292WEc0Z0lDQWdZbTk0TFhOb1lXUnZkem9nTUNBeWNIZ2dNbkI0SURBZ2NtZGlZU2d3TENBd0xDQXdMQ0IyWVhJb0xTMXRaQzF6YUdGa2IzY3RhMlY1TFhCbGJuVnRZbkpoTFc5d1lXTnBkSGtwS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBd0lETndlQ0F4Y0hnZ0xUSndlQ0J5WjJKaEtEQXNJREFzSURBc0lIWmhjaWd0TFcxa0xYTm9ZV1J2ZHkxclpYa3RkVzFpY21FdGIzQmhZMmwwZVNrcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEQWdNWEI0SURWd2VDQXdJSEpuWW1Fb01Dd2dNQ3dnTUN3Z2RtRnlLQzB0YldRdGMyaGhaRzkzTFdGdFltbGxiblF0YzJoaFpHOTNMVzl3WVdOcGRIa3BLVHRjYm4xY2JseHVMbXAxY0hsMFpYSXRZblYwZEc5dU9tRmpkR2wyWlN3Z0xtcDFjSGwwWlhJdFluVjBkRzl1TG0xdlpDMWhZM1JwZG1VZ2UxeHVJQ0FnSUM4cUlFMUVJRXhwZEdVZ05HUndJSE5vWVdSdmR5QXFMMXh1SUNBZ0lHSnZlQzF6YUdGa2IzYzZJREFnTkhCNElEVndlQ0F3SUhKblltRW9NQ3dnTUN3Z01Dd2dkbUZ5S0MwdGJXUXRjMmhoWkc5M0xXdGxlUzF3Wlc1MWJXSnlZUzF2Y0dGamFYUjVLU2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTUNBeGNIZ2dNVEJ3ZUNBd0lISm5ZbUVvTUN3Z01Dd2dNQ3dnZG1GeUtDMHRiV1F0YzJoaFpHOTNMV0Z0WW1sbGJuUXRjMmhoWkc5M0xXOXdZV05wZEhrcEtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXdJREp3ZUNBMGNIZ2dMVEZ3ZUNCeVoySmhLREFzSURBc0lEQXNJSFpoY2lndExXMWtMWE5vWVdSdmR5MXJaWGt0ZFcxaWNtRXRiM0JoWTJsMGVTa3BPMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxMWFTMW1iMjUwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRiR0Y1YjNWMExXTnZiRzl5TXlrN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFdKMWRIUnZianBtYjJOMWN6cGxibUZpYkdWa0lIdGNiaUFnSUNCdmRYUnNhVzVsT2lBeGNIZ2djMjlzYVdRZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJuQjFkQzFtYjJOMWN5MWliM0prWlhJdFkyOXNiM0lwTzF4dWZWeHVYRzR2S2lCQ2RYUjBiMjRnWENKUWNtbHRZWEo1WENJZ1UzUjViR2x1WnlBcUwxeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNHViVzlrTFhCeWFXMWhjbmtnZTF4dUlDQWdJR052Ykc5eU9pQjJZWElvTFMxcWNDMXBiblpsY25ObExYVnBMV1p2Ym5RdFkyOXNiM0l4S1R0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzFpY21GdVpDMWpiMnh2Y2pFcE8xeHVmVnh1WEc0dWFuVndlWFJsY2kxaWRYUjBiMjR1Ylc5a0xYQnlhVzFoY25rdWJXOWtMV0ZqZEdsMlpTQjdYRzRnSUNBZ1kyOXNiM0k2SUhaaGNpZ3RMV3B3TFdsdWRtVnljMlV0ZFdrdFptOXVkQzFqYjJ4dmNqQXBPMXh1SUNBZ0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklIWmhjaWd0TFdwd0xXSnlZVzVrTFdOdmJHOXlNQ2s3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJpNXRiMlF0Y0hKcGJXRnllVHBoWTNScGRtVWdlMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxcGJuWmxjbk5sTFhWcExXWnZiblF0WTI5c2IzSXdLVHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMWljbUZ1WkMxamIyeHZjakFwTzF4dWZWeHVYRzR2S2lCQ2RYUjBiMjRnWENKVGRXTmpaWE56WENJZ1UzUjViR2x1WnlBcUwxeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNHViVzlrTFhOMVkyTmxjM01nZTF4dUlDQWdJR052Ykc5eU9pQjJZWElvTFMxcWNDMXBiblpsY25ObExYVnBMV1p2Ym5RdFkyOXNiM0l4S1R0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzF6ZFdOalpYTnpMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRjM1ZqWTJWemN5NXRiMlF0WVdOMGFYWmxJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNQ2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRjM1ZqWTJWemN5MWpiMnh2Y2pBcE8xeHVJSDFjYmx4dUxtcDFjSGwwWlhJdFluVjBkRzl1TG0xdlpDMXpkV05qWlhOek9tRmpkR2wyWlNCN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMV2x1ZG1WeWMyVXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFhOMVkyTmxjM010WTI5c2IzSXdLVHRjYmlCOVhHNWNiaUF2S2lCQ2RYUjBiMjRnWENKSmJtWnZYQ0lnVTNSNWJHbHVaeUFxTDF4dVhHNHVhblZ3ZVhSbGNpMWlkWFIwYjI0dWJXOWtMV2x1Wm04Z2UxeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzFwYm5abGNuTmxMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFxY0MxcGJtWnZMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRhVzVtYnk1dGIyUXRZV04wYVhabElIdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0YVc1MlpYSnpaUzExYVMxbWIyNTBMV052Ykc5eU1DazdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNW1ieTFqYjJ4dmNqQXBPMXh1ZlZ4dVhHNHVhblZ3ZVhSbGNpMWlkWFIwYjI0dWJXOWtMV2x1Wm04NllXTjBhWFpsSUh0Y2JpQWdJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRhVzUyWlhKelpTMTFhUzFtYjI1MExXTnZiRzl5TUNrN1hHNGdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0YVc1bWJ5MWpiMnh2Y2pBcE8xeHVmVnh1WEc0dktpQkNkWFIwYjI0Z1hDSlhZWEp1YVc1blhDSWdVM1I1YkdsdVp5QXFMMXh1WEc0dWFuVndlWFJsY2kxaWRYUjBiMjR1Ylc5a0xYZGhjbTVwYm1jZ2UxeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzFwYm5abGNuTmxMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFxY0MxM1lYSnVMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRkMkZ5Ym1sdVp5NXRiMlF0WVdOMGFYWmxJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNQ2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMkZ5YmkxamIyeHZjakFwTzF4dWZWeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNHViVzlrTFhkaGNtNXBibWM2WVdOMGFYWmxJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNQ2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMkZ5YmkxamIyeHZjakFwTzF4dWZWeHVYRzR2S2lCQ2RYUjBiMjRnWENKRVlXNW5aWEpjSWlCVGRIbHNhVzVuSUNvdlhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJpNXRiMlF0WkdGdVoyVnlJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRaWEp5YjNJdFkyOXNiM0l4S1R0Y2JuMWNibHh1TG1wMWNIbDBaWEl0WW5WMGRHOXVMbTF2WkMxa1lXNW5aWEl1Ylc5a0xXRmpkR2wyWlNCN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMV2x1ZG1WeWMyVXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFdWeWNtOXlMV052Ykc5eU1DazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRaR0Z1WjJWeU9tRmpkR2wyWlNCN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMV2x1ZG1WeWMyVXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFdWeWNtOXlMV052Ykc5eU1DazdYRzU5WEc1Y2JpOHFJRmRwWkdkbGRDQkNkWFIwYjI0cUwxeHVYRzR1ZDJsa1oyVjBMV0oxZEhSdmJpd2dMbmRwWkdkbGRDMTBiMmRuYkdVdFluVjBkRzl1SUh0Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGQybGtkR2d0YzJodmNuUXBPMXh1ZlZ4dVhHNHZLaUJYYVdSblpYUWdUR0ZpWld3Z1UzUjViR2x1WnlBcUwxeHVYRzR2S2lCUGRtVnljbWxrWlNCQ2IyOTBjM1J5WVhBZ2JHRmlaV3dnWTNOeklDb3ZYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpJR3hoWW1Wc0lIdGNiaUFnSUNCdFlYSm5hVzR0WW05MGRHOXRPaUJwYm1sMGFXRnNPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXeGhZbVZzTFdKaGMybGpJSHRjYmlBZ0lDQXZLaUJDWVhOcFl5Qk1ZV0psYkNBcUwxeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV3hoWW1Wc0xXTnZiRzl5S1R0Y2JpQWdJQ0JtYjI1MExYTnBlbVU2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Wm05dWRDMXphWHBsS1R0Y2JpQWdJQ0J2ZG1WeVpteHZkem9nYUdsa1pHVnVPMXh1SUNBZ0lIUmxlSFF0YjNabGNtWnNiM2M2SUdWc2JHbHdjMmx6TzF4dUlDQWdJSGRvYVhSbExYTndZV05sT2lCdWIzZHlZWEE3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGJHRmlaV3dnZTF4dUlDQWdJQzhxSUV4aFltVnNJQ292WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGJHRmlaV3d0WTI5c2IzSXBPMXh1SUNBZ0lHWnZiblF0YzJsNlpUb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MW1iMjUwTFhOcGVtVXBPMXh1SUNBZ0lHOTJaWEptYkc5M09pQm9hV1JrWlc0N1hHNGdJQ0FnZEdWNGRDMXZkbVZ5Wm14dmR6b2daV3hzYVhCemFYTTdYRzRnSUNBZ2QyaHBkR1V0YzNCaFkyVTZJRzV2ZDNKaGNEdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JuMWNibHh1TG5kcFpHZGxkQzFwYm14cGJtVXRhR0p2ZUNBdWQybGtaMlYwTFd4aFltVnNJSHRjYmlBZ0lDQXZLaUJJYjNKcGVtOXVkR0ZzSUZkcFpHZGxkQ0JNWVdKbGJDQXFMMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFd4aFltVnNMV052Ykc5eUtUdGNiaUFnSUNCMFpYaDBMV0ZzYVdkdU9pQnlhV2RvZER0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklHTmhiR01vSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMVzFoY21kcGJpa2dLaUF5SUNrN1hHNGdJQ0FnZDJsa2RHZzZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzVzYVc1bExXeGhZbVZzTFhkcFpIUm9LVHRjYmlBZ0lDQm1iR1Y0TFhOb2NtbHVhem9nTUR0Y2JuMWNibHh1TG5kcFpHZGxkQzFwYm14cGJtVXRkbUp2ZUNBdWQybGtaMlYwTFd4aFltVnNJSHRjYmlBZ0lDQXZLaUJXWlhKMGFXTmhiQ0JYYVdSblpYUWdUR0ZpWld3Z0tpOWNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFzWVdKbGJDMWpiMnh2Y2lrN1hHNGdJQ0FnZEdWNGRDMWhiR2xuYmpvZ1kyVnVkR1Z5TzF4dUlDQWdJR3hwYm1VdGFHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1ZlZ4dVhHNHZLaUJYYVdSblpYUWdVbVZoWkc5MWRDQlRkSGxzYVc1bklDb3ZYRzVjYmk1M2FXUm5aWFF0Y21WaFpHOTFkQ0I3WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGNtVmhaRzkxZEMxamIyeHZjaWs3WEc0Z0lDQWdabTl1ZEMxemFYcGxPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2s3WEc0Z0lDQWdhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dUlDQWdJR3hwYm1VdGFHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1SUNBZ0lHOTJaWEptYkc5M09pQm9hV1JrWlc0N1hHNGdJQ0FnZDJocGRHVXRjM0JoWTJVNklHNXZkM0poY0R0Y2JpQWdJQ0IwWlhoMExXRnNhV2R1T2lCalpXNTBaWEk3WEc1OVhHNWNiaTUzYVdSblpYUXRjbVZoWkc5MWRDNXZkbVZ5Wm14dmR5QjdYRzRnSUNBZ0x5b2dUM1psY21ac2IzZHBibWNnVW1WaFpHOTFkQ0FxTDF4dVhHNGdJQ0FnTHlvZ1JuSnZiU0JOWVhSbGNtbGhiQ0JFWlhOcFoyNGdUR2wwWlZ4dUlDQWdJQ0FnSUNCemFHRmtiM2N0YTJWNUxYVnRZbkpoTFc5d1lXTnBkSGs2SURBdU1qdGNiaUFnSUNBZ0lDQWdjMmhoWkc5M0xXdGxlUzF3Wlc1MWJXSnlZUzF2Y0dGamFYUjVPaUF3TGpFME8xeHVJQ0FnSUNBZ0lDQnphR0ZrYjNjdFlXMWlhV1Z1ZEMxemFHRmtiM2N0YjNCaFkybDBlVG9nTUM0eE1qdGNiaUFnSUNBZ0tpOWNiaUFnSUNBdGQyVmlhMmwwTFdKdmVDMXphR0ZrYjNjNklEQWdNbkI0SURKd2VDQXdJSEpuWW1Fb01Dd2dNQ3dnTUN3Z01DNHlLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJREFnTTNCNElERndlQ0F0TW5CNElISm5ZbUVvTUN3Z01Dd2dNQ3dnTUM0eE5Da3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXdJREZ3ZUNBMWNIZ2dNQ0J5WjJKaEtEQXNJREFzSURBc0lEQXVNVElwTzF4dVhHNGdJQ0FnTFcxdmVpMWliM2d0YzJoaFpHOTNPaUF3SURKd2VDQXljSGdnTUNCeVoySmhLREFzSURBc0lEQXNJREF1TWlrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F3SUROd2VDQXhjSGdnTFRKd2VDQnlaMkpoS0RBc0lEQXNJREFzSURBdU1UUXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ01DQXhjSGdnTlhCNElEQWdjbWRpWVNnd0xDQXdMQ0F3TENBd0xqRXlLVHRjYmx4dUlDQWdJR0p2ZUMxemFHRmtiM2M2SURBZ01uQjRJREp3ZUNBd0lISm5ZbUVvTUN3Z01Dd2dNQ3dnTUM0eUtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXdJRE53ZUNBeGNIZ2dMVEp3ZUNCeVoySmhLREFzSURBc0lEQXNJREF1TVRRcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEQWdNWEI0SURWd2VDQXdJSEpuWW1Fb01Dd2dNQ3dnTUN3Z01DNHhNaWs3WEc1OVhHNWNiaTUzYVdSblpYUXRhVzVzYVc1bExXaGliM2dnTG5kcFpHZGxkQzF5WldGa2IzVjBJSHRjYmlBZ0lDQXZLaUJJYjNKcGVtOXVkR0ZzSUZKbFlXUnZkWFFnS2k5Y2JpQWdJQ0IwWlhoMExXRnNhV2R1T2lCalpXNTBaWEk3WEc0Z0lDQWdiV0Y0TFhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUMxemFHOXlkQ2s3WEc0Z0lDQWdiV2x1TFhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUMxMGFXNTVLVHRjYmlBZ0lDQnRZWEpuYVc0dGJHVm1kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRiV0Z5WjJsdUtUdGNibjFjYmx4dUxuZHBaR2RsZEMxcGJteHBibVV0ZG1KdmVDQXVkMmxrWjJWMExYSmxZV1J2ZFhRZ2UxeHVJQ0FnSUM4cUlGWmxjblJwWTJGc0lGSmxZV1J2ZFhRZ0tpOWNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxdFlYSm5hVzRwTzF4dUlDQWdJQzhxSUdGeklIZHBaR1VnWVhNZ2RHaGxJSGRwWkdkbGRDQXFMMXh1SUNBZ0lIZHBaSFJvT2lCcGJtaGxjbWwwTzF4dWZWeHVYRzR2S2lCWGFXUm5aWFFnUTJobFkydGliM2dnVTNSNWJHbHVaeUFxTDF4dVhHNHVkMmxrWjJWMExXTm9aV05yWW05NElIdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdncE8xeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JuMWNibHh1TG5kcFpHZGxkQzFqYUdWamEySnZlQ0JwYm5CMWRGdDBlWEJsUFZ3aVkyaGxZMnRpYjNoY0lsMGdlMXh1SUNBZ0lHMWhjbWRwYmpvZ01IQjRJR05oYkdNb0lIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFcxaGNtZHBiaWtnS2lBeUlDa2dNSEI0SURCd2VEdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JpQWdJQ0JtYjI1MExYTnBlbVU2SUd4aGNtZGxPMXh1SUNBZ0lHWnNaWGd0WjNKdmR6b2dNVHRjYmlBZ0lDQm1iR1Y0TFhOb2NtbHVhem9nTUR0Y2JpQWdJQ0JoYkdsbmJpMXpaV3htT2lCalpXNTBaWEk3WEc1OVhHNWNiaThxSUZkcFpHZGxkQ0JXWVd4cFpDQlRkSGxzYVc1bklDb3ZYRzVjYmk1M2FXUm5aWFF0ZG1Gc2FXUWdlMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQnNhVzVsTFdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdndGMyaHZjblFwTzF4dUlDQWdJR1p2Ym5RdGMybDZaVG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFtYjI1MExYTnBlbVVwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFpoYkdsa0lHazZZbVZtYjNKbElIdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFcxaGNtZHBiaWs3WEc0Z0lDQWdiV0Z5WjJsdUxXeGxablE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMVzFoY21kcGJpazdYRzVjYmlBZ0lDQXZLaUJtY205dElIUm9aU0JtWVNCamJHRnpjeUJwYmlCR2IyNTBRWGRsYzI5dFpUb2dhSFIwY0hNNkx5OW5hWFJvZFdJdVkyOXRMMFp2Y25SQmQyVnpiMjFsTDBadmJuUXRRWGRsYzI5dFpTOWliRzlpTHpRNU1UQXdZemRqTTJFM1lqVTRaRFV3WW1GaE56RmxabVZtTVRGaFpqUXhZVFkyWWpBelpETXZZM056TDJadmJuUXRZWGRsYzI5dFpTNWpjM01qVERFMElDb3ZYRzRnSUNBZ1pHbHpjR3hoZVRvZ2FXNXNhVzVsTFdKc2IyTnJPMXh1SUNBZ0lHWnZiblE2SUc1dmNtMWhiQ0J1YjNKdFlXd2dibTl5YldGc0lERTBjSGd2TVNCR2IyNTBRWGRsYzI5dFpUdGNiaUFnSUNCbWIyNTBMWE5wZW1VNklHbHVhR1Z5YVhRN1hHNGdJQ0FnZEdWNGRDMXlaVzVrWlhKcGJtYzZJR0YxZEc4N1hHNGdJQ0FnTFhkbFltdHBkQzFtYjI1MExYTnRiMjkwYUdsdVp6b2dZVzUwYVdGc2FXRnpaV1E3WEc0Z0lDQWdMVzF2ZWkxdmMzZ3RabTl1ZEMxemJXOXZkR2hwYm1jNklHZHlZWGx6WTJGc1pUdGNibjFjYmx4dUxuZHBaR2RsZEMxMllXeHBaQzV0YjJRdGRtRnNhV1FnYVRwaVpXWnZjbVVnZTF4dUlDQWdJR052Ym5SbGJuUTZJRndpWEZ4bU1EQmpYQ0k3WEc0Z0lDQWdZMjlzYjNJNklHZHlaV1Z1TzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFpoYkdsa0xtMXZaQzFwYm5aaGJHbGtJR2s2WW1WbWIzSmxJSHRjYmlBZ0lDQmpiMjUwWlc1ME9pQmNJbHhjWmpBd1pGd2lPMXh1SUNBZ0lHTnZiRzl5T2lCeVpXUTdYRzU5WEc1Y2JpNTNhV1JuWlhRdGRtRnNhV1F1Ylc5a0xYWmhiR2xrSUM1M2FXUm5aWFF0ZG1Gc2FXUXRjbVZoWkc5MWRDQjdYRzRnSUNBZ1pHbHpjR3hoZVRvZ2JtOXVaVHRjYm4xY2JseHVMeW9nVjJsa1oyVjBJRlJsZUhRZ1lXNWtJRlJsZUhSQmNtVmhJRk4wZVdsdVp5QXFMMXh1WEc0dWQybGtaMlYwTFhSbGVIUmhjbVZoTENBdWQybGtaMlYwTFhSbGVIUWdlMXh1SUNBZ0lIZHBaSFJvT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGRHVjRkQ0JwYm5CMWRGdDBlWEJsUFZ3aWRHVjRkRndpWFN3Z0xuZHBaR2RsZEMxMFpYaDBJR2x1Y0hWMFczUjVjR1U5WENKdWRXMWlaWEpjSWwxN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVJQ0FnSUd4cGJtVXRhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFJsZUhRZ2FXNXdkWFJiZEhsd1pUMWNJblJsZUhSY0lsMDZaR2x6WVdKc1pXUXNJQzUzYVdSblpYUXRkR1Y0ZENCcGJuQjFkRnQwZVhCbFBWd2liblZ0WW1WeVhDSmRPbVJwYzJGaWJHVmtMQ0F1ZDJsa1oyVjBMWFJsZUhSaGNtVmhJSFJsZUhSaGNtVmhPbVJwYzJGaWJHVmtJSHRjYmlBZ0lDQnZjR0ZqYVhSNU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXUnBjMkZpYkdWa0xXOXdZV05wZEhrcE8xeHVmVnh1WEc0dWQybGtaMlYwTFhSbGVIUWdhVzV3ZFhSYmRIbHdaVDFjSW5SbGVIUmNJbDBzSUM1M2FXUm5aWFF0ZEdWNGRDQnBibkIxZEZ0MGVYQmxQVndpYm5WdFltVnlYQ0pkTENBdWQybGtaMlYwTFhSbGVIUmhjbVZoSUhSbGVIUmhjbVZoSUh0Y2JpQWdJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeHVJQ0FnSUdKdmNtUmxjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFdOdmJHOXlLVHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdKaFkydG5jbTkxYm1RdFkyOXNiM0lwTzF4dUlDQWdJR052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdOdmJHOXlLVHRjYmlBZ0lDQm1iMjUwTFhOcGVtVTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRabTl1ZEMxemFYcGxLVHRjYmlBZ0lDQndZV1JrYVc1bk9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwSUdOaGJHTW9JSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdGNHRmtaR2x1WnlrZ0tpQWdNaUFwTzF4dUlDQWdJR1pzWlhndFozSnZkem9nTVR0Y2JpQWdJQ0J0YVc0dGQybGtkR2c2SURBN0lDOHFJRlJvYVhNZ2JXRnJaWE1nYVhRZ2NHOXpjMmxpYkdVZ1ptOXlJSFJvWlNCbWJHVjRZbTk0SUhSdklITm9jbWx1YXlCMGFHbHpJR2x1Y0hWMElDb3ZYRzRnSUNBZ1pteGxlQzF6YUhKcGJtczZJREU3WEc0Z0lDQWdiM1YwYkdsdVpUb2dibTl1WlNBaGFXMXdiM0owWVc1ME8xeHVmVnh1WEc0dWQybGtaMlYwTFhSbGVIUmhjbVZoSUhSbGVIUmhjbVZoSUh0Y2JpQWdJQ0JvWldsbmFIUTZJR2x1YUdWeWFYUTdYRzRnSUNBZ2QybGtkR2c2SUdsdWFHVnlhWFE3WEc1OVhHNWNiaTUzYVdSblpYUXRkR1Y0ZENCcGJuQjFkRHBtYjJOMWN5d2dMbmRwWkdkbGRDMTBaWGgwWVhKbFlTQjBaWGgwWVhKbFlUcG1iMk4xY3lCN1hHNGdJQ0FnWW05eVpHVnlMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdadlkzVnpMV0p2Y21SbGNpMWpiMnh2Y2lrN1hHNTlYRzVjYmk4cUlGZHBaR2RsZENCVGJHbGtaWElnS2k5Y2JseHVMbmRwWkdkbGRDMXpiR2xrWlhJZ0xuVnBMWE5zYVdSbGNpQjdYRzRnSUNBZ0x5b2dVMnhwWkdWeUlGUnlZV05ySUNvdlhHNGdJQ0FnWW05eVpHVnlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMV3hoZVc5MWRDMWpiMnh2Y2pNcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RNklIWmhjaWd0TFdwd0xXeGhlVzkxZEMxamIyeHZjak1wTzF4dUlDQWdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hHNGdJQ0FnY0c5emFYUnBiMjQ2SUhKbGJHRjBhWFpsTzF4dUlDQWdJR0p2Y21SbGNpMXlZV1JwZFhNNklEQndlRHRjYm4xY2JseHVMbmRwWkdkbGRDMXpiR2xrWlhJZ0xuVnBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlMV2hoYm1Sc1pTQjdYRzRnSUNBZ0x5b2dVMnhwWkdWeUlFaGhibVJzWlNBcUwxeHVJQ0FnSUc5MWRHeHBibVU2SUc1dmJtVWdJV2x0Y0c5eWRHRnVkRHNnTHlvZ1ptOWpkWE5sWkNCemJHbGtaWElnYUdGdVpHeGxjeUJoY21VZ1kyOXNiM0psWkNBdElITmxaU0JpWld4dmR5QXFMMXh1SUNBZ0lIQnZjMmwwYVc5dU9pQmhZbk52YkhWMFpUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFvWVc1a2JHVXRZbUZqYTJkeWIzVnVaQzFqYjJ4dmNpazdYRzRnSUNBZ1ltOXlaR1Z5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFpYjNKa1pYSXRkMmxrZEdncElITnZiR2xrSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV2hoYm1Sc1pTMWliM0prWlhJdFkyOXNiM0lwTzF4dUlDQWdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hHNGdJQ0FnZWkxcGJtUmxlRG9nTVR0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdsdFlXZGxPaUJ1YjI1bE95QXZLaUJQZG1WeWNtbGtaU0JxY1hWbGNua3RkV2tnS2k5Y2JuMWNibHh1THlvZ1QzWmxjbkpwWkdVZ2FuRjFaWEo1TFhWcElDb3ZYRzR1ZDJsa1oyVjBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlJQzUxYVMxemJHbGtaWEl0YUdGdVpHeGxPbWh2ZG1WeUxDQXVkMmxrWjJWMExYTnNhV1JsY2lBdWRXa3RjMnhwWkdWeUlDNTFhUzF6Ykdsa1pYSXRhR0Z1Wkd4bE9tWnZZM1Z6SUh0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWhZM1JwZG1VdGFHRnVaR3hsTFdOdmJHOXlLVHRjYmlBZ0lDQmliM0prWlhJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGMyeHBaR1Z5TFdKdmNtUmxjaTEzYVdSMGFDa2djMjlzYVdRZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0WVdOMGFYWmxMV2hoYm1Sc1pTMWpiMnh2Y2lrN1hHNTlYRzVjYmk1M2FXUm5aWFF0YzJ4cFpHVnlJQzUxYVMxemJHbGtaWElnTG5WcExYTnNhV1JsY2kxb1lXNWtiR1U2WVdOMGFYWmxJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxaFkzUnBkbVV0YUdGdVpHeGxMV052Ykc5eUtUdGNiaUFnSUNCaWIzSmtaWEl0WTI5c2IzSTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXRmpkR2wyWlMxb1lXNWtiR1V0WTI5c2IzSXBPMXh1SUNBZ0lIb3RhVzVrWlhnNklESTdYRzRnSUNBZ2RISmhibk5tYjNKdE9pQnpZMkZzWlNneExqSXBPMXh1ZlZ4dVhHNHVkMmxrWjJWMExYTnNhV1JsY2lBZ0xuVnBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlMWEpoYm1kbElIdGNiaUFnSUNBdktpQkpiblJsY25aaGJDQmlaWFIzWldWdUlIUm9aU0IwZDI4Z2MzQmxZMmxtYVdWa0lIWmhiSFZsSUc5bUlHRWdaRzkxWW14bElITnNhV1JsY2lBcUwxeHVJQ0FnSUhCdmMybDBhVzl1T2lCaFluTnZiSFYwWlR0Y2JpQWdJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFoWTNScGRtVXRhR0Z1Wkd4bExXTnZiRzl5S1R0Y2JpQWdJQ0I2TFdsdVpHVjRPaUF3TzF4dWZWeHVYRzR2S2lCVGFHRndaWE1nYjJZZ1UyeHBaR1Z5SUVoaGJtUnNaWE1nS2k5Y2JseHVMbmRwWkdkbGRDMW9jMnhwWkdWeUlDNTFhUzF6Ykdsa1pYSWdMblZwTFhOc2FXUmxjaTFvWVc1a2JHVWdlMXh1SUNBZ0lIZHBaSFJvT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFvWVc1a2JHVXRjMmw2WlNrN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMW9ZVzVrYkdVdGMybDZaU2s3WEc0Z0lDQWdiV0Z5WjJsdUxYUnZjRG9nWTJGc1l5Z29kbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56S1NBdElIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGMyeHBaR1Z5TFdoaGJtUnNaUzF6YVhwbEtTa2dMeUF5SUMwZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ2JXRnlaMmx1TFd4bFpuUTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0YUdGdVpHeGxMWE5wZW1VcElDOGdMVElnS3lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFpYjNKa1pYSXRkMmxrZEdncEtUdGNiaUFnSUNCaWIzSmtaWEl0Y21Ga2FYVnpPaUExTUNVN1hHNGdJQ0FnZEc5d09pQXdPMXh1ZlZ4dVhHNHVkMmxrWjJWMExYWnpiR2xrWlhJZ0xuVnBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlMV2hoYm1Sc1pTQjdYRzRnSUNBZ2QybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV2hoYm1Sc1pTMXphWHBsS1R0Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXaGhibVJzWlMxemFYcGxLVHRjYmlBZ0lDQnRZWEpuYVc0dFltOTBkRzl0T2lCallXeGpLSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXaGhibVJzWlMxemFYcGxLU0F2SUMweUlDc2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdFltOXlaR1Z5TFhkcFpIUm9LU2s3WEc0Z0lDQWdiV0Z5WjJsdUxXeGxablE2SUdOaGJHTW9LSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxYUnlZV05yTFhSb2FXTnJibVZ6Y3lrZ0xTQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxb1lXNWtiR1V0YzJsNlpTa3BJQzhnTWlBdElIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGMyeHBaR1Z5TFdKdmNtUmxjaTEzYVdSMGFDa3BPMXh1SUNBZ0lHSnZjbVJsY2kxeVlXUnBkWE02SURVd0pUdGNiaUFnSUNCc1pXWjBPaUF3TzF4dWZWeHVYRzR1ZDJsa1oyVjBMV2h6Ykdsa1pYSWdMblZwTFhOc2FXUmxjaUF1ZFdrdGMyeHBaR1Z5TFhKaGJtZGxJSHRjYmlBZ0lDQm9aV2xuYUhRNklHTmhiR01vSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMWFJ5WVdOckxYUm9hV05yYm1WemN5a2dLaUF5SUNrN1hHNGdJQ0FnYldGeVoybHVMWFJ2Y0RvZ1kyRnNZeWdvZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRkSEpoWTJzdGRHaHBZMnR1WlhOektTQXRJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxYUnlZV05yTFhSb2FXTnJibVZ6Y3lrZ0tpQXlJQ2tnTHlBeUlDMGdkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdFltOXlaR1Z5TFhkcFpIUm9LU2s3WEc1OVhHNWNiaTUzYVdSblpYUXRkbk5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlJQzUxYVMxemJHbGtaWEl0Y21GdVoyVWdlMXh1SUNBZ0lIZHBaSFJvT2lCallXeGpLQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMTBjbUZqYXkxMGFHbGphMjVsYzNNcElDb2dNaUFwTzF4dUlDQWdJRzFoY21kcGJpMXNaV1owT2lCallXeGpLQ2gyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMTBjbUZqYXkxMGFHbGphMjVsYzNNcElDMGdkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56S1NBcUlESWdLU0F2SURJZ0xTQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxaWIzSmtaWEl0ZDJsa2RHZ3BLVHRjYm4xY2JseHVMeW9nU0c5eWFYcHZiblJoYkNCVGJHbGtaWElnS2k5Y2JseHVMbmRwWkdkbGRDMW9jMnhwWkdWeUlIdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdncE8xeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JseHVJQ0FnSUM4cUlFOTJaWEp5YVdSbElIUm9aU0JoYkdsbmJpMXBkR1Z0Y3lCaVlYTmxiR2x1WlM0Z1ZHaHBjeUIzWVhrc0lIUm9aU0JrWlhOamNtbHdkR2x2YmlCaGJtUWdjbVZoWkc5MWRGeHVJQ0FnSUhOMGFXeHNJSE5sWlcwZ2RHOGdZV3hwWjI0Z2RHaGxhWElnWW1GelpXeHBibVVnY0hKdmNHVnliSGtzSUdGdVpDQjNaU0JrYjI0bmRDQm9ZWFpsSUhSdklHaGhkbVZjYmlBZ0lDQmhiR2xuYmkxelpXeG1PaUJ6ZEhKbGRHTm9JR2x1SUhSb1pTQXVjMnhwWkdWeUxXTnZiblJoYVc1bGNpNGdLaTljYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWTJWdWRHVnlPMXh1ZlZ4dVhHNHVkMmxrWjJWMGN5MXpiR2xrWlhJZ0xuTnNhV1JsY2kxamIyNTBZV2x1WlhJZ2UxeHVJQ0FnSUc5MlpYSm1iRzkzT2lCMmFYTnBZbXhsTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV2h6Ykdsa1pYSWdMbk5zYVdSbGNpMWpiMjUwWVdsdVpYSWdlMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQnRZWEpuYVc0dGJHVm1kRG9nWTJGc1l5aDJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxb1lXNWtiR1V0YzJsNlpTa2dMeUF5SUMwZ01pQXFJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXSnZjbVJsY2kxM2FXUjBhQ2twTzF4dUlDQWdJRzFoY21kcGJpMXlhV2RvZERvZ1kyRnNZeWgyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMW9ZVzVrYkdVdGMybDZaU2tnTHlBeUlDMGdNaUFxSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV0p2Y21SbGNpMTNhV1IwYUNrcE8xeHVJQ0FnSUdac1pYZzZJREVnTVNCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFDMXphRzl5ZENrN1hHNTlYRzVjYmk1M2FXUm5aWFF0YUhOc2FXUmxjaUF1ZFdrdGMyeHBaR1Z5SUh0Y2JpQWdJQ0F2S2lCSmJtNWxjaXdnYVc1MmFYTnBZbXhsSUhOc2FXUmxJR1JwZGlBcUwxeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRkSEpoWTJzdGRHaHBZMnR1WlhOektUdGNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQmpZV3hqS0NoMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBJQzBnZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRkSEpoWTJzdGRHaHBZMnR1WlhOektTa2dMeUF5S1R0Y2JpQWdJQ0IzYVdSMGFEb2dNVEF3SlR0Y2JuMWNibHh1THlvZ1ZtVnlkR2xqWVd3Z1UyeHBaR1Z5SUNvdlhHNWNiaTUzYVdSblpYUXRkbUp2ZUNBdWQybGtaMlYwTFd4aFltVnNJSHRjYmlBZ0lDQm9aV2xuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFdobGFXZG9kQ2s3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGRuTnNhV1JsY2lCN1hHNGdJQ0FnTHlvZ1ZtVnlkR2xqWVd3Z1UyeHBaR1Z5SUNvdlhHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWFpsY25ScFkyRnNMV2hsYVdkb2RDazdYRzRnSUNBZ2QybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMWGRwWkhSb0xYUnBibmtwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFp6Ykdsa1pYSWdMbk5zYVdSbGNpMWpiMjUwWVdsdVpYSWdlMXh1SUNBZ0lHWnNaWGc2SURFZ01TQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxM2FXUjBhQzF6YUc5eWRDazdYRzRnSUNBZ2JXRnlaMmx1TFd4bFpuUTZJR0YxZEc4N1hHNGdJQ0FnYldGeVoybHVMWEpwWjJoME9pQmhkWFJ2TzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklHTmhiR01vZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRhR0Z1Wkd4bExYTnBlbVVwSUM4Z01pQXRJRElnS2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFpYjNKa1pYSXRkMmxrZEdncEtUdGNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQmpZV3hqS0haaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV2hoYm1Sc1pTMXphWHBsS1NBdklESWdMU0F5SUNvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ1pHbHpjR3hoZVRvZ1pteGxlRHRjYmlBZ0lDQm1iR1Y0TFdScGNtVmpkR2x2YmpvZ1kyOXNkVzF1TzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFp6Ykdsa1pYSWdMblZwTFhOc2FXUmxjaTEyWlhKMGFXTmhiQ0I3WEc0Z0lDQWdMeW9nU1c1dVpYSXNJR2x1ZG1semFXSnNaU0J6Ykdsa1pTQmthWFlnS2k5Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56S1R0Y2JpQWdJQ0JtYkdWNExXZHliM2M2SURFN1hHNGdJQ0FnYldGeVoybHVMV3hsWm5RNklHRjFkRzg3WEc0Z0lDQWdiV0Z5WjJsdUxYSnBaMmgwT2lCaGRYUnZPMXh1ZlZ4dVhHNHZLaUJYYVdSblpYUWdVSEp2WjNKbGMzTWdVM1I1YkdsdVp5QXFMMXh1WEc0dWNISnZaM0psYzNNdFltRnlJSHRjYmlBZ0lDQXRkMlZpYTJsMExYUnlZVzV6YVhScGIyNDZJRzV2Ym1VN1hHNGdJQ0FnTFcxdmVpMTBjbUZ1YzJsMGFXOXVPaUJ1YjI1bE8xeHVJQ0FnSUMxdGN5MTBjbUZ1YzJsMGFXOXVPaUJ1YjI1bE8xeHVJQ0FnSUMxdkxYUnlZVzV6YVhScGIyNDZJRzV2Ym1VN1hHNGdJQ0FnZEhKaGJuTnBkR2x2YmpvZ2JtOXVaVHRjYm4xY2JseHVMbkJ5YjJkeVpYTnpMV0poY2lCN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVmVnh1WEc0dWNISnZaM0psYzNNdFltRnlJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMWljbUZ1WkMxamIyeHZjakVwTzF4dWZWeHVYRzR1Y0hKdlozSmxjM010WW1GeUxYTjFZMk5sYzNNZ2UxeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFhOMVkyTmxjM010WTI5c2IzSXhLVHRjYm4xY2JseHVMbkJ5YjJkeVpYTnpMV0poY2kxcGJtWnZJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMXBibVp2TFdOdmJHOXlNU2s3WEc1OVhHNWNiaTV3Y205bmNtVnpjeTFpWVhJdGQyRnlibWx1WnlCN1hHNGdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJGeWJpMWpiMnh2Y2pFcE8xeHVmVnh1WEc0dWNISnZaM0psYzNNdFltRnlMV1JoYm1kbGNpQjdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdFpYSnliM0l0WTI5c2IzSXhLVHRjYm4xY2JseHVMbkJ5YjJkeVpYTnpJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMXNZWGx2ZFhRdFkyOXNiM0l5S1R0Y2JpQWdJQ0JpYjNKa1pYSTZJRzV2Ym1VN1hHNGdJQ0FnWW05NExYTm9ZV1J2ZHpvZ2JtOXVaVHRjYm4xY2JseHVMeW9nU0c5eWFYTnZiblJoYkNCUWNtOW5jbVZ6Y3lBcUwxeHVYRzR1ZDJsa1oyVjBMV2h3Y205bmNtVnpjeUI3WEc0Z0lDQWdMeW9nVUhKdlozSmxjM01nUW1GeUlDb3ZYRzRnSUNBZ2FHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVJQ0FnSUhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUNrN1hHNGdJQ0FnWVd4cFoyNHRhWFJsYlhNNklHTmxiblJsY2p0Y2JseHVmVnh1WEc0dWQybGtaMlYwTFdod2NtOW5jbVZ6Y3lBdWNISnZaM0psYzNNZ2UxeHVJQ0FnSUdac1pYZ3RaM0p2ZHpvZ01UdGNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwTzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0Y0dGa1pHbHVaeWs3WEc0Z0lDQWdZV3hwWjI0dGMyVnNaam9nYzNSeVpYUmphRHRjYmlBZ0lDQXZLaUJQZG1WeWNtbGtaU0JpYjI5MGMzUnlZWEFnYzNSNWJHVWdLaTljYmlBZ0lDQm9aV2xuYUhRNklHbHVhWFJwWVd3N1hHNTlYRzVjYmk4cUlGWmxjblJwWTJGc0lGQnliMmR5WlhOeklDb3ZYRzVjYmk1M2FXUm5aWFF0ZG5CeWIyZHlaWE56SUh0Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRkbVZ5ZEdsallXd3RhR1ZwWjJoMEtUdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdndGRHbHVlU2s3WEc1OVhHNWNiaTUzYVdSblpYUXRkbkJ5YjJkeVpYTnpJQzV3Y205bmNtVnpjeUI3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJSGRwWkhSb09pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYQnliMmR5WlhOekxYUm9hV05yYm1WemN5azdYRzRnSUNBZ2JXRnlaMmx1TFd4bFpuUTZJR0YxZEc4N1hHNGdJQ0FnYldGeVoybHVMWEpwWjJoME9pQmhkWFJ2TzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklEQTdYRzU5WEc1Y2JpOHFJRk5sYkdWamRDQlhhV1JuWlhRZ1UzUjViR2x1WnlBcUwxeHVYRzR1ZDJsa1oyVjBMV1J5YjNCa2IzZHVJSHRjYmlBZ0lDQm9aV2xuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFdobGFXZG9kQ2s3WEc0Z0lDQWdkMmxrZEdnNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFhkcFpIUm9LVHRjYmlBZ0lDQnNhVzVsTFdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNibjFjYmx4dUxuZHBaR2RsZEMxa2NtOXdaRzkzYmlBK0lITmxiR1ZqZENCN1hHNGdJQ0FnY0dGa1pHbHVaeTF5YVdkb2REb2dNakJ3ZUR0Y2JpQWdJQ0JpYjNKa1pYSTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFhkcFpIUm9LU0J6YjJ4cFpDQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdKdmNtUmxjaTFqYjJ4dmNpazdYRzRnSUNBZ1ltOXlaR1Z5TFhKaFpHbDFjem9nTUR0Y2JpQWdJQ0JvWldsbmFIUTZJR2x1YUdWeWFYUTdYRzRnSUNBZ1pteGxlRG9nTVNBeElIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFhkcFpIUm9MWE5vYjNKMEtUdGNiaUFnSUNCdGFXNHRkMmxrZEdnNklEQTdJQzhxSUZSb2FYTWdiV0ZyWlhNZ2FYUWdjRzl6YzJsaWJHVWdabTl5SUhSb1pTQm1iR1Y0WW05NElIUnZJSE5vY21sdWF5QjBhR2x6SUdsdWNIVjBJQ292WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdJQ0J2ZFhSc2FXNWxPaUJ1YjI1bElDRnBiWEJ2Y25SaGJuUTdYRzRnSUNBZ1ltOTRMWE5vWVdSdmR6b2dibTl1WlR0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSmhZMnRuY205MWJtUXRZMjlzYjNJcE8xeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXTnZiRzl5S1R0Y2JpQWdJQ0JtYjI1MExYTnBlbVU2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Wm05dWRDMXphWHBsS1R0Y2JpQWdJQ0IyWlhKMGFXTmhiQzFoYkdsbmJqb2dkRzl3TzF4dUlDQWdJSEJoWkdScGJtY3RiR1ZtZERvZ1kyRnNZeWdnZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMXdZV1JrYVc1bktTQXFJRElwTzF4dVhIUmhjSEJsWVhKaGJtTmxPaUJ1YjI1bE8xeHVYSFF0ZDJWaWEybDBMV0Z3Y0dWaGNtRnVZMlU2SUc1dmJtVTdYRzVjZEMxdGIzb3RZWEJ3WldGeVlXNWpaVG9nYm05dVpUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xYSmxjR1ZoZERvZ2JtOHRjbVZ3WldGME8xeHVYSFJpWVdOclozSnZkVzVrTFhOcGVtVTZJREl3Y0hnN1hHNWNkR0poWTJ0bmNtOTFibVF0Y0c5emFYUnBiMjQ2SUhKcFoyaDBJR05sYm5SbGNqdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXbHRZV2RsT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdSeWIzQmtiM2R1TFdGeWNtOTNLVHRjYm4xY2JpNTNhV1JuWlhRdFpISnZjR1J2ZDI0Z1BpQnpaV3hsWTNRNlptOWpkWE1nZTF4dUlDQWdJR0p2Y21SbGNpMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJuQjFkQzFtYjJOMWN5MWliM0prWlhJdFkyOXNiM0lwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV1J5YjNCa2IzZHVJRDRnYzJWc1pXTjBPbVJwYzJGaWJHVmtJSHRjYmlBZ0lDQnZjR0ZqYVhSNU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXUnBjMkZpYkdWa0xXOXdZV05wZEhrcE8xeHVmVnh1WEc0dktpQlVieUJrYVhOaFlteGxJSFJvWlNCa2IzUjBaV1FnWW05eVpHVnlJR2x1SUVacGNtVm1iM2dnWVhKdmRXNWtJSE5sYkdWamRDQmpiMjUwY205c2N5NWNiaUFnSUZObFpTQm9kSFJ3T2k4dmMzUmhZMnR2ZG1WeVpteHZkeTVqYjIwdllTOHhPRGcxTXpBd01pQXFMMXh1TG5kcFpHZGxkQzFrY205d1pHOTNiaUErSUhObGJHVmpkRG90Ylc5NkxXWnZZM1Z6Y21sdVp5QjdYRzRnSUNBZ1kyOXNiM0k2SUhSeVlXNXpjR0Z5Wlc1ME8xeHVJQ0FnSUhSbGVIUXRjMmhoWkc5M09pQXdJREFnTUNBak1EQXdPMXh1ZlZ4dVhHNHZLaUJUWld4bFkzUWdZVzVrSUZObGJHVmpkRTExYkhScGNHeGxJQ292WEc1Y2JpNTNhV1JuWlhRdGMyVnNaV04wSUh0Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGQybGtkR2dwTzF4dUlDQWdJR3hwYm1VdGFHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1WEc0Z0lDQWdMeW9nUW1WallYVnpaU0JHYVhKbFptOTRJR1JsWm1sdVpYTWdkR2hsSUdKaGMyVnNhVzVsSUc5bUlHRWdjMlZzWldOMElHRnpJSFJvWlNCaWIzUjBiMjBnYjJZZ2RHaGxYRzRnSUNBZ1kyOXVkSEp2YkN3Z2QyVWdZV3hwWjI0Z2RHaGxJR1Z1ZEdseVpTQmpiMjUwY205c0lIUnZJSFJvWlNCMGIzQWdZVzVrSUdGa1pDQndZV1JrYVc1bklIUnZJSFJvWlZ4dUlDQWdJSE5sYkdWamRDQjBieUJuWlhRZ1lXNGdZWEJ3Y205NGFXMWhkR1VnWm1seWMzUWdiR2x1WlNCaVlYTmxiR2x1WlNCaGJHbG5ibTFsYm5RdUlDb3ZYRzRnSUNBZ1lXeHBaMjR0YVhSbGJYTTZJR1pzWlhndGMzUmhjblE3WEc1OVhHNWNiaTUzYVdSblpYUXRjMlZzWldOMElENGdjMlZzWldOMElIdGNiaUFnSUNCaWIzSmtaWEk2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1d2RYUXRZbTl5WkdWeUxYZHBaSFJvS1NCemIyeHBaQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSnZjbVJsY2kxamIyeHZjaWs3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxaVlXTnJaM0p2ZFc1a0xXTnZiRzl5S1R0Y2JpQWdJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxamIyeHZjaWs3WEc0Z0lDQWdabTl1ZEMxemFYcGxPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2s3WEc0Z0lDQWdabXhsZURvZ01TQXhJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzVzYVc1bExYZHBaSFJvTFhOb2IzSjBLVHRjYmlBZ0lDQnZkWFJzYVc1bE9pQnViMjVsSUNGcGJYQnZjblJoYm5RN1hHNGdJQ0FnYjNabGNtWnNiM2M2SUdGMWRHODdYRzRnSUNBZ2FHVnBaMmgwT2lCcGJtaGxjbWwwTzF4dVhHNGdJQ0FnTHlvZ1FtVmpZWFZ6WlNCR2FYSmxabTk0SUdSbFptbHVaWE1nZEdobElHSmhjMlZzYVc1bElHOW1JR0VnYzJWc1pXTjBJR0Z6SUhSb1pTQmliM1IwYjIwZ2IyWWdkR2hsWEc0Z0lDQWdZMjl1ZEhKdmJDd2dkMlVnWVd4cFoyNGdkR2hsSUdWdWRHbHlaU0JqYjI1MGNtOXNJSFJ2SUhSb1pTQjBiM0FnWVc1a0lHRmtaQ0J3WVdSa2FXNW5JSFJ2SUhSb1pWeHVJQ0FnSUhObGJHVmpkQ0IwYnlCblpYUWdZVzRnWVhCd2NtOTRhVzFoZEdVZ1ptbHljM1FnYkdsdVpTQmlZWE5sYkdsdVpTQmhiR2xuYm0xbGJuUXVJQ292WEc0Z0lDQWdjR0ZrWkdsdVp5MTBiM0E2SURWd2VEdGNibjFjYmx4dUxuZHBaR2RsZEMxelpXeGxZM1FnUGlCelpXeGxZM1E2Wm05amRYTWdlMXh1SUNBZ0lHSnZjbVJsY2kxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMW1iMk4xY3kxaWIzSmtaWEl0WTI5c2IzSXBPMXh1ZlZ4dVhHNHVkMmxuWlhRdGMyVnNaV04wSUQ0Z2MyVnNaV04wSUQ0Z2IzQjBhVzl1SUh0Y2JpQWdJQ0J3WVdSa2FXNW5MV3hsWm5RNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0Y0dGa1pHbHVaeWs3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ0x5b2diR2x1WlMxb1pXbG5hSFFnWkc5bGMyNG5kQ0IzYjNKcklHOXVJSE52YldVZ1luSnZkM05sY25NZ1ptOXlJSE5sYkdWamRDQnZjSFJwYjI1eklDb3ZYRzRnSUNBZ2NHRmtaR2x1WnkxMGIzQTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLUzEyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2t2TWlrN1hHNGdJQ0FnY0dGa1pHbHVaeTFpYjNSMGIyMDZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLUzEyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2t2TWlrN1hHNTlYRzVjYmx4dVhHNHZLaUJVYjJkbmJHVWdRblYwZEc5dWN5QlRkSGxzYVc1bklDb3ZYRzVjYmk1M2FXUm5aWFF0ZEc5bloyeGxMV0oxZEhSdmJuTWdlMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVmVnh1WEc0dWQybGtaMlYwTFhSdloyZHNaUzFpZFhSMGIyNXpJQzUzYVdSblpYUXRkRzluWjJ4bExXSjFkSFJ2YmlCN1hHNGdJQ0FnYldGeVoybHVMV3hsWm5RNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGJXRnlaMmx1S1R0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGJXRnlaMmx1S1R0Y2JuMWNibHh1TG5kcFpHZGxkQzEwYjJkbmJHVXRZblYwZEc5dWN5QXVhblZ3ZVhSbGNpMWlkWFIwYjI0NlpHbHpZV0pzWldRZ2UxeHVJQ0FnSUc5d1lXTnBkSGs2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WkdsellXSnNaV1F0YjNCaFkybDBlU2s3WEc1OVhHNWNiaThxSUZKaFpHbHZJRUoxZEhSdmJuTWdVM1I1YkdsdVp5QXFMMXh1WEc0dWQybGtaMlYwTFhKaFpHbHZJSHRjYmlBZ0lDQjNhV1IwYURvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0ZDJsa2RHZ3BPMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVmVnh1WEc0dWQybGtaMlYwTFhKaFpHbHZMV0p2ZUNCN1hHNGdJQ0FnWkdsemNHeGhlVG9nWm14bGVEdGNiaUFnSUNCbWJHVjRMV1JwY21WamRHbHZiam9nWTI5c2RXMXVPMXh1SUNBZ0lHRnNhV2R1TFdsMFpXMXpPaUJ6ZEhKbGRHTm9PMXh1SUNBZ0lHSnZlQzF6YVhwcGJtYzZJR0p2Y21SbGNpMWliM2c3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGNtRmthVzh0YVhSbGJTMW9aV2xuYUhRdFlXUnFkWE4wYldWdWRDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGNtRmthVzh0WW05NElHeGhZbVZzSUh0Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjbUZrYVc4dGFYUmxiUzFvWldsbmFIUXBPMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWEpoWkdsdkxXbDBaVzB0YUdWcFoyaDBLVHRjYmlBZ0lDQm1iMjUwTFhOcGVtVTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRabTl1ZEMxemFYcGxLVHRjYm4xY2JseHVMbmRwWkdkbGRDMXlZV1JwYnkxaWIzZ2dhVzV3ZFhRZ2UxeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF5WVdScGJ5MXBkR1Z0TFdobGFXZG9kQ2s3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Y21Ga2FXOHRhWFJsYlMxb1pXbG5hSFFwTzF4dUlDQWdJRzFoY21kcGJqb2dNQ0JqWVd4aktDQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwSUNvZ01pQXBJREFnTVhCNE8xeHVJQ0FnSUdac2IyRjBPaUJzWldaME8xeHVmVnh1WEc0dktpQkRiMnh2Y2lCUWFXTnJaWElnVTNSNWJHbHVaeUFxTDF4dVhHNHVkMmxrWjJWMExXTnZiRzl5Y0dsamEyVnlJSHRjYmlBZ0lDQjNhV1IwYURvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0ZDJsa2RHZ3BPMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQnNhVzVsTFdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNibjFjYmx4dUxuZHBaR2RsZEMxamIyeHZjbkJwWTJ0bGNpQStJQzUzYVdSblpYUXRZMjlzYjNKd2FXTnJaWEl0YVc1d2RYUWdlMXh1SUNBZ0lHWnNaWGd0WjNKdmR6b2dNVHRjYmlBZ0lDQm1iR1Y0TFhOb2NtbHVhem9nTVR0Y2JpQWdJQ0J0YVc0dGQybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMWGRwWkhSb0xYUnBibmtwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV052Ykc5eWNHbGphMlZ5SUdsdWNIVjBXM1I1Y0dVOVhDSmpiMnh2Y2x3aVhTQjdYRzRnSUNBZ2QybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ2FHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1SUNBZ0lIQmhaR1JwYm1jNklEQWdNbkI0T3lBdktpQnRZV3RsSUhSb1pTQmpiMnh2Y2lCemNYVmhjbVVnWVdOMGRXRnNiSGtnYzNGMVlYSmxJRzl1SUVOb2NtOXRaU0J2YmlCUFV5QllJQ292WEc0Z0lDQWdZbUZqYTJkeWIzVnVaRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWlZV05yWjNKdmRXNWtMV052Ykc5eUtUdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWpiMnh2Y2lrN1hHNGdJQ0FnWW05eVpHVnlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSnZjbVJsY2kxM2FXUjBhQ2tnYzI5c2FXUWdkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxaWIzSmtaWEl0WTI5c2IzSXBPMXh1SUNBZ0lHSnZjbVJsY2kxc1pXWjBPaUJ1YjI1bE8xeHVJQ0FnSUdac1pYZ3RaM0p2ZHpvZ01EdGNiaUFnSUNCbWJHVjRMWE5vY21sdWF6b2dNRHRjYmlBZ0lDQmliM2d0YzJsNmFXNW5PaUJpYjNKa1pYSXRZbTk0TzF4dUlDQWdJR0ZzYVdkdUxYTmxiR1k2SUhOMGNtVjBZMmc3WEc0Z0lDQWdiM1YwYkdsdVpUb2dibTl1WlNBaGFXMXdiM0owWVc1ME8xeHVmVnh1WEc0dWQybGtaMlYwTFdOdmJHOXljR2xqYTJWeUxtTnZibU5wYzJVZ2FXNXdkWFJiZEhsd1pUMWNJbU52Ykc5eVhDSmRJSHRjYmlBZ0lDQmliM0prWlhJdGJHVm1kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFdOdmJHOXlLVHRjYm4xY2JseHVMbmRwWkdkbGRDMWpiMnh2Y25CcFkydGxjaUJwYm5CMWRGdDBlWEJsUFZ3aVkyOXNiM0pjSWwwNlptOWpkWE1zSUM1M2FXUm5aWFF0WTI5c2IzSndhV05yWlhJZ2FXNXdkWFJiZEhsd1pUMWNJblJsZUhSY0lsMDZabTlqZFhNZ2UxeHVJQ0FnSUdKdmNtUmxjaTFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxbWIyTjFjeTFpYjNKa1pYSXRZMjlzYjNJcE8xeHVmVnh1WEc0dWQybGtaMlYwTFdOdmJHOXljR2xqYTJWeUlHbHVjSFYwVzNSNWNHVTlYQ0owWlhoMFhDSmRJSHRjYmlBZ0lDQm1iR1Y0TFdkeWIzYzZJREU3WEc0Z0lDQWdiM1YwYkdsdVpUb2dibTl1WlNBaGFXMXdiM0owWVc1ME8xeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JpQWdJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV0poWTJ0bmNtOTFibVF0WTI5c2IzSXBPMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV052Ykc5eUtUdGNiaUFnSUNCaWIzSmtaWEk2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1d2RYUXRZbTl5WkdWeUxYZHBaSFJvS1NCemIyeHBaQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSnZjbVJsY2kxamIyeHZjaWs3WEc0Z0lDQWdabTl1ZEMxemFYcGxPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2s3WEc0Z0lDQWdjR0ZrWkdsdVp6b2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxd1lXUmthVzVuS1NCallXeGpLQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExYQmhaR1JwYm1jcElDb2dJRElnS1R0Y2JpQWdJQ0J0YVc0dGQybGtkR2c2SURBN0lDOHFJRlJvYVhNZ2JXRnJaWE1nYVhRZ2NHOXpjMmxpYkdVZ1ptOXlJSFJvWlNCbWJHVjRZbTk0SUhSdklITm9jbWx1YXlCMGFHbHpJR2x1Y0hWMElDb3ZYRzRnSUNBZ1pteGxlQzF6YUhKcGJtczZJREU3WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JuMWNibHh1TG5kcFpHZGxkQzFqYjJ4dmNuQnBZMnRsY2lCcGJuQjFkRnQwZVhCbFBWd2lkR1Y0ZEZ3aVhUcGthWE5oWW14bFpDQjdYRzRnSUNBZ2IzQmhZMmwwZVRvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxa2FYTmhZbXhsWkMxdmNHRmphWFI1S1R0Y2JuMWNibHh1THlvZ1JHRjBaU0JRYVdOclpYSWdVM1I1YkdsdVp5QXFMMXh1WEc0dWQybGtaMlYwTFdSaGRHVndhV05yWlhJZ2UxeHVJQ0FnSUhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUNrN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVJQ0FnSUd4cGJtVXRhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV1JoZEdWd2FXTnJaWElnYVc1d2RYUmJkSGx3WlQxY0ltUmhkR1ZjSWwwZ2UxeHVJQ0FnSUdac1pYZ3RaM0p2ZHpvZ01UdGNiaUFnSUNCbWJHVjRMWE5vY21sdWF6b2dNVHRjYmlBZ0lDQnRhVzR0ZDJsa2RHZzZJREE3SUM4cUlGUm9hWE1nYldGclpYTWdhWFFnY0c5emMybGliR1VnWm05eUlIUm9aU0JtYkdWNFltOTRJSFJ2SUhOb2NtbHVheUIwYUdseklHbHVjSFYwSUNvdlhHNGdJQ0FnYjNWMGJHbHVaVG9nYm05dVpTQWhhVzF3YjNKMFlXNTBPMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQmliM0prWlhJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0WW05eVpHVnlMWGRwWkhSb0tTQnpiMnhwWkNCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV0p2Y21SbGNpMWpiMnh2Y2lrN1hHNGdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWlZV05yWjNKdmRXNWtMV052Ykc5eUtUdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWpiMnh2Y2lrN1hHNGdJQ0FnWm05dWRDMXphWHBsT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdadmJuUXRjMmw2WlNrN1hHNGdJQ0FnY0dGa1pHbHVaem9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMXdZV1JrYVc1bktTQmpZV3hqS0NCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMWEJoWkdScGJtY3BJQ29nSURJZ0tUdGNiaUFnSUNCaWIzZ3RjMmw2YVc1bk9pQmliM0prWlhJdFltOTRPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXUmhkR1Z3YVdOclpYSWdhVzV3ZFhSYmRIbHdaVDFjSW1SaGRHVmNJbDA2Wm05amRYTWdlMXh1SUNBZ0lHSnZjbVJsY2kxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMW1iMk4xY3kxaWIzSmtaWEl0WTI5c2IzSXBPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXUmhkR1Z3YVdOclpYSWdhVzV3ZFhSYmRIbHdaVDFjSW1SaGRHVmNJbDA2YVc1MllXeHBaQ0I3WEc0Z0lDQWdZbTl5WkdWeUxXTnZiRzl5T2lCMllYSW9MUzFxY0MxM1lYSnVMV052Ykc5eU1TazdYRzU5WEc1Y2JpNTNhV1JuWlhRdFpHRjBaWEJwWTJ0bGNpQnBibkIxZEZ0MGVYQmxQVndpWkdGMFpWd2lYVHBrYVhOaFlteGxaQ0I3WEc0Z0lDQWdiM0JoWTJsMGVUb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWthWE5oWW14bFpDMXZjR0ZqYVhSNUtUdGNibjFjYmx4dUx5b2dVR3hoZVNCWGFXUm5aWFFnS2k5Y2JseHVMbmRwWkdkbGRDMXdiR0Y1SUh0Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGQybGtkR2d0YzJodmNuUXBPMXh1SUNBZ0lHUnBjM0JzWVhrNklHWnNaWGc3WEc0Z0lDQWdZV3hwWjI0dGFYUmxiWE02SUhOMGNtVjBZMmc3WEc1OVhHNWNiaTUzYVdSblpYUXRjR3hoZVNBdWFuVndlWFJsY2kxaWRYUjBiMjRnZTF4dUlDQWdJR1pzWlhndFozSnZkem9nTVR0Y2JpQWdJQ0JvWldsbmFIUTZJR0YxZEc4N1hHNTlYRzVjYmk1M2FXUm5aWFF0Y0d4aGVTQXVhblZ3ZVhSbGNpMWlkWFIwYjI0NlpHbHpZV0pzWldRZ2UxeHVJQ0FnSUc5d1lXTnBkSGs2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WkdsellXSnNaV1F0YjNCaFkybDBlU2s3WEc1OVhHNWNiaThxSUZSaFlpQlhhV1JuWlhRZ0tpOWNibHh1TG1wMWNIbDBaWEl0ZDJsa1oyVjBjeTUzYVdSblpYUXRkR0ZpSUh0Y2JpQWdJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeHVJQ0FnSUdac1pYZ3RaR2x5WldOMGFXOXVPaUJqYjJ4MWJXNDdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUI3WEc0Z0lDQWdMeW9nVG1WalpYTnpZWEo1SUhOdklIUm9ZWFFnWVNCMFlXSWdZMkZ1SUdKbElITm9hV1owWldRZ1pHOTNiaUIwYnlCdmRtVnliR0Y1SUhSb1pTQmliM0prWlhJZ2IyWWdkR2hsSUdKdmVDQmlaV3h2ZHk0Z0tpOWNiaUFnSUNCdmRtVnlabXh2ZHkxNE9pQjJhWE5wWW14bE8xeHVJQ0FnSUc5MlpYSm1iRzkzTFhrNklIWnBjMmxpYkdVN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpQStJQzV3TFZSaFlrSmhjaTFqYjI1MFpXNTBJSHRjYmlBZ0lDQXZLaUJOWVd0bElITjFjbVVnZEdoaGRDQjBhR1VnZEdGaUlHZHliM2R6SUdaeWIyMGdZbTkwZEc5dElIVndJQ292WEc0Z0lDQWdZV3hwWjI0dGFYUmxiWE02SUdac1pYZ3RaVzVrTzF4dUlDQWdJRzFwYmkxM2FXUjBhRG9nTUR0Y2JpQWdJQ0J0YVc0dGFHVnBaMmgwT2lBd08xeHVmVnh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVkMmxrWjJWMExYUmhZaTFqYjI1MFpXNTBjeUI3WEc0Z0lDQWdkMmxrZEdnNklERXdNQ1U3WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdJQ0J0WVhKbmFXNDZJREE3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaRG9nZG1GeUtDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1TazdYRzRnSUNBZ1kyOXNiM0k2SUhaaGNpZ3RMV3B3TFhWcExXWnZiblF0WTI5c2IzSXhLVHRjYmlBZ0lDQmliM0prWlhJNklIWmhjaWd0TFdwd0xXSnZjbVJsY2kxM2FXUjBhQ2tnYzI5c2FXUWdkbUZ5S0MwdGFuQXRZbTl5WkdWeUxXTnZiRzl5TVNrN1hHNGdJQ0FnY0dGa1pHbHVaem9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFqYjI1MFlXbHVaWEl0Y0dGa1pHbHVaeWs3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJRzkyWlhKbWJHOTNPaUJoZFhSdk8xeHVmVnh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdlMXh1SUNBZ0lHWnZiblE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Wm05dWRDMXphWHBsS1NCSVpXeDJaWFJwWTJFc0lFRnlhV0ZzTENCellXNXpMWE5sY21sbU8xeHVJQ0FnSUcxcGJpMW9aV2xuYUhRNklHTmhiR01vZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFvYjNKcGVtOXVkR0ZzTFhSaFlpMW9aV2xuYUhRcElDc2dkbUZ5S0MwdGFuQXRZbTl5WkdWeUxYZHBaSFJvS1NrN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpQXVjQzFVWVdKQ1lYSXRkR0ZpSUh0Y2JpQWdJQ0JtYkdWNE9pQXdJREVnZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFvYjNKcGVtOXVkR0ZzTFhSaFlpMTNhV1IwYUNrN1hHNGdJQ0FnYldsdUxYZHBaSFJvT2lBek5YQjRPMXh1SUNBZ0lHMXBiaTFvWldsbmFIUTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxb2IzSnBlbTl1ZEdGc0xYUmhZaTFvWldsbmFIUXBJQ3NnZG1GeUtDMHRhbkF0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ2JHbHVaUzFvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhRzl5YVhwdmJuUmhiQzEwWVdJdGFHVnBaMmgwS1R0Y2JpQWdJQ0J0WVhKbmFXNHRiR1ZtZERvZ1kyRnNZeWd0TVNBcUlIWmhjaWd0TFdwd0xXSnZjbVJsY2kxM2FXUjBhQ2twTzF4dUlDQWdJSEJoWkdScGJtYzZJREJ3ZUNBeE1IQjRPMXh1SUNBZ0lHSmhZMnRuY205MWJtUTZJSFpoY2lndExXcHdMV3hoZVc5MWRDMWpiMnh2Y2pJcE8xeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzExYVMxbWIyNTBMV052Ykc5eU1pazdYRzRnSUNBZ1ltOXlaR1Z5T2lCMllYSW9MUzFxY0MxaWIzSmtaWEl0ZDJsa2RHZ3BJSE52Ykdsa0lIWmhjaWd0TFdwd0xXSnZjbVJsY2kxamIyeHZjakVwTzF4dUlDQWdJR0p2Y21SbGNpMWliM1IwYjIwNklHNXZibVU3WEc0Z0lDQWdjRzl6YVhScGIyNDZJSEpsYkdGMGFYWmxPMXh1ZlZ4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWElnTG5BdFZHRmlRbUZ5TFhSaFlpNXdMVzF2WkMxamRYSnlaVzUwSUh0Y2JpQWdJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUM4cUlGZGxJSGRoYm5RZ2RHaGxJR0poWTJ0bmNtOTFibVFnZEc4Z2JXRjBZMmdnZEdobElIUmhZaUJqYjI1MFpXNTBJR0poWTJ0bmNtOTFibVFnS2k5Y2JpQWdJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzFxY0Mxc1lYbHZkWFF0WTI5c2IzSXhLVHRjYmlBZ0lDQnRhVzR0YUdWcFoyaDBPaUJqWVd4aktIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFHOXlhWHB2Ym5SaGJDMTBZV0l0YUdWcFoyaDBLU0FySURJZ0tpQjJZWElvTFMxcWNDMWliM0prWlhJdGQybGtkR2dwS1R0Y2JpQWdJQ0IwY21GdWMyWnZjbTA2SUhSeVlXNXpiR0YwWlZrb2RtRnlLQzB0YW5BdFltOXlaR1Z5TFhkcFpIUm9LU2s3WEc0Z0lDQWdiM1psY21ac2IzYzZJSFpwYzJsaWJHVTdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaUxuQXRiVzlrTFdOMWNuSmxiblE2WW1WbWIzSmxJSHRjYmlBZ0lDQndiM05wZEdsdmJqb2dZV0p6YjJ4MWRHVTdYRzRnSUNBZ2RHOXdPaUJqWVd4aktDMHhJQ29nZG1GeUtDMHRhbkF0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ2JHVm1kRG9nWTJGc1l5Z3RNU0FxSUhaaGNpZ3RMV3B3TFdKdmNtUmxjaTEzYVdSMGFDa3BPMXh1SUNBZ0lHTnZiblJsYm5RNklDY25PMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxb2IzSnBlbTl1ZEdGc0xYUmhZaTEwYjNBdFltOXlaR1Z5S1R0Y2JpQWdJQ0IzYVdSMGFEb2dZMkZzWXlneE1EQWxJQ3NnTWlBcUlIWmhjaWd0TFdwd0xXSnZjbVJsY2kxM2FXUjBhQ2twTzF4dUlDQWdJR0poWTJ0bmNtOTFibVE2SUhaaGNpZ3RMV3B3TFdKeVlXNWtMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaU9tWnBjbk4wTFdOb2FXeGtJSHRjYmlBZ0lDQnRZWEpuYVc0dGJHVm1kRG9nTUR0Y2JuMWNibHh1TG1wMWNIbDBaWEl0ZDJsa1oyVjBjeTUzYVdSblpYUXRkR0ZpSUQ0Z0xuQXRWR0ZpUW1GeUlDNXdMVlJoWWtKaGNpMTBZV0k2YUc5MlpYSTZibTkwS0M1d0xXMXZaQzFqZFhKeVpXNTBLU0I3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaRG9nZG1GeUtDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1TazdYRzRnSUNBZ1kyOXNiM0k2SUhaaGNpZ3RMV3B3TFhWcExXWnZiblF0WTI5c2IzSXhLVHRjYm4xY2JseHVMbXAxY0hsMFpYSXRkMmxrWjJWMGN5NTNhV1JuWlhRdGRHRmlJRDRnTG5BdFZHRmlRbUZ5SUM1d0xXMXZaQzFqYkc5ellXSnNaU0ErSUM1d0xWUmhZa0poY2kxMFlXSkRiRzl6WlVsamIyNGdlMXh1SUNBZ0lHMWhjbWRwYmkxc1pXWjBPaUEwY0hnN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpQXVjQzF0YjJRdFkyeHZjMkZpYkdVZ1BpQXVjQzFVWVdKQ1lYSXRkR0ZpUTJ4dmMyVkpZMjl1T21KbFptOXlaU0I3WEc0Z0lDQWdabTl1ZEMxbVlXMXBiSGs2SUVadmJuUkJkMlZ6YjIxbE8xeHVJQ0FnSUdOdmJuUmxiblE2SUNkY1hHWXdNR1FuT3lBdktpQmpiRzl6WlNBcUwxeHVmVnh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdMbkF0VkdGaVFtRnlMWFJoWWtsamIyNHNYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpMbmRwWkdkbGRDMTBZV0lnUGlBdWNDMVVZV0pDWVhJZ0xuQXRWR0ZpUW1GeUxYUmhZa3hoWW1Wc0xGeHVMbXAxY0hsMFpYSXRkMmxrWjJWMGN5NTNhV1JuWlhRdGRHRmlJRDRnTG5BdFZHRmlRbUZ5SUM1d0xWUmhZa0poY2kxMFlXSkRiRzl6WlVsamIyNGdlMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2h2Y21sNmIyNTBZV3d0ZEdGaUxXaGxhV2RvZENrN1hHNTlYRzVjYmk4cUlFRmpZMjl5WkdsdmJpQlhhV1JuWlhRZ0tpOWNibHh1TG5BdFEyOXNiR0Z3YzJVZ2UxeHVJQ0FnSUdScGMzQnNZWGs2SUdac1pYZzdYRzRnSUNBZ1pteGxlQzFrYVhKbFkzUnBiMjQ2SUdOdmJIVnRianRjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nYzNSeVpYUmphRHRjYm4xY2JseHVMbkF0UTI5c2JHRndjMlV0YUdWaFpHVnlJSHRjYmlBZ0lDQndZV1JrYVc1bk9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwTzF4dUlDQWdJR04xY25OdmNqb2djRzlwYm5SbGNqdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZFdrdFptOXVkQzFqYjJ4dmNqSXBPMXh1SUNBZ0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklIWmhjaWd0TFdwd0xXeGhlVzkxZEMxamIyeHZjaklwTzF4dUlDQWdJR0p2Y21SbGNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMV0p2Y21SbGNpMWpiMnh2Y2pFcE8xeHVJQ0FnSUhCaFpHUnBibWM2SUdOaGJHTW9kbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWpiMjUwWVdsdVpYSXRjR0ZrWkdsdVp5a2dLaUF5SUM4Z015a2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWpiMjUwWVdsdVpYSXRjR0ZrWkdsdVp5azdYRzRnSUNBZ1ptOXVkQzEzWldsbmFIUTZJR0p2YkdRN1hHNTlYRzVjYmk1d0xVTnZiR3hoY0hObExXaGxZV1JsY2pwb2IzWmxjaUI3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRiR0Y1YjNWMExXTnZiRzl5TVNrN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNibjFjYmx4dUxuQXRRMjlzYkdGd2MyVXRiM0JsYmlBK0lDNXdMVU52Ykd4aGNITmxMV2hsWVdSbGNpQjdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdFkyOXNiM0l3S1R0Y2JpQWdJQ0JqZFhKemIzSTZJR1JsWm1GMWJIUTdYRzRnSUNBZ1ltOXlaR1Z5TFdKdmRIUnZiVG9nYm05dVpUdGNibjFjYmx4dUxuQXRRMjlzYkdGd2MyVWdMbkF0UTI5c2JHRndjMlV0YUdWaFpHVnlPanBpWldadmNtVWdlMXh1SUNBZ0lHTnZiblJsYm5RNklDZGNYR1l3WkdGY1hEQXdRVEFuT3lBZ0x5b2dZMkZ5WlhRdGNtbG5hSFFzSUc1dmJpMWljbVZoYTJsdVp5QnpjR0ZqWlNBcUwxeHVJQ0FnSUdScGMzQnNZWGs2SUdsdWJHbHVaUzFpYkc5amF6dGNiaUFnSUNCbWIyNTBPaUJ1YjNKdFlXd2dibTl5YldGc0lHNXZjbTFoYkNBeE5IQjRMekVnUm05dWRFRjNaWE52YldVN1hHNGdJQ0FnWm05dWRDMXphWHBsT2lCcGJtaGxjbWwwTzF4dUlDQWdJSFJsZUhRdGNtVnVaR1Z5YVc1bk9pQmhkWFJ2TzF4dUlDQWdJQzEzWldKcmFYUXRabTl1ZEMxemJXOXZkR2hwYm1jNklHRnVkR2xoYkdsaGMyVmtPMXh1SUNBZ0lDMXRiM290YjNONExXWnZiblF0YzIxdmIzUm9hVzVuT2lCbmNtRjVjMk5oYkdVN1hHNTlYRzVjYmk1d0xVTnZiR3hoY0hObExXOXdaVzRnUGlBdWNDMURiMnhzWVhCelpTMW9aV0ZrWlhJNk9tSmxabTl5WlNCN1hHNGdJQ0FnWTI5dWRHVnVkRG9nSjF4Y1pqQmtOMXhjTURCQk1DYzdJQzhxSUdOaGNtVjBMV1J2ZDI0c0lHNXZiaTFpY21WaGEybHVaeUJ6Y0dGalpTQXFMMXh1ZlZ4dVhHNHVjQzFEYjJ4c1lYQnpaUzFqYjI1MFpXNTBjeUI3WEc0Z0lDQWdjR0ZrWkdsdVp6b2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWpiMjUwWVdsdVpYSXRjR0ZrWkdsdVp5azdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdFkyOXNiM0l4S1R0Y2JpQWdJQ0JpYjNKa1pYSXRiR1ZtZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxaWIzSmtaWEl0ZDJsa2RHZ3BJSE52Ykdsa0lIWmhjaWd0TFdwd0xXSnZjbVJsY2kxamIyeHZjakVwTzF4dUlDQWdJR0p2Y21SbGNpMXlhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxaWIzSmtaWEl0ZDJsa2RHZ3BJSE52Ykdsa0lIWmhjaWd0TFdwd0xXSnZjbVJsY2kxamIyeHZjakVwTzF4dUlDQWdJR0p2Y21SbGNpMWliM1IwYjIwNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdFltOXlaR1Z5TFhkcFpIUm9LU0J6YjJ4cFpDQjJZWElvTFMxcWNDMWliM0prWlhJdFkyOXNiM0l4S1R0Y2JpQWdJQ0J2ZG1WeVpteHZkem9nWVhWMGJ6dGNibjFjYmx4dUxuQXRRV05qYjNKa2FXOXVJSHRjYmlBZ0lDQmthWE53YkdGNU9pQm1iR1Y0TzF4dUlDQWdJR1pzWlhndFpHbHlaV04wYVc5dU9pQmpiMngxYlc0N1hHNGdJQ0FnWVd4cFoyNHRhWFJsYlhNNklITjBjbVYwWTJnN1hHNTlYRzVjYmk1d0xVRmpZMjl5WkdsdmJpQXVjQzFEYjJ4c1lYQnpaU0I3WEc0Z0lDQWdiV0Z5WjJsdUxXSnZkSFJ2YlRvZ01EdGNibjFjYmx4dUxuQXRRV05qYjNKa2FXOXVJQzV3TFVOdmJHeGhjSE5sSUNzZ0xuQXRRMjlzYkdGd2MyVWdlMXh1SUNBZ0lHMWhjbWRwYmkxMGIzQTZJRFJ3ZUR0Y2JuMWNibHh1WEc1Y2JpOHFJRWhVVFV3Z2QybGtaMlYwSUNvdlhHNWNiaTUzYVdSblpYUXRhSFJ0YkN3Z0xuZHBaR2RsZEMxb2RHMXNiV0YwYUNCN1hHNGdJQ0FnWm05dWRDMXphWHBsT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdadmJuUXRjMmw2WlNrN1hHNTlYRzVjYmk1M2FXUm5aWFF0YUhSdGJDQStJQzUzYVdSblpYUXRhSFJ0YkMxamIyNTBaVzUwTENBdWQybGtaMlYwTFdoMGJXeHRZWFJvSUQ0Z0xuZHBaR2RsZEMxb2RHMXNMV052Ym5SbGJuUWdlMXh1SUNBZ0lDOHFJRVpwYkd3Z2IzVjBJSFJvWlNCaGNtVmhJR2x1SUhSb1pTQklWRTFNSUhkcFpHZGxkQ0FxTDF4dUlDQWdJR0ZzYVdkdUxYTmxiR1k2SUhOMGNtVjBZMmc3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJR1pzWlhndGMyaHlhVzVyT2lBeE8xeHVJQ0FnSUM4cUlFMWhhMlZ6SUhOMWNtVWdkR2hsSUdKaGMyVnNhVzVsSUdseklITjBhV3hzSUdGc2FXZHVaV1FnZDJsMGFDQnZkR2hsY2lCbGJHVnRaVzUwY3lBcUwxeHVJQ0FnSUd4cGJtVXRhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dUlDQWdJQzhxSUUxaGEyVWdhWFFnY0c5emMybGliR1VnZEc4Z2FHRjJaU0JoWW5OdmJIVjBaV3g1TFhCdmMybDBhVzl1WldRZ1pXeGxiV1Z1ZEhNZ2FXNGdkR2hsSUdoMGJXd2dLaTljYmlBZ0lDQndiM05wZEdsdmJqb2djbVZzWVhScGRtVTdYRzU5WEc0aUxDSXZLaUJVYUdseklHWnBiR1VnYUdGeklHTnZaR1VnWkdWeWFYWmxaQ0JtY205dElGQm9iM053YUc5eVNsTWdRMU5USUdacGJHVnpMQ0JoY3lCdWIzUmxaQ0JpWld4dmR5NGdWR2hsSUd4cFkyVnVjMlVnWm05eUlIUm9hWE1nVUdodmMzQm9iM0pLVXlCamIyUmxJR2x6T2x4dVhHNURiM0I1Y21sbmFIUWdLR01wSURJd01UUXRNakF4Tnl3Z1VHaHZjM0JvYjNKS1V5QkRiMjUwY21saWRYUnZjbk5jYmtGc2JDQnlhV2RvZEhNZ2NtVnpaWEoyWldRdVhHNWNibEpsWkdsemRISnBZblYwYVc5dUlHRnVaQ0IxYzJVZ2FXNGdjMjkxY21ObElHRnVaQ0JpYVc1aGNua2dabTl5YlhNc0lIZHBkR2dnYjNJZ2QybDBhRzkxZEZ4dWJXOWthV1pwWTJGMGFXOXVMQ0JoY21VZ2NHVnliV2wwZEdWa0lIQnliM1pwWkdWa0lIUm9ZWFFnZEdobElHWnZiR3h2ZDJsdVp5QmpiMjVrYVhScGIyNXpJR0Z5WlNCdFpYUTZYRzVjYmlvZ1VtVmthWE4wY21saWRYUnBiMjV6SUc5bUlITnZkWEpqWlNCamIyUmxJRzExYzNRZ2NtVjBZV2x1SUhSb1pTQmhZbTkyWlNCamIzQjVjbWxuYUhRZ2JtOTBhV05sTENCMGFHbHpYRzRnSUd4cGMzUWdiMllnWTI5dVpHbDBhVzl1Y3lCaGJtUWdkR2hsSUdadmJHeHZkMmx1WnlCa2FYTmpiR0ZwYldWeUxseHVYRzRxSUZKbFpHbHpkSEpwWW5WMGFXOXVjeUJwYmlCaWFXNWhjbmtnWm05eWJTQnRkWE4wSUhKbGNISnZaSFZqWlNCMGFHVWdZV0p2ZG1VZ1kyOXdlWEpwWjJoMElHNXZkR2xqWlN4Y2JpQWdkR2hwY3lCc2FYTjBJRzltSUdOdmJtUnBkR2x2Ym5NZ1lXNWtJSFJvWlNCbWIyeHNiM2RwYm1jZ1pHbHpZMnhoYVcxbGNpQnBiaUIwYUdVZ1pHOWpkVzFsYm5SaGRHbHZibHh1SUNCaGJtUXZiM0lnYjNSb1pYSWdiV0YwWlhKcFlXeHpJSEJ5YjNacFpHVmtJSGRwZEdnZ2RHaGxJR1JwYzNSeWFXSjFkR2x2Ymk1Y2JseHVLaUJPWldsMGFHVnlJSFJvWlNCdVlXMWxJRzltSUhSb1pTQmpiM0I1Y21sbmFIUWdhRzlzWkdWeUlHNXZjaUIwYUdVZ2JtRnRaWE1nYjJZZ2FYUnpYRzRnSUdOdmJuUnlhV0oxZEc5eWN5QnRZWGtnWW1VZ2RYTmxaQ0IwYnlCbGJtUnZjbk5sSUc5eUlIQnliMjF2ZEdVZ2NISnZaSFZqZEhNZ1pHVnlhWFpsWkNCbWNtOXRYRzRnSUhSb2FYTWdjMjltZEhkaGNtVWdkMmwwYUc5MWRDQnpjR1ZqYVdacFl5QndjbWx2Y2lCM2NtbDBkR1Z1SUhCbGNtMXBjM05wYjI0dVhHNWNibFJJU1ZNZ1UwOUdWRmRCVWtVZ1NWTWdVRkpQVmtsRVJVUWdRbGtnVkVoRklFTlBVRmxTU1VkSVZDQklUMHhFUlZKVElFRk9SQ0JEVDA1VVVrbENWVlJQVWxNZ1hDSkJVeUJKVTF3aVhHNUJUa1FnUVU1WklFVllVRkpGVTFNZ1QxSWdTVTFRVEVsRlJDQlhRVkpTUVU1VVNVVlRMQ0JKVGtOTVZVUkpUa2NzSUVKVlZDQk9UMVFnVEVsTlNWUkZSQ0JVVHl3Z1ZFaEZYRzVKVFZCTVNVVkVJRmRCVWxKQlRsUkpSVk1nVDBZZ1RVVlNRMGhCVGxSQlFrbE1TVlJaSUVGT1JDQkdTVlJPUlZOVElFWlBVaUJCSUZCQlVsUkpRMVZNUVZJZ1VGVlNVRTlUUlNCQlVrVmNia1JKVTBOTVFVbE5SVVF1SUVsT0lFNVBJRVZXUlU1VUlGTklRVXhNSUZSSVJTQkRUMUJaVWtsSFNGUWdTRTlNUkVWU0lFOVNJRU5QVGxSU1NVSlZWRTlTVXlCQ1JTQk1TVUZDVEVWY2JrWlBVaUJCVGxrZ1JFbFNSVU5VTENCSlRrUkpVa1ZEVkN3Z1NVNURTVVJGVGxSQlRDd2dVMUJGUTBsQlRDd2dSVmhGVFZCTVFWSlpMQ0JQVWlCRFQwNVRSVkZWUlU1VVNVRk1YRzVFUVUxQlIwVlRJQ2hKVGtOTVZVUkpUa2NzSUVKVlZDQk9UMVFnVEVsTlNWUkZSQ0JVVHl3Z1VGSlBRMVZTUlUxRlRsUWdUMFlnVTFWQ1UxUkpWRlZVUlNCSFQwOUVVeUJQVWx4dVUwVlNWa2xEUlZNN0lFeFBVMU1nVDBZZ1ZWTkZMQ0JFUVZSQkxDQlBVaUJRVWs5R1NWUlRPeUJQVWlCQ1ZWTkpUa1ZUVXlCSlRsUkZVbEpWVUZSSlQwNHBJRWhQVjBWV1JWSmNia05CVlZORlJDQkJUa1FnVDA0Z1FVNVpJRlJJUlU5U1dTQlBSaUJNU1VGQ1NVeEpWRmtzSUZkSVJWUklSVklnU1U0Z1EwOU9WRkpCUTFRc0lGTlVVa2xEVkNCTVNVRkNTVXhKVkZrc1hHNVBVaUJVVDFKVUlDaEpUa05NVlVSSlRrY2dUa1ZIVEVsSFJVNURSU0JQVWlCUFZFaEZVbGRKVTBVcElFRlNTVk5KVGtjZ1NVNGdRVTVaSUZkQldTQlBWVlFnVDBZZ1ZFaEZJRlZUUlZ4dVQwWWdWRWhKVXlCVFQwWlVWMEZTUlN3Z1JWWkZUaUJKUmlCQlJGWkpVMFZFSUU5R0lGUklSU0JRVDFOVFNVSkpURWxVV1NCUFJpQlRWVU5JSUVSQlRVRkhSUzVjYmx4dUtpOWNibHh1THlwY2JpQXFJRlJvWlNCbWIyeHNiM2RwYm1jZ2MyVmpkR2x2YmlCcGN5QmtaWEpwZG1Wa0lHWnliMjBnYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDNCb2IzTndhRzl5YW5NdmNHaHZjM0JvYjNJdllteHZZaTh5TTJJNVpEQTNOV1ZpWXpWaU56TmhZakUwT0dJMlpXSm1Zekl3WVdZNU4yWTROVGN4TkdNMEwzQmhZMnRoWjJWekwzZHBaR2RsZEhNdmMzUjViR1V2ZEdGaVltRnlMbU56Y3lCY2JpQXFJRmRsSjNabElITmpiM0JsWkNCMGFHVWdjblZzWlhNZ2MyOGdkR2hoZENCMGFHVjVJR0Z5WlNCamIyNXphWE4wWlc1MElIZHBkR2dnWlhoaFkzUnNlU0J2ZFhJZ1kyOWtaUzVjYmlBcUwxeHVYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpMbmRwWkdkbGRDMTBZV0lnUGlBdWNDMVVZV0pDWVhJZ2UxeHVJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeHVJQ0F0ZDJWaWEybDBMWFZ6WlhJdGMyVnNaV04wT2lCdWIyNWxPMXh1SUNBdGJXOTZMWFZ6WlhJdGMyVnNaV04wT2lCdWIyNWxPMXh1SUNBdGJYTXRkWE5sY2kxelpXeGxZM1E2SUc1dmJtVTdYRzRnSUhWelpYSXRjMlZzWldOME9pQnViMjVsTzF4dWZWeHVYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNsdGtZWFJoTFc5eWFXVnVkR0YwYVc5dVBTZG9iM0pwZW05dWRHRnNKMTBnZTF4dUlDQm1iR1Y0TFdScGNtVmpkR2x2YmpvZ2NtOTNPMXh1ZlZ4dVhHNWNiaTVxZFhCNWRHVnlMWGRwWkdkbGRITXVkMmxrWjJWMExYUmhZaUErSUM1d0xWUmhZa0poY2x0a1lYUmhMVzl5YVdWdWRHRjBhVzl1UFNkMlpYSjBhV05oYkNkZElIdGNiaUFnWm14bGVDMWthWEpsWTNScGIyNDZJR052YkhWdGJqdGNibjFjYmx4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWElnUGlBdWNDMVVZV0pDWVhJdFkyOXVkR1Z1ZENCN1hHNGdJRzFoY21kcGJqb2dNRHRjYmlBZ2NHRmtaR2x1WnpvZ01EdGNiaUFnWkdsemNHeGhlVG9nWm14bGVEdGNiaUFnWm14bGVEb2dNU0F4SUdGMWRHODdYRzRnSUd4cGMzUXRjM1I1YkdVdGRIbHdaVG9nYm05dVpUdGNibjFjYmx4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWEpiWkdGMFlTMXZjbWxsYm5SaGRHbHZiajBuYUc5eWFYcHZiblJoYkNkZElENGdMbkF0VkdGaVFtRnlMV052Ym5SbGJuUWdlMXh1SUNCbWJHVjRMV1JwY21WamRHbHZiam9nY205M08xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjbHRrWVhSaExXOXlhV1Z1ZEdGMGFXOXVQU2QyWlhKMGFXTmhiQ2RkSUQ0Z0xuQXRWR0ZpUW1GeUxXTnZiblJsYm5RZ2UxeHVJQ0JtYkdWNExXUnBjbVZqZEdsdmJqb2dZMjlzZFcxdU8xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaUlIdGNiaUFnWkdsemNHeGhlVG9nWm14bGVEdGNiaUFnWm14bGVDMWthWEpsWTNScGIyNDZJSEp2ZHp0Y2JpQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdiM1psY21ac2IzYzZJR2hwWkdSbGJqdGNibjFjYmx4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWElnTG5BdFZHRmlRbUZ5TFhSaFlrbGpiMjRzWEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdMbkF0VkdGaVFtRnlMWFJoWWtOc2IzTmxTV052YmlCN1hHNGdJR1pzWlhnNklEQWdNQ0JoZFhSdk8xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaVRHRmlaV3dnZTF4dUlDQm1iR1Y0T2lBeElERWdZWFYwYnp0Y2JpQWdiM1psY21ac2IzYzZJR2hwWkdSbGJqdGNiaUFnZDJocGRHVXRjM0JoWTJVNklHNXZkM0poY0R0Y2JuMWNibHh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdMbkF0VkdGaVFtRnlMWFJoWWk1d0xXMXZaQzFvYVdSa1pXNGdlMXh1SUNCa2FYTndiR0Y1T2lCdWIyNWxJQ0ZwYlhCdmNuUmhiblE3WEc1OVhHNWNibHh1TG1wMWNIbDBaWEl0ZDJsa1oyVjBjeTUzYVdSblpYUXRkR0ZpSUQ0Z0xuQXRWR0ZpUW1GeUxuQXRiVzlrTFdSeVlXZG5hVzVuSUM1d0xWUmhZa0poY2kxMFlXSWdlMXh1SUNCd2IzTnBkR2x2YmpvZ2NtVnNZWFJwZG1VN1hHNTlYRzVjYmx4dUxtcDFjSGwwWlhJdGQybGtaMlYwY3k1M2FXUm5aWFF0ZEdGaUlENGdMbkF0VkdGaVFtRnlMbkF0Ylc5a0xXUnlZV2RuYVc1blcyUmhkR0V0YjNKcFpXNTBZWFJwYjI0OUoyaHZjbWw2YjI1MFlXd25YU0F1Y0MxVVlXSkNZWEl0ZEdGaUlIdGNiaUFnYkdWbWREb2dNRHRjYmlBZ2RISmhibk5wZEdsdmJqb2diR1ZtZENBeE5UQnRjeUJsWVhObE8xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaTV3TFcxdlpDMWtjbUZuWjJsdVoxdGtZWFJoTFc5eWFXVnVkR0YwYVc5dVBTZDJaWEowYVdOaGJDZGRJQzV3TFZSaFlrSmhjaTEwWVdJZ2UxeHVJQ0IwYjNBNklEQTdYRzRnSUhSeVlXNXphWFJwYjI0NklIUnZjQ0F4TlRCdGN5QmxZWE5sTzF4dWZWeHVYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpNXdMVzF2WkMxa2NtRm5aMmx1WnlBdWNDMVVZV0pDWVhJdGRHRmlMbkF0Ylc5a0xXUnlZV2RuYVc1bklIdGNiaUFnZEhKaGJuTnBkR2x2YmpvZ2JtOXVaVHRjYm4xY2JseHVMeW9nUlc1a0lIUmhZbUpoY2k1amMzTWdLaTljYmlKZGZRPT0gKi8=",
+ "headers": [
+ [
+ "content-type",
+ "text/css"
+ ]
+ ],
+ "ok": true,
+ "status": 200,
+ "status_text": ""
+ }
+ }
+ },
+ "colab_type": "code",
+ "executionInfo": {
+ "elapsed": 12358,
+ "status": "ok",
+ "timestamp": 1574701946936,
+ "user": {
+ "displayName": "Michele Pasin",
+ "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mBu8LVjIGgontF2Wax51BoL5KFx8esezX3bUmaa0g=s64",
+ "userId": "10309320684375994511"
+ },
+ "user_tz": 0
+ },
+ "id": "3BFKuzYwiLiy",
+ "outputId": "a31e7830-6f15-485b-cb84-9d2386ca43ee"
+ },
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "225073d7b7cb409b82a7cd252c729cc9",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ " 0%| | 0/10 [00:00, ?it/s]"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "{'results': [{'input': {'affiliation': 'University of Nebraska–Lincoln Lincoln Nebraska United States'}, 'matches': [{'affiliation_part': 'University of Nebraska–Lincoln Lincoln Nebraska United States', 'geo': {'cities': [{'geonames_id': 5072006, 'name': 'Lincoln'}], 'countries': [{'code': 'US', 'geonames_id': 6252001, 'name': 'United States'}], 'states': [{'code': 'US-NE', 'geonames_id': 5073708, 'name': 'Nebraska'}]}, 'institutes': [{'institute': {'city': 'Lincoln', 'country': 'United States', 'id': 'grid.24434.35', 'name': 'University of Nebraska–Lincoln', 'state': 'Nebraska'}, 'metadata': {'requires_manual_review': False}}]}]}]}\n",
+ "{'results': [{'input': {'affiliation': 'Tarbiat Modares University Tehran Iran'}, 'matches': [{'affiliation_part': 'Tarbiat Modares University Tehran Iran', 'geo': {'cities': [{'geonames_id': 112931, 'name': 'Tehran'}], 'countries': [{'code': 'IR', 'geonames_id': 130758, 'name': 'Iran'}], 'states': [{'code': None, 'geonames_id': 110791, 'name': 'Tehran'}]}, 'institutes': [{'institute': {'city': 'Tehran', 'country': 'Iran', 'id': 'grid.412266.5', 'name': 'Tarbiat Modares University', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}]}\n",
+ "{'results': [{'input': {'affiliation': 'Harvard University Cambridge Massachusetts United States'}, 'matches': [{'affiliation_part': 'Harvard University Cambridge Massachusetts United States', 'geo': {'cities': [{'geonames_id': 4931972, 'name': 'Cambridge'}], 'countries': [{'code': 'US', 'geonames_id': 6252001, 'name': 'United States'}], 'states': [{'code': 'US-MA', 'geonames_id': 6254926, 'name': 'Massachusetts'}]}, 'institutes': [{'institute': {'city': 'Cambridge', 'country': 'United States', 'id': 'grid.38142.3c', 'name': 'Harvard University', 'state': 'Massachusetts'}, 'metadata': {'requires_manual_review': False}}]}]}]}\n",
+ "{'results': [{'input': {'affiliation': 'China Academy of Chinese Medical Sciences Beijing China'}, 'matches': [{'affiliation_part': 'China Academy of Chinese Medical Sciences Beijing China', 'geo': {'cities': [{'geonames_id': 1816670, 'name': 'Beijing'}], 'countries': [{'code': 'CN', 'geonames_id': 1814991, 'name': 'China'}], 'states': [{'code': None, 'geonames_id': 2038349, 'name': 'Beijing'}]}, 'institutes': [{'institute': {'city': 'Beijing', 'country': 'China', 'id': 'grid.410318.f', 'name': 'China Academy of Chinese Medical Sciences', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}]}\n",
+ "{'results': [{'input': {'affiliation': 'Liaoning University Shenyang China'}, 'matches': [{'affiliation_part': 'Liaoning University Shenyang China', 'geo': {'cities': [{'geonames_id': 2034937, 'name': 'Shenyang'}], 'countries': [{'code': 'CN', 'geonames_id': 1814991, 'name': 'China'}], 'states': [{'code': None, 'geonames_id': 2036115, 'name': 'Liaoning'}]}, 'institutes': [{'institute': {'city': 'Shenyang', 'country': 'China', 'id': 'grid.411356.4', 'name': 'Liaoning University', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}]}\n",
+ "{'results': [{'input': {'affiliation': 'Liaoning Normal University Dalian China'}, 'matches': [{'affiliation_part': 'Liaoning Normal University Dalian China', 'geo': {'cities': [{'geonames_id': 1814087, 'name': 'Dalian'}], 'countries': [{'code': 'CN', 'geonames_id': 1814991, 'name': 'China'}], 'states': [{'code': None, 'geonames_id': 2036115, 'name': 'Liaoning'}]}, 'institutes': [{'institute': {'city': 'Dalian', 'country': 'China', 'id': 'grid.440818.1', 'name': 'Liaoning Normal University', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}]}\n",
+ "{'results': [{'input': {'affiliation': 'P.G. Department of Zoology and Research Centre, Shri Shiv Chhatrapati College of Arts, Commerce and Science, Junnar 410502, Pune, India. '}, 'matches': [{'affiliation_part': 'P.G. Department of Zoology and Research Centre, Shri Shiv Chhatrapati College of Arts, Commerce and Science, Junnar 410502, Pune, India', 'geo': {'cities': [{'geonames_id': 1259229, 'name': 'Pune'}], 'countries': [{'code': 'IN', 'geonames_id': 1269750, 'name': 'India'}], 'states': [{'code': None, 'geonames_id': 1264418, 'name': 'Maharashtra'}]}, 'institutes': []}]}]}\n",
+ "{'results': [{'input': {'affiliation': 'Sungkyunkwan University Seoul South Korea'}, 'matches': [{'affiliation_part': 'Sungkyunkwan University Seoul South Korea', 'geo': {'cities': [{'geonames_id': 1835848, 'name': 'Seoul'}], 'countries': [{'code': 'KR', 'geonames_id': 1835841, 'name': 'South Korea'}], 'states': [{'code': None, 'geonames_id': 1835847, 'name': 'Seoul'}]}, 'institutes': [{'institute': {'city': 'Seoul', 'country': 'South Korea', 'id': 'grid.264381.a', 'name': 'Sungkyunkwan University', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}]}\n",
+ "{'results': [{'input': {'affiliation': 'Centre for Materials for Electronics Technology Pune India'}, 'matches': [{'affiliation_part': 'Centre for Materials for Electronics Technology Pune India', 'geo': {'cities': [{'geonames_id': 1259229, 'name': 'Pune'}], 'countries': [{'code': 'IN', 'geonames_id': 1269750, 'name': 'India'}], 'states': [{'code': None, 'geonames_id': 1264418, 'name': 'Maharashtra'}]}, 'institutes': [{'institute': {'city': 'Pune', 'country': 'India', 'id': 'grid.494569.3', 'name': 'Centre for Materials for Electronics Technology', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}]}\n",
+ "{'results': [{'input': {'affiliation': 'Institut Necker-Enfants Malades (INEM), INSERM U1151-CNRS UMR8253, Université de Paris, Faculté de Médecine, 156 rue de Vaugirard, 75730 Paris Cedex 15, France '}, 'matches': [{'affiliation_part': 'Institut Necker-Enfants Malades (INEM), INSERM U1151-CNRS UMR8253, Université de Paris, Faculté de Médecine, 156 rue de Vaugirard, 75730 Paris Cedex 15, France', 'geo': {'cities': [{'geonames_id': 2988507, 'name': 'Paris'}], 'countries': [{'code': 'FR', 'geonames_id': 3017382, 'name': 'France'}], 'states': [{'code': None, 'geonames_id': 3012874, 'name': 'Ile-de-France'}]}, 'institutes': [{'institute': {'city': 'Paris', 'country': 'France', 'id': 'grid.508487.6', 'name': 'Université Paris Cité', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}]}\n"
+ ]
+ }
+ ],
+ "source": [
+ "# implicit results \n",
+ "for d in pbar(affiliations):\n",
+ " merged = f\"{d[0]} {d[1]} {d[2]} {d[3]}\"\n",
+ " res = dsl.query(f\"\"\"extract_affiliations(affiliation=\"{merged}\")\"\"\")\n",
+ " time.sleep(0.5)\n",
+ " print(res.json)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "colab_type": "text",
+ "id": "VARKBkHejaLN"
+ },
+ "source": [
+ "> NOTE: the above commands also support **bulk querying** e.g. to save up API queries - check out the [docs](https://docs.dimensions.ai/dsl/functions.html#function-extract-affiliations) for more info."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "colab_type": "text",
+ "id": "YBSdHL4Tywj4",
+ "toc-hr-collapsed": false
+ },
+ "source": [
+ "## 2. Searching the API for organizations \n",
+ "\n",
+ "This can be done using full text search and/or fielded search. \n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "colab_type": "text",
+ "id": "OAwuhlQmd2FK"
+ },
+ "source": [
+ "### Full-text search "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 315
+ },
+ "colab_type": "code",
+ "executionInfo": {
+ "elapsed": 1315,
+ "status": "ok",
+ "timestamp": 1574702298940,
+ "user": {
+ "displayName": "Michele Pasin",
+ "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mBu8LVjIGgontF2Wax51BoL5KFx8esezX3bUmaa0g=s64",
+ "userId": "10309320684375994511"
+ },
+ "user_tz": 0
+ },
+ "id": "qUz8_6M0d2Fa",
+ "outputId": "c8f58fc6-0e68-4a79-ef20-9dafbd0164f6"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Returned Organizations: 10 (total = 352)\n",
+ "\u001b[2mTime: 5.56s\u001b[0m\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
id
\n",
+ "
name
\n",
+ "
country_code
\n",
+ "
country_name
\n",
+ "
types
\n",
+ "
city_name
\n",
+ "
state_name
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
0
\n",
+ "
grid.798367.4
\n",
+ "
Bank of New York
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Company]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
+ "
grid.798343.2
\n",
+ "
Research Foundation of University of New York
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
grid.797561.b
\n",
+ "
New York Hospital-Cornell Medical Center
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Healthcare]
\n",
+ "
New York
\n",
+ "
New York
\n",
+ "
\n",
+ "
\n",
+ "
3
\n",
+ "
grid.796770.8
\n",
+ "
Research Foundation of City University of New ...
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Other]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
4
\n",
+ "
grid.796173.d
\n",
+ "
Bank of New York Mellon Trust Co NA
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Company]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
5
\n",
+ "
grid.795276.8
\n",
+ "
New York University Medical Center
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
New York
\n",
+ "
New York
\n",
+ "
\n",
+ "
\n",
+ "
6
\n",
+ "
grid.794869.d
\n",
+ "
International General Electric Company of New ...
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Other]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
7
\n",
+ "
grid.782261.8
\n",
+ "
New York Digital Investment Group LLC
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Other]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
8
\n",
+ "
grid.778414.9
\n",
+ "
China CITIC Bank International Ltd New York Br...
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Government]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
9
\n",
+ "
grid.777726.4
\n",
+ "
Morgan Guaranty Trust Company of New York
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Company]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " id name \\\n",
+ "0 grid.798367.4 Bank of New York \n",
+ "1 grid.798343.2 Research Foundation of University of New York \n",
+ "2 grid.797561.b New York Hospital-Cornell Medical Center \n",
+ "3 grid.796770.8 Research Foundation of City University of New ... \n",
+ "4 grid.796173.d Bank of New York Mellon Trust Co NA \n",
+ "5 grid.795276.8 New York University Medical Center \n",
+ "6 grid.794869.d International General Electric Company of New ... \n",
+ "7 grid.782261.8 New York Digital Investment Group LLC \n",
+ "8 grid.778414.9 China CITIC Bank International Ltd New York Br... \n",
+ "9 grid.777726.4 Morgan Guaranty Trust Company of New York \n",
+ "\n",
+ " country_code country_name types city_name state_name \n",
+ "0 US United States [Company] NaN NaN \n",
+ "1 US United States [Education] NaN NaN \n",
+ "2 US United States [Healthcare] New York New York \n",
+ "3 US United States [Other] NaN NaN \n",
+ "4 US United States [Company] NaN NaN \n",
+ "5 US United States [Education] New York New York \n",
+ "6 US United States [Other] NaN NaN \n",
+ "7 US United States [Other] NaN NaN \n",
+ "8 US United States [Government] NaN NaN \n",
+ "9 US United States [Company] NaN NaN "
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "%%dsldf \n",
+ "search organizations \n",
+ " for \"new york\" \n",
+ "return organizations limit 10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 252
+ },
+ "colab_type": "code",
+ "executionInfo": {
+ "elapsed": 1809,
+ "status": "ok",
+ "timestamp": 1574702323641,
+ "user": {
+ "displayName": "Michele Pasin",
+ "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mBu8LVjIGgontF2Wax51BoL5KFx8esezX3bUmaa0g=s64",
+ "userId": "10309320684375994511"
+ },
+ "user_tz": 0
+ },
+ "id": "P3UWAR0QkkKg",
+ "outputId": "9e1be9ab-e3cf-4aca-f621-27f8b93a8a91"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Returned Organizations: 9 (total = 9)\n",
+ "\u001b[2mTime: 0.62s\u001b[0m\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
id
\n",
+ "
name
\n",
+ "
country_code
\n",
+ "
country_name
\n",
+ "
types
\n",
+ "
acronym
\n",
+ "
city_name
\n",
+ "
latitude
\n",
+ "
linkout
\n",
+ "
longitude
\n",
+ "
state_name
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
0
\n",
+ "
grid.757191.c
\n",
+ "
New York Community Bank
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Company]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
+ "
grid.507861.d
\n",
+ "
Mohawk Valley Community College
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
MVCC
\n",
+ "
Utica
\n",
+ "
43.076850
\n",
+ "
[https://www.mvcc.edu/]
\n",
+ "
-75.220120
\n",
+ "
New York
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
grid.490742.c
\n",
+ "
Health Foundation for Western & Central New York
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Nonprofit]
\n",
+ "
NaN
\n",
+ "
Buffalo
\n",
+ "
42.874810
\n",
+ "
[https://hfwcny.org/]
\n",
+ "
-78.849690
\n",
+ "
New York
\n",
+ "
\n",
+ "
\n",
+ "
3
\n",
+ "
grid.480917.3
\n",
+ "
New York Community Trust
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Nonprofit]
\n",
+ "
NaN
\n",
+ "
New York
\n",
+ "
40.758870
\n",
+ "
[http://www.nycommunitytrust.org/]
\n",
+ "
-73.968185
\n",
+ "
New York
\n",
+ "
\n",
+ "
\n",
+ "
4
\n",
+ "
grid.478715.8
\n",
+ "
Central New York Community Foundation
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Nonprofit]
\n",
+ "
CNYCF
\n",
+ "
Syracuse
\n",
+ "
43.056038
\n",
+ "
[https://www.cnycf.org/]
\n",
+ "
-76.148210
\n",
+ "
New York
\n",
+ "
\n",
+ "
\n",
+ "
5
\n",
+ "
grid.475804.a
\n",
+ "
Community Service Society of New York
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Other]
\n",
+ "
CSS
\n",
+ "
New York
\n",
+ "
40.749622
\n",
+ "
[http://www.cssny.org/]
\n",
+ "
-73.974620
\n",
+ "
New York
\n",
+ "
\n",
+ "
\n",
+ "
6
\n",
+ "
grid.475783.a
\n",
+ "
Long Term Care Community Coalition
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Other]
\n",
+ "
LTCCC
\n",
+ "
New York
\n",
+ "
40.751163
\n",
+ "
[http://www.ltccc.org/]
\n",
+ "
-73.992470
\n",
+ "
New York
\n",
+ "
\n",
+ "
\n",
+ "
7
\n",
+ "
grid.429257.f
\n",
+ "
Korean Community Services of Metropolitan New ...
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Nonprofit]
\n",
+ "
KCS
\n",
+ "
New York
\n",
+ "
40.770954
\n",
+ "
[https://www.kcsny.org/]
\n",
+ "
-73.786670
\n",
+ "
New York
\n",
+ "
\n",
+ "
\n",
+ "
8
\n",
+ "
funder.196228
\n",
+ "
Community Health Foundation of Western and Cen...
\n",
+ "
NaN
\n",
+ "
United States
\n",
+ "
NaN
\n",
+ "
Community Health Foundation of Western and Centra
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " id name \\\n",
+ "0 grid.757191.c New York Community Bank \n",
+ "1 grid.507861.d Mohawk Valley Community College \n",
+ "2 grid.490742.c Health Foundation for Western & Central New York \n",
+ "3 grid.480917.3 New York Community Trust \n",
+ "4 grid.478715.8 Central New York Community Foundation \n",
+ "5 grid.475804.a Community Service Society of New York \n",
+ "6 grid.475783.a Long Term Care Community Coalition \n",
+ "7 grid.429257.f Korean Community Services of Metropolitan New ... \n",
+ "8 funder.196228 Community Health Foundation of Western and Cen... \n",
+ "\n",
+ " country_code country_name types \\\n",
+ "0 US United States [Company] \n",
+ "1 US United States [Education] \n",
+ "2 US United States [Nonprofit] \n",
+ "3 US United States [Nonprofit] \n",
+ "4 US United States [Nonprofit] \n",
+ "5 US United States [Other] \n",
+ "6 US United States [Other] \n",
+ "7 US United States [Nonprofit] \n",
+ "8 NaN United States NaN \n",
+ "\n",
+ " acronym city_name latitude \\\n",
+ "0 NaN NaN NaN \n",
+ "1 MVCC Utica 43.076850 \n",
+ "2 NaN Buffalo 42.874810 \n",
+ "3 NaN New York 40.758870 \n",
+ "4 CNYCF Syracuse 43.056038 \n",
+ "5 CSS New York 40.749622 \n",
+ "6 LTCCC New York 40.751163 \n",
+ "7 KCS New York 40.770954 \n",
+ "8 Community Health Foundation of Western and Centra NaN NaN \n",
+ "\n",
+ " linkout longitude state_name \n",
+ "0 NaN NaN NaN \n",
+ "1 [https://www.mvcc.edu/] -75.220120 New York \n",
+ "2 [https://hfwcny.org/] -78.849690 New York \n",
+ "3 [http://www.nycommunitytrust.org/] -73.968185 New York \n",
+ "4 [https://www.cnycf.org/] -76.148210 New York \n",
+ "5 [http://www.cssny.org/] -73.974620 New York \n",
+ "6 [http://www.ltccc.org/] -73.992470 New York \n",
+ "7 [https://www.kcsny.org/] -73.786670 New York \n",
+ "8 NaN NaN NaN "
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "%%dsldf \n",
+ "search organizations \n",
+ " for \"new york AND community\" \n",
+ "return organizations limit 10"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "colab_type": "text",
+ "id": "Baz2j_cmd2Fd"
+ },
+ "source": [
+ "### Fielded search \n",
+ "\n",
+ "We can easily look up an organization using its ID, e.g."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 151
+ },
+ "colab_type": "code",
+ "executionInfo": {
+ "elapsed": 1050,
+ "status": "ok",
+ "timestamp": 1574704472898,
+ "user": {
+ "displayName": "Michele Pasin",
+ "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mBu8LVjIGgontF2Wax51BoL5KFx8esezX3bUmaa0g=s64",
+ "userId": "10309320684375994511"
+ },
+ "user_tz": 0
+ },
+ "id": "jNBg_c3ed2Fe",
+ "outputId": "5cbfb9d9-dcdc-4a34-aa1c-d99987b91cb9"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Returned Errors: 1\n",
+ "\u001b[2mTime: 5.84s\u001b[0m\n",
+ "Query Error\n",
+ "Semantic errors found:\n",
+ "\tField / Fieldset 'all' is not present in Source 'organizations'. Available fields: acronym,city_name,cnrs_ids,country_code,country_name,dimensions_url,established,external_ids_fundref,hesa_ids,id,isni_ids,latitude,linkout,longitude,name,nuts_level1_code,nuts_level1_name,nuts_level2_code,nuts_level2_name,nuts_level3_code,nuts_level3_name,organization_child_ids,organization_parent_ids,organization_related_ids,orgref_ids,redirect,ror_ids,score,state_name,status,types,ucas_ids,ukprn_ids,wikidata_ids,wikipedia_url and available fieldsets: basics,nuts\n"
+ ]
+ }
+ ],
+ "source": [
+ "%%dsldf \n",
+ "search organizations \n",
+ " where id=\"grid.468887.d\" \n",
+ "return organizations[all] "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 315
+ },
+ "colab_type": "code",
+ "executionInfo": {
+ "elapsed": 1020,
+ "status": "ok",
+ "timestamp": 1574702525174,
+ "user": {
+ "displayName": "Michele Pasin",
+ "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mBu8LVjIGgontF2Wax51BoL5KFx8esezX3bUmaa0g=s64",
+ "userId": "10309320684375994511"
+ },
+ "user_tz": 0
+ },
+ "id": "GKh7VSOPk1Ye",
+ "outputId": "47a339ed-1f50-423c-8c04-e0ca3ad9347e"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Returned Organizations: 10 (total = 93)\n",
+ "\u001b[2mTime: 0.64s\u001b[0m\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
id
\n",
+ "
name
\n",
+ "
country_code
\n",
+ "
country_name
\n",
+ "
types
\n",
+ "
city_name
\n",
+ "
state_name
\n",
+ "
latitude
\n",
+ "
linkout
\n",
+ "
longitude
\n",
+ "
acronym
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
0
\n",
+ "
grid.798343.2
\n",
+ "
Research Foundation of University of New York
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
+ "
grid.795276.8
\n",
+ "
New York University Medical Center
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
New York
\n",
+ "
New York
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
grid.512545.2
\n",
+ "
State University of New York, Korea
\n",
+ "
KR
\n",
+ "
South Korea
\n",
+ "
[Education]
\n",
+ "
Incheon
\n",
+ "
NaN
\n",
+ "
37.376694
\n",
+ "
[http://www.sunykorea.ac.kr/]
\n",
+ "
126.667170
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
3
\n",
+ "
grid.511090.c
\n",
+ "
Craig Newmark Graduate School of Journalism at...
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
New York
\n",
+ "
New York
\n",
+ "
40.755230
\n",
+ "
[https://www.journalism.cuny.edu/]
\n",
+ "
-73.988830
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
4
\n",
+ "
grid.510787.c
\n",
+ "
Center for Migration Studies of New York
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
New York
\n",
+ "
New York
\n",
+ "
40.761470
\n",
+ "
[https://cmsny.org/]
\n",
+ "
-73.965450
\n",
+ "
CMS
\n",
+ "
\n",
+ "
\n",
+ "
5
\n",
+ "
grid.507867.b
\n",
+ "
New York State College of Ceramics
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
Alfred
\n",
+ "
New York
\n",
+ "
42.253372
\n",
+ "
[https://www.alfred.edu/academics/colleges-sch...
\n",
+ "
-77.787575
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
6
\n",
+ "
grid.507863.f
\n",
+ "
New York State School of Industrial and Labor ...
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
Ithaca
\n",
+ "
New York
\n",
+ "
42.439213
\n",
+ "
[https://www.ilr.cornell.edu/]
\n",
+ "
-76.493380
\n",
+ "
ILR
\n",
+ "
\n",
+ "
\n",
+ "
7
\n",
+ "
grid.507861.d
\n",
+ "
Mohawk Valley Community College
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
Utica
\n",
+ "
New York
\n",
+ "
43.076850
\n",
+ "
[https://www.mvcc.edu/]
\n",
+ "
-75.220120
\n",
+ "
MVCC
\n",
+ "
\n",
+ "
\n",
+ "
8
\n",
+ "
grid.507860.c
\n",
+ "
New York State College of Agriculture and Life...
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
Ithaca
\n",
+ "
New York
\n",
+ "
42.448290
\n",
+ "
[https://cals.cornell.edu/#]
\n",
+ "
-76.479390
\n",
+ "
CALS
\n",
+ "
\n",
+ "
\n",
+ "
9
\n",
+ "
grid.507859.6
\n",
+ "
New York State College of Veterinary Medicine ...
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
Ithaca
\n",
+ "
New York
\n",
+ "
42.447483
\n",
+ "
[https://www.vet.cornell.edu/]
\n",
+ "
-76.464905
\n",
+ "
NaN
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " id name \\\n",
+ "0 grid.798343.2 Research Foundation of University of New York \n",
+ "1 grid.795276.8 New York University Medical Center \n",
+ "2 grid.512545.2 State University of New York, Korea \n",
+ "3 grid.511090.c Craig Newmark Graduate School of Journalism at... \n",
+ "4 grid.510787.c Center for Migration Studies of New York \n",
+ "5 grid.507867.b New York State College of Ceramics \n",
+ "6 grid.507863.f New York State School of Industrial and Labor ... \n",
+ "7 grid.507861.d Mohawk Valley Community College \n",
+ "8 grid.507860.c New York State College of Agriculture and Life... \n",
+ "9 grid.507859.6 New York State College of Veterinary Medicine ... \n",
+ "\n",
+ " country_code country_name types city_name state_name latitude \\\n",
+ "0 US United States [Education] NaN NaN NaN \n",
+ "1 US United States [Education] New York New York NaN \n",
+ "2 KR South Korea [Education] Incheon NaN 37.376694 \n",
+ "3 US United States [Education] New York New York 40.755230 \n",
+ "4 US United States [Education] New York New York 40.761470 \n",
+ "5 US United States [Education] Alfred New York 42.253372 \n",
+ "6 US United States [Education] Ithaca New York 42.439213 \n",
+ "7 US United States [Education] Utica New York 43.076850 \n",
+ "8 US United States [Education] Ithaca New York 42.448290 \n",
+ "9 US United States [Education] Ithaca New York 42.447483 \n",
+ "\n",
+ " linkout longitude acronym \n",
+ "0 NaN NaN NaN \n",
+ "1 NaN NaN NaN \n",
+ "2 [http://www.sunykorea.ac.kr/] 126.667170 NaN \n",
+ "3 [https://www.journalism.cuny.edu/] -73.988830 NaN \n",
+ "4 [https://cmsny.org/] -73.965450 CMS \n",
+ "5 [https://www.alfred.edu/academics/colleges-sch... -77.787575 NaN \n",
+ "6 [https://www.ilr.cornell.edu/] -76.493380 ILR \n",
+ "7 [https://www.mvcc.edu/] -75.220120 MVCC \n",
+ "8 [https://cals.cornell.edu/#] -76.479390 CALS \n",
+ "9 [https://www.vet.cornell.edu/] -76.464905 NaN "
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "%%dsldf \n",
+ "search organizations \n",
+ " for \"new york\" \n",
+ " where types in [\"Education\"]\n",
+ "return organizations limit 10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 273
+ },
+ "colab_type": "code",
+ "executionInfo": {
+ "elapsed": 779,
+ "status": "ok",
+ "timestamp": 1574702569063,
+ "user": {
+ "displayName": "Michele Pasin",
+ "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mBu8LVjIGgontF2Wax51BoL5KFx8esezX3bUmaa0g=s64",
+ "userId": "10309320684375994511"
+ },
+ "user_tz": 0
+ },
+ "id": "W6_BukMKleWs",
+ "outputId": "caedaf98-ca87-4504-a505-e4371f623eb2"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Returned Organizations: 9 (total = 9)\n",
+ "\u001b[2mTime: 5.97s\u001b[0m\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
id
\n",
+ "
name
\n",
+ "
city_name
\n",
+ "
country_code
\n",
+ "
country_name
\n",
+ "
latitude
\n",
+ "
linkout
\n",
+ "
longitude
\n",
+ "
types
\n",
+ "
acronym
\n",
+ "
state_name
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
0
\n",
+ "
grid.512545.2
\n",
+ "
State University of New York, Korea
\n",
+ "
Incheon
\n",
+ "
KR
\n",
+ "
South Korea
\n",
+ "
37.376694
\n",
+ "
[http://www.sunykorea.ac.kr/]
\n",
+ "
126.667170
\n",
+ "
[Education]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
+ "
grid.479986.d
\n",
+ "
New York University Paris
\n",
+ "
Paris
\n",
+ "
FR
\n",
+ "
France
\n",
+ "
48.869614
\n",
+ "
[http://www.nyu.edu/paris.html]
\n",
+ "
2.346863
\n",
+ "
[Education]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
grid.473731.5
\n",
+ "
New York University Florence
\n",
+ "
Florence
\n",
+ "
IT
\n",
+ "
Italy
\n",
+ "
43.795910
\n",
+ "
[http://www.nyu.edu/florence.html]
\n",
+ "
11.265850
\n",
+ "
[Education]
\n",
+ "
NYU
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
3
\n",
+ "
grid.473728.d
\n",
+ "
New York Institute of Technology
\n",
+ "
Vancouver
\n",
+ "
CA
\n",
+ "
Canada
\n",
+ "
49.284374
\n",
+ "
[http://nyit.edu/vancouver]
\n",
+ "
-123.116480
\n",
+ "
[Education]
\n",
+ "
NYIT
\n",
+ "
British Columbia
\n",
+ "
\n",
+ "
\n",
+ "
4
\n",
+ "
grid.449989.1
\n",
+ "
University of New York in Prague
\n",
+ "
Prague
\n",
+ "
CZ
\n",
+ "
Czechia
\n",
+ "
50.074043
\n",
+ "
[https://www.unyp.cz/]
\n",
+ "
14.433994
\n",
+ "
[Education]
\n",
+ "
UNYP
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
5
\n",
+ "
grid.449457.f
\n",
+ "
New York University Shanghai
\n",
+ "
Shanghai
\n",
+ "
CN
\n",
+ "
China
\n",
+ "
31.225506
\n",
+ "
[https://shanghai.nyu.edu/]
\n",
+ "
121.533510
\n",
+ "
[Education]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
6
\n",
+ "
grid.444973.9
\n",
+ "
University of New York Tirana
\n",
+ "
Tirana
\n",
+ "
AL
\n",
+ "
Albania
\n",
+ "
41.311060
\n",
+ "
[http://unyt.edu.al/]
\n",
+ "
19.801466
\n",
+ "
[Education]
\n",
+ "
UNYT
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
7
\n",
+ "
grid.440573.1
\n",
+ "
New York University Abu Dhabi
\n",
+ "
Abu Dhabi
\n",
+ "
AE
\n",
+ "
United Arab Emirates
\n",
+ "
24.485000
\n",
+ "
[https://nyuad.nyu.edu/]
\n",
+ "
54.353000
\n",
+ "
[Education]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
8
\n",
+ "
grid.410685.e
\n",
+ "
SUNY Korea
\n",
+ "
Seoul
\n",
+ "
KR
\n",
+ "
South Korea
\n",
+ "
37.377018
\n",
+ "
[http://www.sunykorea.ac.kr/]
\n",
+ "
126.666770
\n",
+ "
[Education]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " id name city_name country_code \\\n",
+ "0 grid.512545.2 State University of New York, Korea Incheon KR \n",
+ "1 grid.479986.d New York University Paris Paris FR \n",
+ "2 grid.473731.5 New York University Florence Florence IT \n",
+ "3 grid.473728.d New York Institute of Technology Vancouver CA \n",
+ "4 grid.449989.1 University of New York in Prague Prague CZ \n",
+ "5 grid.449457.f New York University Shanghai Shanghai CN \n",
+ "6 grid.444973.9 University of New York Tirana Tirana AL \n",
+ "7 grid.440573.1 New York University Abu Dhabi Abu Dhabi AE \n",
+ "8 grid.410685.e SUNY Korea Seoul KR \n",
+ "\n",
+ " country_name latitude linkout \\\n",
+ "0 South Korea 37.376694 [http://www.sunykorea.ac.kr/] \n",
+ "1 France 48.869614 [http://www.nyu.edu/paris.html] \n",
+ "2 Italy 43.795910 [http://www.nyu.edu/florence.html] \n",
+ "3 Canada 49.284374 [http://nyit.edu/vancouver] \n",
+ "4 Czechia 50.074043 [https://www.unyp.cz/] \n",
+ "5 China 31.225506 [https://shanghai.nyu.edu/] \n",
+ "6 Albania 41.311060 [http://unyt.edu.al/] \n",
+ "7 United Arab Emirates 24.485000 [https://nyuad.nyu.edu/] \n",
+ "8 South Korea 37.377018 [http://www.sunykorea.ac.kr/] \n",
+ "\n",
+ " longitude types acronym state_name \n",
+ "0 126.667170 [Education] NaN NaN \n",
+ "1 2.346863 [Education] NaN NaN \n",
+ "2 11.265850 [Education] NYU NaN \n",
+ "3 -123.116480 [Education] NYIT British Columbia \n",
+ "4 14.433994 [Education] UNYP NaN \n",
+ "5 121.533510 [Education] NaN NaN \n",
+ "6 19.801466 [Education] UNYT NaN \n",
+ "7 54.353000 [Education] NaN NaN \n",
+ "8 126.666770 [Education] NaN NaN "
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "%%dsldf \n",
+ "search organizations \n",
+ " for \"new york\" \n",
+ " where types in [\"Education\"]\n",
+ " and country_name != \"United States\"\n",
+ "return organizations limit 10"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "colab_type": "text",
+ "id": "l4V7z5TCd2Fo"
+ },
+ "source": [
+ "### Returning facets \n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 315
+ },
+ "colab_type": "code",
+ "executionInfo": {
+ "elapsed": 1147,
+ "status": "ok",
+ "timestamp": 1574702640852,
+ "user": {
+ "displayName": "Michele Pasin",
+ "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mBu8LVjIGgontF2Wax51BoL5KFx8esezX3bUmaa0g=s64",
+ "userId": "10309320684375994511"
+ },
+ "user_tz": 0
+ },
+ "id": "1fqSIrMkd2Fp",
+ "outputId": "3add0d42-15b5-4471-c75d-2e5ba6e0d86a"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Returned Country_name: 11\n",
+ "\u001b[2mTime: 0.50s\u001b[0m\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "
"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "px.bar(df, x=\"filter_by\", y=\"results\", \n",
+ " title=\"Fields distribution for GRID data\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "colab_type": "text",
+ "id": "VsEa7X3EsPYH"
+ },
+ "source": [
+ "## Where to find out more\n",
+ "\n",
+ "Please have a look at the [official documentation](https://docs.dimensions.ai/dsl/data-sources.html) for more information on the organizations data source."
+ ]
+ }
+ ],
+ "metadata": {
+ "colab": {
+ "collapsed_sections": [],
+ "name": "Searching GRID organizations using the Dimensions API.ipynb",
+ "provenance": [
+ {
+ "file_id": "1khRLDKEZ-U_6ARyCJCOocRdH7U-nZKUT",
+ "timestamp": 1574700652421
+ }
+ ]
+ },
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "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.12.8"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/docs/_sources/cookbooks/8-organizations/2-Industry-Collaboration.ipynb.txt b/docs/_sources/cookbooks/8-organizations/2-Industry-Collaboration.ipynb.txt
index 310851ec..55967f0e 100644
--- a/docs/_sources/cookbooks/8-organizations/2-Industry-Collaboration.ipynb.txt
+++ b/docs/_sources/cookbooks/8-organizations/2-Industry-Collaboration.ipynb.txt
@@ -11,7 +11,7 @@
"source": [
"# Identifying the Industry Collaborators of an Academic Institution\n",
"\n",
- "Dimensions uses [GRID](https://grid.ac/) identifiers for institutions, hence you can take advantage of the GRID metadata with Dimensions queries. \n",
+ "Dimensions has an enormous amount of data about organizations and you can query this data with the Dimensions Analytics API.\n",
"\n",
"In this tutorial we identify all organizations that have an `industry` type. \n",
"\n",
@@ -29,7 +29,7 @@
"text": [
"==\n",
"CHANGELOG\n",
- "This notebook was last run on Jan 25, 2022\n",
+ "This notebook was last run on Sep 10, 2025\n",
"==\n"
]
}
@@ -64,19 +64,9 @@
"text/html": [
" \n",
+ " \n",
" "
]
},
@@ -96,8 +86,8 @@
"text": [
"==\n",
"Logging in..\n",
- "\u001b[2mDimcli - Dimensions API Client (v0.9.6)\u001b[0m\n",
- "\u001b[2mConnected to: - DSL v2.0\u001b[0m\n",
+ "\u001b[2mDimcli - Dimensions API Client (v1.4)\u001b[0m\n",
+ "\u001b[2mConnected to: - DSL v2.12\u001b[0m\n",
"\u001b[2mMethod: dsl.ini file\u001b[0m\n"
]
}
@@ -150,8 +140,8 @@
"id": "L6uIjSVnGRQV"
},
"source": [
- "For the purpose of this exercise, we will use [University of Trento, Italy (grid.11696.39)](https://grid.ac/institutes/grid.11696.39) as a starting point. \n",
- "You can pick any other GRID organization of course. Just use a [DSL query](https://digital-science.github.io/dimensions-api-lab/cookbooks/8-organizations/1-GRID-preview.html) or the [GRID website](https://grid.ac/institutes) to discover the ID of an organization that interests you. "
+ "For the purpose of this exercise, we will use University of Trento, Italy (organization ID `grid.11696.39`) as a starting point. \n",
+ "You can pick any other organization of course. Just use a [DSL query](https://digital-science.github.io/dimensions-api-lab/cookbooks/8-organizations/1-GRID-preview.html) to discover the ID of an organization that interests you. "
]
},
{
@@ -182,7 +172,7 @@
{
"data": {
"text/html": [
- "GRID: grid.11696.39 - University of Trento ⧉"
+ "Organization: grid.11696.39 - University of Trento ⧉"
],
"text/plain": [
""
@@ -206,7 +196,7 @@
],
"source": [
"#@markdown The main organization we are interested in:\n",
- "GRIDID = \"grid.11696.39\" #@param {type:\"string\"}\n",
+ "ORGID = \"grid.11696.39\" #@param {type:\"string\"}\n",
" \n",
"#@markdown The start/end year of publications used to extract industry collaborations:\n",
"YEAR_START = 2000 #@param {type: \"slider\", min: 1950, max: 2020}\n",
@@ -219,11 +209,11 @@
"# gen link to Dimensions\n",
"#\n",
"try:\n",
- " gridname = dsl.query(f\"\"\"search organizations where id=\"{GRIDID}\" return organizations[name]\"\"\", verbose=False).organizations[0]['name']\n",
+ " orgname = dsl.query(f\"\"\"search organizations where id=\"{ORGID}\" return organizations[name]\"\"\", verbose=False).organizations[0]['name']\n",
"except:\n",
- " gridname = \"\"\n",
- "from IPython.core.display import display, HTML\n",
- "display(HTML('GRID: {} - {} ⧉'.format(dimensions_url(GRIDID), GRIDID, gridname)))\n",
+ " orgname = \"\"\n",
+ "from IPython.display import display, HTML\n",
+ "display(HTML('Organization: {} - {} ⧉'.format(dimensions_url(ORGID), ORGID, orgname)))\n",
"display(HTML('Time period: {} to {}
"
+ " }) }; "
]
},
"metadata": {},
@@ -9070,7 +6383,7 @@
" x=\"aff_name\", \n",
" height=900, \n",
" color=\"aff_country\",\n",
- " title=f\"Top Countries and Industry collaborators for {gridname}-{GRIDID}\",\n",
+ " title=f\"Top Countries and Industry collaborators for {orgname}-{ORGID}\",\n",
" color_discrete_sequence=px.colors.diverging.Spectral)"
]
}
@@ -9099,7 +6412,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.9.9"
+ "version": "3.12.8"
},
"nteract": {
"version": "0.15.0"
diff --git a/docs/_sources/cookbooks/8-organizations/3-Organizations-Collaboration-Network.ipynb.txt b/docs/_sources/cookbooks/8-organizations/3-Organizations-Collaboration-Network.ipynb.txt
index 9dc9cbcf..ce8f4f27 100644
--- a/docs/_sources/cookbooks/8-organizations/3-Organizations-Collaboration-Network.ipynb.txt
+++ b/docs/_sources/cookbooks/8-organizations/3-Organizations-Collaboration-Network.ipynb.txt
@@ -28,7 +28,7 @@
"text": [
"==\n",
"CHANGELOG\n",
- "This notebook was last run on Aug 22, 2023\n",
+ "This notebook was last run on Sep 10, 2025\n",
"==\n"
]
}
@@ -58,33 +58,14 @@
"Collapsed": "false"
},
"outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "\n",
- "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m A new release of pip is available: \u001b[0m\u001b[31;49m23.1.2\u001b[0m\u001b[39;49m -> \u001b[0m\u001b[32;49m23.2.1\u001b[0m\n",
- "\u001b[1m[\u001b[0m\u001b[34;49mnotice\u001b[0m\u001b[1;39;49m]\u001b[0m\u001b[39;49m To update, run: \u001b[0m\u001b[32;49mpip install --upgrade pip\u001b[0m\n"
- ]
- },
{
"data": {
"text/html": [
" \n",
+ " \n",
" "
]
},
@@ -104,8 +85,8 @@
"text": [
"==\n",
"Logging in..\n",
- "\u001b[2mDimcli - Dimensions API Client (v1.1)\u001b[0m\n",
- "\u001b[2mConnected to: - DSL v2.7\u001b[0m\n",
+ "\u001b[2mDimcli - Dimensions API Client (v1.4)\u001b[0m\n",
+ "\u001b[2mConnected to: - DSL v2.12\u001b[0m\n",
"\u001b[2mMethod: dsl.ini file\u001b[0m\n"
]
}
@@ -159,9 +140,9 @@
"id": "L6uIjSVnGRQV"
},
"source": [
- "For the purpose of this exercise, we will use [grid.412125.1](https://grid.ac/institutes/grid.412125.1) (King Abdulaziz University, Saudi Arabia). \n",
+ "For the purpose of this exercise, we will use King Abdulaziz University, Saudi Arabia (grid.412125.1). \n",
"\n",
- "> You can try using a different GRID ID to see how results change, e.g. by [browsing for another GRID organization](https://grid.ac/institutes).\n"
+ "> You can try using a different organization ID to see how results change."
]
},
{
@@ -174,7 +155,7 @@
{
"data": {
"text/html": [
- "GRID: grid.412125.1 - King Abdulaziz University ⧉"
+ "Organization: grid.412125.1 - King Abdulaziz University ⧉"
],
"text/plain": [
""
@@ -209,7 +190,7 @@
}
],
"source": [
- "GRIDID = \"grid.412125.1\" #@param {type:\"string\"}\n",
+ "ORGID = \"grid.412125.1\" #@param {type:\"string\"}\n",
" \n",
"#@markdown The start/end year of publications used to extract patents\n",
"YEAR_START = 2000 #@param {type: \"slider\", min: 1950, max: 2020}\n",
@@ -226,11 +207,11 @@
"# gen link to Dimensions\n",
"#\n",
"try:\n",
- " gridname = dsl.query(f\"\"\"search organizations where id=\"{GRIDID}\" return organizations[name]\"\"\", verbose=False).organizations[0]['name']\n",
+ " orgname = dsl.query(f\"\"\"search organizations where id=\"{ORGID}\" return organizations[name]\"\"\", verbose=False).organizations[0]['name']\n",
"except:\n",
- " gridname = \"\"\n",
+ " orgname = \"\"\n",
"from IPython.display import display, HTML\n",
- "display(HTML('GRID: {} - {} ⧉'.format(dimensions_url(GRIDID), GRIDID, gridname)))\n",
+ "display(HTML('Organization: {} - {} ⧉'.format(dimensions_url(ORGID), ORGID, orgname)))\n",
"display(HTML('Time period: {} to {}'.format(YEAR_START, YEAR_END)))\n",
"display(HTML('Topic: \"{}\"
'.format(TOPIC)))\n"
]
@@ -292,10 +273,10 @@
"Note: \n",
"\n",
"* **Extra columns**. The resulting dataframe contains two extra columns: a) `id_from`, which is the 'seed' institution we start from; b) `level`, an optional parameter representing the network depth of the query (we'll see later how it is used with recursive querying).\n",
- "* **Self-collaboration**. The query returns 11 records - that's because the first one is normally the seed GRID (due to internal collaborations) which we will omit from the results.\n",
+ "* **Self-collaboration**. The query returns 11 records - that's because the first one is normally the seed organization (due to internal collaborations) which we will omit from the results.\n",
"* **Custom changes**. Lastly, it's important to remember that this step can be easily customised by changing the `query_template` sttructure. For example, we could focus on specific research areas (using FOR codes), or set a threshold based on citation counts. The possibilities are endless! \n",
"\n",
- "For example, let's try it out with our GRID ID:"
+ "For example, let's try it out with our organization ID:"
]
},
{
@@ -341,6 +322,7 @@
"
acronym
\n",
"
city_name
\n",
"
count
\n",
+ "
country_code
\n",
"
country_name
\n",
"
latitude
\n",
"
linkout
\n",
@@ -358,7 +340,8 @@
"
King Abdulaziz University
\n",
"
KAU
\n",
"
Jeddah
\n",
- "
1444
\n",
+ "
1435
\n",
+ "
SA
\n",
"
Saudi Arabia
\n",
"
21.493889
\n",
"
[http://www.kau.edu.sa/home_english.aspx]
\n",
@@ -375,6 +358,7 @@
"
NU
\n",
"
Boston
\n",
"
106
\n",
+ "
US
\n",
"
United States
\n",
"
42.339830
\n",
"
[http://www.northeastern.edu/]
\n",
@@ -391,6 +375,7 @@
"
NaN
\n",
"
Cambridge
\n",
"
98
\n",
+ "
US
\n",
"
United States
\n",
"
42.377052
\n",
"
[http://www.harvard.edu/]
\n",
@@ -407,6 +392,7 @@
"
MIT
\n",
"
Cambridge
\n",
"
73
\n",
+ "
US
\n",
"
United States
\n",
"
42.359820
\n",
"
[http://web.mit.edu/]
\n",
@@ -423,6 +409,7 @@
"
NU
\n",
"
Evanston
\n",
"
59
\n",
+ "
US
\n",
"
United States
\n",
"
42.054850
\n",
"
[http://www.northwestern.edu/]
\n",
@@ -434,27 +421,12 @@
" \n",
"
\n",
"
5
\n",
- "
grid.413735.7
\n",
- "
Harvard–MIT Division of Health Sciences and Te...
\n",
- "
HST
\n",
- "
Cambridge
\n",
- "
58
\n",
- "
United States
\n",
- "
42.361780
\n",
- "
[http://hst.mit.edu/]
\n",
- "
-71.086914
\n",
- "
[Education]
\n",
- "
Massachusetts
\n",
- "
grid.412125.1
\n",
- "
1
\n",
- "
\n",
- "
\n",
- "
6
\n",
"
grid.411340.3
\n",
"
Aligarh Muslim University
\n",
"
AMU
\n",
"
Aligarh
\n",
- "
47
\n",
+ "
46
\n",
+ "
IN
\n",
"
India
\n",
"
27.917370
\n",
"
[http://www.amu.ac.in/]
\n",
@@ -465,12 +437,13 @@
"
1
\n",
"
\n",
"
\n",
- "
7
\n",
+ "
6
\n",
"
grid.412621.2
\n",
"
Quaid-i-Azam University
\n",
"
QAU
\n",
"
Islamabad
\n",
- "
47
\n",
+ "
46
\n",
+ "
PK
\n",
"
Pakistan
\n",
"
33.747223
\n",
"
[http://www.qau.edu.pk/]
\n",
@@ -481,12 +454,47 @@
"
1
\n",
"
\n",
"
\n",
+ "
7
\n",
+ "
grid.411818.5
\n",
+ "
Jamia Millia Islamia
\n",
+ "
JMI
\n",
+ "
New Delhi
\n",
+ "
40
\n",
+ "
IN
\n",
+ "
India
\n",
+ "
28.561607
\n",
+ "
[http://jmi.ac.in/]
\n",
+ "
77.280150
\n",
+ "
[Education]
\n",
+ "
NaN
\n",
+ "
grid.412125.1
\n",
+ "
1
\n",
+ "
\n",
+ "
\n",
"
8
\n",
+ "
grid.62560.37
\n",
+ "
Brigham and Womens Hospital Inc
\n",
+ "
BWH
\n",
+ "
Boston
\n",
+ "
40
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
NaN
\n",
+ "
[http://www.brighamandwomens.org/]
\n",
+ "
NaN
\n",
+ "
[Healthcare]
\n",
+ "
Massachusetts
\n",
+ "
grid.412125.1
\n",
+ "
1
\n",
+ "
\n",
+ "
\n",
+ "
9
\n",
"
grid.33003.33
\n",
"
Suez Canal University
\n",
"
NaN
\n",
"
Ismailia
\n",
- "
42
\n",
+ "
39
\n",
+ "
EG
\n",
"
Egypt
\n",
"
30.622778
\n",
"
[http://scuegypt.edu.eg/ar/]
\n",
@@ -497,28 +505,13 @@
"
1
\n",
"
\n",
"
\n",
- "
9
\n",
- "
grid.411818.5
\n",
- "
Jamia Millia Islamia
\n",
- "
JMI
\n",
- "
New Delhi
\n",
- "
42
\n",
- "
India
\n",
- "
28.561607
\n",
- "
[http://jmi.ac.in/]
\n",
- "
77.280150
\n",
- "
[Education]
\n",
- "
NaN
\n",
- "
grid.412125.1
\n",
- "
1
\n",
- "
\n",
- "
\n",
"
10
\n",
"
grid.56302.32
\n",
"
King Saud University
\n",
"
KSU
\n",
"
Riyadh
\n",
- "
42
\n",
+ "
39
\n",
+ "
SA
\n",
"
Saudi Arabia
\n",
"
24.723982
\n",
"
[http://ksu.edu.sa/en/]
\n",
@@ -533,44 +526,44 @@
""
],
"text/plain": [
- " id name acronym \\\n",
- "0 grid.412125.1 King Abdulaziz University KAU \n",
- "1 grid.261112.7 Northeastern University NU \n",
- "2 grid.38142.3c Harvard University NaN \n",
- "3 grid.116068.8 Massachusetts Institute of Technology MIT \n",
- "4 grid.16753.36 Northwestern University NU \n",
- "5 grid.413735.7 Harvard–MIT Division of Health Sciences and Te... HST \n",
- "6 grid.411340.3 Aligarh Muslim University AMU \n",
- "7 grid.412621.2 Quaid-i-Azam University QAU \n",
- "8 grid.33003.33 Suez Canal University NaN \n",
- "9 grid.411818.5 Jamia Millia Islamia JMI \n",
- "10 grid.56302.32 King Saud University KSU \n",
+ " id name acronym city_name \\\n",
+ "0 grid.412125.1 King Abdulaziz University KAU Jeddah \n",
+ "1 grid.261112.7 Northeastern University NU Boston \n",
+ "2 grid.38142.3c Harvard University NaN Cambridge \n",
+ "3 grid.116068.8 Massachusetts Institute of Technology MIT Cambridge \n",
+ "4 grid.16753.36 Northwestern University NU Evanston \n",
+ "5 grid.411340.3 Aligarh Muslim University AMU Aligarh \n",
+ "6 grid.412621.2 Quaid-i-Azam University QAU Islamabad \n",
+ "7 grid.411818.5 Jamia Millia Islamia JMI New Delhi \n",
+ "8 grid.62560.37 Brigham and Womens Hospital Inc BWH Boston \n",
+ "9 grid.33003.33 Suez Canal University NaN Ismailia \n",
+ "10 grid.56302.32 King Saud University KSU Riyadh \n",
"\n",
- " city_name count country_name latitude \\\n",
- "0 Jeddah 1444 Saudi Arabia 21.493889 \n",
- "1 Boston 106 United States 42.339830 \n",
- "2 Cambridge 98 United States 42.377052 \n",
- "3 Cambridge 73 United States 42.359820 \n",
- "4 Evanston 59 United States 42.054850 \n",
- "5 Cambridge 58 United States 42.361780 \n",
- "6 Aligarh 47 India 27.917370 \n",
- "7 Islamabad 47 Pakistan 33.747223 \n",
- "8 Ismailia 42 Egypt 30.622778 \n",
- "9 New Delhi 42 India 28.561607 \n",
- "10 Riyadh 42 Saudi Arabia 24.723982 \n",
+ " count country_code country_name latitude \\\n",
+ "0 1435 SA Saudi Arabia 21.493889 \n",
+ "1 106 US United States 42.339830 \n",
+ "2 98 US United States 42.377052 \n",
+ "3 73 US United States 42.359820 \n",
+ "4 59 US United States 42.054850 \n",
+ "5 46 IN India 27.917370 \n",
+ "6 46 PK Pakistan 33.747223 \n",
+ "7 40 IN India 28.561607 \n",
+ "8 40 US United States NaN \n",
+ "9 39 EG Egypt 30.622778 \n",
+ "10 39 SA Saudi Arabia 24.723982 \n",
"\n",
- " linkout longitude types \\\n",
- "0 [http://www.kau.edu.sa/home_english.aspx] 39.250280 [Education] \n",
- "1 [http://www.northeastern.edu/] -71.089180 [Education] \n",
- "2 [http://www.harvard.edu/] -71.116650 [Education] \n",
- "3 [http://web.mit.edu/] -71.092110 [Education] \n",
- "4 [http://www.northwestern.edu/] -87.673940 [Education] \n",
- "5 [http://hst.mit.edu/] -71.086914 [Education] \n",
- "6 [http://www.amu.ac.in/] 78.077850 [Education] \n",
- "7 [http://www.qau.edu.pk/] 73.138885 [Education] \n",
- "8 [http://scuegypt.edu.eg/ar/] 32.275000 [Education] \n",
- "9 [http://jmi.ac.in/] 77.280150 [Education] \n",
- "10 [http://ksu.edu.sa/en/] 46.645840 [Education] \n",
+ " linkout longitude types \\\n",
+ "0 [http://www.kau.edu.sa/home_english.aspx] 39.250280 [Education] \n",
+ "1 [http://www.northeastern.edu/] -71.089180 [Education] \n",
+ "2 [http://www.harvard.edu/] -71.116650 [Education] \n",
+ "3 [http://web.mit.edu/] -71.092110 [Education] \n",
+ "4 [http://www.northwestern.edu/] -87.673940 [Education] \n",
+ "5 [http://www.amu.ac.in/] 78.077850 [Education] \n",
+ "6 [http://www.qau.edu.pk/] 73.138885 [Education] \n",
+ "7 [http://jmi.ac.in/] 77.280150 [Education] \n",
+ "8 [http://www.brighamandwomens.org/] NaN [Healthcare] \n",
+ "9 [http://scuegypt.edu.eg/ar/] 32.275000 [Education] \n",
+ "10 [http://ksu.edu.sa/en/] 46.645840 [Education] \n",
"\n",
" state_name id_from level \n",
"0 NaN grid.412125.1 1 \n",
@@ -578,10 +571,10 @@
"2 Massachusetts grid.412125.1 1 \n",
"3 Massachusetts grid.412125.1 1 \n",
"4 Illinois grid.412125.1 1 \n",
- "5 Massachusetts grid.412125.1 1 \n",
- "6 Uttar Pradesh grid.412125.1 1 \n",
+ "5 Uttar Pradesh grid.412125.1 1 \n",
+ "6 NaN grid.412125.1 1 \n",
"7 NaN grid.412125.1 1 \n",
- "8 NaN grid.412125.1 1 \n",
+ "8 Massachusetts grid.412125.1 1 \n",
"9 NaN grid.412125.1 1 \n",
"10 NaN grid.412125.1 1 "
]
@@ -592,7 +585,7 @@
}
],
"source": [
- "get_collaborators(GRIDID, printquery=True)"
+ "get_collaborators(ORGID, printquery=True)"
]
},
{
@@ -605,9 +598,9 @@
"\n",
"What if we want to retrieve the collaborators of the collaborators? In other words, what if we want to generate a larger network?\n",
"\n",
- "If we think of our collaboration data as a [graph structure](https://en.wikipedia.org/wiki/Graph_(discrete_mathematics)) with nodes and edges, we can see that the `get_collaborators` function defined above is limited. That's because it allows to obtain only the objects *directly* linked to the 'seed' GRID organization. \n",
+ "If we think of our collaboration data as a [graph structure](https://en.wikipedia.org/wiki/Graph_(discrete_mathematics)) with nodes and edges, we can see that the `get_collaborators` function defined above is limited. That's because it allows to obtain only the objects *directly* linked to the 'seed' organization. \n",
"\n",
- "We would like to run the same collaborators-extraction step **iteratively** for any GRID ID in our results, so to generate an N-degrees network where N is chosen by us. \n",
+ "We would like to run the same collaborators-extraction step **iteratively** for any ID in our results, so to generate an N-degrees network where N is chosen by us. \n",
"\n",
"To this purpose, we can set up a [recursive](https://en.wikipedia.org/wiki/Recursion_(computer_science)) function. This function essentially repeats the `get_collaborators` function as many times as needed. Here's what it looks like:"
]
@@ -627,8 +620,8 @@
" print(\"--\" * thislevel, seed, \" :: level =\", thislevel)\n",
" if thislevel < maxlevel:\n",
" # remove the originating grid-id\n",
- " gridslist = list(results[results['id'] != GRIDID]['id'])\n",
- " next_level_results = [recursive_network(x, maxlevel, thislevel+1) for x in gridslist]\n",
+ " orgslist = list(results[results['id'] != ORGID]['id'])\n",
+ " next_level_results = [recursive_network(x, maxlevel, thislevel+1) for x in orgslist]\n",
" next_level_results = pd.concat(next_level_results)\n",
" results = pd.concat([results, next_level_results])\n",
" return results\n",
@@ -671,11 +664,11 @@
"---- grid.38142.3c :: level = 2\n",
"---- grid.116068.8 :: level = 2\n",
"---- grid.16753.36 :: level = 2\n",
- "---- grid.413735.7 :: level = 2\n",
"---- grid.411340.3 :: level = 2\n",
"---- grid.412621.2 :: level = 2\n",
- "---- grid.33003.33 :: level = 2\n",
"---- grid.411818.5 :: level = 2\n",
+ "---- grid.62560.37 :: level = 2\n",
+ "---- grid.33003.33 :: level = 2\n",
"---- grid.56302.32 :: level = 2\n"
]
},
@@ -721,7 +714,7 @@
"
grid.412125.1
\n",
"
grid.412125.1
\n",
"
1
\n",
- "
1444
\n",
+ "
1435
\n",
"
King Abdulaziz University
\n",
"
KAU
\n",
"
Jeddah
\n",
@@ -802,7 +795,7 @@
],
"text/plain": [
" id_from id_to level count \\\n",
- "0 grid.412125.1 grid.412125.1 1 1444 \n",
+ "0 grid.412125.1 grid.412125.1 1 1435 \n",
"1 grid.412125.1 grid.261112.7 1 106 \n",
"2 grid.412125.1 grid.38142.3c 1 98 \n",
"3 grid.412125.1 grid.116068.8 1 73 \n",
@@ -836,7 +829,7 @@
}
],
"source": [
- "collaborators = recursive_network(GRIDID, maxlevel=2)\n",
+ "collaborators = recursive_network(ORGID, maxlevel=2)\n",
"# change column order for readability purposes\n",
"collaborators.rename(columns={\"id\": \"id_to\"}, inplace=True)\n",
"collaborators = collaborators[['id_from', 'id_to', 'level', 'count', 'name', 'acronym', 'city_name', 'state_name', 'country_name', 'latitude', 'longitude', 'linkout', 'types' ]]\n",
@@ -896,7 +889,7 @@
" "
],
"text/plain": [
- ""
+ ""
]
},
"execution_count": 8,
@@ -945,13 +938,13 @@
"\n",
" # calc size based on level\n",
" maxsize = int(nodes['level'].max()) + 1\n",
- " if row['id_to'] == GRIDID:\n",
+ " if row['id_to'] == ORGID:\n",
" size = maxsize\n",
" else:\n",
" size = maxsize - row['level']\n",
"\n",
" # calc color based on level\n",
- " if row['id_to'] == GRIDID:\n",
+ " if row['id_to'] == ORGID:\n",
" color = palette[0]\n",
" else:\n",
" color = palette[row['level'] * 2]\n",
@@ -990,10 +983,10 @@
" return g\n",
"\n",
"#\n",
- "# finall, run the viz builder\n",
+ "# finally, run the viz builder\n",
"#\n",
"g = build_visualization(collaborators)\n",
- "g.show(f\"network_{GRIDID}.html\")"
+ "g.show(f\"network_{ORGID}.html\")"
]
},
{
@@ -1006,7 +999,7 @@
"\n",
"What if we want to show a collaboration network focusing only on 'government' organizations? \n",
"\n",
- "That's pretty easy to do, since the GRID database includes information about **organization types**. We can easily see what types are available using the API and a `facet` query:"
+ "That's pretty easy to do, since the organization data set includes information about **organization types**. We can easily see what types are available using the API and a `facet` query:"
]
},
{
@@ -1020,8 +1013,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "Returned Types: 9\n",
- "\u001b[2mTime: 1.00s\u001b[0m\n"
+ "Returned Types: 8\n",
+ "\u001b[2mTime: 2.54s\u001b[0m\n"
]
},
{
@@ -1052,64 +1045,58 @@
" \n",
"
\n",
"
0
\n",
- "
Company
\n",
- "
30742
\n",
+ "
Other
\n",
+ "
165766
\n",
"
\n",
"
\n",
"
1
\n",
- "
Education
\n",
- "
20761
\n",
+ "
Company
\n",
+ "
158994
\n",
"
\n",
"
\n",
"
2
\n",
- "
Nonprofit
\n",
- "
17573
\n",
+ "
Education
\n",
+ "
22805
\n",
"
\n",
"
\n",
"
3
\n",
- "
Healthcare
\n",
- "
13926
\n",
+ "
Nonprofit
\n",
+ "
18361
\n",
"
\n",
"
\n",
"
4
\n",
- "
Facility
\n",
- "
10168
\n",
+ "
Healthcare
\n",
+ "
14865
\n",
"
\n",
"
\n",
"
5
\n",
"
Government
\n",
- "
6580
\n",
+ "
11545
\n",
"
\n",
"
\n",
"
6
\n",
- "
Other
\n",
- "
4017
\n",
+ "
Facility
\n",
+ "
10692
\n",
"
\n",
"
\n",
"
7
\n",
"
Archive
\n",
- "
2926
\n",
- "
\n",
- "
\n",
- "
8
\n",
- "
Education,Company
\n",
- "
1
\n",
+ "
3059
\n",
"
\n",
" \n",
"\n",
""
],
"text/plain": [
- " id count\n",
- "0 Company 30742\n",
- "1 Education 20761\n",
- "2 Nonprofit 17573\n",
- "3 Healthcare 13926\n",
- "4 Facility 10168\n",
- "5 Government 6580\n",
- "6 Other 4017\n",
- "7 Archive 2926\n",
- "8 Education,Company 1"
+ " id count\n",
+ "0 Other 165766\n",
+ "1 Company 158994\n",
+ "2 Education 22805\n",
+ "3 Nonprofit 18361\n",
+ "4 Healthcare 14865\n",
+ "5 Government 11545\n",
+ "6 Facility 10692\n",
+ "7 Archive 3059"
]
},
"execution_count": 9,
@@ -1133,7 +1120,7 @@
"* **Get more results**. We increase the number of results returned: `..return research_orgs limit 50`. This is to ensure we still have enough results after removing the ones that don't have the chosen 'type'\n",
"* **Remove unwanted data**. The new query filter `research_orgs.types in [\"{}\"]` will return also publications with multiple authors/affiliations, even though only one of them has the desired 'type'. So an extra step is required and this is achieved via the `keep_type` function below. This function simply filters out all unwanted organizations data after they're retrieved from the API. \n",
"\n",
- "That's it! Run the cell below to generate a new visualization showing only \"Government\" collaborators. Or try changing the value of `GRID_TYPE` to see different results. \n"
+ "That's it! Run the cell below to generate a new visualization showing only \"Government\" collaborators. Or try changing the value of `ORG_TYPE` to see different results. \n"
]
},
{
@@ -1150,7 +1137,6 @@
"-- grid.412125.1 :: level = 1\n",
"---- grid.7327.1 :: level = 2\n",
"---- grid.9227.e :: level = 2\n",
- "---- grid.20256.33 :: level = 2\n",
"---- grid.1089.0 :: level = 2\n",
"---- grid.14467.30 :: level = 2\n",
"network_grid.412125.1_Government.html\n"
@@ -1171,7 +1157,7 @@
" "
],
"text/plain": [
- ""
+ ""
]
},
"execution_count": 10,
@@ -1182,7 +1168,7 @@
"source": [
"#@markdown Try using one of the organization types from the list above\n",
"\n",
- "GRID_TYPE = \"Government\" #@param {type:\"string\"}\n",
+ "ORG_TYPE = \"Government\" #@param {type:\"string\"}\n",
"\n",
"query = \"\"\"search publications {}\n",
" where year in [{}:{}] \n",
@@ -1193,7 +1179,7 @@
"def keep_only_type(data, a_type, orgid):\n",
" clean_list = []\n",
" for x in data.research_orgs:\n",
- " # include also originating GRID to ensure chart is complete\n",
+ " # include also originating org to ensure chart is complete\n",
" if x['id'] == orgid or a_type in x['types']:\n",
" clean_list.append(x)\n",
" data.json['research_orgs'] = clean_list\n",
@@ -1206,8 +1192,8 @@
" TOPIC_CLAUSE = f\"\"\"for \"{TOPIC}\" \"\"\"\n",
" else:\n",
" TOPIC_CLAUSE = \"\"\n",
- " # include also the GRID_TYPE\n",
- " query_full = query.format(TOPIC_CLAUSE, YEAR_START, YEAR_END, orgid, GRID_TYPE)\n",
+ " # include also the ORG_TYPE\n",
+ " query_full = query.format(TOPIC_CLAUSE, YEAR_START, YEAR_END, orgid, ORG_TYPE)\n",
" if printquery: print(query_full)\n",
" data = dsl.query(query_full, verbose=False)\n",
" # remove results with unwanted types \n",
@@ -1221,7 +1207,7 @@
"#\n",
"# RUN THE RECURSIVE QUERY (same code as above)\n",
"#\n",
- "collaborators = recursive_network(GRIDID, maxlevel=2)\n",
+ "collaborators = recursive_network(ORGID, maxlevel=2)\n",
"collaborators.rename(columns={\"id\": \"id_to\"}, inplace=True)\n",
"collaborators = collaborators[['id_from', 'id_to', 'level', 'count', 'name', 'acronym', 'city_name', 'country_name', 'latitude', 'longitude', 'linkout', 'types' ]]\n",
"\n",
@@ -1229,7 +1215,7 @@
"# BUILD VIZ\n",
"#\n",
"g = build_visualization(collaborators)\n",
- "g.show(f\"network_{GRIDID}_{GRID_TYPE}.html\")\n",
+ "g.show(f\"network_{ORGID}_{ORG_TYPE}.html\")\n",
"\n"
]
},
@@ -1272,7 +1258,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.11.1"
+ "version": "3.12.8"
},
"nteract": {
"version": "0.15.0"
diff --git a/docs/_sources/cookbooks/8-organizations/4-international-collaboration-by-year.ipynb.txt b/docs/_sources/cookbooks/8-organizations/4-international-collaboration-by-year.ipynb.txt
index cea374f0..40286910 100644
--- a/docs/_sources/cookbooks/8-organizations/4-international-collaboration-by-year.ipynb.txt
+++ b/docs/_sources/cookbooks/8-organizations/4-international-collaboration-by-year.ipynb.txt
@@ -24,7 +24,7 @@
"text": [
"==\n",
"CHANGELOG\n",
- "This notebook was last run on Jan 25, 2022\n",
+ "This notebook was last run on Sep 10, 2025\n",
"==\n"
]
}
@@ -49,7 +49,7 @@
},
{
"cell_type": "code",
- "execution_count": 16,
+ "execution_count": 2,
"metadata": {
"Collapsed": "false"
},
@@ -59,19 +59,9 @@
"text/html": [
" \n",
+ " \n",
" "
]
},
@@ -91,8 +81,8 @@
"text": [
"==\n",
"Logging in..\n",
- "\u001b[2mDimcli - Dimensions API Client (v0.9.6)\u001b[0m\n",
- "\u001b[2mConnected to: - DSL v2.0\u001b[0m\n",
+ "\u001b[2mDimcli - Dimensions API Client (v1.4)\u001b[0m\n",
+ "\u001b[2mConnected to: - DSL v2.12\u001b[0m\n",
"\u001b[2mMethod: dsl.ini file\u001b[0m\n"
]
}
@@ -137,7 +127,7 @@
},
{
"cell_type": "code",
- "execution_count": 17,
+ "execution_count": 3,
"metadata": {
"Collapsed": "false"
},
@@ -146,8 +136,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "Returned Organizations: 16 (total = 16)\n",
- "\u001b[2mTime: 0.57s\u001b[0m\n"
+ "Returned Organizations: 20 (total = 23)\n",
+ "\u001b[2mTime: 0.53s\u001b[0m\n"
]
},
{
@@ -171,225 +161,298 @@
" \n",
"
\n",
"
\n",
+ "
id
\n",
+ "
name
\n",
"
city_name
\n",
+ "
country_code
\n",
"
country_name
\n",
- "
id
\n",
+ "
types
\n",
+ "
state_name
\n",
"
latitude
\n",
"
linkout
\n",
"
longitude
\n",
- "
name
\n",
- "
state_name
\n",
- "
types
\n",
"
acronym
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
+ "
grid.772384.d
\n",
+ "
Trelleborg Marine Systems Melbourne Pty Ltd
\n",
+ "
Victoria
\n",
+ "
AU
\n",
+ "
Australia
\n",
+ "
[Company]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
+ "
grid.746611.3
\n",
+ "
Noyes Bros Melbourne Pty Ltd
\n",
+ "
NaN
\n",
+ "
AU
\n",
+ "
Australia
\n",
+ "
[Other]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
grid.631568.f
\n",
+ "
CityLink Melbourne Ltd
\n",
+ "
NaN
\n",
+ "
AU
\n",
+ "
Australia
\n",
+ "
[Other]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
3
\n",
+ "
grid.530408.a
\n",
+ "
Melbourne Institute of Technology
\n",
"
Melbourne
\n",
+ "
AU
\n",
"
Australia
\n",
+ "
[Nonprofit]
\n",
+ "
Victoria
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
4
\n",
"
grid.511296.8
\n",
+ "
Melbourne Genomics Health Alliance
\n",
+ "
Melbourne
\n",
+ "
AU
\n",
+ "
Australia
\n",
+ "
[Nonprofit]
\n",
+ "
Victoria
\n",
"
-37.797960
\n",
"
[https://www.melbournegenomics.org.au/]
\n",
"
144.953870
\n",
- "
Melbourne Genomics Health Alliance
\n",
- "
Victoria
\n",
- "
[Nonprofit]
\n",
"
NaN
\n",
"
\n",
"
\n",
- "
1
\n",
+ "
5
\n",
+ "
grid.493437.e
\n",
+ "
RMIT Europe
\n",
"
Barcelona
\n",
+ "
ES
\n",
"
Spain
\n",
- "
grid.493437.e
\n",
+ "
[Education]
\n",
+ "
NaN
\n",
"
41.402576
\n",
"
[https://www.rmit.eu]
\n",
"
2.194333
\n",
- "
RMIT Europe
\n",
- "
NaN
\n",
- "
[Education]
\n",
"
RMIT
\n",
"
\n",
"
\n",
- "
2
\n",
+ "
6
\n",
+ "
grid.490309.7
\n",
+ "
Melbourne Sexual Health Centre
\n",
"
Carlton
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.490309.7
\n",
+ "
[Healthcare]
\n",
+ "
Victoria
\n",
"
-37.803123
\n",
"
[https://www.mshc.org.au/]
\n",
"
144.963840
\n",
- "
Melbourne Sexual Health Centre
\n",
- "
Victoria
\n",
- "
[Healthcare]
\n",
"
MSHC
\n",
"
\n",
"
\n",
- "
3
\n",
+ "
7
\n",
+ "
grid.477970.a
\n",
+ "
Melbourne Clinic
\n",
"
Richmond
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.477970.a
\n",
+ "
[Healthcare]
\n",
+ "
Victoria
\n",
"
-37.815063
\n",
"
[http://www.themelbourneclinic.com.au/]
\n",
"
144.999650
\n",
- "
Melbourne Clinic
\n",
- "
Victoria
\n",
- "
[Healthcare]
\n",
"
NaN
\n",
"
\n",
"
\n",
- "
4
\n",
- "
Melbourne
\n",
+ "
8
\n",
+ "
grid.474755.0
\n",
+ "
Leica Biosystems Melbourne Pty Ltd
\n",
+ "
Mt. Waverley
\n",
+ "
AU
\n",
"
Australia
\n",
+ "
[Company]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
[http://www.danaher.com/]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
9
\n",
"
grid.469061.c
\n",
+ "
Ridley College
\n",
+ "
Melbourne
\n",
+ "
AU
\n",
+ "
Australia
\n",
+ "
[Education]
\n",
+ "
Victoria
\n",
"
-37.783780
\n",
"
[https://www.ridley.edu.au/]
\n",
"
144.957660
\n",
- "
Ridley College
\n",
- "
Victoria
\n",
- "
[Education]
\n",
"
NaN
\n",
"
\n",
"
\n",
- "
5
\n",
+ "
10
\n",
+ "
grid.469026.f
\n",
+ "
Melbourne School of Theology
\n",
"
Melbourne
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.469026.f
\n",
+ "
[Education]
\n",
+ "
Victoria
\n",
"
-37.859700
\n",
"
[http://www.mst.edu.au/]
\n",
"
145.209410
\n",
- "
Melbourne School of Theology
\n",
- "
Victoria
\n",
- "
[Education]
\n",
"
MBI
\n",
"
\n",
"
\n",
- "
6
\n",
+ "
11
\n",
+ "
grid.468079.4
\n",
+ "
Port of Melbourne Corporation
\n",
"
Melbourne
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.468079.4
\n",
+ "
[Government]
\n",
+ "
Victoria
\n",
"
-37.824028
\n",
"
[http://www.portofmelbourne.com/]
\n",
"
144.907070
\n",
- "
Port of Melbourne Corporation
\n",
- "
Victoria
\n",
- "
[Government]
\n",
"
PoMC
\n",
"
\n",
"
\n",
- "
7
\n",
+ "
12
\n",
+ "
grid.468069.5
\n",
+ "
Melbourne Water
\n",
"
Melbourne
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.468069.5
\n",
+ "
[Government]
\n",
+ "
Victoria
\n",
"
-37.814007
\n",
"
[http://www.melbournewater.com.au/Pages/home.a...
\n",
"
144.946700
\n",
- "
Melbourne Water
\n",
- "
Victoria
\n",
- "
[Government]
\n",
"
NaN
\n",
"
\n",
"
\n",
- "
8
\n",
+ "
13
\n",
+ "
grid.452643.2
\n",
+ "
Melbourne Bioinformatics
\n",
"
Melbourne
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.452643.2
\n",
+ "
[Education]
\n",
+ "
Victoria
\n",
"
-37.799847
\n",
- "
[https://www.vlsci.org.au/]
\n",
+ "
[https://www.melbournebioinformatics.org.au]
\n",
"
144.964460
\n",
- "
Victorian Life Sciences Computation Initiative
\n",
- "
Victoria
\n",
- "
[Education]
\n",
- "
NaN
\n",
+ "
VLSCI
\n",
"
\n",
"
\n",
- "
9
\n",
+ "
14
\n",
+ "
grid.449135.e
\n",
+ "
Melbourne Free University
\n",
"
Melbourne
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.449135.e
\n",
+ "
[Education]
\n",
+ "
Victoria
\n",
"
NaN
\n",
"
NaN
\n",
"
NaN
\n",
- "
Melbourne Free University
\n",
- "
Victoria
\n",
- "
[Education]
\n",
"
NaN
\n",
"
\n",
"
\n",
- "
10
\n",
+ "
15
\n",
+ "
grid.440113.3
\n",
+ "
Royal Dental Hospital of Melbourne
\n",
"
Melbourne
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.440113.3
\n",
+ "
[Healthcare]
\n",
+ "
Victoria
\n",
"
-37.799260
\n",
"
[https://www.dhsv.org.au]
\n",
"
144.964630
\n",
- "
Royal Dental Hospital of Melbourne
\n",
- "
Victoria
\n",
- "
[Healthcare]
\n",
"
RDHM
\n",
"
\n",
"
\n",
- "
11
\n",
+ "
16
\n",
+ "
grid.438527.f
\n",
+ "
Royal Melbourne Institute of Technology Univer...
\n",
"
Melbourne
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.429299.d
\n",
- "
-37.798940
\n",
- "
[http://www.mh.org.au/]
\n",
- "
144.955930
\n",
- "
Melbourne Health
\n",
+ "
[Other]
\n",
"
Victoria
\n",
- "
[Healthcare]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
"
NaN
\n",
"
\n",
"
\n",
- "
12
\n",
+ "
17
\n",
+ "
grid.429299.d
\n",
+ "
Melbourne Health
\n",
"
Melbourne
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.416153.4
\n",
- "
-37.798756
\n",
- "
[http://www.rmh.mh.org.au/]
\n",
- "
144.955930
\n",
- "
Royal Melbourne Hospital
\n",
- "
Victoria
\n",
"
[Healthcare]
\n",
- "
RMH
\n",
- "
\n",
- "
\n",
- "
13
\n",
- "
Clayton
\n",
- "
Australia
\n",
- "
grid.410660.5
\n",
- "
-37.915775
\n",
- "
[http://nanomelbourne.com/]
\n",
- "
145.143660
\n",
- "
Melbourne Centre for Nanofabrication
\n",
"
Victoria
\n",
- "
[Facility]
\n",
- "
MCN
\n",
+ "
-37.798940
\n",
+ "
[http://www.mh.org.au/]
\n",
+ "
144.955930
\n",
+ "
NaN
\n",
"
\n",
"
\n",
- "
14
\n",
+ "
18
\n",
+ "
grid.416153.4
\n",
+ "
Royal Melbourne Hospital
\n",
"
Melbourne
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.1017.7
\n",
- "
-37.806747
\n",
- "
[https://www.rmit.edu.au/]
\n",
- "
144.962570
\n",
- "
RMIT University
\n",
+ "
[Healthcare]
\n",
"
Victoria
\n",
- "
[Education]
\n",
- "
RMIT
\n",
+ "
-37.798756
\n",
+ "
[http://www.rmh.mh.org.au/]
\n",
+ "
144.955930
\n",
+ "
RMH
\n",
"
\n",
"
\n",
- "
15
\n",
+ "
19
\n",
+ "
grid.413105.2
\n",
+ "
St Vincent's Hospital
\n",
"
Melbourne
\n",
+ "
AU
\n",
"
Australia
\n",
- "
grid.1008.9
\n",
- "
-37.797115
\n",
- "
[http://www.unimelb.edu.au/]
\n",
- "
144.959980
\n",
- "
University of Melbourne
\n",
+ "
[Healthcare]
\n",
"
Victoria
\n",
- "
[Education]
\n",
+ "
-37.807000
\n",
+ "
[http://www.svhm.org.au/Pages/Home.aspx]
\n",
+ "
144.975000
\n",
"
NaN
\n",
"
\n",
" \n",
@@ -397,80 +460,96 @@
""
],
"text/plain": [
- " city_name country_name id latitude \\\n",
- "0 Melbourne Australia grid.511296.8 -37.797960 \n",
- "1 Barcelona Spain grid.493437.e 41.402576 \n",
- "2 Carlton Australia grid.490309.7 -37.803123 \n",
- "3 Richmond Australia grid.477970.a -37.815063 \n",
- "4 Melbourne Australia grid.469061.c -37.783780 \n",
- "5 Melbourne Australia grid.469026.f -37.859700 \n",
- "6 Melbourne Australia grid.468079.4 -37.824028 \n",
- "7 Melbourne Australia grid.468069.5 -37.814007 \n",
- "8 Melbourne Australia grid.452643.2 -37.799847 \n",
- "9 Melbourne Australia grid.449135.e NaN \n",
- "10 Melbourne Australia grid.440113.3 -37.799260 \n",
- "11 Melbourne Australia grid.429299.d -37.798940 \n",
- "12 Melbourne Australia grid.416153.4 -37.798756 \n",
- "13 Clayton Australia grid.410660.5 -37.915775 \n",
- "14 Melbourne Australia grid.1017.7 -37.806747 \n",
- "15 Melbourne Australia grid.1008.9 -37.797115 \n",
+ " id name \\\n",
+ "0 grid.772384.d Trelleborg Marine Systems Melbourne Pty Ltd \n",
+ "1 grid.746611.3 Noyes Bros Melbourne Pty Ltd \n",
+ "2 grid.631568.f CityLink Melbourne Ltd \n",
+ "3 grid.530408.a Melbourne Institute of Technology \n",
+ "4 grid.511296.8 Melbourne Genomics Health Alliance \n",
+ "5 grid.493437.e RMIT Europe \n",
+ "6 grid.490309.7 Melbourne Sexual Health Centre \n",
+ "7 grid.477970.a Melbourne Clinic \n",
+ "8 grid.474755.0 Leica Biosystems Melbourne Pty Ltd \n",
+ "9 grid.469061.c Ridley College \n",
+ "10 grid.469026.f Melbourne School of Theology \n",
+ "11 grid.468079.4 Port of Melbourne Corporation \n",
+ "12 grid.468069.5 Melbourne Water \n",
+ "13 grid.452643.2 Melbourne Bioinformatics \n",
+ "14 grid.449135.e Melbourne Free University \n",
+ "15 grid.440113.3 Royal Dental Hospital of Melbourne \n",
+ "16 grid.438527.f Royal Melbourne Institute of Technology Univer... \n",
+ "17 grid.429299.d Melbourne Health \n",
+ "18 grid.416153.4 Royal Melbourne Hospital \n",
+ "19 grid.413105.2 St Vincent's Hospital \n",
"\n",
- " linkout longitude \\\n",
- "0 [https://www.melbournegenomics.org.au/] 144.953870 \n",
- "1 [https://www.rmit.eu] 2.194333 \n",
- "2 [https://www.mshc.org.au/] 144.963840 \n",
- "3 [http://www.themelbourneclinic.com.au/] 144.999650 \n",
- "4 [https://www.ridley.edu.au/] 144.957660 \n",
- "5 [http://www.mst.edu.au/] 145.209410 \n",
- "6 [http://www.portofmelbourne.com/] 144.907070 \n",
- "7 [http://www.melbournewater.com.au/Pages/home.a... 144.946700 \n",
- "8 [https://www.vlsci.org.au/] 144.964460 \n",
- "9 NaN NaN \n",
- "10 [https://www.dhsv.org.au] 144.964630 \n",
- "11 [http://www.mh.org.au/] 144.955930 \n",
- "12 [http://www.rmh.mh.org.au/] 144.955930 \n",
- "13 [http://nanomelbourne.com/] 145.143660 \n",
- "14 [https://www.rmit.edu.au/] 144.962570 \n",
- "15 [http://www.unimelb.edu.au/] 144.959980 \n",
+ " city_name country_code country_name types state_name \\\n",
+ "0 Victoria AU Australia [Company] NaN \n",
+ "1 NaN AU Australia [Other] NaN \n",
+ "2 NaN AU Australia [Other] NaN \n",
+ "3 Melbourne AU Australia [Nonprofit] Victoria \n",
+ "4 Melbourne AU Australia [Nonprofit] Victoria \n",
+ "5 Barcelona ES Spain [Education] NaN \n",
+ "6 Carlton AU Australia [Healthcare] Victoria \n",
+ "7 Richmond AU Australia [Healthcare] Victoria \n",
+ "8 Mt. Waverley AU Australia [Company] NaN \n",
+ "9 Melbourne AU Australia [Education] Victoria \n",
+ "10 Melbourne AU Australia [Education] Victoria \n",
+ "11 Melbourne AU Australia [Government] Victoria \n",
+ "12 Melbourne AU Australia [Government] Victoria \n",
+ "13 Melbourne AU Australia [Education] Victoria \n",
+ "14 Melbourne AU Australia [Education] Victoria \n",
+ "15 Melbourne AU Australia [Healthcare] Victoria \n",
+ "16 Melbourne AU Australia [Other] Victoria \n",
+ "17 Melbourne AU Australia [Healthcare] Victoria \n",
+ "18 Melbourne AU Australia [Healthcare] Victoria \n",
+ "19 Melbourne AU Australia [Healthcare] Victoria \n",
"\n",
- " name state_name types \\\n",
- "0 Melbourne Genomics Health Alliance Victoria [Nonprofit] \n",
- "1 RMIT Europe NaN [Education] \n",
- "2 Melbourne Sexual Health Centre Victoria [Healthcare] \n",
- "3 Melbourne Clinic Victoria [Healthcare] \n",
- "4 Ridley College Victoria [Education] \n",
- "5 Melbourne School of Theology Victoria [Education] \n",
- "6 Port of Melbourne Corporation Victoria [Government] \n",
- "7 Melbourne Water Victoria [Government] \n",
- "8 Victorian Life Sciences Computation Initiative Victoria [Education] \n",
- "9 Melbourne Free University Victoria [Education] \n",
- "10 Royal Dental Hospital of Melbourne Victoria [Healthcare] \n",
- "11 Melbourne Health Victoria [Healthcare] \n",
- "12 Royal Melbourne Hospital Victoria [Healthcare] \n",
- "13 Melbourne Centre for Nanofabrication Victoria [Facility] \n",
- "14 RMIT University Victoria [Education] \n",
- "15 University of Melbourne Victoria [Education] \n",
+ " latitude linkout longitude \\\n",
+ "0 NaN NaN NaN \n",
+ "1 NaN NaN NaN \n",
+ "2 NaN NaN NaN \n",
+ "3 NaN NaN NaN \n",
+ "4 -37.797960 [https://www.melbournegenomics.org.au/] 144.953870 \n",
+ "5 41.402576 [https://www.rmit.eu] 2.194333 \n",
+ "6 -37.803123 [https://www.mshc.org.au/] 144.963840 \n",
+ "7 -37.815063 [http://www.themelbourneclinic.com.au/] 144.999650 \n",
+ "8 NaN [http://www.danaher.com/] NaN \n",
+ "9 -37.783780 [https://www.ridley.edu.au/] 144.957660 \n",
+ "10 -37.859700 [http://www.mst.edu.au/] 145.209410 \n",
+ "11 -37.824028 [http://www.portofmelbourne.com/] 144.907070 \n",
+ "12 -37.814007 [http://www.melbournewater.com.au/Pages/home.a... 144.946700 \n",
+ "13 -37.799847 [https://www.melbournebioinformatics.org.au] 144.964460 \n",
+ "14 NaN NaN NaN \n",
+ "15 -37.799260 [https://www.dhsv.org.au] 144.964630 \n",
+ "16 NaN NaN NaN \n",
+ "17 -37.798940 [http://www.mh.org.au/] 144.955930 \n",
+ "18 -37.798756 [http://www.rmh.mh.org.au/] 144.955930 \n",
+ "19 -37.807000 [http://www.svhm.org.au/Pages/Home.aspx] 144.975000 \n",
"\n",
" acronym \n",
"0 NaN \n",
- "1 RMIT \n",
- "2 MSHC \n",
+ "1 NaN \n",
+ "2 NaN \n",
"3 NaN \n",
"4 NaN \n",
- "5 MBI \n",
- "6 PoMC \n",
+ "5 RMIT \n",
+ "6 MSHC \n",
"7 NaN \n",
"8 NaN \n",
"9 NaN \n",
- "10 RDHM \n",
- "11 NaN \n",
- "12 RMH \n",
- "13 MCN \n",
- "14 RMIT \n",
- "15 NaN "
+ "10 MBI \n",
+ "11 PoMC \n",
+ "12 NaN \n",
+ "13 VLSCI \n",
+ "14 NaN \n",
+ "15 RDHM \n",
+ "16 NaN \n",
+ "17 NaN \n",
+ "18 RMH \n",
+ "19 NaN "
]
},
- "execution_count": 17,
+ "execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
@@ -483,7 +562,7 @@
},
{
"cell_type": "code",
- "execution_count": 18,
+ "execution_count": 4,
"metadata": {
"Collapsed": "false"
},
@@ -503,7 +582,7 @@
},
{
"cell_type": "code",
- "execution_count": 19,
+ "execution_count": 15,
"metadata": {
"Collapsed": "false"
},
@@ -512,8 +591,8 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "Returned Year: 12\n",
- "\u001b[2mTime: 0.57s\u001b[0m\n"
+ "Returned Year: 16\n",
+ "\u001b[2mTime: 0.55s\u001b[0m\n"
]
},
{
@@ -524,7 +603,6 @@
},
"data": [
{
- "alignmentgroup": "True",
"hovertemplate": "year=%{x} pubs=%{y}",
"legendgroup": "",
"marker": {
@@ -534,45 +612,23 @@
}
},
"name": "",
- "offsetgroup": "",
"orientation": "v",
"showlegend": false,
"textposition": "auto",
"type": "bar",
- "x": [
- 2021,
- 2020,
- 2019,
- 2018,
- 2017,
- 2016,
- 2015,
- 2014,
- 2013,
- 2012,
- 2011,
- 2022
- ],
+ "x": {
+ "bdata": "5QfoB+cH5gfkB+MH4gfhB+AH6QffB94H3QfcB9sH6gc=",
+ "dtype": "i2"
+ },
"xaxis": "x",
- "y": [
- 13015,
- 12183,
- 11039,
- 9954,
- 9198,
- 8281,
- 7720,
- 7184,
- 6779,
- 6030,
- 5742,
- 816
- ],
+ "y": {
+ "bdata": "9kygSotJ9UjhSOlA+T0ZOm42PjZDNBkx3y99K2koDwA=",
+ "dtype": "i2"
+ },
"yaxis": "y"
}
],
"layout": {
- "autosize": true,
"barmode": "relative",
"legend": {
"tracegroupgap": 0
@@ -759,57 +815,6 @@
"type": "heatmap"
}
],
- "heatmapgl": [
- {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- },
- "colorscale": [
- [
- 0,
- "#0d0887"
- ],
- [
- 0.1111111111111111,
- "#46039f"
- ],
- [
- 0.2222222222222222,
- "#7201a8"
- ],
- [
- 0.3333333333333333,
- "#9c179e"
- ],
- [
- 0.4444444444444444,
- "#bd3786"
- ],
- [
- 0.5555555555555556,
- "#d8576b"
- ],
- [
- 0.6666666666666666,
- "#ed7953"
- ],
- [
- 0.7777777777777778,
- "#fb9f3a"
- ],
- [
- 0.8888888888888888,
- "#fdca26"
- ],
- [
- 1,
- "#f0f921"
- ]
- ],
- "type": "heatmapgl"
- }
- ],
"histogram": [
{
"marker": {
@@ -952,11 +957,10 @@
],
"scatter": [
{
- "marker": {
- "colorbar": {
- "outlinewidth": 0,
- "ticks": ""
- }
+ "fillpattern": {
+ "fillmode": "overlay",
+ "size": 10,
+ "solidity": 0.2
},
"type": "scatter"
}
@@ -1011,6 +1015,17 @@
"type": "scattergl"
}
],
+ "scattermap": [
+ {
+ "marker": {
+ "colorbar": {
+ "outlinewidth": 0,
+ "ticks": ""
+ }
+ },
+ "type": "scattermap"
+ }
+ ],
"scattermapbox": [
{
"marker": {
@@ -1399,43 +1414,31 @@
},
"xaxis": {
"anchor": "y",
- "autorange": true,
"domain": [
0,
1
],
- "range": [
- 2010.5,
- 2022.5
- ],
"title": {
"text": "year"
- },
- "type": "linear"
+ }
},
"yaxis": {
"anchor": "x",
- "autorange": true,
"domain": [
0,
1
],
- "range": [
- 0,
- 13700
- ],
"title": {
"text": "pubs"
- },
- "type": "linear"
+ }
}
}
},
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAA/EAAAFoCAYAAAAfN3s3AAAAAXNSR0IArs4c6QAAIABJREFUeF7t3XmcHFW5P+B3kkAIhACBsIgoiAIiXrwKCLihonBZxStLQFllkd1oZBdQdgTZZQsiSBTwAoIRubIpKNsPUK/bRb2isoewQyAkM79PNWbMJNOZOX26O1PVz/yl5FR31XPeOnW+daq7u3p6enrCHwECBAgQIECAAAECBAgQIDDkBbqE+CHfR3aQAAECBAgQIECAAAECBAjUBIR4hUCAAAECBAgQIECAAAECBEoiIMSXpKPsJgECBAgQIECAAAECBAgQEOLVAAECBAgQIECAAAECBAgQKImAEF+SjrKbBAgQIECAAAECBAgQIEBAiFcDBAgQIECAAAECBAgQIECgJAJCfEk6ym4SIECAAAECBAgQIECAAAEhXg0QIECAAAECBAgQIECAAIGSCAjxJekou0mAAAECBAgQIECAAAECBIR4NUCAAAECBAgQIECAAAECBEoiIMSXpKPsJgECBAgQIECAAAECBAgQEOLVAAECBAgQIECAAAECBAgQKImAEF+SjrKbBAgQIECAAAECBAgQIEBAiFcDBAgQIECAAAECBAgQIECgJAJCfEk6ym4SIECAAAECBAgQIECAAAEhXg0QIECAAAECBAgQIECAAIGSCAjxJekou0mAAAECBAgQIECAAAECBIR4NUCAAAECBAgQIECAAAECBEoiIMSXpKPsJgECBAgQIECAAAECBAgQEOLVAAECBAgQIECAAAECBAgQKImAEF+SjrKbBAgQIECAAAECBAgQIEBAiFcDBAgQIECAAAECBAgQIECgJAJCfEk6ym4SIECAAAECBAgQIECAAAEhXg0QIECAAAECBAgQIECAAIGSCAjxJekou0mAAAECBAgQIECAAAECBIR4NUCAAAECBAgQIECAAAECBEoiIMSXpKPsJgECBAgQIECAAAECBAgQEOLVAAECBAgQIECAAAECBAgQKImAEF+SjrKbBAgQIECAAAECBAgQIEBAiFcDBAgQIECAAAECBAgQIECgJAJCfEk6ym4SIECAAAECBAgQIECAAAEhXg0QIECAAAECBAgQIECAAIGSCAjxJekou0mAAAECBAgQIECAAAECBIR4NUCAAAECBAgQIECAAAECBEoiIMSXpKPsJgECBAgQIECAAAECBAgQEOLVAAECBAgQIECAAAECBAgQKImAEF+SjrKbBAgQIECAAAECBAgQIEBAiFcDBAgQIECAAAECBAgQIECgJAJCfEk6ym4SIECAAAECBAgQIECAAAEhXg0QIECAAAECBAgQIECAAIGSCAjxJekou0mAAAECBAgQIECAAAECBIR4NUCAAAECBAgQIECAAAECBEoiIMSXpKPsJgECBAgQIECAAAECBAgQEOLVAAECBAgQIECAAAECBAgQKImAEF+SjrKbBAgQIECAAAECBAgQIEBAiFcDBAgQIECAAAECBAgQIECgJAJCfEk6ym4SIECAAAECBAgQIECAAAEhXg0QIECAAAECBAgQIECAAIGSCAjxJekou0mAAAECBAgQIECAAAECBIR4NUCAAAECBAgQIECAAAECBEoiIMSXpKPsJgECBAgQIECAAAECBAgQEOLVAAECBAgQIECAAAECBAgQKImAEF+SjrKbBAgQIECAAAECBAgQIEBAiFcDBAgQIECAAAECBAgQIECgJAJCfEk6ym4SIECAAAECBAgQIECAAAEhXg0QIECAAAECBAgQIECAAIGSCAjxJekou0mAAAECBAgQIECAAAECBIR4NUCAAAECBAgQIECAAAECBEoiIMSXpKPsJgECBAgQIECAAAECBAgQEOIza+CxadMzX8HmBAgQIECAAAECBAgQ6ByBNy09qnMOtgVHKsRnogrxmYA2J0CAAAECBAgQIECgowSE+LzuFuLz/EKIzwS0OQECBAgQIECAAAECHSUgxOd1txCf5yfEZ/rZnAABAgQIECBAgACBzhIQ4vP6W4jP8xPiM/1sToAAAQIECBAgQIBAZwkI8Xn9LcTn+QnxmX42J0CAAAECBAgQIECgswSE+Lz+FuLz/IT4TD+bEyBAgAABAgQIECDQWQJCfF5/C/F5fkJ8pp/NCRAgQIAAAQIECBDoLAEhPq+/hfg8PyE+08/mBAgQIECAAAECBAh0loAQn9ffQnyenxCf6WdzAgQIECBAgAABAgQ6S0CIz+tvIT7PT4jP9LM5AQIECBAgQIAAAQKdJSDE5/W3EJ/nJ8Rn+tmcAAECBAgQIECgmgJTp3bFrT8bVs2D++dRbb5pd4we3VPpY2zFwQnxeapCfJ6fEJ/pZ3MCBAgQIECAAIFqChQh/oJJw2PGjGoe30or9sT47YX4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1GnPxUb/eXBtL8894eDal8/N/vvetbfEcWdeHnvsuHls+YkNYsbrM+NXv/1z/OyuX9WC++kXXBXf/+GtceLhe8UyY5eIn9/969o32Xucfoh3ut0jQIAAAQJ1BIR4pUGAAAECBEogUHzB3d8ffSp++v1vxPDhw3r3uLu7O757zc1xziXX1B6vn/1XhPoJe21be2z+sBMujPt/81Dtn9Zec9WY1d0doxYZGZeecWjtvxWr9e9abWWfiS9BHdhFAgQIECAgxKsBAgQIECAwxAWmPftCfHibA+Mr++4Qu2y3ab97Wzw+//Qzz0dPT8QyY8fEsGH/CvrFBo8/OS2GDR9WexzfHwECBAgQIFBeASG+vH1nzwkQIECgQwS+9Z0f1n7b/ZfXn+u32zukzx0mAQIECBCoJyDEqw0CBAgQIDCEBYoV9i8c+s3az8vtv9s2Q3hP7RoBAgQIECDQDgEhvh3K3oMAAQIECBAgQIAAAQIECDRBQIhvAqKXIECAAAECBAgQIECAAAEC7RAQ4tuh7D0IECBAgAABAgQIECBAgEATBIT4JiB6CQIECBAgQIAAAQIECBAg0A4BIb4dyt6DAAECBAgQIECAAAECBAg0QUCIbwKilyBAgAABAgQIECBAgAABAu0QEOLboew9CBAgQIAAAQIECBAgQIBAEwSE+CYgegkCBAgQIECAAAECBAgQINAOASG+HcregwABAgQIECBAgAABAgQINEFAiG8CopcgQIAAAQIECBAgQIAAAQLtEBDi26HsPQgQIECAAAECBAgQIECAQBMEhPgmIHoJAgQIECBAgAABAgQIECDQDgEhvh3K3oMAAQIECBAgQIAAAQIECDRBQIhvAqKXIECAAAECBAgQIECAAAEC7RAQ4tuh7D0IECBAgAABAgQIECBAgEATBIT4JiB6CQIECBAgQIAAAQIECBAg0A4BIb4dyt6DAAECBAgQIECAAAECBAg0QUCIbwKilyBAgAABAgQIECBAgAABAu0QEOLboew9CBAgQIAAAQIECBAgQIBAEwSE+CYgegkCBAgQIECAAAECBAgQINAOASG+HcregwABAgQIECBAgAABAgQINEFAiG8CopcgQIAAAQIECBAgQIAAAQLtEBDi26HsPQgQIECAAAECBAgQIECAQBMEhPgmIHoJAgQIECBAgAABAgQIECDQDgEhvh3K3oMAAQIECBAgQIAAAQIECDRBQIhvAqKXIECAAAECBAgQIECAAAEC7RAQ4tuh7D0IECBAgAABAgQIECBAgEATBIT4JiB6CQIECBAgQIAAAQIECBAg0A4BIb4dyt6DAAECBAgQIECAAAECBAg0QUCIbwKilyBAgAABAgQIECBAgAABAu0QEOLboew9CBAgQIAAAQIECBAgQIBAEwSE+CYgegkCBAgQIECAAAECBAgQINAOASG+HcregwABAgQIECBAgAABAgQINEFAiG8CopcgQIAAAQIECBAgQIAAAQLtEBDi26HsPQgQIECAAAECBAgQIECAQBMEhPgmIHoJAgQIECBAgAABAgQIECDQDgEhvh3K3oMAAQIECBAgQIAAAQIECDRB4P8DC1pxmEv+R9UAAAAASUVORK5CYII=",
"text/html": [
- "
"
+ " }) }; "
]
},
"metadata": {},
@@ -8037,7 +7506,7 @@
" \n",
" \"\"\").as_dataframe()\n",
"\n",
- "allpubs.columns = ['pubs', 'year', ]\n",
+ "allpubs.columns = ['year', 'pubs']\n",
"\n",
"\n",
"\n",
@@ -8053,7 +7522,7 @@
" \n",
" \"\"\").as_dataframe()\n",
"\n",
- "international.columns = ['international_count', 'year', ]\n",
+ "international.columns = ['year', 'international_count']\n",
"\n",
"\n",
"domestic = dsl.query(f\"\"\"\n",
@@ -8068,7 +7537,7 @@
" \n",
" \"\"\").as_dataframe()\n",
"\n",
- "domestic.columns = ['domestic_count', 'year', ]\n",
+ "domestic.columns = ['year', 'domestic_count']\n",
"\n",
"internal = dsl.query(f\"\"\"\n",
" \n",
@@ -8082,13 +7551,13 @@
" \n",
" \"\"\").as_dataframe()\n",
"\n",
- "internal.columns = ['internal_count', 'year', ]\n",
+ "internal.columns = ['year', 'internal_count']\n",
"\n",
"\n",
"jdf = allpubs.set_index('year'). \\\n",
- " join(international.set_index('year')). \\\n",
- " join(domestic.set_index('year')). \\\n",
- " join(internal.set_index('year')) \n",
+ " merge(international, how='left', on='year'). \\\n",
+ " merge(domestic, how='left', on='year'). \\\n",
+ " merge(internal, how='left', on='year')\n",
"\n",
"px.bar(jdf, title=\"Univ. of Toronto: publications collaboration\")\n"
]
@@ -8125,7 +7594,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.9.9"
+ "version": "3.12.8"
},
"nteract": {
"version": "0.15.0"
diff --git a/docs/_sources/cookbooks/8-organizations/5-mapping-organization-ids-to-organization-data.ipynb.txt b/docs/_sources/cookbooks/8-organizations/5-mapping-organization-ids-to-organization-data.ipynb.txt
new file mode 100644
index 00000000..04fae69d
--- /dev/null
+++ b/docs/_sources/cookbooks/8-organizations/5-mapping-organization-ids-to-organization-data.ipynb.txt
@@ -0,0 +1,922 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "id": "hu34Y6_eo_8c"
+ },
+ "source": [
+ "# Mapping Organization IDs to Organization Data\n",
+ "\n",
+ "In this tutorial, we show how to use the [Dimensions Analytics API](https://www.dimensions.ai/dimensions-apis/) and organization data to extract organization IDs.\n",
+ "\n",
+ "**Use case scenarios:**\n",
+ "\n",
+ "* An analyst has a list of organizations of interest, and wants to get details of their publications from Dimensions. To do this, they they need to map them to organization IDs so they can extract information from the Dimensions database. The organization data can be run through the Dimensions API [extract_affiliations](https://docs.dimensions.ai/dsl/functions.html#function-extract-affiliations) function in order to extract IDs, which can then be utilized to get publication data statistics.\n",
+ "\n",
+ "* A second use case is to standardize messy organization data for \n",
+ "analysis. For example, an analyst might have a set of affiliation data containing many variants of organization names (\"University of Cambridge\", \"Cambridge University\"). By mapping to IDs, the analyst can standardize the data so it's easier to analyse."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "==\n",
+ "CHANGELOG\n",
+ "This notebook was last run on Sep 10, 2025\n",
+ "==\n"
+ ]
+ }
+ ],
+ "source": [
+ "import datetime\n",
+ "print(\"==\\nCHANGELOG\\nThis notebook was last run on %s\\n==\" % datetime.date.today().strftime('%b %d, %Y'))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "id": "lnk_dWT3pINN"
+ },
+ "source": [
+ "## Prerequisites \n",
+ "\n",
+ "This notebook assumes you have installed the [Dimcli](https://pypi.org/project/dimcli/) library and are familiar with the ['Getting Started' tutorial](https://api-lab.dimensions.ai/cookbooks/1-getting-started/1-Using-the-Dimcli-library-to-query-the-API.html).\n",
+ "\n",
+ "To generate an API key from the Dimensions webapp, go to \"My Account\". Under \"General Settings\" there is an \"API key\" section where there is a \"Create API key\" button. More information on this can be found [here](https://dimensions.freshdesk.com/support/solutions/articles/23000018791).\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "executionInfo": {
+ "elapsed": 18999,
+ "status": "ok",
+ "timestamp": 1624636934872,
+ "user": {
+ "displayName": "Derek Denning",
+ "photoUrl": "",
+ "userId": "01288319615638558065"
+ },
+ "user_tz": 300
+ },
+ "id": "p0v3SdNwpDLn",
+ "outputId": "8c654b2a-5fbe-4c73-feca-89ed1a0987f6"
+ },
+ "outputs": [
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001b[2mSearching config file credentials for 'https://app.dimensions.ai' endpoint..\u001b[0m\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "==\n",
+ "Logging in..\n",
+ "==\n",
+ "Logging in..\n",
+ "\u001b[2mDimcli - Dimensions API Client (v1.4)\u001b[0m\n",
+ "\u001b[2mConnected to: - DSL v2.12\u001b[0m\n",
+ "\u001b[2mMethod: dsl.ini file\u001b[0m\n"
+ ]
+ }
+ ],
+ "source": [
+ "!pip install dimcli --quiet\n",
+ "\n",
+ "import dimcli\n",
+ "from dimcli.utils import *\n",
+ "from dimcli.functions import extract_affiliations\n",
+ "\n",
+ "import json\n",
+ "import sys\n",
+ "import pandas as pd\n",
+ "import re\n",
+ "import time\n",
+ "\n",
+ "print(\"==\\nLogging in..\")\n",
+ "# https://digital-science.github.io/dimcli/getting-started.html#authentication\n",
+ "ENDPOINT = \"https://app.dimensions.ai\"\n",
+ "\n",
+ "print(\"==\\nLogging in..\")\n",
+ "# https://digital-science.github.io/dimcli/getting-started.html#authentication\n",
+ "ENDPOINT = \"https://app.dimensions.ai\"\n",
+ "if 'google.colab' in sys.modules:\n",
+ " import getpass\n",
+ " KEY = getpass.getpass(prompt='API Key: ') \n",
+ " dimcli.login(key=KEY, endpoint=ENDPOINT)\n",
+ "else:\n",
+ " KEY = \"\"\n",
+ " dimcli.login(key=KEY, endpoint=ENDPOINT)\n",
+ "dsl = dimcli.Dsl()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "id": "RlPdopEbpeyE"
+ },
+ "source": [
+ "## 1. Importing Organization Data\n",
+ "\n",
+ "There are several ways to obtain organization data. Below we show examples for 2 different ways to obtain organization data that can be used to run through the Dimensions API for ID mapping. *For purposes of this demostration, we will be using method 1*. Please uncomment the other sections if you wish to use those methods instead.\n",
+ "\n",
+ "\n",
+ "1. Manually Generate Organization Data\n",
+ "2. Load Organization Data from Local Machine\n",
+ "\n",
+ "*Note* - To map organizational data to IDs, the data must conform to mapping specifications and contain data (if available) for the following 4 columns (with column headers being lowercase):\n",
+ "* name - name of the organization\n",
+ "* city - city of the organization\n",
+ "* state - state of the organization (use the full name of the state, not acronym)\n",
+ "* country - country of the organization\n",
+ "\n",
+ "\n",
+ "The user may use structured or unstructured organization data for mapping to IDs like the following:\n",
+ "\n",
+ "* Structured Data e.g., \n",
+ "`[{\"name\":\"Southwestern University\",\n",
+ " \"city\":\"Georgetown\",\n",
+ " \"state\":\"Texas\",\n",
+ " \"country\":\"USA\"}]`\n",
+ "* Unstructured Data\n",
+ "e.g., `[{\"affiliation\": \"university of oxford, uk\"}]`\n",
+ "\n",
+ "*For purposes of this notebook, we will be utilizing structured data in a pandas dataframe. Therefore, please ensure your organization dataset resembles the format observed under method 1, below.*\n",
+ "\n",
+ "\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "id": "X_t-RnDWv3BB"
+ },
+ "source": [
+ "### 1.1 Manually Generate Organization Data\n",
+ "\n",
+ "The following cell builds an example organization dataset."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 320
+ },
+ "executionInfo": {
+ "elapsed": 207,
+ "status": "ok",
+ "timestamp": 1624636951400,
+ "user": {
+ "displayName": "Derek Denning",
+ "photoUrl": "",
+ "userId": "01288319615638558065"
+ },
+ "user_tz": 300
+ },
+ "id": "YtckPfuTpXNi",
+ "outputId": "70d674be-a82a-4f49-fd52-48f1655e6a73"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
name
\n",
+ "
city
\n",
+ "
state
\n",
+ "
country
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
0
\n",
+ "
Augusta Univeristy
\n",
+ "
Augusta
\n",
+ "
Georgia
\n",
+ "
United States
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
+ "
Baylor College of Medicine
\n",
+ "
Houston
\n",
+ "
Texas
\n",
+ "
United States
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
Brown University
\n",
+ "
Providence
\n",
+ "
Rhode Island
\n",
+ "
United States
\n",
+ "
\n",
+ "
\n",
+ "
3
\n",
+ "
California Institute of Technology
\n",
+ "
Pasadena
\n",
+ "
California
\n",
+ "
United States
\n",
+ "
\n",
+ "
\n",
+ "
4
\n",
+ "
Duke Univerisity
\n",
+ "
Durham
\n",
+ "
North Carolina
\n",
+ "
United States
\n",
+ "
\n",
+ "
\n",
+ "
5
\n",
+ "
Emory University
\n",
+ "
Atlanta
\n",
+ "
Georgia
\n",
+ "
United States
\n",
+ "
\n",
+ "
\n",
+ "
6
\n",
+ "
Florida State University
\n",
+ "
Tallahassee
\n",
+ "
Florida
\n",
+ "
United States
\n",
+ "
\n",
+ "
\n",
+ "
7
\n",
+ "
Harvard Medical School
\n",
+ "
Boston
\n",
+ "
Massachusetts
\n",
+ "
United States
\n",
+ "
\n",
+ "
\n",
+ "
8
\n",
+ "
Kent State University
\n",
+ "
Kent
\n",
+ "
Ohio
\n",
+ "
United States
\n",
+ "
\n",
+ "
\n",
+ "
9
\n",
+ "
New York University
\n",
+ "
New York
\n",
+ "
New York
\n",
+ "
United States
\n",
+ "
\n",
+ "
\n",
+ "
10
\n",
+ "
Mayo Clinic
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
United States
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " name city state \\\n",
+ "0 Augusta Univeristy Augusta Georgia \n",
+ "1 Baylor College of Medicine Houston Texas \n",
+ "2 Brown University Providence Rhode Island \n",
+ "3 California Institute of Technology Pasadena California \n",
+ "4 Duke Univerisity Durham North Carolina \n",
+ "5 Emory University Atlanta Georgia \n",
+ "6 Florida State University Tallahassee Florida \n",
+ "7 Harvard Medical School Boston Massachusetts \n",
+ "8 Kent State University Kent Ohio \n",
+ "9 New York University New York New York \n",
+ "10 Mayo Clinic NaN NaN \n",
+ "\n",
+ " country \n",
+ "0 United States \n",
+ "1 United States \n",
+ "2 United States \n",
+ "3 United States \n",
+ "4 United States \n",
+ "5 United States \n",
+ "6 United States \n",
+ "7 United States \n",
+ "8 United States \n",
+ "9 United States \n",
+ "10 United States "
+ ]
+ },
+ "execution_count": 3,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# The following generates a table of organization data with 4 columns\n",
+ "organization_names = pd.Series(['Augusta Univeristy', 'Baylor College of Medicine', 'Brown University', 'California Institute of Technology', 'Duke Univerisity',\n",
+ " 'Emory University', 'Florida State University', 'Harvard Medical School', 'Kent State University', 'New York University', 'Mayo Clinic'])\n",
+ "organization_cities = pd.Series(['Augusta', 'Houston', 'Providence', 'Pasadena', 'Durham',\n",
+ " 'Atlanta', 'Tallahassee', 'Boston', 'Kent', 'New York'])\n",
+ "organization_states = pd.Series(['Georgia', 'Texas', 'Rhode Island', 'California', 'North Carolina',\n",
+ " 'Georgia', 'Florida', 'Massachusetts', 'Ohio', 'New York'])\n",
+ "organization_countries = pd.Series(['United States', 'United States', 'United States', 'United States', 'United States',\n",
+ " 'United States', 'United States', 'United States', 'United States', 'United States', 'United States'])\n",
+ "\n",
+ "orgs = pd.DataFrame({'name':organization_names, 'city':organization_cities, 'state':organization_states, 'country':organization_countries})\n",
+ "\n",
+ "# Preview Dataset\n",
+ "orgs"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "id": "FK2-EG8czdg_"
+ },
+ "source": [
+ "### 1.2 Load Organization Data from Local Machine\n",
+ "\n",
+ "The following cells can be utilized to import an excel file of organization data from a local machine.\n",
+ "\n",
+ "This method is useful for when you need to map hundreds or thousands of organizations to IDs, as the bulk process using the API will be much faster than any individual mapping.\n",
+ "\n",
+ "\n",
+ "*Please uncomment the cells below if to be utilized*"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "Collapsed": "false",
+ "id": "-OHw5k8Yzcfe"
+ },
+ "outputs": [],
+ "source": [
+ "# # Upload the organization dataset from local machine\n",
+ "\n",
+ "# from google.colab import files\n",
+ "# uploaded = files.upload()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "Collapsed": "false",
+ "id": "0oEG2QB1xqgH"
+ },
+ "outputs": [],
+ "source": [
+ "# # Load and preview the organization dataset into a pandas dataframe\n",
+ "\n",
+ "# import io\n",
+ "# import pandas as pd\n",
+ "\n",
+ "# orgs = pd.read_excel(io.BytesIO(uploaded['dataset_name.xlsx']))\n",
+ "\n",
+ "# orgs.head()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "id": "rOeRQ6S7244b"
+ },
+ "source": [
+ "## 2. Utilizing Dimensions API to Extract IDs\n",
+ "\n",
+ " The following cells will take our organization data and run it through the Dimensions API to pull back IDs mapped to each organization.\n",
+ "\n",
+ "Here, we utilize the \"[extract_affiliations](https://docs.dimensions.ai/dsl/functions.html#function-extract-affiliations)\" API function which can be used to enrich private datasets including non-disambiguated organizations data with Dimensions organization IDs.\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "Collapsed": "false",
+ "id": "s3QexS3m4OsV"
+ },
+ "outputs": [],
+ "source": [
+ "# First, we replace empty data with 'null' to satisfy mapping specifications\n",
+ "\n",
+ "orgs = orgs.fillna('null')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "Collapsed": "false",
+ "id": "rZqY2QTD26y5"
+ },
+ "outputs": [],
+ "source": [
+ "# Second, we will convert organization data from a dataframe to a dictionary (json) for ID mapping\n",
+ "\n",
+ "recs = orgs.to_dict(orient='records')"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "executionInfo": {
+ "elapsed": 3106,
+ "status": "ok",
+ "timestamp": 1624636962862,
+ "user": {
+ "displayName": "Derek Denning",
+ "photoUrl": "",
+ "userId": "01288319615638558065"
+ },
+ "user_tz": 300
+ },
+ "id": "W_AkE-i231b8",
+ "outputId": "af752023-c2cd-45dc-948d-04b080a91b99"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "200 records complete!\n"
+ ]
+ }
+ ],
+ "source": [
+ "# Then we will take the organization data, run it through the API and return organization IDs\n",
+ "\n",
+ "# Chunk records to batches, API takes up to 200 records at a time.\n",
+ "def chunk_records(l, n):\n",
+ " for i in range(0, len(l), n):\n",
+ " yield l[i : i + n]\n",
+ "\n",
+ "# Use dimcli's from extract_affiliations API wrapper to process data\n",
+ "\n",
+ "chunksize = 200\n",
+ "org_data = pd.DataFrame()\n",
+ "for k,chunk in enumerate(chunk_records(recs, chunksize)):\n",
+ " output = extract_affiliations(chunk, as_json=False)\n",
+ " org_data = pd.concat([org_data, output])\n",
+ " # Pause to avoid overloading API with too many calls too quickly\n",
+ " time.sleep(1)\n",
+ " print(f\"{(k+1)*chunksize} records complete!\")"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 321
+ },
+ "executionInfo": {
+ "elapsed": 177,
+ "status": "ok",
+ "timestamp": 1624636964136,
+ "user": {
+ "displayName": "Derek Denning",
+ "photoUrl": "",
+ "userId": "01288319615638558065"
+ },
+ "user_tz": 300
+ },
+ "id": "yFRkUViz34hf",
+ "outputId": "9c2d920b-93e5-4ad1-f84b-0871d9023801"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
input.city
\n",
+ "
input.country
\n",
+ "
input.name
\n",
+ "
input.state
\n",
+ "
grid_id
\n",
+ "
grid_name
\n",
+ "
grid_city
\n",
+ "
grid_state
\n",
+ "
grid_country
\n",
+ "
requires_review
\n",
+ "
geo_country_id
\n",
+ "
geo_country_name
\n",
+ "
geo_country_code
\n",
+ "
geo_state_id
\n",
+ "
geo_state_name
\n",
+ "
geo_state_code
\n",
+ "
geo_city_id
\n",
+ "
geo_city_name
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
0
\n",
+ "
Augusta
\n",
+ "
United States
\n",
+ "
Augusta Univeristy
\n",
+ "
Georgia
\n",
+ "
grid.410427.4
\n",
+ "
Augusta University
\n",
+ "
Augusta
\n",
+ "
Georgia
\n",
+ "
United States
\n",
+ "
False
\n",
+ "
6252001
\n",
+ "
United States
\n",
+ "
US
\n",
+ "
4197000
\n",
+ "
Georgia
\n",
+ "
US-GA
\n",
+ "
4180531
\n",
+ "
Augusta
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
+ "
Houston
\n",
+ "
United States
\n",
+ "
Baylor College of Medicine
\n",
+ "
Texas
\n",
+ "
grid.39382.33
\n",
+ "
Baylor College of Medicine
\n",
+ "
Houston
\n",
+ "
Texas
\n",
+ "
United States
\n",
+ "
False
\n",
+ "
6252001
\n",
+ "
United States
\n",
+ "
US
\n",
+ "
4736286
\n",
+ "
Texas
\n",
+ "
US-TX
\n",
+ "
4699066
\n",
+ "
Houston
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
Providence
\n",
+ "
United States
\n",
+ "
Brown University
\n",
+ "
Rhode Island
\n",
+ "
grid.40263.33
\n",
+ "
Brown University
\n",
+ "
Providence
\n",
+ "
Rhode Island
\n",
+ "
United States
\n",
+ "
False
\n",
+ "
6252001
\n",
+ "
United States
\n",
+ "
US
\n",
+ "
5224323
\n",
+ "
Rhode Island
\n",
+ "
US-RI
\n",
+ "
5224151
\n",
+ "
Providence
\n",
+ "
\n",
+ "
\n",
+ "
3
\n",
+ "
Pasadena
\n",
+ "
United States
\n",
+ "
California Institute of Technology
\n",
+ "
California
\n",
+ "
grid.20861.3d
\n",
+ "
California Institute of Technology
\n",
+ "
Pasadena
\n",
+ "
California
\n",
+ "
United States
\n",
+ "
False
\n",
+ "
6252001
\n",
+ "
United States
\n",
+ "
US
\n",
+ "
5332921
\n",
+ "
California
\n",
+ "
US-CA
\n",
+ "
5381396
\n",
+ "
Pasadena
\n",
+ "
\n",
+ "
\n",
+ "
4
\n",
+ "
Durham
\n",
+ "
United States
\n",
+ "
Duke Univerisity
\n",
+ "
North Carolina
\n",
+ "
grid.26009.3d
\n",
+ "
Duke University
\n",
+ "
Durham
\n",
+ "
North Carolina
\n",
+ "
United States
\n",
+ "
False
\n",
+ "
6252001
\n",
+ "
United States
\n",
+ "
US
\n",
+ "
4482348
\n",
+ "
North Carolina
\n",
+ "
US-NC
\n",
+ "
4464368
\n",
+ "
Durham
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " input.city input.country input.name \\\n",
+ "0 Augusta United States Augusta Univeristy \n",
+ "1 Houston United States Baylor College of Medicine \n",
+ "2 Providence United States Brown University \n",
+ "3 Pasadena United States California Institute of Technology \n",
+ "4 Durham United States Duke Univerisity \n",
+ "\n",
+ " input.state grid_id grid_name \\\n",
+ "0 Georgia grid.410427.4 Augusta University \n",
+ "1 Texas grid.39382.33 Baylor College of Medicine \n",
+ "2 Rhode Island grid.40263.33 Brown University \n",
+ "3 California grid.20861.3d California Institute of Technology \n",
+ "4 North Carolina grid.26009.3d Duke University \n",
+ "\n",
+ " grid_city grid_state grid_country requires_review geo_country_id \\\n",
+ "0 Augusta Georgia United States False 6252001 \n",
+ "1 Houston Texas United States False 6252001 \n",
+ "2 Providence Rhode Island United States False 6252001 \n",
+ "3 Pasadena California United States False 6252001 \n",
+ "4 Durham North Carolina United States False 6252001 \n",
+ "\n",
+ " geo_country_name geo_country_code geo_state_id geo_state_name \\\n",
+ "0 United States US 4197000 Georgia \n",
+ "1 United States US 4736286 Texas \n",
+ "2 United States US 5224323 Rhode Island \n",
+ "3 United States US 5332921 California \n",
+ "4 United States US 4482348 North Carolina \n",
+ "\n",
+ " geo_state_code geo_city_id geo_city_name \n",
+ "0 US-GA 4180531 Augusta \n",
+ "1 US-TX 4699066 Houston \n",
+ "2 US-RI 5224151 Providence \n",
+ "3 US-CA 5381396 Pasadena \n",
+ "4 US-NC 4464368 Durham "
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Preview the extracted organization ID dataframe\n",
+ "# Note: data columns labeled with \"input\" are the original organization data supplied to the API\n",
+ "\n",
+ "org_data.head()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "id": "0xmORlDluF0e"
+ },
+ "source": [
+ "Note: Some records returned in the mapping may require manual review, as some results may give more than one organization of interest (see below). The user can utilize this information to update their original organization data that is inputted to this notebook."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 400
+ },
+ "executionInfo": {
+ "elapsed": 202,
+ "status": "ok",
+ "timestamp": 1624636975652,
+ "user": {
+ "displayName": "Derek Denning",
+ "photoUrl": "",
+ "userId": "01288319615638558065"
+ },
+ "user_tz": 300
+ },
+ "id": "XhI6un5zxL7L",
+ "outputId": "26b38de2-f88d-4453-efc0-a174bd3dd739"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
input.city
\n",
+ "
input.country
\n",
+ "
input.name
\n",
+ "
input.state
\n",
+ "
grid_id
\n",
+ "
grid_name
\n",
+ "
grid_city
\n",
+ "
grid_state
\n",
+ "
grid_country
\n",
+ "
requires_review
\n",
+ "
geo_country_id
\n",
+ "
geo_country_name
\n",
+ "
geo_country_code
\n",
+ "
geo_state_id
\n",
+ "
geo_state_name
\n",
+ "
geo_state_code
\n",
+ "
geo_city_id
\n",
+ "
geo_city_name
\n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ "Empty DataFrame\n",
+ "Columns: [input.city, input.country, input.name, input.state, grid_id, grid_name, grid_city, grid_state, grid_country, requires_review, geo_country_id, geo_country_name, geo_country_code, geo_state_id, geo_state_name, geo_state_code, geo_city_id, geo_city_name]\n",
+ "Index: []"
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "org_data['requires_review'] = org_data['requires_review'].astype(str)\n",
+ "org_data_review = org_data.loc[org_data['requires_review'] == 'True']\n",
+ "org_data_review"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "id": "e2YjFdSk4X6X"
+ },
+ "source": [
+ "## 3. Save the ID Dataset we created\n",
+ "\n",
+ "The following cell will export the ID-mapped organization data to a csv file that can be saved to your local machine.\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 17
+ },
+ "executionInfo": {
+ "elapsed": 132,
+ "status": "ok",
+ "timestamp": 1623264999048,
+ "user": {
+ "displayName": "Derek Denning",
+ "photoUrl": "",
+ "userId": "01288319615638558065"
+ },
+ "user_tz": 240
+ },
+ "id": "mvfSL5Ci38ft",
+ "outputId": "1585e34f-d308-4afd-e2cb-847a0e27a405"
+ },
+ "outputs": [],
+ "source": [
+ "# temporarily save pandas dataframe as file in colab environment\n",
+ "org_data.to_csv('file_name.csv')\n",
+ "\n",
+ "if 'google.colab' in sys.modules:\n",
+ " \n",
+ " from google.colab import files\n",
+ "\n",
+ " # download file to local machine\n",
+ " files.download('file_name.csv')"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "id": "HWwI1o_q4vxv"
+ },
+ "source": [
+ "## Conclusions\n",
+ "\n",
+ "In this notebook we have shown how to use the [Dimensions Analytics API](https://www.dimensions.ai/dimensions-apis/) *extract_affiliations* function to assign identifiers to organizations data.\n",
+ "\n",
+ "For more background, see the [extract_affiliations function documentation](https://docs.dimensions.ai/dsl/functions.html#function-extract-affiliations), as well as the other functions available via the Dimensions API. \n",
+ "\n"
+ ]
+ }
+ ],
+ "metadata": {
+ "colab": {
+ "collapsed_sections": [],
+ "name": "[APILAB] Derek Denning - grid_mapping_api.ipynb",
+ "provenance": []
+ },
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "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.12.8"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/docs/_sources/cookbooks/8-organizations/6-organization-groups.ipynb.txt b/docs/_sources/cookbooks/8-organizations/6-organization-groups.ipynb.txt
index 545ce5ee..6ca8faf2 100644
--- a/docs/_sources/cookbooks/8-organizations/6-organization-groups.ipynb.txt
+++ b/docs/_sources/cookbooks/8-organizations/6-organization-groups.ipynb.txt
@@ -11,13 +11,13 @@
"This tutorial shows how use the organization groups in Dimensions (e.g. the [funder groups](https://app.dimensions.ai/browse/facet-filter-groups/publication/funder_shared_group_facet)) in order to construct API queries. \n",
"\n",
"The Dimensions team maintains various organization groups definitions in the main Dimensions web application. \n",
- "These groups are not available directly via the API, but since they are a simple list of GRID identifiers, they can be easily downloaded as a CSV file. \n",
+ "These groups are not available directly via the API, but since they are a simple list of organization identifiers, they can be easily downloaded as a CSV file. \n",
"Once you have a CSV file, it is possible to parse it with Python and use its contents in an API query. \n",
"\n",
"Outline \n",
"\n",
"1. Downloading Dimensions' organization groups as a CSV file.\n",
- "2. Constructing API queries using a list of GRID IDs\n",
+ "2. Constructing API queries using a list of organization IDs\n",
" "
]
},
@@ -32,7 +32,7 @@
"text": [
"==\n",
"CHANGELOG\n",
- "This notebook was last run on Feb 21, 2022\n",
+ "This notebook was last run on Sep 10, 2025\n",
"==\n"
]
}
@@ -57,7 +57,7 @@
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": 2,
"metadata": {
"Collapsed": "false"
},
@@ -75,8 +75,8 @@
"text": [
"==\n",
"Logging in..\n",
- "\u001b[2mDimcli - Dimensions API Client (v0.9.6)\u001b[0m\n",
- "\u001b[2mConnected to: - DSL v2.0\u001b[0m\n",
+ "\u001b[2mDimcli - Dimensions API Client (v1.4)\u001b[0m\n",
+ "\u001b[2mConnected to: - DSL v2.12\u001b[0m\n",
"\u001b[2mMethod: dsl.ini file\u001b[0m\n"
]
}
@@ -118,7 +118,7 @@
"\n",
"2. Use the 'Copy to my Groups' command to create a copy of that group in your personal space.\n",
"\n",
- "3. Go to 'My Groups', where you can select 'Export group definitions' to download a CSV file containing the groups details including GRID IDs. \n",
+ "3. Go to 'My Groups', where you can select 'Export group definitions' to download a CSV file containing the groups details including organization IDs. \n",
"\n",
"See below a screenshot of the [Dimensions' groups page](http://api-sample-data.dimensions.ai/data/funder-groups/dimensions-funder-groups-page.jpg). \n",
"\n",
@@ -127,7 +127,7 @@
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": 3,
"metadata": {},
"outputs": [
{
@@ -139,7 +139,7 @@
""
]
},
- "execution_count": 7,
+ "execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
@@ -164,7 +164,7 @@
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": 4,
"metadata": {
"Collapsed": "false"
},
@@ -432,7 +432,7 @@
"24 grid.457898.f "
]
},
- "execution_count": 9,
+ "execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
@@ -449,7 +449,7 @@
"Collapsed": "false"
},
"source": [
- "Let's get the GRID IDs for the NSF and put them into a Python list.\n",
+ "Let's get the organization IDs for the NSF and put them into a Python list.\n",
"\n",
"Then we can generate queries programmatically using this list. \n",
"\n",
@@ -458,7 +458,7 @@
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": 5,
"metadata": {
"Collapsed": "false"
},
@@ -493,14 +493,14 @@
" 'grid.457898.f']"
]
},
- "execution_count": 11,
+ "execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "nsfgrids = data['ID'].to_list()\n",
- "nsfgrids"
+ "nsforgs = data['ID'].to_list()\n",
+ "nsforgs"
]
},
{
@@ -511,14 +511,14 @@
"source": [
"### How many grants from the NSF? \n",
"\n",
- "Let's try a simple API query that uses the contents of `nsfgrids`. \n",
+ "Let's try a simple API query that uses the contents of `nsforgs`. \n",
"\n",
"The total number of results should match [what you see in Dimensions](https://app.dimensions.ai/discover/publication?and_facet_funder_shared_group_facet=574603a4-0c27-4844-9f74-7e6810e25cfb).\n"
]
},
{
"cell_type": "code",
- "execution_count": 12,
+ "execution_count": 6,
"metadata": {
"Collapsed": "false"
},
@@ -532,8 +532,10 @@
" where funders.id in [\"grid.457768.f\", \"grid.457785.c\", \"grid.457799.1\", \"grid.457810.f\", \"grid.457836.b\", \"grid.457875.c\", \"grid.457916.8\", \"grid.457789.0\", \"grid.457813.c\", \"grid.457814.b\", \"grid.457842.8\", \"grid.457821.d\", \"grid.457772.4\", \"grid.457801.f\", \"grid.457891.6\", \"grid.457892.5\", \"grid.457845.f\", \"grid.457922.f\", \"grid.457896.1\", \"grid.431093.c\", \"grid.457758.c\", \"grid.457907.8\", \"grid.473792.c\", \"grid.457846.c\", \"grid.457898.f\"]\n",
"return grants[id+title]\n",
"\n",
- "Returned Grants: 20 (total = 601237)\n",
- "\u001b[2mTime: 2.03s\u001b[0m\n"
+ "Returned Grants: 20 (total = 621348)\n",
+ "\u001b[2mTime: 0.61s\u001b[0m\n",
+ "WARNINGS [1]\n",
+ "Field 'funders' is deprecated in favor of funder_orgs. Please refer to https://docs.dimensions.ai/dsl/releasenotes.html for more details\n"
]
},
{
@@ -564,133 +566,133 @@
" \n",
"
\n",
"
0
\n",
- "
grant.9752271
\n",
- "
NNA Planning: Developing community frameworks ...
\n",
+ "
grant.14880777
\n",
+ "
Postdoctoral Fellowship: PRFB: Mapping the Bum...
\n",
"
\n",
"
\n",
"
1
\n",
- "
grant.9890102
\n",
- "
RUI: Exciton-Phonon Interactions in Solids bas...
\n",
+ "
grant.14880767
\n",
+ "
Postdoctoral Fellowship: PRFB: Using the intro...
\n",
"
\n",
"
\n",
"
2
\n",
- "
grant.9982417
\n",
- "
CAREER: Empowering White-box Driven Analytics ...
\n",
+ "
grant.14976921
\n",
+ "
Rossbypalooza 2026: A Student-led Summer Schoo...
\n",
"
\n",
"
\n",
"
3
\n",
- "
grant.9982416
\n",
- "
CAREER: Holistic Framework for Constructing Dy...
\n",
+ "
grant.14955547
\n",
+ "
Postdoctoral Fellowship: PRFB: The Role of Pla...
\n",
"
\n",
"
\n",
"
4
\n",
- "
grant.9982395
\n",
- "
CAREER: Leveraging physical properties of mode...
\n",
+ "
grant.14880768
\n",
+ "
Postdoctoral Fellowship: PRFB: Testing a role ...
\n",
"
\n",
"
\n",
"
5
\n",
- "
grant.9785674
\n",
- "
BPC-AE Collaborative Research: Researching Equ...
\n",
+ "
grant.14973500
\n",
+ "
Postdoctoral Fellowship: EAR-PF: Reconstructin...
\n",
"
\n",
"
\n",
"
6
\n",
- "
grant.9785672
\n",
- "
BPC-AE Collaborative Research: Researching Equ...
\n",
+ "
grant.14976878
\n",
+ "
Conference: Recent Perspectives on Moments of ...
\n",
"
\n",
"
\n",
"
7
\n",
- "
grant.9752397
\n",
- "
Equitable Learning to Advance Technical Education
\n",
+ "
grant.14955637
\n",
+ "
Conference: Rutgers Gauge Theory, Low-Dimensio...
\n",
"
\n",
"
\n",
"
8
\n",
- "
grant.9995499
\n",
- "
CAREER: New imaging of mid-ocean ridge systems...
\n",
+ "
grant.14955550
\n",
+ "
Postdoctoral Fellowship: PRFB: Integrating the...
\n",
"
\n",
"
\n",
"
9
\n",
- "
grant.9995464
\n",
- "
CAREER: Reconstructing Parasite Abundance in R...
\n",
+ "
grant.14880771
\n",
+ "
Postdoctoral Fellowship: PRFB: Eco-evolutionar...
\n",
"
\n",
"
\n",
"
10
\n",
- "
grant.9752334
\n",
- "
Collaborative Research: SWIFT: Intelligent Dyn...
\n",
+ "
grant.14976854
\n",
+ "
Conference: Meeting in the Middle: Conference ...
\n",
"
\n",
"
\n",
"
11
\n",
- "
grant.9752333
\n",
- "
Collaborative Research: SWIFT: Intelligent Dyn...
\n",
+ "
grant.14976778
\n",
+ "
MCA: Eavesdropping vectors and disease transmi...
\n",
"
\n",
"
\n",
"
12
\n",
- "
grant.9995542
\n",
- "
CAREER: Learning Mechanisms from Single Cell M...
\n",
+ "
grant.14969598
\n",
+ "
Conference: Universal Statistics in Number Theory
\n",
"
\n",
"
\n",
"
13
\n",
- "
grant.9995538
\n",
- "
CAREER: A Transformative Approach for Teaching...
\n",
+ "
grant.14964639
\n",
+ "
Long term compliance observations of the evolv...
\n",
"
\n",
"
\n",
"
14
\n",
- "
grant.9995527
\n",
- "
CAREER: Interlimb Neural Coupling to Enhance G...
\n",
+ "
grant.14880779
\n",
+ "
Postdoctoral Fellowship: PRFB: Elucidating the...
\n",
"
\n",
"
\n",
"
15
\n",
- "
grant.9995522
\n",
- "
CAREER: Fossil Amber Insight Into Macroevoluti...
\n",
+ "
grant.14976745
\n",
+ "
What drives spatial variability in water-colum...
\n",
"
\n",
"
\n",
"
16
\n",
- "
grant.9995520
\n",
- "
2022 Origins of Life GRC and GRS: Environments...
\n",
+ "
grant.14976476
\n",
+ "
IRES: Exploring New Horizons in the Observable...
\n",
"
\n",
"
\n",
"
17
\n",
- "
grant.9995519
\n",
- "
CAREER: Invariants and Entropy of Square Integ...
\n",
+ "
grant.14969702
\n",
+ "
MCA Pilot PUI: Can unhatched eggs or trash aff...
\n",
"
\n",
"
\n",
"
18
\n",
- "
grant.9995488
\n",
- "
CAREER: Statistical Learning from a Modern Per...
\n",
+ "
grant.14954673
\n",
+ "
Conference: Geometry Labs United 2025
\n",
"
\n",
"
\n",
"
19
\n",
- "
grant.9995470
\n",
- "
CAREER: CAS- Climate: Making Decarbonization o...
\n",
+ "
grant.14976899
\n",
+ "
Collaborative Research: FIRE-MODEL: Advancing ...
\n",
"
\n",
" \n",
"\n",
""
],
"text/plain": [
- " id title\n",
- "0 grant.9752271 NNA Planning: Developing community frameworks ...\n",
- "1 grant.9890102 RUI: Exciton-Phonon Interactions in Solids bas...\n",
- "2 grant.9982417 CAREER: Empowering White-box Driven Analytics ...\n",
- "3 grant.9982416 CAREER: Holistic Framework for Constructing Dy...\n",
- "4 grant.9982395 CAREER: Leveraging physical properties of mode...\n",
- "5 grant.9785674 BPC-AE Collaborative Research: Researching Equ...\n",
- "6 grant.9785672 BPC-AE Collaborative Research: Researching Equ...\n",
- "7 grant.9752397 Equitable Learning to Advance Technical Education\n",
- "8 grant.9995499 CAREER: New imaging of mid-ocean ridge systems...\n",
- "9 grant.9995464 CAREER: Reconstructing Parasite Abundance in R...\n",
- "10 grant.9752334 Collaborative Research: SWIFT: Intelligent Dyn...\n",
- "11 grant.9752333 Collaborative Research: SWIFT: Intelligent Dyn...\n",
- "12 grant.9995542 CAREER: Learning Mechanisms from Single Cell M...\n",
- "13 grant.9995538 CAREER: A Transformative Approach for Teaching...\n",
- "14 grant.9995527 CAREER: Interlimb Neural Coupling to Enhance G...\n",
- "15 grant.9995522 CAREER: Fossil Amber Insight Into Macroevoluti...\n",
- "16 grant.9995520 2022 Origins of Life GRC and GRS: Environments...\n",
- "17 grant.9995519 CAREER: Invariants and Entropy of Square Integ...\n",
- "18 grant.9995488 CAREER: Statistical Learning from a Modern Per...\n",
- "19 grant.9995470 CAREER: CAS- Climate: Making Decarbonization o..."
+ " id title\n",
+ "0 grant.14880777 Postdoctoral Fellowship: PRFB: Mapping the Bum...\n",
+ "1 grant.14880767 Postdoctoral Fellowship: PRFB: Using the intro...\n",
+ "2 grant.14976921 Rossbypalooza 2026: A Student-led Summer Schoo...\n",
+ "3 grant.14955547 Postdoctoral Fellowship: PRFB: The Role of Pla...\n",
+ "4 grant.14880768 Postdoctoral Fellowship: PRFB: Testing a role ...\n",
+ "5 grant.14973500 Postdoctoral Fellowship: EAR-PF: Reconstructin...\n",
+ "6 grant.14976878 Conference: Recent Perspectives on Moments of ...\n",
+ "7 grant.14955637 Conference: Rutgers Gauge Theory, Low-Dimensio...\n",
+ "8 grant.14955550 Postdoctoral Fellowship: PRFB: Integrating the...\n",
+ "9 grant.14880771 Postdoctoral Fellowship: PRFB: Eco-evolutionar...\n",
+ "10 grant.14976854 Conference: Meeting in the Middle: Conference ...\n",
+ "11 grant.14976778 MCA: Eavesdropping vectors and disease transmi...\n",
+ "12 grant.14969598 Conference: Universal Statistics in Number Theory\n",
+ "13 grant.14964639 Long term compliance observations of the evolv...\n",
+ "14 grant.14880779 Postdoctoral Fellowship: PRFB: Elucidating the...\n",
+ "15 grant.14976745 What drives spatial variability in water-colum...\n",
+ "16 grant.14976476 IRES: Exploring New Horizons in the Observable...\n",
+ "17 grant.14969702 MCA Pilot PUI: Can unhatched eggs or trash aff...\n",
+ "18 grant.14954673 Conference: Geometry Labs United 2025\n",
+ "19 grant.14976899 Collaborative Research: FIRE-MODEL: Advancing ..."
]
},
- "execution_count": 12,
+ "execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
@@ -700,7 +702,7 @@
"\n",
"query = f\"\"\"\n",
"search grants \n",
- " where funders.id in {json.dumps(nsfgrids)}\n",
+ " where funders.id in {json.dumps(nsforgs)}\n",
"return grants[id+title]\n",
"\"\"\"\n",
"\n",
@@ -727,7 +729,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.9.9"
+ "version": "3.12.8"
}
},
"nbformat": 4,
diff --git a/docs/_sources/cookbooks/8-organizations/7-benchmarking-organizations.ipynb.txt b/docs/_sources/cookbooks/8-organizations/7-benchmarking-organizations.ipynb.txt
index 4ce0f55c..b38638a8 100644
--- a/docs/_sources/cookbooks/8-organizations/7-benchmarking-organizations.ipynb.txt
+++ b/docs/_sources/cookbooks/8-organizations/7-benchmarking-organizations.ipynb.txt
@@ -20,7 +20,7 @@
},
{
"cell_type": "code",
- "execution_count": 2,
+ "execution_count": 1,
"metadata": {},
"outputs": [
{
@@ -29,7 +29,7 @@
"text": [
"==\n",
"CHANGELOG\n",
- "This notebook was last run on Feb 21, 2022\n",
+ "This notebook was last run on Sep 10, 2025\n",
"==\n"
]
}
@@ -54,7 +54,7 @@
},
{
"cell_type": "code",
- "execution_count": 3,
+ "execution_count": 2,
"metadata": {},
"outputs": [
{
@@ -70,8 +70,8 @@
"text": [
"==\n",
"Logging in..\n",
- "\u001b[2mDimcli - Dimensions API Client (v0.9.6)\u001b[0m\n",
- "\u001b[2mConnected to: - DSL v2.0\u001b[0m\n",
+ "\u001b[2mDimcli - Dimensions API Client (v1.4)\u001b[0m\n",
+ "\u001b[2mConnected to: - DSL v2.12\u001b[0m\n",
"\u001b[2mMethod: dsl.ini file\u001b[0m\n"
]
}
@@ -122,7 +122,7 @@
},
{
"cell_type": "code",
- "execution_count": 4,
+ "execution_count": 3,
"metadata": {
"Collapsed": "false",
"colab": {},
@@ -135,7 +135,7 @@
"output_type": "stream",
"text": [
"Returned Research_orgs: 20\n",
- "\u001b[2mTime: 21.14s\u001b[0m\n"
+ "\u001b[2mTime: 12.29s\u001b[0m\n"
]
},
{
@@ -159,204 +159,204 @@
" \n",
"
\n",
"
\n",
- "
altmetric_median
\n",
- "
count
\n",
"
id
\n",
"
name
\n",
+ "
altmetric_median
\n",
+ "
count
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
- "
5.0
\n",
- "
546592
\n",
"
grid.38142.3c
\n",
"
Harvard University
\n",
+ "
5.292790
\n",
+ "
715128
\n",
"
\n",
"
\n",
"
1
\n",
- "
3.0
\n",
- "
484017
\n",
"
grid.26999.3d
\n",
- "
University of Tokyo
\n",
+ "
The University of Tokyo
\n",
+ "
3.000000
\n",
+ "
570861
\n",
"
\n",
"
\n",
"
2
\n",
- "
4.0
\n",
- "
342764
\n",
"
grid.17063.33
\n",
"
University of Toronto
\n",
+ "
4.019046
\n",
+ "
435895
\n",
"
\n",
"
\n",
"
3
\n",
- "
3.0
\n",
- "
320966
\n",
"
grid.214458.e
\n",
- "
University of Michigan
\n",
+ "
University of Michigan-Ann Arbor
\n",
+ "
3.968242
\n",
+ "
412146
\n",
"
\n",
"
\n",
"
4
\n",
- "
3.0
\n",
- "
310485
\n",
- "
grid.258799.8
\n",
- "
Kyoto University
\n",
+ "
grid.168010.e
\n",
+ "
Stanford University
\n",
+ "
4.939072
\n",
+ "
393415
\n",
"
\n",
"
\n",
"
5
\n",
- "
4.0
\n",
- "
302094
\n",
- "
grid.168010.e
\n",
- "
Stanford University
\n",
+ "
grid.4991.5
\n",
+ "
University of Oxford
\n",
+ "
5.104038
\n",
+ "
387324
\n",
"
\n",
"
\n",
"
6
\n",
- "
4.0
\n",
- "
297558
\n",
"
grid.34477.33
\n",
"
University of Washington
\n",
+ "
4.304326
\n",
+ "
385718
\n",
"
\n",
"
\n",
"
7
\n",
- "
3.0
\n",
- "
297094
\n",
- "
grid.19006.3e
\n",
- "
University of California, Los Angeles
\n",
+ "
grid.21107.35
\n",
+ "
Johns Hopkins University
\n",
+ "
4.374951
\n",
+ "
381545
\n",
"
\n",
"
\n",
"
8
\n",
- "
5.0
\n",
- "
289280
\n",
- "
grid.4991.5
\n",
- "
University of Oxford
\n",
+ "
grid.19006.3e
\n",
+ "
University of California, Los Angeles
\n",
+ "
3.871221
\n",
+ "
373415
\n",
"
\n",
"
\n",
"
9
\n",
- "
4.0
\n",
- "
285143
\n",
- "
grid.21107.35
\n",
- "
Johns Hopkins University
\n",
+ "
grid.258799.8
\n",
+ "
Kyoto University
\n",
+ "
3.000000
\n",
+ "
370973
\n",
"
\n",
"
\n",
"
10
\n",
- "
4.0
\n",
- "
282170
\n",
- "
grid.5335.0
\n",
- "
University of Cambridge
\n",
+ "
grid.11899.38
\n",
+ "
Universidade de São Paulo
\n",
+ "
2.778797
\n",
+ "
367466
\n",
"
\n",
"
\n",
"
11
\n",
- "
2.0
\n",
- "
280405
\n",
- "
grid.11899.38
\n",
- "
University of São Paulo
\n",
+ "
grid.5335.0
\n",
+ "
University of Cambridge
\n",
+ "
4.412618
\n",
+ "
356990
\n",
"
\n",
"
\n",
"
12
\n",
- "
4.0
\n",
- "
271170
\n",
- "
grid.25879.31
\n",
- "
University of Pennsylvania
\n",
+ "
grid.47840.3f
\n",
+ "
University of California, Berkeley
\n",
+ "
4.103148
\n",
+ "
353011
\n",
"
\n",
"
\n",
"
13
\n",
- "
4.0
\n",
- "
266337
\n",
- "
grid.83440.3b
\n",
- "
University College London
\n",
+ "
grid.25879.31
\n",
+ "
University of Pennsylvania
\n",
+ "
4.491342
\n",
+ "
351125
\n",
"
\n",
"
\n",
"
14
\n",
- "
3.0
\n",
- "
265592
\n",
- "
grid.136593.b
\n",
- "
Osaka University
\n",
+ "
grid.17635.36
\n",
+ "
University of Minnesota Twin Cities
\n",
+ "
3.252271
\n",
+ "
324688
\n",
"
\n",
"
\n",
"
15
\n",
- "
3.0
\n",
- "
250749
\n",
- "
grid.69566.3a
\n",
- "
Tohoku University
\n",
+ "
grid.136593.b
\n",
+ "
Osaka University
\n",
+ "
3.000000
\n",
+ "
323974
\n",
"
\n",
"
\n",
"
16
\n",
- "
3.0
\n",
- "
244713
\n",
- "
grid.5386.8
\n",
- "
Cornell University
\n",
+ "
grid.83440.3b
\n",
+ "
University College London
\n",
+ "
4.154059
\n",
+ "
320344
\n",
"
\n",
"
\n",
"
17
\n",
- "
4.0
\n",
- "
242749
\n",
- "
grid.47840.3f
\n",
- "
University of California, Berkeley
\n",
+ "
grid.14003.36
\n",
+ "
University of Wisconsin-Madison
\n",
+ "
3.220404
\n",
+ "
316542
\n",
"
\n",
"
\n",
"
18
\n",
- "
3.0
\n",
- "
239283
\n",
- "
grid.17635.36
\n",
- "
University of Minnesota
\n",
+ "
grid.410726.6
\n",
+ "
University of Chinese Academy of Sciences
\n",
+ "
2.287477
\n",
+ "
313606
\n",
"
\n",
"
\n",
"
19
\n",
- "
4.0
\n",
- "
236142
\n",
- "
grid.21729.3f
\n",
- "
Columbia University
\n",
+ "
grid.47100.32
\n",
+ "
Yale University
\n",
+ "
4.602265
\n",
+ "
305202
\n",
"
\n",
" \n",
"\n",
""
],
"text/plain": [
- " altmetric_median count id \\\n",
- "0 5.0 546592 grid.38142.3c \n",
- "1 3.0 484017 grid.26999.3d \n",
- "2 4.0 342764 grid.17063.33 \n",
- "3 3.0 320966 grid.214458.e \n",
- "4 3.0 310485 grid.258799.8 \n",
- "5 4.0 302094 grid.168010.e \n",
- "6 4.0 297558 grid.34477.33 \n",
- "7 3.0 297094 grid.19006.3e \n",
- "8 5.0 289280 grid.4991.5 \n",
- "9 4.0 285143 grid.21107.35 \n",
- "10 4.0 282170 grid.5335.0 \n",
- "11 2.0 280405 grid.11899.38 \n",
- "12 4.0 271170 grid.25879.31 \n",
- "13 4.0 266337 grid.83440.3b \n",
- "14 3.0 265592 grid.136593.b \n",
- "15 3.0 250749 grid.69566.3a \n",
- "16 3.0 244713 grid.5386.8 \n",
- "17 4.0 242749 grid.47840.3f \n",
- "18 3.0 239283 grid.17635.36 \n",
- "19 4.0 236142 grid.21729.3f \n",
+ " id name \\\n",
+ "0 grid.38142.3c Harvard University \n",
+ "1 grid.26999.3d The University of Tokyo \n",
+ "2 grid.17063.33 University of Toronto \n",
+ "3 grid.214458.e University of Michigan-Ann Arbor \n",
+ "4 grid.168010.e Stanford University \n",
+ "5 grid.4991.5 University of Oxford \n",
+ "6 grid.34477.33 University of Washington \n",
+ "7 grid.21107.35 Johns Hopkins University \n",
+ "8 grid.19006.3e University of California, Los Angeles \n",
+ "9 grid.258799.8 Kyoto University \n",
+ "10 grid.11899.38 Universidade de São Paulo \n",
+ "11 grid.5335.0 University of Cambridge \n",
+ "12 grid.47840.3f University of California, Berkeley \n",
+ "13 grid.25879.31 University of Pennsylvania \n",
+ "14 grid.17635.36 University of Minnesota Twin Cities \n",
+ "15 grid.136593.b Osaka University \n",
+ "16 grid.83440.3b University College London \n",
+ "17 grid.14003.36 University of Wisconsin-Madison \n",
+ "18 grid.410726.6 University of Chinese Academy of Sciences \n",
+ "19 grid.47100.32 Yale University \n",
"\n",
- " name \n",
- "0 Harvard University \n",
- "1 University of Tokyo \n",
- "2 University of Toronto \n",
- "3 University of Michigan \n",
- "4 Kyoto University \n",
- "5 Stanford University \n",
- "6 University of Washington \n",
- "7 University of California, Los Angeles \n",
- "8 University of Oxford \n",
- "9 Johns Hopkins University \n",
- "10 University of Cambridge \n",
- "11 University of São Paulo \n",
- "12 University of Pennsylvania \n",
- "13 University College London \n",
- "14 Osaka University \n",
- "15 Tohoku University \n",
- "16 Cornell University \n",
- "17 University of California, Berkeley \n",
- "18 University of Minnesota \n",
- "19 Columbia University "
+ " altmetric_median count \n",
+ "0 5.292790 715128 \n",
+ "1 3.000000 570861 \n",
+ "2 4.019046 435895 \n",
+ "3 3.968242 412146 \n",
+ "4 4.939072 393415 \n",
+ "5 5.104038 387324 \n",
+ "6 4.304326 385718 \n",
+ "7 4.374951 381545 \n",
+ "8 3.871221 373415 \n",
+ "9 3.000000 370973 \n",
+ "10 2.778797 367466 \n",
+ "11 4.412618 356990 \n",
+ "12 4.103148 353011 \n",
+ "13 4.491342 351125 \n",
+ "14 3.252271 324688 \n",
+ "15 3.000000 323974 \n",
+ "16 4.154059 320344 \n",
+ "17 3.220404 316542 \n",
+ "18 2.287477 313606 \n",
+ "19 4.602265 305202 "
]
},
- "execution_count": 4,
+ "execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
@@ -369,7 +369,7 @@
},
{
"cell_type": "code",
- "execution_count": 5,
+ "execution_count": 4,
"metadata": {
"Collapsed": "false",
"colab": {},
@@ -382,7 +382,7 @@
"output_type": "stream",
"text": [
"Returned Research_orgs: 20\n",
- "\u001b[2mTime: 6.63s\u001b[0m\n"
+ "\u001b[2mTime: 4.16s\u001b[0m\n"
]
},
{
@@ -406,204 +406,204 @@
" \n",
"
\n",
"
\n",
- "
citations_total
\n",
- "
count
\n",
"
id
\n",
"
name
\n",
+ "
citations_total
\n",
+ "
count
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
- "
28836616.0
\n",
- "
546592
\n",
"
grid.38142.3c
\n",
"
Harvard University
\n",
+ "
43542715.0
\n",
+ "
715128
\n",
"
\n",
"
\n",
"
1
\n",
- "
8545148.0
\n",
- "
484017
\n",
"
grid.26999.3d
\n",
- "
University of Tokyo
\n",
+ "
The University of Tokyo
\n",
+ "
12416944.0
\n",
+ "
570861
\n",
"
\n",
"
\n",
"
2
\n",
- "
11040840.0
\n",
- "
342764
\n",
"
grid.17063.33
\n",
"
University of Toronto
\n",
+ "
16896263.0
\n",
+ "
435895
\n",
"
\n",
"
\n",
"
3
\n",
- "
11710248.0
\n",
- "
320966
\n",
"
grid.214458.e
\n",
- "
University of Michigan
\n",
+ "
University of Michigan-Ann Arbor
\n",
+ "
17899164.0
\n",
+ "
412146
\n",
"
\n",
"
\n",
"
4
\n",
- "
5928948.0
\n",
- "
310485
\n",
- "
grid.258799.8
\n",
- "
Kyoto University
\n",
+ "
grid.168010.e
\n",
+ "
Stanford University
\n",
+ "
22857822.0
\n",
+ "
393415
\n",
"
\n",
"
\n",
"
5
\n",
- "
14738599.0
\n",
- "
302094
\n",
- "
grid.168010.e
\n",
- "
Stanford University
\n",
+ "
grid.4991.5
\n",
+ "
University of Oxford
\n",
+ "
17348878.0
\n",
+ "
387324
\n",
"
\n",
"
\n",
"
6
\n",
- "
12585381.0
\n",
- "
297558
\n",
"
grid.34477.33
\n",
"
University of Washington
\n",
+ "
19245227.0
\n",
+ "
385718
\n",
"
\n",
"
\n",
"
7
\n",
- "
11710928.0
\n",
- "
297094
\n",
- "
grid.19006.3e
\n",
- "
University of California, Los Angeles
\n",
+ "
grid.21107.35
\n",
+ "
Johns Hopkins University
\n",
+ "
18542871.0
\n",
+ "
381545
\n",
"
\n",
"
\n",
"
8
\n",
- "
10879614.0
\n",
- "
289280
\n",
- "
grid.4991.5
\n",
- "
University of Oxford
\n",
+ "
grid.19006.3e
\n",
+ "
University of California, Los Angeles
\n",
+ "
17370426.0
\n",
+ "
373415
\n",
"
\n",
"
\n",
"
9
\n",
- "
12084053.0
\n",
- "
285143
\n",
- "
grid.21107.35
\n",
- "
Johns Hopkins University
\n",
+ "
grid.258799.8
\n",
+ "
Kyoto University
\n",
+ "
8426700.0
\n",
+ "
370973
\n",
"
\n",
"
\n",
"
10
\n",
- "
10814051.0
\n",
- "
282170
\n",
- "
grid.5335.0
\n",
- "
University of Cambridge
\n",
+ "
grid.11899.38
\n",
+ "
Universidade de São Paulo
\n",
+ "
6823063.0
\n",
+ "
367466
\n",
"
\n",
"
\n",
"
11
\n",
- "
4105653.0
\n",
- "
280405
\n",
- "
grid.11899.38
\n",
- "
University of São Paulo
\n",
+ "
grid.5335.0
\n",
+ "
University of Cambridge
\n",
+ "
16495121.0
\n",
+ "
356990
\n",
"
\n",
"
\n",
"
12
\n",
- "
10450691.0
\n",
- "
271170
\n",
- "
grid.25879.31
\n",
- "
University of Pennsylvania
\n",
+ "
grid.47840.3f
\n",
+ "
University of California, Berkeley
\n",
+ "
19445292.0
\n",
+ "
353011
\n",
"
\n",
"
\n",
"
13
\n",
- "
9614297.0
\n",
- "
266337
\n",
- "
grid.83440.3b
\n",
- "
University College London
\n",
+ "
grid.25879.31
\n",
+ "
University of Pennsylvania
\n",
+ "
15634591.0
\n",
+ "
351125
\n",
"
\n",
"
\n",
"
14
\n",
- "
4653874.0
\n",
- "
265592
\n",
- "
grid.136593.b
\n",
- "
Osaka University
\n",
+ "
grid.17635.36
\n",
+ "
University of Minnesota Twin Cities
\n",
+ "
13100152.0
\n",
+ "
324688
\n",
"
\n",
"
\n",
"
15
\n",
- "
3694359.0
\n",
- "
250749
\n",
- "
grid.69566.3a
\n",
- "
Tohoku University
\n",
+ "
grid.136593.b
\n",
+ "
Osaka University
\n",
+ "
6486832.0
\n",
+ "
323974
\n",
"
\n",
"
\n",
"
16
\n",
- "
9370701.0
\n",
- "
244713
\n",
- "
grid.5386.8
\n",
- "
Cornell University
\n",
+ "
grid.83440.3b
\n",
+ "
University College London
\n",
+ "
13014090.0
\n",
+ "
320344
\n",
"
\n",
"
\n",
"
17
\n",
- "
11806056.0
\n",
- "
242749
\n",
- "
grid.47840.3f
\n",
- "
University of California, Berkeley
\n",
+ "
grid.14003.36
\n",
+ "
University of Wisconsin-Madison
\n",
+ "
13060297.0
\n",
+ "
316542
\n",
"
\n",
"
\n",
"
18
\n",
- "
8360048.0
\n",
- "
239283
\n",
- "
grid.17635.36
\n",
- "
University of Minnesota
\n",
+ "
grid.410726.6
\n",
+ "
University of Chinese Academy of Sciences
\n",
+ "
8305318.0
\n",
+ "
313606
\n",
"
\n",
"
\n",
"
19
\n",
- "
9400497.0
\n",
- "
236142
\n",
- "
grid.21729.3f
\n",
- "
Columbia University
\n",
+ "
grid.47100.32
\n",
+ "
Yale University
\n",
+ "
14768834.0
\n",
+ "
305202
\n",
"
\n",
" \n",
"\n",
""
],
"text/plain": [
- " citations_total count id \\\n",
- "0 28836616.0 546592 grid.38142.3c \n",
- "1 8545148.0 484017 grid.26999.3d \n",
- "2 11040840.0 342764 grid.17063.33 \n",
- "3 11710248.0 320966 grid.214458.e \n",
- "4 5928948.0 310485 grid.258799.8 \n",
- "5 14738599.0 302094 grid.168010.e \n",
- "6 12585381.0 297558 grid.34477.33 \n",
- "7 11710928.0 297094 grid.19006.3e \n",
- "8 10879614.0 289280 grid.4991.5 \n",
- "9 12084053.0 285143 grid.21107.35 \n",
- "10 10814051.0 282170 grid.5335.0 \n",
- "11 4105653.0 280405 grid.11899.38 \n",
- "12 10450691.0 271170 grid.25879.31 \n",
- "13 9614297.0 266337 grid.83440.3b \n",
- "14 4653874.0 265592 grid.136593.b \n",
- "15 3694359.0 250749 grid.69566.3a \n",
- "16 9370701.0 244713 grid.5386.8 \n",
- "17 11806056.0 242749 grid.47840.3f \n",
- "18 8360048.0 239283 grid.17635.36 \n",
- "19 9400497.0 236142 grid.21729.3f \n",
+ " id name citations_total \\\n",
+ "0 grid.38142.3c Harvard University 43542715.0 \n",
+ "1 grid.26999.3d The University of Tokyo 12416944.0 \n",
+ "2 grid.17063.33 University of Toronto 16896263.0 \n",
+ "3 grid.214458.e University of Michigan-Ann Arbor 17899164.0 \n",
+ "4 grid.168010.e Stanford University 22857822.0 \n",
+ "5 grid.4991.5 University of Oxford 17348878.0 \n",
+ "6 grid.34477.33 University of Washington 19245227.0 \n",
+ "7 grid.21107.35 Johns Hopkins University 18542871.0 \n",
+ "8 grid.19006.3e University of California, Los Angeles 17370426.0 \n",
+ "9 grid.258799.8 Kyoto University 8426700.0 \n",
+ "10 grid.11899.38 Universidade de São Paulo 6823063.0 \n",
+ "11 grid.5335.0 University of Cambridge 16495121.0 \n",
+ "12 grid.47840.3f University of California, Berkeley 19445292.0 \n",
+ "13 grid.25879.31 University of Pennsylvania 15634591.0 \n",
+ "14 grid.17635.36 University of Minnesota Twin Cities 13100152.0 \n",
+ "15 grid.136593.b Osaka University 6486832.0 \n",
+ "16 grid.83440.3b University College London 13014090.0 \n",
+ "17 grid.14003.36 University of Wisconsin-Madison 13060297.0 \n",
+ "18 grid.410726.6 University of Chinese Academy of Sciences 8305318.0 \n",
+ "19 grid.47100.32 Yale University 14768834.0 \n",
"\n",
- " name \n",
- "0 Harvard University \n",
- "1 University of Tokyo \n",
- "2 University of Toronto \n",
- "3 University of Michigan \n",
- "4 Kyoto University \n",
- "5 Stanford University \n",
- "6 University of Washington \n",
- "7 University of California, Los Angeles \n",
- "8 University of Oxford \n",
- "9 Johns Hopkins University \n",
- "10 University of Cambridge \n",
- "11 University of São Paulo \n",
- "12 University of Pennsylvania \n",
- "13 University College London \n",
- "14 Osaka University \n",
- "15 Tohoku University \n",
- "16 Cornell University \n",
- "17 University of California, Berkeley \n",
- "18 University of Minnesota \n",
- "19 Columbia University "
+ " count \n",
+ "0 715128 \n",
+ "1 570861 \n",
+ "2 435895 \n",
+ "3 412146 \n",
+ "4 393415 \n",
+ "5 387324 \n",
+ "6 385718 \n",
+ "7 381545 \n",
+ "8 373415 \n",
+ "9 370973 \n",
+ "10 367466 \n",
+ "11 356990 \n",
+ "12 353011 \n",
+ "13 351125 \n",
+ "14 324688 \n",
+ "15 323974 \n",
+ "16 320344 \n",
+ "17 316542 \n",
+ "18 313606 \n",
+ "19 305202 "
]
},
- "execution_count": 5,
+ "execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
@@ -616,7 +616,7 @@
},
{
"cell_type": "code",
- "execution_count": 6,
+ "execution_count": 5,
"metadata": {
"Collapsed": "false",
"colab": {},
@@ -629,7 +629,7 @@
"output_type": "stream",
"text": [
"Returned Research_orgs: 20\n",
- "\u001b[2mTime: 6.54s\u001b[0m\n"
+ "\u001b[2mTime: 5.11s\u001b[0m\n"
]
},
{
@@ -653,204 +653,204 @@
" \n",
"
\n",
"
\n",
- "
count
\n",
"
id
\n",
"
name
\n",
+ "
count
\n",
"
recent_citations_total
\n",
"
\n",
" \n",
" \n",
"
\n",
"
0
\n",
- "
546592
\n",
"
grid.38142.3c
\n",
"
Harvard University
\n",
- "
5562378.0
\n",
+ "
715128
\n",
+ "
5657002.0
\n",
"
\n",
"
\n",
"
1
\n",
- "
484017
\n",
"
grid.26999.3d
\n",
- "
University of Tokyo
\n",
- "
1471000.0
\n",
+ "
The University of Tokyo
\n",
+ "
570861
\n",
+ "
1498274.0
\n",
"
\n",
"
\n",
"
2
\n",
- "
342764
\n",
"
grid.17063.33
\n",
"
University of Toronto
\n",
- "
2380994.0
\n",
+ "
435895
\n",
+ "
2557162.0
\n",
"
\n",
"
\n",
"
3
\n",
- "
320966
\n",
"
grid.214458.e
\n",
- "
University of Michigan
\n",
- "
2370219.0
\n",
+ "
University of Michigan-Ann Arbor
\n",
+ "
412146
\n",
+ "
2411193.0
\n",
"
\n",
"
\n",
"
4
\n",
- "
310485
\n",
- "
grid.258799.8
\n",
- "
Kyoto University
\n",
- "
1006685.0
\n",
+ "
grid.168010.e
\n",
+ "
Stanford University
\n",
+ "
393415
\n",
+ "
3172519.0
\n",
"
\n",
"
\n",
"
5
\n",
- "
302094
\n",
- "
grid.168010.e
\n",
- "
Stanford University
\n",
- "
2985116.0
\n",
+ "
grid.4991.5
\n",
+ "
University of Oxford
\n",
+ "
387324
\n",
+ "
2687354.0
\n",
"
\n",
"
\n",
"
6
\n",
- "
297558
\n",
"
grid.34477.33
\n",
"
University of Washington
\n",
- "
2411827.0
\n",
+ "
385718
\n",
+ "
2508430.0
\n",
"
\n",
"
\n",
"
7
\n",
- "
297094
\n",
- "
grid.19006.3e
\n",
- "
University of California, Los Angeles
\n",
- "
2137101.0
\n",
+ "
grid.21107.35
\n",
+ "
Johns Hopkins University
\n",
+ "
381545
\n",
+ "
2441471.0
\n",
"
\n",
"
\n",
"
8
\n",
- "
289280
\n",
- "
grid.4991.5
\n",
- "
University of Oxford
\n",
- "
2504619.0
\n",
+ "
grid.19006.3e
\n",
+ "
University of California, Los Angeles
\n",
+ "
373415
\n",
+ "
2151381.0
\n",
"
\n",
"
\n",
"
9
\n",
- "
285143
\n",
- "
grid.21107.35
\n",
- "
Johns Hopkins University
\n",
- "
2352686.0
\n",
+ "
grid.258799.8
\n",
+ "
Kyoto University
\n",
+ "
370973
\n",
+ "
966227.0
\n",
"
\n",
"
\n",
"
10
\n",
- "
282170
\n",
- "
grid.5335.0
\n",
- "
University of Cambridge
\n",
- "
2110364.0
\n",
+ "
grid.11899.38
\n",
+ "
Universidade de São Paulo
\n",
+ "
367466
\n",
+ "
1207947.0
\n",
"
\n",
"
\n",
"
11
\n",
- "
280405
\n",
- "
grid.11899.38
\n",
- "
University of São Paulo
\n",
- "
1124894.0
\n",
+ "
grid.5335.0
\n",
+ "
University of Cambridge
\n",
+ "
356990
\n",
+ "
2258714.0
\n",
"
\n",
"
\n",
"
12
\n",
- "
271170
\n",
- "
grid.25879.31
\n",
- "
University of Pennsylvania
\n",
- "
2049126.0
\n",
+ "
grid.47840.3f
\n",
+ "
University of California, Berkeley
\n",
+ "
353011
\n",
+ "
2404905.0
\n",
"
\n",
"
\n",
"
13
\n",
- "
266337
\n",
- "
grid.83440.3b
\n",
- "
University College London
\n",
- "
2197569.0
\n",
+ "
grid.25879.31
\n",
+ "
University of Pennsylvania
\n",
+ "
351125
\n",
+ "
2063182.0
\n",
"
\n",
"
\n",
"
14
\n",
- "
265592
\n",
- "
grid.136593.b
\n",
- "
Osaka University
\n",
- "
727151.0
\n",
+ "
grid.17635.36
\n",
+ "
University of Minnesota Twin Cities
\n",
+ "
324688
\n",
+ "
1575033.0
\n",
"
\n",
"
\n",
"
15
\n",
- "
250749
\n",
- "
grid.69566.3a
\n",
- "
Tohoku University
\n",
- "
644246.0
\n",
+ "
grid.136593.b
\n",
+ "
Osaka University
\n",
+ "
323974
\n",
+ "
691161.0
\n",
"
\n",
"
\n",
"
16
\n",
- "
244713
\n",
- "
grid.5386.8
\n",
- "
Cornell University
\n",
- "
1809884.0
\n",
+ "
grid.83440.3b
\n",
+ "
University College London
\n",
+ "
320344
\n",
+ "
2241297.0
\n",
"
\n",
"
\n",
"
17
\n",
- "
242749
\n",
- "
grid.47840.3f
\n",
- "
University of California, Berkeley
\n",
- "
2057506.0
\n",
+ "
grid.14003.36
\n",
+ "
University of Wisconsin-Madison
\n",
+ "
316542
\n",
+ "
1508661.0
\n",
"
\n",
"
\n",
"
18
\n",
- "
239283
\n",
- "
grid.17635.36
\n",
- "
University of Minnesota
\n",
- "
1519539.0
\n",
+ "
grid.410726.6
\n",
+ "
University of Chinese Academy of Sciences
\n",
+ "
313606
\n",
+ "
2620498.0
\n",
"
\n",
"
\n",
"
19
\n",
- "
236142
\n",
- "
grid.21729.3f
\n",
- "
Columbia University
\n",
- "
1754780.0
\n",
+ "
grid.47100.32
\n",
+ "
Yale University
\n",
+ "
305202
\n",
+ "
1861426.0
\n",
"
\n",
" \n",
"\n",
""
],
"text/plain": [
- " count id name \\\n",
- "0 546592 grid.38142.3c Harvard University \n",
- "1 484017 grid.26999.3d University of Tokyo \n",
- "2 342764 grid.17063.33 University of Toronto \n",
- "3 320966 grid.214458.e University of Michigan \n",
- "4 310485 grid.258799.8 Kyoto University \n",
- "5 302094 grid.168010.e Stanford University \n",
- "6 297558 grid.34477.33 University of Washington \n",
- "7 297094 grid.19006.3e University of California, Los Angeles \n",
- "8 289280 grid.4991.5 University of Oxford \n",
- "9 285143 grid.21107.35 Johns Hopkins University \n",
- "10 282170 grid.5335.0 University of Cambridge \n",
- "11 280405 grid.11899.38 University of São Paulo \n",
- "12 271170 grid.25879.31 University of Pennsylvania \n",
- "13 266337 grid.83440.3b University College London \n",
- "14 265592 grid.136593.b Osaka University \n",
- "15 250749 grid.69566.3a Tohoku University \n",
- "16 244713 grid.5386.8 Cornell University \n",
- "17 242749 grid.47840.3f University of California, Berkeley \n",
- "18 239283 grid.17635.36 University of Minnesota \n",
- "19 236142 grid.21729.3f Columbia University \n",
+ " id name count \\\n",
+ "0 grid.38142.3c Harvard University 715128 \n",
+ "1 grid.26999.3d The University of Tokyo 570861 \n",
+ "2 grid.17063.33 University of Toronto 435895 \n",
+ "3 grid.214458.e University of Michigan-Ann Arbor 412146 \n",
+ "4 grid.168010.e Stanford University 393415 \n",
+ "5 grid.4991.5 University of Oxford 387324 \n",
+ "6 grid.34477.33 University of Washington 385718 \n",
+ "7 grid.21107.35 Johns Hopkins University 381545 \n",
+ "8 grid.19006.3e University of California, Los Angeles 373415 \n",
+ "9 grid.258799.8 Kyoto University 370973 \n",
+ "10 grid.11899.38 Universidade de São Paulo 367466 \n",
+ "11 grid.5335.0 University of Cambridge 356990 \n",
+ "12 grid.47840.3f University of California, Berkeley 353011 \n",
+ "13 grid.25879.31 University of Pennsylvania 351125 \n",
+ "14 grid.17635.36 University of Minnesota Twin Cities 324688 \n",
+ "15 grid.136593.b Osaka University 323974 \n",
+ "16 grid.83440.3b University College London 320344 \n",
+ "17 grid.14003.36 University of Wisconsin-Madison 316542 \n",
+ "18 grid.410726.6 University of Chinese Academy of Sciences 313606 \n",
+ "19 grid.47100.32 Yale University 305202 \n",
"\n",
" recent_citations_total \n",
- "0 5562378.0 \n",
- "1 1471000.0 \n",
- "2 2380994.0 \n",
- "3 2370219.0 \n",
- "4 1006685.0 \n",
- "5 2985116.0 \n",
- "6 2411827.0 \n",
- "7 2137101.0 \n",
- "8 2504619.0 \n",
- "9 2352686.0 \n",
- "10 2110364.0 \n",
- "11 1124894.0 \n",
- "12 2049126.0 \n",
- "13 2197569.0 \n",
- "14 727151.0 \n",
- "15 644246.0 \n",
- "16 1809884.0 \n",
- "17 2057506.0 \n",
- "18 1519539.0 \n",
- "19 1754780.0 "
+ "0 5657002.0 \n",
+ "1 1498274.0 \n",
+ "2 2557162.0 \n",
+ "3 2411193.0 \n",
+ "4 3172519.0 \n",
+ "5 2687354.0 \n",
+ "6 2508430.0 \n",
+ "7 2441471.0 \n",
+ "8 2151381.0 \n",
+ "9 966227.0 \n",
+ "10 1207947.0 \n",
+ "11 2258714.0 \n",
+ "12 2404905.0 \n",
+ "13 2063182.0 \n",
+ "14 1575033.0 \n",
+ "15 691161.0 \n",
+ "16 2241297.0 \n",
+ "17 1508661.0 \n",
+ "18 2620498.0 \n",
+ "19 1861426.0 "
]
},
- "execution_count": 6,
+ "execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
@@ -874,7 +874,7 @@
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": 6,
"metadata": {
"Collapsed": "false",
"colab": {},
@@ -887,7 +887,7 @@
"output_type": "stream",
"text": [
"Returned Year: 20\n",
- "\u001b[2mTime: 4.06s\u001b[0m\n"
+ "\u001b[2mTime: 5.16s\u001b[0m\n"
]
},
{
@@ -911,161 +911,161 @@
" \n",
"
Finally: let’s merge the new data into the ‘researchers-impact’ table<
# helper functions#
-defgrants_and_year_from_id(researcher_id):
+defgrants_and_year_from_id(researcher_id):"try/except to prevent some parsing errors."try:x=int(df1[df1['id']==researcher_id]['total_grants'])
@@ -2176,7 +2176,7 @@
Finally: let’s merge the new data into the ‘researchers-impact’ table<
y=0return(x,y)
-deftotal_funding_from_id(researcher_id):
+deftotal_funding_from_id(researcher_id):"""Since the bulk querying returned several rows for same researcher (due to various random combinations of researcher IDs lists in the query filters), we take the max value."""returndf2[df2['id']==researcher_id]['funding'].max()
diff --git a/docs/cookbooks/2-publications/Journal-Profile-4-Institutions.html b/docs/cookbooks/2-publications/Journal-Profile-4-Institutions.html
index cfb5dfe3..7097c146 100644
--- a/docs/cookbooks/2-publications/Journal-Profile-4-Institutions.html
+++ b/docs/cookbooks/2-publications/Journal-Profile-4-Institutions.html
@@ -753,21 +753,21 @@
This Python notebook shows how publishers can use the Dimensions Analytics API to identify whether articles they chose not to publish were ultimately published somewhere else.
+
In this notebook we will: 1. Import a .csv file containing rejected articles 2. Search for publications similar to the rejected articles 4. Measure the strength of the matches and provide ideas for validation
+
+
[2]:
+
+
+
+importdatetime
+print("==\nCHANGELOG\nThis notebook was last run on %s\n=="%datetime.date.today().strftime('%b %d, %Y'))
+
+
+
+
+
+
+
+
+==
+CHANGELOG
+This notebook was last run on Jan 27, 2025
+==
+
For this tutorial, we are going to use a sample data set of preprints and pretend that the preprints are articles we have rejected. This is a good proof of the concept of finding a similar article that has been published in a peer-reviewed journal: preprints often reappear published in journals and might have subtly different titles or abstracts.
+
In this simplified example, we’ll just use the author names and titles for matching and we’ll add a unique (made up) submission ID, as real data is likely to have this. We’ll use the preprint publishing date as our rejection date.
+
Here is the query to get our example data set as a pandas data frame, and some code to make it look more like a data set of rejected articles. You don’t need to understand this bit necessarily, assuming you will have you’re own data you just need to know what the table looks like at the end (which will be shown).
+
+
[15]:
+
+
+
+importpandasaspd
+importnumpyasnp
+fromuuidimportuuid4
+
+rejected_publications=[]
+
+preprints=dsl.query(
+ # This is quite a specific search for preprints published on 2020-01-22
+"""
+ search publications
+ where type = "preprint" and date = "2020-01-22" and abstract is not empty
+ return publications[date+title+abstract+authors]
+ limit 10
+ """
+)
+
+forpinpreprints.json["publications"]:
+ # This will be a row of our data:
+ rejected_article_data_row={
+ "rejected_date":None,# Initialising the rows with null values
+ "first_author":None,
+ "title":None,
+ "abstract":None
+ }
+ rejected_article_data_row['rejected_date']=p['date']
+ rejected_article_data_row['title']=p['title']
+ rejected_article_data_row['abstract']=p['abstract']
+ fororder,ainenumerate(p["authors"]):
+ iforder==0:# i.e. first author
+ rejected_article_data_row['first_author']=a['last_name']
+ rejected_publications.append(rejected_article_data_row)
+
+rejected_publication_data=pd.DataFrame(rejected_publications)
+
+rejected_publication_data['submission_id']=[
+ str(uuid4())for_inrange(len(rejected_publication_data))
+]
+
+rejected_publication_data
+
+
+
+
+
+
+
+
+Returned Publications: 10 (total = 730)
+Time: 0.31s
+WARNINGS [1]
+Field current_organization_id of the authors field is deprecated and will be removed in the next major release.
+
Python concatenates multiple strings one after another in brackets, so we have written it out as shown below so that we can add comments to the query. This format isn’t necessary, but hopefully it’s helpful!
+
+
[16]:
+
+
+
+template=(
+ 'search publications '
+ 'in title_abstract_only '# Search the whole of the publication
+ 'for "{title}" '# Stop words will be automatically excluded
+ 'where date > "{rejected_date}" '
+ 'and ('
+ 'authors = "{first_author}"'
+ # The line below gives an example of how you could also search for
+ # the surname of the corresponding author if you have it:
+ # ' or authors = "{corresponding_author}"'
+ ') '
+ 'return publications['
+ 'date'# Published date
+ '+'
+ 'doi'# DOI of the published article
+ '+'
+ 'title'# Title of the published article
+ '+'
+ 'abstract'# Abstract of the published article
+ '] '
+ 'limit 1'# Get the most relevant result only
+)
+
+template
+
+
+
+
+
[16]:
+
+
+
+
+'search publications in title_abstract_only for "{title}" where date > "{rejected_date}" and (authors = "{first_author}") return publications[date+doi+title+abstract] limit 1'
+
+
+
+
+
3. Iteratively Query the Dimensions API for the retracted articles¶
+
+
[17]:
+
+
+
+importstring
+fromtqdm.notebookimporttqdm
+
+defno_punctuation(s:str)->str:
+"""
+ Remove punctuation from a python string
+ """
+ returns.translate(str.maketrans('','',string.punctuation))
+
+# We'll store all our results in this list as we iterate, then join them together at the end...
+results=[]
+
+# For each row in the data set as a python dictionary:
+forrowintqdm(rejected_publication_data.to_dict(orient="records")):
+ row['title']=no_punctuation(row['title'])
+ query=template.format(**row)
+ best=dsl.query(query,verbose=False).as_dataframe()
+ best['submission_id']=row['submission_id']
+ results.append(best)
+
+# Join results together
+output=pd.concat(results)
+
+output.head()# .head() shows just a few rows
+
We have found some publications that might match our rejected articles. Now we need to score them to see whether they are good matches.
+
In this case we’ll measure the edit distance between the titles. The most commonly-used edit distance between strings is Levensthtein distance, which is nicely implemented in Python in the ``Levenshtein` package <https://rapidfuzz.github.io/Levenshtein/>`__.
+
The Levenshtein package has a function “ratio” which uses Levenshtein distance to get a similarity (not distance) score between 0 (disimilar) and 1 (identical). We will use this to compare titles converted to lowercase.
+
Sorting the results by score descending (from highest to lowest) we can see that there was one good match. If we wanted to make the matching more automatic, we could choose to filter out everything with a score less than e.g. 0.75.
+
+
[24]:
+
+
+
+fromLevenshteinimportratio
+
+defsimilarity(string1:str,string2:str)->float:
+"""
+ Case-insensitive similarity score made by subtracting the normalised
+ Levenshtein distance from 1.
+ """
+ ifpd.isna(string1)orpd.isna(string2):
+ return0.
+ else:
+ returnratio(string1.lower(),string2.lower())
+
+print(similarity('The cat sat on the mat','The dog sat on the frog'))
+print(similarity('The cat sat on the mat','The mat sat on the cat'))
+
In this tutorial we have shown how to use the Dimensions API to search for articles with titles and abstracts that contain similar terms to the titles of articles that have been rejected in the past.
+
In terms of next steps, we might choose to do some bibliometric analysis of the articles we rejected. We could also try to improve our search process by extracting keywords from our article abstracts and searching for those too.
+
+
+
+
+
+
+
+
Note
+
The Dimensions Analytics API allows to carry out sophisticated research data analytics tasks like the ones described on this website. Check out also the associated Github repository for examples, the source code of these tutorials and much more.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/cookbooks/2-publications/Rejected_Article_Tracker.ipynb b/docs/cookbooks/2-publications/Rejected_Article_Tracker.ipynb
new file mode 100644
index 00000000..5ad1f5ad
--- /dev/null
+++ b/docs/cookbooks/2-publications/Rejected_Article_Tracker.ipynb
@@ -0,0 +1,2105 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "_dmqbrsrX1Wm"
+ },
+ "source": [
+ "# Rejected Article tracker\n",
+ "\n",
+ "This Python notebook shows how publishers can use the [Dimensions Analytics API](https://www.dimensions.ai/dimensions-apis/) to identify whether articles they chose not to publish were ultimately published somewhere else.\n",
+ "\n",
+ "In this notebook we will:\n",
+ "1. Import a .csv file containing rejected articles\n",
+ "2. Search for publications similar to the rejected articles\n",
+ "4. Measure the strength of the matches and provide ideas for validation"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "uPAAo96vdohR",
+ "outputId": "98c0472c-3b92-4c14-b567-aa0a2d75491c"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "==\n",
+ "CHANGELOG\n",
+ "This notebook was last run on Jan 27, 2025\n",
+ "==\n"
+ ]
+ }
+ ],
+ "source": [
+ "import datetime\n",
+ "print(\"==\\nCHANGELOG\\nThis notebook was last run on %s\\n==\" % datetime.date.today().strftime('%b %d, %Y'))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "qX9CV_XkXVIZ"
+ },
+ "source": [
+ "## Prerequisites\n",
+ "\n",
+ "This notebook assumes you have installed the [Dimcli](https://pypi.org/project/dimcli/) library and are familiar with the ['Getting Started' tutorial](https://api-lab.dimensions.ai/cookbooks/1-getting-started/1-Using-the-Dimcli-library-to-query-the-API.html)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "ti0txhA9d10c",
+ "outputId": "a793c666-7d7f-410e-b2e9-1a952f8e5eb5"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ " Preparing metadata (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m241.7/241.7 kB\u001b[0m \u001b[31m13.2 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m162.7/162.7 kB\u001b[0m \u001b[31m10.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m3.1/3.1 MB\u001b[0m \u001b[31m56.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m51.1/51.1 kB\u001b[0m \u001b[31m3.5 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m1.6/1.6 MB\u001b[0m \u001b[31m54.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
+ "\u001b[?25h Building wheel for pandasql (setup.py) ... \u001b[?25l\u001b[?25hdone\n",
+ "==\n",
+ "Logging in..\n",
+ "API Key: ··········\n",
+ "\u001b[2mDimcli - Dimensions API Client (v1.4)\u001b[0m\n",
+ "\u001b[2mConnected to: - DSL v2.10\u001b[0m\n",
+ "\u001b[2mMethod: manual login\u001b[0m\n"
+ ]
+ }
+ ],
+ "source": [
+ "!pip install dimcli pandasql levenshtein -U --quiet\n",
+ "\n",
+ "import dimcli\n",
+ "from dimcli.utils import *\n",
+ "\n",
+ "import json, sys\n",
+ "import requests\n",
+ "import pandas as pd\n",
+ "import numpy as np\n",
+ "from pandasql import sqldf\n",
+ "import pandasql as ps\n",
+ "import plotly.express as px # plotly>=4.8.1\n",
+ "if not 'google.colab' in sys.modules:\n",
+ " # make js dependecies local / needed by html exports\n",
+ " from plotly.offline import init_notebook_mode\n",
+ " init_notebook_mode(connected=True)\n",
+ "#\n",
+ "pd.set_option('display.max_columns', None)\n",
+ "\n",
+ "print(\"==\\nLogging in..\")\n",
+ "# https://digital-science.github.io/dimcli/getting-started.html#authentication\n",
+ "ENDPOINT = \"https://app.dimensions.ai\"\n",
+ "if 'google.colab' in sys.modules:\n",
+ " import getpass\n",
+ " KEY = getpass.getpass(prompt='API Key: ')\n",
+ " dimcli.login(key=KEY, endpoint=ENDPOINT)\n",
+ "else:\n",
+ " KEY = \"\"\n",
+ " dimcli.login(key=KEY, endpoint=ENDPOINT)\n",
+ "dsl = dimcli.Dsl()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "ZAHoWkwhUzjy"
+ },
+ "source": [
+ "## 1. Get an example data set\n",
+ "\n",
+ "For this tutorial, we are going to use a sample data set of preprints and pretend that the preprints are articles we have rejected. This is a good proof of the concept of finding a similar article that has been published in a peer-reviewed journal: preprints often reappear published in journals and might have subtly different titles or abstracts.\n",
+ "\n",
+ "In this simplified example, we'll just use the author names and titles for matching and we'll add a unique (made up) submission ID, as real data is likely to have this. We'll use the preprint publishing date as our rejection date.\n",
+ "\n",
+ "Here is the query to get our example data set as a `pandas` data frame, and some code to make it look more like a data set of rejected articles. You don't need to understand this bit necessarily, assuming you will have you're own data you just need to know what the table looks like at the end (which will be shown)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 15,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 1555
+ },
+ "id": "OUztuLnzd02w",
+ "outputId": "2c7307a2-2de4-48a8-f4b4-6b4bd6b8197e"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Returned Publications: 10 (total = 730)\n",
+ "\u001b[2mTime: 0.31s\u001b[0m\n",
+ "WARNINGS [1]\n",
+ "Field current_organization_id of the authors field is deprecated and will be removed in the next major release.\n"
+ ]
+ },
+ {
+ "data": {
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "summary": "{\n \"name\": \"rejected_publication_data\",\n \"rows\": 10,\n \"fields\": [\n {\n \"column\": \"rejected_date\",\n \"properties\": {\n \"dtype\": \"object\",\n \"num_unique_values\": 1,\n \"samples\": [\n \"2020-01-22\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"first_author\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 9,\n \"samples\": [\n \"Joyce\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"title\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 10,\n \"samples\": [\n \"Scientific Racism 2.0 (SR2.0): An erroneous argument from genetics which inadvertently refines scientific racism\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"abstract\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 10,\n \"samples\": [\n \"
SR2.0 refers to a prominent argument made by some geneticists, often via social and popular media, which inadvertently amounts to a refinement of scientific racism. At face value it is an attack on racism in science. Upon closer inspection its primary, possibly unconscious, purpose appears to be to protect contemporary genetic research from the charge of racism. The argument is often made alongside an emphasis upon long-falsified errors of early science and open expressions of racism in wider society, rather than the intelligence and statistical theory which has informed both genetics and the social construct scientific racism for a century. The core argument is invalid. It also has profound epistemological failings, including misunderstanding the nature of social constructions and how they how they interact with empirical facts. Finally, the proponents do not fully support their own argument; this exposes the argument\\u2019s substantive function as a defensive holding device.
The increasing number of patients treated with peritoneal dialysis (PD) and their consistently high rate of hospital admissions have placed a large burden on the health care system. Early clinical interventions and optimal management of patients at a high risk of prolonged length of stay (pLOS) may help improve the medical efficiency and prognosis of PD-treated patients. If timely clinical interventions are not provided, patients at a high risk of pLOS may face a poor prognosis and high medical expenses, which will also be a burden on hospitals. Therefore, physicians need an effective pLOS prediction model for PD-treated patients.<\\/p>\\n <\\/sec>\\n \\n OBJECTIVE\\n
This study aimed to develop an optimal data-driven model for predicting the pLOS risk of PD-treated patients using basic admission data.<\\/p>\\n <\\/sec>\\n \\n METHODS\\n
Patient data collected using the Hospital Quality Monitoring System (HQMS) in China were used to develop pLOS prediction models. A stacking model was constructed with support vector machine, random forest (RF), and K-nearest neighbor algorithms as its base models and traditional logistic regression (LR) as its meta-model. The meta-model used the outputs of all 3 base models as input and generated the output of the stacking model. Another LR-based pLOS prediction model was built as the benchmark model. The prediction performance of the stacking model was compared with that of its base models and the benchmark model. Five-fold cross-validation was employed to develop and validate the models. Performance measures included the Brier score, area under the receiver operating characteristic curve (AUROC), estimated calibration index (ECI), accuracy, sensitivity, specificity, and geometric mean (Gm). In addition, a calibration plot was employed to visually demonstrate the calibration power of each model.<\\/p>\\n <\\/sec>\\n \\n RESULTS\\n
The final cohort extracted from the HQMS database consisted of 23,992 eligible PD-treated patients, among whom 30.3% had a pLOS (ie, longer than the average LOS, which was 16 days in our study). Among the models, the stacking model achieved the best calibration (ECI 8.691), balanced accuracy (Gm 0.690), accuracy (0.695), and specificity (0.701). Meanwhile, the stacking and RF models had the best overall performance (Brier score 0.174 for both) and discrimination (AUROC 0.757 for the stacking model and 0.756 for the RF model). Compared with the benchmark LR model, the stacking model was superior in all performance measures except sensitivity, but there was no significant difference in sensitivity between the 2 models. The 2-sided <i>t</i> tests revealed significant performance differences between the stacking and LR models in overall performance, discrimination, calibration, balanced accuracy, and accuracy.<\\/p>\\n <\\/sec>\\n \\n CONCLUSIONS\\n
This study is the first to develop data-driven pLOS prediction models for PD-treated patients using basic admission data from a national database. The results indicate the feasibility of utilizing a stacking-based pLOS prediction model for PD-treated patients. The pLOS prediction tools developed in this study have the potential to assist clinicians in identifying patients at a high risk of pLOS and to allocate resources optimally for PD-treated patients.<\\/p>\\n <\\/sec>\",\n\"6ef9af47-8fa7-4abb-af69-0c8a522b6f9a\"],\n [{\n 'v': 1,\n 'f': \"1\",\n },\n\"2020-01-22\",\n\"Bowman\",\n\"OSF Prereg Template\",\n\"
Preregistration is the act of submitting a study plan, ideally also with analytical plan, to a registry prior to conducting the work. Preregistration increases the discoverability of research even if it does not get published further. Adding specific analysis plans can clarify the distinction between planned, confirmatory tests and unplanned, exploratory research. This preprint contains a template for the \\u201cOSF Prereg\\u201d form available from the OSF Registry. An earlier version was originally developed for the Preregistration Challenge, an education campaign designed to initiate preregistration as a habit prior to data collection in basic research, funded by the Laura and John Arnold Foundation (now Arnold Ventures) and conducted by the Center for Open Science. More information is available at https://cos.io/prereg, and other templates are available at: https://osf.io/zab38/<\\/p>\",\n\"2239203f-fa3b-4402-a185-1398861aba66\"],\n [{\n 'v': 2,\n 'f': \"2\",\n },\n\"2020-01-22\",\n\"Di Sia\",\n\"On the Concept of Time in everyday Life and between Physics and Mathematics\",\n\"
In this paper I consider the concept of time in a general way as daily human time andthen within physics with relation to mathematics. I focus the attention on quantum mechanics, with its particular peculiarities, examining peculiar important questions like the temporal asymmetry, the Prigogine\\u2019s position and the time-reversal operator of Wigner. I conclude considering the theme of the temporal asymmetry in relation to decoherence and irreversibility. Interesting imputs related to education science will be done.<\\/p>\",\n\"7dc54f58-2a6c-44eb-b906-98a184d1bac1\"],\n [{\n 'v': 3,\n 'f': \"3\",\n },\n\"2020-01-22\",\n\"Di Sia\",\n\"Birth and development of quantum physics: a transdisciplinary approach\",\n\"
The last century has been a period of extreme interest for scientific research, marked by the overcoming of the classical frontiers of scientific knowledge.Research oriented towards the infinitely small and infinitely big, in both cases beyondthe borders of the visible. Quantum physics has led to a new Copernican revolution,opening the way to new questions that have led to a new view of reality. At the sametime, new theories have developed, involving every field of science, philosophy and art, rediscovering the link between unity and totality and the importance of humanpotential. In a transdisciplinary approach we consider quantum field theory, new ideason the concepts of vacuum and entanglement, metaphysical aspects of quantum revolution and the introduction of different interpretative approaches on the \\u201cWhole\\u201d.<\\/p>\",\n\"b466b2fd-b0c3-4573-abc5-229532212be1\"],\n [{\n 'v': 4,\n 'f': \"4\",\n },\n\"2020-01-22\",\n\"Bedoya\",\n\"Fabricaci\\u00f3n de capas antirreflejantes y absorbedores solares mediante la t\\u00e9cnica Sol-gel: Un resumen sobre la variaci\\u00f3n de s\\u00edntesis y condiciones experimentales realizadas en la UTP\",\n\"
Se prepararon pel\\u00edculas delgadas de SiO2 en relaci\\u00f3n molar TEOS:H2O:EtOH 1:18:1.8 y CuCoMn en relaci\\u00f3n molar Cu:Co:Mn 1:3:3 por el m\\u00e9todo de recubrimiento por inmersi\\u00f3n (Sol-gel), bajo condiciones fijas de velocidad de dep\\u00f3sito y n\\u00famero de capas. Inicialmente se usaron sustratos de vidrios con el fin de analizar el comportamiento \\u00f3ptico de los recubrimientos utilizando espectroscop\\u00eda UV-Vis y FTIR. Una vez depositados los recubrimientos de SiO2 se sometieron a secado a temperatura ambiente y dentro de un horno tubular a 70 \\u00b0C. Por otro lado, las muestras de CuCoMn se trataron t\\u00e9rmicamente a diferentes temperaturas de recocido (550 \\u00b0C, 600 \\u00b0C y 650 \\u00b0C) durante 12 horas a una rampa de 1 \\u00b0C/min. Los resultados parciales obtenidos muestran que las pel\\u00edculas exhiben una absortancia entre 75% - 95 %, lo cual est\\u00e1 acorde con lo reportado en la literatura para este material. Sin embargo, para aumentar este valor es necesario ampliar el estudio del material, con el fin de definir su estructura, composici\\u00f3n y morfolog\\u00eda. El objetivo es obtener recubrimientos con las propiedades \\u00f3pticas y estructurales adecuadas con el fin de ser usados en la fabricaci\\u00f3n de la superficie absorbedora de calentadores de agua e instalaciones de energ\\u00eda solar.<\\/p>\",\n\"56360b84-72d3-42bc-b963-067e95e1ade3\"],\n [{\n 'v': 5,\n 'f': \"5\",\n },\n\"2020-01-22\",\n\"Coretta\",\n\"Open Science in phonetics and phonology\",\n\"
Open Science is a movement that stresses the importance of a more honest and transparent scientific attitude by promoting a series of research principles and by warning from common, although not necessarily intentional, questionable practices and misconceptions. The term Open Science as a whole refers to the fundamental concepts of 'openness, transparency, rigour, reproducibility, replicability, and accumulation of knowledge' (Cruwell 2018). The goodness of the latter depends in great part on the reproducibility and replicability of the studies that contribute to knowledge accumulation.<\\/p>\",\n\"4c0ca94a-14f2-4f86-b014-ac47f7d5170c\"],\n [{\n 'v': 6,\n 'f': \"6\",\n },\n\"2020-01-22\",\n\"Wekke\",\n\"Merumuskan Masalah Penelitian dengan Metode MAIL\",\n\"
Ringkasan kuliah di pascasarjana STAIN Sorong.<\\/p>\",\n\"494a322a-7a51-460b-8dcb-dcfbb405e9e6\"],\n [{\n 'v': 7,\n 'f': \"7\",\n },\n\"2020-01-22\",\n\"Hern\\u00e1ndez-Caballero\",\n\"Epigen\\u00e9tica en c\\u00e1ncer\",\n\"
Las c\\u00e9lulas contienen informaci\\u00f3n determinada por el genoma propio del organismo al que pertenecen, lo cual le permite el desarrollo y diferenciaci\\u00f3n propios de su especie, en este sentido la informaci\\u00f3n epigen\\u00e9tica constituye una capa adicional de informaci\\u00f3n reguladora que vuelve m\\u00e1s complejos los procesos celulares. La metilaci\\u00f3n del DNA es la marca epigen\\u00e9tica de inactivaci\\u00f3n m\\u00e1s conocida y como el proceso reversible que es, consiste en un fen\\u00f3meno din\\u00e1mico que cambia durante la vida de la c\\u00e9lula. Los cambios epigen\\u00e9ticos inciden directamente en la conformaci\\u00f3n que adquiere la cromatina, con lo que se regula el c\\u00f3mo se expresen los genes y su actividad, a su vez, depende de modificaciones postraduccionales en las prote\\u00ednas histonas. Las histonas al igual que el DNA tambi\\u00e9n pueden presentar modificaciones epigen\\u00e9ticas.El c\\u00e1ncer es una patolog\\u00eda heterog\\u00e9nea que durante mucho tiempo se crey\\u00f3 era el resultado \\u00fanicamente de la adquisici\\u00f3n de mutaciones gen\\u00e9ticas o rearreglos cromos\\u00f3micos, que desembocaban en la p\\u00e9rdida del funcionamiento de genes encargados de evitar el crecimiento celular descontrolado y de la desregulaci\\u00f3n de la actividad de genes encargados de promover la proliferaci\\u00f3n. No obstante, la expresi\\u00f3n adecuada de los genes es fundamental para mantener el fenotipo celular normal, y el control de dicha expresi\\u00f3n va m\\u00e1s all\\u00e1 de la sola presencia de una secuencia gen\\u00e9tica sin cambio. Sin embargo, las alteraciones epigen\\u00e9ticas que preceden y contribuyen al inicio del desarrollo de un c\\u00e1ncer a\\u00fan no se conocen de forma precisa.Actualmente la metilaci\\u00f3n de DNA es la principal marca epigen\\u00e9tica m\\u00e1s ampliamente estudiada. La diversidad en el uso de t\\u00e9cnicas para realizar este cometido va desde m\\u00e9todos sencillos como el uso de enzimas de restricci\\u00f3n sensibles a la metilaci\\u00f3n, para digerir DNA gen\\u00f3mico y analizar peque\\u00f1as regiones de DNA, pasando por el uso de bisulfito de sodio para analizar el estado de metilaci\\u00f3n en las citosinas hasta los m\\u00e9todos actuales de secuenciaci\\u00f3n a gran escala que permiten el an\\u00e1lisis simultaneo de gran cantidad de muestras y de amplias regiones del genoma completo, llegando a analizar hasta 3 millones de variantes gen\\u00e9ticas en un individuo. A la par, se ha desarrollado software especializado en epigen\\u00e9tica, permitiendo conocer la ubicaci\\u00f3n de sitios de metilaci\\u00f3n para luego hacer su b\\u00fasqueda en muestras biol\\u00f3gicas y se han desarrollado programas complejos para el an\\u00e1lisis de datos masivos obtenidos a trav\\u00e9s del uso de plataformas basadas en hibridaci\\u00f3n (microarreglos) y la secuenciaci\\u00f3n masiva con diversas afinidades (DNA-seq, RNA-seq, ChIP-seq, FAIRE-seq, ATAC-seq, MeDIP-seq, MBD-seq) y WGBS. Los cambios epigen\\u00e9ticos aberrantes en el c\\u00e1ncer pueden ser evidentes desde etapas tempranas, lo que ha llevado a pensar que, esta desregulaci\\u00f3n precede de hecho a los eventos tumorales transformadores preliminares cl\\u00e1sicos (mutaciones de supresores y/o protooncogenes e inestabilidad gen\\u00f3mica). Entre las alteraciones epigen\\u00e9ticas m\\u00e1s reconocidas en los tumores est\\u00e1 el silenciamiento asociado a hipermetilaci\\u00f3n de islas CpG en los promotores de los genes supresores como CDKN2A y RASSF1.Aunado a esto, los miRNAs tambi\\u00e9n pueden actuar como supresores u oncogenes en diferentes tipos de c\\u00e1ncer. Es por esto que, las modificaciones epigen\\u00e9ticas son un componente importante en la etiolog\\u00eda del c\\u00e1ncer y debido a su reversibilidad constituyen blancos terap\\u00e9uticos prometedores para diagnostico o tratamiento y potencial como posibles biomarcadores.<\\/p>\",\n\"4745cfed-18ac-465f-80b5-59c437a8ab2d\"],\n [{\n 'v': 8,\n 'f': \"8\",\n },\n\"2020-01-22\",\n\"Joyce\",\n\"Scientific Racism 2.0 (SR2.0): An erroneous argument from genetics which inadvertently refines scientific racism\",\n\"
SR2.0 refers to a prominent argument made by some geneticists, often via social and popular media, which inadvertently amounts to a refinement of scientific racism. At face value it is an attack on racism in science. Upon closer inspection its primary, possibly unconscious, purpose appears to be to protect contemporary genetic research from the charge of racism. The argument is often made alongside an emphasis upon long-falsified errors of early science and open expressions of racism in wider society, rather than the intelligence and statistical theory which has informed both genetics and the social construct scientific racism for a century. The core argument is invalid. It also has profound epistemological failings, including misunderstanding the nature of social constructions and how they how they interact with empirical facts. Finally, the proponents do not fully support their own argument; this exposes the argument\\u2019s substantive function as a defensive holding device.<\\/p>\",\n\"879bff9a-169b-425f-a027-11f04e0448ea\"],\n [{\n 'v': 9,\n 'f': \"9\",\n },\n\"2020-01-22\",\n\"Sinar\",\n\"Functional Features of Forensic Corruption Case in Indonesia\",\n\"
This study examines the multimodal use of language affecting the social interaction in the Indonesian Court for Corruption Crimes as the research data source. The objective is to analyze the metafunction multimodal functional features of law enforcement and witnesses in the proceedings of forensic corruption case in Indonesia. Multimodal theory as a new technology that has been invented by linguists was used in this research to analyse forensic language. The findings showed that the multimodal systems were valuable in analysing the forensic functional features in the court room and the functional features of representational, interactive and compositional meanings were present in the court room involving gestures, postures, gazes, nonverbal communication, eye contacts, etc.<\\/p>\",\n\"e262d61c-32bb-4690-b814-e20ee7add13f\"]],\n columns: [[\"number\", \"index\"], [\"string\", \"rejected_date\"], [\"string\", \"first_author\"], [\"string\", \"title\"], [\"string\", \"abstract\"], [\"string\", \"submission_id\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n
\n"
+ ],
+ "text/plain": [
+ " rejected_date first_author \\\n",
+ "0 2020-01-22 Kong \n",
+ "1 2020-01-22 Bowman \n",
+ "2 2020-01-22 Di Sia \n",
+ "3 2020-01-22 Di Sia \n",
+ "4 2020-01-22 Bedoya \n",
+ "5 2020-01-22 Coretta \n",
+ "6 2020-01-22 Wekke \n",
+ "7 2020-01-22 Hernández-Caballero \n",
+ "8 2020-01-22 Joyce \n",
+ "9 2020-01-22 Sinar \n",
+ "\n",
+ " title \\\n",
+ "0 Predicting Prolonged Length of Hospital Stay f... \n",
+ "1 OSF Prereg Template \n",
+ "2 On the Concept of Time in everyday Life and be... \n",
+ "3 Birth and development of quantum physics: a tr... \n",
+ "4 Fabricación de capas antirreflejantes y absorb... \n",
+ "5 Open Science in phonetics and phonology \n",
+ "6 Merumuskan Masalah Penelitian dengan Metode MAIL \n",
+ "7 Epigenética en cáncer \n",
+ "8 Scientific Racism 2.0 (SR2.0): An erroneous ar... \n",
+ "9 Functional Features of Forensic Corruption Cas... \n",
+ "\n",
+ " abstract \\\n",
+ "0 \\n BACKGROUND\\n ... \n",
+ "1
Preregistration is the act of submitting a ... \n",
+ "2
In this paper I consider the concept of tim... \n",
+ "3
The last century has been a period of extre... \n",
+ "4
Se prepararon películas delgadas de SiO2 en... \n",
+ "5
Open Science is a movement that stresses th... \n",
+ "6
Ringkasan kuliah di pascasarjana STAIN Soro... \n",
+ "7
Las células contienen información determina... \n",
+ "8
SR2.0 refers to a prominent argument made b... \n",
+ "9
This study examines the multimodal use of l... \n",
+ "\n",
+ " submission_id \n",
+ "0 6ef9af47-8fa7-4abb-af69-0c8a522b6f9a \n",
+ "1 2239203f-fa3b-4402-a185-1398861aba66 \n",
+ "2 7dc54f58-2a6c-44eb-b906-98a184d1bac1 \n",
+ "3 b466b2fd-b0c3-4573-abc5-229532212be1 \n",
+ "4 56360b84-72d3-42bc-b963-067e95e1ade3 \n",
+ "5 4c0ca94a-14f2-4f86-b014-ac47f7d5170c \n",
+ "6 494a322a-7a51-460b-8dcb-dcfbb405e9e6 \n",
+ "7 4745cfed-18ac-465f-80b5-59c437a8ab2d \n",
+ "8 879bff9a-169b-425f-a027-11f04e0448ea \n",
+ "9 e262d61c-32bb-4690-b814-e20ee7add13f "
+ ]
+ },
+ "execution_count": 15,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import pandas as pd\n",
+ "import numpy as np\n",
+ "from uuid import uuid4\n",
+ "\n",
+ "rejected_publications = []\n",
+ "\n",
+ "preprints = dsl.query(\n",
+ " # This is quite a specific search for preprints published on 2020-01-22\n",
+ " \"\"\"\n",
+ " search publications\n",
+ " where type = \"preprint\" and date = \"2020-01-22\" and abstract is not empty\n",
+ " return publications[date+title+abstract+authors]\n",
+ " limit 10\n",
+ " \"\"\"\n",
+ ")\n",
+ "\n",
+ "for p in preprints.json[\"publications\"]:\n",
+ " # This will be a row of our data:\n",
+ " rejected_article_data_row = {\n",
+ " \"rejected_date\": None, # Initialising the rows with null values\n",
+ " \"first_author\": None,\n",
+ " \"title\": None,\n",
+ " \"abstract\": None\n",
+ " }\n",
+ " rejected_article_data_row['rejected_date'] = p['date']\n",
+ " rejected_article_data_row['title'] = p['title']\n",
+ " rejected_article_data_row['abstract'] = p['abstract']\n",
+ " for order, a in enumerate(p[\"authors\"]):\n",
+ " if order == 0: # i.e. first author\n",
+ " rejected_article_data_row['first_author'] = a['last_name']\n",
+ " rejected_publications.append(rejected_article_data_row)\n",
+ "\n",
+ "rejected_publication_data = pd.DataFrame(rejected_publications)\n",
+ "\n",
+ "rejected_publication_data['submission_id'] = [\n",
+ " str(uuid4()) for _ in range(len(rejected_publication_data))\n",
+ "]\n",
+ "\n",
+ "rejected_publication_data"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "4gO-Sw9RkPKx"
+ },
+ "source": [
+ "## 2. Define the search template\n",
+ "\n",
+ "Python concatenates multiple strings one after another in brackets, so we have written it out as shown below so that we can add comments to the query. This format isn't necessary, but hopefully it's helpful!"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 16,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 36
+ },
+ "id": "UcVe6Ocm6Fiv",
+ "outputId": "cb54d3a0-9236-4981-c629-d6f56ab69ab2"
+ },
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "type": "string"
+ },
+ "text/plain": [
+ "'search publications in title_abstract_only for \"{title}\" where date > \"{rejected_date}\" and (authors = \"{first_author}\") return publications[date+doi+title+abstract] limit 1'"
+ ]
+ },
+ "execution_count": 16,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "template = (\n",
+ " 'search publications '\n",
+ " 'in title_abstract_only ' # Search the whole of the publication\n",
+ " 'for \"{title}\" ' # Stop words will be automatically excluded\n",
+ " 'where date > \"{rejected_date}\" '\n",
+ " 'and ('\n",
+ " 'authors = \"{first_author}\"'\n",
+ " # The line below gives an example of how you could also search for\n",
+ " # the surname of the corresponding author if you have it:\n",
+ " # ' or authors = \"{corresponding_author}\"'\n",
+ " ') '\n",
+ " 'return publications['\n",
+ " 'date' # Published date\n",
+ " '+'\n",
+ " 'doi' # DOI of the published article\n",
+ " '+'\n",
+ " 'title' # Title of the published article\n",
+ " '+'\n",
+ " 'abstract' # Abstract of the published article\n",
+ " '] '\n",
+ " 'limit 1' # Get the most relevant result only\n",
+ ")\n",
+ "\n",
+ "template"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "wAIXlRBUkiU8"
+ },
+ "source": [
+ "## 3. Iteratively Query the Dimensions API for the retracted articles"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 17,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 250,
+ "referenced_widgets": [
+ "a3690f3660a74a0e9af686a2f6ca8304",
+ "03a4c6bae6ca429f96347855a43adac9",
+ "62b20a5d1b1649ab8a2d76c3f4ab7981",
+ "c39293df4cb24387bf8f2638f241c824",
+ "8ab3cbaeb64a413fb51632f9ef182e9c",
+ "f2c1b4851d644eb3bdf048721d255a88",
+ "06fefdea62084b6097b03a497734dbc2",
+ "bd7d718456174f2794a2a2593cf1144a",
+ "c96c1481e38f4c82872c15eda63cde58",
+ "9c5c614ecf7e4fec9e02778e0a938762",
+ "aeeb243ec979404e8d80b3ef1c0a4070"
+ ]
+ },
+ "id": "Legvd8_cpPq4",
+ "outputId": "94828b40-3f54-4327-d93f-d35a9f58958d"
+ },
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "a3690f3660a74a0e9af686a2f6ca8304",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ " 0%| | 0/10 [00:00, ?it/s]"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "data": {
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "summary": "{\n \"name\": \"output\",\n \"rows\": 2,\n \"fields\": [\n {\n \"column\": \"submission_id\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"e262d61c-32bb-4690-b814-e20ee7add13f\",\n \"7dc54f58-2a6c-44eb-b906-98a184d1bac1\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"title\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"Functional Features of Forensic Corruption Case in Indonesia\",\n \"On the Concept of Time in Everyday Life and between Physics and Mathematics\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"abstract\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"
Functional Features of Forensic Corruption Case in Indonesia
\",\n \"In this paper I consider the concept of time in a general way as daily human time and then within physics with relation to mathematics. I consider the arrow of time and then focus the attention on quantum mechanics, with its particular peculiarities, examining important concepts like temporal asymmetry, complexity, decoherence, irreversibility, information theory, chaos theory. In conclusion I consider the notion of time connected to a new theory in progress, called \\u201cPrimordial Dynamic Space\\u201d theory.\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"date\",\n \"properties\": {\n \"dtype\": \"date\",\n \"min\": \"2020-02-28\",\n \"max\": \"2021-01-01\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"2020-02-28\",\n \"2021-01-01\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"doi\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 2,\n \"samples\": [\n \"10.31228/osf.io/m3xa6\",\n \"10.23880/eoij-16000268\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}",
+ "type": "dataframe",
+ "variable_name": "output"
+ },
+ "application/vnd.google.colaboratory.module+javascript": "\n import \"https://ssl.gstatic.com/colaboratory/data_table/e523c247d1e24a05/data_table.js\";\n\n const table = window.createDataTable({\n data: [[{\n 'v': 0,\n 'f': \"0\",\n },\n\"7dc54f58-2a6c-44eb-b906-98a184d1bac1\",\n\"On the Concept of Time in Everyday Life and between Physics and Mathematics\",\n\"In this paper I consider the concept of time in a general way as daily human time and then within physics with relation to mathematics. I consider the arrow of time and then focus the attention on quantum mechanics, with its particular peculiarities, examining important concepts like temporal asymmetry, complexity, decoherence, irreversibility, information theory, chaos theory. In conclusion I consider the notion of time connected to a new theory in progress, called \\u201cPrimordial Dynamic Space\\u201d theory.\",\n\"2021-01-01\",\n\"10.23880/eoij-16000268\"],\n [{\n 'v': 0,\n 'f': \"0\",\n },\n\"e262d61c-32bb-4690-b814-e20ee7add13f\",\n\"Functional Features of Forensic Corruption Case in Indonesia\",\n\"
Functional Features of Forensic Corruption Case in Indonesia<\\/p>\",\n\"2020-02-28\",\n\"10.31228/osf.io/m3xa6\"]],\n columns: [[\"number\", \"index\"], [\"string\", \"submission_id\"], [\"string\", \"title\"], [\"string\", \"abstract\"], [\"string\", \"date\"], [\"string\", \"doi\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n
\n"
+ ],
+ "text/plain": [
+ " submission_id \\\n",
+ "0 7dc54f58-2a6c-44eb-b906-98a184d1bac1 \n",
+ "0 e262d61c-32bb-4690-b814-e20ee7add13f \n",
+ "\n",
+ " title \\\n",
+ "0 On the Concept of Time in Everyday Life and be... \n",
+ "0 Functional Features of Forensic Corruption Cas... \n",
+ "\n",
+ " abstract date \\\n",
+ "0 In this paper I consider the concept of time i... 2021-01-01 \n",
+ "0
Functional Features of Forensic Corruption ... 2020-02-28 \n",
+ "\n",
+ " doi \n",
+ "0 10.23880/eoij-16000268 \n",
+ "0 10.31228/osf.io/m3xa6 "
+ ]
+ },
+ "execution_count": 17,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import string\n",
+ "from tqdm.notebook import tqdm\n",
+ "\n",
+ "def no_punctuation(s: str) -> str:\n",
+ " \"\"\"\n",
+ " Remove punctuation from a python string\n",
+ " \"\"\"\n",
+ " return s.translate(str.maketrans('', '', string.punctuation))\n",
+ "\n",
+ "# We'll store all our results in this list as we iterate, then join them together at the end...\n",
+ "results = []\n",
+ "\n",
+ "# For each row in the data set as a python dictionary:\n",
+ "for row in tqdm(rejected_publication_data.to_dict(orient=\"records\")):\n",
+ " row['title'] = no_punctuation(row['title'])\n",
+ " query = template.format(**row)\n",
+ " best = dsl.query(query, verbose=False).as_dataframe()\n",
+ " best['submission_id'] = row['submission_id']\n",
+ " results.append(best)\n",
+ "\n",
+ "# Join results together\n",
+ "output = pd.concat(results)\n",
+ "\n",
+ "output.head() # .head() shows just a few rows"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "Zze35aGEHF8Z"
+ },
+ "source": [
+ "\n",
+ "### 4. Join together the input and output data"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 18,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 1292
+ },
+ "id": "jtBd5CK-HRSj",
+ "outputId": "f7fab76f-9fae-40f5-e382-9535c11896a1"
+ },
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "summary": "{\n \"name\": \"merged_results\",\n \"rows\": 10,\n \"fields\": [\n {\n \"column\": \"rejected_date\",\n \"properties\": {\n \"dtype\": \"object\",\n \"num_unique_values\": 1,\n \"samples\": [\n \"2020-01-22\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"first_author\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 9,\n \"samples\": [\n \"Joyce\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"title_x\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 10,\n \"samples\": [\n \"Scientific Racism 2.0 (SR2.0): An erroneous argument from genetics which inadvertently refines scientific racism\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"abstract_x\",\n \"properties\": {\n \"dtype\": \"string\",\n \"num_unique_values\": 10,\n \"samples\": [\n \"
SR2.0 refers to a prominent argument made by some geneticists, often via social and popular media, which inadvertently amounts to a refinement of scientific racism. At face value it is an attack on racism in science. Upon closer inspection its primary, possibly unconscious, purpose appears to be to protect contemporary genetic research from the charge of racism. The argument is often made alongside an emphasis upon long-falsified errors of early science and open expressions of racism in wider society, rather than the intelligence and statistical theory which has informed both genetics and the social construct scientific racism for a century. The core argument is invalid. It also has profound epistemological failings, including misunderstanding the nature of social constructions and how they how they interact with empirical facts. Finally, the proponents do not fully support their own argument; this exposes the argument\\u2019s substantive function as a defensive holding device.
The increasing number of patients treated with peritoneal dialysis (PD) and their consistently high rate of hospital admissions have placed a large burden on the health care system. Early clinical interventions and optimal management of patients at a high risk of prolonged length of stay (pLOS) may help improve the medical efficiency and prognosis of PD-treated patients. If timely clinical interventions are not provided, patients at a high risk of pLOS may face a poor prognosis and high medical expenses, which will also be a burden on hospitals. Therefore, physicians need an effective pLOS prediction model for PD-treated patients.<\\/p>\\n <\\/sec>\\n \\n OBJECTIVE\\n
This study aimed to develop an optimal data-driven model for predicting the pLOS risk of PD-treated patients using basic admission data.<\\/p>\\n <\\/sec>\\n \\n METHODS\\n
Patient data collected using the Hospital Quality Monitoring System (HQMS) in China were used to develop pLOS prediction models. A stacking model was constructed with support vector machine, random forest (RF), and K-nearest neighbor algorithms as its base models and traditional logistic regression (LR) as its meta-model. The meta-model used the outputs of all 3 base models as input and generated the output of the stacking model. Another LR-based pLOS prediction model was built as the benchmark model. The prediction performance of the stacking model was compared with that of its base models and the benchmark model. Five-fold cross-validation was employed to develop and validate the models. Performance measures included the Brier score, area under the receiver operating characteristic curve (AUROC), estimated calibration index (ECI), accuracy, sensitivity, specificity, and geometric mean (Gm). In addition, a calibration plot was employed to visually demonstrate the calibration power of each model.<\\/p>\\n <\\/sec>\\n \\n RESULTS\\n
The final cohort extracted from the HQMS database consisted of 23,992 eligible PD-treated patients, among whom 30.3% had a pLOS (ie, longer than the average LOS, which was 16 days in our study). Among the models, the stacking model achieved the best calibration (ECI 8.691), balanced accuracy (Gm 0.690), accuracy (0.695), and specificity (0.701). Meanwhile, the stacking and RF models had the best overall performance (Brier score 0.174 for both) and discrimination (AUROC 0.757 for the stacking model and 0.756 for the RF model). Compared with the benchmark LR model, the stacking model was superior in all performance measures except sensitivity, but there was no significant difference in sensitivity between the 2 models. The 2-sided <i>t</i> tests revealed significant performance differences between the stacking and LR models in overall performance, discrimination, calibration, balanced accuracy, and accuracy.<\\/p>\\n <\\/sec>\\n \\n CONCLUSIONS\\n
This study is the first to develop data-driven pLOS prediction models for PD-treated patients using basic admission data from a national database. The results indicate the feasibility of utilizing a stacking-based pLOS prediction model for PD-treated patients. The pLOS prediction tools developed in this study have the potential to assist clinicians in identifying patients at a high risk of pLOS and to allocate resources optimally for PD-treated patients.<\\/p>\\n <\\/sec>\",\n\"6ef9af47-8fa7-4abb-af69-0c8a522b6f9a\",\nNaN,\nNaN,\nNaN,\nNaN],\n [{\n 'v': 1,\n 'f': \"1\",\n },\n\"2020-01-22\",\n\"Bowman\",\n\"OSF Prereg Template\",\n\"
Preregistration is the act of submitting a study plan, ideally also with analytical plan, to a registry prior to conducting the work. Preregistration increases the discoverability of research even if it does not get published further. Adding specific analysis plans can clarify the distinction between planned, confirmatory tests and unplanned, exploratory research. This preprint contains a template for the \\u201cOSF Prereg\\u201d form available from the OSF Registry. An earlier version was originally developed for the Preregistration Challenge, an education campaign designed to initiate preregistration as a habit prior to data collection in basic research, funded by the Laura and John Arnold Foundation (now Arnold Ventures) and conducted by the Center for Open Science. More information is available at https://cos.io/prereg, and other templates are available at: https://osf.io/zab38/<\\/p>\",\n\"2239203f-fa3b-4402-a185-1398861aba66\",\nNaN,\nNaN,\nNaN,\nNaN],\n [{\n 'v': 2,\n 'f': \"2\",\n },\n\"2020-01-22\",\n\"Di Sia\",\n\"On the Concept of Time in everyday Life and between Physics and Mathematics\",\n\"
In this paper I consider the concept of time in a general way as daily human time andthen within physics with relation to mathematics. I focus the attention on quantum mechanics, with its particular peculiarities, examining peculiar important questions like the temporal asymmetry, the Prigogine\\u2019s position and the time-reversal operator of Wigner. I conclude considering the theme of the temporal asymmetry in relation to decoherence and irreversibility. Interesting imputs related to education science will be done.<\\/p>\",\n\"7dc54f58-2a6c-44eb-b906-98a184d1bac1\",\n\"On the Concept of Time in Everyday Life and between Physics and Mathematics\",\n\"In this paper I consider the concept of time in a general way as daily human time and then within physics with relation to mathematics. I consider the arrow of time and then focus the attention on quantum mechanics, with its particular peculiarities, examining important concepts like temporal asymmetry, complexity, decoherence, irreversibility, information theory, chaos theory. In conclusion I consider the notion of time connected to a new theory in progress, called \\u201cPrimordial Dynamic Space\\u201d theory.\",\n\"2021-01-01\",\n\"10.23880/eoij-16000268\"],\n [{\n 'v': 3,\n 'f': \"3\",\n },\n\"2020-01-22\",\n\"Di Sia\",\n\"Birth and development of quantum physics: a transdisciplinary approach\",\n\"
The last century has been a period of extreme interest for scientific research, marked by the overcoming of the classical frontiers of scientific knowledge.Research oriented towards the infinitely small and infinitely big, in both cases beyondthe borders of the visible. Quantum physics has led to a new Copernican revolution,opening the way to new questions that have led to a new view of reality. At the sametime, new theories have developed, involving every field of science, philosophy and art, rediscovering the link between unity and totality and the importance of humanpotential. In a transdisciplinary approach we consider quantum field theory, new ideason the concepts of vacuum and entanglement, metaphysical aspects of quantum revolution and the introduction of different interpretative approaches on the \\u201cWhole\\u201d.<\\/p>\",\n\"b466b2fd-b0c3-4573-abc5-229532212be1\",\nNaN,\nNaN,\nNaN,\nNaN],\n [{\n 'v': 4,\n 'f': \"4\",\n },\n\"2020-01-22\",\n\"Bedoya\",\n\"Fabricaci\\u00f3n de capas antirreflejantes y absorbedores solares mediante la t\\u00e9cnica Sol-gel: Un resumen sobre la variaci\\u00f3n de s\\u00edntesis y condiciones experimentales realizadas en la UTP\",\n\"
Se prepararon pel\\u00edculas delgadas de SiO2 en relaci\\u00f3n molar TEOS:H2O:EtOH 1:18:1.8 y CuCoMn en relaci\\u00f3n molar Cu:Co:Mn 1:3:3 por el m\\u00e9todo de recubrimiento por inmersi\\u00f3n (Sol-gel), bajo condiciones fijas de velocidad de dep\\u00f3sito y n\\u00famero de capas. Inicialmente se usaron sustratos de vidrios con el fin de analizar el comportamiento \\u00f3ptico de los recubrimientos utilizando espectroscop\\u00eda UV-Vis y FTIR. Una vez depositados los recubrimientos de SiO2 se sometieron a secado a temperatura ambiente y dentro de un horno tubular a 70 \\u00b0C. Por otro lado, las muestras de CuCoMn se trataron t\\u00e9rmicamente a diferentes temperaturas de recocido (550 \\u00b0C, 600 \\u00b0C y 650 \\u00b0C) durante 12 horas a una rampa de 1 \\u00b0C/min. Los resultados parciales obtenidos muestran que las pel\\u00edculas exhiben una absortancia entre 75% - 95 %, lo cual est\\u00e1 acorde con lo reportado en la literatura para este material. Sin embargo, para aumentar este valor es necesario ampliar el estudio del material, con el fin de definir su estructura, composici\\u00f3n y morfolog\\u00eda. El objetivo es obtener recubrimientos con las propiedades \\u00f3pticas y estructurales adecuadas con el fin de ser usados en la fabricaci\\u00f3n de la superficie absorbedora de calentadores de agua e instalaciones de energ\\u00eda solar.<\\/p>\",\n\"56360b84-72d3-42bc-b963-067e95e1ade3\",\nNaN,\nNaN,\nNaN,\nNaN]],\n columns: [[\"number\", \"index\"], [\"string\", \"rejected_date\"], [\"string\", \"first_author\"], [\"string\", \"title_x\"], [\"string\", \"abstract_x\"], [\"string\", \"submission_id\"], [\"string\", \"title_y\"], [\"string\", \"abstract_y\"], [\"string\", \"date\"], [\"string\", \"doi\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n
\n"
+ ],
+ "text/plain": [
+ " rejected_date first_author \\\n",
+ "0 2020-01-22 Kong \n",
+ "1 2020-01-22 Bowman \n",
+ "2 2020-01-22 Di Sia \n",
+ "3 2020-01-22 Di Sia \n",
+ "4 2020-01-22 Bedoya \n",
+ "\n",
+ " title_x \\\n",
+ "0 Predicting Prolonged Length of Hospital Stay f... \n",
+ "1 OSF Prereg Template \n",
+ "2 On the Concept of Time in everyday Life and be... \n",
+ "3 Birth and development of quantum physics: a tr... \n",
+ "4 Fabricación de capas antirreflejantes y absorb... \n",
+ "\n",
+ " abstract_x \\\n",
+ "0 \\n BACKGROUND\\n ... \n",
+ "1
Preregistration is the act of submitting a ... \n",
+ "2
In this paper I consider the concept of tim... \n",
+ "3
The last century has been a period of extre... \n",
+ "4
Se prepararon películas delgadas de SiO2 en... \n",
+ "\n",
+ " submission_id \\\n",
+ "0 6ef9af47-8fa7-4abb-af69-0c8a522b6f9a \n",
+ "1 2239203f-fa3b-4402-a185-1398861aba66 \n",
+ "2 7dc54f58-2a6c-44eb-b906-98a184d1bac1 \n",
+ "3 b466b2fd-b0c3-4573-abc5-229532212be1 \n",
+ "4 56360b84-72d3-42bc-b963-067e95e1ade3 \n",
+ "\n",
+ " title_y \\\n",
+ "0 NaN \n",
+ "1 NaN \n",
+ "2 On the Concept of Time in Everyday Life and be... \n",
+ "3 NaN \n",
+ "4 NaN \n",
+ "\n",
+ " abstract_y date \\\n",
+ "0 NaN NaN \n",
+ "1 NaN NaN \n",
+ "2 In this paper I consider the concept of time i... 2021-01-01 \n",
+ "3 NaN NaN \n",
+ "4 NaN NaN \n",
+ "\n",
+ " doi \n",
+ "0 NaN \n",
+ "1 NaN \n",
+ "2 10.23880/eoij-16000268 \n",
+ "3 NaN \n",
+ "4 NaN "
+ ]
+ },
+ "execution_count": 18,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "merged_results = pd.merge(\n",
+ " rejected_publication_data,\n",
+ " output,\n",
+ " left_on='submission_id',\n",
+ " right_on='submission_id',\n",
+ " how='left')\n",
+ "\n",
+ "merged_results.head()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "id": "WHfO5HvqbWoR"
+ },
+ "source": [
+ "## 5. Add Matching Score\n",
+ "\n",
+ "We have found some publications that might match our rejected articles. Now we need to score them to see whether they are good matches.\n",
+ "\n",
+ "In this case we'll measure the edit distance between the titles. The most commonly-used edit distance between strings is [Levensthtein distance](https://en.wikipedia.org/wiki/Jaccard_index), which is [nicely implemented in Python in the `Levenshtein` package](https://rapidfuzz.github.io/Levenshtein/).\n",
+ "\n",
+ "The `Levenshtein` package has a function \"ratio\" which uses Levenshtein distance to get a similarity (not distance) score between 0 (disimilar) and 1 (identical). We will use this to compare titles converted to lowercase.\n",
+ "\n",
+ "Sorting the results by score descending (from highest to lowest) we can see that there was one good match. If we wanted to make the matching more automatic, we could choose to filter out everything with a score less than e.g. 0.75."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 24,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/"
+ },
+ "id": "3pxX8k8u52JA",
+ "outputId": "7570c530-8fba-49cb-e6de-4a7474bbe080"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "0.7111111111111111\n",
+ "0.9090909090909091\n"
+ ]
+ }
+ ],
+ "source": [
+ "from Levenshtein import ratio\n",
+ "\n",
+ "def similarity(string1: str, string2: str) -> float:\n",
+ " \"\"\"\n",
+ " Case-insensitive similarity score made by subtracting the normalised\n",
+ " Levenshtein distance from 1.\n",
+ " \"\"\"\n",
+ " if pd.isna(string1) or pd.isna(string2):\n",
+ " return 0.\n",
+ " else:\n",
+ " return ratio(string1.lower(), string2.lower())\n",
+ "\n",
+ "print(similarity('The cat sat on the mat', 'The dog sat on the frog'))\n",
+ "print(similarity('The cat sat on the mat', 'The mat sat on the cat'))"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 26,
+ "metadata": {
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 246
+ },
+ "id": "wNcx52H3zDnz",
+ "outputId": "421be014-42a1-4fc2-8362-052bc7accb80"
+ },
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.google.colaboratory.intrinsic+json": {
+ "repr_error": "0",
+ "type": "dataframe"
+ },
+ "application/vnd.google.colaboratory.module+javascript": "\n import \"https://ssl.gstatic.com/colaboratory/data_table/e523c247d1e24a05/data_table.js\";\n\n const table = window.createDataTable({\n data: [[{\n 'v': 2,\n 'f': \"2\",\n },\n\"7dc54f58-2a6c-44eb-b906-98a184d1bac1\",\n\"2020-01-22\",\n\"On the Concept of Time in everyday Life and between Physics and Mathematics\",\n\"On the Concept of Time in Everyday Life and between Physics and Mathematics\",\n\"
In this paper I consider the concept of time in a general way as daily human time andthen within physics with relation to mathematics. I focus the attention on quantum mechanics, with its particular peculiarities, examining peculiar important questions like the temporal asymmetry, the Prigogine\\u2019s position and the time-reversal operator of Wigner. I conclude considering the theme of the temporal asymmetry in relation to decoherence and irreversibility. Interesting imputs related to education science will be done.<\\/p>\",\n\"In this paper I consider the concept of time in a general way as daily human time and then within physics with relation to mathematics. I consider the arrow of time and then focus the attention on quantum mechanics, with its particular peculiarities, examining important concepts like temporal asymmetry, complexity, decoherence, irreversibility, information theory, chaos theory. In conclusion I consider the notion of time connected to a new theory in progress, called \\u201cPrimordial Dynamic Space\\u201d theory.\",\n\"10.23880/eoij-16000268\",\n{\n 'v': 0.7055393586005831,\n 'f': \"0.7055393586005831\",\n }]],\n columns: [[\"number\", \"index\"], [\"string\", \"submission_id\"], [\"string\", \"rejected_date\"], [\"string\", \"original_title\"], [\"string\", \"published_title\"], [\"string\", \"abstract_x\"], [\"string\", \"abstract_y\"], [\"string\", \"doi\"], [\"number\", \"score\"]],\n columnOptions: [{\"width\": \"1px\", \"className\": \"index_column\"}],\n rowsPerPage: 25,\n helpUrl: \"https://colab.research.google.com/notebooks/data_table.ipynb\",\n suppressOutputScrolling: true,\n minimumWidth: undefined,\n });\n\n function appendQuickchartButton(parentElement) {\n let quickchartButtonContainerElement = document.createElement('div');\n quickchartButtonContainerElement.innerHTML = `\n
\n"
+ ],
+ "text/plain": [
+ " submission_id rejected_date \\\n",
+ "2 7dc54f58-2a6c-44eb-b906-98a184d1bac1 2020-01-22 \n",
+ "\n",
+ " original_title \\\n",
+ "2 On the Concept of Time in everyday Life and be... \n",
+ "\n",
+ " published_title \\\n",
+ "2 On the Concept of Time in Everyday Life and be... \n",
+ "\n",
+ " abstract_x \\\n",
+ "2
-fromdatetimeimportdate
+fromdatetimeimportdatetoday=date.today().strftime("%d/%m/%Y")
-fromplotly.offlineimportplot
+fromplotly.offlineimportplotfig=px.bar(df,x=df['filter_by'],y=df['results'],title=f"No of Patents records per API field (as of {today})")plot(fig,filename='patents-fields-overview.html',auto_open=False)
@@ -3598,7 +3598,7 @@
-defthe_H_function(sorted_citations_list,n=1):
+defthe_H_function(sorted_citations_list,n=1):"""from a list of integers [n1, n2 ..] representing publications citations, return the max list-position which is >= integer
@@ -1361,7 +1361,7 @@
+Searching config file credentials for 'https://app.dimensions.ai' endpoint..
+
+
+
+
+
+
+
+==
+Logging in..
+Dimcli - Dimensions API Client (v1.4)
+Connected to: <https://app.dimensions.ai/api/dsl> - DSL v2.12
+Method: dsl.ini file
+
+
+
+
+
+
1. Matching affiliation data to Dimensions Organization IDs using extract_affiliations¶
+
The API function extract_affiliations (docs) can be used to enrich private datasets including non-disambiguated organizations data with Dimensions IDs, so to then take advantage of the wealth of linked data available in Dimensions.
+
For example, let’s assume our dataset has four columns (affiliation name, city, state and country) - any of which can be empty of course. Like this:
+
+
[3]:
+
+
+
+affiliations=[
+ ['University of Nebraska–Lincoln','Lincoln','Nebraska','United States'],
+ ['Tarbiat Modares University','Tehran','','Iran'],
+ ['Harvard University','Cambridge','Massachusetts','United States'],
+ ['China Academy of Chinese Medical Sciences','Beijing','','China'],
+ ['Liaoning University','Shenyang','','China'],
+ ['Liaoning Normal University','Dalian','','China'],
+ ['P.G. Department of Zoology and Research Centre, Shri Shiv Chhatrapati College of Arts, Commerce and Science, Junnar 410502, Pune, India.','','',''],
+ ['Sungkyunkwan University','Seoul','','South Korea'],
+ ['Centre for Materials for Electronics Technology','Pune','','India'],
+ ['Institut Necker-Enfants Malades (INEM), INSERM U1151-CNRS UMR8253, Université de Paris, Faculté de Médecine, 156 rue de Vaugirard, 75730 Paris Cedex 15, France','','','']
+ ]
+
+
+
+
We want to look up Dimensions Organization identifiers for those affiliations using the structured affiliation matching.
If we combine the affiliation data into a single long string, we can also perform the same king of operation using the unstructured affiliation matching.
We can easily look up an organization using its ID, e.g.
+
+
[8]:
+
+
+
+%%dsldf
+search organizations
+ where id="grid.468887.d"
+return organizations[all]
+
+
+
+
+
+
+
+
+Returned Errors: 1
+Time: 5.84s
+Query Error
+Semantic errors found:
+ Field / Fieldset 'all' is not present in Source 'organizations'. Available fields: acronym,city_name,cnrs_ids,country_code,country_name,dimensions_url,established,external_ids_fundref,hesa_ids,id,isni_ids,latitude,linkout,longitude,name,nuts_level1_code,nuts_level1_name,nuts_level2_code,nuts_level2_name,nuts_level3_code,nuts_level3_name,organization_child_ids,organization_parent_ids,organization_related_ids,orgref_ids,redirect,ror_ids,score,state_name,status,types,ucas_ids,ukprn_ids,wikidata_ids,wikipedia_url and available fieldsets: basics,nuts
+
+
+
+
[9]:
+
+
+
+%%dsldf
+search organizations
+ for "new york"
+ where types in ["Education"]
+return organizations limit 10
+
So, for example, one can do a publications search and return organizations as a facet. This allows to take advantage of organization metadata - e.g. latiture and longitude - in order to quickly build a geograpical visualization.
+
+
[13]:
+
+
+
+q="""
+search publications for "coronavirus OR covid-19"
+ where year > 2019
+return research_orgs[basics] limit 50
+"""
+
+df=dslquery(q).as_dataframe()
+df.head(5)
+
3. A closer look at the organizations data statistics¶
+
The Dimensions Search Language exposes programmatically metadata, such as supported sources and entities, along with their fields, facets, fieldsets, metrics and search fields.
+
+
[15]:
+
+
+
+%dsldocs organizations
+
+
+
+
+
[15]:
+
+
+
+
+
+
+
+
+
+
sources
+
field
+
type
+
description
+
is_filter
+
is_entity
+
is_facet
+
+
+
+
+
0
+
organizations
+
acronym
+
string
+
GRID acronym of the organization. E.g., "UT" f...
+
True
+
False
+
False
+
+
+
1
+
organizations
+
city_name
+
string
+
GRID name of the organization country. E.g., "...
+
True
+
False
+
True
+
+
+
2
+
organizations
+
cnrs_ids
+
string
+
CNRS IDs for this organization
+
True
+
False
+
False
+
+
+
3
+
organizations
+
country_code
+
string
+
Country of the organisation, identified using ...
+
True
+
False
+
True
+
+
+
4
+
organizations
+
country_name
+
string
+
GRID name of the organization country. E.g., "...
+
True
+
False
+
True
+
+
+
5
+
organizations
+
dimensions_url
+
string
+
Link pointing to the Dimensions web application
+
False
+
False
+
False
+
+
+
6
+
organizations
+
established
+
integer
+
Year when the organization was estabilished
+
True
+
False
+
False
+
+
+
7
+
organizations
+
external_ids_fundref
+
string
+
Fundref IDs for this organization
+
True
+
False
+
False
+
+
+
8
+
organizations
+
hesa_ids
+
string
+
HESA IDs for this organization
+
True
+
False
+
False
+
+
+
9
+
organizations
+
id
+
string
+
GRID ID of the organization. E.g., "grid.26999...
+
True
+
False
+
False
+
+
+
10
+
organizations
+
isni_ids
+
string
+
ISNI IDs for this organization
+
True
+
False
+
False
+
+
+
11
+
organizations
+
latitude
+
float
+
None
+
False
+
False
+
False
+
+
+
12
+
organizations
+
linkout
+
string
+
None
+
False
+
False
+
False
+
+
+
13
+
organizations
+
longitude
+
float
+
None
+
False
+
False
+
False
+
+
+
14
+
organizations
+
name
+
string
+
GRID name of the organization. E.g., "Universi...
+
True
+
False
+
False
+
+
+
15
+
organizations
+
nuts_level1_code
+
string
+
Level 1 code for this organization, based on `...
+
True
+
False
+
True
+
+
+
16
+
organizations
+
nuts_level1_name
+
string
+
Level 1 name for this organization, based on `...
+
True
+
False
+
True
+
+
+
17
+
organizations
+
nuts_level2_code
+
string
+
Level 2 code for this organization, based on `...
+
True
+
False
+
True
+
+
+
18
+
organizations
+
nuts_level2_name
+
string
+
Level 2 name for this organization, based on `...
+
True
+
False
+
True
+
+
+
19
+
organizations
+
nuts_level3_code
+
string
+
Level 3 code for this organization, based on `...
+
True
+
False
+
True
+
+
+
20
+
organizations
+
nuts_level3_name
+
string
+
Level 3 name for this organization, based on `...
+
True
+
False
+
True
+
+
+
21
+
organizations
+
organization_child_ids
+
string
+
Child organization IDs
+
True
+
False
+
False
+
+
+
22
+
organizations
+
organization_parent_ids
+
string
+
Parent organization IDs
+
True
+
False
+
False
+
+
+
23
+
organizations
+
organization_related_ids
+
string
+
Related organization IDs
+
True
+
False
+
False
+
+
+
24
+
organizations
+
orgref_ids
+
string
+
OrgRef IDs for this organization
+
True
+
False
+
False
+
+
+
25
+
organizations
+
redirect
+
string
+
GRID ID of an organization this one was redire...
+
True
+
False
+
False
+
+
+
26
+
organizations
+
ror_ids
+
string
+
ROR IDs for this organization
+
True
+
False
+
False
+
+
+
27
+
organizations
+
score
+
float
+
For full-text queries, the relevance score is ...
+
True
+
False
+
False
+
+
+
28
+
organizations
+
state_name
+
string
+
GRID name of the organization country. E.g., "...
+
True
+
False
+
True
+
+
+
29
+
organizations
+
status
+
string
+
Status of an organization. May be be one of:\n...
+
True
+
False
+
True
+
+
+
30
+
organizations
+
types
+
string
+
Type of an organization. Available types inclu...
+
True
+
False
+
True
+
+
+
31
+
organizations
+
ucas_ids
+
string
+
UCAS IDs for this organization
+
True
+
False
+
False
+
+
+
32
+
organizations
+
ukprn_ids
+
string
+
UKPRN IDs for this organization
+
True
+
False
+
False
+
+
+
33
+
organizations
+
wikidata_ids
+
string
+
WikiData IDs for this organization
+
True
+
False
+
False
+
+
+
34
+
organizations
+
wikipedia_url
+
string
+
Wikipedia URL
+
False
+
False
+
False
+
+
+
+
+
+
We can use the fields information above to draw up some quick statistics re. the organizations source.
+
In order to do this, we use the operator isnotempty to generate automatically queries like this searchorganizationswherefield_nameisnotemptyreturnorganizationslimit1 and then use the total_count field in the JSON we get back for our statistics.
+
+
[16]:
+
+
+
+FIELDS_DATA=dsl_last_results
+
+# one query with `is not empty` for field-filters
+q_template="""search organizations where {} is not empty return organizations[id] limit 1"""
+
+# seed results with total number of orgs
+totorgs=dsl.query("""search organizations return organizations[id] limit 1""",verbose=False).count_total
+stats=[
+ {'filter_by':'All Organizations (no filter)','results':totorgs}
+]
+
+forindex,rowinpbar(list(FIELDS_DATA.iterrows())):
+ # print("\n===", row['field'])
+ q=q_template.format(row['field'],row['field'])
+ res=dsl.query(q,verbose=False)
+ time.sleep(0.5)
+ stats.append({'filter_by':row['field'],'results':res.count_total})
+
+
+# save to a dataframe
+df=pd.DataFrame().from_dict(stats)
+df.sort_values("results",inplace=True,ascending=False)
+df
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Query Error
+Semantic errors found:
+ Field id does not support emptiness filters.
+Query Error
+Semantic errors found:
+ Field score does not support emptiness filters.
+
Please have a look at the official documentation for more information on the organizations data source.
+
+
+
+
+
+
+
+
Note
+
The Dimensions Analytics API allows to carry out sophisticated research data analytics tasks like the ones described on this website. Check out also the associated Github repository for examples, the source code of these tutorials and much more.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/docs/cookbooks/8-organizations/1-Organization-data-preview.ipynb b/docs/cookbooks/8-organizations/1-Organization-data-preview.ipynb
new file mode 100644
index 00000000..ee0a14f7
--- /dev/null
+++ b/docs/cookbooks/8-organizations/1-Organization-data-preview.ipynb
@@ -0,0 +1,5308 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "colab_type": "text",
+ "id": "AuCkj0Qwywjy"
+ },
+ "source": [
+ "# The Organizations API: Features Overview\n",
+ "\n",
+ "This tutorial provides an overview of the [Organizations data source](https://docs.dimensions.ai/dsl/datasource-organizations.html) available via the [Dimensions Analytics API](https://docs.dimensions.ai/dsl/). \n",
+ "\n",
+ "The topics covered in this notebook are:\n",
+ "\n",
+ "* How to align your affiliation data with Dimensions using the API [disambiguation service](https://docs.dimensions.ai/dsl/functions.html#function-extract-affiliations) \n",
+ "* How to retrieve organizations metadata using the [search fields](https://docs.dimensions.ai/dsl/datasource-organizations.html) available\n",
+ "* How to use the [schema API](https://docs.dimensions.ai/dsl/data-sources.html#metadata-api) to obtain some statistics about the Organizations data available \n",
+ " \n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 1,
+ "metadata": {},
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "==\n",
+ "CHANGELOG\n",
+ "This notebook was last run on Sep 10, 2025\n",
+ "==\n"
+ ]
+ }
+ ],
+ "source": [
+ "import datetime\n",
+ "print(\"==\\nCHANGELOG\\nThis notebook was last run on %s\\n==\" % datetime.date.today().strftime('%b %d, %Y'))"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "colab_type": "text",
+ "id": "OwTp1dybd2FF"
+ },
+ "source": [
+ "## Prerequisites\n",
+ "\n",
+ "This notebook assumes you have installed the [Dimcli](https://pypi.org/project/dimcli/) library and are familiar with the ['Getting Started' tutorial](https://api-lab.dimensions.ai/cookbooks/1-getting-started/1-Using-the-Dimcli-library-to-query-the-API.html)."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 2,
+ "metadata": {
+ "Collapsed": "false"
+ },
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ " \n",
+ " \n",
+ " "
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001b[2mSearching config file credentials for 'https://app.dimensions.ai' endpoint..\u001b[0m\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "==\n",
+ "Logging in..\n",
+ "\u001b[2mDimcli - Dimensions API Client (v1.4)\u001b[0m\n",
+ "\u001b[2mConnected to: - DSL v2.12\u001b[0m\n",
+ "\u001b[2mMethod: dsl.ini file\u001b[0m\n"
+ ]
+ }
+ ],
+ "source": [
+ "!pip install dimcli tqdm plotly -U --quiet\n",
+ "\n",
+ "import dimcli\n",
+ "from dimcli.utils import *\n",
+ "\n",
+ "import json, sys, time\n",
+ "import pandas as pd\n",
+ "from tqdm.notebook import tqdm as pbar\n",
+ "import plotly.express as px # plotly>=4.8.1\n",
+ "if not 'google.colab' in sys.modules:\n",
+ " # make js dependecies local / needed by html exports\n",
+ " from plotly.offline import init_notebook_mode\n",
+ " init_notebook_mode(connected=True)\n",
+ "#\n",
+ "\n",
+ "print(\"==\\nLogging in..\")\n",
+ "# https://digital-science.github.io/dimcli/getting-started.html#authentication\n",
+ "ENDPOINT = \"https://app.dimensions.ai\"\n",
+ "if 'google.colab' in sys.modules:\n",
+ " import getpass\n",
+ " KEY = getpass.getpass(prompt='API Key: ') \n",
+ " dimcli.login(key=KEY, endpoint=ENDPOINT)\n",
+ "else:\n",
+ " KEY = \"\"\n",
+ " dimcli.login(key=KEY, endpoint=ENDPOINT)\n",
+ "dsl = dimcli.Dsl()"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "colab_type": "text",
+ "id": "JcnVEdOAywj3"
+ },
+ "source": [
+ "---"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "colab_type": "text",
+ "id": "8zxcg9gPgZAv"
+ },
+ "source": [
+ "## 1. Matching affiliation data to Dimensions Organization IDs using `extract_affiliations`\n",
+ "\n",
+ "The API function `extract_affiliations` ([docs](https://docs.dimensions.ai/dsl/functions.html#function-extract-affiliations)) can be used to enrich private datasets including non-disambiguated organizations data with Dimensions IDs, so to then take advantage of the wealth of linked data available in Dimensions.\n",
+ "\n",
+ "For example, let's assume our dataset has four columns (*affiliation name*, *city*, *state* and *country*) - any of which can be empty of course. Like this:\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 3,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {},
+ "colab_type": "code",
+ "id": "cj5zBndjhgMM"
+ },
+ "outputs": [],
+ "source": [
+ "affiliations = [\n",
+ " ['University of Nebraska–Lincoln', 'Lincoln', 'Nebraska', 'United States'],\n",
+ " ['Tarbiat Modares University', 'Tehran', '', 'Iran'],\n",
+ " ['Harvard University', 'Cambridge', 'Massachusetts', 'United States'],\n",
+ " ['China Academy of Chinese Medical Sciences', 'Beijing', '', 'China'],\n",
+ " ['Liaoning University', 'Shenyang', '', 'China'],\n",
+ " ['Liaoning Normal University', 'Dalian', '', 'China'],\n",
+ " ['P.G. Department of Zoology and Research Centre, Shri Shiv Chhatrapati College of Arts, Commerce and Science, Junnar 410502, Pune, India.', '', '', ''],\n",
+ " ['Sungkyunkwan University', 'Seoul', '', 'South Korea'],\n",
+ " ['Centre for Materials for Electronics Technology', 'Pune', '', 'India'],\n",
+ " ['Institut Necker-Enfants Malades (INEM), INSERM U1151-CNRS UMR8253, Université de Paris, Faculté de Médecine, 156 rue de Vaugirard, 75730 Paris Cedex 15, France', '', '', '']\n",
+ " ]"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "colab_type": "text",
+ "id": "AcAypP1agx3M"
+ },
+ "source": [
+ "We want to look up Dimensions Organization identifiers for those affiliations using the **structured** affiliation matching. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 4,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 256,
+ "resources": {
+ "http://localhost:8080/nbextensions/google.colab/colabwidgets/controls.css": {
+ "data": "LyogQ29weXJpZ2h0IChjKSBKdXB5dGVyIERldmVsb3BtZW50IFRlYW0uCiAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTW9kaWZpZWQgQlNEIExpY2Vuc2UuCiAqLwoKIC8qIFdlIGltcG9ydCBhbGwgb2YgdGhlc2UgdG9nZXRoZXIgaW4gYSBzaW5nbGUgY3NzIGZpbGUgYmVjYXVzZSB0aGUgV2VicGFjawpsb2FkZXIgc2VlcyBvbmx5IG9uZSBmaWxlIGF0IGEgdGltZS4gVGhpcyBhbGxvd3MgcG9zdGNzcyB0byBzZWUgdGhlIHZhcmlhYmxlCmRlZmluaXRpb25zIHdoZW4gdGhleSBhcmUgdXNlZC4gKi8KCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnwgQ29weXJpZ2h0IChjKSBKdXB5dGVyIERldmVsb3BtZW50IFRlYW0uCnwgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNb2RpZmllZCBCU0QgTGljZW5zZS4KfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKIC8qClRoaXMgZmlsZSBpcyBjb3BpZWQgZnJvbSB0aGUgSnVweXRlckxhYiBwcm9qZWN0IHRvIGRlZmluZSBkZWZhdWx0IHN0eWxpbmcgZm9yCndoZW4gdGhlIHdpZGdldCBzdHlsaW5nIGlzIGNvbXBpbGVkIGRvd24gdG8gZWxpbWluYXRlIENTUyB2YXJpYWJsZXMuIFdlIG1ha2Ugb25lCmNoYW5nZSAtIHdlIGNvbW1lbnQgb3V0IHRoZSBmb250IGltcG9ydCBiZWxvdy4KKi8KCiAvKioKICogVGhlIG1hdGVyaWFsIGRlc2lnbiBjb2xvcnMgYXJlIGFkYXB0ZWQgZnJvbSBnb29nbGUtbWF0ZXJpYWwtY29sb3IgdjEuMi42CiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5sZXZhbi9nb29nbGUtbWF0ZXJpYWwtY29sb3IKICogaHR0cHM6Ly9naXRodWIuY29tL2RhbmxldmFuL2dvb2dsZS1tYXRlcmlhbC1jb2xvci9ibG9iL2Y2N2NhNWY0MDI4YjJmMWIzNDg2MmY2NGIwY2E2NzMyM2Y5MWIwODgvZGlzdC9wYWxldHRlLnZhci5jc3MKICoKICogVGhlIGxpY2Vuc2UgZm9yIHRoZSBtYXRlcmlhbCBkZXNpZ24gY29sb3IgQ1NTIHZhcmlhYmxlcyBpcyBhcyBmb2xsb3dzIChzZWUKICogaHR0cHM6Ly9naXRodWIuY29tL2RhbmxldmFuL2dvb2dsZS1tYXRlcmlhbC1jb2xvci9ibG9iL2Y2N2NhNWY0MDI4YjJmMWIzNDg2MmY2NGIwY2E2NzMyM2Y5MWIwODgvTElDRU5TRSkKICoKICogVGhlIE1JVCBMaWNlbnNlIChNSVQpCiAqCiAqIENvcHlyaWdodCAoYykgMjAxNCBEYW4gTGUgVmFuCiAqCiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwogKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwogKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgogKgogKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgogKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KICoKICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQogKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAqIFNPRlRXQVJFLgogKi8KCiAvKgpUaGUgZm9sbG93aW5nIENTUyB2YXJpYWJsZXMgZGVmaW5lIHRoZSBtYWluLCBwdWJsaWMgQVBJIGZvciBzdHlsaW5nIEp1cHl0ZXJMYWIuClRoZXNlIHZhcmlhYmxlcyBzaG91bGQgYmUgdXNlZCBieSBhbGwgcGx1Z2lucyB3aGVyZXZlciBwb3NzaWJsZS4gSW4gb3RoZXIKd29yZHMsIHBsdWdpbnMgc2hvdWxkIG5vdCBkZWZpbmUgY3VzdG9tIGNvbG9ycywgc2l6ZXMsIGV0YyB1bmxlc3MgYWJzb2x1dGVseQpuZWNlc3NhcnkuIFRoaXMgZW5hYmxlcyB1c2VycyB0byBjaGFuZ2UgdGhlIHZpc3VhbCB0aGVtZSBvZiBKdXB5dGVyTGFiCmJ5IGNoYW5naW5nIHRoZXNlIHZhcmlhYmxlcy4KCk1hbnkgdmFyaWFibGVzIGFwcGVhciBpbiBhbiBvcmRlcmVkIHNlcXVlbmNlICgwLDEsMiwzKS4gVGhlc2Ugc2VxdWVuY2VzCmFyZSBkZXNpZ25lZCB0byB3b3JrIHdlbGwgdG9nZXRoZXIsIHNvIGZvciBleGFtcGxlLCBgLS1qcC1ib3JkZXItY29sb3IxYCBzaG91bGQKYmUgdXNlZCB3aXRoIGAtLWpwLWxheW91dC1jb2xvcjFgLiBUaGUgbnVtYmVycyBoYXZlIHRoZSBmb2xsb3dpbmcgbWVhbmluZ3M6CgoqIDA6IHN1cGVyLXByaW1hcnksIHJlc2VydmVkIGZvciBzcGVjaWFsIGVtcGhhc2lzCiogMTogcHJpbWFyeSwgbW9zdCBpbXBvcnRhbnQgdW5kZXIgbm9ybWFsIHNpdHVhdGlvbnMKKiAyOiBzZWNvbmRhcnksIG5leHQgbW9zdCBpbXBvcnRhbnQgdW5kZXIgbm9ybWFsIHNpdHVhdGlvbnMKKiAzOiB0ZXJ0aWFyeSwgbmV4dCBtb3N0IGltcG9ydGFudCB1bmRlciBub3JtYWwgc2l0dWF0aW9ucwoKVGhyb3VnaG91dCBKdXB5dGVyTGFiLCB3ZSBhcmUgbW9zdGx5IGZvbGxvd2luZyBwcmluY2lwbGVzIGZyb20gR29vZ2xlJ3MKTWF0ZXJpYWwgRGVzaWduIHdoZW4gc2VsZWN0aW5nIGNvbG9ycy4gV2UgYXJlIG5vdCwgaG93ZXZlciwgZm9sbG93aW5nCmFsbCBvZiBNRCBhcyBpdCBpcyBub3Qgb3B0aW1pemVkIGZvciBkZW5zZSwgaW5mb3JtYXRpb24gcmljaCBVSXMuCiovCgogLyoKICogT3B0aW9uYWwgbW9ub3NwYWNlIGZvbnQgZm9yIGlucHV0L291dHB1dCBwcm9tcHQuCiAqLwoKIC8qIENvbW1lbnRlZCBvdXQgaW4gaXB5d2lkZ2V0cyBzaW5jZSB3ZSBkb24ndCBuZWVkIGl0LiAqLwoKIC8qIEBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9Um9ib3RvK01vbm8nKTsgKi8KCiAvKgogKiBBZGRlZCBmb3IgY29tcGFiaXRpbGl0eSB3aXRoIG91dHB1dCBhcmVhCiAqLwoKIDpyb290IHsKCiAgLyogQm9yZGVycwoKICBUaGUgZm9sbG93aW5nIHZhcmlhYmxlcywgc3BlY2lmeSB0aGUgdmlzdWFsIHN0eWxpbmcgb2YgYm9yZGVycyBpbiBKdXB5dGVyTGFiLgogICAqLwoKICAvKiBVSSBGb250cwoKICBUaGUgVUkgZm9udCBDU1MgdmFyaWFibGVzIGFyZSB1c2VkIGZvciB0aGUgdHlwb2dyYXBoeSBhbGwgb2YgdGhlIEp1cHl0ZXJMYWIKICB1c2VyIGludGVyZmFjZSBlbGVtZW50cyB0aGF0IGFyZSBub3QgZGlyZWN0bHkgdXNlciBnZW5lcmF0ZWQgY29udGVudC4KICAqLyAvKiBCYXNlIGZvbnQgc2l6ZSAqLyAvKiBFbnN1cmVzIHB4IHBlcmZlY3QgRm9udEF3ZXNvbWUgaWNvbnMgKi8KCiAgLyogVXNlIHRoZXNlIGZvbnQgY29sb3JzIGFnYWluc3QgdGhlIGNvcnJlc3BvbmRpbmcgbWFpbiBsYXlvdXQgY29sb3JzLgogICAgIEluIGEgbGlnaHQgdGhlbWUsIHRoZXNlIGdvIGZyb20gZGFyayB0byBsaWdodC4KICAqLwoKICAvKiBVc2UgdGhlc2UgYWdhaW5zdCB0aGUgYnJhbmQvYWNjZW50L3dhcm4vZXJyb3IgY29sb3JzLgogICAgIFRoZXNlIHdpbGwgdHlwaWNhbGx5IGdvIGZyb20gbGlnaHQgdG8gZGFya2VyLCBpbiBib3RoIGEgZGFyayBhbmQgbGlnaHQgdGhlbWUKICAgKi8KCiAgLyogQ29udGVudCBGb250cwoKICBDb250ZW50IGZvbnQgdmFyaWFibGVzIGFyZSB1c2VkIGZvciB0eXBvZ3JhcGh5IG9mIHVzZXIgZ2VuZXJhdGVkIGNvbnRlbnQuCiAgKi8gLyogQmFzZSBmb250IHNpemUgKi8KCgogIC8qIExheW91dAoKICBUaGUgZm9sbG93aW5nIGFyZSB0aGUgbWFpbiBsYXlvdXQgY29sb3JzIHVzZSBpbiBKdXB5dGVyTGFiLiBJbiBhIGxpZ2h0CiAgdGhlbWUgdGhlc2Ugd291bGQgZ28gZnJvbSBsaWdodCB0byBkYXJrLgogICovCgogIC8qIEJyYW5kL2FjY2VudCAqLwoKICAvKiBTdGF0ZSBjb2xvcnMgKHdhcm4sIGVycm9yLCBzdWNjZXNzLCBpbmZvKSAqLwoKICAvKiBDZWxsIHNwZWNpZmljIHN0eWxlcyAqLwogIC8qIEEgY3VzdG9tIGJsZW5kIG9mIE1EIGdyZXkgYW5kIGJsdWUgNjAwCiAgICogU2VlIGh0dHBzOi8vbWV5ZXJ3ZWIuY29tL2VyaWMvdG9vbHMvY29sb3ItYmxlbmQvIzU0NkU3QToxRTg4RTU6NTpoZXggKi8KICAvKiBBIGN1c3RvbSBibGVuZCBvZiBNRCBncmV5IGFuZCBvcmFuZ2UgNjAwCiAgICogaHR0cHM6Ly9tZXllcndlYi5jb20vZXJpYy90b29scy9jb2xvci1ibGVuZC8jNTQ2RTdBOkY0NTExRTo1OmhleCAqLwoKICAvKiBOb3RlYm9vayBzcGVjaWZpYyBzdHlsZXMgKi8KCiAgLyogQ29uc29sZSBzcGVjaWZpYyBzdHlsZXMgKi8KCiAgLyogVG9vbGJhciBzcGVjaWZpYyBzdHlsZXMgKi8KfQoKIC8qIENvcHlyaWdodCAoYykgSnVweXRlciBEZXZlbG9wbWVudCBUZWFtLgogKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1vZGlmaWVkIEJTRCBMaWNlbnNlLgogKi8KCiAvKgogKiBXZSBhc3N1bWUgdGhhdCB0aGUgQ1NTIHZhcmlhYmxlcyBpbgogKiBodHRwczovL2dpdGh1Yi5jb20vanVweXRlcmxhYi9qdXB5dGVybGFiL2Jsb2IvbWFzdGVyL3NyYy9kZWZhdWx0LXRoZW1lL3ZhcmlhYmxlcy5jc3MKICogaGF2ZSBiZWVuIGRlZmluZWQuCiAqLwoKIC8qIFRoaXMgZmlsZSBoYXMgY29kZSBkZXJpdmVkIGZyb20gUGhvc3Bob3JKUyBDU1MgZmlsZXMsIGFzIG5vdGVkIGJlbG93LiBUaGUgbGljZW5zZSBmb3IgdGhpcyBQaG9zcGhvckpTIGNvZGUgaXM6CgpDb3B5cmlnaHQgKGMpIDIwMTQtMjAxNywgUGhvc3Bob3JKUyBDb250cmlidXRvcnMKQWxsIHJpZ2h0cyByZXNlcnZlZC4KClJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAptb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKCiogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzCiAgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCgoqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCiAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCgoqIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIGNvcHlyaWdodCBob2xkZXIgbm9yIHRoZSBuYW1lcyBvZiBpdHMKICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgpUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIKQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQpJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQpGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTApEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgpTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgpDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLApPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQpPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKKi8KCiAvKgogKiBUaGUgZm9sbG93aW5nIHNlY3Rpb24gaXMgZGVyaXZlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9waG9zcGhvcmpzL3Bob3NwaG9yL2Jsb2IvMjNiOWQwNzVlYmM1YjczYWIxNDhiNmViZmMyMGFmOTdmODU3MTRjNC9wYWNrYWdlcy93aWRnZXRzL3N0eWxlL3RhYmJhci5jc3MgCiAqIFdlJ3ZlIHNjb3BlZCB0aGUgcnVsZXMgc28gdGhhdCB0aGV5IGFyZSBjb25zaXN0ZW50IHdpdGggZXhhY3RseSBvdXIgY29kZS4KICovCgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIHsKICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICBkaXNwbGF5OiBmbGV4OwogIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7CiAgdXNlci1zZWxlY3Q6IG5vbmU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXJbZGF0YS1vcmllbnRhdGlvbj0naG9yaXpvbnRhbCddIHsKICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7CiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7CiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhcltkYXRhLW9yaWVudGF0aW9uPSd2ZXJ0aWNhbCddIHsKICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsOwogIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgPiAucC1UYWJCYXItY29udGVudCB7CiAgbWFyZ2luOiAwOwogIHBhZGRpbmc6IDA7CiAgZGlzcGxheTogLXdlYmtpdC1ib3g7CiAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgZGlzcGxheTogZmxleDsKICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAtbXMtZmxleDogMSAxIGF1dG87CiAgICAgICAgICBmbGV4OiAxIDEgYXV0bzsKICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXJbZGF0YS1vcmllbnRhdGlvbj0naG9yaXpvbnRhbCddID4gLnAtVGFiQmFyLWNvbnRlbnQgewogIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDsKICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93Owp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyW2RhdGEtb3JpZW50YXRpb249J3ZlcnRpY2FsJ10gPiAucC1UYWJCYXItY29udGVudCB7CiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWIgewogIGRpc3BsYXk6IC13ZWJraXQtYm94OwogIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogIGRpc3BsYXk6IGZsZXg7CiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOwogIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICBvdmVyZmxvdzogaGlkZGVuOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWJJY29uLAouanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkNsb3NlSWNvbiB7CiAgLXdlYmtpdC1ib3gtZmxleDogMDsKICAgICAgLW1zLWZsZXg6IDAgMCBhdXRvOwogICAgICAgICAgZmxleDogMCAwIGF1dG87Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkxhYmVsIHsKICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAtbXMtZmxleDogMSAxIGF1dG87CiAgICAgICAgICBmbGV4OiAxIDEgYXV0bzsKICBvdmVyZmxvdzogaGlkZGVuOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYi5wLW1vZC1oaWRkZW4gewogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhci5wLW1vZC1kcmFnZ2luZyAucC1UYWJCYXItdGFiIHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIucC1tb2QtZHJhZ2dpbmdbZGF0YS1vcmllbnRhdGlvbj0naG9yaXpvbnRhbCddIC5wLVRhYkJhci10YWIgewogIGxlZnQ6IDA7CiAgLXdlYmtpdC10cmFuc2l0aW9uOiBsZWZ0IDE1MG1zIGVhc2U7CiAgdHJhbnNpdGlvbjogbGVmdCAxNTBtcyBlYXNlOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyLnAtbW9kLWRyYWdnaW5nW2RhdGEtb3JpZW50YXRpb249J3ZlcnRpY2FsJ10gLnAtVGFiQmFyLXRhYiB7CiAgdG9wOiAwOwogIC13ZWJraXQtdHJhbnNpdGlvbjogdG9wIDE1MG1zIGVhc2U7CiAgdHJhbnNpdGlvbjogdG9wIDE1MG1zIGVhc2U7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIucC1tb2QtZHJhZ2dpbmcgLnAtVGFiQmFyLXRhYi5wLW1vZC1kcmFnZ2luZyB7CiAgLXdlYmtpdC10cmFuc2l0aW9uOiBub25lOwogIHRyYW5zaXRpb246IG5vbmU7Cn0KCiAvKiBFbmQgdGFiYmFyLmNzcyAqLwoKIDpyb290IHsgLyogbWFyZ2luIGJldHdlZW4gaW5saW5lIGVsZW1lbnRzICovCgogICAgLyogRnJvbSBNYXRlcmlhbCBEZXNpZ24gTGl0ZSAqLwp9CgogLmp1cHl0ZXItd2lkZ2V0cyB7CiAgICBtYXJnaW46IDJweDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGNvbG9yOiBibGFjazsKICAgIG92ZXJmbG93OiB2aXNpYmxlOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy5qdXB5dGVyLXdpZGdldHMtZGlzY29ubmVjdGVkOjpiZWZvcmUgewogICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICBoZWlnaHQ6IDI4cHg7Cn0KCiAuanAtT3V0cHV0LXJlc3VsdCA+IC5qdXB5dGVyLXdpZGdldHMgewogICAgbWFyZ2luLWxlZnQ6IDA7CiAgICBtYXJnaW4tcmlnaHQ6IDA7Cn0KCiAvKiB2Ym94IGFuZCBoYm94ICovCgogLndpZGdldC1pbmxpbmUtaGJveCB7CiAgICAvKiBIb3Jpem9udGFsIHdpZGdldHMgKi8KICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOwogICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7CiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAtd2Via2l0LWJveC1hbGlnbjogYmFzZWxpbmU7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGJhc2VsaW5lOwogICAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7Cn0KCiAud2lkZ2V0LWlubGluZS12Ym94IHsKICAgIC8qIFZlcnRpY2FsIFdpZGdldHMgKi8KICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwp9CgogLndpZGdldC1ib3ggewogICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBtYXJnaW46IDA7CiAgICBvdmVyZmxvdzogYXV0bzsKfQoKIC53aWRnZXQtZ3JpZGJveCB7CiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICBkaXNwbGF5OiBncmlkOwogICAgbWFyZ2luOiAwOwogICAgb3ZlcmZsb3c6IGF1dG87Cn0KCiAud2lkZ2V0LWhib3ggewogICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOwogICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7CiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7Cn0KCiAud2lkZ2V0LXZib3ggewogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgogLyogR2VuZXJhbCBCdXR0b24gU3R5bGluZyAqLwoKIC5qdXB5dGVyLWJ1dHRvbiB7CiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7CiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4OwogICAgcGFkZGluZy10b3A6IDBweDsKICAgIHBhZGRpbmctYm90dG9tOiAwcHg7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgY3Vyc29yOiBwb2ludGVyOwoKICAgIGhlaWdodDogMjhweDsKICAgIGJvcmRlcjogMHB4IHNvbGlkOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CgogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0VFRUVFRTsKICAgIGJvcmRlci1jb2xvcjogI0UwRTBFMDsKICAgIGJvcmRlcjogbm9uZTsKfQoKIC5qdXB5dGVyLWJ1dHRvbiBpLmZhIHsKICAgIG1hcmdpbi1yaWdodDogNHB4OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7Cn0KCiAuanVweXRlci1idXR0b246ZW1wdHk6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICJcMjAwYiI7IC8qIHplcm8td2lkdGggc3BhY2UgKi8KfQoKIC5qdXB5dGVyLXdpZGdldHMuanVweXRlci1idXR0b246ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLmp1cHl0ZXItYnV0dG9uIGkuZmEuY2VudGVyIHsKICAgIG1hcmdpbi1yaWdodDogMDsKfQoKIC5qdXB5dGVyLWJ1dHRvbjpob3ZlcjplbmFibGVkLCAuanVweXRlci1idXR0b246Zm9jdXM6ZW5hYmxlZCB7CiAgICAvKiBNRCBMaXRlIDJkcCBzaGFkb3cgKi8KICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAuMTQpLAogICAgICAgICAgICAgICAgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAuMiksCiAgICAgICAgICAgICAgICAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIC4xMik7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgLjE0KSwKICAgICAgICAgICAgICAgIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgLjIpLAogICAgICAgICAgICAgICAgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTIpOwp9CgogLmp1cHl0ZXItYnV0dG9uOmFjdGl2ZSwgLmp1cHl0ZXItYnV0dG9uLm1vZC1hY3RpdmUgewogICAgLyogTUQgTGl0ZSA0ZHAgc2hhZG93ICovCiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNHB4IDVweCAwIHJnYmEoMCwgMCwgMCwgLjE0KSwKICAgICAgICAgICAgICAgIDAgMXB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIC4xMiksCiAgICAgICAgICAgICAgICAwIDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIC4yKTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCA0cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTQpLAogICAgICAgICAgICAgICAgMCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgLjEyKSwKICAgICAgICAgICAgICAgIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgLjIpOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0JEQkRCRDsKfQoKIC5qdXB5dGVyLWJ1dHRvbjpmb2N1czplbmFibGVkIHsKICAgIG91dGxpbmU6IDFweCBzb2xpZCAjNjRCNUY2Owp9CgogLyogQnV0dG9uICJQcmltYXJ5IiBTdHlsaW5nICovCgogLmp1cHl0ZXItYnV0dG9uLm1vZC1wcmltYXJ5IHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEuMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NkYzOwp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1wcmltYXJ5Lm1vZC1hY3RpdmUgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTk3NkQyOwp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1wcmltYXJ5OmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMxOTc2RDI7Cn0KCiAvKiBCdXR0b24gIlN1Y2Nlc3MiIFN0eWxpbmcgKi8KCiAuanVweXRlci1idXR0b24ubW9kLXN1Y2Nlc3MgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICM0Q0FGNTA7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLXN1Y2Nlc3MubW9kLWFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzODhFM0M7CiB9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1zdWNjZXNzOmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzODhFM0M7CiB9CgogLyogQnV0dG9uICJJbmZvIiBTdHlsaW5nICovCgogLmp1cHl0ZXItYnV0dG9uLm1vZC1pbmZvIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEuMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCQ0Q0Owp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1pbmZvLm1vZC1hY3RpdmUgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5N0E3Owp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1pbmZvOmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDk3QTc7Cn0KCiAvKiBCdXR0b24gIldhcm5pbmciIFN0eWxpbmcgKi8KCiAuanVweXRlci1idXR0b24ubW9kLXdhcm5pbmcgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGRjk4MDA7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLXdhcm5pbmcubW9kLWFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGNTdDMDA7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLXdhcm5pbmc6YWN0aXZlIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0Y1N0MwMDsKfQoKIC8qIEJ1dHRvbiAiRGFuZ2VyIiBTdHlsaW5nICovCgogLmp1cHl0ZXItYnV0dG9uLm1vZC1kYW5nZXIgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGNDQzMzY7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLWRhbmdlci5tb2QtYWN0aXZlIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0QzMkYyRjsKfQoKIC5qdXB5dGVyLWJ1dHRvbi5tb2QtZGFuZ2VyOmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNEMzJGMkY7Cn0KCiAvKiBXaWRnZXQgQnV0dG9uKi8KCiAud2lkZ2V0LWJ1dHRvbiwgLndpZGdldC10b2dnbGUtYnV0dG9uIHsKICAgIHdpZHRoOiAxNDhweDsKfQoKIC8qIFdpZGdldCBMYWJlbCBTdHlsaW5nICovCgogLyogT3ZlcnJpZGUgQm9vdHN0cmFwIGxhYmVsIGNzcyAqLwoKIC5qdXB5dGVyLXdpZGdldHMgbGFiZWwgewogICAgbWFyZ2luLWJvdHRvbTogMDsKICAgIG1hcmdpbi1ib3R0b206IGluaXRpYWw7Cn0KCiAud2lkZ2V0LWxhYmVsLWJhc2ljIHsKICAgIC8qIEJhc2ljIExhYmVsICovCiAgICBjb2xvcjogYmxhY2s7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWxhYmVsIHsKICAgIC8qIExhYmVsICovCiAgICBjb2xvcjogYmxhY2s7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWlubGluZS1oYm94IC53aWRnZXQtbGFiZWwgewogICAgLyogSG9yaXpvbnRhbCBXaWRnZXQgTGFiZWwgKi8KICAgIGNvbG9yOiBibGFjazsKICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgbWFyZ2luLXJpZ2h0OiA4cHg7CiAgICB3aWR0aDogODBweDsKICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwp9CgogLndpZGdldC1pbmxpbmUtdmJveCAud2lkZ2V0LWxhYmVsIHsKICAgIC8qIFZlcnRpY2FsIFdpZGdldCBMYWJlbCAqLwogICAgY29sb3I6IGJsYWNrOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAvKiBXaWRnZXQgUmVhZG91dCBTdHlsaW5nICovCgogLndpZGdldC1yZWFkb3V0IHsKICAgIGNvbG9yOiBibGFjazsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIGhlaWdodDogMjhweDsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCiAud2lkZ2V0LXJlYWRvdXQub3ZlcmZsb3cgewogICAgLyogT3ZlcmZsb3dpbmcgUmVhZG91dCAqLwoKICAgIC8qIEZyb20gTWF0ZXJpYWwgRGVzaWduIExpdGUKICAgICAgICBzaGFkb3cta2V5LXVtYnJhLW9wYWNpdHk6IDAuMjsKICAgICAgICBzaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHk6IDAuMTQ7CiAgICAgICAgc2hhZG93LWFtYmllbnQtc2hhZG93LW9wYWNpdHk6IDAuMTI7CiAgICAgKi8KICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAuMiksCiAgICAgICAgICAgICAgICAgICAgICAgIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgLjE0KSwKICAgICAgICAgICAgICAgICAgICAgICAgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTIpOwoKICAgIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgLjIpLAogICAgICAgICAgICAgICAgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAuMTQpLAogICAgICAgICAgICAgICAgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTIpOwp9CgogLndpZGdldC1pbmxpbmUtaGJveCAud2lkZ2V0LXJlYWRvdXQgewogICAgLyogSG9yaXpvbnRhbCBSZWFkb3V0ICovCiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBtYXgtd2lkdGg6IDE0OHB4OwogICAgbWluLXdpZHRoOiA3MnB4OwogICAgbWFyZ2luLWxlZnQ6IDRweDsKfQoKIC53aWRnZXQtaW5saW5lLXZib3ggLndpZGdldC1yZWFkb3V0IHsKICAgIC8qIFZlcnRpY2FsIFJlYWRvdXQgKi8KICAgIG1hcmdpbi10b3A6IDRweDsKICAgIC8qIGFzIHdpZGUgYXMgdGhlIHdpZGdldCAqLwogICAgd2lkdGg6IGluaGVyaXQ7Cn0KCiAvKiBXaWRnZXQgQ2hlY2tib3ggU3R5bGluZyAqLwoKIC53aWRnZXQtY2hlY2tib3ggewogICAgd2lkdGg6IDMwMHB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWNoZWNrYm94IGlucHV0W3R5cGU9ImNoZWNrYm94Il0gewogICAgbWFyZ2luOiAwcHggOHB4IDBweCAwcHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKICAgIGZvbnQtc2l6ZTogbGFyZ2U7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGNlbnRlcjsKICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7Cn0KCiAvKiBXaWRnZXQgVmFsaWQgU3R5bGluZyAqLwoKIC53aWRnZXQtdmFsaWQgewogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICB3aWR0aDogMTQ4cHg7CiAgICBmb250LXNpemU6IDEzcHg7Cn0KCiAud2lkZ2V0LXZhbGlkIGk6YmVmb3JlIHsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgbWFyZ2luLXJpZ2h0OiA0cHg7CiAgICBtYXJnaW4tbGVmdDogNHB4OwoKICAgIC8qIGZyb20gdGhlIGZhIGNsYXNzIGluIEZvbnRBd2Vzb21lOiBodHRwczovL2dpdGh1Yi5jb20vRm9ydEF3ZXNvbWUvRm9udC1Bd2Vzb21lL2Jsb2IvNDkxMDBjN2MzYTdiNThkNTBiYWE3MWVmZWYxMWFmNDFhNjZiMDNkMy9jc3MvZm9udC1hd2Vzb21lLmNzcyNMMTQgKi8KICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIDE0cHgvMSBGb250QXdlc29tZTsKICAgIGZvbnQtc2l6ZTogaW5oZXJpdDsKICAgIHRleHQtcmVuZGVyaW5nOiBhdXRvOwogICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwp9CgogLndpZGdldC12YWxpZC5tb2QtdmFsaWQgaTpiZWZvcmUgewogICAgY29udGVudDogIlxmMDBjIjsKICAgIGNvbG9yOiBncmVlbjsKfQoKIC53aWRnZXQtdmFsaWQubW9kLWludmFsaWQgaTpiZWZvcmUgewogICAgY29udGVudDogIlxmMDBkIjsKICAgIGNvbG9yOiByZWQ7Cn0KCiAud2lkZ2V0LXZhbGlkLm1vZC12YWxpZCAud2lkZ2V0LXZhbGlkLXJlYWRvdXQgewogICAgZGlzcGxheTogbm9uZTsKfQoKIC8qIFdpZGdldCBUZXh0IGFuZCBUZXh0QXJlYSBTdHlpbmcgKi8KCiAud2lkZ2V0LXRleHRhcmVhLCAud2lkZ2V0LXRleHQgewogICAgd2lkdGg6IDMwMHB4Owp9CgogLndpZGdldC10ZXh0IGlucHV0W3R5cGU9InRleHQiXSwgLndpZGdldC10ZXh0IGlucHV0W3R5cGU9Im51bWJlciJdewogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LXRleHQgaW5wdXRbdHlwZT0idGV4dCJdOmRpc2FibGVkLCAud2lkZ2V0LXRleHQgaW5wdXRbdHlwZT0ibnVtYmVyIl06ZGlzYWJsZWQsIC53aWRnZXQtdGV4dGFyZWEgdGV4dGFyZWE6ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLndpZGdldC10ZXh0IGlucHV0W3R5cGU9InRleHQiXSwgLndpZGdldC10ZXh0IGlucHV0W3R5cGU9Im51bWJlciJdLCAud2lkZ2V0LXRleHRhcmVhIHRleHRhcmVhIHsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44KTsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBtaW4td2lkdGg6IDA7IC8qIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgZm9yIHRoZSBmbGV4Ym94IHRvIHNocmluayB0aGlzIGlucHV0ICovCiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDsKfQoKIC53aWRnZXQtdGV4dGFyZWEgdGV4dGFyZWEgewogICAgaGVpZ2h0OiBpbmhlcml0OwogICAgd2lkdGg6IGluaGVyaXQ7Cn0KCiAud2lkZ2V0LXRleHQgaW5wdXQ6Zm9jdXMsIC53aWRnZXQtdGV4dGFyZWEgdGV4dGFyZWE6Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjNjRCNUY2Owp9CgogLyogV2lkZ2V0IFNsaWRlciAqLwoKIC53aWRnZXQtc2xpZGVyIC51aS1zbGlkZXIgewogICAgLyogU2xpZGVyIFRyYWNrICovCiAgICBib3JkZXI6IDFweCBzb2xpZCAjQkRCREJEOwogICAgYmFja2dyb3VuZDogI0JEQkRCRDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIGJvcmRlci1yYWRpdXM6IDBweDsKfQoKIC53aWRnZXQtc2xpZGVyIC51aS1zbGlkZXIgLnVpLXNsaWRlci1oYW5kbGUgewogICAgLyogU2xpZGVyIEhhbmRsZSAqLwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OyAvKiBmb2N1c2VkIHNsaWRlciBoYW5kbGVzIGFyZSBjb2xvcmVkIC0gc2VlIGJlbG93ICovCiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICB6LWluZGV4OiAxOwogICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgLyogT3ZlcnJpZGUganF1ZXJ5LXVpICovCn0KCiAvKiBPdmVycmlkZSBqcXVlcnktdWkgKi8KCiAud2lkZ2V0LXNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlOmhvdmVyLCAud2lkZ2V0LXNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlOmZvY3VzIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjMjE5NkYzOwp9CgogLndpZGdldC1zbGlkZXIgLnVpLXNsaWRlciAudWktc2xpZGVyLWhhbmRsZTphY3RpdmUgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZGMzsKICAgIGJvcmRlci1jb2xvcjogIzIxOTZGMzsKICAgIHotaW5kZXg6IDI7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4yKTsKICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpOwp9CgogLndpZGdldC1zbGlkZXIgIC51aS1zbGlkZXIgLnVpLXNsaWRlci1yYW5nZSB7CiAgICAvKiBJbnRlcnZhbCBiZXR3ZWVuIHRoZSB0d28gc3BlY2lmaWVkIHZhbHVlIG9mIGEgZG91YmxlIHNsaWRlciAqLwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgYmFja2dyb3VuZDogIzIxOTZGMzsKICAgIHotaW5kZXg6IDA7Cn0KCiAvKiBTaGFwZXMgb2YgU2xpZGVyIEhhbmRsZXMgKi8KCiAud2lkZ2V0LWhzbGlkZXIgLnVpLXNsaWRlciAudWktc2xpZGVyLWhhbmRsZSB7CiAgICB3aWR0aDogMTZweDsKICAgIGhlaWdodDogMTZweDsKICAgIG1hcmdpbi10b3A6IC03cHg7CiAgICBtYXJnaW4tbGVmdDogLTdweDsKICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgIHRvcDogMDsKfQoKIC53aWRnZXQtdnNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlIHsKICAgIHdpZHRoOiAxNnB4OwogICAgaGVpZ2h0OiAxNnB4OwogICAgbWFyZ2luLWJvdHRvbTogLTdweDsKICAgIG1hcmdpbi1sZWZ0OiAtN3B4OwogICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgbGVmdDogMDsKfQoKIC53aWRnZXQtaHNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItcmFuZ2UgewogICAgaGVpZ2h0OiA4cHg7CiAgICBtYXJnaW4tdG9wOiAtM3B4Owp9CgogLndpZGdldC12c2xpZGVyIC51aS1zbGlkZXIgLnVpLXNsaWRlci1yYW5nZSB7CiAgICB3aWR0aDogOHB4OwogICAgbWFyZ2luLWxlZnQ6IC0zcHg7Cn0KCiAvKiBIb3Jpem9udGFsIFNsaWRlciAqLwoKIC53aWRnZXQtaHNsaWRlciB7CiAgICB3aWR0aDogMzAwcHg7CiAgICBoZWlnaHQ6IDI4cHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKCiAgICAvKiBPdmVycmlkZSB0aGUgYWxpZ24taXRlbXMgYmFzZWxpbmUuIFRoaXMgd2F5LCB0aGUgZGVzY3JpcHRpb24gYW5kIHJlYWRvdXQKICAgIHN0aWxsIHNlZW0gdG8gYWxpZ24gdGhlaXIgYmFzZWxpbmUgcHJvcGVybHksIGFuZCB3ZSBkb24ndCBoYXZlIHRvIGhhdmUKICAgIGFsaWduLXNlbGY6IHN0cmV0Y2ggaW4gdGhlIC5zbGlkZXItY29udGFpbmVyLiAqLwogICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwp9CgogLndpZGdldHMtc2xpZGVyIC5zbGlkZXItY29udGFpbmVyIHsKICAgIG92ZXJmbG93OiB2aXNpYmxlOwp9CgogLndpZGdldC1oc2xpZGVyIC5zbGlkZXItY29udGFpbmVyIHsKICAgIGhlaWdodDogMjhweDsKICAgIG1hcmdpbi1sZWZ0OiA2cHg7CiAgICBtYXJnaW4tcmlnaHQ6IDZweDsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXg6IDEgMSAxNDhweDsKICAgICAgICAgICAgZmxleDogMSAxIDE0OHB4Owp9CgogLndpZGdldC1oc2xpZGVyIC51aS1zbGlkZXIgewogICAgLyogSW5uZXIsIGludmlzaWJsZSBzbGlkZSBkaXYgKi8KICAgIGhlaWdodDogNHB4OwogICAgbWFyZ2luLXRvcDogMTJweDsKICAgIHdpZHRoOiAxMDAlOwp9CgogLyogVmVydGljYWwgU2xpZGVyICovCgogLndpZGdldC12Ym94IC53aWRnZXQtbGFiZWwgewogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LXZzbGlkZXIgewogICAgLyogVmVydGljYWwgU2xpZGVyICovCiAgICBoZWlnaHQ6IDIwMHB4OwogICAgd2lkdGg6IDcycHg7Cn0KCiAud2lkZ2V0LXZzbGlkZXIgLnNsaWRlci1jb250YWluZXIgewogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleDogMSAxIDE0OHB4OwogICAgICAgICAgICBmbGV4OiAxIDEgMTQ4cHg7CiAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICAgIG1hcmdpbi1ib3R0b206IDZweDsKICAgIG1hcmdpbi10b3A6IDZweDsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgogLndpZGdldC12c2xpZGVyIC51aS1zbGlkZXItdmVydGljYWwgewogICAgLyogSW5uZXIsIGludmlzaWJsZSBzbGlkZSBkaXYgKi8KICAgIHdpZHRoOiA0cHg7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIG1hcmdpbi1yaWdodDogYXV0bzsKfQoKIC8qIFdpZGdldCBQcm9ncmVzcyBTdHlsaW5nICovCgogLnByb2dyZXNzLWJhciB7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IG5vbmU7CiAgICB0cmFuc2l0aW9uOiBub25lOwp9CgogLnByb2dyZXNzLWJhciB7CiAgICBoZWlnaHQ6IDI4cHg7Cn0KCiAucHJvZ3Jlc3MtYmFyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7Cn0KCiAucHJvZ3Jlc3MtYmFyLXN1Y2Nlc3MgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzRDQUY1MDsKfQoKIC5wcm9ncmVzcy1iYXItaW5mbyB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCQ0Q0Owp9CgogLnByb2dyZXNzLWJhci13YXJuaW5nIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGRjk4MDA7Cn0KCiAucHJvZ3Jlc3MtYmFyLWRhbmdlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjQ0MzM2Owp9CgogLnByb2dyZXNzIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNFRUVFRUU7CiAgICBib3JkZXI6IG5vbmU7CiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7Cn0KCiAvKiBIb3Jpc29udGFsIFByb2dyZXNzICovCgogLndpZGdldC1ocHJvZ3Jlc3MgewogICAgLyogUHJvZ3Jlc3MgQmFyICovCiAgICBoZWlnaHQ6IDI4cHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKICAgIHdpZHRoOiAzMDBweDsKICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKCn0KCiAud2lkZ2V0LWhwcm9ncmVzcyAucHJvZ3Jlc3MgewogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleC1wb3NpdGl2ZTogMTsKICAgICAgICAgICAgZmxleC1ncm93OiAxOwogICAgbWFyZ2luLXRvcDogNHB4OwogICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaDsKICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgLyogT3ZlcnJpZGUgYm9vdHN0cmFwIHN0eWxlICovCiAgICBoZWlnaHQ6IGF1dG87CiAgICBoZWlnaHQ6IGluaXRpYWw7Cn0KCiAvKiBWZXJ0aWNhbCBQcm9ncmVzcyAqLwoKIC53aWRnZXQtdnByb2dyZXNzIHsKICAgIGhlaWdodDogMjAwcHg7CiAgICB3aWR0aDogNzJweDsKfQoKIC53aWRnZXQtdnByb2dyZXNzIC5wcm9ncmVzcyB7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICB3aWR0aDogMjBweDsKICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogICAgbWFyZ2luLWJvdHRvbTogMDsKfQoKIC8qIFNlbGVjdCBXaWRnZXQgU3R5bGluZyAqLwoKIC53aWRnZXQtZHJvcGRvd24gewogICAgaGVpZ2h0OiAyOHB4OwogICAgd2lkdGg6IDMwMHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWRyb3Bkb3duID4gc2VsZWN0IHsKICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjOUU5RTlFOwogICAgYm9yZGVyLXJhZGl1czogMDsKICAgIGhlaWdodDogaW5oZXJpdDsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXg6IDEgMSAxNDhweDsKICAgICAgICAgICAgZmxleDogMSAxIDE0OHB4OwogICAgbWluLXdpZHRoOiAwOyAvKiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIGZvciB0aGUgZmxleGJveCB0byBzaHJpbmsgdGhpcyBpbnB1dCAqLwogICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OwogICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lOwogICAgICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7CiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAuOCk7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwogICAgcGFkZGluZy1sZWZ0OiA4cHg7CglhcHBlYXJhbmNlOiBub25lOwoJLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwoJLW1vei1hcHBlYXJhbmNlOiBub25lOwogICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKCWJhY2tncm91bmQtc2l6ZTogMjBweDsKCWJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IGNlbnRlcjsKICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejRLUENFdExTQkhaVzVsY21GMGIzSTZJRUZrYjJKbElFbHNiSFZ6ZEhKaGRHOXlJREU1TGpJdU1Td2dVMVpISUVWNGNHOXlkQ0JRYkhWbkxVbHVJQzRnVTFaSElGWmxjbk5wYjI0NklEWXVNREFnUW5WcGJHUWdNQ2tnSUMwdFBnbzhjM1puSUhabGNuTnBiMjQ5SWpFdU1TSWdhV1E5SWt4aGVXVnlYekVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lJSGc5SWpCd2VDSWdlVDBpTUhCNElnb0pJSFpwWlhkQ2IzZzlJakFnTUNBeE9DQXhPQ0lnYzNSNWJHVTlJbVZ1WVdKc1pTMWlZV05yWjNKdmRXNWtPbTVsZHlBd0lEQWdNVGdnTVRnN0lpQjRiV3c2YzNCaFkyVTlJbkJ5WlhObGNuWmxJajRLUEhOMGVXeGxJSFI1Y0dVOUluUmxlSFF2WTNOeklqNEtDUzV6ZERCN1ptbHNiRHB1YjI1bE8zMEtQQzl6ZEhsc1pUNEtQSEJoZEdnZ1pEMGlUVFV1TWl3MUxqbE1PU3c1TGpkc015NDRMVE11T0d3eExqSXNNUzR5YkMwMExqa3NOV3d0TkM0NUxUVk1OUzR5TERVdU9Yb2lMejRLUEhCaGRHZ2dZMnhoYzNNOUluTjBNQ0lnWkQwaVRUQXRNQzQyYURFNGRqRTRTREJXTFRBdU5ub2lMejRLUEM5emRtYytDZyIpOwp9CgogLndpZGdldC1kcm9wZG93biA+IHNlbGVjdDpmb2N1cyB7CiAgICBib3JkZXItY29sb3I6ICM2NEI1RjY7Cn0KCiAud2lkZ2V0LWRyb3Bkb3duID4gc2VsZWN0OmRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNjsKfQoKIC8qIFRvIGRpc2FibGUgdGhlIGRvdHRlZCBib3JkZXIgaW4gRmlyZWZveCBhcm91bmQgc2VsZWN0IGNvbnRyb2xzLgogICBTZWUgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMTg4NTMwMDIgKi8KCiAud2lkZ2V0LWRyb3Bkb3duID4gc2VsZWN0Oi1tb3otZm9jdXNyaW5nIHsKICAgIGNvbG9yOiB0cmFuc3BhcmVudDsKICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwOwp9CgogLyogU2VsZWN0IGFuZCBTZWxlY3RNdWx0aXBsZSAqLwoKIC53aWRnZXQtc2VsZWN0IHsKICAgIHdpZHRoOiAzMDBweDsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwoKICAgIC8qIEJlY2F1c2UgRmlyZWZveCBkZWZpbmVzIHRoZSBiYXNlbGluZSBvZiBhIHNlbGVjdCBhcyB0aGUgYm90dG9tIG9mIHRoZQogICAgY29udHJvbCwgd2UgYWxpZ24gdGhlIGVudGlyZSBjb250cm9sIHRvIHRoZSB0b3AgYW5kIGFkZCBwYWRkaW5nIHRvIHRoZQogICAgc2VsZWN0IHRvIGdldCBhbiBhcHByb3hpbWF0ZSBmaXJzdCBsaW5lIGJhc2VsaW5lIGFsaWdubWVudC4gKi8KICAgIC13ZWJraXQtYm94LWFsaWduOiBzdGFydDsKICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0Owp9CgogLndpZGdldC1zZWxlY3QgPiBzZWxlY3QgewogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleDogMSAxIDE0OHB4OwogICAgICAgICAgICBmbGV4OiAxIDEgMTQ4cHg7CiAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7CiAgICBvdmVyZmxvdzogYXV0bzsKICAgIGhlaWdodDogaW5oZXJpdDsKCiAgICAvKiBCZWNhdXNlIEZpcmVmb3ggZGVmaW5lcyB0aGUgYmFzZWxpbmUgb2YgYSBzZWxlY3QgYXMgdGhlIGJvdHRvbSBvZiB0aGUKICAgIGNvbnRyb2wsIHdlIGFsaWduIHRoZSBlbnRpcmUgY29udHJvbCB0byB0aGUgdG9wIGFuZCBhZGQgcGFkZGluZyB0byB0aGUKICAgIHNlbGVjdCB0byBnZXQgYW4gYXBwcm94aW1hdGUgZmlyc3QgbGluZSBiYXNlbGluZSBhbGlnbm1lbnQuICovCiAgICBwYWRkaW5nLXRvcDogNXB4Owp9CgogLndpZGdldC1zZWxlY3QgPiBzZWxlY3Q6Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjNjRCNUY2Owp9CgogLndpZ2V0LXNlbGVjdCA+IHNlbGVjdCA+IG9wdGlvbiB7CiAgICBwYWRkaW5nLWxlZnQ6IDRweDsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgLyogbGluZS1oZWlnaHQgZG9lc24ndCB3b3JrIG9uIHNvbWUgYnJvd3NlcnMgZm9yIHNlbGVjdCBvcHRpb25zICovCiAgICBwYWRkaW5nLXRvcDogY2FsYygyOHB4IC0gdmFyKC0tanAtd2lkZ2V0cy1mb250LXNpemUpIC8gMik7CiAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygyOHB4IC0gdmFyKC0tanAtd2lkZ2V0cy1mb250LXNpemUpIC8gMik7Cn0KCiAvKiBUb2dnbGUgQnV0dG9ucyBTdHlsaW5nICovCgogLndpZGdldC10b2dnbGUtYnV0dG9ucyB7CiAgICBsaW5lLWhlaWdodDogMjhweDsKfQoKIC53aWRnZXQtdG9nZ2xlLWJ1dHRvbnMgLndpZGdldC10b2dnbGUtYnV0dG9uIHsKICAgIG1hcmdpbi1sZWZ0OiAycHg7CiAgICBtYXJnaW4tcmlnaHQ6IDJweDsKfQoKIC53aWRnZXQtdG9nZ2xlLWJ1dHRvbnMgLmp1cHl0ZXItYnV0dG9uOmRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNjsKfQoKIC8qIFJhZGlvIEJ1dHRvbnMgU3R5bGluZyAqLwoKIC53aWRnZXQtcmFkaW8gewogICAgd2lkdGg6IDMwMHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LXJhZGlvLWJveCB7CiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogICAgZGlzcGxheTogZmxleDsKICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIC13ZWJraXQtYm94LWFsaWduOiBzdHJldGNoOwogICAgICAgIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoOwogICAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTsKICAgIG1hcmdpbi1ib3R0b206IDhweDsKfQoKIC53aWRnZXQtcmFkaW8tYm94IGxhYmVsIHsKICAgIGhlaWdodDogMjBweDsKICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgZm9udC1zaXplOiAxM3B4Owp9CgogLndpZGdldC1yYWRpby1ib3ggaW5wdXQgewogICAgaGVpZ2h0OiAyMHB4OwogICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICBtYXJnaW46IDAgOHB4IDAgMXB4OwogICAgZmxvYXQ6IGxlZnQ7Cn0KCiAvKiBDb2xvciBQaWNrZXIgU3R5bGluZyAqLwoKIC53aWRnZXQtY29sb3JwaWNrZXIgewogICAgd2lkdGg6IDMwMHB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWNvbG9ycGlja2VyID4gLndpZGdldC1jb2xvcnBpY2tlci1pbnB1dCB7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgIG1pbi13aWR0aDogNzJweDsKfQoKIC53aWRnZXQtY29sb3JwaWNrZXIgaW5wdXRbdHlwZT0iY29sb3IiXSB7CiAgICB3aWR0aDogMjhweDsKICAgIGhlaWdodDogMjhweDsKICAgIHBhZGRpbmc6IDAgMnB4OyAvKiBtYWtlIHRoZSBjb2xvciBzcXVhcmUgYWN0dWFsbHkgc3F1YXJlIG9uIENocm9tZSBvbiBPUyBYICovCiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44KTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBib3JkZXItbGVmdDogbm9uZTsKICAgIC13ZWJraXQtYm94LWZsZXg6IDA7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDA7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDsKICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaDsKICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50Owp9CgogLndpZGdldC1jb2xvcnBpY2tlci5jb25jaXNlIGlucHV0W3R5cGU9ImNvbG9yIl0gewogICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjOUU5RTlFOwp9CgogLndpZGdldC1jb2xvcnBpY2tlciBpbnB1dFt0eXBlPSJjb2xvciJdOmZvY3VzLCAud2lkZ2V0LWNvbG9ycGlja2VyIGlucHV0W3R5cGU9InRleHQiXTpmb2N1cyB7CiAgICBib3JkZXItY29sb3I6ICM2NEI1RjY7Cn0KCiAud2lkZ2V0LWNvbG9ycGlja2VyIGlucHV0W3R5cGU9InRleHQiXSB7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7CiAgICBoZWlnaHQ6IDI4cHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICBtaW4td2lkdGg6IDA7IC8qIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgZm9yIHRoZSBmbGV4Ym94IHRvIHNocmluayB0aGlzIGlucHV0ICovCiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQoKIC53aWRnZXQtY29sb3JwaWNrZXIgaW5wdXRbdHlwZT0idGV4dCJdOmRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNjsKfQoKIC8qIERhdGUgUGlja2VyIFN0eWxpbmcgKi8KCiAud2lkZ2V0LWRhdGVwaWNrZXIgewogICAgd2lkdGg6IDMwMHB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWRhdGVwaWNrZXIgaW5wdXRbdHlwZT0iZGF0ZSJdIHsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTsKICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAxOwogICAgICAgIGZsZXgtc2hyaW5rOiAxOwogICAgbWluLXdpZHRoOiAwOyAvKiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIGZvciB0aGUgZmxleGJveCB0byBzaHJpbmsgdGhpcyBpbnB1dCAqLwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OwogICAgaGVpZ2h0OiAyOHB4OwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgcGFkZGluZzogNHB4IDhweDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQoKIC53aWRnZXQtZGF0ZXBpY2tlciBpbnB1dFt0eXBlPSJkYXRlIl06Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjNjRCNUY2Owp9CgogLndpZGdldC1kYXRlcGlja2VyIGlucHV0W3R5cGU9ImRhdGUiXTppbnZhbGlkIHsKICAgIGJvcmRlci1jb2xvcjogI0ZGOTgwMDsKfQoKIC53aWRnZXQtZGF0ZXBpY2tlciBpbnB1dFt0eXBlPSJkYXRlIl06ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLyogUGxheSBXaWRnZXQgKi8KCiAud2lkZ2V0LXBsYXkgewogICAgd2lkdGg6IDE0OHB4OwogICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICAtd2Via2l0LWJveC1hbGlnbjogc3RyZXRjaDsKICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RyZXRjaDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7Cn0KCiAud2lkZ2V0LXBsYXkgLmp1cHl0ZXItYnV0dG9uIHsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTsKICAgIGhlaWdodDogYXV0bzsKfQoKIC53aWRnZXQtcGxheSAuanVweXRlci1idXR0b246ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLyogVGFiIFdpZGdldCAqLwoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiB7CiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogICAgZGlzcGxheTogZmxleDsKICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciB7CiAgICAvKiBOZWNlc3Nhcnkgc28gdGhhdCBhIHRhYiBjYW4gYmUgc2hpZnRlZCBkb3duIHRvIG92ZXJsYXkgdGhlIGJvcmRlciBvZiB0aGUgYm94IGJlbG93LiAqLwogICAgb3ZlcmZsb3cteDogdmlzaWJsZTsKICAgIG92ZXJmbG93LXk6IHZpc2libGU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgPiAucC1UYWJCYXItY29udGVudCB7CiAgICAvKiBNYWtlIHN1cmUgdGhhdCB0aGUgdGFiIGdyb3dzIGZyb20gYm90dG9tIHVwICovCiAgICAtd2Via2l0LWJveC1hbGlnbjogZW5kOwogICAgICAgIC1tcy1mbGV4LWFsaWduOiBlbmQ7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKICAgIG1pbi13aWR0aDogMDsKICAgIG1pbi1oZWlnaHQ6IDA7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAud2lkZ2V0LXRhYi1jb250ZW50cyB7CiAgICB3aWR0aDogMTAwJTsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIG1hcmdpbjogMDsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIHBhZGRpbmc6IDE1cHg7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBvdmVyZmxvdzogYXV0bzsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciB7CiAgICBmb250OiAxM3B4IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgICBtaW4taGVpZ2h0OiAyNXB4Owp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWIgewogICAgLXdlYmtpdC1ib3gtZmxleDogMDsKICAgICAgICAtbXMtZmxleDogMCAxIDE0NHB4OwogICAgICAgICAgICBmbGV4OiAwIDEgMTQ0cHg7CiAgICBtaW4td2lkdGg6IDM1cHg7CiAgICBtaW4taGVpZ2h0OiAyNXB4OwogICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICBtYXJnaW4tbGVmdDogLTFweDsKICAgIHBhZGRpbmc6IDBweCAxMHB4OwogICAgYmFja2dyb3VuZDogI0VFRUVFRTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC41KTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWIucC1tb2QtY3VycmVudCB7CiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAxLjApOwogICAgLyogV2Ugd2FudCB0aGUgYmFja2dyb3VuZCB0byBtYXRjaCB0aGUgdGFiIGNvbnRlbnQgYmFja2dyb3VuZCAqLwogICAgYmFja2dyb3VuZDogd2hpdGU7CiAgICBtaW4taGVpZ2h0OiAyNnB4OwogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7CiAgICBvdmVyZmxvdzogdmlzaWJsZTsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciAucC1UYWJCYXItdGFiLnAtbW9kLWN1cnJlbnQ6YmVmb3JlIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogLTFweDsKICAgIGxlZnQ6IC0xcHg7CiAgICBjb250ZW50OiAnJzsKICAgIGhlaWdodDogMnB4OwogICAgd2lkdGg6IGNhbGMoMTAwJSArIDJweCk7CiAgICBiYWNrZ3JvdW5kOiAjMjE5NkYzOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWI6Zmlyc3QtY2hpbGQgewogICAgbWFyZ2luLWxlZnQ6IDA7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYjpob3Zlcjpub3QoLnAtbW9kLWN1cnJlbnQpIHsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLW1vZC1jbG9zYWJsZSA+IC5wLVRhYkJhci10YWJDbG9zZUljb24gewogICAgbWFyZ2luLWxlZnQ6IDRweDsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciAucC1tb2QtY2xvc2FibGUgPiAucC1UYWJCYXItdGFiQ2xvc2VJY29uOmJlZm9yZSB7CiAgICBmb250LWZhbWlseTogRm9udEF3ZXNvbWU7CiAgICBjb250ZW50OiAnXGYwMGQnOyAvKiBjbG9zZSAqLwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWJJY29uLAouanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkxhYmVsLAouanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkNsb3NlSWNvbiB7CiAgICBsaW5lLWhlaWdodDogMjRweDsKfQoKIC8qIEFjY29yZGlvbiBXaWRnZXQgKi8KCiAucC1Db2xsYXBzZSB7CiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogICAgZGlzcGxheTogZmxleDsKICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIC13ZWJraXQtYm94LWFsaWduOiBzdHJldGNoOwogICAgICAgIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoOwogICAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKfQoKIC5wLUNvbGxhcHNlLWhlYWRlciB7CiAgICBwYWRkaW5nOiA0cHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAuNSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUVFRUVFOwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIHBhZGRpbmc6IDEwcHggMTVweDsKICAgIGZvbnQtd2VpZ2h0OiBib2xkOwp9CgogLnAtQ29sbGFwc2UtaGVhZGVyOmhvdmVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwp9CgogLnAtQ29sbGFwc2Utb3BlbiA+IC5wLUNvbGxhcHNlLWhlYWRlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDEuMCk7CiAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICBib3JkZXItYm90dG9tOiBub25lOwp9CgogLnAtQ29sbGFwc2UgLnAtQ29sbGFwc2UtaGVhZGVyOjpiZWZvcmUgewogICAgY29udGVudDogJ1xmMGRhXDAwQTAnOyAgLyogY2FyZXQtcmlnaHQsIG5vbi1icmVha2luZyBzcGFjZSAqLwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgZm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgMTRweC8xIEZvbnRBd2Vzb21lOwogICAgZm9udC1zaXplOiBpbmhlcml0OwogICAgdGV4dC1yZW5kZXJpbmc6IGF1dG87CiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7Cn0KCiAucC1Db2xsYXBzZS1vcGVuID4gLnAtQ29sbGFwc2UtaGVhZGVyOjpiZWZvcmUgewogICAgY29udGVudDogJ1xmMGQ3XDAwQTAnOyAvKiBjYXJldC1kb3duLCBub24tYnJlYWtpbmcgc3BhY2UgKi8KfQoKIC5wLUNvbGxhcHNlLWNvbnRlbnRzIHsKICAgIHBhZGRpbmc6IDE1cHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44KTsKICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzlFOUU5RTsKICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzlFOUU5RTsKICAgIG92ZXJmbG93OiBhdXRvOwp9CgogLnAtQWNjb3JkaW9uIHsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgLXdlYmtpdC1ib3gtYWxpZ246IHN0cmV0Y2g7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IHN0cmV0Y2g7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwp9CgogLnAtQWNjb3JkaW9uIC5wLUNvbGxhcHNlIHsKICAgIG1hcmdpbi1ib3R0b206IDA7Cn0KCiAucC1BY2NvcmRpb24gLnAtQ29sbGFwc2UgKyAucC1Db2xsYXBzZSB7CiAgICBtYXJnaW4tdG9wOiA0cHg7Cn0KCiAvKiBIVE1MIHdpZGdldCAqLwoKIC53aWRnZXQtaHRtbCwgLndpZGdldC1odG1sbWF0aCB7CiAgICBmb250LXNpemU6IDEzcHg7Cn0KCiAud2lkZ2V0LWh0bWwgPiAud2lkZ2V0LWh0bWwtY29udGVudCwgLndpZGdldC1odG1sbWF0aCA+IC53aWRnZXQtaHRtbC1jb250ZW50IHsKICAgIC8qIEZpbGwgb3V0IHRoZSBhcmVhIGluIHRoZSBIVE1MIHdpZGdldCAqLwogICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaDsKICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleC1wb3NpdGl2ZTogMTsKICAgICAgICAgICAgZmxleC1ncm93OiAxOwogICAgLW1zLWZsZXgtbmVnYXRpdmU6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAvKiBNYWtlcyBzdXJlIHRoZSBiYXNlbGluZSBpcyBzdGlsbCBhbGlnbmVkIHdpdGggb3RoZXIgZWxlbWVudHMgKi8KICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgLyogTWFrZSBpdCBwb3NzaWJsZSB0byBoYXZlIGFic29sdXRlbHktcG9zaXRpb25lZCBlbGVtZW50cyBpbiB0aGUgaHRtbCAqLwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgovKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWk0dUwyNXZaR1ZmYlc5a2RXeGxjeTlBYW5Wd2VYUmxjaTEzYVdSblpYUnpMMk52Ym5SeWIyeHpMMk56Y3k5M2FXUm5aWFJ6TG1OemN5SXNJaTR1TDI1dlpHVmZiVzlrZFd4bGN5OUFhblZ3ZVhSbGNpMTNhV1JuWlhSekwyTnZiblJ5YjJ4ekwyTnpjeTlzWVdKMllYSnBZV0pzWlhNdVkzTnpJaXdpTGk0dmJtOWtaVjl0YjJSMWJHVnpMMEJxZFhCNWRHVnlMWGRwWkdkbGRITXZZMjl1ZEhKdmJITXZZM056TDIxaGRHVnlhV0ZzWTI5c2IzSnpMbU56Y3lJc0lpNHVMMjV2WkdWZmJXOWtkV3hsY3k5QWFuVndlWFJsY2kxM2FXUm5aWFJ6TDJOdmJuUnliMnh6TDJOemN5OTNhV1JuWlhSekxXSmhjMlV1WTNOeklpd2lMaTR2Ym05a1pWOXRiMlIxYkdWekwwQnFkWEI1ZEdWeUxYZHBaR2RsZEhNdlkyOXVkSEp2YkhNdlkzTnpMM0JvYjNOd2FHOXlMbU56Y3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFUczdSMEZGUnpzN1EwRkZSanM3YTBOQlJXbERPenREUTA1c1F6czdPeXRGUVVjclJUczdRMEZGTDBVN096czdSVUZKUlRzN1EwTlVSanM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3UjBFMlFrYzdPME5FYUVKSU96czdPenM3T3pzN096czdPenM3T3pzN08wVkJiVUpGT3p0RFFVZEdPenRIUVVWSE96dERRVU5HTEhsRVFVRjVSRHM3UTBGRE1VUXNlVVZCUVhsRk96dERRVVY2UlRzN1IwRkZSenM3UTBGUFNEczdSVUZGUlRzN08wdEJSMGM3TzBWQlVVZzdPenM3U1VGSlJTeERRVWwzUWl4dlFrRkJiMElzUTBGSGFFSXNNRU5CUVRCRE96dEZRVWQ0UlRzN1NVRkZSVHM3UlVGUFJqczdTMEZGUnpzN1JVRlBTRHM3TzBsQlIwVXNRMEZYZDBJc2IwSkJRVzlDT3pzN1JVRlZPVU03T3pzN1NVRkpSVHM3UlVGUFJpeHJRa0ZCYTBJN08wVkJXV3hDTEN0RFFVRXJRenM3UlVGelFpOURMREJDUVVFd1FqdEZRV0V4UWpzMFJVRkRNRVU3UlVGRk1VVTdkMFZCUTNORk96dEZRVWQwUlN3NFFrRkJPRUk3TzBWQlN6bENMRFpDUVVFMlFqczdSVUZKTjBJc05rSkJRVFpDTzBOQlVUbENPenREUlhwTlJEczdSMEZGUnpzN1EwRkZTRHM3T3p0SFFVbEhPenREUTFKSU96czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdSVUU0UWtVN08wTkJSVVk3T3p0SFFVZEhPenREUVVWSU8wVkJRMFVzY1VKQlFXTTdSVUZCWkN4eFFrRkJZenRGUVVGa0xHTkJRV003UlVGRFpDd3dRa0ZCTUVJN1JVRkRNVUlzZFVKQlFYVkNPMFZCUTNaQ0xITkNRVUZ6UWp0RlFVTjBRaXhyUWtGQmEwSTdRMEZEYmtJN08wTkJSMFE3UlVGRFJTd3JRa0ZCYjBJN1JVRkJjRUlzT0VKQlFXOUNPMDFCUVhCQ0xIZENRVUZ2UWp0VlFVRndRaXh2UWtGQmIwSTdRMEZEY2tJN08wTkJSMFE3UlVGRFJTdzJRa0ZCZFVJN1JVRkJka0lzT0VKQlFYVkNPMDFCUVhaQ0xESkNRVUYxUWp0VlFVRjJRaXgxUWtGQmRVSTdRMEZEZUVJN08wTkJSMFE3UlVGRFJTeFZRVUZWTzBWQlExWXNWMEZCVnp0RlFVTllMSEZDUVVGak8wVkJRV1FzY1VKQlFXTTdSVUZCWkN4alFVRmpPMFZCUTJRc2IwSkJRV1U3VFVGQlppeHRRa0ZCWlR0VlFVRm1MR1ZCUVdVN1JVRkRaaXh6UWtGQmMwSTdRMEZEZGtJN08wTkJSMFE3UlVGRFJTd3JRa0ZCYjBJN1JVRkJjRUlzT0VKQlFXOUNPMDFCUVhCQ0xIZENRVUZ2UWp0VlFVRndRaXh2UWtGQmIwSTdRMEZEY2tJN08wTkJSMFE3UlVGRFJTdzJRa0ZCZFVJN1JVRkJka0lzT0VKQlFYVkNPMDFCUVhaQ0xESkNRVUYxUWp0VlFVRjJRaXgxUWtGQmRVSTdRMEZEZUVJN08wTkJSMFE3UlVGRFJTeHhRa0ZCWXp0RlFVRmtMSEZDUVVGak8wVkJRV1FzWTBGQll6dEZRVU5rTEN0Q1FVRnZRanRGUVVGd1FpdzRRa0ZCYjBJN1RVRkJjRUlzZDBKQlFXOUNPMVZCUVhCQ0xHOUNRVUZ2UWp0RlFVTndRaXdyUWtGQmRVSTdWVUZCZGtJc2RVSkJRWFZDTzBWQlEzWkNMR2xDUVVGcFFqdERRVU5zUWpzN1EwRkhSRHM3UlVGRlJTeHZRa0ZCWlR0TlFVRm1MRzFDUVVGbE8xVkJRV1lzWlVGQlpUdERRVU5vUWpzN1EwRkhSRHRGUVVORkxHOUNRVUZsTzAxQlFXWXNiVUpCUVdVN1ZVRkJaaXhsUVVGbE8wVkJRMllzYVVKQlFXbENPMFZCUTJwQ0xHOUNRVUZ2UWp0RFFVTnlRanM3UTBGSFJEdEZRVU5GTEhsQ1FVRjVRanREUVVNeFFqczdRMEZIUkR0RlFVTkZMRzFDUVVGdFFqdERRVU53UWpzN1EwRkhSRHRGUVVORkxGRkJRVkU3UlVGRFVpeHZRMEZCTkVJN1JVRkJOVUlzTkVKQlFUUkNPME5CUXpkQ096dERRVWRFTzBWQlEwVXNUMEZCVHp0RlFVTlFMRzFEUVVFeVFqdEZRVUV6UWl3eVFrRkJNa0k3UTBGRE5VSTdPME5CUjBRN1JVRkRSU3g1UWtGQmFVSTdSVUZCYWtJc2FVSkJRV2xDTzBOQlEyeENPenREUVVWRUxHOUNRVUZ2UWpzN1EwUTVSM0JDTEZGQlZYRkRMRzlEUVVGdlF6czdTVUV5UW5KRkxDdENRVUVyUWp0RFFVbHNRenM3UTBGRlJEdEpRVU5KTEZsQlFXbERPMGxCUTJwRExDdENRVUYxUWp0WlFVRjJRaXgxUWtGQmRVSTdTVUZEZGtJc1lVRkJLMEk3U1VGREwwSXNhMEpCUVd0Q08wTkJRM0pDT3p0RFFVVkVPMGxCUTBrc2EwSkJRVFpETzBsQlF6ZERMR0ZCUVhkRE8wTkJRek5ET3p0RFFVVkVPMGxCUTBrc1pVRkJaVHRKUVVObUxHZENRVUZuUWp0RFFVTnVRanM3UTBGRlJDeHRRa0ZCYlVJN08wTkJSVzVDTzBsQlEwa3NkMEpCUVhkQ08wbEJRM2hDTEN0Q1FVRjFRanRaUVVGMlFpeDFRa0ZCZFVJN1NVRkRka0lzY1VKQlFXTTdTVUZCWkN4eFFrRkJZenRKUVVGa0xHTkJRV003U1VGRFpDd3JRa0ZCYjBJN1NVRkJjRUlzT0VKQlFXOUNPMUZCUVhCQ0xIZENRVUZ2UWp0WlFVRndRaXh2UWtGQmIwSTdTVUZEY0VJc05FSkJRWE5DTzFGQlFYUkNMSGxDUVVGelFqdFpRVUYwUWl4elFrRkJjMEk3UTBGRGVrSTdPME5CUlVRN1NVRkRTU3h6UWtGQmMwSTdTVUZEZEVJc0swSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl4eFFrRkJZenRKUVVGa0xIRkNRVUZqTzBsQlFXUXNZMEZCWXp0SlFVTmtMRFpDUVVGMVFqdEpRVUYyUWl3NFFrRkJkVUk3VVVGQmRrSXNNa0pCUVhWQ08xbEJRWFpDTEhWQ1FVRjFRanRKUVVOMlFpd3dRa0ZCYjBJN1VVRkJjRUlzZFVKQlFXOUNPMWxCUVhCQ0xHOUNRVUZ2UWp0RFFVTjJRanM3UTBGRlJEdEpRVU5KTEN0Q1FVRjFRanRaUVVGMlFpeDFRa0ZCZFVJN1NVRkRka0lzY1VKQlFXTTdTVUZCWkN4eFFrRkJZenRKUVVGa0xHTkJRV003U1VGRFpDeFZRVUZWTzBsQlExWXNaVUZCWlR0RFFVTnNRanM3UTBGRlJEdEpRVU5KTEN0Q1FVRjFRanRaUVVGMlFpeDFRa0ZCZFVJN1NVRkRka0lzWTBGQll6dEpRVU5rTEZWQlFWVTdTVUZEVml4bFFVRmxPME5CUTJ4Q096dERRVVZFTzBsQlEwa3NLMEpCUVc5Q08wbEJRWEJDTERoQ1FVRnZRanRSUVVGd1FpeDNRa0ZCYjBJN1dVRkJjRUlzYjBKQlFXOUNPME5CUTNaQ096dERRVVZFTzBsQlEwa3NOa0pCUVhWQ08wbEJRWFpDTERoQ1FVRjFRanRSUVVGMlFpd3lRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPME5CUXpGQ096dERRVVZFTERSQ1FVRTBRanM3UTBGRk5VSTdTVUZEU1N4dFFrRkJiVUk3U1VGRGJrSXNiMEpCUVc5Q08wbEJRM0JDTEdsQ1FVRnBRanRKUVVOcVFpeHZRa0ZCYjBJN1NVRkRjRUlzYzBKQlFYTkNPMGxCUTNSQ0xHOUNRVUZ2UWp0SlFVTndRaXhwUWtGQmFVSTdTVUZEYWtJc2QwSkJRWGRDTzBsQlEzaENMRzFDUVVGdFFqdEpRVU51UWl4blFrRkJkVU03U1VGRGRrTXNaMEpCUVdkQ096dEpRVVZvUWl4aFFVRjNRenRKUVVONFF5eHJRa0ZCYTBJN1NVRkRiRUlzYTBKQlFUWkRPMGxCUXpkRExIbENRVUZwUWp0WlFVRnFRaXhwUWtGQmFVSTdPMGxCUldwQ0xIbENRVUZuUXp0SlFVTm9ReXd3UWtGQk1FTTdTVUZETVVNc2MwSkJRWE5ETzBsQlEzUkRMR0ZCUVdFN1EwRkRhRUk3TzBOQlJVUTdTVUZEU1N4clFrRkJPRU03U1VGRE9VTXNjVUpCUVhGQ08wTkJRM2hDT3p0RFFVVkVPMGxCUTBrc2FVSkJRV2xDTEVOQlFVTXNjMEpCUVhOQ08wTkJRek5ET3p0RFFVVkVPMGxCUTBrc1lVRkJORU03UTBGREwwTTdPME5CUlVRN1NVRkRTU3huUWtGQlowSTdRMEZEYmtJN08wTkJSVVE3U1VGRFNTeDNRa0ZCZDBJN1NVRkRlRUk3T3l0RFFVVXJSVHRaUVVZdlJUczdLME5CUlN0Rk8wTkJRMnhHT3p0RFFVVkVPMGxCUTBrc2QwSkJRWGRDTzBsQlEzaENPenRwUkVGRk5rVTdXVUZHTjBVN08ybEVRVVUyUlR0SlFVTTNSU3g1UWtGQlowTTdTVUZEYUVNc01FSkJRVEJETzBOQlF6ZERPenREUVVWRU8wbEJRMGtzTWtKQlFUaEVPME5CUTJwRk96dERRVVZFTERoQ1FVRTRRanM3UTBGRk9VSTdTVUZEU1N4blEwRkJkME03U1VGRGVFTXNNRUpCUVhsRE8wTkJRelZET3p0RFFVVkVPMGxCUTBrc09FSkJRWGRETzBsQlEzaERMREJDUVVGNVF6dERRVU0xUXpzN1EwRkZSRHRKUVVOSkxEaENRVUYzUXp0SlFVTjRReXd3UWtGQmVVTTdRMEZETlVNN08wTkJSVVFzT0VKQlFUaENPenREUVVVNVFqdEpRVU5KTEdkRFFVRjNRenRKUVVONFF5d3dRa0ZCTWtNN1EwRkRPVU03TzBOQlJVUTdTVUZEU1N3NFFrRkJkME03U1VGRGVFTXNNRUpCUVRKRE8wVkJRemRET3p0RFFVVkdPMGxCUTBrc09FSkJRWGRETzBsQlEzaERMREJDUVVFeVF6dEZRVU0zUXpzN1EwRkZSQ3d5UWtGQk1rSTdPME5CUlRWQ08wbEJRMGtzWjBOQlFYZERPMGxCUTNoRExEQkNRVUYzUXp0RFFVTXpRenM3UTBGRlJEdEpRVU5KTERoQ1FVRjNRenRKUVVONFF5d3dRa0ZCZDBNN1EwRkRNME03TzBOQlJVUTdTVUZEU1N3NFFrRkJkME03U1VGRGVFTXNNRUpCUVhkRE8wTkJRek5ET3p0RFFVVkVMRGhDUVVFNFFqczdRMEZGT1VJN1NVRkRTU3huUTBGQmQwTTdTVUZEZUVNc01FSkJRWGRETzBOQlF6TkRPenREUVVWRU8wbEJRMGtzT0VKQlFYZERPMGxCUTNoRExEQkNRVUYzUXp0RFFVTXpRenM3UTBGRlJEdEpRVU5KTERoQ1FVRjNRenRKUVVONFF5d3dRa0ZCZDBNN1EwRkRNME03TzBOQlJVUXNOa0pCUVRaQ096dERRVVUzUWp0SlFVTkpMR2REUVVGM1F6dEpRVU40UXl3d1FrRkJlVU03UTBGRE5VTTdPME5CUlVRN1NVRkRTU3c0UWtGQmQwTTdTVUZEZUVNc01FSkJRWGxETzBOQlF6VkRPenREUVVWRU8wbEJRMGtzT0VKQlFYZERPMGxCUTNoRExEQkNRVUY1UXp0RFFVTTFRenM3UTBGRlJDeHJRa0ZCYTBJN08wTkJSV3hDTzBsQlEwa3NZVUZCTkVNN1EwRkRMME03TzBOQlJVUXNNRUpCUVRCQ096dERRVVV4UWl4clEwRkJhME03TzBOQlEyeERPMGxCUTBrc2FVSkJRWFZDTzBsQlFYWkNMSFZDUVVGMVFqdERRVU14UWpzN1EwRkZSRHRKUVVOSkxHbENRVUZwUWp0SlFVTnFRaXhoUVVGeFF6dEpRVU55UXl4blFrRkJkVU03U1VGRGRrTXNhVUpCUVdsQ08wbEJRMnBDTEhkQ1FVRjNRanRKUVVONFFpeHZRa0ZCYjBJN1NVRkRjRUlzYTBKQlFUWkRPME5CUTJoRU96dERRVVZFTzBsQlEwa3NWMEZCVnp0SlFVTllMR0ZCUVhGRE8wbEJRM0pETEdkQ1FVRjFRenRKUVVOMlF5eHBRa0ZCYVVJN1NVRkRha0lzZDBKQlFYZENPMGxCUTNoQ0xHOUNRVUZ2UWp0SlFVTndRaXhyUWtGQk5rTTdRMEZEYUVRN08wTkJSVVE3U1VGRFNTdzJRa0ZCTmtJN1NVRkROMElzWVVGQmNVTTdTVUZEY2tNc2EwSkJRV3RDTzBsQlEyeENMR3RDUVVFd1JEdEpRVU14UkN4WlFVRTBRenRKUVVNMVF5eHhRa0ZCWlR0UlFVRm1MR1ZCUVdVN1EwRkRiRUk3TzBOQlJVUTdTVUZEU1N3eVFrRkJNa0k3U1VGRE0wSXNZVUZCY1VNN1NVRkRja01zYlVKQlFXMUNPMGxCUTI1Q0xHdENRVUUyUXp0RFFVTm9SRHM3UTBGRlJDdzBRa0ZCTkVJN08wTkJSVFZDTzBsQlEwa3NZVUZCZFVNN1NVRkRka01zWjBKQlFYVkRPMGxCUTNaRExHRkJRWGRETzBsQlEzaERMR3RDUVVFMlF6dEpRVU0zUXl4cFFrRkJhVUk3U1VGRGFrSXNiMEpCUVc5Q08wbEJRM0JDTEcxQ1FVRnRRanREUVVOMFFqczdRMEZGUkR0SlFVTkpMSGxDUVVGNVFqczdTVUZGZWtJN096czdUMEZKUnp0SlFVTklPenQxUkVGRmIwUTdPMGxCVFhCRU96c3JRMEZGTkVNN1EwRkRMME03TzBOQlJVUTdTVUZEU1N4M1FrRkJkMEk3U1VGRGVFSXNiVUpCUVcxQ08wbEJRMjVDTEdsQ1FVRm5SRHRKUVVOb1JDeG5Ra0ZCSzBNN1NVRkRMME1zYVVKQlFUWkRPME5CUTJoRU96dERRVVZFTzBsQlEwa3NjMEpCUVhOQ08wbEJRM1JDTEdkQ1FVRTBRenRKUVVNMVF5d3lRa0ZCTWtJN1NVRkRNMElzWlVGQlpUdERRVU5zUWpzN1EwRkZSQ3cyUWtGQk5rSTdPME5CUlRkQ08wbEJRMGtzWVVGQmMwTTdTVUZEZEVNc1lVRkJkME03U1VGRGVFTXNhMEpCUVRaRE8wTkJRMmhFT3p0RFFVVkVPMGxCUTBrc2QwSkJRV2RGTzBsQlEyaEZMR3RDUVVFMlF6dEpRVU0zUXl4cFFrRkJhVUk3U1VGRGFrSXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4eFFrRkJaVHRSUVVGbUxHVkJRV1U3U1VGRFppdzBRa0ZCYlVJN1VVRkJia0lzYlVKQlFXMUNPME5CUTNSQ096dERRVVZFTERCQ1FVRXdRanM3UTBGRk1VSTdTVUZEU1N4aFFVRjNRenRKUVVONFF5eHJRa0ZCTmtNN1NVRkROME1zWVVGQk5FTTdTVUZETlVNc1owSkJRWFZETzBOQlF6RkRPenREUVVWRU8wbEJRMGtzYTBKQlFUWkRPMGxCUXpkRExHdENRVUU0UXp0SlFVTTVReXhwUWtGQk5rTTdPMGxCUlRkRExEQktRVUV3U2p0SlFVTXhTaXh6UWtGQmMwSTdTVUZEZEVJc09FTkJRVGhETzBsQlF6bERMRzFDUVVGdFFqdEpRVU51UWl4eFFrRkJjVUk3U1VGRGNrSXNiME5CUVc5RE8wbEJRM0JETEcxRFFVRnRRenREUVVOMFF6czdRMEZGUkR0SlFVTkpMR2xDUVVGcFFqdEpRVU5xUWl4aFFVRmhPME5CUTJoQ096dERRVVZFTzBsQlEwa3NhVUpCUVdsQ08wbEJRMnBDTEZkQlFWYzdRMEZEWkRzN1EwRkZSRHRKUVVOSkxHTkJRV003UTBGRGFrSTdPME5CUlVRc2NVTkJRWEZET3p0RFFVVnlRenRKUVVOSkxHRkJRWE5ETzBOQlEzcERPenREUVVWRU8wbEJRMGtzWVVGQmQwTTdTVUZEZUVNc2EwSkJRVFpETzBOQlEyaEVPenREUVVWRU8wbEJRMGtzWVVGQk5FTTdRMEZETDBNN08wTkJSVVE3U1VGRFNTd3JRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPMGxCUTNaQ0xEQkNRVUYzUmp0SlFVTjRSaXgzUWtGQk1rUTdTVUZETTBRc2VVSkJRWEZETzBsQlEzSkRMR2RDUVVGMVF6dEpRVU4yUXl4cFFrRkJjMFk3U1VGRGRFWXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4aFFVRmhMRU5CUVVNc2FVVkJRV2xGTzBsQlF5OUZMSEZDUVVGbE8xRkJRV1lzWlVGQlpUdEpRVU5tTEhsQ1FVRjVRanREUVVNMVFqczdRMEZGUkR0SlFVTkpMR2RDUVVGblFqdEpRVU5vUWl4bFFVRmxPME5CUTJ4Q096dERRVVZFTzBsQlEwa3NjMEpCUVhsRU8wTkJRelZFT3p0RFFVVkVMRzFDUVVGdFFqczdRMEZGYmtJN1NVRkRTU3hyUWtGQmEwSTdTVUZEYkVJc01FSkJRVFJGTzBsQlF6VkZMRzlDUVVGdlF6dEpRVU53UXl3clFrRkJkVUk3V1VGQmRrSXNkVUpCUVhWQ08wbEJRM1pDTEcxQ1FVRnRRanRKUVVOdVFpeHRRa0ZCYlVJN1EwRkRkRUk3TzBOQlJVUTdTVUZEU1N4dFFrRkJiVUk3U1VGRGJrSXNlVUpCUVhsQ0xFTkJRVU1zYjBSQlFXOUVPMGxCUXpsRkxHMUNRVUZ0UWp0SlFVTnVRaXgzUWtGQmJVVTdTVUZEYmtVc01FSkJRV2xITzBsQlEycEhMQ3RDUVVGMVFqdFpRVUYyUWl4MVFrRkJkVUk3U1VGRGRrSXNWMEZCVnp0SlFVTllMSFZDUVVGMVFpeERRVUZETEhkQ1FVRjNRanREUVVOdVJEczdRMEZGUkN4M1FrRkJkMEk3TzBOQlEzaENPMGxCUTBrc01FSkJRU3RFTzBsQlF5OUVMREJDUVVGcFJ6dERRVU53UnpzN1EwRkZSRHRKUVVOSkxEQkNRVUVyUkR0SlFVTXZSQ3h6UWtGQk1rUTdTVUZETTBRc1YwRkJWenRKUVVOWUxEaENRVUZ6UWp0WlFVRjBRaXh6UWtGQmMwSTdRMEZEZWtJN08wTkJSVVE3U1VGRFNTeHBSVUZCYVVVN1NVRkRha1VzYlVKQlFXMUNPMGxCUTI1Q0xHOUNRVUY1UkR0SlFVTjZSQ3hYUVVGWE8wTkJRMlE3TzBOQlJVUXNPRUpCUVRoQ096dERRVVU1UWp0SlFVTkpMRmxCUVRSRE8wbEJRelZETEdGQlFUWkRPMGxCUXpkRExHbENRVUZuU2p0SlFVTm9TaXhyUWtGQmNVYzdTVUZEY2tjc2JVSkJRVzFDTzBsQlEyNUNMRTlCUVU4N1EwRkRWanM3UTBGRlJEdEpRVU5KTEZsQlFUUkRPMGxCUXpWRExHRkJRVFpETzBsQlF6ZERMRzlDUVVGMVJ6dEpRVU4yUnl4clFrRkJhVW83U1VGRGFrb3NiVUpCUVcxQ08wbEJRMjVDTEZGQlFWRTdRMEZEV0RzN1EwRkZSRHRKUVVOSkxGbEJRVFpFTzBsQlF6ZEVMR2xDUVVGNVNqdERRVU0xU2pzN1EwRkZSRHRKUVVOSkxGZEJRVFJFTzBsQlF6VkVMR3RDUVVFd1NqdERRVU0zU2pzN1EwRkZSQ3gxUWtGQmRVSTdPME5CUlhaQ08wbEJRMGtzWVVGQmMwTTdTVUZEZEVNc1lVRkJkME03U1VGRGVFTXNhMEpCUVRaRE96dEpRVVUzUXpzN2IwUkJSV2RFTzBsQlEyaEVMREJDUVVGdlFqdFJRVUZ3UWl4MVFrRkJiMEk3V1VGQmNFSXNiMEpCUVc5Q08wTkJRM1pDT3p0RFFVVkVPMGxCUTBrc2EwSkJRV3RDTzBOQlEzSkNPenREUVVWRU8wbEJRMGtzWVVGQmQwTTdTVUZEZUVNc2FVSkJRWGRITzBsQlEzaEhMR3RDUVVGNVJ6dEpRVU42Unl4dlFrRkJLME03VVVGQkwwTXNiMEpCUVN0RE8xbEJRUzlETEdkQ1FVRXJRenREUVVOc1JEczdRMEZGUkR0SlFVTkpMR2REUVVGblF6dEpRVU5vUXl4WlFVRnBSRHRKUVVOcVJDeHBRa0ZCYlVjN1NVRkRia2NzV1VGQldUdERRVU5tT3p0RFFVVkVMSEZDUVVGeFFqczdRMEZGY2tJN1NVRkRTU3hoUVVGM1F6dEpRVU40UXl4clFrRkJOa003UTBGRGFFUTdPME5CUlVRN1NVRkRTU3h4UWtGQmNVSTdTVUZEY2tJc1kwRkJNRU03U1VGRE1VTXNXVUZCTWtNN1EwRkRPVU03TzBOQlJVUTdTVUZEU1N4dlFrRkJLME03VVVGQkwwTXNiMEpCUVN0RE8xbEJRUzlETEdkQ1FVRXJRenRKUVVNdlF5eHJRa0ZCYTBJN1NVRkRiRUlzYlVKQlFXMUNPMGxCUTI1Q0xHMUNRVUV3Unp0SlFVTXhSeXhuUWtGQmRVYzdTVUZEZGtjc2NVSkJRV003U1VGQlpDeHhRa0ZCWXp0SlFVRmtMR05CUVdNN1NVRkRaQ3cyUWtGQmRVSTdTVUZCZGtJc09FSkJRWFZDTzFGQlFYWkNMREpDUVVGMVFqdFpRVUYyUWl4MVFrRkJkVUk3UTBGRE1VSTdPME5CUlVRN1NVRkRTU3huUTBGQlowTTdTVUZEYUVNc1YwRkJaMFE3U1VGRGFFUXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4clFrRkJhMEk3U1VGRGJFSXNiVUpCUVcxQ08wTkJRM1JDT3p0RFFVVkVMRFpDUVVFMlFqczdRMEZGTjBJN1NVRkRTU3g1UWtGQmVVSTdTVUZKZWtJc2FVSkJRV2xDTzBOQlEzQkNPenREUVVWRU8wbEJRMGtzWVVGQmQwTTdRMEZETTBNN08wTkJSVVE3U1VGRFNTd3dRa0ZCZVVNN1EwRkROVU03TzBOQlJVUTdTVUZEU1N3d1FrRkJNa003UTBGRE9VTTdPME5CUlVRN1NVRkRTU3d3UWtGQmQwTTdRMEZETTBNN08wTkJSVVE3U1VGRFNTd3dRa0ZCZDBNN1EwRkRNME03TzBOQlJVUTdTVUZEU1N3d1FrRkJlVU03UTBGRE5VTTdPME5CUlVRN1NVRkRTU3d3UWtGQk1FTTdTVUZETVVNc1lVRkJZVHRKUVVOaUxIbENRVUZwUWp0WlFVRnFRaXhwUWtGQmFVSTdRMEZEY0VJN08wTkJSVVFzZVVKQlFYbENPenREUVVWNlFqdEpRVU5KTEd0Q1FVRnJRanRKUVVOc1FpeGhRVUYzUXp0SlFVTjRReXhyUWtGQk5rTTdTVUZETjBNc1lVRkJjME03U1VGRGRFTXNNRUpCUVc5Q08xRkJRWEJDTEhWQ1FVRnZRanRaUVVGd1FpeHZRa0ZCYjBJN08wTkJSWFpDT3p0RFFVVkVPMGxCUTBrc2IwSkJRV0U3VVVGQllpeHhRa0ZCWVR0WlFVRmlMR0ZCUVdFN1NVRkRZaXhuUWtGQk5FTTdTVUZETlVNc2JVSkJRU3RETzBsQlF5OURMRFpDUVVGdlFqdFJRVUZ3UWl4dlFrRkJiMEk3U1VGRGNFSXNPRUpCUVRoQ08wbEJRemxDTEdGQlFXZENPMGxCUVdoQ0xHZENRVUZuUWp0RFFVTnVRanM3UTBGRlJDeDFRa0ZCZFVJN08wTkJSWFpDTzBsQlEwa3NZMEZCTUVNN1NVRkRNVU1zV1VGQk1rTTdRMEZET1VNN08wTkJSVVE3U1VGRFNTeHZRa0ZCWVR0UlFVRmlMSEZDUVVGaE8xbEJRV0lzWVVGQllUdEpRVU5pTEZsQlFUUkRPMGxCUXpWRExHdENRVUZyUWp0SlFVTnNRaXh0UWtGQmJVSTdTVUZEYmtJc2FVSkJRV2xDTzBOQlEzQkNPenREUVVWRUxESkNRVUV5UWpzN1EwRkZNMEk3U1VGRFNTeGhRVUYzUXp0SlFVTjRReXhoUVVGelF6dEpRVU4wUXl4clFrRkJOa003UTBGRGFFUTdPME5CUlVRN1NVRkRTU3h2UWtGQmIwSTdTVUZEY0VJc01FSkJRWGRHTzBsQlEzaEdMR2xDUVVGcFFqdEpRVU5xUWl4blFrRkJaMEk3U1VGRGFFSXNiMEpCUVN0RE8xRkJRUzlETEc5Q1FVRXJRenRaUVVFdlF5eG5Ra0ZCSzBNN1NVRkRMME1zWVVGQllTeERRVUZETEdsRlFVRnBSVHRKUVVNdlJTd3JRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPMGxCUTNaQ0xIbENRVUY1UWp0SlFVTjZRaXg1UWtGQmFVSTdXVUZCYWtJc2FVSkJRV2xDTzBsQlEycENMSGRDUVVFeVJEdEpRVU16UkN4NVFrRkJjVU03U1VGRGNrTXNaMEpCUVhWRE8wbEJRM1pETEc5Q1FVRnZRanRKUVVOd1FpeHJRa0ZCZVVRN1EwRkROVVFzYVVKQlFXbENPME5CUTJwQ0xIbENRVUY1UWp0RFFVTjZRaXh6UWtGQmMwSTdTVUZEYmtJc05rSkJRVFpDTzBOQlEyaERMSE5DUVVGelFqdERRVU4wUWl4clEwRkJhME03U1VGREwwSXNhM1ZDUVVGdFJEdERRVU4wUkRzN1EwRkRSRHRKUVVOSkxITkNRVUY1UkR0RFFVTTFSRHM3UTBGRlJEdEpRVU5KTEdGQlFUUkRPME5CUXk5RE96dERRVVZFT3paRFFVTTJRenM3UTBGRE4wTTdTVUZEU1N4dFFrRkJiVUk3U1VGRGJrSXNkMEpCUVhkQ08wTkJRek5DT3p0RFFVVkVMQ3RDUVVFclFqczdRMEZGTDBJN1NVRkRTU3hoUVVGelF6dEpRVU4wUXl4clFrRkJOa003TzBsQlJUZERPenRyUlVGRk9FUTdTVUZET1VRc2VVSkJRWGRDTzFGQlFYaENMSE5DUVVGM1FqdFpRVUY0UWl4M1FrRkJkMEk3UTBGRE0wSTdPME5CUlVRN1NVRkRTU3d3UWtGQmQwWTdTVUZEZUVZc2QwSkJRVEpFTzBsQlF6TkVMSGxDUVVGeFF6dEpRVU55UXl4blFrRkJkVU03U1VGRGRrTXNiMEpCUVN0RE8xRkJRUzlETEc5Q1FVRXJRenRaUVVFdlF5eG5Ra0ZCSzBNN1NVRkRMME1zZVVKQlFYbENPMGxCUTNwQ0xHVkJRV1U3U1VGRFppeG5Ra0ZCWjBJN08wbEJSV2hDT3p0clJVRkZPRVE3U1VGRE9VUXNhVUpCUVdsQ08wTkJRM0JDT3p0RFFVVkVPMGxCUTBrc2MwSkJRWGxFTzBOQlF6VkVPenREUVVWRU8wbEJRMGtzYTBKQlFUaERPMGxCUXpsRExHdENRVUUyUXp0SlFVTTNReXhyUlVGQmEwVTdTVUZEYkVVc01FUkJRV2xHTzBsQlEycEdMRFpFUVVGdlJqdERRVU4yUmpzN1EwRkpSQ3cwUWtGQk5FSTdPME5CUlRWQ08wbEJRMGtzYTBKQlFUWkRPME5CUTJoRU96dERRVVZFTzBsQlEwa3NhVUpCUVhORE8wbEJRM1JETEd0Q1FVRjFRenREUVVNeFF6czdRMEZGUkR0SlFVTkpMR0ZCUVRSRE8wTkJReTlET3p0RFFVVkVMREpDUVVFeVFqczdRMEZGTTBJN1NVRkRTU3hoUVVGelF6dEpRVU4wUXl4clFrRkJOa003UTBGRGFFUTdPME5CUlVRN1NVRkRTU3h4UWtGQll6dEpRVUZrTEhGQ1FVRmpPMGxCUVdRc1kwRkJZenRKUVVOa0xEWkNRVUYxUWp0SlFVRjJRaXc0UWtGQmRVSTdVVUZCZGtJc01rSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl3eVFrRkJjVUk3VVVGQmNrSXNkMEpCUVhGQ08xbEJRWEpDTEhGQ1FVRnhRanRKUVVOeVFpd3JRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPMGxCUTNaQ0xHOUNRVUZoTzFGQlFXSXNjVUpCUVdFN1dVRkJZaXhoUVVGaE8wbEJRMklzYlVKQlFUaEVPME5CUTJwRk96dERRVVZFTzBsQlEwa3NZVUZCTkVNN1NVRkROVU1zYTBKQlFXbEVPMGxCUTJwRUxHZENRVUYxUXp0RFFVTXhRenM3UTBGRlJEdEpRVU5KTEdGQlFUUkRPMGxCUXpWRExHdENRVUZwUkR0SlFVTnFSQ3h2UWtGQk5FUTdTVUZETlVRc1dVRkJXVHREUVVObU96dERRVVZFTERCQ1FVRXdRanM3UTBGRk1VSTdTVUZEU1N4aFFVRnpRenRKUVVOMFF5eGhRVUYzUXp0SlFVTjRReXhyUWtGQk5rTTdRMEZEYUVRN08wTkJSVVE3U1VGRFNTeHZRa0ZCWVR0UlFVRmlMSEZDUVVGaE8xbEJRV0lzWVVGQllUdEpRVU5pTEhGQ1FVRmxPMUZCUVdZc1pVRkJaVHRKUVVObUxHZENRVUVyUXp0RFFVTnNSRHM3UTBGRlJEdEpRVU5KTEZsQlFYVkRPMGxCUTNaRExHRkJRWGRETzBsQlEzaERMR1ZCUVdVc1EwRkJReXcyUkVGQk5rUTdTVUZETjBVc2EwSkJRWEZFTzBsQlEzSkVMSGxDUVVGeFF6dEpRVU55UXl3d1FrRkJkMFk3U1VGRGVFWXNhMEpCUVd0Q08wbEJRMnhDTEc5Q1FVRmhPMUZCUVdJc2NVSkJRV0U3V1VGQllpeGhRVUZoTzBsQlEySXNjVUpCUVdVN1VVRkJaaXhsUVVGbE8wbEJRMllzSzBKQlFYVkNPMWxCUVhaQ0xIVkNRVUYxUWp0SlFVTjJRaXcyUWtGQmIwSTdVVUZCY0VJc2IwSkJRVzlDTzBsQlEzQkNMSGxDUVVGNVFqdERRVU0xUWpzN1EwRkZSRHRKUVVOSkxDdENRVUUyUmp0RFFVTm9SenM3UTBGRlJEdEpRVU5KTEhOQ1FVRjVSRHREUVVNMVJEczdRMEZGUkR0SlFVTkpMRzlDUVVGaE8xRkJRV0lzY1VKQlFXRTdXVUZCWWl4aFFVRmhPMGxCUTJJc2VVSkJRWGxDTzBsQlEzcENMR0ZCUVhkRE8wbEJRM2hETEd0Q1FVRTJRenRKUVVNM1F5eHJRa0ZCY1VRN1NVRkRja1FzZVVKQlFYRkRPMGxCUTNKRExEQkNRVUYzUmp0SlFVTjRSaXhuUWtGQmRVTTdTVUZEZGtNc2FVSkJRWE5HTzBsQlEzUkdMR0ZCUVdFc1EwRkJReXhwUlVGQmFVVTdTVUZETDBVc2NVSkJRV1U3VVVGQlppeGxRVUZsTzBsQlEyWXNLMEpCUVhWQ08xbEJRWFpDTEhWQ1FVRjFRanREUVVNeFFqczdRMEZGUkR0SlFVTkpMR0ZCUVRSRE8wTkJReTlET3p0RFFVVkVMSGxDUVVGNVFqczdRMEZGZWtJN1NVRkRTU3hoUVVGelF6dEpRVU4wUXl4aFFVRjNRenRKUVVONFF5eHJRa0ZCTmtNN1EwRkRhRVE3TzBOQlJVUTdTVUZEU1N4dlFrRkJZVHRSUVVGaUxIRkNRVUZoTzFsQlFXSXNZVUZCWVR0SlFVTmlMSEZDUVVGbE8xRkJRV1lzWlVGQlpUdEpRVU5tTEdGQlFXRXNRMEZCUXl4cFJVRkJhVVU3U1VGREwwVXNlVUpCUVhsQ08wbEJRM3BDTEdGQlFYZERPMGxCUTNoRExEQkNRVUYzUmp0SlFVTjRSaXgzUWtGQk1rUTdTVUZETTBRc2VVSkJRWEZETzBsQlEzSkRMR2RDUVVGMVF6dEpRVU4yUXl4cFFrRkJjMFk3U1VGRGRFWXNLMEpCUVhWQ08xbEJRWFpDTEhWQ1FVRjFRanREUVVNeFFqczdRMEZGUkR0SlFVTkpMSE5DUVVGNVJEdERRVU0xUkRzN1EwRkZSRHRKUVVOSkxITkNRVUZ2UXp0RFFVTjJRenM3UTBGRlJEdEpRVU5KTEdGQlFUUkRPME5CUXk5RE96dERRVVZFTEdsQ1FVRnBRanM3UTBGRmFrSTdTVUZEU1N4aFFVRTBRenRKUVVNMVF5eHhRa0ZCWXp0SlFVRmtMSEZDUVVGak8wbEJRV1FzWTBGQll6dEpRVU5rTERKQ1FVRnhRanRSUVVGeVFpeDNRa0ZCY1VJN1dVRkJja0lzY1VKQlFYRkNPME5CUTNoQ096dERRVVZFTzBsQlEwa3NiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4aFFVRmhPME5CUTJoQ096dERRVVZFTzBsQlEwa3NZVUZCTkVNN1EwRkRMME03TzBOQlJVUXNaMEpCUVdkQ096dERRVVZvUWp0SlFVTkpMSEZDUVVGak8wbEJRV1FzY1VKQlFXTTdTVUZCWkN4alFVRmpPMGxCUTJRc05rSkJRWFZDTzBsQlFYWkNMRGhDUVVGMVFqdFJRVUYyUWl3eVFrRkJkVUk3V1VGQmRrSXNkVUpCUVhWQ08wTkJRekZDT3p0RFFVVkVPMGxCUTBrc2VVWkJRWGxHTzBsQlEzcEdMRzlDUVVGdlFqdEpRVU53UWl4dlFrRkJiMEk3UTBGRGRrSTdPME5CUlVRN1NVRkRTU3hwUkVGQmFVUTdTVUZEYWtRc2RVSkJRWE5DTzFGQlFYUkNMRzlDUVVGelFqdFpRVUYwUWl4elFrRkJjMEk3U1VGRGRFSXNZVUZCWVR0SlFVTmlMR05CUVdNN1EwRkRha0k3TzBOQlJVUTdTVUZEU1N4WlFVRlpPMGxCUTFvc0swSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl4VlFVRlZPMGxCUTFZc2EwSkJRVzlETzBsQlEzQkRMSGxDUVVGblF6dEpRVU5vUXl3d1FrRkJOa1E3U1VGRE4wUXNZMEZCTmtNN1NVRkROME1zYjBKQlFXRTdVVUZCWWl4eFFrRkJZVHRaUVVGaUxHRkJRV0U3U1VGRFlpeGxRVUZsTzBOQlEyeENPenREUVVWRU8wbEJRMGtzZDBOQlFTdEVPMGxCUXk5RUxHbENRVUZ0Ump0RFFVTjBSanM3UTBGRlJEdEpRVU5KTEc5Q1FVRnBSRHRSUVVGcVJDeHZRa0ZCYVVRN1dVRkJha1FzWjBKQlFXbEVPMGxCUTJwRUxHZENRVUZuUWp0SlFVTm9RaXhwUWtGQmJVWTdTVUZEYmtZc2EwSkJRWEZFTzBsQlEzSkVMR3RDUVVFclF6dEpRVU12UXl4clFrRkJhMEk3U1VGRGJFSXNiMEpCUVc5RE8wbEJRM0JETEhsQ1FVRm5RenRKUVVOb1F5d3dRa0ZCTmtRN1NVRkROMFFzYjBKQlFXOUNPMGxCUTNCQ0xHMUNRVUZ0UWp0RFFVTjBRanM3UTBGRlJEdEpRVU5KTERCQ1FVRm5RenRKUVVOb1F5eG5SVUZCWjBVN1NVRkRhRVVzYTBKQlFXOURPMGxCUTNCRExHbENRVUYxUmp0SlFVTjJSaXh0UTBGQk9FTTdXVUZCT1VNc01rSkJRVGhETzBsQlF6bERMR3RDUVVGclFqdERRVU55UWpzN1EwRkZSRHRKUVVOSkxHMUNRVUZ0UWp0SlFVTnVRaXhWUVVGMVF6dEpRVU4yUXl4WFFVRjNRenRKUVVONFF5eFpRVUZaTzBsQlExb3NXVUZCYjBRN1NVRkRjRVFzZDBKQlFTdERPMGxCUXk5RExHOUNRVUZ0UXp0RFFVTjBRenM3UTBGRlJEdEpRVU5KTEdWQlFXVTdRMEZEYkVJN08wTkJSVVE3U1VGRFNTeHJRa0ZCYjBNN1NVRkRjRU1zZVVKQlFXZERPME5CUTI1RE96dERRVVZFTzBsQlEwa3NhVUpCUVdsQ08wTkJRM0JDT3p0RFFVVkVPMGxCUTBrc2VVSkJRWGxDTzBsQlEzcENMR2xDUVVGcFFpeERRVUZETEZkQlFWYzdRMEZEYUVNN08wTkJSVVE3T3p0SlFVZEpMR3RDUVVGeFJEdERRVU40UkRzN1EwRkZSQ3h6UWtGQmMwSTdPME5CUlhSQ08wbEJRMGtzY1VKQlFXTTdTVUZCWkN4eFFrRkJZenRKUVVGa0xHTkJRV003U1VGRFpDdzJRa0ZCZFVJN1NVRkJka0lzT0VKQlFYVkNPMUZCUVhaQ0xESkNRVUYxUWp0WlFVRjJRaXgxUWtGQmRVSTdTVUZEZGtJc01rSkJRWEZDTzFGQlFYSkNMSGRDUVVGeFFqdFpRVUZ5UWl4eFFrRkJjVUk3UTBGRGVFSTdPME5CUlVRN1NVRkRTU3hoUVVGNVF6dEpRVU42UXl4blFrRkJaMEk3U1VGRGFFSXNlVUpCUVdkRE8wbEJRMmhETERCQ1FVRXdRenRKUVVNeFF5d3dRa0ZCY1VVN1NVRkRja1VzYlVKQlFTdEdPMGxCUXk5R0xHdENRVUZyUWp0RFFVTnlRanM3UTBGRlJEdEpRVU5KTEhkQ1FVRXdRenRKUVVNeFF5eDVRa0ZCWjBNN1EwRkRia003TzBOQlJVUTdTVUZEU1N4M1FrRkJNRU03U1VGRE1VTXNNRUpCUVdkRE8wbEJRMmhETEdkQ1FVRm5RanRKUVVOb1FpeHZRa0ZCYjBJN1EwRkRka0k3TzBOQlJVUTdTVUZEU1N4elFrRkJjMElzUlVGQlJTeHhRMEZCY1VNN1NVRkROMFFzYzBKQlFYTkNPMGxCUTNSQ0xEaERRVUU0UXp0SlFVTTVReXh0UWtGQmJVSTdTVUZEYmtJc2NVSkJRWEZDTzBsQlEzSkNMRzlEUVVGdlF6dEpRVU53UXl4dFEwRkJiVU03UTBGRGRFTTdPME5CUlVRN1NVRkRTU3h6UWtGQmMwSXNRMEZCUXl4dlEwRkJiME03UTBGRE9VUTdPME5CUlVRN1NVRkRTU3hqUVVFMlF6dEpRVU0zUXl4M1FrRkJNRU03U1VGRE1VTXNlVUpCUVdkRE8wbEJRMmhETEN0Q1FVRXdSVHRKUVVNeFJTeG5RMEZCTWtVN1NVRkRNMFVzYVVOQlFUUkZPMGxCUXpWRkxHVkJRV1U3UTBGRGJFSTdPME5CUlVRN1NVRkRTU3h4UWtGQll6dEpRVUZrTEhGQ1FVRmpPMGxCUVdRc1kwRkJZenRKUVVOa0xEWkNRVUYxUWp0SlFVRjJRaXc0UWtGQmRVSTdVVUZCZGtJc01rSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl3eVFrRkJjVUk3VVVGQmNrSXNkMEpCUVhGQ08xbEJRWEpDTEhGQ1FVRnhRanREUVVONFFqczdRMEZGUkR0SlFVTkpMR2xDUVVGcFFqdERRVU53UWpzN1EwRkZSRHRKUVVOSkxHZENRVUZuUWp0RFFVTnVRanM3UTBGSlJDeHBRa0ZCYVVJN08wTkJSV3BDTzBsQlEwa3NaMEpCUVhWRE8wTkJRekZET3p0RFFVVkVPMGxCUTBrc01FTkJRVEJETzBsQlF6RkRMRFpDUVVGdlFqdFJRVUZ3UWl4dlFrRkJiMEk3U1VGRGNFSXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4eFFrRkJaVHRSUVVGbUxHVkJRV1U3U1VGRFppeHJSVUZCYTBVN1NVRkRiRVVzYTBKQlFUWkRPMGxCUXpkRExIbEZRVUY1UlR0SlFVTjZSU3h0UWtGQmJVSTdRMEZEZEVJaUxDSm1hV3hsSWpvaVkyOXVkSEp2YkhNdVkzTnpJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpTHlvZ1EyOXdlWEpwWjJoMElDaGpLU0JLZFhCNWRHVnlJRVJsZG1Wc2IzQnRaVzUwSUZSbFlXMHVYRzRnS2lCRWFYTjBjbWxpZFhSbFpDQjFibVJsY2lCMGFHVWdkR1Z5YlhNZ2IyWWdkR2hsSUUxdlpHbG1hV1ZrSUVKVFJDQk1hV05sYm5ObExseHVJQ292WEc1Y2JpQXZLaUJYWlNCcGJYQnZjblFnWVd4c0lHOW1JSFJvWlhObElIUnZaMlYwYUdWeUlHbHVJR0VnYzJsdVoyeGxJR056Y3lCbWFXeGxJR0psWTJGMWMyVWdkR2hsSUZkbFluQmhZMnRjYm14dllXUmxjaUJ6WldWeklHOXViSGtnYjI1bElHWnBiR1VnWVhRZ1lTQjBhVzFsTGlCVWFHbHpJR0ZzYkc5M2N5QndiM04wWTNOeklIUnZJSE5sWlNCMGFHVWdkbUZ5YVdGaWJHVmNibVJsWm1sdWFYUnBiMjV6SUhkb1pXNGdkR2hsZVNCaGNtVWdkWE5sWkM0Z0tpOWNibHh1UUdsdGNHOXlkQ0JjSWk0dmJHRmlkbUZ5YVdGaWJHVnpMbU56YzF3aU8xeHVRR2x0Y0c5eWRDQmNJaTR2ZDJsa1oyVjBjeTFpWVhObExtTnpjMXdpTzF4dUlpd2lMeW90TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExWeHVmQ0JEYjNCNWNtbG5hSFFnS0dNcElFcDFjSGwwWlhJZ1JHVjJaV3h2Y0cxbGJuUWdWR1ZoYlM1Y2Jud2dSR2x6ZEhKcFluVjBaV1FnZFc1a1pYSWdkR2hsSUhSbGNtMXpJRzltSUhSb1pTQk5iMlJwWm1sbFpDQkNVMFFnVEdsalpXNXpaUzVjYm53dExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRLaTljYmx4dUx5cGNibFJvYVhNZ1ptbHNaU0JwY3lCamIzQnBaV1FnWm5KdmJTQjBhR1VnU25Wd2VYUmxja3hoWWlCd2NtOXFaV04wSUhSdklHUmxabWx1WlNCa1pXWmhkV3gwSUhOMGVXeHBibWNnWm05eVhHNTNhR1Z1SUhSb1pTQjNhV1JuWlhRZ2MzUjViR2x1WnlCcGN5QmpiMjF3YVd4bFpDQmtiM2R1SUhSdklHVnNhVzFwYm1GMFpTQkRVMU1nZG1GeWFXRmliR1Z6TGlCWFpTQnRZV3RsSUc5dVpWeHVZMmhoYm1kbElDMGdkMlVnWTI5dGJXVnVkQ0J2ZFhRZ2RHaGxJR1p2Ym5RZ2FXMXdiM0owSUdKbGJHOTNMbHh1S2k5Y2JseHVRR2x0Y0c5eWRDQmNJaTR2YldGMFpYSnBZV3hqYjJ4dmNuTXVZM056WENJN1hHNWNiaThxWEc1VWFHVWdabTlzYkc5M2FXNW5JRU5UVXlCMllYSnBZV0pzWlhNZ1pHVm1hVzVsSUhSb1pTQnRZV2x1TENCd2RXSnNhV01nUVZCSklHWnZjaUJ6ZEhsc2FXNW5JRXAxY0hsMFpYSk1ZV0l1WEc1VWFHVnpaU0IyWVhKcFlXSnNaWE1nYzJodmRXeGtJR0psSUhWelpXUWdZbmtnWVd4c0lIQnNkV2RwYm5NZ2QyaGxjbVYyWlhJZ2NHOXpjMmxpYkdVdUlFbHVJRzkwYUdWeVhHNTNiM0prY3l3Z2NHeDFaMmx1Y3lCemFHOTFiR1FnYm05MElHUmxabWx1WlNCamRYTjBiMjBnWTI5c2IzSnpMQ0J6YVhwbGN5d2daWFJqSUhWdWJHVnpjeUJoWW5OdmJIVjBaV3g1WEc1dVpXTmxjM05oY25rdUlGUm9hWE1nWlc1aFlteGxjeUIxYzJWeWN5QjBieUJqYUdGdVoyVWdkR2hsSUhacGMzVmhiQ0IwYUdWdFpTQnZaaUJLZFhCNWRHVnlUR0ZpWEc1aWVTQmphR0Z1WjJsdVp5QjBhR1Z6WlNCMllYSnBZV0pzWlhNdVhHNWNiazFoYm5rZ2RtRnlhV0ZpYkdWeklHRndjR1ZoY2lCcGJpQmhiaUJ2Y21SbGNtVmtJSE5sY1hWbGJtTmxJQ2d3TERFc01pd3pLUzRnVkdobGMyVWdjMlZ4ZFdWdVkyVnpYRzVoY21VZ1pHVnphV2R1WldRZ2RHOGdkMjl5YXlCM1pXeHNJSFJ2WjJWMGFHVnlMQ0J6YnlCbWIzSWdaWGhoYlhCc1pTd2dZQzB0YW5BdFltOXlaR1Z5TFdOdmJHOXlNV0FnYzJodmRXeGtYRzVpWlNCMWMyVmtJSGRwZEdnZ1lDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1XQXVJRlJvWlNCdWRXMWlaWEp6SUdoaGRtVWdkR2hsSUdadmJHeHZkMmx1WnlCdFpXRnVhVzVuY3pwY2JseHVLaUF3T2lCemRYQmxjaTF3Y21sdFlYSjVMQ0J5WlhObGNuWmxaQ0JtYjNJZ2MzQmxZMmxoYkNCbGJYQm9ZWE5wYzF4dUtpQXhPaUJ3Y21sdFlYSjVMQ0J0YjNOMElHbHRjRzl5ZEdGdWRDQjFibVJsY2lCdWIzSnRZV3dnYzJsMGRXRjBhVzl1YzF4dUtpQXlPaUJ6WldOdmJtUmhjbmtzSUc1bGVIUWdiVzl6ZENCcGJYQnZjblJoYm5RZ2RXNWtaWElnYm05eWJXRnNJSE5wZEhWaGRHbHZibk5jYmlvZ016b2dkR1Z5ZEdsaGNua3NJRzVsZUhRZ2JXOXpkQ0JwYlhCdmNuUmhiblFnZFc1a1pYSWdibTl5YldGc0lITnBkSFZoZEdsdmJuTmNibHh1VkdoeWIzVm5hRzkxZENCS2RYQjVkR1Z5VEdGaUxDQjNaU0JoY21VZ2JXOXpkR3g1SUdadmJHeHZkMmx1WnlCd2NtbHVZMmx3YkdWeklHWnliMjBnUjI5dloyeGxKM05jYmsxaGRHVnlhV0ZzSUVSbGMybG5iaUIzYUdWdUlITmxiR1ZqZEdsdVp5QmpiMnh2Y25NdUlGZGxJR0Z5WlNCdWIzUXNJR2h2ZDJWMlpYSXNJR1p2Ykd4dmQybHVaMXh1WVd4c0lHOW1JRTFFSUdGeklHbDBJR2x6SUc1dmRDQnZjSFJwYldsNlpXUWdabTl5SUdSbGJuTmxMQ0JwYm1admNtMWhkR2x2YmlCeWFXTm9JRlZKY3k1Y2Jpb3ZYRzVjYmx4dUx5cGNiaUFxSUU5d2RHbHZibUZzSUcxdmJtOXpjR0ZqWlNCbWIyNTBJR1p2Y2lCcGJuQjFkQzl2ZFhSd2RYUWdjSEp2YlhCMExseHVJQ292WEc0Z0x5b2dRMjl0YldWdWRHVmtJRzkxZENCcGJpQnBjSGwzYVdSblpYUnpJSE5wYm1ObElIZGxJR1J2YmlkMElHNWxaV1FnYVhRdUlDb3ZYRzR2S2lCQWFXMXdiM0owSUhWeWJDZ25hSFIwY0hNNkx5OW1iMjUwY3k1bmIyOW5iR1ZoY0dsekxtTnZiUzlqYzNNL1ptRnRhV3g1UFZKdlltOTBieXROYjI1dkp5azdJQ292WEc1Y2JpOHFYRzRnS2lCQlpHUmxaQ0JtYjNJZ1kyOXRjR0ZpYVhScGJHbDBlU0IzYVhSb0lHOTFkSEIxZENCaGNtVmhYRzRnS2k5Y2JqcHliMjkwSUh0Y2JpQWdMUzFxY0MxcFkyOXVMWE5sWVhKamFEb2dibTl1WlR0Y2JpQWdMUzFxY0MxMWFTMXpaV3hsWTNRdFkyRnlaWFE2SUc1dmJtVTdYRzU5WEc1Y2JseHVPbkp2YjNRZ2UxeHVYRzRnSUM4cUlFSnZjbVJsY25OY2JseHVJQ0JVYUdVZ1ptOXNiRzkzYVc1bklIWmhjbWxoWW14bGN5d2djM0JsWTJsbWVTQjBhR1VnZG1semRXRnNJSE4wZVd4cGJtY2diMllnWW05eVpHVnljeUJwYmlCS2RYQjVkR1Z5VEdGaUxseHVJQ0FnS2k5Y2JseHVJQ0F0TFdwd0xXSnZjbVJsY2kxM2FXUjBhRG9nTVhCNE8xeHVJQ0F0TFdwd0xXSnZjbVJsY2kxamIyeHZjakE2SUhaaGNpZ3RMVzFrTFdkeVpYa3ROekF3S1R0Y2JpQWdMUzFxY0MxaWIzSmtaWEl0WTI5c2IzSXhPaUIyWVhJb0xTMXRaQzFuY21WNUxUVXdNQ2s3WEc0Z0lDMHRhbkF0WW05eVpHVnlMV052Ykc5eU1qb2dkbUZ5S0MwdGJXUXRaM0psZVMwek1EQXBPMXh1SUNBdExXcHdMV0p2Y21SbGNpMWpiMnh2Y2pNNklIWmhjaWd0TFcxa0xXZHlaWGt0TVRBd0tUdGNibHh1SUNBdktpQlZTU0JHYjI1MGMxeHVYRzRnSUZSb1pTQlZTU0JtYjI1MElFTlRVeUIyWVhKcFlXSnNaWE1nWVhKbElIVnpaV1FnWm05eUlIUm9aU0IwZVhCdlozSmhjR2g1SUdGc2JDQnZaaUIwYUdVZ1NuVndlWFJsY2t4aFlseHVJQ0IxYzJWeUlHbHVkR1Z5Wm1GalpTQmxiR1Z0Wlc1MGN5QjBhR0YwSUdGeVpTQnViM1FnWkdseVpXTjBiSGtnZFhObGNpQm5aVzVsY21GMFpXUWdZMjl1ZEdWdWRDNWNiaUFnS2k5Y2JseHVJQ0F0TFdwd0xYVnBMV1p2Ym5RdGMyTmhiR1V0Wm1GamRHOXlPaUF4TGpJN1hHNGdJQzB0YW5BdGRXa3RabTl1ZEMxemFYcGxNRG9nWTJGc1l5aDJZWElvTFMxcWNDMTFhUzFtYjI1MExYTnBlbVV4S1M5MllYSW9MUzFxY0MxMWFTMW1iMjUwTFhOallXeGxMV1poWTNSdmNpa3BPMXh1SUNBdExXcHdMWFZwTFdadmJuUXRjMmw2WlRFNklERXpjSGc3SUM4cUlFSmhjMlVnWm05dWRDQnphWHBsSUNvdlhHNGdJQzB0YW5BdGRXa3RabTl1ZEMxemFYcGxNam9nWTJGc1l5aDJZWElvTFMxcWNDMTFhUzFtYjI1MExYTnBlbVV4S1NwMllYSW9MUzFxY0MxMWFTMW1iMjUwTFhOallXeGxMV1poWTNSdmNpa3BPMXh1SUNBdExXcHdMWFZwTFdadmJuUXRjMmw2WlRNNklHTmhiR01vZG1GeUtDMHRhbkF0ZFdrdFptOXVkQzF6YVhwbE1pa3FkbUZ5S0MwdGFuQXRkV2t0Wm05dWRDMXpZMkZzWlMxbVlXTjBiM0lwS1R0Y2JpQWdMUzFxY0MxMWFTMXBZMjl1TFdadmJuUXRjMmw2WlRvZ01UUndlRHNnTHlvZ1JXNXpkWEpsY3lCd2VDQndaWEptWldOMElFWnZiblJCZDJWemIyMWxJR2xqYjI1eklDb3ZYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMW1ZVzFwYkhrNklGd2lTR1ZzZG1WMGFXTmhJRTVsZFdWY0lpd2dTR1ZzZG1WMGFXTmhMQ0JCY21saGJDd2djMkZ1Y3kxelpYSnBaanRjYmx4dUlDQXZLaUJWYzJVZ2RHaGxjMlVnWm05dWRDQmpiMnh2Y25NZ1lXZGhhVzV6ZENCMGFHVWdZMjl5Y21WemNHOXVaR2x1WnlCdFlXbHVJR3hoZVc5MWRDQmpiMnh2Y25NdVhHNGdJQ0FnSUVsdUlHRWdiR2xuYUhRZ2RHaGxiV1VzSUhSb1pYTmxJR2R2SUdaeWIyMGdaR0Z5YXlCMGJ5QnNhV2RvZEM1Y2JpQWdLaTljYmx4dUlDQXRMV3B3TFhWcExXWnZiblF0WTI5c2IzSXdPaUJ5WjJKaEtEQXNNQ3d3TERFdU1DazdYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMWpiMnh2Y2pFNklISm5ZbUVvTUN3d0xEQXNNQzQ0S1R0Y2JpQWdMUzFxY0MxMWFTMW1iMjUwTFdOdmJHOXlNam9nY21kaVlTZ3dMREFzTUN3d0xqVXBPMXh1SUNBdExXcHdMWFZwTFdadmJuUXRZMjlzYjNJek9pQnlaMkpoS0RBc01Dd3dMREF1TXlrN1hHNWNiaUFnTHlvZ1ZYTmxJSFJvWlhObElHRm5ZV2x1YzNRZ2RHaGxJR0p5WVc1a0wyRmpZMlZ1ZEM5M1lYSnVMMlZ5Y205eUlHTnZiRzl5Y3k1Y2JpQWdJQ0FnVkdobGMyVWdkMmxzYkNCMGVYQnBZMkZzYkhrZ1oyOGdabkp2YlNCc2FXZG9kQ0IwYnlCa1lYSnJaWElzSUdsdUlHSnZkR2dnWVNCa1lYSnJJR0Z1WkNCc2FXZG9kQ0IwYUdWdFpWeHVJQ0FnS2k5Y2JseHVJQ0F0TFdwd0xXbHVkbVZ5YzJVdGRXa3RabTl1ZEMxamIyeHZjakE2SUhKblltRW9NalUxTERJMU5Td3lOVFVzTVNrN1hHNGdJQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNVG9nY21kaVlTZ3lOVFVzTWpVMUxESTFOU3d4TGpBcE8xeHVJQ0F0TFdwd0xXbHVkbVZ5YzJVdGRXa3RabTl1ZEMxamIyeHZjakk2SUhKblltRW9NalUxTERJMU5Td3lOVFVzTUM0M0tUdGNiaUFnTFMxcWNDMXBiblpsY25ObExYVnBMV1p2Ym5RdFkyOXNiM0l6T2lCeVoySmhLREkxTlN3eU5UVXNNalUxTERBdU5TazdYRzVjYmlBZ0x5b2dRMjl1ZEdWdWRDQkdiMjUwYzF4dVhHNGdJRU52Ym5SbGJuUWdabTl1ZENCMllYSnBZV0pzWlhNZ1lYSmxJSFZ6WldRZ1ptOXlJSFI1Y0c5bmNtRndhSGtnYjJZZ2RYTmxjaUJuWlc1bGNtRjBaV1FnWTI5dWRHVnVkQzVjYmlBZ0tpOWNibHh1SUNBdExXcHdMV052Ym5SbGJuUXRabTl1ZEMxemFYcGxPaUF4TTNCNE8xeHVJQ0F0TFdwd0xXTnZiblJsYm5RdGJHbHVaUzFvWldsbmFIUTZJREV1TlR0Y2JpQWdMUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJd09pQmliR0ZqYXp0Y2JpQWdMUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJeE9pQmliR0ZqYXp0Y2JpQWdMUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJeU9pQjJZWElvTFMxdFpDMW5jbVY1TFRjd01DazdYRzRnSUMwdGFuQXRZMjl1ZEdWdWRDMW1iMjUwTFdOdmJHOXlNem9nZG1GeUtDMHRiV1F0WjNKbGVTMDFNREFwTzF4dVhHNGdJQzB0YW5BdGRXa3RabTl1ZEMxelkyRnNaUzFtWVdOMGIzSTZJREV1TWp0Y2JpQWdMUzFxY0MxMWFTMW1iMjUwTFhOcGVtVXdPaUJqWVd4aktIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdGMybDZaVEVwTDNaaGNpZ3RMV3B3TFhWcExXWnZiblF0YzJOaGJHVXRabUZqZEc5eUtTazdYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMXphWHBsTVRvZ01UTndlRHNnTHlvZ1FtRnpaU0JtYjI1MElITnBlbVVnS2k5Y2JpQWdMUzFxY0MxMWFTMW1iMjUwTFhOcGVtVXlPaUJqWVd4aktIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdGMybDZaVEVwS25aaGNpZ3RMV3B3TFhWcExXWnZiblF0YzJOaGJHVXRabUZqZEc5eUtTazdYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMXphWHBsTXpvZ1kyRnNZeWgyWVhJb0xTMXFjQzExYVMxbWIyNTBMWE5wZW1VeUtTcDJZWElvTFMxcWNDMTFhUzFtYjI1MExYTmpZV3hsTFdaaFkzUnZjaWtwTzF4dVhHNGdJQzB0YW5BdFkyOWtaUzFtYjI1MExYTnBlbVU2SURFemNIZzdYRzRnSUMwdGFuQXRZMjlrWlMxc2FXNWxMV2hsYVdkb2REb2dNUzR6TURjN1hHNGdJQzB0YW5BdFkyOWtaUzF3WVdSa2FXNW5PaUExY0hnN1hHNGdJQzB0YW5BdFkyOWtaUzFtYjI1MExXWmhiV2xzZVRvZ2JXOXViM053WVdObE8xeHVYRzVjYmlBZ0x5b2dUR0Y1YjNWMFhHNWNiaUFnVkdobElHWnZiR3h2ZDJsdVp5QmhjbVVnZEdobElHMWhhVzRnYkdGNWIzVjBJR052Ykc5eWN5QjFjMlVnYVc0Z1NuVndlWFJsY2t4aFlpNGdTVzRnWVNCc2FXZG9kRnh1SUNCMGFHVnRaU0IwYUdWelpTQjNiM1ZzWkNCbmJ5Qm1jbTl0SUd4cFoyaDBJSFJ2SUdSaGNtc3VYRzRnSUNvdlhHNWNiaUFnTFMxcWNDMXNZWGx2ZFhRdFkyOXNiM0l3T2lCM2FHbDBaVHRjYmlBZ0xTMXFjQzFzWVhsdmRYUXRZMjlzYjNJeE9pQjNhR2wwWlR0Y2JpQWdMUzFxY0Mxc1lYbHZkWFF0WTI5c2IzSXlPaUIyWVhJb0xTMXRaQzFuY21WNUxUSXdNQ2s3WEc0Z0lDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU16b2dkbUZ5S0MwdGJXUXRaM0psZVMwME1EQXBPMXh1WEc0Z0lDOHFJRUp5WVc1a0wyRmpZMlZ1ZENBcUwxeHVYRzRnSUMwdGFuQXRZbkpoYm1RdFkyOXNiM0l3T2lCMllYSW9MUzF0WkMxaWJIVmxMVGN3TUNrN1hHNGdJQzB0YW5BdFluSmhibVF0WTI5c2IzSXhPaUIyWVhJb0xTMXRaQzFpYkhWbExUVXdNQ2s3WEc0Z0lDMHRhbkF0WW5KaGJtUXRZMjlzYjNJeU9pQjJZWElvTFMxdFpDMWliSFZsTFRNd01DazdYRzRnSUMwdGFuQXRZbkpoYm1RdFkyOXNiM0l6T2lCMllYSW9MUzF0WkMxaWJIVmxMVEV3TUNrN1hHNWNiaUFnTFMxcWNDMWhZMk5sYm5RdFkyOXNiM0l3T2lCMllYSW9MUzF0WkMxbmNtVmxiaTAzTURBcE8xeHVJQ0F0TFdwd0xXRmpZMlZ1ZEMxamIyeHZjakU2SUhaaGNpZ3RMVzFrTFdkeVpXVnVMVFV3TUNrN1hHNGdJQzB0YW5BdFlXTmpaVzUwTFdOdmJHOXlNam9nZG1GeUtDMHRiV1F0WjNKbFpXNHRNekF3S1R0Y2JpQWdMUzFxY0MxaFkyTmxiblF0WTI5c2IzSXpPaUIyWVhJb0xTMXRaQzFuY21WbGJpMHhNREFwTzF4dVhHNGdJQzhxSUZOMFlYUmxJR052Ykc5eWN5QW9kMkZ5Yml3Z1pYSnliM0lzSUhOMVkyTmxjM01zSUdsdVptOHBJQ292WEc1Y2JpQWdMUzFxY0MxM1lYSnVMV052Ykc5eU1Eb2dkbUZ5S0MwdGJXUXRiM0poYm1kbExUY3dNQ2s3WEc0Z0lDMHRhbkF0ZDJGeWJpMWpiMnh2Y2pFNklIWmhjaWd0TFcxa0xXOXlZVzVuWlMwMU1EQXBPMXh1SUNBdExXcHdMWGRoY200dFkyOXNiM0l5T2lCMllYSW9MUzF0WkMxdmNtRnVaMlV0TXpBd0tUdGNiaUFnTFMxcWNDMTNZWEp1TFdOdmJHOXlNem9nZG1GeUtDMHRiV1F0YjNKaGJtZGxMVEV3TUNrN1hHNWNiaUFnTFMxcWNDMWxjbkp2Y2kxamIyeHZjakE2SUhaaGNpZ3RMVzFrTFhKbFpDMDNNREFwTzF4dUlDQXRMV3B3TFdWeWNtOXlMV052Ykc5eU1Ub2dkbUZ5S0MwdGJXUXRjbVZrTFRVd01DazdYRzRnSUMwdGFuQXRaWEp5YjNJdFkyOXNiM0l5T2lCMllYSW9MUzF0WkMxeVpXUXRNekF3S1R0Y2JpQWdMUzFxY0MxbGNuSnZjaTFqYjJ4dmNqTTZJSFpoY2lndExXMWtMWEpsWkMweE1EQXBPMXh1WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqQTZJSFpoY2lndExXMWtMV2R5WldWdUxUY3dNQ2s3WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqRTZJSFpoY2lndExXMWtMV2R5WldWdUxUVXdNQ2s3WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqSTZJSFpoY2lndExXMWtMV2R5WldWdUxUTXdNQ2s3WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqTTZJSFpoY2lndExXMWtMV2R5WldWdUxURXdNQ2s3WEc1Y2JpQWdMUzFxY0MxcGJtWnZMV052Ykc5eU1Eb2dkbUZ5S0MwdGJXUXRZM2xoYmkwM01EQXBPMXh1SUNBdExXcHdMV2x1Wm04dFkyOXNiM0l4T2lCMllYSW9MUzF0WkMxamVXRnVMVFV3TUNrN1hHNGdJQzB0YW5BdGFXNW1ieTFqYjJ4dmNqSTZJSFpoY2lndExXMWtMV041WVc0dE16QXdLVHRjYmlBZ0xTMXFjQzFwYm1adkxXTnZiRzl5TXpvZ2RtRnlLQzB0YldRdFkzbGhiaTB4TURBcE8xeHVYRzRnSUM4cUlFTmxiR3dnYzNCbFkybG1hV01nYzNSNWJHVnpJQ292WEc1Y2JpQWdMUzFxY0MxalpXeHNMWEJoWkdScGJtYzZJRFZ3ZUR0Y2JpQWdMUzFxY0MxalpXeHNMV1ZrYVhSdmNpMWlZV05yWjNKdmRXNWtPaUFqWmpkbU4yWTNPMXh1SUNBdExXcHdMV05sYkd3dFpXUnBkRzl5TFdKdmNtUmxjaTFqYjJ4dmNqb2dJMk5tWTJaalpqdGNiaUFnTFMxcWNDMWpaV3hzTFdWa2FYUnZjaTFpWVdOclozSnZkVzVrTFdWa2FYUTZJSFpoY2lndExXcHdMWFZwTFd4aGVXOTFkQzFqYjJ4dmNqRXBPMXh1SUNBdExXcHdMV05sYkd3dFpXUnBkRzl5TFdKdmNtUmxjaTFqYjJ4dmNpMWxaR2wwT2lCMllYSW9MUzFxY0MxaWNtRnVaQzFqYjJ4dmNqRXBPMXh1SUNBdExXcHdMV05sYkd3dGNISnZiWEIwTFhkcFpIUm9PaUF4TURCd2VEdGNiaUFnTFMxcWNDMWpaV3hzTFhCeWIyMXdkQzFtYjI1MExXWmhiV2xzZVRvZ0oxSnZZbTkwYnlCTmIyNXZKeXdnYlc5dWIzTndZV05sTzF4dUlDQXRMV3B3TFdObGJHd3RjSEp2YlhCMExXeGxkSFJsY2kxemNHRmphVzVuT2lBd2NIZzdYRzRnSUMwdGFuQXRZMlZzYkMxd2NtOXRjSFF0YjNCaFkybDBlVG9nTVM0d08xeHVJQ0F0TFdwd0xXTmxiR3d0Y0hKdmJYQjBMVzl3WVdOcGRIa3RibTkwTFdGamRHbDJaVG9nTUM0ME8xeHVJQ0F0TFdwd0xXTmxiR3d0Y0hKdmJYQjBMV1p2Ym5RdFkyOXNiM0l0Ym05MExXRmpkR2wyWlRvZ2RtRnlLQzB0YldRdFozSmxlUzAzTURBcE8xeHVJQ0F2S2lCQklHTjFjM1J2YlNCaWJHVnVaQ0J2WmlCTlJDQm5jbVY1SUdGdVpDQmliSFZsSURZd01GeHVJQ0FnS2lCVFpXVWdhSFIwY0hNNkx5OXRaWGxsY25kbFlpNWpiMjB2WlhKcFl5OTBiMjlzY3k5amIyeHZjaTFpYkdWdVpDOGpOVFEyUlRkQk9qRkZPRGhGTlRvMU9taGxlQ0FxTDF4dUlDQXRMV3B3TFdObGJHd3RhVzV3Y205dGNIUXRabTl1ZEMxamIyeHZjam9nSXpNd04wWkRNVHRjYmlBZ0x5b2dRU0JqZFhOMGIyMGdZbXhsYm1RZ2IyWWdUVVFnWjNKbGVTQmhibVFnYjNKaGJtZGxJRFl3TUZ4dUlDQWdLaUJvZEhSd2N6b3ZMMjFsZVdWeWQyVmlMbU52YlM5bGNtbGpMM1J2YjJ4ekwyTnZiRzl5TFdKc1pXNWtMeU0xTkRaRk4wRTZSalExTVRGRk9qVTZhR1Y0SUNvdlhHNGdJQzB0YW5BdFkyVnNiQzF2ZFhSd2NtOXRjSFF0Wm05dWRDMWpiMnh2Y2pvZ0kwSkdOVUl6UkR0Y2JseHVJQ0F2S2lCT2IzUmxZbTl2YXlCemNHVmphV1pwWXlCemRIbHNaWE1nS2k5Y2JseHVJQ0F0TFdwd0xXNXZkR1ZpYjI5ckxYQmhaR1JwYm1jNklERXdjSGc3WEc0Z0lDMHRhbkF0Ym05MFpXSnZiMnN0YzJOeWIyeHNMWEJoWkdScGJtYzZJREV3TUhCNE8xeHVYRzRnSUM4cUlFTnZibk52YkdVZ2MzQmxZMmxtYVdNZ2MzUjViR1Z6SUNvdlhHNWNiaUFnTFMxcWNDMWpiMjV6YjJ4bExXSmhZMnRuY205MWJtUTZJSFpoY2lndExXMWtMV2R5WlhrdE1UQXdLVHRjYmx4dUlDQXZLaUJVYjI5c1ltRnlJSE53WldOcFptbGpJSE4wZVd4bGN5QXFMMXh1WEc0Z0lDMHRhbkF0ZEc5dmJHSmhjaTFpYjNKa1pYSXRZMjlzYjNJNklIWmhjaWd0TFcxa0xXZHlaWGt0TkRBd0tUdGNiaUFnTFMxcWNDMTBiMjlzWW1GeUxXMXBZM0p2TFdobGFXZG9kRG9nT0hCNE8xeHVJQ0F0TFdwd0xYUnZiMnhpWVhJdFltRmphMmR5YjNWdVpEb2dkbUZ5S0MwdGFuQXRiR0Y1YjNWMExXTnZiRzl5TUNrN1hHNGdJQzB0YW5BdGRHOXZiR0poY2kxaWIzZ3RjMmhoWkc5M09pQXdjSGdnTUhCNElESndlQ0F3Y0hnZ2NtZGlZU2d3TERBc01Dd3dMakkwS1R0Y2JpQWdMUzFxY0MxMGIyOXNZbUZ5TFdobFlXUmxjaTF0WVhKbmFXNDZJRFJ3ZUNBMGNIZ2dNSEI0SURSd2VEdGNiaUFnTFMxcWNDMTBiMjlzWW1GeUxXRmpkR2wyWlMxaVlXTnJaM0p2ZFc1a09pQjJZWElvTFMxdFpDMW5jbVY1TFRNd01DazdYRzU5WEc0aUxDSXZLaXBjYmlBcUlGUm9aU0J0WVhSbGNtbGhiQ0JrWlhOcFoyNGdZMjlzYjNKeklHRnlaU0JoWkdGd2RHVmtJR1p5YjIwZ1oyOXZaMnhsTFcxaGRHVnlhV0ZzTFdOdmJHOXlJSFl4TGpJdU5seHVJQ29nYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDJSaGJteGxkbUZ1TDJkdmIyZHNaUzF0WVhSbGNtbGhiQzFqYjJ4dmNseHVJQ29nYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDJSaGJteGxkbUZ1TDJkdmIyZHNaUzF0WVhSbGNtbGhiQzFqYjJ4dmNpOWliRzlpTDJZMk4yTmhOV1kwTURJNFlqSm1NV0l6TkRnMk1tWTJOR0l3WTJFMk56TXlNMlk1TVdJd09EZ3ZaR2x6ZEM5d1lXeGxkSFJsTG5aaGNpNWpjM05jYmlBcVhHNGdLaUJVYUdVZ2JHbGpaVzV6WlNCbWIzSWdkR2hsSUcxaGRHVnlhV0ZzSUdSbGMybG5iaUJqYjJ4dmNpQkRVMU1nZG1GeWFXRmliR1Z6SUdseklHRnpJR1p2Ykd4dmQzTWdLSE5sWlZ4dUlDb2dhSFIwY0hNNkx5OW5hWFJvZFdJdVkyOXRMMlJoYm14bGRtRnVMMmR2YjJkc1pTMXRZWFJsY21saGJDMWpiMnh2Y2k5aWJHOWlMMlkyTjJOaE5XWTBNREk0WWpKbU1XSXpORGcyTW1ZMk5HSXdZMkUyTnpNeU0yWTVNV0l3T0RndlRFbERSVTVUUlNsY2JpQXFYRzRnS2lCVWFHVWdUVWxVSUV4cFkyVnVjMlVnS0UxSlZDbGNiaUFxWEc0Z0tpQkRiM0I1Y21sbmFIUWdLR01wSURJd01UUWdSR0Z1SUV4bElGWmhibHh1SUNwY2JpQXFJRkJsY20xcGMzTnBiMjRnYVhNZ2FHVnlaV0o1SUdkeVlXNTBaV1FzSUdaeVpXVWdiMllnWTJoaGNtZGxMQ0IwYnlCaGJua2djR1Z5YzI5dUlHOWlkR0ZwYm1sdVp5QmhJR052Y0hsY2JpQXFJRzltSUhSb2FYTWdjMjltZEhkaGNtVWdZVzVrSUdGemMyOWphV0YwWldRZ1pHOWpkVzFsYm5SaGRHbHZiaUJtYVd4bGN5QW9kR2hsSUZ3aVUyOW1kSGRoY21WY0lpa3NJSFJ2SUdSbFlXeGNiaUFxSUdsdUlIUm9aU0JUYjJaMGQyRnlaU0IzYVhSb2IzVjBJSEpsYzNSeWFXTjBhVzl1TENCcGJtTnNkV1JwYm1jZ2QybDBhRzkxZENCc2FXMXBkR0YwYVc5dUlIUm9aU0J5YVdkb2RITmNiaUFxSUhSdklIVnpaU3dnWTI5d2VTd2diVzlrYVdaNUxDQnRaWEpuWlN3Z2NIVmliR2x6YUN3Z1pHbHpkSEpwWW5WMFpTd2djM1ZpYkdsalpXNXpaU3dnWVc1a0wyOXlJSE5sYkd4Y2JpQXFJR052Y0dsbGN5QnZaaUIwYUdVZ1UyOW1kSGRoY21Vc0lHRnVaQ0IwYnlCd1pYSnRhWFFnY0dWeWMyOXVjeUIwYnlCM2FHOXRJSFJvWlNCVGIyWjBkMkZ5WlNCcGMxeHVJQ29nWm5WeWJtbHphR1ZrSUhSdklHUnZJSE52TENCemRXSnFaV04wSUhSdklIUm9aU0JtYjJ4c2IzZHBibWNnWTI5dVpHbDBhVzl1Y3pwY2JpQXFYRzRnS2lCVWFHVWdZV0p2ZG1VZ1kyOXdlWEpwWjJoMElHNXZkR2xqWlNCaGJtUWdkR2hwY3lCd1pYSnRhWE56YVc5dUlHNXZkR2xqWlNCemFHRnNiQ0JpWlNCcGJtTnNkV1JsWkNCcGJseHVJQ29nWVd4c0lHTnZjR2xsY3lCdmNpQnpkV0p6ZEdGdWRHbGhiQ0J3YjNKMGFXOXVjeUJ2WmlCMGFHVWdVMjltZEhkaGNtVXVYRzRnS2x4dUlDb2dWRWhGSUZOUFJsUlhRVkpGSUVsVElGQlNUMVpKUkVWRUlGd2lRVk1nU1ZOY0lpd2dWMGxVU0U5VlZDQlhRVkpTUVU1VVdTQlBSaUJCVGxrZ1MwbE9SQ3dnUlZoUVVrVlRVeUJQVWx4dUlDb2dTVTFRVEVsRlJDd2dTVTVEVEZWRVNVNUhJRUpWVkNCT1QxUWdURWxOU1ZSRlJDQlVUeUJVU0VVZ1YwRlNVa0ZPVkVsRlV5QlBSaUJOUlZKRFNFRk9WRUZDU1V4SlZGa3NYRzRnS2lCR1NWUk9SVk5USUVaUFVpQkJJRkJCVWxSSlExVk1RVklnVUZWU1VFOVRSU0JCVGtRZ1RrOU9TVTVHVWtsT1IwVk5SVTVVTGlCSlRpQk9UeUJGVmtWT1ZDQlRTRUZNVENCVVNFVmNiaUFxSUVGVlZFaFBVbE1nVDFJZ1EwOVFXVkpKUjBoVUlFaFBURVJGVWxNZ1FrVWdURWxCUWt4RklFWlBVaUJCVGxrZ1EweEJTVTBzSUVSQlRVRkhSVk1nVDFJZ1QxUklSVkpjYmlBcUlFeEpRVUpKVEVsVVdTd2dWMGhGVkVoRlVpQkpUaUJCVGlCQlExUkpUMDRnVDBZZ1EwOU9WRkpCUTFRc0lGUlBVbFFnVDFJZ1QxUklSVkpYU1ZORkxDQkJVa2xUU1U1SElFWlNUMDBzWEc0Z0tpQlBWVlFnVDBZZ1QxSWdTVTRnUTA5T1RrVkRWRWxQVGlCWFNWUklJRlJJUlNCVFQwWlVWMEZTUlNCUFVpQlVTRVVnVlZORklFOVNJRTlVU0VWU0lFUkZRVXhKVGtkVElFbE9JRlJJUlZ4dUlDb2dVMDlHVkZkQlVrVXVYRzRnS2k5Y2JqcHliMjkwSUh0Y2JpQWdMUzF0WkMxeVpXUXROVEE2SUNOR1JrVkNSVVU3WEc0Z0lDMHRiV1F0Y21Wa0xURXdNRG9nSTBaR1EwUkVNanRjYmlBZ0xTMXRaQzF5WldRdE1qQXdPaUFqUlVZNVFUbEJPMXh1SUNBdExXMWtMWEpsWkMwek1EQTZJQ05GTlRjek56TTdYRzRnSUMwdGJXUXRjbVZrTFRRd01Eb2dJMFZHTlRNMU1EdGNiaUFnTFMxdFpDMXlaV1F0TlRBd09pQWpSalEwTXpNMk8xeHVJQ0F0TFcxa0xYSmxaQzAyTURBNklDTkZOVE01TXpVN1hHNGdJQzB0YldRdGNtVmtMVGN3TURvZ0kwUXpNa1l5Ump0Y2JpQWdMUzF0WkMxeVpXUXRPREF3T2lBalF6WXlPREk0TzF4dUlDQXRMVzFrTFhKbFpDMDVNREE2SUNOQ056RkRNVU03WEc0Z0lDMHRiV1F0Y21Wa0xVRXhNREE2SUNOR1JqaEJPREE3WEc0Z0lDMHRiV1F0Y21Wa0xVRXlNREE2SUNOR1JqVXlOVEk3WEc0Z0lDMHRiV1F0Y21Wa0xVRTBNREE2SUNOR1JqRTNORFE3WEc0Z0lDMHRiV1F0Y21Wa0xVRTNNREE2SUNORU5UQXdNREE3WEc1Y2JpQWdMUzF0WkMxd2FXNXJMVFV3T2lBalJrTkZORVZETzF4dUlDQXRMVzFrTFhCcGJtc3RNVEF3T2lBalJqaENRa1F3TzF4dUlDQXRMVzFrTFhCcGJtc3RNakF3T2lBalJqUTRSa0l4TzF4dUlDQXRMVzFrTFhCcGJtc3RNekF3T2lBalJqQTJNamt5TzF4dUlDQXRMVzFrTFhCcGJtc3ROREF3T2lBalJVTTBNRGRCTzF4dUlDQXRMVzFrTFhCcGJtc3ROVEF3T2lBalJUa3hSVFl6TzF4dUlDQXRMVzFrTFhCcGJtc3ROakF3T2lBalJEZ3hRall3TzF4dUlDQXRMVzFrTFhCcGJtc3ROekF3T2lBalF6SXhPRFZDTzF4dUlDQXRMVzFrTFhCcGJtc3RPREF3T2lBalFVUXhORFUzTzF4dUlDQXRMVzFrTFhCcGJtc3RPVEF3T2lBak9EZ3dSVFJHTzF4dUlDQXRMVzFrTFhCcGJtc3RRVEV3TURvZ0kwWkdPREJCUWp0Y2JpQWdMUzF0WkMxd2FXNXJMVUV5TURBNklDTkdSalF3T0RFN1hHNGdJQzB0YldRdGNHbHVheTFCTkRBd09pQWpSalV3TURVM08xeHVJQ0F0TFcxa0xYQnBibXN0UVRjd01Eb2dJME0xTVRFMk1qdGNibHh1SUNBdExXMWtMWEIxY25Cc1pTMDFNRG9nSTBZelJUVkdOVHRjYmlBZ0xTMXRaQzF3ZFhKd2JHVXRNVEF3T2lBalJURkNSVVUzTzF4dUlDQXRMVzFrTFhCMWNuQnNaUzB5TURBNklDTkRSVGt6UkRnN1hHNGdJQzB0YldRdGNIVnljR3hsTFRNd01Eb2dJMEpCTmpoRE9EdGNiaUFnTFMxdFpDMXdkWEp3YkdVdE5EQXdPaUFqUVVJME4wSkRPMXh1SUNBdExXMWtMWEIxY25Cc1pTMDFNREE2SUNNNVF6STNRakE3WEc0Z0lDMHRiV1F0Y0hWeWNHeGxMVFl3TURvZ0l6aEZNalJCUVR0Y2JpQWdMUzF0WkMxd2RYSndiR1V0TnpBd09pQWpOMEl4UmtFeU8xeHVJQ0F0TFcxa0xYQjFjbkJzWlMwNE1EQTZJQ00yUVRGQ09VRTdYRzRnSUMwdGJXUXRjSFZ5Y0d4bExUa3dNRG9nSXpSQk1UUTRRenRjYmlBZ0xTMXRaQzF3ZFhKd2JHVXRRVEV3TURvZ0kwVkJPREJHUXp0Y2JpQWdMUzF0WkMxd2RYSndiR1V0UVRJd01Eb2dJMFV3TkRCR1FqdGNiaUFnTFMxdFpDMXdkWEp3YkdVdFFUUXdNRG9nSTBRMU1EQkdPVHRjYmlBZ0xTMXRaQzF3ZFhKd2JHVXRRVGN3TURvZ0kwRkJNREJHUmp0Y2JseHVJQ0F0TFcxa0xXUmxaWEF0Y0hWeWNHeGxMVFV3T2lBalJVUkZOMFkyTzF4dUlDQXRMVzFrTFdSbFpYQXRjSFZ5Y0d4bExURXdNRG9nSTBReFF6UkZPVHRjYmlBZ0xTMXRaQzFrWldWd0xYQjFjbkJzWlMweU1EQTZJQ05DTXpsRVJFSTdYRzRnSUMwdGJXUXRaR1ZsY0Mxd2RYSndiR1V0TXpBd09pQWpPVFUzTlVORU8xeHVJQ0F0TFcxa0xXUmxaWEF0Y0hWeWNHeGxMVFF3TURvZ0l6ZEZOVGRETWp0Y2JpQWdMUzF0WkMxa1pXVndMWEIxY25Cc1pTMDFNREE2SUNNMk56TkJRamM3WEc0Z0lDMHRiV1F0WkdWbGNDMXdkWEp3YkdVdE5qQXdPaUFqTlVVek5VSXhPMXh1SUNBdExXMWtMV1JsWlhBdGNIVnljR3hsTFRjd01Eb2dJelV4TWtSQk9EdGNiaUFnTFMxdFpDMWtaV1Z3TFhCMWNuQnNaUzA0TURBNklDTTBOVEkzUVRBN1hHNGdJQzB0YldRdFpHVmxjQzF3ZFhKd2JHVXRPVEF3T2lBak16RXhRamt5TzF4dUlDQXRMVzFrTFdSbFpYQXRjSFZ5Y0d4bExVRXhNREE2SUNOQ016ZzRSa1k3WEc0Z0lDMHRiV1F0WkdWbGNDMXdkWEp3YkdVdFFUSXdNRG9nSXpkRE5FUkdSanRjYmlBZ0xTMXRaQzFrWldWd0xYQjFjbkJzWlMxQk5EQXdPaUFqTmpVeFJrWkdPMXh1SUNBdExXMWtMV1JsWlhBdGNIVnljR3hsTFVFM01EQTZJQ00yTWpBd1JVRTdYRzVjYmlBZ0xTMXRaQzFwYm1ScFoyOHROVEE2SUNORk9FVkJSalk3WEc0Z0lDMHRiV1F0YVc1a2FXZHZMVEV3TURvZ0kwTTFRMEZGT1R0Y2JpQWdMUzF0WkMxcGJtUnBaMjh0TWpBd09pQWpPVVpCT0VSQk8xeHVJQ0F0TFcxa0xXbHVaR2xuYnkwek1EQTZJQ00zT1RnMlEwSTdYRzRnSUMwdGJXUXRhVzVrYVdkdkxUUXdNRG9nSXpWRE5rSkRNRHRjYmlBZ0xTMXRaQzFwYm1ScFoyOHROVEF3T2lBak0wWTFNVUkxTzF4dUlDQXRMVzFrTFdsdVpHbG5ieTAyTURBNklDTXpPVFE1UVVJN1hHNGdJQzB0YldRdGFXNWthV2R2TFRjd01Eb2dJek13TTBZNVJqdGNiaUFnTFMxdFpDMXBibVJwWjI4dE9EQXdPaUFqTWpnek5Ua3pPMXh1SUNBdExXMWtMV2x1WkdsbmJ5MDVNREE2SUNNeFFUSXpOMFU3WEc0Z0lDMHRiV1F0YVc1a2FXZHZMVUV4TURBNklDTTRRemxGUmtZN1hHNGdJQzB0YldRdGFXNWthV2R2TFVFeU1EQTZJQ00xTXpaRVJrVTdYRzRnSUMwdGJXUXRhVzVrYVdkdkxVRTBNREE2SUNNelJEVkJSa1U3WEc0Z0lDMHRiV1F0YVc1a2FXZHZMVUUzTURBNklDTXpNRFJHUmtVN1hHNWNiaUFnTFMxdFpDMWliSFZsTFRVd09pQWpSVE5HTWtaRU8xeHVJQ0F0TFcxa0xXSnNkV1V0TVRBd09pQWpRa0pFUlVaQ08xeHVJQ0F0TFcxa0xXSnNkV1V0TWpBd09pQWpPVEJEUVVZNU8xeHVJQ0F0TFcxa0xXSnNkV1V0TXpBd09pQWpOalJDTlVZMk8xeHVJQ0F0TFcxa0xXSnNkV1V0TkRBd09pQWpOREpCTlVZMU8xeHVJQ0F0TFcxa0xXSnNkV1V0TlRBd09pQWpNakU1TmtZek8xeHVJQ0F0TFcxa0xXSnNkV1V0TmpBd09pQWpNVVU0T0VVMU8xeHVJQ0F0TFcxa0xXSnNkV1V0TnpBd09pQWpNVGszTmtReU8xeHVJQ0F0TFcxa0xXSnNkV1V0T0RBd09pQWpNVFUyTlVNd08xeHVJQ0F0TFcxa0xXSnNkV1V0T1RBd09pQWpNRVEwTjBFeE8xeHVJQ0F0TFcxa0xXSnNkV1V0UVRFd01Eb2dJemd5UWpGR1JqdGNiaUFnTFMxdFpDMWliSFZsTFVFeU1EQTZJQ00wTkRoQlJrWTdYRzRnSUMwdGJXUXRZbXgxWlMxQk5EQXdPaUFqTWprM09VWkdPMXh1SUNBdExXMWtMV0pzZFdVdFFUY3dNRG9nSXpJNU5qSkdSanRjYmx4dUlDQXRMVzFrTFd4cFoyaDBMV0pzZFdVdE5UQTZJQ05GTVVZMVJrVTdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzB4TURBNklDTkNNMFUxUmtNN1hHNGdJQzB0YldRdGJHbG5hSFF0WW14MVpTMHlNREE2SUNNNE1VUTBSa0U3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMwek1EQTZJQ00wUmtNelJqYzdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzAwTURBNklDTXlPVUkyUmpZN1hHNGdJQzB0YldRdGJHbG5hSFF0WW14MVpTMDFNREE2SUNNd00wRTVSalE3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMwMk1EQTZJQ013TXpsQ1JUVTdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzAzTURBNklDTXdNamc0UkRFN1hHNGdJQzB0YldRdGJHbG5hSFF0WW14MVpTMDRNREE2SUNNd01qYzNRa1E3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMwNU1EQTZJQ013TVRVM09VSTdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzFCTVRBd09pQWpPREJFT0VaR08xeHVJQ0F0TFcxa0xXeHBaMmgwTFdKc2RXVXRRVEl3TURvZ0l6UXdRelJHUmp0Y2JpQWdMUzF0WkMxc2FXZG9kQzFpYkhWbExVRTBNREE2SUNNd01FSXdSa1k3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMxQk56QXdPaUFqTURBNU1VVkJPMXh1WEc0Z0lDMHRiV1F0WTNsaGJpMDFNRG9nSTBVd1JqZEdRVHRjYmlBZ0xTMXRaQzFqZVdGdUxURXdNRG9nSTBJeVJVSkdNanRjYmlBZ0xTMXRaQzFqZVdGdUxUSXdNRG9nSXpnd1JFVkZRVHRjYmlBZ0xTMXRaQzFqZVdGdUxUTXdNRG9nSXpSRVJEQkZNVHRjYmlBZ0xTMXRaQzFqZVdGdUxUUXdNRG9nSXpJMlF6WkVRVHRjYmlBZ0xTMXRaQzFqZVdGdUxUVXdNRG9nSXpBd1FrTkVORHRjYmlBZ0xTMXRaQzFqZVdGdUxUWXdNRG9nSXpBd1FVTkRNVHRjYmlBZ0xTMXRaQzFqZVdGdUxUY3dNRG9nSXpBd09UZEJOenRjYmlBZ0xTMXRaQzFqZVdGdUxUZ3dNRG9nSXpBd09ETTRSanRjYmlBZ0xTMXRaQzFqZVdGdUxUa3dNRG9nSXpBd05qQTJORHRjYmlBZ0xTMXRaQzFqZVdGdUxVRXhNREE2SUNNNE5FWkdSa1k3WEc0Z0lDMHRiV1F0WTNsaGJpMUJNakF3T2lBak1UaEdSa1pHTzF4dUlDQXRMVzFrTFdONVlXNHRRVFF3TURvZ0l6QXdSVFZHUmp0Y2JpQWdMUzF0WkMxamVXRnVMVUUzTURBNklDTXdNRUk0UkRRN1hHNWNiaUFnTFMxdFpDMTBaV0ZzTFRVd09pQWpSVEJHTWtZeE8xeHVJQ0F0TFcxa0xYUmxZV3d0TVRBd09pQWpRakpFUmtSQ08xeHVJQ0F0TFcxa0xYUmxZV3d0TWpBd09pQWpPREJEUWtNME8xeHVJQ0F0TFcxa0xYUmxZV3d0TXpBd09pQWpORVJDTmtGRE8xeHVJQ0F0TFcxa0xYUmxZV3d0TkRBd09pQWpNalpCTmpsQk8xeHVJQ0F0TFcxa0xYUmxZV3d0TlRBd09pQWpNREE1TmpnNE8xeHVJQ0F0TFcxa0xYUmxZV3d0TmpBd09pQWpNREE0T1RkQ08xeHVJQ0F0TFcxa0xYUmxZV3d0TnpBd09pQWpNREEzT1RaQ08xeHVJQ0F0TFcxa0xYUmxZV3d0T0RBd09pQWpNREEyT1RWRE8xeHVJQ0F0TFcxa0xYUmxZV3d0T1RBd09pQWpNREEwUkRRd08xeHVJQ0F0TFcxa0xYUmxZV3d0UVRFd01Eb2dJMEUzUmtaRlFqdGNiaUFnTFMxdFpDMTBaV0ZzTFVFeU1EQTZJQ00yTkVaR1JFRTdYRzRnSUMwdGJXUXRkR1ZoYkMxQk5EQXdPaUFqTVVSRk9VSTJPMXh1SUNBdExXMWtMWFJsWVd3dFFUY3dNRG9nSXpBd1FrWkJOVHRjYmx4dUlDQXRMVzFrTFdkeVpXVnVMVFV3T2lBalJUaEdOVVU1TzF4dUlDQXRMVzFrTFdkeVpXVnVMVEV3TURvZ0kwTTRSVFpET1R0Y2JpQWdMUzF0WkMxbmNtVmxiaTB5TURBNklDTkJOVVEyUVRjN1hHNGdJQzB0YldRdFozSmxaVzR0TXpBd09pQWpPREZETnpnME8xeHVJQ0F0TFcxa0xXZHlaV1Z1TFRRd01Eb2dJelkyUWtJMlFUdGNiaUFnTFMxdFpDMW5jbVZsYmkwMU1EQTZJQ00wUTBGR05UQTdYRzRnSUMwdGJXUXRaM0psWlc0dE5qQXdPaUFqTkROQk1EUTNPMXh1SUNBdExXMWtMV2R5WldWdUxUY3dNRG9nSXpNNE9FVXpRenRjYmlBZ0xTMXRaQzFuY21WbGJpMDRNREE2SUNNeVJUZEVNekk3WEc0Z0lDMHRiV1F0WjNKbFpXNHRPVEF3T2lBak1VSTFSVEl3TzF4dUlDQXRMVzFrTFdkeVpXVnVMVUV4TURBNklDTkNPVVkyUTBFN1hHNGdJQzB0YldRdFozSmxaVzR0UVRJd01Eb2dJelk1UmpCQlJUdGNiaUFnTFMxdFpDMW5jbVZsYmkxQk5EQXdPaUFqTURCRk5qYzJPMXh1SUNBdExXMWtMV2R5WldWdUxVRTNNREE2SUNNd01FTTROVE03WEc1Y2JpQWdMUzF0WkMxc2FXZG9kQzFuY21WbGJpMDFNRG9nSTBZeFJqaEZPVHRjYmlBZ0xTMXRaQzFzYVdkb2RDMW5jbVZsYmkweE1EQTZJQ05FUTBWRVF6ZzdYRzRnSUMwdGJXUXRiR2xuYUhRdFozSmxaVzR0TWpBd09pQWpRelZGTVVFMU8xeHVJQ0F0TFcxa0xXeHBaMmgwTFdkeVpXVnVMVE13TURvZ0kwRkZSRFU0TVR0Y2JpQWdMUzF0WkMxc2FXZG9kQzFuY21WbGJpMDBNREE2SUNNNVEwTkROalU3WEc0Z0lDMHRiV1F0YkdsbmFIUXRaM0psWlc0dE5UQXdPaUFqT0VKRE16UkJPMXh1SUNBdExXMWtMV3hwWjJoMExXZHlaV1Z1TFRZd01Eb2dJemREUWpNME1qdGNiaUFnTFMxdFpDMXNhV2RvZEMxbmNtVmxiaTAzTURBNklDTTJPRGxHTXpnN1hHNGdJQzB0YldRdGJHbG5hSFF0WjNKbFpXNHRPREF3T2lBak5UVTRRakpHTzF4dUlDQXRMVzFrTFd4cFoyaDBMV2R5WldWdUxUa3dNRG9nSXpNek5qa3hSVHRjYmlBZ0xTMXRaQzFzYVdkb2RDMW5jbVZsYmkxQk1UQXdPaUFqUTBOR1Jqa3dPMXh1SUNBdExXMWtMV3hwWjJoMExXZHlaV1Z1TFVFeU1EQTZJQ05DTWtaR05UazdYRzRnSUMwdGJXUXRiR2xuYUhRdFozSmxaVzR0UVRRd01Eb2dJemMyUmtZd016dGNiaUFnTFMxdFpDMXNhV2RvZEMxbmNtVmxiaTFCTnpBd09pQWpOalJFUkRFM08xeHVYRzRnSUMwdGJXUXRiR2x0WlMwMU1Eb2dJMFk1UmtKRk56dGNiaUFnTFMxdFpDMXNhVzFsTFRFd01Eb2dJMFl3UmpSRE16dGNiaUFnTFMxdFpDMXNhVzFsTFRJd01Eb2dJMFUyUlVVNVF6dGNiaUFnTFMxdFpDMXNhVzFsTFRNd01Eb2dJMFJEUlRjM05UdGNiaUFnTFMxdFpDMXNhVzFsTFRRd01Eb2dJMFEwUlRFMU56dGNiaUFnTFMxdFpDMXNhVzFsTFRVd01Eb2dJME5FUkVNek9UdGNiaUFnTFMxdFpDMXNhVzFsTFRZd01Eb2dJME13UTBFek16dGNiaUFnTFMxdFpDMXNhVzFsTFRjd01Eb2dJMEZHUWpReVFqdGNiaUFnTFMxdFpDMXNhVzFsTFRnd01Eb2dJemxGT1VReU5EdGNiaUFnTFMxdFpDMXNhVzFsTFRrd01Eb2dJemd5TnpjeE56dGNiaUFnTFMxdFpDMXNhVzFsTFVFeE1EQTZJQ05HTkVaR09ERTdYRzRnSUMwdGJXUXRiR2x0WlMxQk1qQXdPaUFqUlVWR1JqUXhPMXh1SUNBdExXMWtMV3hwYldVdFFUUXdNRG9nSTBNMlJrWXdNRHRjYmlBZ0xTMXRaQzFzYVcxbExVRTNNREE2SUNOQlJVVkJNREE3WEc1Y2JpQWdMUzF0WkMxNVpXeHNiM2N0TlRBNklDTkdSa1pFUlRjN1hHNGdJQzB0YldRdGVXVnNiRzkzTFRFd01Eb2dJMFpHUmpsRE5EdGNiaUFnTFMxdFpDMTVaV3hzYjNjdE1qQXdPaUFqUmtaR05UbEVPMXh1SUNBdExXMWtMWGxsYkd4dmR5MHpNREE2SUNOR1JrWXhOelk3WEc0Z0lDMHRiV1F0ZVdWc2JHOTNMVFF3TURvZ0kwWkdSVVUxT0R0Y2JpQWdMUzF0WkMxNVpXeHNiM2N0TlRBd09pQWpSa1pGUWpOQ08xeHVJQ0F0TFcxa0xYbGxiR3h2ZHkwMk1EQTZJQ05HUkVRNE16VTdYRzRnSUMwdGJXUXRlV1ZzYkc5M0xUY3dNRG9nSTBaQ1F6QXlSRHRjYmlBZ0xTMXRaQzE1Wld4c2IzY3RPREF3T2lBalJqbEJPREkxTzF4dUlDQXRMVzFrTFhsbGJHeHZkeTA1TURBNklDTkdOVGRHTVRjN1hHNGdJQzB0YldRdGVXVnNiRzkzTFVFeE1EQTZJQ05HUmtaR09FUTdYRzRnSUMwdGJXUXRlV1ZzYkc5M0xVRXlNREE2SUNOR1JrWkdNREE3WEc0Z0lDMHRiV1F0ZVdWc2JHOTNMVUUwTURBNklDTkdSa1ZCTURBN1hHNGdJQzB0YldRdGVXVnNiRzkzTFVFM01EQTZJQ05HUmtRMk1EQTdYRzVjYmlBZ0xTMXRaQzFoYldKbGNpMDFNRG9nSTBaR1JqaEZNVHRjYmlBZ0xTMXRaQzFoYldKbGNpMHhNREE2SUNOR1JrVkRRak03WEc0Z0lDMHRiV1F0WVcxaVpYSXRNakF3T2lBalJrWkZNRGd5TzF4dUlDQXRMVzFrTFdGdFltVnlMVE13TURvZ0kwWkdSRFUwUmp0Y2JpQWdMUzF0WkMxaGJXSmxjaTAwTURBNklDTkdSa05CTWpnN1hHNGdJQzB0YldRdFlXMWlaWEl0TlRBd09pQWpSa1pETVRBM08xeHVJQ0F0TFcxa0xXRnRZbVZ5TFRZd01Eb2dJMFpHUWpNd01EdGNiaUFnTFMxdFpDMWhiV0psY2kwM01EQTZJQ05HUmtFd01EQTdYRzRnSUMwdGJXUXRZVzFpWlhJdE9EQXdPaUFqUmtZNFJqQXdPMXh1SUNBdExXMWtMV0Z0WW1WeUxUa3dNRG9nSTBaR05rWXdNRHRjYmlBZ0xTMXRaQzFoYldKbGNpMUJNVEF3T2lBalJrWkZOVGRHTzF4dUlDQXRMVzFrTFdGdFltVnlMVUV5TURBNklDTkdSa1EzTkRBN1hHNGdJQzB0YldRdFlXMWlaWEl0UVRRd01Eb2dJMFpHUXpRd01EdGNiaUFnTFMxdFpDMWhiV0psY2kxQk56QXdPaUFqUmtaQlFqQXdPMXh1WEc0Z0lDMHRiV1F0YjNKaGJtZGxMVFV3T2lBalJrWkdNMFV3TzF4dUlDQXRMVzFrTFc5eVlXNW5aUzB4TURBNklDTkdSa1V3UWpJN1hHNGdJQzB0YldRdGIzSmhibWRsTFRJd01Eb2dJMFpHUTBNNE1EdGNiaUFnTFMxdFpDMXZjbUZ1WjJVdE16QXdPaUFqUmtaQ056UkVPMXh1SUNBdExXMWtMVzl5WVc1blpTMDBNREE2SUNOR1JrRTNNalk3WEc0Z0lDMHRiV1F0YjNKaGJtZGxMVFV3TURvZ0kwWkdPVGd3TUR0Y2JpQWdMUzF0WkMxdmNtRnVaMlV0TmpBd09pQWpSa0k0UXpBd08xeHVJQ0F0TFcxa0xXOXlZVzVuWlMwM01EQTZJQ05HTlRkRE1EQTdYRzRnSUMwdGJXUXRiM0poYm1kbExUZ3dNRG9nSTBWR05rTXdNRHRjYmlBZ0xTMXRaQzF2Y21GdVoyVXRPVEF3T2lBalJUWTFNVEF3TzF4dUlDQXRMVzFrTFc5eVlXNW5aUzFCTVRBd09pQWpSa1pFTVRnd08xeHVJQ0F0TFcxa0xXOXlZVzVuWlMxQk1qQXdPaUFqUmtaQlFqUXdPMXh1SUNBdExXMWtMVzl5WVc1blpTMUJOREF3T2lBalJrWTVNVEF3TzF4dUlDQXRMVzFrTFc5eVlXNW5aUzFCTnpBd09pQWpSa1kyUkRBd08xeHVYRzRnSUMwdGJXUXRaR1ZsY0MxdmNtRnVaMlV0TlRBNklDTkdRa1U1UlRjN1hHNGdJQzB0YldRdFpHVmxjQzF2Y21GdVoyVXRNVEF3T2lBalJrWkRRMEpETzF4dUlDQXRMVzFrTFdSbFpYQXRiM0poYm1kbExUSXdNRG9nSTBaR1FVSTVNVHRjYmlBZ0xTMXRaQzFrWldWd0xXOXlZVzVuWlMwek1EQTZJQ05HUmpoQk5qVTdYRzRnSUMwdGJXUXRaR1ZsY0MxdmNtRnVaMlV0TkRBd09pQWpSa1kzTURRek8xeHVJQ0F0TFcxa0xXUmxaWEF0YjNKaGJtZGxMVFV3TURvZ0kwWkdOVGN5TWp0Y2JpQWdMUzF0WkMxa1pXVndMVzl5WVc1blpTMDJNREE2SUNOR05EVXhNVVU3WEc0Z0lDMHRiV1F0WkdWbGNDMXZjbUZ1WjJVdE56QXdPaUFqUlRZMFFURTVPMXh1SUNBdExXMWtMV1JsWlhBdGIzSmhibWRsTFRnd01Eb2dJMFE0TkRNeE5UdGNiaUFnTFMxdFpDMWtaV1Z3TFc5eVlXNW5aUzA1TURBNklDTkNSak0yTUVNN1hHNGdJQzB0YldRdFpHVmxjQzF2Y21GdVoyVXRRVEV3TURvZ0kwWkdPVVU0TUR0Y2JpQWdMUzF0WkMxa1pXVndMVzl5WVc1blpTMUJNakF3T2lBalJrWTJSVFF3TzF4dUlDQXRMVzFrTFdSbFpYQXRiM0poYm1kbExVRTBNREE2SUNOR1JqTkVNREE3WEc0Z0lDMHRiV1F0WkdWbGNDMXZjbUZ1WjJVdFFUY3dNRG9nSTBSRU1rTXdNRHRjYmx4dUlDQXRMVzFrTFdKeWIzZHVMVFV3T2lBalJVWkZRa1U1TzF4dUlDQXRMVzFrTFdKeWIzZHVMVEV3TURvZ0kwUTNRME5ET0R0Y2JpQWdMUzF0WkMxaWNtOTNiaTB5TURBNklDTkNRMEZCUVRRN1hHNGdJQzB0YldRdFluSnZkMjR0TXpBd09pQWpRVEU0T0RkR08xeHVJQ0F0TFcxa0xXSnliM2R1TFRRd01Eb2dJemhFTmtVMk16dGNiaUFnTFMxdFpDMWljbTkzYmkwMU1EQTZJQ00zT1RVMU5EZzdYRzRnSUMwdGJXUXRZbkp2ZDI0dE5qQXdPaUFqTmtRMFF6UXhPMXh1SUNBdExXMWtMV0p5YjNkdUxUY3dNRG9nSXpWRU5EQXpOenRjYmlBZ0xTMXRaQzFpY205M2JpMDRNREE2SUNNMFJUTTBNa1U3WEc0Z0lDMHRiV1F0WW5KdmQyNHRPVEF3T2lBak0wVXlOekl6TzF4dVhHNGdJQzB0YldRdFozSmxlUzAxTURvZ0kwWkJSa0ZHUVR0Y2JpQWdMUzF0WkMxbmNtVjVMVEV3TURvZ0kwWTFSalZHTlR0Y2JpQWdMUzF0WkMxbmNtVjVMVEl3TURvZ0kwVkZSVVZGUlR0Y2JpQWdMUzF0WkMxbmNtVjVMVE13TURvZ0kwVXdSVEJGTUR0Y2JpQWdMUzF0WkMxbmNtVjVMVFF3TURvZ0kwSkVRa1JDUkR0Y2JpQWdMUzF0WkMxbmNtVjVMVFV3TURvZ0l6bEZPVVU1UlR0Y2JpQWdMUzF0WkMxbmNtVjVMVFl3TURvZ0l6YzFOelUzTlR0Y2JpQWdMUzF0WkMxbmNtVjVMVGN3TURvZ0l6WXhOakUyTVR0Y2JpQWdMUzF0WkMxbmNtVjVMVGd3TURvZ0l6UXlOREkwTWp0Y2JpQWdMUzF0WkMxbmNtVjVMVGt3TURvZ0l6SXhNakV5TVR0Y2JseHVJQ0F0TFcxa0xXSnNkV1V0WjNKbGVTMDFNRG9nSTBWRFJVWkdNVHRjYmlBZ0xTMXRaQzFpYkhWbExXZHlaWGt0TVRBd09pQWpRMFpFT0VSRE8xeHVJQ0F0TFcxa0xXSnNkV1V0WjNKbGVTMHlNREE2SUNOQ01FSkZRelU3WEc0Z0lDMHRiV1F0WW14MVpTMW5jbVY1TFRNd01Eb2dJemt3UVRSQlJUdGNiaUFnTFMxdFpDMWliSFZsTFdkeVpYa3ROREF3T2lBak56ZzVNRGxETzF4dUlDQXRMVzFrTFdKc2RXVXRaM0psZVMwMU1EQTZJQ00yTURkRU9FSTdYRzRnSUMwdGJXUXRZbXgxWlMxbmNtVjVMVFl3TURvZ0l6VTBOa1UzUVR0Y2JpQWdMUzF0WkMxaWJIVmxMV2R5WlhrdE56QXdPaUFqTkRVMVFUWTBPMXh1SUNBdExXMWtMV0pzZFdVdFozSmxlUzA0TURBNklDTXpOelEzTkVZN1hHNGdJQzB0YldRdFlteDFaUzFuY21WNUxUa3dNRG9nSXpJMk16SXpPRHRjYm4waUxDSXZLaUJEYjNCNWNtbG5hSFFnS0dNcElFcDFjSGwwWlhJZ1JHVjJaV3h2Y0cxbGJuUWdWR1ZoYlM1Y2JpQXFJRVJwYzNSeWFXSjFkR1ZrSUhWdVpHVnlJSFJvWlNCMFpYSnRjeUJ2WmlCMGFHVWdUVzlrYVdacFpXUWdRbE5FSUV4cFkyVnVjMlV1WEc0Z0tpOWNibHh1THlwY2JpQXFJRmRsSUdGemMzVnRaU0IwYUdGMElIUm9aU0JEVTFNZ2RtRnlhV0ZpYkdWeklHbHVYRzRnS2lCb2RIUndjem92TDJkcGRHaDFZaTVqYjIwdmFuVndlWFJsY214aFlpOXFkWEI1ZEdWeWJHRmlMMkpzYjJJdmJXRnpkR1Z5TDNOeVl5OWtaV1poZFd4MExYUm9aVzFsTDNaaGNtbGhZbXhsY3k1amMzTmNiaUFxSUdoaGRtVWdZbVZsYmlCa1pXWnBibVZrTGx4dUlDb3ZYRzVjYmtCcGJYQnZjblFnWENJdUwzQm9iM053YUc5eUxtTnpjMXdpTzF4dVhHNDZjbTl2ZENCN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxXTnZiRzl5T2lCMllYSW9MUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRiR0ZpWld3dFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WTI5c2IzSXBPMXh1SUNBZ0lDMHRhbkF0ZDJsa1oyVjBjeTF5WldGa2IzVjBMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXTnZiRzl5S1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdFptOXVkQzF6YVhwbE9pQjJZWElvTFMxcWNDMTFhUzFtYjI1MExYTnBlbVV4S1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGJXRnlaMmx1T2lBeWNIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRNklESTRjSGc3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFEb2dNekF3Y0hnN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxM2FXUjBhQzF6YUc5eWREb2dZMkZzWXloMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFDa2dMeUF5SUMwZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxdFlYSm5hVzRwS1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFhkcFpIUm9MWFJwYm5rNklHTmhiR01vZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdndGMyaHZjblFwSUM4Z01pQXRJSFpoY2lndExXcHdMWGRwWkdkbGRITXRiV0Z5WjJsdUtTazdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMXRZWEpuYVc0NklEUndlRHNnTHlvZ2JXRnlaMmx1SUdKbGRIZGxaVzRnYVc1c2FXNWxJR1ZzWlcxbGJuUnpJQ292WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFzWVdKbGJDMTNhV1IwYURvZ09EQndlRHRjYmlBZ0lDQXRMV3B3TFhkcFpHZGxkSE10WW05eVpHVnlMWGRwWkhSb09pQjJZWElvTFMxcWNDMWliM0prWlhJdGQybGtkR2dwTzF4dUlDQWdJQzB0YW5BdGQybGtaMlYwY3kxMlpYSjBhV05oYkMxb1pXbG5hSFE2SURJd01IQjRPMXh1SUNBZ0lDMHRhbkF0ZDJsa1oyVjBjeTFvYjNKcGVtOXVkR0ZzTFhSaFlpMW9aV2xuYUhRNklESTBjSGc3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdodmNtbDZiMjUwWVd3dGRHRmlMWGRwWkhSb09pQXhORFJ3ZUR0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGFHOXlhWHB2Ym5SaGJDMTBZV0l0ZEc5d0xXSnZjbVJsY2pvZ01uQjRPMXh1SUNBZ0lDMHRhbkF0ZDJsa1oyVjBjeTF3Y205bmNtVnpjeTEwYUdsamEyNWxjM002SURJd2NIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMV052Ym5SaGFXNWxjaTF3WVdSa2FXNW5PaUF4TlhCNE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxd1lXUmthVzVuT2lBMGNIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMWEpoWkdsdkxXbDBaVzB0YUdWcFoyaDBMV0ZrYW5WemRHMWxiblE2SURod2VEdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRjbUZrYVc4dGFYUmxiUzFvWldsbmFIUTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLU0F0SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Y21Ga2FXOHRhWFJsYlMxb1pXbG5hSFF0WVdScWRYTjBiV1Z1ZENrcE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56T2lBMGNIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWliM0prWlhJdGQybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WW05eVpHVnlMWGRwWkhSb0tUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXaGhibVJzWlMxemFYcGxPaUF4Tm5CNE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGFHRnVaR3hsTFdKdmNtUmxjaTFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRZbTl5WkdWeUxXTnZiRzl5TVNrN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxb1lXNWtiR1V0WW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1TazdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWhZM1JwZG1VdGFHRnVaR3hsTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzFpY21GdVpDMWpiMnh2Y2pFcE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXRaVzUxTFdsMFpXMHRhR1ZwWjJoME9pQXlOSEI0TzF4dUlDQWdJQzB0YW5BdGQybGtaMlYwY3kxa2NtOXdaRzkzYmkxaGNuSnZkem9nZFhKc0tGd2laR0YwWVRwcGJXRm5aUzl6ZG1jcmVHMXNPMkpoYzJVMk5DeFFSRGswWWxkM1oyUnRWbmxqTW14Mlltb3dhVTFUTkhkSmFVSnNZbTFPZGxwSGJIVmFlakJwWkZoU2JVeFVaMmxRZWpSTFVFTkZkRXhUUWtoYVZ6VnNZMjFHTUdJelNUWkpSVVpyWWpKS2JFbEZiSE5pU0ZaNlpFaEthR1JIT1hsSlJFVTFUR3BKZFUxVGQyZFZNVnBJU1VWV05HTkhPWGxrUTBKUllraFdia3hWYkhWSlF6Um5WVEZhU0VsR1dteGpiazV3WWpJME5rbEVXWFZOUkVGblVXNVdjR0pIVVdkTlEydG5TVU13ZEZCbmJ6aGpNMXB1U1VoYWJHTnVUbkJpTWpRNVNXcEZkVTFUU1dkaFYxRTVTV3Q0YUdWWFZubFlla1ZwU1Vob2RHSkhOWHBRVTBwdlpFaFNkMDlwT0haa00yUXpURzVqZWt4dE9YbGFlVGg1VFVSQmQwd3pUakphZVVsblpVY3hjMkp1VFRabFIzaHdZbTF6T1VsdGFEQmtTRUUyVEhrNU0yUXpZM1ZrZWsxMVlqTktia3g2UlRWUFZHdDJaVWQ0Y0dKdGMybEpTR2M1U1dwQ2QyVkRTV2RsVkRCcFRVaENORWxuYjBwSlNGcHdXbGhrUTJJelp6bEpha0ZuVFVOQmVFOURRWGhQUTBsbll6TlNOV0pIVlRsSmJWWjFXVmRLYzFwVE1XbFpWMDV5V2pOS2RtUlhOV3RQYlRWc1pIbEJkMGxFUVdkTlZHZG5UVlJuTjBscFFqUmlWM2MyWXpOQ2FGa3lWVGxKYmtKNVdsaE9iR051V214SmFqUkxVRWhPTUdWWGVHeEpTRkkxWTBkVk9VbHVVbXhsU0ZGMldUTk9la2xxTkV0RFV6VjZaRVJDTjFwdGJITmlSSEIxWWpJMWJFOHpNRXRRUXpsNlpFaHNjMXBVTkV0UVNFSm9aRWRuWjFwRU1HbFVWRlYxVFdsM01VeHFiRTFQVTNjMVRHcGtjMDE1TkRSTVZFMTFUMGQzZUV4cVNYTk5VelI1WWtNd01FeHFhM05PVjNkMFRrTTBOVXhVVmsxT1V6UjVURVJWZFU5WWIybE1lalJMVUVoQ2FHUkhaMmRaTW5ob1l6Tk5PVWx1VGpCTlEwbG5Xa1F3YVZSVVFYUk5RelF5WVVSRk5HUnFSVFJUUkVKWFRGUkJkVTV1YjJsTWVqUkxVRU01ZW1SdFl5dERaMXdpS1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0WTI5c2IzSTZJSFpoY2lndExXcHdMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNU2s3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV0p2Y21SbGNpMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdFltOXlaR1Z5TFdOdmJHOXlNU2s3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV1p2WTNWekxXSnZjbVJsY2kxamIyeHZjam9nZG1GeUtDMHRhbkF0WW5KaGJtUXRZMjlzYjNJeUtUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV0p2Y21SbGNpMTNhV1IwYUNrN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxXUnBjMkZpYkdWa0xXOXdZV05wZEhrNklEQXVOanRjYmx4dUlDQWdJQzhxSUVaeWIyMGdUV0YwWlhKcFlXd2dSR1Z6YVdkdUlFeHBkR1VnS2k5Y2JpQWdJQ0F0TFcxa0xYTm9ZV1J2ZHkxclpYa3RkVzFpY21FdGIzQmhZMmwwZVRvZ01DNHlPMXh1SUNBZ0lDMHRiV1F0YzJoaFpHOTNMV3RsZVMxd1pXNTFiV0p5WVMxdmNHRmphWFI1T2lBd0xqRTBPMXh1SUNBZ0lDMHRiV1F0YzJoaFpHOTNMV0Z0WW1sbGJuUXRjMmhoWkc5M0xXOXdZV05wZEhrNklEQXVNVEk3WEc1OVhHNWNiaTVxZFhCNWRHVnlMWGRwWkdkbGRITWdlMXh1SUNBZ0lHMWhjbWRwYmpvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxdFlYSm5hVzRwTzF4dUlDQWdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRZMjlzYjNJcE8xeHVJQ0FnSUc5MlpYSm1iRzkzT2lCMmFYTnBZbXhsTzF4dWZWeHVYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpMbXAxY0hsMFpYSXRkMmxrWjJWMGN5MWthWE5qYjI1dVpXTjBaV1E2T21KbFptOXlaU0I3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ2FHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1ZlZ4dVhHNHVhbkF0VDNWMGNIVjBMWEpsYzNWc2RDQStJQzVxZFhCNWRHVnlMWGRwWkdkbGRITWdlMXh1SUNBZ0lHMWhjbWRwYmkxc1pXWjBPaUF3TzF4dUlDQWdJRzFoY21kcGJpMXlhV2RvZERvZ01EdGNibjFjYmx4dUx5b2dkbUp2ZUNCaGJtUWdhR0p2ZUNBcUwxeHVYRzR1ZDJsa1oyVjBMV2x1YkdsdVpTMW9ZbTk0SUh0Y2JpQWdJQ0F2S2lCSWIzSnBlbTl1ZEdGc0lIZHBaR2RsZEhNZ0tpOWNiaUFnSUNCaWIzZ3RjMmw2YVc1bk9pQmliM0prWlhJdFltOTRPMXh1SUNBZ0lHUnBjM0JzWVhrNklHWnNaWGc3WEc0Z0lDQWdabXhsZUMxa2FYSmxZM1JwYjI0NklISnZkenRjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWW1GelpXeHBibVU3WEc1OVhHNWNiaTUzYVdSblpYUXRhVzVzYVc1bExYWmliM2dnZTF4dUlDQWdJQzhxSUZabGNuUnBZMkZzSUZkcFpHZGxkSE1nS2k5Y2JpQWdJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeHVJQ0FnSUdScGMzQnNZWGs2SUdac1pYZzdYRzRnSUNBZ1pteGxlQzFrYVhKbFkzUnBiMjQ2SUdOdmJIVnRianRjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWTJWdWRHVnlPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXSnZlQ0I3WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeHVJQ0FnSUcxaGNtZHBiam9nTUR0Y2JpQWdJQ0J2ZG1WeVpteHZkem9nWVhWMGJ6dGNibjFjYmx4dUxuZHBaR2RsZEMxbmNtbGtZbTk0SUh0Y2JpQWdJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeHVJQ0FnSUdScGMzQnNZWGs2SUdkeWFXUTdYRzRnSUNBZ2JXRnlaMmx1T2lBd08xeHVJQ0FnSUc5MlpYSm1iRzkzT2lCaGRYUnZPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXaGliM2dnZTF4dUlDQWdJR1pzWlhndFpHbHlaV04wYVc5dU9pQnliM2M3WEc1OVhHNWNiaTUzYVdSblpYUXRkbUp2ZUNCN1hHNGdJQ0FnWm14bGVDMWthWEpsWTNScGIyNDZJR052YkhWdGJqdGNibjFjYmx4dUx5b2dSMlZ1WlhKaGJDQkNkWFIwYjI0Z1UzUjViR2x1WnlBcUwxeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNGdlMXh1SUNBZ0lIQmhaR1JwYm1jdGJHVm1kRG9nTVRCd2VEdGNiaUFnSUNCd1lXUmthVzVuTFhKcFoyaDBPaUF4TUhCNE8xeHVJQ0FnSUhCaFpHUnBibWN0ZEc5d09pQXdjSGc3WEc0Z0lDQWdjR0ZrWkdsdVp5MWliM1IwYjIwNklEQndlRHRjYmlBZ0lDQmthWE53YkdGNU9pQnBibXhwYm1VdFlteHZZMnM3WEc0Z0lDQWdkMmhwZEdVdGMzQmhZMlU2SUc1dmQzSmhjRHRjYmlBZ0lDQnZkbVZ5Wm14dmR6b2dhR2xrWkdWdU8xeHVJQ0FnSUhSbGVIUXRiM1psY21ac2IzYzZJR1ZzYkdsd2MybHpPMXh1SUNBZ0lIUmxlSFF0WVd4cFoyNDZJR05sYm5SbGNqdGNiaUFnSUNCbWIyNTBMWE5wZW1VNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdFptOXVkQzF6YVhwbEtUdGNiaUFnSUNCamRYSnpiM0k2SUhCdmFXNTBaWEk3WEc1Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzVzYVc1bExXaGxhV2RvZENrN1hHNGdJQ0FnWW05eVpHVnlPaUF3Y0hnZ2MyOXNhV1E3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ1ltOTRMWE5vWVdSdmR6b2dibTl1WlR0Y2JseHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzExYVMxbWIyNTBMV052Ykc5eU1TazdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNaWs3WEc0Z0lDQWdZbTl5WkdWeUxXTnZiRzl5T2lCMllYSW9MUzFxY0MxaWIzSmtaWEl0WTI5c2IzSXlLVHRjYmlBZ0lDQmliM0prWlhJNklHNXZibVU3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJpQnBMbVpoSUh0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFcxaGNtZHBiaWs3WEc0Z0lDQWdjRzlwYm5SbGNpMWxkbVZ1ZEhNNklHNXZibVU3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJqcGxiWEIwZVRwaVpXWnZjbVVnZTF4dUlDQWdJR052Ym5SbGJuUTZJRndpWEZ3eU1EQmlYQ0k3SUM4cUlIcGxjbTh0ZDJsa2RHZ2djM0JoWTJVZ0tpOWNibjFjYmx4dUxtcDFjSGwwWlhJdGQybGtaMlYwY3k1cWRYQjVkR1Z5TFdKMWRIUnZianBrYVhOaFlteGxaQ0I3WEc0Z0lDQWdiM0JoWTJsMGVUb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWthWE5oWW14bFpDMXZjR0ZqYVhSNUtUdGNibjFjYmx4dUxtcDFjSGwwWlhJdFluVjBkRzl1SUdrdVptRXVZMlZ1ZEdWeUlIdGNiaUFnSUNCdFlYSm5hVzR0Y21sbmFIUTZJREE3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJqcG9iM1psY2pwbGJtRmliR1ZrTENBdWFuVndlWFJsY2kxaWRYUjBiMjQ2Wm05amRYTTZaVzVoWW14bFpDQjdYRzRnSUNBZ0x5b2dUVVFnVEdsMFpTQXlaSEFnYzJoaFpHOTNJQ292WEc0Z0lDQWdZbTk0TFhOb1lXUnZkem9nTUNBeWNIZ2dNbkI0SURBZ2NtZGlZU2d3TENBd0xDQXdMQ0IyWVhJb0xTMXRaQzF6YUdGa2IzY3RhMlY1TFhCbGJuVnRZbkpoTFc5d1lXTnBkSGtwS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBd0lETndlQ0F4Y0hnZ0xUSndlQ0J5WjJKaEtEQXNJREFzSURBc0lIWmhjaWd0TFcxa0xYTm9ZV1J2ZHkxclpYa3RkVzFpY21FdGIzQmhZMmwwZVNrcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEQWdNWEI0SURWd2VDQXdJSEpuWW1Fb01Dd2dNQ3dnTUN3Z2RtRnlLQzB0YldRdGMyaGhaRzkzTFdGdFltbGxiblF0YzJoaFpHOTNMVzl3WVdOcGRIa3BLVHRjYm4xY2JseHVMbXAxY0hsMFpYSXRZblYwZEc5dU9tRmpkR2wyWlN3Z0xtcDFjSGwwWlhJdFluVjBkRzl1TG0xdlpDMWhZM1JwZG1VZ2UxeHVJQ0FnSUM4cUlFMUVJRXhwZEdVZ05HUndJSE5vWVdSdmR5QXFMMXh1SUNBZ0lHSnZlQzF6YUdGa2IzYzZJREFnTkhCNElEVndlQ0F3SUhKblltRW9NQ3dnTUN3Z01Dd2dkbUZ5S0MwdGJXUXRjMmhoWkc5M0xXdGxlUzF3Wlc1MWJXSnlZUzF2Y0dGamFYUjVLU2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTUNBeGNIZ2dNVEJ3ZUNBd0lISm5ZbUVvTUN3Z01Dd2dNQ3dnZG1GeUtDMHRiV1F0YzJoaFpHOTNMV0Z0WW1sbGJuUXRjMmhoWkc5M0xXOXdZV05wZEhrcEtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXdJREp3ZUNBMGNIZ2dMVEZ3ZUNCeVoySmhLREFzSURBc0lEQXNJSFpoY2lndExXMWtMWE5vWVdSdmR5MXJaWGt0ZFcxaWNtRXRiM0JoWTJsMGVTa3BPMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxMWFTMW1iMjUwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRiR0Y1YjNWMExXTnZiRzl5TXlrN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFdKMWRIUnZianBtYjJOMWN6cGxibUZpYkdWa0lIdGNiaUFnSUNCdmRYUnNhVzVsT2lBeGNIZ2djMjlzYVdRZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJuQjFkQzFtYjJOMWN5MWliM0prWlhJdFkyOXNiM0lwTzF4dWZWeHVYRzR2S2lCQ2RYUjBiMjRnWENKUWNtbHRZWEo1WENJZ1UzUjViR2x1WnlBcUwxeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNHViVzlrTFhCeWFXMWhjbmtnZTF4dUlDQWdJR052Ykc5eU9pQjJZWElvTFMxcWNDMXBiblpsY25ObExYVnBMV1p2Ym5RdFkyOXNiM0l4S1R0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzFpY21GdVpDMWpiMnh2Y2pFcE8xeHVmVnh1WEc0dWFuVndlWFJsY2kxaWRYUjBiMjR1Ylc5a0xYQnlhVzFoY25rdWJXOWtMV0ZqZEdsMlpTQjdYRzRnSUNBZ1kyOXNiM0k2SUhaaGNpZ3RMV3B3TFdsdWRtVnljMlV0ZFdrdFptOXVkQzFqYjJ4dmNqQXBPMXh1SUNBZ0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklIWmhjaWd0TFdwd0xXSnlZVzVrTFdOdmJHOXlNQ2s3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJpNXRiMlF0Y0hKcGJXRnllVHBoWTNScGRtVWdlMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxcGJuWmxjbk5sTFhWcExXWnZiblF0WTI5c2IzSXdLVHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMWljbUZ1WkMxamIyeHZjakFwTzF4dWZWeHVYRzR2S2lCQ2RYUjBiMjRnWENKVGRXTmpaWE56WENJZ1UzUjViR2x1WnlBcUwxeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNHViVzlrTFhOMVkyTmxjM01nZTF4dUlDQWdJR052Ykc5eU9pQjJZWElvTFMxcWNDMXBiblpsY25ObExYVnBMV1p2Ym5RdFkyOXNiM0l4S1R0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzF6ZFdOalpYTnpMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRjM1ZqWTJWemN5NXRiMlF0WVdOMGFYWmxJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNQ2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRjM1ZqWTJWemN5MWpiMnh2Y2pBcE8xeHVJSDFjYmx4dUxtcDFjSGwwWlhJdFluVjBkRzl1TG0xdlpDMXpkV05qWlhOek9tRmpkR2wyWlNCN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMV2x1ZG1WeWMyVXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFhOMVkyTmxjM010WTI5c2IzSXdLVHRjYmlCOVhHNWNiaUF2S2lCQ2RYUjBiMjRnWENKSmJtWnZYQ0lnVTNSNWJHbHVaeUFxTDF4dVhHNHVhblZ3ZVhSbGNpMWlkWFIwYjI0dWJXOWtMV2x1Wm04Z2UxeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzFwYm5abGNuTmxMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFxY0MxcGJtWnZMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRhVzVtYnk1dGIyUXRZV04wYVhabElIdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0YVc1MlpYSnpaUzExYVMxbWIyNTBMV052Ykc5eU1DazdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNW1ieTFqYjJ4dmNqQXBPMXh1ZlZ4dVhHNHVhblZ3ZVhSbGNpMWlkWFIwYjI0dWJXOWtMV2x1Wm04NllXTjBhWFpsSUh0Y2JpQWdJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRhVzUyWlhKelpTMTFhUzFtYjI1MExXTnZiRzl5TUNrN1hHNGdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0YVc1bWJ5MWpiMnh2Y2pBcE8xeHVmVnh1WEc0dktpQkNkWFIwYjI0Z1hDSlhZWEp1YVc1blhDSWdVM1I1YkdsdVp5QXFMMXh1WEc0dWFuVndlWFJsY2kxaWRYUjBiMjR1Ylc5a0xYZGhjbTVwYm1jZ2UxeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzFwYm5abGNuTmxMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFxY0MxM1lYSnVMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRkMkZ5Ym1sdVp5NXRiMlF0WVdOMGFYWmxJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNQ2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMkZ5YmkxamIyeHZjakFwTzF4dWZWeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNHViVzlrTFhkaGNtNXBibWM2WVdOMGFYWmxJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNQ2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMkZ5YmkxamIyeHZjakFwTzF4dWZWeHVYRzR2S2lCQ2RYUjBiMjRnWENKRVlXNW5aWEpjSWlCVGRIbHNhVzVuSUNvdlhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJpNXRiMlF0WkdGdVoyVnlJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRaWEp5YjNJdFkyOXNiM0l4S1R0Y2JuMWNibHh1TG1wMWNIbDBaWEl0WW5WMGRHOXVMbTF2WkMxa1lXNW5aWEl1Ylc5a0xXRmpkR2wyWlNCN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMV2x1ZG1WeWMyVXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFdWeWNtOXlMV052Ykc5eU1DazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRaR0Z1WjJWeU9tRmpkR2wyWlNCN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMV2x1ZG1WeWMyVXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFdWeWNtOXlMV052Ykc5eU1DazdYRzU5WEc1Y2JpOHFJRmRwWkdkbGRDQkNkWFIwYjI0cUwxeHVYRzR1ZDJsa1oyVjBMV0oxZEhSdmJpd2dMbmRwWkdkbGRDMTBiMmRuYkdVdFluVjBkRzl1SUh0Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGQybGtkR2d0YzJodmNuUXBPMXh1ZlZ4dVhHNHZLaUJYYVdSblpYUWdUR0ZpWld3Z1UzUjViR2x1WnlBcUwxeHVYRzR2S2lCUGRtVnljbWxrWlNCQ2IyOTBjM1J5WVhBZ2JHRmlaV3dnWTNOeklDb3ZYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpJR3hoWW1Wc0lIdGNiaUFnSUNCdFlYSm5hVzR0WW05MGRHOXRPaUJwYm1sMGFXRnNPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXeGhZbVZzTFdKaGMybGpJSHRjYmlBZ0lDQXZLaUJDWVhOcFl5Qk1ZV0psYkNBcUwxeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV3hoWW1Wc0xXTnZiRzl5S1R0Y2JpQWdJQ0JtYjI1MExYTnBlbVU2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Wm05dWRDMXphWHBsS1R0Y2JpQWdJQ0J2ZG1WeVpteHZkem9nYUdsa1pHVnVPMXh1SUNBZ0lIUmxlSFF0YjNabGNtWnNiM2M2SUdWc2JHbHdjMmx6TzF4dUlDQWdJSGRvYVhSbExYTndZV05sT2lCdWIzZHlZWEE3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGJHRmlaV3dnZTF4dUlDQWdJQzhxSUV4aFltVnNJQ292WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGJHRmlaV3d0WTI5c2IzSXBPMXh1SUNBZ0lHWnZiblF0YzJsNlpUb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MW1iMjUwTFhOcGVtVXBPMXh1SUNBZ0lHOTJaWEptYkc5M09pQm9hV1JrWlc0N1hHNGdJQ0FnZEdWNGRDMXZkbVZ5Wm14dmR6b2daV3hzYVhCemFYTTdYRzRnSUNBZ2QyaHBkR1V0YzNCaFkyVTZJRzV2ZDNKaGNEdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JuMWNibHh1TG5kcFpHZGxkQzFwYm14cGJtVXRhR0p2ZUNBdWQybGtaMlYwTFd4aFltVnNJSHRjYmlBZ0lDQXZLaUJJYjNKcGVtOXVkR0ZzSUZkcFpHZGxkQ0JNWVdKbGJDQXFMMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFd4aFltVnNMV052Ykc5eUtUdGNiaUFnSUNCMFpYaDBMV0ZzYVdkdU9pQnlhV2RvZER0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklHTmhiR01vSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMVzFoY21kcGJpa2dLaUF5SUNrN1hHNGdJQ0FnZDJsa2RHZzZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzVzYVc1bExXeGhZbVZzTFhkcFpIUm9LVHRjYmlBZ0lDQm1iR1Y0TFhOb2NtbHVhem9nTUR0Y2JuMWNibHh1TG5kcFpHZGxkQzFwYm14cGJtVXRkbUp2ZUNBdWQybGtaMlYwTFd4aFltVnNJSHRjYmlBZ0lDQXZLaUJXWlhKMGFXTmhiQ0JYYVdSblpYUWdUR0ZpWld3Z0tpOWNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFzWVdKbGJDMWpiMnh2Y2lrN1hHNGdJQ0FnZEdWNGRDMWhiR2xuYmpvZ1kyVnVkR1Z5TzF4dUlDQWdJR3hwYm1VdGFHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1ZlZ4dVhHNHZLaUJYYVdSblpYUWdVbVZoWkc5MWRDQlRkSGxzYVc1bklDb3ZYRzVjYmk1M2FXUm5aWFF0Y21WaFpHOTFkQ0I3WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGNtVmhaRzkxZEMxamIyeHZjaWs3WEc0Z0lDQWdabTl1ZEMxemFYcGxPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2s3WEc0Z0lDQWdhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dUlDQWdJR3hwYm1VdGFHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1SUNBZ0lHOTJaWEptYkc5M09pQm9hV1JrWlc0N1hHNGdJQ0FnZDJocGRHVXRjM0JoWTJVNklHNXZkM0poY0R0Y2JpQWdJQ0IwWlhoMExXRnNhV2R1T2lCalpXNTBaWEk3WEc1OVhHNWNiaTUzYVdSblpYUXRjbVZoWkc5MWRDNXZkbVZ5Wm14dmR5QjdYRzRnSUNBZ0x5b2dUM1psY21ac2IzZHBibWNnVW1WaFpHOTFkQ0FxTDF4dVhHNGdJQ0FnTHlvZ1JuSnZiU0JOWVhSbGNtbGhiQ0JFWlhOcFoyNGdUR2wwWlZ4dUlDQWdJQ0FnSUNCemFHRmtiM2N0YTJWNUxYVnRZbkpoTFc5d1lXTnBkSGs2SURBdU1qdGNiaUFnSUNBZ0lDQWdjMmhoWkc5M0xXdGxlUzF3Wlc1MWJXSnlZUzF2Y0dGamFYUjVPaUF3TGpFME8xeHVJQ0FnSUNBZ0lDQnphR0ZrYjNjdFlXMWlhV1Z1ZEMxemFHRmtiM2N0YjNCaFkybDBlVG9nTUM0eE1qdGNiaUFnSUNBZ0tpOWNiaUFnSUNBdGQyVmlhMmwwTFdKdmVDMXphR0ZrYjNjNklEQWdNbkI0SURKd2VDQXdJSEpuWW1Fb01Dd2dNQ3dnTUN3Z01DNHlLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJREFnTTNCNElERndlQ0F0TW5CNElISm5ZbUVvTUN3Z01Dd2dNQ3dnTUM0eE5Da3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXdJREZ3ZUNBMWNIZ2dNQ0J5WjJKaEtEQXNJREFzSURBc0lEQXVNVElwTzF4dVhHNGdJQ0FnTFcxdmVpMWliM2d0YzJoaFpHOTNPaUF3SURKd2VDQXljSGdnTUNCeVoySmhLREFzSURBc0lEQXNJREF1TWlrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F3SUROd2VDQXhjSGdnTFRKd2VDQnlaMkpoS0RBc0lEQXNJREFzSURBdU1UUXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ01DQXhjSGdnTlhCNElEQWdjbWRpWVNnd0xDQXdMQ0F3TENBd0xqRXlLVHRjYmx4dUlDQWdJR0p2ZUMxemFHRmtiM2M2SURBZ01uQjRJREp3ZUNBd0lISm5ZbUVvTUN3Z01Dd2dNQ3dnTUM0eUtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXdJRE53ZUNBeGNIZ2dMVEp3ZUNCeVoySmhLREFzSURBc0lEQXNJREF1TVRRcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEQWdNWEI0SURWd2VDQXdJSEpuWW1Fb01Dd2dNQ3dnTUN3Z01DNHhNaWs3WEc1OVhHNWNiaTUzYVdSblpYUXRhVzVzYVc1bExXaGliM2dnTG5kcFpHZGxkQzF5WldGa2IzVjBJSHRjYmlBZ0lDQXZLaUJJYjNKcGVtOXVkR0ZzSUZKbFlXUnZkWFFnS2k5Y2JpQWdJQ0IwWlhoMExXRnNhV2R1T2lCalpXNTBaWEk3WEc0Z0lDQWdiV0Y0TFhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUMxemFHOXlkQ2s3WEc0Z0lDQWdiV2x1TFhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUMxMGFXNTVLVHRjYmlBZ0lDQnRZWEpuYVc0dGJHVm1kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRiV0Z5WjJsdUtUdGNibjFjYmx4dUxuZHBaR2RsZEMxcGJteHBibVV0ZG1KdmVDQXVkMmxrWjJWMExYSmxZV1J2ZFhRZ2UxeHVJQ0FnSUM4cUlGWmxjblJwWTJGc0lGSmxZV1J2ZFhRZ0tpOWNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxdFlYSm5hVzRwTzF4dUlDQWdJQzhxSUdGeklIZHBaR1VnWVhNZ2RHaGxJSGRwWkdkbGRDQXFMMXh1SUNBZ0lIZHBaSFJvT2lCcGJtaGxjbWwwTzF4dWZWeHVYRzR2S2lCWGFXUm5aWFFnUTJobFkydGliM2dnVTNSNWJHbHVaeUFxTDF4dVhHNHVkMmxrWjJWMExXTm9aV05yWW05NElIdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdncE8xeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JuMWNibHh1TG5kcFpHZGxkQzFqYUdWamEySnZlQ0JwYm5CMWRGdDBlWEJsUFZ3aVkyaGxZMnRpYjNoY0lsMGdlMXh1SUNBZ0lHMWhjbWRwYmpvZ01IQjRJR05oYkdNb0lIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFcxaGNtZHBiaWtnS2lBeUlDa2dNSEI0SURCd2VEdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JpQWdJQ0JtYjI1MExYTnBlbVU2SUd4aGNtZGxPMXh1SUNBZ0lHWnNaWGd0WjNKdmR6b2dNVHRjYmlBZ0lDQm1iR1Y0TFhOb2NtbHVhem9nTUR0Y2JpQWdJQ0JoYkdsbmJpMXpaV3htT2lCalpXNTBaWEk3WEc1OVhHNWNiaThxSUZkcFpHZGxkQ0JXWVd4cFpDQlRkSGxzYVc1bklDb3ZYRzVjYmk1M2FXUm5aWFF0ZG1Gc2FXUWdlMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQnNhVzVsTFdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdndGMyaHZjblFwTzF4dUlDQWdJR1p2Ym5RdGMybDZaVG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFtYjI1MExYTnBlbVVwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFpoYkdsa0lHazZZbVZtYjNKbElIdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFcxaGNtZHBiaWs3WEc0Z0lDQWdiV0Z5WjJsdUxXeGxablE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMVzFoY21kcGJpazdYRzVjYmlBZ0lDQXZLaUJtY205dElIUm9aU0JtWVNCamJHRnpjeUJwYmlCR2IyNTBRWGRsYzI5dFpUb2dhSFIwY0hNNkx5OW5hWFJvZFdJdVkyOXRMMFp2Y25SQmQyVnpiMjFsTDBadmJuUXRRWGRsYzI5dFpTOWliRzlpTHpRNU1UQXdZemRqTTJFM1lqVTRaRFV3WW1GaE56RmxabVZtTVRGaFpqUXhZVFkyWWpBelpETXZZM056TDJadmJuUXRZWGRsYzI5dFpTNWpjM01qVERFMElDb3ZYRzRnSUNBZ1pHbHpjR3hoZVRvZ2FXNXNhVzVsTFdKc2IyTnJPMXh1SUNBZ0lHWnZiblE2SUc1dmNtMWhiQ0J1YjNKdFlXd2dibTl5YldGc0lERTBjSGd2TVNCR2IyNTBRWGRsYzI5dFpUdGNiaUFnSUNCbWIyNTBMWE5wZW1VNklHbHVhR1Z5YVhRN1hHNGdJQ0FnZEdWNGRDMXlaVzVrWlhKcGJtYzZJR0YxZEc4N1hHNGdJQ0FnTFhkbFltdHBkQzFtYjI1MExYTnRiMjkwYUdsdVp6b2dZVzUwYVdGc2FXRnpaV1E3WEc0Z0lDQWdMVzF2ZWkxdmMzZ3RabTl1ZEMxemJXOXZkR2hwYm1jNklHZHlZWGx6WTJGc1pUdGNibjFjYmx4dUxuZHBaR2RsZEMxMllXeHBaQzV0YjJRdGRtRnNhV1FnYVRwaVpXWnZjbVVnZTF4dUlDQWdJR052Ym5SbGJuUTZJRndpWEZ4bU1EQmpYQ0k3WEc0Z0lDQWdZMjlzYjNJNklHZHlaV1Z1TzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFpoYkdsa0xtMXZaQzFwYm5aaGJHbGtJR2s2WW1WbWIzSmxJSHRjYmlBZ0lDQmpiMjUwWlc1ME9pQmNJbHhjWmpBd1pGd2lPMXh1SUNBZ0lHTnZiRzl5T2lCeVpXUTdYRzU5WEc1Y2JpNTNhV1JuWlhRdGRtRnNhV1F1Ylc5a0xYWmhiR2xrSUM1M2FXUm5aWFF0ZG1Gc2FXUXRjbVZoWkc5MWRDQjdYRzRnSUNBZ1pHbHpjR3hoZVRvZ2JtOXVaVHRjYm4xY2JseHVMeW9nVjJsa1oyVjBJRlJsZUhRZ1lXNWtJRlJsZUhSQmNtVmhJRk4wZVdsdVp5QXFMMXh1WEc0dWQybGtaMlYwTFhSbGVIUmhjbVZoTENBdWQybGtaMlYwTFhSbGVIUWdlMXh1SUNBZ0lIZHBaSFJvT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGRHVjRkQ0JwYm5CMWRGdDBlWEJsUFZ3aWRHVjRkRndpWFN3Z0xuZHBaR2RsZEMxMFpYaDBJR2x1Y0hWMFczUjVjR1U5WENKdWRXMWlaWEpjSWwxN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVJQ0FnSUd4cGJtVXRhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFJsZUhRZ2FXNXdkWFJiZEhsd1pUMWNJblJsZUhSY0lsMDZaR2x6WVdKc1pXUXNJQzUzYVdSblpYUXRkR1Y0ZENCcGJuQjFkRnQwZVhCbFBWd2liblZ0WW1WeVhDSmRPbVJwYzJGaWJHVmtMQ0F1ZDJsa1oyVjBMWFJsZUhSaGNtVmhJSFJsZUhSaGNtVmhPbVJwYzJGaWJHVmtJSHRjYmlBZ0lDQnZjR0ZqYVhSNU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXUnBjMkZpYkdWa0xXOXdZV05wZEhrcE8xeHVmVnh1WEc0dWQybGtaMlYwTFhSbGVIUWdhVzV3ZFhSYmRIbHdaVDFjSW5SbGVIUmNJbDBzSUM1M2FXUm5aWFF0ZEdWNGRDQnBibkIxZEZ0MGVYQmxQVndpYm5WdFltVnlYQ0pkTENBdWQybGtaMlYwTFhSbGVIUmhjbVZoSUhSbGVIUmhjbVZoSUh0Y2JpQWdJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeHVJQ0FnSUdKdmNtUmxjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFdOdmJHOXlLVHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdKaFkydG5jbTkxYm1RdFkyOXNiM0lwTzF4dUlDQWdJR052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdOdmJHOXlLVHRjYmlBZ0lDQm1iMjUwTFhOcGVtVTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRabTl1ZEMxemFYcGxLVHRjYmlBZ0lDQndZV1JrYVc1bk9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwSUdOaGJHTW9JSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdGNHRmtaR2x1WnlrZ0tpQWdNaUFwTzF4dUlDQWdJR1pzWlhndFozSnZkem9nTVR0Y2JpQWdJQ0J0YVc0dGQybGtkR2c2SURBN0lDOHFJRlJvYVhNZ2JXRnJaWE1nYVhRZ2NHOXpjMmxpYkdVZ1ptOXlJSFJvWlNCbWJHVjRZbTk0SUhSdklITm9jbWx1YXlCMGFHbHpJR2x1Y0hWMElDb3ZYRzRnSUNBZ1pteGxlQzF6YUhKcGJtczZJREU3WEc0Z0lDQWdiM1YwYkdsdVpUb2dibTl1WlNBaGFXMXdiM0owWVc1ME8xeHVmVnh1WEc0dWQybGtaMlYwTFhSbGVIUmhjbVZoSUhSbGVIUmhjbVZoSUh0Y2JpQWdJQ0JvWldsbmFIUTZJR2x1YUdWeWFYUTdYRzRnSUNBZ2QybGtkR2c2SUdsdWFHVnlhWFE3WEc1OVhHNWNiaTUzYVdSblpYUXRkR1Y0ZENCcGJuQjFkRHBtYjJOMWN5d2dMbmRwWkdkbGRDMTBaWGgwWVhKbFlTQjBaWGgwWVhKbFlUcG1iMk4xY3lCN1hHNGdJQ0FnWW05eVpHVnlMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdadlkzVnpMV0p2Y21SbGNpMWpiMnh2Y2lrN1hHNTlYRzVjYmk4cUlGZHBaR2RsZENCVGJHbGtaWElnS2k5Y2JseHVMbmRwWkdkbGRDMXpiR2xrWlhJZ0xuVnBMWE5zYVdSbGNpQjdYRzRnSUNBZ0x5b2dVMnhwWkdWeUlGUnlZV05ySUNvdlhHNGdJQ0FnWW05eVpHVnlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMV3hoZVc5MWRDMWpiMnh2Y2pNcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RNklIWmhjaWd0TFdwd0xXeGhlVzkxZEMxamIyeHZjak1wTzF4dUlDQWdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hHNGdJQ0FnY0c5emFYUnBiMjQ2SUhKbGJHRjBhWFpsTzF4dUlDQWdJR0p2Y21SbGNpMXlZV1JwZFhNNklEQndlRHRjYm4xY2JseHVMbmRwWkdkbGRDMXpiR2xrWlhJZ0xuVnBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlMV2hoYm1Sc1pTQjdYRzRnSUNBZ0x5b2dVMnhwWkdWeUlFaGhibVJzWlNBcUwxeHVJQ0FnSUc5MWRHeHBibVU2SUc1dmJtVWdJV2x0Y0c5eWRHRnVkRHNnTHlvZ1ptOWpkWE5sWkNCemJHbGtaWElnYUdGdVpHeGxjeUJoY21VZ1kyOXNiM0psWkNBdElITmxaU0JpWld4dmR5QXFMMXh1SUNBZ0lIQnZjMmwwYVc5dU9pQmhZbk52YkhWMFpUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFvWVc1a2JHVXRZbUZqYTJkeWIzVnVaQzFqYjJ4dmNpazdYRzRnSUNBZ1ltOXlaR1Z5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFpYjNKa1pYSXRkMmxrZEdncElITnZiR2xrSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV2hoYm1Sc1pTMWliM0prWlhJdFkyOXNiM0lwTzF4dUlDQWdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hHNGdJQ0FnZWkxcGJtUmxlRG9nTVR0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdsdFlXZGxPaUJ1YjI1bE95QXZLaUJQZG1WeWNtbGtaU0JxY1hWbGNua3RkV2tnS2k5Y2JuMWNibHh1THlvZ1QzWmxjbkpwWkdVZ2FuRjFaWEo1TFhWcElDb3ZYRzR1ZDJsa1oyVjBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlJQzUxYVMxemJHbGtaWEl0YUdGdVpHeGxPbWh2ZG1WeUxDQXVkMmxrWjJWMExYTnNhV1JsY2lBdWRXa3RjMnhwWkdWeUlDNTFhUzF6Ykdsa1pYSXRhR0Z1Wkd4bE9tWnZZM1Z6SUh0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWhZM1JwZG1VdGFHRnVaR3hsTFdOdmJHOXlLVHRjYmlBZ0lDQmliM0prWlhJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGMyeHBaR1Z5TFdKdmNtUmxjaTEzYVdSMGFDa2djMjlzYVdRZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0WVdOMGFYWmxMV2hoYm1Sc1pTMWpiMnh2Y2lrN1hHNTlYRzVjYmk1M2FXUm5aWFF0YzJ4cFpHVnlJQzUxYVMxemJHbGtaWElnTG5WcExYTnNhV1JsY2kxb1lXNWtiR1U2WVdOMGFYWmxJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxaFkzUnBkbVV0YUdGdVpHeGxMV052Ykc5eUtUdGNiaUFnSUNCaWIzSmtaWEl0WTI5c2IzSTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXRmpkR2wyWlMxb1lXNWtiR1V0WTI5c2IzSXBPMXh1SUNBZ0lIb3RhVzVrWlhnNklESTdYRzRnSUNBZ2RISmhibk5tYjNKdE9pQnpZMkZzWlNneExqSXBPMXh1ZlZ4dVhHNHVkMmxrWjJWMExYTnNhV1JsY2lBZ0xuVnBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlMWEpoYm1kbElIdGNiaUFnSUNBdktpQkpiblJsY25aaGJDQmlaWFIzWldWdUlIUm9aU0IwZDI4Z2MzQmxZMmxtYVdWa0lIWmhiSFZsSUc5bUlHRWdaRzkxWW14bElITnNhV1JsY2lBcUwxeHVJQ0FnSUhCdmMybDBhVzl1T2lCaFluTnZiSFYwWlR0Y2JpQWdJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFoWTNScGRtVXRhR0Z1Wkd4bExXTnZiRzl5S1R0Y2JpQWdJQ0I2TFdsdVpHVjRPaUF3TzF4dWZWeHVYRzR2S2lCVGFHRndaWE1nYjJZZ1UyeHBaR1Z5SUVoaGJtUnNaWE1nS2k5Y2JseHVMbmRwWkdkbGRDMW9jMnhwWkdWeUlDNTFhUzF6Ykdsa1pYSWdMblZwTFhOc2FXUmxjaTFvWVc1a2JHVWdlMXh1SUNBZ0lIZHBaSFJvT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFvWVc1a2JHVXRjMmw2WlNrN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMW9ZVzVrYkdVdGMybDZaU2s3WEc0Z0lDQWdiV0Z5WjJsdUxYUnZjRG9nWTJGc1l5Z29kbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56S1NBdElIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGMyeHBaR1Z5TFdoaGJtUnNaUzF6YVhwbEtTa2dMeUF5SUMwZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ2JXRnlaMmx1TFd4bFpuUTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0YUdGdVpHeGxMWE5wZW1VcElDOGdMVElnS3lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFpYjNKa1pYSXRkMmxrZEdncEtUdGNiaUFnSUNCaWIzSmtaWEl0Y21Ga2FYVnpPaUExTUNVN1hHNGdJQ0FnZEc5d09pQXdPMXh1ZlZ4dVhHNHVkMmxrWjJWMExYWnpiR2xrWlhJZ0xuVnBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlMV2hoYm1Sc1pTQjdYRzRnSUNBZ2QybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV2hoYm1Sc1pTMXphWHBsS1R0Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXaGhibVJzWlMxemFYcGxLVHRjYmlBZ0lDQnRZWEpuYVc0dFltOTBkRzl0T2lCallXeGpLSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXaGhibVJzWlMxemFYcGxLU0F2SUMweUlDc2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdFltOXlaR1Z5TFhkcFpIUm9LU2s3WEc0Z0lDQWdiV0Z5WjJsdUxXeGxablE2SUdOaGJHTW9LSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxYUnlZV05yTFhSb2FXTnJibVZ6Y3lrZ0xTQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxb1lXNWtiR1V0YzJsNlpTa3BJQzhnTWlBdElIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGMyeHBaR1Z5TFdKdmNtUmxjaTEzYVdSMGFDa3BPMXh1SUNBZ0lHSnZjbVJsY2kxeVlXUnBkWE02SURVd0pUdGNiaUFnSUNCc1pXWjBPaUF3TzF4dWZWeHVYRzR1ZDJsa1oyVjBMV2h6Ykdsa1pYSWdMblZwTFhOc2FXUmxjaUF1ZFdrdGMyeHBaR1Z5TFhKaGJtZGxJSHRjYmlBZ0lDQm9aV2xuYUhRNklHTmhiR01vSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMWFJ5WVdOckxYUm9hV05yYm1WemN5a2dLaUF5SUNrN1hHNGdJQ0FnYldGeVoybHVMWFJ2Y0RvZ1kyRnNZeWdvZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRkSEpoWTJzdGRHaHBZMnR1WlhOektTQXRJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxYUnlZV05yTFhSb2FXTnJibVZ6Y3lrZ0tpQXlJQ2tnTHlBeUlDMGdkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdFltOXlaR1Z5TFhkcFpIUm9LU2s3WEc1OVhHNWNiaTUzYVdSblpYUXRkbk5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlJQzUxYVMxemJHbGtaWEl0Y21GdVoyVWdlMXh1SUNBZ0lIZHBaSFJvT2lCallXeGpLQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMTBjbUZqYXkxMGFHbGphMjVsYzNNcElDb2dNaUFwTzF4dUlDQWdJRzFoY21kcGJpMXNaV1owT2lCallXeGpLQ2gyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMTBjbUZqYXkxMGFHbGphMjVsYzNNcElDMGdkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56S1NBcUlESWdLU0F2SURJZ0xTQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxaWIzSmtaWEl0ZDJsa2RHZ3BLVHRjYm4xY2JseHVMeW9nU0c5eWFYcHZiblJoYkNCVGJHbGtaWElnS2k5Y2JseHVMbmRwWkdkbGRDMW9jMnhwWkdWeUlIdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdncE8xeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JseHVJQ0FnSUM4cUlFOTJaWEp5YVdSbElIUm9aU0JoYkdsbmJpMXBkR1Z0Y3lCaVlYTmxiR2x1WlM0Z1ZHaHBjeUIzWVhrc0lIUm9aU0JrWlhOamNtbHdkR2x2YmlCaGJtUWdjbVZoWkc5MWRGeHVJQ0FnSUhOMGFXeHNJSE5sWlcwZ2RHOGdZV3hwWjI0Z2RHaGxhWElnWW1GelpXeHBibVVnY0hKdmNHVnliSGtzSUdGdVpDQjNaU0JrYjI0bmRDQm9ZWFpsSUhSdklHaGhkbVZjYmlBZ0lDQmhiR2xuYmkxelpXeG1PaUJ6ZEhKbGRHTm9JR2x1SUhSb1pTQXVjMnhwWkdWeUxXTnZiblJoYVc1bGNpNGdLaTljYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWTJWdWRHVnlPMXh1ZlZ4dVhHNHVkMmxrWjJWMGN5MXpiR2xrWlhJZ0xuTnNhV1JsY2kxamIyNTBZV2x1WlhJZ2UxeHVJQ0FnSUc5MlpYSm1iRzkzT2lCMmFYTnBZbXhsTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV2h6Ykdsa1pYSWdMbk5zYVdSbGNpMWpiMjUwWVdsdVpYSWdlMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQnRZWEpuYVc0dGJHVm1kRG9nWTJGc1l5aDJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxb1lXNWtiR1V0YzJsNlpTa2dMeUF5SUMwZ01pQXFJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXSnZjbVJsY2kxM2FXUjBhQ2twTzF4dUlDQWdJRzFoY21kcGJpMXlhV2RvZERvZ1kyRnNZeWgyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMW9ZVzVrYkdVdGMybDZaU2tnTHlBeUlDMGdNaUFxSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV0p2Y21SbGNpMTNhV1IwYUNrcE8xeHVJQ0FnSUdac1pYZzZJREVnTVNCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFDMXphRzl5ZENrN1hHNTlYRzVjYmk1M2FXUm5aWFF0YUhOc2FXUmxjaUF1ZFdrdGMyeHBaR1Z5SUh0Y2JpQWdJQ0F2S2lCSmJtNWxjaXdnYVc1MmFYTnBZbXhsSUhOc2FXUmxJR1JwZGlBcUwxeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRkSEpoWTJzdGRHaHBZMnR1WlhOektUdGNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQmpZV3hqS0NoMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBJQzBnZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRkSEpoWTJzdGRHaHBZMnR1WlhOektTa2dMeUF5S1R0Y2JpQWdJQ0IzYVdSMGFEb2dNVEF3SlR0Y2JuMWNibHh1THlvZ1ZtVnlkR2xqWVd3Z1UyeHBaR1Z5SUNvdlhHNWNiaTUzYVdSblpYUXRkbUp2ZUNBdWQybGtaMlYwTFd4aFltVnNJSHRjYmlBZ0lDQm9aV2xuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFdobGFXZG9kQ2s3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGRuTnNhV1JsY2lCN1hHNGdJQ0FnTHlvZ1ZtVnlkR2xqWVd3Z1UyeHBaR1Z5SUNvdlhHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWFpsY25ScFkyRnNMV2hsYVdkb2RDazdYRzRnSUNBZ2QybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMWGRwWkhSb0xYUnBibmtwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFp6Ykdsa1pYSWdMbk5zYVdSbGNpMWpiMjUwWVdsdVpYSWdlMXh1SUNBZ0lHWnNaWGc2SURFZ01TQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxM2FXUjBhQzF6YUc5eWRDazdYRzRnSUNBZ2JXRnlaMmx1TFd4bFpuUTZJR0YxZEc4N1hHNGdJQ0FnYldGeVoybHVMWEpwWjJoME9pQmhkWFJ2TzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklHTmhiR01vZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRhR0Z1Wkd4bExYTnBlbVVwSUM4Z01pQXRJRElnS2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFpYjNKa1pYSXRkMmxrZEdncEtUdGNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQmpZV3hqS0haaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV2hoYm1Sc1pTMXphWHBsS1NBdklESWdMU0F5SUNvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ1pHbHpjR3hoZVRvZ1pteGxlRHRjYmlBZ0lDQm1iR1Y0TFdScGNtVmpkR2x2YmpvZ1kyOXNkVzF1TzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFp6Ykdsa1pYSWdMblZwTFhOc2FXUmxjaTEyWlhKMGFXTmhiQ0I3WEc0Z0lDQWdMeW9nU1c1dVpYSXNJR2x1ZG1semFXSnNaU0J6Ykdsa1pTQmthWFlnS2k5Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56S1R0Y2JpQWdJQ0JtYkdWNExXZHliM2M2SURFN1hHNGdJQ0FnYldGeVoybHVMV3hsWm5RNklHRjFkRzg3WEc0Z0lDQWdiV0Z5WjJsdUxYSnBaMmgwT2lCaGRYUnZPMXh1ZlZ4dVhHNHZLaUJYYVdSblpYUWdVSEp2WjNKbGMzTWdVM1I1YkdsdVp5QXFMMXh1WEc0dWNISnZaM0psYzNNdFltRnlJSHRjYmlBZ0lDQXRkMlZpYTJsMExYUnlZVzV6YVhScGIyNDZJRzV2Ym1VN1hHNGdJQ0FnTFcxdmVpMTBjbUZ1YzJsMGFXOXVPaUJ1YjI1bE8xeHVJQ0FnSUMxdGN5MTBjbUZ1YzJsMGFXOXVPaUJ1YjI1bE8xeHVJQ0FnSUMxdkxYUnlZVzV6YVhScGIyNDZJRzV2Ym1VN1hHNGdJQ0FnZEhKaGJuTnBkR2x2YmpvZ2JtOXVaVHRjYm4xY2JseHVMbkJ5YjJkeVpYTnpMV0poY2lCN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVmVnh1WEc0dWNISnZaM0psYzNNdFltRnlJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMWljbUZ1WkMxamIyeHZjakVwTzF4dWZWeHVYRzR1Y0hKdlozSmxjM010WW1GeUxYTjFZMk5sYzNNZ2UxeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFhOMVkyTmxjM010WTI5c2IzSXhLVHRjYm4xY2JseHVMbkJ5YjJkeVpYTnpMV0poY2kxcGJtWnZJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMXBibVp2TFdOdmJHOXlNU2s3WEc1OVhHNWNiaTV3Y205bmNtVnpjeTFpWVhJdGQyRnlibWx1WnlCN1hHNGdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJGeWJpMWpiMnh2Y2pFcE8xeHVmVnh1WEc0dWNISnZaM0psYzNNdFltRnlMV1JoYm1kbGNpQjdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdFpYSnliM0l0WTI5c2IzSXhLVHRjYm4xY2JseHVMbkJ5YjJkeVpYTnpJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMXNZWGx2ZFhRdFkyOXNiM0l5S1R0Y2JpQWdJQ0JpYjNKa1pYSTZJRzV2Ym1VN1hHNGdJQ0FnWW05NExYTm9ZV1J2ZHpvZ2JtOXVaVHRjYm4xY2JseHVMeW9nU0c5eWFYTnZiblJoYkNCUWNtOW5jbVZ6Y3lBcUwxeHVYRzR1ZDJsa1oyVjBMV2h3Y205bmNtVnpjeUI3WEc0Z0lDQWdMeW9nVUhKdlozSmxjM01nUW1GeUlDb3ZYRzRnSUNBZ2FHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVJQ0FnSUhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUNrN1hHNGdJQ0FnWVd4cFoyNHRhWFJsYlhNNklHTmxiblJsY2p0Y2JseHVmVnh1WEc0dWQybGtaMlYwTFdod2NtOW5jbVZ6Y3lBdWNISnZaM0psYzNNZ2UxeHVJQ0FnSUdac1pYZ3RaM0p2ZHpvZ01UdGNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwTzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0Y0dGa1pHbHVaeWs3WEc0Z0lDQWdZV3hwWjI0dGMyVnNaam9nYzNSeVpYUmphRHRjYmlBZ0lDQXZLaUJQZG1WeWNtbGtaU0JpYjI5MGMzUnlZWEFnYzNSNWJHVWdLaTljYmlBZ0lDQm9aV2xuYUhRNklHbHVhWFJwWVd3N1hHNTlYRzVjYmk4cUlGWmxjblJwWTJGc0lGQnliMmR5WlhOeklDb3ZYRzVjYmk1M2FXUm5aWFF0ZG5CeWIyZHlaWE56SUh0Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRkbVZ5ZEdsallXd3RhR1ZwWjJoMEtUdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdndGRHbHVlU2s3WEc1OVhHNWNiaTUzYVdSblpYUXRkbkJ5YjJkeVpYTnpJQzV3Y205bmNtVnpjeUI3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJSGRwWkhSb09pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYQnliMmR5WlhOekxYUm9hV05yYm1WemN5azdYRzRnSUNBZ2JXRnlaMmx1TFd4bFpuUTZJR0YxZEc4N1hHNGdJQ0FnYldGeVoybHVMWEpwWjJoME9pQmhkWFJ2TzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklEQTdYRzU5WEc1Y2JpOHFJRk5sYkdWamRDQlhhV1JuWlhRZ1UzUjViR2x1WnlBcUwxeHVYRzR1ZDJsa1oyVjBMV1J5YjNCa2IzZHVJSHRjYmlBZ0lDQm9aV2xuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFdobGFXZG9kQ2s3WEc0Z0lDQWdkMmxrZEdnNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFhkcFpIUm9LVHRjYmlBZ0lDQnNhVzVsTFdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNibjFjYmx4dUxuZHBaR2RsZEMxa2NtOXdaRzkzYmlBK0lITmxiR1ZqZENCN1hHNGdJQ0FnY0dGa1pHbHVaeTF5YVdkb2REb2dNakJ3ZUR0Y2JpQWdJQ0JpYjNKa1pYSTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFhkcFpIUm9LU0J6YjJ4cFpDQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdKdmNtUmxjaTFqYjJ4dmNpazdYRzRnSUNBZ1ltOXlaR1Z5TFhKaFpHbDFjem9nTUR0Y2JpQWdJQ0JvWldsbmFIUTZJR2x1YUdWeWFYUTdYRzRnSUNBZ1pteGxlRG9nTVNBeElIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFhkcFpIUm9MWE5vYjNKMEtUdGNiaUFnSUNCdGFXNHRkMmxrZEdnNklEQTdJQzhxSUZSb2FYTWdiV0ZyWlhNZ2FYUWdjRzl6YzJsaWJHVWdabTl5SUhSb1pTQm1iR1Y0WW05NElIUnZJSE5vY21sdWF5QjBhR2x6SUdsdWNIVjBJQ292WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdJQ0J2ZFhSc2FXNWxPaUJ1YjI1bElDRnBiWEJ2Y25SaGJuUTdYRzRnSUNBZ1ltOTRMWE5vWVdSdmR6b2dibTl1WlR0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSmhZMnRuY205MWJtUXRZMjlzYjNJcE8xeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXTnZiRzl5S1R0Y2JpQWdJQ0JtYjI1MExYTnBlbVU2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Wm05dWRDMXphWHBsS1R0Y2JpQWdJQ0IyWlhKMGFXTmhiQzFoYkdsbmJqb2dkRzl3TzF4dUlDQWdJSEJoWkdScGJtY3RiR1ZtZERvZ1kyRnNZeWdnZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMXdZV1JrYVc1bktTQXFJRElwTzF4dVhIUmhjSEJsWVhKaGJtTmxPaUJ1YjI1bE8xeHVYSFF0ZDJWaWEybDBMV0Z3Y0dWaGNtRnVZMlU2SUc1dmJtVTdYRzVjZEMxdGIzb3RZWEJ3WldGeVlXNWpaVG9nYm05dVpUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xYSmxjR1ZoZERvZ2JtOHRjbVZ3WldGME8xeHVYSFJpWVdOclozSnZkVzVrTFhOcGVtVTZJREl3Y0hnN1hHNWNkR0poWTJ0bmNtOTFibVF0Y0c5emFYUnBiMjQ2SUhKcFoyaDBJR05sYm5SbGNqdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXbHRZV2RsT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdSeWIzQmtiM2R1TFdGeWNtOTNLVHRjYm4xY2JpNTNhV1JuWlhRdFpISnZjR1J2ZDI0Z1BpQnpaV3hsWTNRNlptOWpkWE1nZTF4dUlDQWdJR0p2Y21SbGNpMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJuQjFkQzFtYjJOMWN5MWliM0prWlhJdFkyOXNiM0lwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV1J5YjNCa2IzZHVJRDRnYzJWc1pXTjBPbVJwYzJGaWJHVmtJSHRjYmlBZ0lDQnZjR0ZqYVhSNU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXUnBjMkZpYkdWa0xXOXdZV05wZEhrcE8xeHVmVnh1WEc0dktpQlVieUJrYVhOaFlteGxJSFJvWlNCa2IzUjBaV1FnWW05eVpHVnlJR2x1SUVacGNtVm1iM2dnWVhKdmRXNWtJSE5sYkdWamRDQmpiMjUwY205c2N5NWNiaUFnSUZObFpTQm9kSFJ3T2k4dmMzUmhZMnR2ZG1WeVpteHZkeTVqYjIwdllTOHhPRGcxTXpBd01pQXFMMXh1TG5kcFpHZGxkQzFrY205d1pHOTNiaUErSUhObGJHVmpkRG90Ylc5NkxXWnZZM1Z6Y21sdVp5QjdYRzRnSUNBZ1kyOXNiM0k2SUhSeVlXNXpjR0Z5Wlc1ME8xeHVJQ0FnSUhSbGVIUXRjMmhoWkc5M09pQXdJREFnTUNBak1EQXdPMXh1ZlZ4dVhHNHZLaUJUWld4bFkzUWdZVzVrSUZObGJHVmpkRTExYkhScGNHeGxJQ292WEc1Y2JpNTNhV1JuWlhRdGMyVnNaV04wSUh0Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGQybGtkR2dwTzF4dUlDQWdJR3hwYm1VdGFHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1WEc0Z0lDQWdMeW9nUW1WallYVnpaU0JHYVhKbFptOTRJR1JsWm1sdVpYTWdkR2hsSUdKaGMyVnNhVzVsSUc5bUlHRWdjMlZzWldOMElHRnpJSFJvWlNCaWIzUjBiMjBnYjJZZ2RHaGxYRzRnSUNBZ1kyOXVkSEp2YkN3Z2QyVWdZV3hwWjI0Z2RHaGxJR1Z1ZEdseVpTQmpiMjUwY205c0lIUnZJSFJvWlNCMGIzQWdZVzVrSUdGa1pDQndZV1JrYVc1bklIUnZJSFJvWlZ4dUlDQWdJSE5sYkdWamRDQjBieUJuWlhRZ1lXNGdZWEJ3Y205NGFXMWhkR1VnWm1seWMzUWdiR2x1WlNCaVlYTmxiR2x1WlNCaGJHbG5ibTFsYm5RdUlDb3ZYRzRnSUNBZ1lXeHBaMjR0YVhSbGJYTTZJR1pzWlhndGMzUmhjblE3WEc1OVhHNWNiaTUzYVdSblpYUXRjMlZzWldOMElENGdjMlZzWldOMElIdGNiaUFnSUNCaWIzSmtaWEk2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1d2RYUXRZbTl5WkdWeUxYZHBaSFJvS1NCemIyeHBaQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSnZjbVJsY2kxamIyeHZjaWs3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxaVlXTnJaM0p2ZFc1a0xXTnZiRzl5S1R0Y2JpQWdJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxamIyeHZjaWs3WEc0Z0lDQWdabTl1ZEMxemFYcGxPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2s3WEc0Z0lDQWdabXhsZURvZ01TQXhJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzVzYVc1bExYZHBaSFJvTFhOb2IzSjBLVHRjYmlBZ0lDQnZkWFJzYVc1bE9pQnViMjVsSUNGcGJYQnZjblJoYm5RN1hHNGdJQ0FnYjNabGNtWnNiM2M2SUdGMWRHODdYRzRnSUNBZ2FHVnBaMmgwT2lCcGJtaGxjbWwwTzF4dVhHNGdJQ0FnTHlvZ1FtVmpZWFZ6WlNCR2FYSmxabTk0SUdSbFptbHVaWE1nZEdobElHSmhjMlZzYVc1bElHOW1JR0VnYzJWc1pXTjBJR0Z6SUhSb1pTQmliM1IwYjIwZ2IyWWdkR2hsWEc0Z0lDQWdZMjl1ZEhKdmJDd2dkMlVnWVd4cFoyNGdkR2hsSUdWdWRHbHlaU0JqYjI1MGNtOXNJSFJ2SUhSb1pTQjBiM0FnWVc1a0lHRmtaQ0J3WVdSa2FXNW5JSFJ2SUhSb1pWeHVJQ0FnSUhObGJHVmpkQ0IwYnlCblpYUWdZVzRnWVhCd2NtOTRhVzFoZEdVZ1ptbHljM1FnYkdsdVpTQmlZWE5sYkdsdVpTQmhiR2xuYm0xbGJuUXVJQ292WEc0Z0lDQWdjR0ZrWkdsdVp5MTBiM0E2SURWd2VEdGNibjFjYmx4dUxuZHBaR2RsZEMxelpXeGxZM1FnUGlCelpXeGxZM1E2Wm05amRYTWdlMXh1SUNBZ0lHSnZjbVJsY2kxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMW1iMk4xY3kxaWIzSmtaWEl0WTI5c2IzSXBPMXh1ZlZ4dVhHNHVkMmxuWlhRdGMyVnNaV04wSUQ0Z2MyVnNaV04wSUQ0Z2IzQjBhVzl1SUh0Y2JpQWdJQ0J3WVdSa2FXNW5MV3hsWm5RNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0Y0dGa1pHbHVaeWs3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ0x5b2diR2x1WlMxb1pXbG5hSFFnWkc5bGMyNG5kQ0IzYjNKcklHOXVJSE52YldVZ1luSnZkM05sY25NZ1ptOXlJSE5sYkdWamRDQnZjSFJwYjI1eklDb3ZYRzRnSUNBZ2NHRmtaR2x1WnkxMGIzQTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLUzEyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2t2TWlrN1hHNGdJQ0FnY0dGa1pHbHVaeTFpYjNSMGIyMDZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLUzEyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2t2TWlrN1hHNTlYRzVjYmx4dVhHNHZLaUJVYjJkbmJHVWdRblYwZEc5dWN5QlRkSGxzYVc1bklDb3ZYRzVjYmk1M2FXUm5aWFF0ZEc5bloyeGxMV0oxZEhSdmJuTWdlMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVmVnh1WEc0dWQybGtaMlYwTFhSdloyZHNaUzFpZFhSMGIyNXpJQzUzYVdSblpYUXRkRzluWjJ4bExXSjFkSFJ2YmlCN1hHNGdJQ0FnYldGeVoybHVMV3hsWm5RNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGJXRnlaMmx1S1R0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGJXRnlaMmx1S1R0Y2JuMWNibHh1TG5kcFpHZGxkQzEwYjJkbmJHVXRZblYwZEc5dWN5QXVhblZ3ZVhSbGNpMWlkWFIwYjI0NlpHbHpZV0pzWldRZ2UxeHVJQ0FnSUc5d1lXTnBkSGs2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WkdsellXSnNaV1F0YjNCaFkybDBlU2s3WEc1OVhHNWNiaThxSUZKaFpHbHZJRUoxZEhSdmJuTWdVM1I1YkdsdVp5QXFMMXh1WEc0dWQybGtaMlYwTFhKaFpHbHZJSHRjYmlBZ0lDQjNhV1IwYURvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0ZDJsa2RHZ3BPMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVmVnh1WEc0dWQybGtaMlYwTFhKaFpHbHZMV0p2ZUNCN1hHNGdJQ0FnWkdsemNHeGhlVG9nWm14bGVEdGNiaUFnSUNCbWJHVjRMV1JwY21WamRHbHZiam9nWTI5c2RXMXVPMXh1SUNBZ0lHRnNhV2R1TFdsMFpXMXpPaUJ6ZEhKbGRHTm9PMXh1SUNBZ0lHSnZlQzF6YVhwcGJtYzZJR0p2Y21SbGNpMWliM2c3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGNtRmthVzh0YVhSbGJTMW9aV2xuYUhRdFlXUnFkWE4wYldWdWRDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGNtRmthVzh0WW05NElHeGhZbVZzSUh0Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjbUZrYVc4dGFYUmxiUzFvWldsbmFIUXBPMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWEpoWkdsdkxXbDBaVzB0YUdWcFoyaDBLVHRjYmlBZ0lDQm1iMjUwTFhOcGVtVTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRabTl1ZEMxemFYcGxLVHRjYm4xY2JseHVMbmRwWkdkbGRDMXlZV1JwYnkxaWIzZ2dhVzV3ZFhRZ2UxeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF5WVdScGJ5MXBkR1Z0TFdobGFXZG9kQ2s3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Y21Ga2FXOHRhWFJsYlMxb1pXbG5hSFFwTzF4dUlDQWdJRzFoY21kcGJqb2dNQ0JqWVd4aktDQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwSUNvZ01pQXBJREFnTVhCNE8xeHVJQ0FnSUdac2IyRjBPaUJzWldaME8xeHVmVnh1WEc0dktpQkRiMnh2Y2lCUWFXTnJaWElnVTNSNWJHbHVaeUFxTDF4dVhHNHVkMmxrWjJWMExXTnZiRzl5Y0dsamEyVnlJSHRjYmlBZ0lDQjNhV1IwYURvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0ZDJsa2RHZ3BPMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQnNhVzVsTFdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNibjFjYmx4dUxuZHBaR2RsZEMxamIyeHZjbkJwWTJ0bGNpQStJQzUzYVdSblpYUXRZMjlzYjNKd2FXTnJaWEl0YVc1d2RYUWdlMXh1SUNBZ0lHWnNaWGd0WjNKdmR6b2dNVHRjYmlBZ0lDQm1iR1Y0TFhOb2NtbHVhem9nTVR0Y2JpQWdJQ0J0YVc0dGQybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMWGRwWkhSb0xYUnBibmtwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV052Ykc5eWNHbGphMlZ5SUdsdWNIVjBXM1I1Y0dVOVhDSmpiMnh2Y2x3aVhTQjdYRzRnSUNBZ2QybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ2FHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1SUNBZ0lIQmhaR1JwYm1jNklEQWdNbkI0T3lBdktpQnRZV3RsSUhSb1pTQmpiMnh2Y2lCemNYVmhjbVVnWVdOMGRXRnNiSGtnYzNGMVlYSmxJRzl1SUVOb2NtOXRaU0J2YmlCUFV5QllJQ292WEc0Z0lDQWdZbUZqYTJkeWIzVnVaRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWlZV05yWjNKdmRXNWtMV052Ykc5eUtUdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWpiMnh2Y2lrN1hHNGdJQ0FnWW05eVpHVnlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSnZjbVJsY2kxM2FXUjBhQ2tnYzI5c2FXUWdkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxaWIzSmtaWEl0WTI5c2IzSXBPMXh1SUNBZ0lHSnZjbVJsY2kxc1pXWjBPaUJ1YjI1bE8xeHVJQ0FnSUdac1pYZ3RaM0p2ZHpvZ01EdGNiaUFnSUNCbWJHVjRMWE5vY21sdWF6b2dNRHRjYmlBZ0lDQmliM2d0YzJsNmFXNW5PaUJpYjNKa1pYSXRZbTk0TzF4dUlDQWdJR0ZzYVdkdUxYTmxiR1k2SUhOMGNtVjBZMmc3WEc0Z0lDQWdiM1YwYkdsdVpUb2dibTl1WlNBaGFXMXdiM0owWVc1ME8xeHVmVnh1WEc0dWQybGtaMlYwTFdOdmJHOXljR2xqYTJWeUxtTnZibU5wYzJVZ2FXNXdkWFJiZEhsd1pUMWNJbU52Ykc5eVhDSmRJSHRjYmlBZ0lDQmliM0prWlhJdGJHVm1kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFdOdmJHOXlLVHRjYm4xY2JseHVMbmRwWkdkbGRDMWpiMnh2Y25CcFkydGxjaUJwYm5CMWRGdDBlWEJsUFZ3aVkyOXNiM0pjSWwwNlptOWpkWE1zSUM1M2FXUm5aWFF0WTI5c2IzSndhV05yWlhJZ2FXNXdkWFJiZEhsd1pUMWNJblJsZUhSY0lsMDZabTlqZFhNZ2UxeHVJQ0FnSUdKdmNtUmxjaTFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxbWIyTjFjeTFpYjNKa1pYSXRZMjlzYjNJcE8xeHVmVnh1WEc0dWQybGtaMlYwTFdOdmJHOXljR2xqYTJWeUlHbHVjSFYwVzNSNWNHVTlYQ0owWlhoMFhDSmRJSHRjYmlBZ0lDQm1iR1Y0TFdkeWIzYzZJREU3WEc0Z0lDQWdiM1YwYkdsdVpUb2dibTl1WlNBaGFXMXdiM0owWVc1ME8xeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JpQWdJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV0poWTJ0bmNtOTFibVF0WTI5c2IzSXBPMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV052Ykc5eUtUdGNiaUFnSUNCaWIzSmtaWEk2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1d2RYUXRZbTl5WkdWeUxYZHBaSFJvS1NCemIyeHBaQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSnZjbVJsY2kxamIyeHZjaWs3WEc0Z0lDQWdabTl1ZEMxemFYcGxPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2s3WEc0Z0lDQWdjR0ZrWkdsdVp6b2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxd1lXUmthVzVuS1NCallXeGpLQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExYQmhaR1JwYm1jcElDb2dJRElnS1R0Y2JpQWdJQ0J0YVc0dGQybGtkR2c2SURBN0lDOHFJRlJvYVhNZ2JXRnJaWE1nYVhRZ2NHOXpjMmxpYkdVZ1ptOXlJSFJvWlNCbWJHVjRZbTk0SUhSdklITm9jbWx1YXlCMGFHbHpJR2x1Y0hWMElDb3ZYRzRnSUNBZ1pteGxlQzF6YUhKcGJtczZJREU3WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JuMWNibHh1TG5kcFpHZGxkQzFqYjJ4dmNuQnBZMnRsY2lCcGJuQjFkRnQwZVhCbFBWd2lkR1Y0ZEZ3aVhUcGthWE5oWW14bFpDQjdYRzRnSUNBZ2IzQmhZMmwwZVRvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxa2FYTmhZbXhsWkMxdmNHRmphWFI1S1R0Y2JuMWNibHh1THlvZ1JHRjBaU0JRYVdOclpYSWdVM1I1YkdsdVp5QXFMMXh1WEc0dWQybGtaMlYwTFdSaGRHVndhV05yWlhJZ2UxeHVJQ0FnSUhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUNrN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVJQ0FnSUd4cGJtVXRhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV1JoZEdWd2FXTnJaWElnYVc1d2RYUmJkSGx3WlQxY0ltUmhkR1ZjSWwwZ2UxeHVJQ0FnSUdac1pYZ3RaM0p2ZHpvZ01UdGNiaUFnSUNCbWJHVjRMWE5vY21sdWF6b2dNVHRjYmlBZ0lDQnRhVzR0ZDJsa2RHZzZJREE3SUM4cUlGUm9hWE1nYldGclpYTWdhWFFnY0c5emMybGliR1VnWm05eUlIUm9aU0JtYkdWNFltOTRJSFJ2SUhOb2NtbHVheUIwYUdseklHbHVjSFYwSUNvdlhHNGdJQ0FnYjNWMGJHbHVaVG9nYm05dVpTQWhhVzF3YjNKMFlXNTBPMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQmliM0prWlhJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0WW05eVpHVnlMWGRwWkhSb0tTQnpiMnhwWkNCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV0p2Y21SbGNpMWpiMnh2Y2lrN1hHNGdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWlZV05yWjNKdmRXNWtMV052Ykc5eUtUdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWpiMnh2Y2lrN1hHNGdJQ0FnWm05dWRDMXphWHBsT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdadmJuUXRjMmw2WlNrN1hHNGdJQ0FnY0dGa1pHbHVaem9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMXdZV1JrYVc1bktTQmpZV3hqS0NCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMWEJoWkdScGJtY3BJQ29nSURJZ0tUdGNiaUFnSUNCaWIzZ3RjMmw2YVc1bk9pQmliM0prWlhJdFltOTRPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXUmhkR1Z3YVdOclpYSWdhVzV3ZFhSYmRIbHdaVDFjSW1SaGRHVmNJbDA2Wm05amRYTWdlMXh1SUNBZ0lHSnZjbVJsY2kxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMW1iMk4xY3kxaWIzSmtaWEl0WTI5c2IzSXBPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXUmhkR1Z3YVdOclpYSWdhVzV3ZFhSYmRIbHdaVDFjSW1SaGRHVmNJbDA2YVc1MllXeHBaQ0I3WEc0Z0lDQWdZbTl5WkdWeUxXTnZiRzl5T2lCMllYSW9MUzFxY0MxM1lYSnVMV052Ykc5eU1TazdYRzU5WEc1Y2JpNTNhV1JuWlhRdFpHRjBaWEJwWTJ0bGNpQnBibkIxZEZ0MGVYQmxQVndpWkdGMFpWd2lYVHBrYVhOaFlteGxaQ0I3WEc0Z0lDQWdiM0JoWTJsMGVUb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWthWE5oWW14bFpDMXZjR0ZqYVhSNUtUdGNibjFjYmx4dUx5b2dVR3hoZVNCWGFXUm5aWFFnS2k5Y2JseHVMbmRwWkdkbGRDMXdiR0Y1SUh0Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGQybGtkR2d0YzJodmNuUXBPMXh1SUNBZ0lHUnBjM0JzWVhrNklHWnNaWGc3WEc0Z0lDQWdZV3hwWjI0dGFYUmxiWE02SUhOMGNtVjBZMmc3WEc1OVhHNWNiaTUzYVdSblpYUXRjR3hoZVNBdWFuVndlWFJsY2kxaWRYUjBiMjRnZTF4dUlDQWdJR1pzWlhndFozSnZkem9nTVR0Y2JpQWdJQ0JvWldsbmFIUTZJR0YxZEc4N1hHNTlYRzVjYmk1M2FXUm5aWFF0Y0d4aGVTQXVhblZ3ZVhSbGNpMWlkWFIwYjI0NlpHbHpZV0pzWldRZ2UxeHVJQ0FnSUc5d1lXTnBkSGs2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WkdsellXSnNaV1F0YjNCaFkybDBlU2s3WEc1OVhHNWNiaThxSUZSaFlpQlhhV1JuWlhRZ0tpOWNibHh1TG1wMWNIbDBaWEl0ZDJsa1oyVjBjeTUzYVdSblpYUXRkR0ZpSUh0Y2JpQWdJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeHVJQ0FnSUdac1pYZ3RaR2x5WldOMGFXOXVPaUJqYjJ4MWJXNDdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUI3WEc0Z0lDQWdMeW9nVG1WalpYTnpZWEo1SUhOdklIUm9ZWFFnWVNCMFlXSWdZMkZ1SUdKbElITm9hV1owWldRZ1pHOTNiaUIwYnlCdmRtVnliR0Y1SUhSb1pTQmliM0prWlhJZ2IyWWdkR2hsSUdKdmVDQmlaV3h2ZHk0Z0tpOWNiaUFnSUNCdmRtVnlabXh2ZHkxNE9pQjJhWE5wWW14bE8xeHVJQ0FnSUc5MlpYSm1iRzkzTFhrNklIWnBjMmxpYkdVN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpQStJQzV3TFZSaFlrSmhjaTFqYjI1MFpXNTBJSHRjYmlBZ0lDQXZLaUJOWVd0bElITjFjbVVnZEdoaGRDQjBhR1VnZEdGaUlHZHliM2R6SUdaeWIyMGdZbTkwZEc5dElIVndJQ292WEc0Z0lDQWdZV3hwWjI0dGFYUmxiWE02SUdac1pYZ3RaVzVrTzF4dUlDQWdJRzFwYmkxM2FXUjBhRG9nTUR0Y2JpQWdJQ0J0YVc0dGFHVnBaMmgwT2lBd08xeHVmVnh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVkMmxrWjJWMExYUmhZaTFqYjI1MFpXNTBjeUI3WEc0Z0lDQWdkMmxrZEdnNklERXdNQ1U3WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdJQ0J0WVhKbmFXNDZJREE3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaRG9nZG1GeUtDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1TazdYRzRnSUNBZ1kyOXNiM0k2SUhaaGNpZ3RMV3B3TFhWcExXWnZiblF0WTI5c2IzSXhLVHRjYmlBZ0lDQmliM0prWlhJNklIWmhjaWd0TFdwd0xXSnZjbVJsY2kxM2FXUjBhQ2tnYzI5c2FXUWdkbUZ5S0MwdGFuQXRZbTl5WkdWeUxXTnZiRzl5TVNrN1hHNGdJQ0FnY0dGa1pHbHVaem9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFqYjI1MFlXbHVaWEl0Y0dGa1pHbHVaeWs3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJRzkyWlhKbWJHOTNPaUJoZFhSdk8xeHVmVnh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdlMXh1SUNBZ0lHWnZiblE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Wm05dWRDMXphWHBsS1NCSVpXeDJaWFJwWTJFc0lFRnlhV0ZzTENCellXNXpMWE5sY21sbU8xeHVJQ0FnSUcxcGJpMW9aV2xuYUhRNklHTmhiR01vZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFvYjNKcGVtOXVkR0ZzTFhSaFlpMW9aV2xuYUhRcElDc2dkbUZ5S0MwdGFuQXRZbTl5WkdWeUxYZHBaSFJvS1NrN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpQXVjQzFVWVdKQ1lYSXRkR0ZpSUh0Y2JpQWdJQ0JtYkdWNE9pQXdJREVnZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFvYjNKcGVtOXVkR0ZzTFhSaFlpMTNhV1IwYUNrN1hHNGdJQ0FnYldsdUxYZHBaSFJvT2lBek5YQjRPMXh1SUNBZ0lHMXBiaTFvWldsbmFIUTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxb2IzSnBlbTl1ZEdGc0xYUmhZaTFvWldsbmFIUXBJQ3NnZG1GeUtDMHRhbkF0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ2JHbHVaUzFvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhRzl5YVhwdmJuUmhiQzEwWVdJdGFHVnBaMmgwS1R0Y2JpQWdJQ0J0WVhKbmFXNHRiR1ZtZERvZ1kyRnNZeWd0TVNBcUlIWmhjaWd0TFdwd0xXSnZjbVJsY2kxM2FXUjBhQ2twTzF4dUlDQWdJSEJoWkdScGJtYzZJREJ3ZUNBeE1IQjRPMXh1SUNBZ0lHSmhZMnRuY205MWJtUTZJSFpoY2lndExXcHdMV3hoZVc5MWRDMWpiMnh2Y2pJcE8xeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzExYVMxbWIyNTBMV052Ykc5eU1pazdYRzRnSUNBZ1ltOXlaR1Z5T2lCMllYSW9MUzFxY0MxaWIzSmtaWEl0ZDJsa2RHZ3BJSE52Ykdsa0lIWmhjaWd0TFdwd0xXSnZjbVJsY2kxamIyeHZjakVwTzF4dUlDQWdJR0p2Y21SbGNpMWliM1IwYjIwNklHNXZibVU3WEc0Z0lDQWdjRzl6YVhScGIyNDZJSEpsYkdGMGFYWmxPMXh1ZlZ4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWElnTG5BdFZHRmlRbUZ5TFhSaFlpNXdMVzF2WkMxamRYSnlaVzUwSUh0Y2JpQWdJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUM4cUlGZGxJSGRoYm5RZ2RHaGxJR0poWTJ0bmNtOTFibVFnZEc4Z2JXRjBZMmdnZEdobElIUmhZaUJqYjI1MFpXNTBJR0poWTJ0bmNtOTFibVFnS2k5Y2JpQWdJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzFxY0Mxc1lYbHZkWFF0WTI5c2IzSXhLVHRjYmlBZ0lDQnRhVzR0YUdWcFoyaDBPaUJqWVd4aktIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFHOXlhWHB2Ym5SaGJDMTBZV0l0YUdWcFoyaDBLU0FySURJZ0tpQjJZWElvTFMxcWNDMWliM0prWlhJdGQybGtkR2dwS1R0Y2JpQWdJQ0IwY21GdWMyWnZjbTA2SUhSeVlXNXpiR0YwWlZrb2RtRnlLQzB0YW5BdFltOXlaR1Z5TFhkcFpIUm9LU2s3WEc0Z0lDQWdiM1psY21ac2IzYzZJSFpwYzJsaWJHVTdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaUxuQXRiVzlrTFdOMWNuSmxiblE2WW1WbWIzSmxJSHRjYmlBZ0lDQndiM05wZEdsdmJqb2dZV0p6YjJ4MWRHVTdYRzRnSUNBZ2RHOXdPaUJqWVd4aktDMHhJQ29nZG1GeUtDMHRhbkF0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ2JHVm1kRG9nWTJGc1l5Z3RNU0FxSUhaaGNpZ3RMV3B3TFdKdmNtUmxjaTEzYVdSMGFDa3BPMXh1SUNBZ0lHTnZiblJsYm5RNklDY25PMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxb2IzSnBlbTl1ZEdGc0xYUmhZaTEwYjNBdFltOXlaR1Z5S1R0Y2JpQWdJQ0IzYVdSMGFEb2dZMkZzWXlneE1EQWxJQ3NnTWlBcUlIWmhjaWd0TFdwd0xXSnZjbVJsY2kxM2FXUjBhQ2twTzF4dUlDQWdJR0poWTJ0bmNtOTFibVE2SUhaaGNpZ3RMV3B3TFdKeVlXNWtMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaU9tWnBjbk4wTFdOb2FXeGtJSHRjYmlBZ0lDQnRZWEpuYVc0dGJHVm1kRG9nTUR0Y2JuMWNibHh1TG1wMWNIbDBaWEl0ZDJsa1oyVjBjeTUzYVdSblpYUXRkR0ZpSUQ0Z0xuQXRWR0ZpUW1GeUlDNXdMVlJoWWtKaGNpMTBZV0k2YUc5MlpYSTZibTkwS0M1d0xXMXZaQzFqZFhKeVpXNTBLU0I3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaRG9nZG1GeUtDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1TazdYRzRnSUNBZ1kyOXNiM0k2SUhaaGNpZ3RMV3B3TFhWcExXWnZiblF0WTI5c2IzSXhLVHRjYm4xY2JseHVMbXAxY0hsMFpYSXRkMmxrWjJWMGN5NTNhV1JuWlhRdGRHRmlJRDRnTG5BdFZHRmlRbUZ5SUM1d0xXMXZaQzFqYkc5ellXSnNaU0ErSUM1d0xWUmhZa0poY2kxMFlXSkRiRzl6WlVsamIyNGdlMXh1SUNBZ0lHMWhjbWRwYmkxc1pXWjBPaUEwY0hnN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpQXVjQzF0YjJRdFkyeHZjMkZpYkdVZ1BpQXVjQzFVWVdKQ1lYSXRkR0ZpUTJ4dmMyVkpZMjl1T21KbFptOXlaU0I3WEc0Z0lDQWdabTl1ZEMxbVlXMXBiSGs2SUVadmJuUkJkMlZ6YjIxbE8xeHVJQ0FnSUdOdmJuUmxiblE2SUNkY1hHWXdNR1FuT3lBdktpQmpiRzl6WlNBcUwxeHVmVnh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdMbkF0VkdGaVFtRnlMWFJoWWtsamIyNHNYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpMbmRwWkdkbGRDMTBZV0lnUGlBdWNDMVVZV0pDWVhJZ0xuQXRWR0ZpUW1GeUxYUmhZa3hoWW1Wc0xGeHVMbXAxY0hsMFpYSXRkMmxrWjJWMGN5NTNhV1JuWlhRdGRHRmlJRDRnTG5BdFZHRmlRbUZ5SUM1d0xWUmhZa0poY2kxMFlXSkRiRzl6WlVsamIyNGdlMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2h2Y21sNmIyNTBZV3d0ZEdGaUxXaGxhV2RvZENrN1hHNTlYRzVjYmk4cUlFRmpZMjl5WkdsdmJpQlhhV1JuWlhRZ0tpOWNibHh1TG5BdFEyOXNiR0Z3YzJVZ2UxeHVJQ0FnSUdScGMzQnNZWGs2SUdac1pYZzdYRzRnSUNBZ1pteGxlQzFrYVhKbFkzUnBiMjQ2SUdOdmJIVnRianRjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nYzNSeVpYUmphRHRjYm4xY2JseHVMbkF0UTI5c2JHRndjMlV0YUdWaFpHVnlJSHRjYmlBZ0lDQndZV1JrYVc1bk9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwTzF4dUlDQWdJR04xY25OdmNqb2djRzlwYm5SbGNqdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZFdrdFptOXVkQzFqYjJ4dmNqSXBPMXh1SUNBZ0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklIWmhjaWd0TFdwd0xXeGhlVzkxZEMxamIyeHZjaklwTzF4dUlDQWdJR0p2Y21SbGNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMV0p2Y21SbGNpMWpiMnh2Y2pFcE8xeHVJQ0FnSUhCaFpHUnBibWM2SUdOaGJHTW9kbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWpiMjUwWVdsdVpYSXRjR0ZrWkdsdVp5a2dLaUF5SUM4Z015a2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWpiMjUwWVdsdVpYSXRjR0ZrWkdsdVp5azdYRzRnSUNBZ1ptOXVkQzEzWldsbmFIUTZJR0p2YkdRN1hHNTlYRzVjYmk1d0xVTnZiR3hoY0hObExXaGxZV1JsY2pwb2IzWmxjaUI3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRiR0Y1YjNWMExXTnZiRzl5TVNrN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNibjFjYmx4dUxuQXRRMjlzYkdGd2MyVXRiM0JsYmlBK0lDNXdMVU52Ykd4aGNITmxMV2hsWVdSbGNpQjdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdFkyOXNiM0l3S1R0Y2JpQWdJQ0JqZFhKemIzSTZJR1JsWm1GMWJIUTdYRzRnSUNBZ1ltOXlaR1Z5TFdKdmRIUnZiVG9nYm05dVpUdGNibjFjYmx4dUxuQXRRMjlzYkdGd2MyVWdMbkF0UTI5c2JHRndjMlV0YUdWaFpHVnlPanBpWldadmNtVWdlMXh1SUNBZ0lHTnZiblJsYm5RNklDZGNYR1l3WkdGY1hEQXdRVEFuT3lBZ0x5b2dZMkZ5WlhRdGNtbG5hSFFzSUc1dmJpMWljbVZoYTJsdVp5QnpjR0ZqWlNBcUwxeHVJQ0FnSUdScGMzQnNZWGs2SUdsdWJHbHVaUzFpYkc5amF6dGNiaUFnSUNCbWIyNTBPaUJ1YjNKdFlXd2dibTl5YldGc0lHNXZjbTFoYkNBeE5IQjRMekVnUm05dWRFRjNaWE52YldVN1hHNGdJQ0FnWm05dWRDMXphWHBsT2lCcGJtaGxjbWwwTzF4dUlDQWdJSFJsZUhRdGNtVnVaR1Z5YVc1bk9pQmhkWFJ2TzF4dUlDQWdJQzEzWldKcmFYUXRabTl1ZEMxemJXOXZkR2hwYm1jNklHRnVkR2xoYkdsaGMyVmtPMXh1SUNBZ0lDMXRiM290YjNONExXWnZiblF0YzIxdmIzUm9hVzVuT2lCbmNtRjVjMk5oYkdVN1hHNTlYRzVjYmk1d0xVTnZiR3hoY0hObExXOXdaVzRnUGlBdWNDMURiMnhzWVhCelpTMW9aV0ZrWlhJNk9tSmxabTl5WlNCN1hHNGdJQ0FnWTI5dWRHVnVkRG9nSjF4Y1pqQmtOMXhjTURCQk1DYzdJQzhxSUdOaGNtVjBMV1J2ZDI0c0lHNXZiaTFpY21WaGEybHVaeUJ6Y0dGalpTQXFMMXh1ZlZ4dVhHNHVjQzFEYjJ4c1lYQnpaUzFqYjI1MFpXNTBjeUI3WEc0Z0lDQWdjR0ZrWkdsdVp6b2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWpiMjUwWVdsdVpYSXRjR0ZrWkdsdVp5azdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdFkyOXNiM0l4S1R0Y2JpQWdJQ0JpYjNKa1pYSXRiR1ZtZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxaWIzSmtaWEl0ZDJsa2RHZ3BJSE52Ykdsa0lIWmhjaWd0TFdwd0xXSnZjbVJsY2kxamIyeHZjakVwTzF4dUlDQWdJR0p2Y21SbGNpMXlhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxaWIzSmtaWEl0ZDJsa2RHZ3BJSE52Ykdsa0lIWmhjaWd0TFdwd0xXSnZjbVJsY2kxamIyeHZjakVwTzF4dUlDQWdJR0p2Y21SbGNpMWliM1IwYjIwNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdFltOXlaR1Z5TFhkcFpIUm9LU0J6YjJ4cFpDQjJZWElvTFMxcWNDMWliM0prWlhJdFkyOXNiM0l4S1R0Y2JpQWdJQ0J2ZG1WeVpteHZkem9nWVhWMGJ6dGNibjFjYmx4dUxuQXRRV05qYjNKa2FXOXVJSHRjYmlBZ0lDQmthWE53YkdGNU9pQm1iR1Y0TzF4dUlDQWdJR1pzWlhndFpHbHlaV04wYVc5dU9pQmpiMngxYlc0N1hHNGdJQ0FnWVd4cFoyNHRhWFJsYlhNNklITjBjbVYwWTJnN1hHNTlYRzVjYmk1d0xVRmpZMjl5WkdsdmJpQXVjQzFEYjJ4c1lYQnpaU0I3WEc0Z0lDQWdiV0Z5WjJsdUxXSnZkSFJ2YlRvZ01EdGNibjFjYmx4dUxuQXRRV05qYjNKa2FXOXVJQzV3TFVOdmJHeGhjSE5sSUNzZ0xuQXRRMjlzYkdGd2MyVWdlMXh1SUNBZ0lHMWhjbWRwYmkxMGIzQTZJRFJ3ZUR0Y2JuMWNibHh1WEc1Y2JpOHFJRWhVVFV3Z2QybGtaMlYwSUNvdlhHNWNiaTUzYVdSblpYUXRhSFJ0YkN3Z0xuZHBaR2RsZEMxb2RHMXNiV0YwYUNCN1hHNGdJQ0FnWm05dWRDMXphWHBsT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdadmJuUXRjMmw2WlNrN1hHNTlYRzVjYmk1M2FXUm5aWFF0YUhSdGJDQStJQzUzYVdSblpYUXRhSFJ0YkMxamIyNTBaVzUwTENBdWQybGtaMlYwTFdoMGJXeHRZWFJvSUQ0Z0xuZHBaR2RsZEMxb2RHMXNMV052Ym5SbGJuUWdlMXh1SUNBZ0lDOHFJRVpwYkd3Z2IzVjBJSFJvWlNCaGNtVmhJR2x1SUhSb1pTQklWRTFNSUhkcFpHZGxkQ0FxTDF4dUlDQWdJR0ZzYVdkdUxYTmxiR1k2SUhOMGNtVjBZMmc3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJR1pzWlhndGMyaHlhVzVyT2lBeE8xeHVJQ0FnSUM4cUlFMWhhMlZ6SUhOMWNtVWdkR2hsSUdKaGMyVnNhVzVsSUdseklITjBhV3hzSUdGc2FXZHVaV1FnZDJsMGFDQnZkR2hsY2lCbGJHVnRaVzUwY3lBcUwxeHVJQ0FnSUd4cGJtVXRhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dUlDQWdJQzhxSUUxaGEyVWdhWFFnY0c5emMybGliR1VnZEc4Z2FHRjJaU0JoWW5OdmJIVjBaV3g1TFhCdmMybDBhVzl1WldRZ1pXeGxiV1Z1ZEhNZ2FXNGdkR2hsSUdoMGJXd2dLaTljYmlBZ0lDQndiM05wZEdsdmJqb2djbVZzWVhScGRtVTdYRzU5WEc0aUxDSXZLaUJVYUdseklHWnBiR1VnYUdGeklHTnZaR1VnWkdWeWFYWmxaQ0JtY205dElGQm9iM053YUc5eVNsTWdRMU5USUdacGJHVnpMQ0JoY3lCdWIzUmxaQ0JpWld4dmR5NGdWR2hsSUd4cFkyVnVjMlVnWm05eUlIUm9hWE1nVUdodmMzQm9iM0pLVXlCamIyUmxJR2x6T2x4dVhHNURiM0I1Y21sbmFIUWdLR01wSURJd01UUXRNakF4Tnl3Z1VHaHZjM0JvYjNKS1V5QkRiMjUwY21saWRYUnZjbk5jYmtGc2JDQnlhV2RvZEhNZ2NtVnpaWEoyWldRdVhHNWNibEpsWkdsemRISnBZblYwYVc5dUlHRnVaQ0IxYzJVZ2FXNGdjMjkxY21ObElHRnVaQ0JpYVc1aGNua2dabTl5YlhNc0lIZHBkR2dnYjNJZ2QybDBhRzkxZEZ4dWJXOWthV1pwWTJGMGFXOXVMQ0JoY21VZ2NHVnliV2wwZEdWa0lIQnliM1pwWkdWa0lIUm9ZWFFnZEdobElHWnZiR3h2ZDJsdVp5QmpiMjVrYVhScGIyNXpJR0Z5WlNCdFpYUTZYRzVjYmlvZ1VtVmthWE4wY21saWRYUnBiMjV6SUc5bUlITnZkWEpqWlNCamIyUmxJRzExYzNRZ2NtVjBZV2x1SUhSb1pTQmhZbTkyWlNCamIzQjVjbWxuYUhRZ2JtOTBhV05sTENCMGFHbHpYRzRnSUd4cGMzUWdiMllnWTI5dVpHbDBhVzl1Y3lCaGJtUWdkR2hsSUdadmJHeHZkMmx1WnlCa2FYTmpiR0ZwYldWeUxseHVYRzRxSUZKbFpHbHpkSEpwWW5WMGFXOXVjeUJwYmlCaWFXNWhjbmtnWm05eWJTQnRkWE4wSUhKbGNISnZaSFZqWlNCMGFHVWdZV0p2ZG1VZ1kyOXdlWEpwWjJoMElHNXZkR2xqWlN4Y2JpQWdkR2hwY3lCc2FYTjBJRzltSUdOdmJtUnBkR2x2Ym5NZ1lXNWtJSFJvWlNCbWIyeHNiM2RwYm1jZ1pHbHpZMnhoYVcxbGNpQnBiaUIwYUdVZ1pHOWpkVzFsYm5SaGRHbHZibHh1SUNCaGJtUXZiM0lnYjNSb1pYSWdiV0YwWlhKcFlXeHpJSEJ5YjNacFpHVmtJSGRwZEdnZ2RHaGxJR1JwYzNSeWFXSjFkR2x2Ymk1Y2JseHVLaUJPWldsMGFHVnlJSFJvWlNCdVlXMWxJRzltSUhSb1pTQmpiM0I1Y21sbmFIUWdhRzlzWkdWeUlHNXZjaUIwYUdVZ2JtRnRaWE1nYjJZZ2FYUnpYRzRnSUdOdmJuUnlhV0oxZEc5eWN5QnRZWGtnWW1VZ2RYTmxaQ0IwYnlCbGJtUnZjbk5sSUc5eUlIQnliMjF2ZEdVZ2NISnZaSFZqZEhNZ1pHVnlhWFpsWkNCbWNtOXRYRzRnSUhSb2FYTWdjMjltZEhkaGNtVWdkMmwwYUc5MWRDQnpjR1ZqYVdacFl5QndjbWx2Y2lCM2NtbDBkR1Z1SUhCbGNtMXBjM05wYjI0dVhHNWNibFJJU1ZNZ1UwOUdWRmRCVWtVZ1NWTWdVRkpQVmtsRVJVUWdRbGtnVkVoRklFTlBVRmxTU1VkSVZDQklUMHhFUlZKVElFRk9SQ0JEVDA1VVVrbENWVlJQVWxNZ1hDSkJVeUJKVTF3aVhHNUJUa1FnUVU1WklFVllVRkpGVTFNZ1QxSWdTVTFRVEVsRlJDQlhRVkpTUVU1VVNVVlRMQ0JKVGtOTVZVUkpUa2NzSUVKVlZDQk9UMVFnVEVsTlNWUkZSQ0JVVHl3Z1ZFaEZYRzVKVFZCTVNVVkVJRmRCVWxKQlRsUkpSVk1nVDBZZ1RVVlNRMGhCVGxSQlFrbE1TVlJaSUVGT1JDQkdTVlJPUlZOVElFWlBVaUJCSUZCQlVsUkpRMVZNUVZJZ1VGVlNVRTlUUlNCQlVrVmNia1JKVTBOTVFVbE5SVVF1SUVsT0lFNVBJRVZXUlU1VUlGTklRVXhNSUZSSVJTQkRUMUJaVWtsSFNGUWdTRTlNUkVWU0lFOVNJRU5QVGxSU1NVSlZWRTlTVXlCQ1JTQk1TVUZDVEVWY2JrWlBVaUJCVGxrZ1JFbFNSVU5VTENCSlRrUkpVa1ZEVkN3Z1NVNURTVVJGVGxSQlRDd2dVMUJGUTBsQlRDd2dSVmhGVFZCTVFWSlpMQ0JQVWlCRFQwNVRSVkZWUlU1VVNVRk1YRzVFUVUxQlIwVlRJQ2hKVGtOTVZVUkpUa2NzSUVKVlZDQk9UMVFnVEVsTlNWUkZSQ0JVVHl3Z1VGSlBRMVZTUlUxRlRsUWdUMFlnVTFWQ1UxUkpWRlZVUlNCSFQwOUVVeUJQVWx4dVUwVlNWa2xEUlZNN0lFeFBVMU1nVDBZZ1ZWTkZMQ0JFUVZSQkxDQlBVaUJRVWs5R1NWUlRPeUJQVWlCQ1ZWTkpUa1ZUVXlCSlRsUkZVbEpWVUZSSlQwNHBJRWhQVjBWV1JWSmNia05CVlZORlJDQkJUa1FnVDA0Z1FVNVpJRlJJUlU5U1dTQlBSaUJNU1VGQ1NVeEpWRmtzSUZkSVJWUklSVklnU1U0Z1EwOU9WRkpCUTFRc0lGTlVVa2xEVkNCTVNVRkNTVXhKVkZrc1hHNVBVaUJVVDFKVUlDaEpUa05NVlVSSlRrY2dUa1ZIVEVsSFJVNURSU0JQVWlCUFZFaEZVbGRKVTBVcElFRlNTVk5KVGtjZ1NVNGdRVTVaSUZkQldTQlBWVlFnVDBZZ1ZFaEZJRlZUUlZ4dVQwWWdWRWhKVXlCVFQwWlVWMEZTUlN3Z1JWWkZUaUJKUmlCQlJGWkpVMFZFSUU5R0lGUklSU0JRVDFOVFNVSkpURWxVV1NCUFJpQlRWVU5JSUVSQlRVRkhSUzVjYmx4dUtpOWNibHh1THlwY2JpQXFJRlJvWlNCbWIyeHNiM2RwYm1jZ2MyVmpkR2x2YmlCcGN5QmtaWEpwZG1Wa0lHWnliMjBnYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDNCb2IzTndhRzl5YW5NdmNHaHZjM0JvYjNJdllteHZZaTh5TTJJNVpEQTNOV1ZpWXpWaU56TmhZakUwT0dJMlpXSm1Zekl3WVdZNU4yWTROVGN4TkdNMEwzQmhZMnRoWjJWekwzZHBaR2RsZEhNdmMzUjViR1V2ZEdGaVltRnlMbU56Y3lCY2JpQXFJRmRsSjNabElITmpiM0JsWkNCMGFHVWdjblZzWlhNZ2MyOGdkR2hoZENCMGFHVjVJR0Z5WlNCamIyNXphWE4wWlc1MElIZHBkR2dnWlhoaFkzUnNlU0J2ZFhJZ1kyOWtaUzVjYmlBcUwxeHVYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpMbmRwWkdkbGRDMTBZV0lnUGlBdWNDMVVZV0pDWVhJZ2UxeHVJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeHVJQ0F0ZDJWaWEybDBMWFZ6WlhJdGMyVnNaV04wT2lCdWIyNWxPMXh1SUNBdGJXOTZMWFZ6WlhJdGMyVnNaV04wT2lCdWIyNWxPMXh1SUNBdGJYTXRkWE5sY2kxelpXeGxZM1E2SUc1dmJtVTdYRzRnSUhWelpYSXRjMlZzWldOME9pQnViMjVsTzF4dWZWeHVYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNsdGtZWFJoTFc5eWFXVnVkR0YwYVc5dVBTZG9iM0pwZW05dWRHRnNKMTBnZTF4dUlDQm1iR1Y0TFdScGNtVmpkR2x2YmpvZ2NtOTNPMXh1ZlZ4dVhHNWNiaTVxZFhCNWRHVnlMWGRwWkdkbGRITXVkMmxrWjJWMExYUmhZaUErSUM1d0xWUmhZa0poY2x0a1lYUmhMVzl5YVdWdWRHRjBhVzl1UFNkMlpYSjBhV05oYkNkZElIdGNiaUFnWm14bGVDMWthWEpsWTNScGIyNDZJR052YkhWdGJqdGNibjFjYmx4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWElnUGlBdWNDMVVZV0pDWVhJdFkyOXVkR1Z1ZENCN1hHNGdJRzFoY21kcGJqb2dNRHRjYmlBZ2NHRmtaR2x1WnpvZ01EdGNiaUFnWkdsemNHeGhlVG9nWm14bGVEdGNiaUFnWm14bGVEb2dNU0F4SUdGMWRHODdYRzRnSUd4cGMzUXRjM1I1YkdVdGRIbHdaVG9nYm05dVpUdGNibjFjYmx4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWEpiWkdGMFlTMXZjbWxsYm5SaGRHbHZiajBuYUc5eWFYcHZiblJoYkNkZElENGdMbkF0VkdGaVFtRnlMV052Ym5SbGJuUWdlMXh1SUNCbWJHVjRMV1JwY21WamRHbHZiam9nY205M08xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjbHRrWVhSaExXOXlhV1Z1ZEdGMGFXOXVQU2QyWlhKMGFXTmhiQ2RkSUQ0Z0xuQXRWR0ZpUW1GeUxXTnZiblJsYm5RZ2UxeHVJQ0JtYkdWNExXUnBjbVZqZEdsdmJqb2dZMjlzZFcxdU8xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaUlIdGNiaUFnWkdsemNHeGhlVG9nWm14bGVEdGNiaUFnWm14bGVDMWthWEpsWTNScGIyNDZJSEp2ZHp0Y2JpQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdiM1psY21ac2IzYzZJR2hwWkdSbGJqdGNibjFjYmx4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWElnTG5BdFZHRmlRbUZ5TFhSaFlrbGpiMjRzWEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdMbkF0VkdGaVFtRnlMWFJoWWtOc2IzTmxTV052YmlCN1hHNGdJR1pzWlhnNklEQWdNQ0JoZFhSdk8xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaVRHRmlaV3dnZTF4dUlDQm1iR1Y0T2lBeElERWdZWFYwYnp0Y2JpQWdiM1psY21ac2IzYzZJR2hwWkdSbGJqdGNiaUFnZDJocGRHVXRjM0JoWTJVNklHNXZkM0poY0R0Y2JuMWNibHh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdMbkF0VkdGaVFtRnlMWFJoWWk1d0xXMXZaQzFvYVdSa1pXNGdlMXh1SUNCa2FYTndiR0Y1T2lCdWIyNWxJQ0ZwYlhCdmNuUmhiblE3WEc1OVhHNWNibHh1TG1wMWNIbDBaWEl0ZDJsa1oyVjBjeTUzYVdSblpYUXRkR0ZpSUQ0Z0xuQXRWR0ZpUW1GeUxuQXRiVzlrTFdSeVlXZG5hVzVuSUM1d0xWUmhZa0poY2kxMFlXSWdlMXh1SUNCd2IzTnBkR2x2YmpvZ2NtVnNZWFJwZG1VN1hHNTlYRzVjYmx4dUxtcDFjSGwwWlhJdGQybGtaMlYwY3k1M2FXUm5aWFF0ZEdGaUlENGdMbkF0VkdGaVFtRnlMbkF0Ylc5a0xXUnlZV2RuYVc1blcyUmhkR0V0YjNKcFpXNTBZWFJwYjI0OUoyaHZjbWw2YjI1MFlXd25YU0F1Y0MxVVlXSkNZWEl0ZEdGaUlIdGNiaUFnYkdWbWREb2dNRHRjYmlBZ2RISmhibk5wZEdsdmJqb2diR1ZtZENBeE5UQnRjeUJsWVhObE8xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaTV3TFcxdlpDMWtjbUZuWjJsdVoxdGtZWFJoTFc5eWFXVnVkR0YwYVc5dVBTZDJaWEowYVdOaGJDZGRJQzV3TFZSaFlrSmhjaTEwWVdJZ2UxeHVJQ0IwYjNBNklEQTdYRzRnSUhSeVlXNXphWFJwYjI0NklIUnZjQ0F4TlRCdGN5QmxZWE5sTzF4dWZWeHVYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpNXdMVzF2WkMxa2NtRm5aMmx1WnlBdWNDMVVZV0pDWVhJdGRHRmlMbkF0Ylc5a0xXUnlZV2RuYVc1bklIdGNiaUFnZEhKaGJuTnBkR2x2YmpvZ2JtOXVaVHRjYm4xY2JseHVMeW9nUlc1a0lIUmhZbUpoY2k1amMzTWdLaTljYmlKZGZRPT0gKi8=",
+ "headers": [
+ [
+ "content-type",
+ "text/css"
+ ]
+ ],
+ "ok": true,
+ "status": 200,
+ "status_text": ""
+ }
+ }
+ },
+ "colab_type": "code",
+ "executionInfo": {
+ "elapsed": 13863,
+ "status": "ok",
+ "timestamp": 1574701755053,
+ "user": {
+ "displayName": "Michele Pasin",
+ "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mBu8LVjIGgontF2Wax51BoL5KFx8esezX3bUmaa0g=s64",
+ "userId": "10309320684375994511"
+ },
+ "user_tz": 0
+ },
+ "id": "HvPf2W1HiLoE",
+ "outputId": "448714d9-df07-47e8-b3e4-9c963e3021d7"
+ },
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "8549169e2ba046c29ab3adeb6a09c465",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ " 0%| | 0/10 [00:00, ?it/s]"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "{'results': [{'geo': {'cities': [{'geonames_id': 5072006, 'name': 'Lincoln'}], 'countries': [{'code': 'US', 'geonames_id': 6252001, 'name': 'United States'}], 'states': [{'code': 'US-NE', 'geonames_id': 5073708, 'name': 'Nebraska'}]}, 'input': {'city': 'Lincoln', 'country': 'United States', 'name': 'University of Nebraska–Lincoln', 'state': 'Nebraska'}, 'institutes': [{'institute': {'city': 'Lincoln', 'country': 'United States', 'id': 'grid.24434.35', 'name': 'University of Nebraska–Lincoln', 'state': 'Nebraska'}, 'metadata': {'requires_manual_review': False}}]}]}\n",
+ "{'results': [{'geo': {'cities': [{'geonames_id': 112931, 'name': 'Tehran'}], 'countries': [{'code': 'IR', 'geonames_id': 130758, 'name': 'Iran'}], 'states': [{'code': None, 'geonames_id': 110791, 'name': 'Tehran'}]}, 'input': {'city': 'Tehran', 'country': 'Iran', 'name': 'Tarbiat Modares University', 'state': ''}, 'institutes': [{'institute': {'city': 'Tehran', 'country': 'Iran', 'id': 'grid.412266.5', 'name': 'Tarbiat Modares University', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}\n",
+ "{'results': [{'geo': {'cities': [{'geonames_id': 4931972, 'name': 'Cambridge'}], 'countries': [{'code': 'US', 'geonames_id': 6252001, 'name': 'United States'}], 'states': [{'code': 'US-MA', 'geonames_id': 6254926, 'name': 'Massachusetts'}]}, 'input': {'city': 'Cambridge', 'country': 'United States', 'name': 'Harvard University', 'state': 'Massachusetts'}, 'institutes': [{'institute': {'city': 'Cambridge', 'country': 'United States', 'id': 'grid.38142.3c', 'name': 'Harvard University', 'state': 'Massachusetts'}, 'metadata': {'requires_manual_review': False}}]}]}\n",
+ "{'results': [{'geo': {'cities': [{'geonames_id': 1816670, 'name': 'Beijing'}], 'countries': [{'code': 'CN', 'geonames_id': 1814991, 'name': 'China'}], 'states': [{'code': None, 'geonames_id': 2038349, 'name': 'Beijing'}]}, 'input': {'city': 'Beijing', 'country': 'China', 'name': 'China Academy of Chinese Medical Sciences', 'state': ''}, 'institutes': [{'institute': {'city': 'Beijing', 'country': 'China', 'id': 'grid.410318.f', 'name': 'China Academy of Chinese Medical Sciences', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}\n",
+ "{'results': [{'geo': {'cities': [{'geonames_id': 2034937, 'name': 'Shenyang'}], 'countries': [{'code': 'CN', 'geonames_id': 1814991, 'name': 'China'}], 'states': [{'code': None, 'geonames_id': 2036115, 'name': 'Liaoning'}]}, 'input': {'city': 'Shenyang', 'country': 'China', 'name': 'Liaoning University', 'state': ''}, 'institutes': [{'institute': {'city': 'Shenyang', 'country': 'China', 'id': 'grid.411356.4', 'name': 'Liaoning University', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}\n",
+ "{'results': [{'geo': {'cities': [{'geonames_id': 1814087, 'name': 'Dalian'}], 'countries': [{'code': 'CN', 'geonames_id': 1814991, 'name': 'China'}], 'states': [{'code': None, 'geonames_id': 2036115, 'name': 'Liaoning'}]}, 'input': {'city': 'Dalian', 'country': 'China', 'name': 'Liaoning Normal University', 'state': ''}, 'institutes': [{'institute': {'city': 'Dalian', 'country': 'China', 'id': 'grid.440818.1', 'name': 'Liaoning Normal University', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}\n",
+ "{'results': [{'geo': {'cities': [], 'countries': [], 'states': []}, 'input': {'city': '', 'country': '', 'name': 'P.G. Department of Zoology and Research Centre, Shri Shiv Chhatrapati College of Arts, Commerce and Science, Junnar 410502, Pune, India.', 'state': ''}, 'institutes': []}]}\n",
+ "{'results': [{'geo': {'cities': [{'geonames_id': 1835848, 'name': 'Seoul'}], 'countries': [{'code': 'KR', 'geonames_id': 1835841, 'name': 'South Korea'}], 'states': [{'code': None, 'geonames_id': 1835847, 'name': 'Seoul'}]}, 'input': {'city': 'Seoul', 'country': 'South Korea', 'name': 'Sungkyunkwan University', 'state': ''}, 'institutes': [{'institute': {'city': 'Seoul', 'country': 'South Korea', 'id': 'grid.264381.a', 'name': 'Sungkyunkwan University', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}\n",
+ "{'results': [{'geo': {'cities': [{'geonames_id': 1259229, 'name': 'Pune'}], 'countries': [{'code': 'IN', 'geonames_id': 1269750, 'name': 'India'}], 'states': [{'code': None, 'geonames_id': 1264418, 'name': 'Maharashtra'}]}, 'input': {'city': 'Pune', 'country': 'India', 'name': 'Centre for Materials for Electronics Technology', 'state': ''}, 'institutes': [{'institute': {'city': 'Pune', 'country': 'India', 'id': 'grid.494569.3', 'name': 'Centre for Materials for Electronics Technology', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}\n",
+ "{'results': [{'geo': {'cities': [{'geonames_id': 2988507, 'name': 'Paris'}], 'countries': [{'code': 'FR', 'geonames_id': 3017382, 'name': 'France'}], 'states': [{'code': None, 'geonames_id': 3012874, 'name': 'Ile-de-France'}]}, 'input': {'city': '', 'country': '', 'name': 'Institut Necker-Enfants Malades (INEM), INSERM U1151-CNRS UMR8253, Université de Paris, Faculté de Médecine, 156 rue de Vaugirard, 75730 Paris Cedex 15, France', 'state': ''}, 'institutes': [{'institute': {'city': 'Paris', 'country': 'France', 'id': 'grid.508487.6', 'name': 'Université Paris Cité', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}\n"
+ ]
+ }
+ ],
+ "source": [
+ "for d in pbar(affiliations):\n",
+ " res = dsl.query(f\"\"\"extract_affiliations(name=\"{d[0]}\", city=\"{d[1]}\", state=\"{d[2]}\", country=\"{d[3]}\")\"\"\")\n",
+ " time.sleep(0.5)\n",
+ " print(res.json)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "colab_type": "text",
+ "id": "dORmKMr-iLld"
+ },
+ "source": [
+ "If we combine the affiliation data into a single long string, we can also perform the same king of operation using the **unstructured** affiliation matching. "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 5,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 256,
+ "resources": {
+ "http://localhost:8080/nbextensions/google.colab/colabwidgets/controls.css": {
+ "data": "LyogQ29weXJpZ2h0IChjKSBKdXB5dGVyIERldmVsb3BtZW50IFRlYW0uCiAqIERpc3RyaWJ1dGVkIHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgTW9kaWZpZWQgQlNEIExpY2Vuc2UuCiAqLwoKIC8qIFdlIGltcG9ydCBhbGwgb2YgdGhlc2UgdG9nZXRoZXIgaW4gYSBzaW5nbGUgY3NzIGZpbGUgYmVjYXVzZSB0aGUgV2VicGFjawpsb2FkZXIgc2VlcyBvbmx5IG9uZSBmaWxlIGF0IGEgdGltZS4gVGhpcyBhbGxvd3MgcG9zdGNzcyB0byBzZWUgdGhlIHZhcmlhYmxlCmRlZmluaXRpb25zIHdoZW4gdGhleSBhcmUgdXNlZC4gKi8KCiAvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCnwgQ29weXJpZ2h0IChjKSBKdXB5dGVyIERldmVsb3BtZW50IFRlYW0uCnwgRGlzdHJpYnV0ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBNb2RpZmllZCBCU0QgTGljZW5zZS4KfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoKIC8qClRoaXMgZmlsZSBpcyBjb3BpZWQgZnJvbSB0aGUgSnVweXRlckxhYiBwcm9qZWN0IHRvIGRlZmluZSBkZWZhdWx0IHN0eWxpbmcgZm9yCndoZW4gdGhlIHdpZGdldCBzdHlsaW5nIGlzIGNvbXBpbGVkIGRvd24gdG8gZWxpbWluYXRlIENTUyB2YXJpYWJsZXMuIFdlIG1ha2Ugb25lCmNoYW5nZSAtIHdlIGNvbW1lbnQgb3V0IHRoZSBmb250IGltcG9ydCBiZWxvdy4KKi8KCiAvKioKICogVGhlIG1hdGVyaWFsIGRlc2lnbiBjb2xvcnMgYXJlIGFkYXB0ZWQgZnJvbSBnb29nbGUtbWF0ZXJpYWwtY29sb3IgdjEuMi42CiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9kYW5sZXZhbi9nb29nbGUtbWF0ZXJpYWwtY29sb3IKICogaHR0cHM6Ly9naXRodWIuY29tL2RhbmxldmFuL2dvb2dsZS1tYXRlcmlhbC1jb2xvci9ibG9iL2Y2N2NhNWY0MDI4YjJmMWIzNDg2MmY2NGIwY2E2NzMyM2Y5MWIwODgvZGlzdC9wYWxldHRlLnZhci5jc3MKICoKICogVGhlIGxpY2Vuc2UgZm9yIHRoZSBtYXRlcmlhbCBkZXNpZ24gY29sb3IgQ1NTIHZhcmlhYmxlcyBpcyBhcyBmb2xsb3dzIChzZWUKICogaHR0cHM6Ly9naXRodWIuY29tL2RhbmxldmFuL2dvb2dsZS1tYXRlcmlhbC1jb2xvci9ibG9iL2Y2N2NhNWY0MDI4YjJmMWIzNDg2MmY2NGIwY2E2NzMyM2Y5MWIwODgvTElDRU5TRSkKICoKICogVGhlIE1JVCBMaWNlbnNlIChNSVQpCiAqCiAqIENvcHlyaWdodCAoYykgMjAxNCBEYW4gTGUgVmFuCiAqCiAqIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHkKICogb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksIHRvIGRlYWwKICogaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0cwogKiB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsCiAqIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpcwogKiBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgogKgogKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpbgogKiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS4KICoKICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKICogSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksCiAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRQogKiBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSCiAqIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sCiAqIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU4gVEhFCiAqIFNPRlRXQVJFLgogKi8KCiAvKgpUaGUgZm9sbG93aW5nIENTUyB2YXJpYWJsZXMgZGVmaW5lIHRoZSBtYWluLCBwdWJsaWMgQVBJIGZvciBzdHlsaW5nIEp1cHl0ZXJMYWIuClRoZXNlIHZhcmlhYmxlcyBzaG91bGQgYmUgdXNlZCBieSBhbGwgcGx1Z2lucyB3aGVyZXZlciBwb3NzaWJsZS4gSW4gb3RoZXIKd29yZHMsIHBsdWdpbnMgc2hvdWxkIG5vdCBkZWZpbmUgY3VzdG9tIGNvbG9ycywgc2l6ZXMsIGV0YyB1bmxlc3MgYWJzb2x1dGVseQpuZWNlc3NhcnkuIFRoaXMgZW5hYmxlcyB1c2VycyB0byBjaGFuZ2UgdGhlIHZpc3VhbCB0aGVtZSBvZiBKdXB5dGVyTGFiCmJ5IGNoYW5naW5nIHRoZXNlIHZhcmlhYmxlcy4KCk1hbnkgdmFyaWFibGVzIGFwcGVhciBpbiBhbiBvcmRlcmVkIHNlcXVlbmNlICgwLDEsMiwzKS4gVGhlc2Ugc2VxdWVuY2VzCmFyZSBkZXNpZ25lZCB0byB3b3JrIHdlbGwgdG9nZXRoZXIsIHNvIGZvciBleGFtcGxlLCBgLS1qcC1ib3JkZXItY29sb3IxYCBzaG91bGQKYmUgdXNlZCB3aXRoIGAtLWpwLWxheW91dC1jb2xvcjFgLiBUaGUgbnVtYmVycyBoYXZlIHRoZSBmb2xsb3dpbmcgbWVhbmluZ3M6CgoqIDA6IHN1cGVyLXByaW1hcnksIHJlc2VydmVkIGZvciBzcGVjaWFsIGVtcGhhc2lzCiogMTogcHJpbWFyeSwgbW9zdCBpbXBvcnRhbnQgdW5kZXIgbm9ybWFsIHNpdHVhdGlvbnMKKiAyOiBzZWNvbmRhcnksIG5leHQgbW9zdCBpbXBvcnRhbnQgdW5kZXIgbm9ybWFsIHNpdHVhdGlvbnMKKiAzOiB0ZXJ0aWFyeSwgbmV4dCBtb3N0IGltcG9ydGFudCB1bmRlciBub3JtYWwgc2l0dWF0aW9ucwoKVGhyb3VnaG91dCBKdXB5dGVyTGFiLCB3ZSBhcmUgbW9zdGx5IGZvbGxvd2luZyBwcmluY2lwbGVzIGZyb20gR29vZ2xlJ3MKTWF0ZXJpYWwgRGVzaWduIHdoZW4gc2VsZWN0aW5nIGNvbG9ycy4gV2UgYXJlIG5vdCwgaG93ZXZlciwgZm9sbG93aW5nCmFsbCBvZiBNRCBhcyBpdCBpcyBub3Qgb3B0aW1pemVkIGZvciBkZW5zZSwgaW5mb3JtYXRpb24gcmljaCBVSXMuCiovCgogLyoKICogT3B0aW9uYWwgbW9ub3NwYWNlIGZvbnQgZm9yIGlucHV0L291dHB1dCBwcm9tcHQuCiAqLwoKIC8qIENvbW1lbnRlZCBvdXQgaW4gaXB5d2lkZ2V0cyBzaW5jZSB3ZSBkb24ndCBuZWVkIGl0LiAqLwoKIC8qIEBpbXBvcnQgdXJsKCdodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2Nzcz9mYW1pbHk9Um9ib3RvK01vbm8nKTsgKi8KCiAvKgogKiBBZGRlZCBmb3IgY29tcGFiaXRpbGl0eSB3aXRoIG91dHB1dCBhcmVhCiAqLwoKIDpyb290IHsKCiAgLyogQm9yZGVycwoKICBUaGUgZm9sbG93aW5nIHZhcmlhYmxlcywgc3BlY2lmeSB0aGUgdmlzdWFsIHN0eWxpbmcgb2YgYm9yZGVycyBpbiBKdXB5dGVyTGFiLgogICAqLwoKICAvKiBVSSBGb250cwoKICBUaGUgVUkgZm9udCBDU1MgdmFyaWFibGVzIGFyZSB1c2VkIGZvciB0aGUgdHlwb2dyYXBoeSBhbGwgb2YgdGhlIEp1cHl0ZXJMYWIKICB1c2VyIGludGVyZmFjZSBlbGVtZW50cyB0aGF0IGFyZSBub3QgZGlyZWN0bHkgdXNlciBnZW5lcmF0ZWQgY29udGVudC4KICAqLyAvKiBCYXNlIGZvbnQgc2l6ZSAqLyAvKiBFbnN1cmVzIHB4IHBlcmZlY3QgRm9udEF3ZXNvbWUgaWNvbnMgKi8KCiAgLyogVXNlIHRoZXNlIGZvbnQgY29sb3JzIGFnYWluc3QgdGhlIGNvcnJlc3BvbmRpbmcgbWFpbiBsYXlvdXQgY29sb3JzLgogICAgIEluIGEgbGlnaHQgdGhlbWUsIHRoZXNlIGdvIGZyb20gZGFyayB0byBsaWdodC4KICAqLwoKICAvKiBVc2UgdGhlc2UgYWdhaW5zdCB0aGUgYnJhbmQvYWNjZW50L3dhcm4vZXJyb3IgY29sb3JzLgogICAgIFRoZXNlIHdpbGwgdHlwaWNhbGx5IGdvIGZyb20gbGlnaHQgdG8gZGFya2VyLCBpbiBib3RoIGEgZGFyayBhbmQgbGlnaHQgdGhlbWUKICAgKi8KCiAgLyogQ29udGVudCBGb250cwoKICBDb250ZW50IGZvbnQgdmFyaWFibGVzIGFyZSB1c2VkIGZvciB0eXBvZ3JhcGh5IG9mIHVzZXIgZ2VuZXJhdGVkIGNvbnRlbnQuCiAgKi8gLyogQmFzZSBmb250IHNpemUgKi8KCgogIC8qIExheW91dAoKICBUaGUgZm9sbG93aW5nIGFyZSB0aGUgbWFpbiBsYXlvdXQgY29sb3JzIHVzZSBpbiBKdXB5dGVyTGFiLiBJbiBhIGxpZ2h0CiAgdGhlbWUgdGhlc2Ugd291bGQgZ28gZnJvbSBsaWdodCB0byBkYXJrLgogICovCgogIC8qIEJyYW5kL2FjY2VudCAqLwoKICAvKiBTdGF0ZSBjb2xvcnMgKHdhcm4sIGVycm9yLCBzdWNjZXNzLCBpbmZvKSAqLwoKICAvKiBDZWxsIHNwZWNpZmljIHN0eWxlcyAqLwogIC8qIEEgY3VzdG9tIGJsZW5kIG9mIE1EIGdyZXkgYW5kIGJsdWUgNjAwCiAgICogU2VlIGh0dHBzOi8vbWV5ZXJ3ZWIuY29tL2VyaWMvdG9vbHMvY29sb3ItYmxlbmQvIzU0NkU3QToxRTg4RTU6NTpoZXggKi8KICAvKiBBIGN1c3RvbSBibGVuZCBvZiBNRCBncmV5IGFuZCBvcmFuZ2UgNjAwCiAgICogaHR0cHM6Ly9tZXllcndlYi5jb20vZXJpYy90b29scy9jb2xvci1ibGVuZC8jNTQ2RTdBOkY0NTExRTo1OmhleCAqLwoKICAvKiBOb3RlYm9vayBzcGVjaWZpYyBzdHlsZXMgKi8KCiAgLyogQ29uc29sZSBzcGVjaWZpYyBzdHlsZXMgKi8KCiAgLyogVG9vbGJhciBzcGVjaWZpYyBzdHlsZXMgKi8KfQoKIC8qIENvcHlyaWdodCAoYykgSnVweXRlciBEZXZlbG9wbWVudCBUZWFtLgogKiBEaXN0cmlidXRlZCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIE1vZGlmaWVkIEJTRCBMaWNlbnNlLgogKi8KCiAvKgogKiBXZSBhc3N1bWUgdGhhdCB0aGUgQ1NTIHZhcmlhYmxlcyBpbgogKiBodHRwczovL2dpdGh1Yi5jb20vanVweXRlcmxhYi9qdXB5dGVybGFiL2Jsb2IvbWFzdGVyL3NyYy9kZWZhdWx0LXRoZW1lL3ZhcmlhYmxlcy5jc3MKICogaGF2ZSBiZWVuIGRlZmluZWQuCiAqLwoKIC8qIFRoaXMgZmlsZSBoYXMgY29kZSBkZXJpdmVkIGZyb20gUGhvc3Bob3JKUyBDU1MgZmlsZXMsIGFzIG5vdGVkIGJlbG93LiBUaGUgbGljZW5zZSBmb3IgdGhpcyBQaG9zcGhvckpTIGNvZGUgaXM6CgpDb3B5cmlnaHQgKGMpIDIwMTQtMjAxNywgUGhvc3Bob3JKUyBDb250cmlidXRvcnMKQWxsIHJpZ2h0cyByZXNlcnZlZC4KClJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAptb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIG1ldDoKCiogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlLCB0aGlzCiAgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCgoqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSwKICB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZSBkb2N1bWVudGF0aW9uCiAgYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCgoqIE5laXRoZXIgdGhlIG5hbWUgb2YgdGhlIGNvcHlyaWdodCBob2xkZXIgbm9yIHRoZSBuYW1lcyBvZiBpdHMKICBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQogIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCgpUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTICJBUyBJUyIKQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQpJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVCBIT0xERVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRQpGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTApEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUgpTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgpDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLApPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQpPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgoKKi8KCiAvKgogKiBUaGUgZm9sbG93aW5nIHNlY3Rpb24gaXMgZGVyaXZlZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9waG9zcGhvcmpzL3Bob3NwaG9yL2Jsb2IvMjNiOWQwNzVlYmM1YjczYWIxNDhiNmViZmMyMGFmOTdmODU3MTRjNC9wYWNrYWdlcy93aWRnZXRzL3N0eWxlL3RhYmJhci5jc3MgCiAqIFdlJ3ZlIHNjb3BlZCB0aGUgcnVsZXMgc28gdGhhdCB0aGV5IGFyZSBjb25zaXN0ZW50IHdpdGggZXhhY3RseSBvdXIgY29kZS4KICovCgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIHsKICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICBkaXNwbGF5OiBmbGV4OwogIC13ZWJraXQtdXNlci1zZWxlY3Q6IG5vbmU7CiAgLW1vei11c2VyLXNlbGVjdDogbm9uZTsKICAtbXMtdXNlci1zZWxlY3Q6IG5vbmU7CiAgdXNlci1zZWxlY3Q6IG5vbmU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXJbZGF0YS1vcmllbnRhdGlvbj0naG9yaXpvbnRhbCddIHsKICAtd2Via2l0LWJveC1vcmllbnQ6IGhvcml6b250YWw7CiAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7CiAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogcm93OwogICAgICAgICAgZmxleC1kaXJlY3Rpb246IHJvdzsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhcltkYXRhLW9yaWVudGF0aW9uPSd2ZXJ0aWNhbCddIHsKICAtd2Via2l0LWJveC1vcmllbnQ6IHZlcnRpY2FsOwogIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgPiAucC1UYWJCYXItY29udGVudCB7CiAgbWFyZ2luOiAwOwogIHBhZGRpbmc6IDA7CiAgZGlzcGxheTogLXdlYmtpdC1ib3g7CiAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgZGlzcGxheTogZmxleDsKICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAtbXMtZmxleDogMSAxIGF1dG87CiAgICAgICAgICBmbGV4OiAxIDEgYXV0bzsKICBsaXN0LXN0eWxlLXR5cGU6IG5vbmU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXJbZGF0YS1vcmllbnRhdGlvbj0naG9yaXpvbnRhbCddID4gLnAtVGFiQmFyLWNvbnRlbnQgewogIC13ZWJraXQtYm94LW9yaWVudDogaG9yaXpvbnRhbDsKICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogcm93Owp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyW2RhdGEtb3JpZW50YXRpb249J3ZlcnRpY2FsJ10gPiAucC1UYWJCYXItY29udGVudCB7CiAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CiAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWIgewogIGRpc3BsYXk6IC13ZWJraXQtYm94OwogIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogIGRpc3BsYXk6IGZsZXg7CiAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOwogIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAtbXMtZmxleC1kaXJlY3Rpb246IHJvdzsKICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICBvdmVyZmxvdzogaGlkZGVuOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWJJY29uLAouanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkNsb3NlSWNvbiB7CiAgLXdlYmtpdC1ib3gtZmxleDogMDsKICAgICAgLW1zLWZsZXg6IDAgMCBhdXRvOwogICAgICAgICAgZmxleDogMCAwIGF1dG87Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkxhYmVsIHsKICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAtbXMtZmxleDogMSAxIGF1dG87CiAgICAgICAgICBmbGV4OiAxIDEgYXV0bzsKICBvdmVyZmxvdzogaGlkZGVuOwogIHdoaXRlLXNwYWNlOiBub3dyYXA7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYi5wLW1vZC1oaWRkZW4gewogIGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhci5wLW1vZC1kcmFnZ2luZyAucC1UYWJCYXItdGFiIHsKICBwb3NpdGlvbjogcmVsYXRpdmU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIucC1tb2QtZHJhZ2dpbmdbZGF0YS1vcmllbnRhdGlvbj0naG9yaXpvbnRhbCddIC5wLVRhYkJhci10YWIgewogIGxlZnQ6IDA7CiAgLXdlYmtpdC10cmFuc2l0aW9uOiBsZWZ0IDE1MG1zIGVhc2U7CiAgdHJhbnNpdGlvbjogbGVmdCAxNTBtcyBlYXNlOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyLnAtbW9kLWRyYWdnaW5nW2RhdGEtb3JpZW50YXRpb249J3ZlcnRpY2FsJ10gLnAtVGFiQmFyLXRhYiB7CiAgdG9wOiAwOwogIC13ZWJraXQtdHJhbnNpdGlvbjogdG9wIDE1MG1zIGVhc2U7CiAgdHJhbnNpdGlvbjogdG9wIDE1MG1zIGVhc2U7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIucC1tb2QtZHJhZ2dpbmcgLnAtVGFiQmFyLXRhYi5wLW1vZC1kcmFnZ2luZyB7CiAgLXdlYmtpdC10cmFuc2l0aW9uOiBub25lOwogIHRyYW5zaXRpb246IG5vbmU7Cn0KCiAvKiBFbmQgdGFiYmFyLmNzcyAqLwoKIDpyb290IHsgLyogbWFyZ2luIGJldHdlZW4gaW5saW5lIGVsZW1lbnRzICovCgogICAgLyogRnJvbSBNYXRlcmlhbCBEZXNpZ24gTGl0ZSAqLwp9CgogLmp1cHl0ZXItd2lkZ2V0cyB7CiAgICBtYXJnaW46IDJweDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGNvbG9yOiBibGFjazsKICAgIG92ZXJmbG93OiB2aXNpYmxlOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy5qdXB5dGVyLXdpZGdldHMtZGlzY29ubmVjdGVkOjpiZWZvcmUgewogICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICBoZWlnaHQ6IDI4cHg7Cn0KCiAuanAtT3V0cHV0LXJlc3VsdCA+IC5qdXB5dGVyLXdpZGdldHMgewogICAgbWFyZ2luLWxlZnQ6IDA7CiAgICBtYXJnaW4tcmlnaHQ6IDA7Cn0KCiAvKiB2Ym94IGFuZCBoYm94ICovCgogLndpZGdldC1pbmxpbmUtaGJveCB7CiAgICAvKiBIb3Jpem9udGFsIHdpZGdldHMgKi8KICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOwogICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7CiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAtd2Via2l0LWJveC1hbGlnbjogYmFzZWxpbmU7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGJhc2VsaW5lOwogICAgICAgICAgICBhbGlnbi1pdGVtczogYmFzZWxpbmU7Cn0KCiAud2lkZ2V0LWlubGluZS12Ym94IHsKICAgIC8qIFZlcnRpY2FsIFdpZGdldHMgKi8KICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwp9CgogLndpZGdldC1ib3ggewogICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICBtYXJnaW46IDA7CiAgICBvdmVyZmxvdzogYXV0bzsKfQoKIC53aWRnZXQtZ3JpZGJveCB7CiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICBkaXNwbGF5OiBncmlkOwogICAgbWFyZ2luOiAwOwogICAgb3ZlcmZsb3c6IGF1dG87Cn0KCiAud2lkZ2V0LWhib3ggewogICAgLXdlYmtpdC1ib3gtb3JpZW50OiBob3Jpem9udGFsOwogICAgLXdlYmtpdC1ib3gtZGlyZWN0aW9uOiBub3JtYWw7CiAgICAgICAgLW1zLWZsZXgtZGlyZWN0aW9uOiByb3c7CiAgICAgICAgICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7Cn0KCiAud2lkZ2V0LXZib3ggewogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgogLyogR2VuZXJhbCBCdXR0b24gU3R5bGluZyAqLwoKIC5qdXB5dGVyLWJ1dHRvbiB7CiAgICBwYWRkaW5nLWxlZnQ6IDEwcHg7CiAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4OwogICAgcGFkZGluZy10b3A6IDBweDsKICAgIHBhZGRpbmctYm90dG9tOiAwcHg7CiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgY3Vyc29yOiBwb2ludGVyOwoKICAgIGhlaWdodDogMjhweDsKICAgIGJvcmRlcjogMHB4IHNvbGlkOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7CgogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0VFRUVFRTsKICAgIGJvcmRlci1jb2xvcjogI0UwRTBFMDsKICAgIGJvcmRlcjogbm9uZTsKfQoKIC5qdXB5dGVyLWJ1dHRvbiBpLmZhIHsKICAgIG1hcmdpbi1yaWdodDogNHB4OwogICAgcG9pbnRlci1ldmVudHM6IG5vbmU7Cn0KCiAuanVweXRlci1idXR0b246ZW1wdHk6YmVmb3JlIHsKICAgIGNvbnRlbnQ6ICJcMjAwYiI7IC8qIHplcm8td2lkdGggc3BhY2UgKi8KfQoKIC5qdXB5dGVyLXdpZGdldHMuanVweXRlci1idXR0b246ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLmp1cHl0ZXItYnV0dG9uIGkuZmEuY2VudGVyIHsKICAgIG1hcmdpbi1yaWdodDogMDsKfQoKIC5qdXB5dGVyLWJ1dHRvbjpob3ZlcjplbmFibGVkLCAuanVweXRlci1idXR0b246Zm9jdXM6ZW5hYmxlZCB7CiAgICAvKiBNRCBMaXRlIDJkcCBzaGFkb3cgKi8KICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAuMTQpLAogICAgICAgICAgICAgICAgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAuMiksCiAgICAgICAgICAgICAgICAwIDFweCA1cHggMCByZ2JhKDAsIDAsIDAsIC4xMik7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgLjE0KSwKICAgICAgICAgICAgICAgIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgLjIpLAogICAgICAgICAgICAgICAgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTIpOwp9CgogLmp1cHl0ZXItYnV0dG9uOmFjdGl2ZSwgLmp1cHl0ZXItYnV0dG9uLm1vZC1hY3RpdmUgewogICAgLyogTUQgTGl0ZSA0ZHAgc2hhZG93ICovCiAgICAtd2Via2l0LWJveC1zaGFkb3c6IDAgNHB4IDVweCAwIHJnYmEoMCwgMCwgMCwgLjE0KSwKICAgICAgICAgICAgICAgIDAgMXB4IDEwcHggMCByZ2JhKDAsIDAsIDAsIC4xMiksCiAgICAgICAgICAgICAgICAwIDJweCA0cHggLTFweCByZ2JhKDAsIDAsIDAsIC4yKTsKICAgICAgICAgICAgYm94LXNoYWRvdzogMCA0cHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTQpLAogICAgICAgICAgICAgICAgMCAxcHggMTBweCAwIHJnYmEoMCwgMCwgMCwgLjEyKSwKICAgICAgICAgICAgICAgIDAgMnB4IDRweCAtMXB4IHJnYmEoMCwgMCwgMCwgLjIpOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0JEQkRCRDsKfQoKIC5qdXB5dGVyLWJ1dHRvbjpmb2N1czplbmFibGVkIHsKICAgIG91dGxpbmU6IDFweCBzb2xpZCAjNjRCNUY2Owp9CgogLyogQnV0dG9uICJQcmltYXJ5IiBTdHlsaW5nICovCgogLmp1cHl0ZXItYnV0dG9uLm1vZC1wcmltYXJ5IHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEuMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMjE5NkYzOwp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1wcmltYXJ5Lm1vZC1hY3RpdmUgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMTk3NkQyOwp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1wcmltYXJ5OmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMxOTc2RDI7Cn0KCiAvKiBCdXR0b24gIlN1Y2Nlc3MiIFN0eWxpbmcgKi8KCiAuanVweXRlci1idXR0b24ubW9kLXN1Y2Nlc3MgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICM0Q0FGNTA7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLXN1Y2Nlc3MubW9kLWFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzODhFM0M7CiB9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1zdWNjZXNzOmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMzODhFM0M7CiB9CgogLyogQnV0dG9uICJJbmZvIiBTdHlsaW5nICovCgogLmp1cHl0ZXItYnV0dG9uLm1vZC1pbmZvIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEuMCk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCQ0Q0Owp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1pbmZvLm1vZC1hY3RpdmUgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDA5N0E3Owp9CgogLmp1cHl0ZXItYnV0dG9uLm1vZC1pbmZvOmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICMwMDk3QTc7Cn0KCiAvKiBCdXR0b24gIldhcm5pbmciIFN0eWxpbmcgKi8KCiAuanVweXRlci1idXR0b24ubW9kLXdhcm5pbmcgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGRjk4MDA7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLXdhcm5pbmcubW9kLWFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGNTdDMDA7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLXdhcm5pbmc6YWN0aXZlIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0Y1N0MwMDsKfQoKIC8qIEJ1dHRvbiAiRGFuZ2VyIiBTdHlsaW5nICovCgogLmp1cHl0ZXItYnV0dG9uLm1vZC1kYW5nZXIgewogICAgY29sb3I6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMS4wKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGNDQzMzY7Cn0KCiAuanVweXRlci1idXR0b24ubW9kLWRhbmdlci5tb2QtYWN0aXZlIHsKICAgIGNvbG9yOiByZ2JhKDI1NSwgMjU1LCAyNTUsIDEpOwogICAgYmFja2dyb3VuZC1jb2xvcjogI0QzMkYyRjsKfQoKIC5qdXB5dGVyLWJ1dHRvbi5tb2QtZGFuZ2VyOmFjdGl2ZSB7CiAgICBjb2xvcjogcmdiYSgyNTUsIDI1NSwgMjU1LCAxKTsKICAgIGJhY2tncm91bmQtY29sb3I6ICNEMzJGMkY7Cn0KCiAvKiBXaWRnZXQgQnV0dG9uKi8KCiAud2lkZ2V0LWJ1dHRvbiwgLndpZGdldC10b2dnbGUtYnV0dG9uIHsKICAgIHdpZHRoOiAxNDhweDsKfQoKIC8qIFdpZGdldCBMYWJlbCBTdHlsaW5nICovCgogLyogT3ZlcnJpZGUgQm9vdHN0cmFwIGxhYmVsIGNzcyAqLwoKIC5qdXB5dGVyLXdpZGdldHMgbGFiZWwgewogICAgbWFyZ2luLWJvdHRvbTogMDsKICAgIG1hcmdpbi1ib3R0b206IGluaXRpYWw7Cn0KCiAud2lkZ2V0LWxhYmVsLWJhc2ljIHsKICAgIC8qIEJhc2ljIExhYmVsICovCiAgICBjb2xvcjogYmxhY2s7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWxhYmVsIHsKICAgIC8qIExhYmVsICovCiAgICBjb2xvcjogYmxhY2s7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICBvdmVyZmxvdzogaGlkZGVuOwogICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7CiAgICB3aGl0ZS1zcGFjZTogbm93cmFwOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWlubGluZS1oYm94IC53aWRnZXQtbGFiZWwgewogICAgLyogSG9yaXpvbnRhbCBXaWRnZXQgTGFiZWwgKi8KICAgIGNvbG9yOiBibGFjazsKICAgIHRleHQtYWxpZ246IHJpZ2h0OwogICAgbWFyZ2luLXJpZ2h0OiA4cHg7CiAgICB3aWR0aDogODBweDsKICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwp9CgogLndpZGdldC1pbmxpbmUtdmJveCAud2lkZ2V0LWxhYmVsIHsKICAgIC8qIFZlcnRpY2FsIFdpZGdldCBMYWJlbCAqLwogICAgY29sb3I6IGJsYWNrOwogICAgdGV4dC1hbGlnbjogY2VudGVyOwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAvKiBXaWRnZXQgUmVhZG91dCBTdHlsaW5nICovCgogLndpZGdldC1yZWFkb3V0IHsKICAgIGNvbG9yOiBibGFjazsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIGhlaWdodDogMjhweDsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgb3ZlcmZsb3c6IGhpZGRlbjsKICAgIHdoaXRlLXNwYWNlOiBub3dyYXA7CiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7Cn0KCiAud2lkZ2V0LXJlYWRvdXQub3ZlcmZsb3cgewogICAgLyogT3ZlcmZsb3dpbmcgUmVhZG91dCAqLwoKICAgIC8qIEZyb20gTWF0ZXJpYWwgRGVzaWduIExpdGUKICAgICAgICBzaGFkb3cta2V5LXVtYnJhLW9wYWNpdHk6IDAuMjsKICAgICAgICBzaGFkb3cta2V5LXBlbnVtYnJhLW9wYWNpdHk6IDAuMTQ7CiAgICAgICAgc2hhZG93LWFtYmllbnQtc2hhZG93LW9wYWNpdHk6IDAuMTI7CiAgICAgKi8KICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAycHggMnB4IDAgcmdiYSgwLCAwLCAwLCAuMiksCiAgICAgICAgICAgICAgICAgICAgICAgIDAgM3B4IDFweCAtMnB4IHJnYmEoMCwgMCwgMCwgLjE0KSwKICAgICAgICAgICAgICAgICAgICAgICAgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTIpOwoKICAgIGJveC1zaGFkb3c6IDAgMnB4IDJweCAwIHJnYmEoMCwgMCwgMCwgLjIpLAogICAgICAgICAgICAgICAgMCAzcHggMXB4IC0ycHggcmdiYSgwLCAwLCAwLCAuMTQpLAogICAgICAgICAgICAgICAgMCAxcHggNXB4IDAgcmdiYSgwLCAwLCAwLCAuMTIpOwp9CgogLndpZGdldC1pbmxpbmUtaGJveCAud2lkZ2V0LXJlYWRvdXQgewogICAgLyogSG9yaXpvbnRhbCBSZWFkb3V0ICovCiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7CiAgICBtYXgtd2lkdGg6IDE0OHB4OwogICAgbWluLXdpZHRoOiA3MnB4OwogICAgbWFyZ2luLWxlZnQ6IDRweDsKfQoKIC53aWRnZXQtaW5saW5lLXZib3ggLndpZGdldC1yZWFkb3V0IHsKICAgIC8qIFZlcnRpY2FsIFJlYWRvdXQgKi8KICAgIG1hcmdpbi10b3A6IDRweDsKICAgIC8qIGFzIHdpZGUgYXMgdGhlIHdpZGdldCAqLwogICAgd2lkdGg6IGluaGVyaXQ7Cn0KCiAvKiBXaWRnZXQgQ2hlY2tib3ggU3R5bGluZyAqLwoKIC53aWRnZXQtY2hlY2tib3ggewogICAgd2lkdGg6IDMwMHB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWNoZWNrYm94IGlucHV0W3R5cGU9ImNoZWNrYm94Il0gewogICAgbWFyZ2luOiAwcHggOHB4IDBweCAwcHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKICAgIGZvbnQtc2l6ZTogbGFyZ2U7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMDsKICAgICAgICBmbGV4LXNocmluazogMDsKICAgIC1tcy1mbGV4LWl0ZW0tYWxpZ246IGNlbnRlcjsKICAgICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7Cn0KCiAvKiBXaWRnZXQgVmFsaWQgU3R5bGluZyAqLwoKIC53aWRnZXQtdmFsaWQgewogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7CiAgICB3aWR0aDogMTQ4cHg7CiAgICBmb250LXNpemU6IDEzcHg7Cn0KCiAud2lkZ2V0LXZhbGlkIGk6YmVmb3JlIHsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgbWFyZ2luLXJpZ2h0OiA0cHg7CiAgICBtYXJnaW4tbGVmdDogNHB4OwoKICAgIC8qIGZyb20gdGhlIGZhIGNsYXNzIGluIEZvbnRBd2Vzb21lOiBodHRwczovL2dpdGh1Yi5jb20vRm9ydEF3ZXNvbWUvRm9udC1Bd2Vzb21lL2Jsb2IvNDkxMDBjN2MzYTdiNThkNTBiYWE3MWVmZWYxMWFmNDFhNjZiMDNkMy9jc3MvZm9udC1hd2Vzb21lLmNzcyNMMTQgKi8KICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKICAgIGZvbnQ6IG5vcm1hbCBub3JtYWwgbm9ybWFsIDE0cHgvMSBGb250QXdlc29tZTsKICAgIGZvbnQtc2l6ZTogaW5oZXJpdDsKICAgIHRleHQtcmVuZGVyaW5nOiBhdXRvOwogICAgLXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7CiAgICAtbW96LW9zeC1mb250LXNtb290aGluZzogZ3JheXNjYWxlOwp9CgogLndpZGdldC12YWxpZC5tb2QtdmFsaWQgaTpiZWZvcmUgewogICAgY29udGVudDogIlxmMDBjIjsKICAgIGNvbG9yOiBncmVlbjsKfQoKIC53aWRnZXQtdmFsaWQubW9kLWludmFsaWQgaTpiZWZvcmUgewogICAgY29udGVudDogIlxmMDBkIjsKICAgIGNvbG9yOiByZWQ7Cn0KCiAud2lkZ2V0LXZhbGlkLm1vZC12YWxpZCAud2lkZ2V0LXZhbGlkLXJlYWRvdXQgewogICAgZGlzcGxheTogbm9uZTsKfQoKIC8qIFdpZGdldCBUZXh0IGFuZCBUZXh0QXJlYSBTdHlpbmcgKi8KCiAud2lkZ2V0LXRleHRhcmVhLCAud2lkZ2V0LXRleHQgewogICAgd2lkdGg6IDMwMHB4Owp9CgogLndpZGdldC10ZXh0IGlucHV0W3R5cGU9InRleHQiXSwgLndpZGdldC10ZXh0IGlucHV0W3R5cGU9Im51bWJlciJdewogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LXRleHQgaW5wdXRbdHlwZT0idGV4dCJdOmRpc2FibGVkLCAud2lkZ2V0LXRleHQgaW5wdXRbdHlwZT0ibnVtYmVyIl06ZGlzYWJsZWQsIC53aWRnZXQtdGV4dGFyZWEgdGV4dGFyZWE6ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLndpZGdldC10ZXh0IGlucHV0W3R5cGU9InRleHQiXSwgLndpZGdldC10ZXh0IGlucHV0W3R5cGU9Im51bWJlciJdLCAud2lkZ2V0LXRleHRhcmVhIHRleHRhcmVhIHsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44KTsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBtaW4td2lkdGg6IDA7IC8qIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgZm9yIHRoZSBmbGV4Ym94IHRvIHNocmluayB0aGlzIGlucHV0ICovCiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgIG91dGxpbmU6IG5vbmUgIWltcG9ydGFudDsKfQoKIC53aWRnZXQtdGV4dGFyZWEgdGV4dGFyZWEgewogICAgaGVpZ2h0OiBpbmhlcml0OwogICAgd2lkdGg6IGluaGVyaXQ7Cn0KCiAud2lkZ2V0LXRleHQgaW5wdXQ6Zm9jdXMsIC53aWRnZXQtdGV4dGFyZWEgdGV4dGFyZWE6Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjNjRCNUY2Owp9CgogLyogV2lkZ2V0IFNsaWRlciAqLwoKIC53aWRnZXQtc2xpZGVyIC51aS1zbGlkZXIgewogICAgLyogU2xpZGVyIFRyYWNrICovCiAgICBib3JkZXI6IDFweCBzb2xpZCAjQkRCREJEOwogICAgYmFja2dyb3VuZDogI0JEQkRCRDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsKICAgIGJvcmRlci1yYWRpdXM6IDBweDsKfQoKIC53aWRnZXQtc2xpZGVyIC51aS1zbGlkZXIgLnVpLXNsaWRlci1oYW5kbGUgewogICAgLyogU2xpZGVyIEhhbmRsZSAqLwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OyAvKiBmb2N1c2VkIHNsaWRlciBoYW5kbGVzIGFyZSBjb2xvcmVkIC0gc2VlIGJlbG93ICovCiAgICBwb3NpdGlvbjogYWJzb2x1dGU7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7CiAgICB6LWluZGV4OiAxOwogICAgYmFja2dyb3VuZC1pbWFnZTogbm9uZTsgLyogT3ZlcnJpZGUganF1ZXJ5LXVpICovCn0KCiAvKiBPdmVycmlkZSBqcXVlcnktdWkgKi8KCiAud2lkZ2V0LXNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlOmhvdmVyLCAud2lkZ2V0LXNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlOmZvY3VzIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjMjE5NkYzOwp9CgogLndpZGdldC1zbGlkZXIgLnVpLXNsaWRlciAudWktc2xpZGVyLWhhbmRsZTphY3RpdmUgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzIxOTZGMzsKICAgIGJvcmRlci1jb2xvcjogIzIxOTZGMzsKICAgIHotaW5kZXg6IDI7CiAgICAtd2Via2l0LXRyYW5zZm9ybTogc2NhbGUoMS4yKTsKICAgICAgICAgICAgdHJhbnNmb3JtOiBzY2FsZSgxLjIpOwp9CgogLndpZGdldC1zbGlkZXIgIC51aS1zbGlkZXIgLnVpLXNsaWRlci1yYW5nZSB7CiAgICAvKiBJbnRlcnZhbCBiZXR3ZWVuIHRoZSB0d28gc3BlY2lmaWVkIHZhbHVlIG9mIGEgZG91YmxlIHNsaWRlciAqLwogICAgcG9zaXRpb246IGFic29sdXRlOwogICAgYmFja2dyb3VuZDogIzIxOTZGMzsKICAgIHotaW5kZXg6IDA7Cn0KCiAvKiBTaGFwZXMgb2YgU2xpZGVyIEhhbmRsZXMgKi8KCiAud2lkZ2V0LWhzbGlkZXIgLnVpLXNsaWRlciAudWktc2xpZGVyLWhhbmRsZSB7CiAgICB3aWR0aDogMTZweDsKICAgIGhlaWdodDogMTZweDsKICAgIG1hcmdpbi10b3A6IC03cHg7CiAgICBtYXJnaW4tbGVmdDogLTdweDsKICAgIGJvcmRlci1yYWRpdXM6IDUwJTsKICAgIHRvcDogMDsKfQoKIC53aWRnZXQtdnNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItaGFuZGxlIHsKICAgIHdpZHRoOiAxNnB4OwogICAgaGVpZ2h0OiAxNnB4OwogICAgbWFyZ2luLWJvdHRvbTogLTdweDsKICAgIG1hcmdpbi1sZWZ0OiAtN3B4OwogICAgYm9yZGVyLXJhZGl1czogNTAlOwogICAgbGVmdDogMDsKfQoKIC53aWRnZXQtaHNsaWRlciAudWktc2xpZGVyIC51aS1zbGlkZXItcmFuZ2UgewogICAgaGVpZ2h0OiA4cHg7CiAgICBtYXJnaW4tdG9wOiAtM3B4Owp9CgogLndpZGdldC12c2xpZGVyIC51aS1zbGlkZXIgLnVpLXNsaWRlci1yYW5nZSB7CiAgICB3aWR0aDogOHB4OwogICAgbWFyZ2luLWxlZnQ6IC0zcHg7Cn0KCiAvKiBIb3Jpem9udGFsIFNsaWRlciAqLwoKIC53aWRnZXQtaHNsaWRlciB7CiAgICB3aWR0aDogMzAwcHg7CiAgICBoZWlnaHQ6IDI4cHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKCiAgICAvKiBPdmVycmlkZSB0aGUgYWxpZ24taXRlbXMgYmFzZWxpbmUuIFRoaXMgd2F5LCB0aGUgZGVzY3JpcHRpb24gYW5kIHJlYWRvdXQKICAgIHN0aWxsIHNlZW0gdG8gYWxpZ24gdGhlaXIgYmFzZWxpbmUgcHJvcGVybHksIGFuZCB3ZSBkb24ndCBoYXZlIHRvIGhhdmUKICAgIGFsaWduLXNlbGY6IHN0cmV0Y2ggaW4gdGhlIC5zbGlkZXItY29udGFpbmVyLiAqLwogICAgLXdlYmtpdC1ib3gtYWxpZ246IGNlbnRlcjsKICAgICAgICAtbXMtZmxleC1hbGlnbjogY2VudGVyOwogICAgICAgICAgICBhbGlnbi1pdGVtczogY2VudGVyOwp9CgogLndpZGdldHMtc2xpZGVyIC5zbGlkZXItY29udGFpbmVyIHsKICAgIG92ZXJmbG93OiB2aXNpYmxlOwp9CgogLndpZGdldC1oc2xpZGVyIC5zbGlkZXItY29udGFpbmVyIHsKICAgIGhlaWdodDogMjhweDsKICAgIG1hcmdpbi1sZWZ0OiA2cHg7CiAgICBtYXJnaW4tcmlnaHQ6IDZweDsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXg6IDEgMSAxNDhweDsKICAgICAgICAgICAgZmxleDogMSAxIDE0OHB4Owp9CgogLndpZGdldC1oc2xpZGVyIC51aS1zbGlkZXIgewogICAgLyogSW5uZXIsIGludmlzaWJsZSBzbGlkZSBkaXYgKi8KICAgIGhlaWdodDogNHB4OwogICAgbWFyZ2luLXRvcDogMTJweDsKICAgIHdpZHRoOiAxMDAlOwp9CgogLyogVmVydGljYWwgU2xpZGVyICovCgogLndpZGdldC12Ym94IC53aWRnZXQtbGFiZWwgewogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LXZzbGlkZXIgewogICAgLyogVmVydGljYWwgU2xpZGVyICovCiAgICBoZWlnaHQ6IDIwMHB4OwogICAgd2lkdGg6IDcycHg7Cn0KCiAud2lkZ2V0LXZzbGlkZXIgLnNsaWRlci1jb250YWluZXIgewogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleDogMSAxIDE0OHB4OwogICAgICAgICAgICBmbGV4OiAxIDEgMTQ4cHg7CiAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIG1hcmdpbi1yaWdodDogYXV0bzsKICAgIG1hcmdpbi1ib3R0b206IDZweDsKICAgIG1hcmdpbi10b3A6IDZweDsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwp9CgogLndpZGdldC12c2xpZGVyIC51aS1zbGlkZXItdmVydGljYWwgewogICAgLyogSW5uZXIsIGludmlzaWJsZSBzbGlkZSBkaXYgKi8KICAgIHdpZHRoOiA0cHg7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBtYXJnaW4tbGVmdDogYXV0bzsKICAgIG1hcmdpbi1yaWdodDogYXV0bzsKfQoKIC8qIFdpZGdldCBQcm9ncmVzcyBTdHlsaW5nICovCgogLnByb2dyZXNzLWJhciB7CiAgICAtd2Via2l0LXRyYW5zaXRpb246IG5vbmU7CiAgICB0cmFuc2l0aW9uOiBub25lOwp9CgogLnByb2dyZXNzLWJhciB7CiAgICBoZWlnaHQ6IDI4cHg7Cn0KCiAucHJvZ3Jlc3MtYmFyIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICMyMTk2RjM7Cn0KCiAucHJvZ3Jlc3MtYmFyLXN1Y2Nlc3MgewogICAgYmFja2dyb3VuZC1jb2xvcjogIzRDQUY1MDsKfQoKIC5wcm9ncmVzcy1iYXItaW5mbyB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDBCQ0Q0Owp9CgogLnByb2dyZXNzLWJhci13YXJuaW5nIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNGRjk4MDA7Cn0KCiAucHJvZ3Jlc3MtYmFyLWRhbmdlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRjQ0MzM2Owp9CgogLnByb2dyZXNzIHsKICAgIGJhY2tncm91bmQtY29sb3I6ICNFRUVFRUU7CiAgICBib3JkZXI6IG5vbmU7CiAgICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7CiAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7Cn0KCiAvKiBIb3Jpc29udGFsIFByb2dyZXNzICovCgogLndpZGdldC1ocHJvZ3Jlc3MgewogICAgLyogUHJvZ3Jlc3MgQmFyICovCiAgICBoZWlnaHQ6IDI4cHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKICAgIHdpZHRoOiAzMDBweDsKICAgIC13ZWJraXQtYm94LWFsaWduOiBjZW50ZXI7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IGNlbnRlcjsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjsKCn0KCiAud2lkZ2V0LWhwcm9ncmVzcyAucHJvZ3Jlc3MgewogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleC1wb3NpdGl2ZTogMTsKICAgICAgICAgICAgZmxleC1ncm93OiAxOwogICAgbWFyZ2luLXRvcDogNHB4OwogICAgbWFyZ2luLWJvdHRvbTogNHB4OwogICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaDsKICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgLyogT3ZlcnJpZGUgYm9vdHN0cmFwIHN0eWxlICovCiAgICBoZWlnaHQ6IGF1dG87CiAgICBoZWlnaHQ6IGluaXRpYWw7Cn0KCiAvKiBWZXJ0aWNhbCBQcm9ncmVzcyAqLwoKIC53aWRnZXQtdnByb2dyZXNzIHsKICAgIGhlaWdodDogMjAwcHg7CiAgICB3aWR0aDogNzJweDsKfQoKIC53aWRnZXQtdnByb2dyZXNzIC5wcm9ncmVzcyB7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICB3aWR0aDogMjBweDsKICAgIG1hcmdpbi1sZWZ0OiBhdXRvOwogICAgbWFyZ2luLXJpZ2h0OiBhdXRvOwogICAgbWFyZ2luLWJvdHRvbTogMDsKfQoKIC8qIFNlbGVjdCBXaWRnZXQgU3R5bGluZyAqLwoKIC53aWRnZXQtZHJvcGRvd24gewogICAgaGVpZ2h0OiAyOHB4OwogICAgd2lkdGg6IDMwMHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWRyb3Bkb3duID4gc2VsZWN0IHsKICAgIHBhZGRpbmctcmlnaHQ6IDIwcHg7CiAgICBib3JkZXI6IDFweCBzb2xpZCAjOUU5RTlFOwogICAgYm9yZGVyLXJhZGl1czogMDsKICAgIGhlaWdodDogaW5oZXJpdDsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXg6IDEgMSAxNDhweDsKICAgICAgICAgICAgZmxleDogMSAxIDE0OHB4OwogICAgbWluLXdpZHRoOiAwOyAvKiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIGZvciB0aGUgZmxleGJveCB0byBzaHJpbmsgdGhpcyBpbnB1dCAqLwogICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OwogICAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lOwogICAgICAgICAgICBib3gtc2hhZG93OiBub25lOwogICAgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7CiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAuOCk7CiAgICBmb250LXNpemU6IDEzcHg7CiAgICB2ZXJ0aWNhbC1hbGlnbjogdG9wOwogICAgcGFkZGluZy1sZWZ0OiA4cHg7CglhcHBlYXJhbmNlOiBub25lOwoJLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lOwoJLW1vei1hcHBlYXJhbmNlOiBub25lOwogICAgYmFja2dyb3VuZC1yZXBlYXQ6IG5vLXJlcGVhdDsKCWJhY2tncm91bmQtc2l6ZTogMjBweDsKCWJhY2tncm91bmQtcG9zaXRpb246IHJpZ2h0IGNlbnRlcjsKICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgiZGF0YTppbWFnZS9zdmcreG1sO2Jhc2U2NCxQRDk0Yld3Z2RtVnljMmx2YmowaU1TNHdJaUJsYm1OdlpHbHVaejBpZFhSbUxUZ2lQejRLUENFdExTQkhaVzVsY21GMGIzSTZJRUZrYjJKbElFbHNiSFZ6ZEhKaGRHOXlJREU1TGpJdU1Td2dVMVpISUVWNGNHOXlkQ0JRYkhWbkxVbHVJQzRnVTFaSElGWmxjbk5wYjI0NklEWXVNREFnUW5WcGJHUWdNQ2tnSUMwdFBnbzhjM1puSUhabGNuTnBiMjQ5SWpFdU1TSWdhV1E5SWt4aGVXVnlYekVpSUhodGJHNXpQU0pvZEhSd09pOHZkM2QzTG5jekxtOXlaeTh5TURBd0wzTjJaeUlnZUcxc2JuTTZlR3hwYm1zOUltaDBkSEE2THk5M2QzY3Vkek11YjNKbkx6RTVPVGt2ZUd4cGJtc2lJSGc5SWpCd2VDSWdlVDBpTUhCNElnb0pJSFpwWlhkQ2IzZzlJakFnTUNBeE9DQXhPQ0lnYzNSNWJHVTlJbVZ1WVdKc1pTMWlZV05yWjNKdmRXNWtPbTVsZHlBd0lEQWdNVGdnTVRnN0lpQjRiV3c2YzNCaFkyVTlJbkJ5WlhObGNuWmxJajRLUEhOMGVXeGxJSFI1Y0dVOUluUmxlSFF2WTNOeklqNEtDUzV6ZERCN1ptbHNiRHB1YjI1bE8zMEtQQzl6ZEhsc1pUNEtQSEJoZEdnZ1pEMGlUVFV1TWl3MUxqbE1PU3c1TGpkc015NDRMVE11T0d3eExqSXNNUzR5YkMwMExqa3NOV3d0TkM0NUxUVk1OUzR5TERVdU9Yb2lMejRLUEhCaGRHZ2dZMnhoYzNNOUluTjBNQ0lnWkQwaVRUQXRNQzQyYURFNGRqRTRTREJXTFRBdU5ub2lMejRLUEM5emRtYytDZyIpOwp9CgogLndpZGdldC1kcm9wZG93biA+IHNlbGVjdDpmb2N1cyB7CiAgICBib3JkZXItY29sb3I6ICM2NEI1RjY7Cn0KCiAud2lkZ2V0LWRyb3Bkb3duID4gc2VsZWN0OmRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNjsKfQoKIC8qIFRvIGRpc2FibGUgdGhlIGRvdHRlZCBib3JkZXIgaW4gRmlyZWZveCBhcm91bmQgc2VsZWN0IGNvbnRyb2xzLgogICBTZWUgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL2EvMTg4NTMwMDIgKi8KCiAud2lkZ2V0LWRyb3Bkb3duID4gc2VsZWN0Oi1tb3otZm9jdXNyaW5nIHsKICAgIGNvbG9yOiB0cmFuc3BhcmVudDsKICAgIHRleHQtc2hhZG93OiAwIDAgMCAjMDAwOwp9CgogLyogU2VsZWN0IGFuZCBTZWxlY3RNdWx0aXBsZSAqLwoKIC53aWRnZXQtc2VsZWN0IHsKICAgIHdpZHRoOiAzMDBweDsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwoKICAgIC8qIEJlY2F1c2UgRmlyZWZveCBkZWZpbmVzIHRoZSBiYXNlbGluZSBvZiBhIHNlbGVjdCBhcyB0aGUgYm90dG9tIG9mIHRoZQogICAgY29udHJvbCwgd2UgYWxpZ24gdGhlIGVudGlyZSBjb250cm9sIHRvIHRoZSB0b3AgYW5kIGFkZCBwYWRkaW5nIHRvIHRoZQogICAgc2VsZWN0IHRvIGdldCBhbiBhcHByb3hpbWF0ZSBmaXJzdCBsaW5lIGJhc2VsaW5lIGFsaWdubWVudC4gKi8KICAgIC13ZWJraXQtYm94LWFsaWduOiBzdGFydDsKICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RhcnQ7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LXN0YXJ0Owp9CgogLndpZGdldC1zZWxlY3QgPiBzZWxlY3QgewogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleDogMSAxIDE0OHB4OwogICAgICAgICAgICBmbGV4OiAxIDEgMTQ4cHg7CiAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7CiAgICBvdmVyZmxvdzogYXV0bzsKICAgIGhlaWdodDogaW5oZXJpdDsKCiAgICAvKiBCZWNhdXNlIEZpcmVmb3ggZGVmaW5lcyB0aGUgYmFzZWxpbmUgb2YgYSBzZWxlY3QgYXMgdGhlIGJvdHRvbSBvZiB0aGUKICAgIGNvbnRyb2wsIHdlIGFsaWduIHRoZSBlbnRpcmUgY29udHJvbCB0byB0aGUgdG9wIGFuZCBhZGQgcGFkZGluZyB0byB0aGUKICAgIHNlbGVjdCB0byBnZXQgYW4gYXBwcm94aW1hdGUgZmlyc3QgbGluZSBiYXNlbGluZSBhbGlnbm1lbnQuICovCiAgICBwYWRkaW5nLXRvcDogNXB4Owp9CgogLndpZGdldC1zZWxlY3QgPiBzZWxlY3Q6Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjNjRCNUY2Owp9CgogLndpZ2V0LXNlbGVjdCA+IHNlbGVjdCA+IG9wdGlvbiB7CiAgICBwYWRkaW5nLWxlZnQ6IDRweDsKICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgLyogbGluZS1oZWlnaHQgZG9lc24ndCB3b3JrIG9uIHNvbWUgYnJvd3NlcnMgZm9yIHNlbGVjdCBvcHRpb25zICovCiAgICBwYWRkaW5nLXRvcDogY2FsYygyOHB4IC0gdmFyKC0tanAtd2lkZ2V0cy1mb250LXNpemUpIC8gMik7CiAgICBwYWRkaW5nLWJvdHRvbTogY2FsYygyOHB4IC0gdmFyKC0tanAtd2lkZ2V0cy1mb250LXNpemUpIC8gMik7Cn0KCiAvKiBUb2dnbGUgQnV0dG9ucyBTdHlsaW5nICovCgogLndpZGdldC10b2dnbGUtYnV0dG9ucyB7CiAgICBsaW5lLWhlaWdodDogMjhweDsKfQoKIC53aWRnZXQtdG9nZ2xlLWJ1dHRvbnMgLndpZGdldC10b2dnbGUtYnV0dG9uIHsKICAgIG1hcmdpbi1sZWZ0OiAycHg7CiAgICBtYXJnaW4tcmlnaHQ6IDJweDsKfQoKIC53aWRnZXQtdG9nZ2xlLWJ1dHRvbnMgLmp1cHl0ZXItYnV0dG9uOmRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNjsKfQoKIC8qIFJhZGlvIEJ1dHRvbnMgU3R5bGluZyAqLwoKIC53aWRnZXQtcmFkaW8gewogICAgd2lkdGg6IDMwMHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LXJhZGlvLWJveCB7CiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogICAgZGlzcGxheTogZmxleDsKICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIC13ZWJraXQtYm94LWFsaWduOiBzdHJldGNoOwogICAgICAgIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoOwogICAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTsKICAgIG1hcmdpbi1ib3R0b206IDhweDsKfQoKIC53aWRnZXQtcmFkaW8tYm94IGxhYmVsIHsKICAgIGhlaWdodDogMjBweDsKICAgIGxpbmUtaGVpZ2h0OiAyMHB4OwogICAgZm9udC1zaXplOiAxM3B4Owp9CgogLndpZGdldC1yYWRpby1ib3ggaW5wdXQgewogICAgaGVpZ2h0OiAyMHB4OwogICAgbGluZS1oZWlnaHQ6IDIwcHg7CiAgICBtYXJnaW46IDAgOHB4IDAgMXB4OwogICAgZmxvYXQ6IGxlZnQ7Cn0KCiAvKiBDb2xvciBQaWNrZXIgU3R5bGluZyAqLwoKIC53aWRnZXQtY29sb3JwaWNrZXIgewogICAgd2lkdGg6IDMwMHB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWNvbG9ycGlja2VyID4gLndpZGdldC1jb2xvcnBpY2tlci1pbnB1dCB7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgIG1pbi13aWR0aDogNzJweDsKfQoKIC53aWRnZXQtY29sb3JwaWNrZXIgaW5wdXRbdHlwZT0iY29sb3IiXSB7CiAgICB3aWR0aDogMjhweDsKICAgIGhlaWdodDogMjhweDsKICAgIHBhZGRpbmc6IDAgMnB4OyAvKiBtYWtlIHRoZSBjb2xvciBzcXVhcmUgYWN0dWFsbHkgc3F1YXJlIG9uIENocm9tZSBvbiBPUyBYICovCiAgICBiYWNrZ3JvdW5kOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44KTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBib3JkZXItbGVmdDogbm9uZTsKICAgIC13ZWJraXQtYm94LWZsZXg6IDA7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDA7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMDsKICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAwOwogICAgICAgIGZsZXgtc2hyaW5rOiAwOwogICAgLXdlYmtpdC1ib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwogICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaDsKICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50Owp9CgogLndpZGdldC1jb2xvcnBpY2tlci5jb25jaXNlIGlucHV0W3R5cGU9ImNvbG9yIl0gewogICAgYm9yZGVyLWxlZnQ6IDFweCBzb2xpZCAjOUU5RTlFOwp9CgogLndpZGdldC1jb2xvcnBpY2tlciBpbnB1dFt0eXBlPSJjb2xvciJdOmZvY3VzLCAud2lkZ2V0LWNvbG9ycGlja2VyIGlucHV0W3R5cGU9InRleHQiXTpmb2N1cyB7CiAgICBib3JkZXItY29sb3I6ICM2NEI1RjY7Cn0KCiAud2lkZ2V0LWNvbG9ycGlja2VyIGlucHV0W3R5cGU9InRleHQiXSB7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7CiAgICBoZWlnaHQ6IDI4cHg7CiAgICBsaW5lLWhlaWdodDogMjhweDsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIGZvbnQtc2l6ZTogMTNweDsKICAgIHBhZGRpbmc6IDRweCA4cHg7CiAgICBtaW4td2lkdGg6IDA7IC8qIFRoaXMgbWFrZXMgaXQgcG9zc2libGUgZm9yIHRoZSBmbGV4Ym94IHRvIHNocmluayB0aGlzIGlucHV0ICovCiAgICAtbXMtZmxleC1uZWdhdGl2ZTogMTsKICAgICAgICBmbGV4LXNocmluazogMTsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQoKIC53aWRnZXQtY29sb3JwaWNrZXIgaW5wdXRbdHlwZT0idGV4dCJdOmRpc2FibGVkIHsKICAgIG9wYWNpdHk6IDAuNjsKfQoKIC8qIERhdGUgUGlja2VyIFN0eWxpbmcgKi8KCiAud2lkZ2V0LWRhdGVwaWNrZXIgewogICAgd2lkdGg6IDMwMHB4OwogICAgaGVpZ2h0OiAyOHB4OwogICAgbGluZS1oZWlnaHQ6IDI4cHg7Cn0KCiAud2lkZ2V0LWRhdGVwaWNrZXIgaW5wdXRbdHlwZT0iZGF0ZSJdIHsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTsKICAgIC1tcy1mbGV4LW5lZ2F0aXZlOiAxOwogICAgICAgIGZsZXgtc2hyaW5rOiAxOwogICAgbWluLXdpZHRoOiAwOyAvKiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIGZvciB0aGUgZmxleGJveCB0byBzaHJpbmsgdGhpcyBpbnB1dCAqLwogICAgb3V0bGluZTogbm9uZSAhaW1wb3J0YW50OwogICAgaGVpZ2h0OiAyOHB4OwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgZm9udC1zaXplOiAxM3B4OwogICAgcGFkZGluZzogNHB4IDhweDsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKfQoKIC53aWRnZXQtZGF0ZXBpY2tlciBpbnB1dFt0eXBlPSJkYXRlIl06Zm9jdXMgewogICAgYm9yZGVyLWNvbG9yOiAjNjRCNUY2Owp9CgogLndpZGdldC1kYXRlcGlja2VyIGlucHV0W3R5cGU9ImRhdGUiXTppbnZhbGlkIHsKICAgIGJvcmRlci1jb2xvcjogI0ZGOTgwMDsKfQoKIC53aWRnZXQtZGF0ZXBpY2tlciBpbnB1dFt0eXBlPSJkYXRlIl06ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLyogUGxheSBXaWRnZXQgKi8KCiAud2lkZ2V0LXBsYXkgewogICAgd2lkdGg6IDE0OHB4OwogICAgZGlzcGxheTogLXdlYmtpdC1ib3g7CiAgICBkaXNwbGF5OiAtbXMtZmxleGJveDsKICAgIGRpc3BsYXk6IGZsZXg7CiAgICAtd2Via2l0LWJveC1hbGlnbjogc3RyZXRjaDsKICAgICAgICAtbXMtZmxleC1hbGlnbjogc3RyZXRjaDsKICAgICAgICAgICAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7Cn0KCiAud2lkZ2V0LXBsYXkgLmp1cHl0ZXItYnV0dG9uIHsKICAgIC13ZWJraXQtYm94LWZsZXg6IDE7CiAgICAgICAgLW1zLWZsZXgtcG9zaXRpdmU6IDE7CiAgICAgICAgICAgIGZsZXgtZ3JvdzogMTsKICAgIGhlaWdodDogYXV0bzsKfQoKIC53aWRnZXQtcGxheSAuanVweXRlci1idXR0b246ZGlzYWJsZWQgewogICAgb3BhY2l0eTogMC42Owp9CgogLyogVGFiIFdpZGdldCAqLwoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiB7CiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogICAgZGlzcGxheTogZmxleDsKICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciB7CiAgICAvKiBOZWNlc3Nhcnkgc28gdGhhdCBhIHRhYiBjYW4gYmUgc2hpZnRlZCBkb3duIHRvIG92ZXJsYXkgdGhlIGJvcmRlciBvZiB0aGUgYm94IGJlbG93LiAqLwogICAgb3ZlcmZsb3cteDogdmlzaWJsZTsKICAgIG92ZXJmbG93LXk6IHZpc2libGU7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgPiAucC1UYWJCYXItY29udGVudCB7CiAgICAvKiBNYWtlIHN1cmUgdGhhdCB0aGUgdGFiIGdyb3dzIGZyb20gYm90dG9tIHVwICovCiAgICAtd2Via2l0LWJveC1hbGlnbjogZW5kOwogICAgICAgIC1tcy1mbGV4LWFsaWduOiBlbmQ7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBmbGV4LWVuZDsKICAgIG1pbi13aWR0aDogMDsKICAgIG1pbi1oZWlnaHQ6IDA7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAud2lkZ2V0LXRhYi1jb250ZW50cyB7CiAgICB3aWR0aDogMTAwJTsKICAgIC13ZWJraXQtYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgICAgICAgICAgYm94LXNpemluZzogYm9yZGVyLWJveDsKICAgIG1hcmdpbjogMDsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIHBhZGRpbmc6IDE1cHg7CiAgICAtd2Via2l0LWJveC1mbGV4OiAxOwogICAgICAgIC1tcy1mbGV4LXBvc2l0aXZlOiAxOwogICAgICAgICAgICBmbGV4LWdyb3c6IDE7CiAgICBvdmVyZmxvdzogYXV0bzsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciB7CiAgICBmb250OiAxM3B4IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7CiAgICBtaW4taGVpZ2h0OiAyNXB4Owp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWIgewogICAgLXdlYmtpdC1ib3gtZmxleDogMDsKICAgICAgICAtbXMtZmxleDogMCAxIDE0NHB4OwogICAgICAgICAgICBmbGV4OiAwIDEgMTQ0cHg7CiAgICBtaW4td2lkdGg6IDM1cHg7CiAgICBtaW4taGVpZ2h0OiAyNXB4OwogICAgbGluZS1oZWlnaHQ6IDI0cHg7CiAgICBtYXJnaW4tbGVmdDogLTFweDsKICAgIHBhZGRpbmc6IDBweCAxMHB4OwogICAgYmFja2dyb3VuZDogI0VFRUVFRTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC41KTsKICAgIGJvcmRlcjogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBib3JkZXItYm90dG9tOiBub25lOwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWIucC1tb2QtY3VycmVudCB7CiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAxLjApOwogICAgLyogV2Ugd2FudCB0aGUgYmFja2dyb3VuZCB0byBtYXRjaCB0aGUgdGFiIGNvbnRlbnQgYmFja2dyb3VuZCAqLwogICAgYmFja2dyb3VuZDogd2hpdGU7CiAgICBtaW4taGVpZ2h0OiAyNnB4OwogICAgLXdlYmtpdC10cmFuc2Zvcm06IHRyYW5zbGF0ZVkoMXB4KTsKICAgICAgICAgICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKDFweCk7CiAgICBvdmVyZmxvdzogdmlzaWJsZTsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciAucC1UYWJCYXItdGFiLnAtbW9kLWN1cnJlbnQ6YmVmb3JlIHsKICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTsKICAgIHRvcDogLTFweDsKICAgIGxlZnQ6IC0xcHg7CiAgICBjb250ZW50OiAnJzsKICAgIGhlaWdodDogMnB4OwogICAgd2lkdGg6IGNhbGMoMTAwJSArIDJweCk7CiAgICBiYWNrZ3JvdW5kOiAjMjE5NkYzOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWI6Zmlyc3QtY2hpbGQgewogICAgbWFyZ2luLWxlZnQ6IDA7Cn0KCiAuanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYjpob3Zlcjpub3QoLnAtbW9kLWN1cnJlbnQpIHsKICAgIGJhY2tncm91bmQ6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLW1vZC1jbG9zYWJsZSA+IC5wLVRhYkJhci10YWJDbG9zZUljb24gewogICAgbWFyZ2luLWxlZnQ6IDRweDsKfQoKIC5qdXB5dGVyLXdpZGdldHMud2lkZ2V0LXRhYiA+IC5wLVRhYkJhciAucC1tb2QtY2xvc2FibGUgPiAucC1UYWJCYXItdGFiQ2xvc2VJY29uOmJlZm9yZSB7CiAgICBmb250LWZhbWlseTogRm9udEF3ZXNvbWU7CiAgICBjb250ZW50OiAnXGYwMGQnOyAvKiBjbG9zZSAqLwp9CgogLmp1cHl0ZXItd2lkZ2V0cy53aWRnZXQtdGFiID4gLnAtVGFiQmFyIC5wLVRhYkJhci10YWJJY29uLAouanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkxhYmVsLAouanVweXRlci13aWRnZXRzLndpZGdldC10YWIgPiAucC1UYWJCYXIgLnAtVGFiQmFyLXRhYkNsb3NlSWNvbiB7CiAgICBsaW5lLWhlaWdodDogMjRweDsKfQoKIC8qIEFjY29yZGlvbiBXaWRnZXQgKi8KCiAucC1Db2xsYXBzZSB7CiAgICBkaXNwbGF5OiAtd2Via2l0LWJveDsKICAgIGRpc3BsYXk6IC1tcy1mbGV4Ym94OwogICAgZGlzcGxheTogZmxleDsKICAgIC13ZWJraXQtYm94LW9yaWVudDogdmVydGljYWw7CiAgICAtd2Via2l0LWJveC1kaXJlY3Rpb246IG5vcm1hbDsKICAgICAgICAtbXMtZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgICAgICAgICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsKICAgIC13ZWJraXQtYm94LWFsaWduOiBzdHJldGNoOwogICAgICAgIC1tcy1mbGV4LWFsaWduOiBzdHJldGNoOwogICAgICAgICAgICBhbGlnbi1pdGVtczogc3RyZXRjaDsKfQoKIC5wLUNvbGxhcHNlLWhlYWRlciB7CiAgICBwYWRkaW5nOiA0cHg7CiAgICBjdXJzb3I6IHBvaW50ZXI7CiAgICBjb2xvcjogcmdiYSgwLCAwLCAwLCAuNSk7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjRUVFRUVFOwogICAgYm9yZGVyOiAxcHggc29saWQgIzlFOUU5RTsKICAgIHBhZGRpbmc6IDEwcHggMTVweDsKICAgIGZvbnQtd2VpZ2h0OiBib2xkOwp9CgogLnAtQ29sbGFwc2UtaGVhZGVyOmhvdmVyIHsKICAgIGJhY2tncm91bmQtY29sb3I6IHdoaXRlOwogICAgY29sb3I6IHJnYmEoMCwgMCwgMCwgLjgpOwp9CgogLnAtQ29sbGFwc2Utb3BlbiA+IC5wLUNvbGxhcHNlLWhlYWRlciB7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIDEuMCk7CiAgICBjdXJzb3I6IGRlZmF1bHQ7CiAgICBib3JkZXItYm90dG9tOiBub25lOwp9CgogLnAtQ29sbGFwc2UgLnAtQ29sbGFwc2UtaGVhZGVyOjpiZWZvcmUgewogICAgY29udGVudDogJ1xmMGRhXDAwQTAnOyAgLyogY2FyZXQtcmlnaHQsIG5vbi1icmVha2luZyBzcGFjZSAqLwogICAgZGlzcGxheTogaW5saW5lLWJsb2NrOwogICAgZm9udDogbm9ybWFsIG5vcm1hbCBub3JtYWwgMTRweC8xIEZvbnRBd2Vzb21lOwogICAgZm9udC1zaXplOiBpbmhlcml0OwogICAgdGV4dC1yZW5kZXJpbmc6IGF1dG87CiAgICAtd2Via2l0LWZvbnQtc21vb3RoaW5nOiBhbnRpYWxpYXNlZDsKICAgIC1tb3otb3N4LWZvbnQtc21vb3RoaW5nOiBncmF5c2NhbGU7Cn0KCiAucC1Db2xsYXBzZS1vcGVuID4gLnAtQ29sbGFwc2UtaGVhZGVyOjpiZWZvcmUgewogICAgY29udGVudDogJ1xmMGQ3XDAwQTAnOyAvKiBjYXJldC1kb3duLCBub24tYnJlYWtpbmcgc3BhY2UgKi8KfQoKIC5wLUNvbGxhcHNlLWNvbnRlbnRzIHsKICAgIHBhZGRpbmc6IDE1cHg7CiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTsKICAgIGNvbG9yOiByZ2JhKDAsIDAsIDAsIC44KTsKICAgIGJvcmRlci1sZWZ0OiAxcHggc29saWQgIzlFOUU5RTsKICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkICM5RTlFOUU7CiAgICBib3JkZXItYm90dG9tOiAxcHggc29saWQgIzlFOUU5RTsKICAgIG92ZXJmbG93OiBhdXRvOwp9CgogLnAtQWNjb3JkaW9uIHsKICAgIGRpc3BsYXk6IC13ZWJraXQtYm94OwogICAgZGlzcGxheTogLW1zLWZsZXhib3g7CiAgICBkaXNwbGF5OiBmbGV4OwogICAgLXdlYmtpdC1ib3gtb3JpZW50OiB2ZXJ0aWNhbDsKICAgIC13ZWJraXQtYm94LWRpcmVjdGlvbjogbm9ybWFsOwogICAgICAgIC1tcy1mbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgICAgICAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uOwogICAgLXdlYmtpdC1ib3gtYWxpZ246IHN0cmV0Y2g7CiAgICAgICAgLW1zLWZsZXgtYWxpZ246IHN0cmV0Y2g7CiAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoOwp9CgogLnAtQWNjb3JkaW9uIC5wLUNvbGxhcHNlIHsKICAgIG1hcmdpbi1ib3R0b206IDA7Cn0KCiAucC1BY2NvcmRpb24gLnAtQ29sbGFwc2UgKyAucC1Db2xsYXBzZSB7CiAgICBtYXJnaW4tdG9wOiA0cHg7Cn0KCiAvKiBIVE1MIHdpZGdldCAqLwoKIC53aWRnZXQtaHRtbCwgLndpZGdldC1odG1sbWF0aCB7CiAgICBmb250LXNpemU6IDEzcHg7Cn0KCiAud2lkZ2V0LWh0bWwgPiAud2lkZ2V0LWh0bWwtY29udGVudCwgLndpZGdldC1odG1sbWF0aCA+IC53aWRnZXQtaHRtbC1jb250ZW50IHsKICAgIC8qIEZpbGwgb3V0IHRoZSBhcmVhIGluIHRoZSBIVE1MIHdpZGdldCAqLwogICAgLW1zLWZsZXgtaXRlbS1hbGlnbjogc3RyZXRjaDsKICAgICAgICBhbGlnbi1zZWxmOiBzdHJldGNoOwogICAgLXdlYmtpdC1ib3gtZmxleDogMTsKICAgICAgICAtbXMtZmxleC1wb3NpdGl2ZTogMTsKICAgICAgICAgICAgZmxleC1ncm93OiAxOwogICAgLW1zLWZsZXgtbmVnYXRpdmU6IDE7CiAgICAgICAgZmxleC1zaHJpbms6IDE7CiAgICAvKiBNYWtlcyBzdXJlIHRoZSBiYXNlbGluZSBpcyBzdGlsbCBhbGlnbmVkIHdpdGggb3RoZXIgZWxlbWVudHMgKi8KICAgIGxpbmUtaGVpZ2h0OiAyOHB4OwogICAgLyogTWFrZSBpdCBwb3NzaWJsZSB0byBoYXZlIGFic29sdXRlbHktcG9zaXRpb25lZCBlbGVtZW50cyBpbiB0aGUgaHRtbCAqLwogICAgcG9zaXRpb246IHJlbGF0aXZlOwp9CgovKiMgc291cmNlTWFwcGluZ1VSTD1kYXRhOmFwcGxpY2F0aW9uL2pzb247YmFzZTY0LGV5SjJaWEp6YVc5dUlqb3pMQ0p6YjNWeVkyVnpJanBiSWk0dUwyNXZaR1ZmYlc5a2RXeGxjeTlBYW5Wd2VYUmxjaTEzYVdSblpYUnpMMk52Ym5SeWIyeHpMMk56Y3k5M2FXUm5aWFJ6TG1OemN5SXNJaTR1TDI1dlpHVmZiVzlrZFd4bGN5OUFhblZ3ZVhSbGNpMTNhV1JuWlhSekwyTnZiblJ5YjJ4ekwyTnpjeTlzWVdKMllYSnBZV0pzWlhNdVkzTnpJaXdpTGk0dmJtOWtaVjl0YjJSMWJHVnpMMEJxZFhCNWRHVnlMWGRwWkdkbGRITXZZMjl1ZEhKdmJITXZZM056TDIxaGRHVnlhV0ZzWTI5c2IzSnpMbU56Y3lJc0lpNHVMMjV2WkdWZmJXOWtkV3hsY3k5QWFuVndlWFJsY2kxM2FXUm5aWFJ6TDJOdmJuUnliMnh6TDJOemN5OTNhV1JuWlhSekxXSmhjMlV1WTNOeklpd2lMaTR2Ym05a1pWOXRiMlIxYkdWekwwQnFkWEI1ZEdWeUxYZHBaR2RsZEhNdlkyOXVkSEp2YkhNdlkzTnpMM0JvYjNOd2FHOXlMbU56Y3lKZExDSnVZVzFsY3lJNlcxMHNJbTFoY0hCcGJtZHpJam9pUVVGQlFUczdSMEZGUnpzN1EwRkZSanM3YTBOQlJXbERPenREUTA1c1F6czdPeXRGUVVjclJUczdRMEZGTDBVN096czdSVUZKUlRzN1EwTlVSanM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3UjBFMlFrYzdPME5FYUVKSU96czdPenM3T3pzN096czdPenM3T3pzN08wVkJiVUpGT3p0RFFVZEdPenRIUVVWSE96dERRVU5HTEhsRVFVRjVSRHM3UTBGRE1VUXNlVVZCUVhsRk96dERRVVY2UlRzN1IwRkZSenM3UTBGUFNEczdSVUZGUlRzN08wdEJSMGM3TzBWQlVVZzdPenM3U1VGSlJTeERRVWwzUWl4dlFrRkJiMElzUTBGSGFFSXNNRU5CUVRCRE96dEZRVWQ0UlRzN1NVRkZSVHM3UlVGUFJqczdTMEZGUnpzN1JVRlBTRHM3TzBsQlIwVXNRMEZYZDBJc2IwSkJRVzlDT3pzN1JVRlZPVU03T3pzN1NVRkpSVHM3UlVGUFJpeHJRa0ZCYTBJN08wVkJXV3hDTEN0RFFVRXJRenM3UlVGelFpOURMREJDUVVFd1FqdEZRV0V4UWpzMFJVRkRNRVU3UlVGRk1VVTdkMFZCUTNORk96dEZRVWQwUlN3NFFrRkJPRUk3TzBWQlN6bENMRFpDUVVFMlFqczdSVUZKTjBJc05rSkJRVFpDTzBOQlVUbENPenREUlhwTlJEczdSMEZGUnpzN1EwRkZTRHM3T3p0SFFVbEhPenREUTFKSU96czdPenM3T3pzN096czdPenM3T3pzN096czdPenM3T3pzN096czdSVUU0UWtVN08wTkJSVVk3T3p0SFFVZEhPenREUVVWSU8wVkJRMFVzY1VKQlFXTTdSVUZCWkN4eFFrRkJZenRGUVVGa0xHTkJRV003UlVGRFpDd3dRa0ZCTUVJN1JVRkRNVUlzZFVKQlFYVkNPMFZCUTNaQ0xITkNRVUZ6UWp0RlFVTjBRaXhyUWtGQmEwSTdRMEZEYmtJN08wTkJSMFE3UlVGRFJTd3JRa0ZCYjBJN1JVRkJjRUlzT0VKQlFXOUNPMDFCUVhCQ0xIZENRVUZ2UWp0VlFVRndRaXh2UWtGQmIwSTdRMEZEY2tJN08wTkJSMFE3UlVGRFJTdzJRa0ZCZFVJN1JVRkJka0lzT0VKQlFYVkNPMDFCUVhaQ0xESkNRVUYxUWp0VlFVRjJRaXgxUWtGQmRVSTdRMEZEZUVJN08wTkJSMFE3UlVGRFJTeFZRVUZWTzBWQlExWXNWMEZCVnp0RlFVTllMSEZDUVVGak8wVkJRV1FzY1VKQlFXTTdSVUZCWkN4alFVRmpPMFZCUTJRc2IwSkJRV1U3VFVGQlppeHRRa0ZCWlR0VlFVRm1MR1ZCUVdVN1JVRkRaaXh6UWtGQmMwSTdRMEZEZGtJN08wTkJSMFE3UlVGRFJTd3JRa0ZCYjBJN1JVRkJjRUlzT0VKQlFXOUNPMDFCUVhCQ0xIZENRVUZ2UWp0VlFVRndRaXh2UWtGQmIwSTdRMEZEY2tJN08wTkJSMFE3UlVGRFJTdzJRa0ZCZFVJN1JVRkJka0lzT0VKQlFYVkNPMDFCUVhaQ0xESkNRVUYxUWp0VlFVRjJRaXgxUWtGQmRVSTdRMEZEZUVJN08wTkJSMFE3UlVGRFJTeHhRa0ZCWXp0RlFVRmtMSEZDUVVGak8wVkJRV1FzWTBGQll6dEZRVU5rTEN0Q1FVRnZRanRGUVVGd1FpdzRRa0ZCYjBJN1RVRkJjRUlzZDBKQlFXOUNPMVZCUVhCQ0xHOUNRVUZ2UWp0RlFVTndRaXdyUWtGQmRVSTdWVUZCZGtJc2RVSkJRWFZDTzBWQlEzWkNMR2xDUVVGcFFqdERRVU5zUWpzN1EwRkhSRHM3UlVGRlJTeHZRa0ZCWlR0TlFVRm1MRzFDUVVGbE8xVkJRV1lzWlVGQlpUdERRVU5vUWpzN1EwRkhSRHRGUVVORkxHOUNRVUZsTzAxQlFXWXNiVUpCUVdVN1ZVRkJaaXhsUVVGbE8wVkJRMllzYVVKQlFXbENPMFZCUTJwQ0xHOUNRVUZ2UWp0RFFVTnlRanM3UTBGSFJEdEZRVU5GTEhsQ1FVRjVRanREUVVNeFFqczdRMEZIUkR0RlFVTkZMRzFDUVVGdFFqdERRVU53UWpzN1EwRkhSRHRGUVVORkxGRkJRVkU3UlVGRFVpeHZRMEZCTkVJN1JVRkJOVUlzTkVKQlFUUkNPME5CUXpkQ096dERRVWRFTzBWQlEwVXNUMEZCVHp0RlFVTlFMRzFEUVVFeVFqdEZRVUV6UWl3eVFrRkJNa0k3UTBGRE5VSTdPME5CUjBRN1JVRkRSU3g1UWtGQmFVSTdSVUZCYWtJc2FVSkJRV2xDTzBOQlEyeENPenREUVVWRUxHOUNRVUZ2UWpzN1EwUTVSM0JDTEZGQlZYRkRMRzlEUVVGdlF6czdTVUV5UW5KRkxDdENRVUVyUWp0RFFVbHNRenM3UTBGRlJEdEpRVU5KTEZsQlFXbERPMGxCUTJwRExDdENRVUYxUWp0WlFVRjJRaXgxUWtGQmRVSTdTVUZEZGtJc1lVRkJLMEk3U1VGREwwSXNhMEpCUVd0Q08wTkJRM0pDT3p0RFFVVkVPMGxCUTBrc2EwSkJRVFpETzBsQlF6ZERMR0ZCUVhkRE8wTkJRek5ET3p0RFFVVkVPMGxCUTBrc1pVRkJaVHRKUVVObUxHZENRVUZuUWp0RFFVTnVRanM3UTBGRlJDeHRRa0ZCYlVJN08wTkJSVzVDTzBsQlEwa3NkMEpCUVhkQ08wbEJRM2hDTEN0Q1FVRjFRanRaUVVGMlFpeDFRa0ZCZFVJN1NVRkRka0lzY1VKQlFXTTdTVUZCWkN4eFFrRkJZenRKUVVGa0xHTkJRV003U1VGRFpDd3JRa0ZCYjBJN1NVRkJjRUlzT0VKQlFXOUNPMUZCUVhCQ0xIZENRVUZ2UWp0WlFVRndRaXh2UWtGQmIwSTdTVUZEY0VJc05FSkJRWE5DTzFGQlFYUkNMSGxDUVVGelFqdFpRVUYwUWl4elFrRkJjMEk3UTBGRGVrSTdPME5CUlVRN1NVRkRTU3h6UWtGQmMwSTdTVUZEZEVJc0swSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl4eFFrRkJZenRKUVVGa0xIRkNRVUZqTzBsQlFXUXNZMEZCWXp0SlFVTmtMRFpDUVVGMVFqdEpRVUYyUWl3NFFrRkJkVUk3VVVGQmRrSXNNa0pCUVhWQ08xbEJRWFpDTEhWQ1FVRjFRanRKUVVOMlFpd3dRa0ZCYjBJN1VVRkJjRUlzZFVKQlFXOUNPMWxCUVhCQ0xHOUNRVUZ2UWp0RFFVTjJRanM3UTBGRlJEdEpRVU5KTEN0Q1FVRjFRanRaUVVGMlFpeDFRa0ZCZFVJN1NVRkRka0lzY1VKQlFXTTdTVUZCWkN4eFFrRkJZenRKUVVGa0xHTkJRV003U1VGRFpDeFZRVUZWTzBsQlExWXNaVUZCWlR0RFFVTnNRanM3UTBGRlJEdEpRVU5KTEN0Q1FVRjFRanRaUVVGMlFpeDFRa0ZCZFVJN1NVRkRka0lzWTBGQll6dEpRVU5rTEZWQlFWVTdTVUZEVml4bFFVRmxPME5CUTJ4Q096dERRVVZFTzBsQlEwa3NLMEpCUVc5Q08wbEJRWEJDTERoQ1FVRnZRanRSUVVGd1FpeDNRa0ZCYjBJN1dVRkJjRUlzYjBKQlFXOUNPME5CUTNaQ096dERRVVZFTzBsQlEwa3NOa0pCUVhWQ08wbEJRWFpDTERoQ1FVRjFRanRSUVVGMlFpd3lRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPME5CUXpGQ096dERRVVZFTERSQ1FVRTBRanM3UTBGRk5VSTdTVUZEU1N4dFFrRkJiVUk3U1VGRGJrSXNiMEpCUVc5Q08wbEJRM0JDTEdsQ1FVRnBRanRKUVVOcVFpeHZRa0ZCYjBJN1NVRkRjRUlzYzBKQlFYTkNPMGxCUTNSQ0xHOUNRVUZ2UWp0SlFVTndRaXhwUWtGQmFVSTdTVUZEYWtJc2QwSkJRWGRDTzBsQlEzaENMRzFDUVVGdFFqdEpRVU51UWl4blFrRkJkVU03U1VGRGRrTXNaMEpCUVdkQ096dEpRVVZvUWl4aFFVRjNRenRKUVVONFF5eHJRa0ZCYTBJN1NVRkRiRUlzYTBKQlFUWkRPMGxCUXpkRExIbENRVUZwUWp0WlFVRnFRaXhwUWtGQmFVSTdPMGxCUldwQ0xIbENRVUZuUXp0SlFVTm9ReXd3UWtGQk1FTTdTVUZETVVNc2MwSkJRWE5ETzBsQlEzUkRMR0ZCUVdFN1EwRkRhRUk3TzBOQlJVUTdTVUZEU1N4clFrRkJPRU03U1VGRE9VTXNjVUpCUVhGQ08wTkJRM2hDT3p0RFFVVkVPMGxCUTBrc2FVSkJRV2xDTEVOQlFVTXNjMEpCUVhOQ08wTkJRek5ET3p0RFFVVkVPMGxCUTBrc1lVRkJORU03UTBGREwwTTdPME5CUlVRN1NVRkRTU3huUWtGQlowSTdRMEZEYmtJN08wTkJSVVE3U1VGRFNTeDNRa0ZCZDBJN1NVRkRlRUk3T3l0RFFVVXJSVHRaUVVZdlJUczdLME5CUlN0Rk8wTkJRMnhHT3p0RFFVVkVPMGxCUTBrc2QwSkJRWGRDTzBsQlEzaENPenRwUkVGRk5rVTdXVUZHTjBVN08ybEVRVVUyUlR0SlFVTTNSU3g1UWtGQlowTTdTVUZEYUVNc01FSkJRVEJETzBOQlF6ZERPenREUVVWRU8wbEJRMGtzTWtKQlFUaEVPME5CUTJwRk96dERRVVZFTERoQ1FVRTRRanM3UTBGRk9VSTdTVUZEU1N4blEwRkJkME03U1VGRGVFTXNNRUpCUVhsRE8wTkJRelZET3p0RFFVVkVPMGxCUTBrc09FSkJRWGRETzBsQlEzaERMREJDUVVGNVF6dERRVU0xUXpzN1EwRkZSRHRKUVVOSkxEaENRVUYzUXp0SlFVTjRReXd3UWtGQmVVTTdRMEZETlVNN08wTkJSVVFzT0VKQlFUaENPenREUVVVNVFqdEpRVU5KTEdkRFFVRjNRenRKUVVONFF5d3dRa0ZCTWtNN1EwRkRPVU03TzBOQlJVUTdTVUZEU1N3NFFrRkJkME03U1VGRGVFTXNNRUpCUVRKRE8wVkJRemRET3p0RFFVVkdPMGxCUTBrc09FSkJRWGRETzBsQlEzaERMREJDUVVFeVF6dEZRVU0zUXpzN1EwRkZSQ3d5UWtGQk1rSTdPME5CUlRWQ08wbEJRMGtzWjBOQlFYZERPMGxCUTNoRExEQkNRVUYzUXp0RFFVTXpRenM3UTBGRlJEdEpRVU5KTERoQ1FVRjNRenRKUVVONFF5d3dRa0ZCZDBNN1EwRkRNME03TzBOQlJVUTdTVUZEU1N3NFFrRkJkME03U1VGRGVFTXNNRUpCUVhkRE8wTkJRek5ET3p0RFFVVkVMRGhDUVVFNFFqczdRMEZGT1VJN1NVRkRTU3huUTBGQmQwTTdTVUZEZUVNc01FSkJRWGRETzBOQlF6TkRPenREUVVWRU8wbEJRMGtzT0VKQlFYZERPMGxCUTNoRExEQkNRVUYzUXp0RFFVTXpRenM3UTBGRlJEdEpRVU5KTERoQ1FVRjNRenRKUVVONFF5d3dRa0ZCZDBNN1EwRkRNME03TzBOQlJVUXNOa0pCUVRaQ096dERRVVUzUWp0SlFVTkpMR2REUVVGM1F6dEpRVU40UXl3d1FrRkJlVU03UTBGRE5VTTdPME5CUlVRN1NVRkRTU3c0UWtGQmQwTTdTVUZEZUVNc01FSkJRWGxETzBOQlF6VkRPenREUVVWRU8wbEJRMGtzT0VKQlFYZERPMGxCUTNoRExEQkNRVUY1UXp0RFFVTTFRenM3UTBGRlJDeHJRa0ZCYTBJN08wTkJSV3hDTzBsQlEwa3NZVUZCTkVNN1EwRkRMME03TzBOQlJVUXNNRUpCUVRCQ096dERRVVV4UWl4clEwRkJhME03TzBOQlEyeERPMGxCUTBrc2FVSkJRWFZDTzBsQlFYWkNMSFZDUVVGMVFqdERRVU14UWpzN1EwRkZSRHRKUVVOSkxHbENRVUZwUWp0SlFVTnFRaXhoUVVGeFF6dEpRVU55UXl4blFrRkJkVU03U1VGRGRrTXNhVUpCUVdsQ08wbEJRMnBDTEhkQ1FVRjNRanRKUVVONFFpeHZRa0ZCYjBJN1NVRkRjRUlzYTBKQlFUWkRPME5CUTJoRU96dERRVVZFTzBsQlEwa3NWMEZCVnp0SlFVTllMR0ZCUVhGRE8wbEJRM0pETEdkQ1FVRjFRenRKUVVOMlF5eHBRa0ZCYVVJN1NVRkRha0lzZDBKQlFYZENPMGxCUTNoQ0xHOUNRVUZ2UWp0SlFVTndRaXhyUWtGQk5rTTdRMEZEYUVRN08wTkJSVVE3U1VGRFNTdzJRa0ZCTmtJN1NVRkROMElzWVVGQmNVTTdTVUZEY2tNc2EwSkJRV3RDTzBsQlEyeENMR3RDUVVFd1JEdEpRVU14UkN4WlFVRTBRenRKUVVNMVF5eHhRa0ZCWlR0UlFVRm1MR1ZCUVdVN1EwRkRiRUk3TzBOQlJVUTdTVUZEU1N3eVFrRkJNa0k3U1VGRE0wSXNZVUZCY1VNN1NVRkRja01zYlVKQlFXMUNPMGxCUTI1Q0xHdENRVUUyUXp0RFFVTm9SRHM3UTBGRlJDdzBRa0ZCTkVJN08wTkJSVFZDTzBsQlEwa3NZVUZCZFVNN1NVRkRka01zWjBKQlFYVkRPMGxCUTNaRExHRkJRWGRETzBsQlEzaERMR3RDUVVFMlF6dEpRVU0zUXl4cFFrRkJhVUk3U1VGRGFrSXNiMEpCUVc5Q08wbEJRM0JDTEcxQ1FVRnRRanREUVVOMFFqczdRMEZGUkR0SlFVTkpMSGxDUVVGNVFqczdTVUZGZWtJN096czdUMEZKUnp0SlFVTklPenQxUkVGRmIwUTdPMGxCVFhCRU96c3JRMEZGTkVNN1EwRkRMME03TzBOQlJVUTdTVUZEU1N4M1FrRkJkMEk3U1VGRGVFSXNiVUpCUVcxQ08wbEJRMjVDTEdsQ1FVRm5SRHRKUVVOb1JDeG5Ra0ZCSzBNN1NVRkRMME1zYVVKQlFUWkRPME5CUTJoRU96dERRVVZFTzBsQlEwa3NjMEpCUVhOQ08wbEJRM1JDTEdkQ1FVRTBRenRKUVVNMVF5d3lRa0ZCTWtJN1NVRkRNMElzWlVGQlpUdERRVU5zUWpzN1EwRkZSQ3cyUWtGQk5rSTdPME5CUlRkQ08wbEJRMGtzWVVGQmMwTTdTVUZEZEVNc1lVRkJkME03U1VGRGVFTXNhMEpCUVRaRE8wTkJRMmhFT3p0RFFVVkVPMGxCUTBrc2QwSkJRV2RGTzBsQlEyaEZMR3RDUVVFMlF6dEpRVU0zUXl4cFFrRkJhVUk3U1VGRGFrSXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4eFFrRkJaVHRSUVVGbUxHVkJRV1U3U1VGRFppdzBRa0ZCYlVJN1VVRkJia0lzYlVKQlFXMUNPME5CUTNSQ096dERRVVZFTERCQ1FVRXdRanM3UTBGRk1VSTdTVUZEU1N4aFFVRjNRenRKUVVONFF5eHJRa0ZCTmtNN1NVRkROME1zWVVGQk5FTTdTVUZETlVNc1owSkJRWFZETzBOQlF6RkRPenREUVVWRU8wbEJRMGtzYTBKQlFUWkRPMGxCUXpkRExHdENRVUU0UXp0SlFVTTVReXhwUWtGQk5rTTdPMGxCUlRkRExEQktRVUV3U2p0SlFVTXhTaXh6UWtGQmMwSTdTVUZEZEVJc09FTkJRVGhETzBsQlF6bERMRzFDUVVGdFFqdEpRVU51UWl4eFFrRkJjVUk3U1VGRGNrSXNiME5CUVc5RE8wbEJRM0JETEcxRFFVRnRRenREUVVOMFF6czdRMEZGUkR0SlFVTkpMR2xDUVVGcFFqdEpRVU5xUWl4aFFVRmhPME5CUTJoQ096dERRVVZFTzBsQlEwa3NhVUpCUVdsQ08wbEJRMnBDTEZkQlFWYzdRMEZEWkRzN1EwRkZSRHRKUVVOSkxHTkJRV003UTBGRGFrSTdPME5CUlVRc2NVTkJRWEZET3p0RFFVVnlRenRKUVVOSkxHRkJRWE5ETzBOQlEzcERPenREUVVWRU8wbEJRMGtzWVVGQmQwTTdTVUZEZUVNc2EwSkJRVFpETzBOQlEyaEVPenREUVVWRU8wbEJRMGtzWVVGQk5FTTdRMEZETDBNN08wTkJSVVE3U1VGRFNTd3JRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPMGxCUTNaQ0xEQkNRVUYzUmp0SlFVTjRSaXgzUWtGQk1rUTdTVUZETTBRc2VVSkJRWEZETzBsQlEzSkRMR2RDUVVGMVF6dEpRVU4yUXl4cFFrRkJjMFk3U1VGRGRFWXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4aFFVRmhMRU5CUVVNc2FVVkJRV2xGTzBsQlF5OUZMSEZDUVVGbE8xRkJRV1lzWlVGQlpUdEpRVU5tTEhsQ1FVRjVRanREUVVNMVFqczdRMEZGUkR0SlFVTkpMR2RDUVVGblFqdEpRVU5vUWl4bFFVRmxPME5CUTJ4Q096dERRVVZFTzBsQlEwa3NjMEpCUVhsRU8wTkJRelZFT3p0RFFVVkVMRzFDUVVGdFFqczdRMEZGYmtJN1NVRkRTU3hyUWtGQmEwSTdTVUZEYkVJc01FSkJRVFJGTzBsQlF6VkZMRzlDUVVGdlF6dEpRVU53UXl3clFrRkJkVUk3V1VGQmRrSXNkVUpCUVhWQ08wbEJRM1pDTEcxQ1FVRnRRanRKUVVOdVFpeHRRa0ZCYlVJN1EwRkRkRUk3TzBOQlJVUTdTVUZEU1N4dFFrRkJiVUk3U1VGRGJrSXNlVUpCUVhsQ0xFTkJRVU1zYjBSQlFXOUVPMGxCUXpsRkxHMUNRVUZ0UWp0SlFVTnVRaXgzUWtGQmJVVTdTVUZEYmtVc01FSkJRV2xITzBsQlEycEhMQ3RDUVVGMVFqdFpRVUYyUWl4MVFrRkJkVUk3U1VGRGRrSXNWMEZCVnp0SlFVTllMSFZDUVVGMVFpeERRVUZETEhkQ1FVRjNRanREUVVOdVJEczdRMEZGUkN4M1FrRkJkMEk3TzBOQlEzaENPMGxCUTBrc01FSkJRU3RFTzBsQlF5OUVMREJDUVVGcFJ6dERRVU53UnpzN1EwRkZSRHRKUVVOSkxEQkNRVUVyUkR0SlFVTXZSQ3h6UWtGQk1rUTdTVUZETTBRc1YwRkJWenRKUVVOWUxEaENRVUZ6UWp0WlFVRjBRaXh6UWtGQmMwSTdRMEZEZWtJN08wTkJSVVE3U1VGRFNTeHBSVUZCYVVVN1NVRkRha1VzYlVKQlFXMUNPMGxCUTI1Q0xHOUNRVUY1UkR0SlFVTjZSQ3hYUVVGWE8wTkJRMlE3TzBOQlJVUXNPRUpCUVRoQ096dERRVVU1UWp0SlFVTkpMRmxCUVRSRE8wbEJRelZETEdGQlFUWkRPMGxCUXpkRExHbENRVUZuU2p0SlFVTm9TaXhyUWtGQmNVYzdTVUZEY2tjc2JVSkJRVzFDTzBsQlEyNUNMRTlCUVU4N1EwRkRWanM3UTBGRlJEdEpRVU5KTEZsQlFUUkRPMGxCUXpWRExHRkJRVFpETzBsQlF6ZERMRzlDUVVGMVJ6dEpRVU4yUnl4clFrRkJhVW83U1VGRGFrb3NiVUpCUVcxQ08wbEJRMjVDTEZGQlFWRTdRMEZEV0RzN1EwRkZSRHRKUVVOSkxGbEJRVFpFTzBsQlF6ZEVMR2xDUVVGNVNqdERRVU0xU2pzN1EwRkZSRHRKUVVOSkxGZEJRVFJFTzBsQlF6VkVMR3RDUVVFd1NqdERRVU0zU2pzN1EwRkZSQ3gxUWtGQmRVSTdPME5CUlhaQ08wbEJRMGtzWVVGQmMwTTdTVUZEZEVNc1lVRkJkME03U1VGRGVFTXNhMEpCUVRaRE96dEpRVVUzUXpzN2IwUkJSV2RFTzBsQlEyaEVMREJDUVVGdlFqdFJRVUZ3UWl4MVFrRkJiMEk3V1VGQmNFSXNiMEpCUVc5Q08wTkJRM1pDT3p0RFFVVkVPMGxCUTBrc2EwSkJRV3RDTzBOQlEzSkNPenREUVVWRU8wbEJRMGtzWVVGQmQwTTdTVUZEZUVNc2FVSkJRWGRITzBsQlEzaEhMR3RDUVVGNVJ6dEpRVU42Unl4dlFrRkJLME03VVVGQkwwTXNiMEpCUVN0RE8xbEJRUzlETEdkQ1FVRXJRenREUVVOc1JEczdRMEZGUkR0SlFVTkpMR2REUVVGblF6dEpRVU5vUXl4WlFVRnBSRHRKUVVOcVJDeHBRa0ZCYlVjN1NVRkRia2NzV1VGQldUdERRVU5tT3p0RFFVVkVMSEZDUVVGeFFqczdRMEZGY2tJN1NVRkRTU3hoUVVGM1F6dEpRVU40UXl4clFrRkJOa003UTBGRGFFUTdPME5CUlVRN1NVRkRTU3h4UWtGQmNVSTdTVUZEY2tJc1kwRkJNRU03U1VGRE1VTXNXVUZCTWtNN1EwRkRPVU03TzBOQlJVUTdTVUZEU1N4dlFrRkJLME03VVVGQkwwTXNiMEpCUVN0RE8xbEJRUzlETEdkQ1FVRXJRenRKUVVNdlF5eHJRa0ZCYTBJN1NVRkRiRUlzYlVKQlFXMUNPMGxCUTI1Q0xHMUNRVUV3Unp0SlFVTXhSeXhuUWtGQmRVYzdTVUZEZGtjc2NVSkJRV003U1VGQlpDeHhRa0ZCWXp0SlFVRmtMR05CUVdNN1NVRkRaQ3cyUWtGQmRVSTdTVUZCZGtJc09FSkJRWFZDTzFGQlFYWkNMREpDUVVGMVFqdFpRVUYyUWl4MVFrRkJkVUk3UTBGRE1VSTdPME5CUlVRN1NVRkRTU3huUTBGQlowTTdTVUZEYUVNc1YwRkJaMFE3U1VGRGFFUXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4clFrRkJhMEk3U1VGRGJFSXNiVUpCUVcxQ08wTkJRM1JDT3p0RFFVVkVMRFpDUVVFMlFqczdRMEZGTjBJN1NVRkRTU3g1UWtGQmVVSTdTVUZKZWtJc2FVSkJRV2xDTzBOQlEzQkNPenREUVVWRU8wbEJRMGtzWVVGQmQwTTdRMEZETTBNN08wTkJSVVE3U1VGRFNTd3dRa0ZCZVVNN1EwRkROVU03TzBOQlJVUTdTVUZEU1N3d1FrRkJNa003UTBGRE9VTTdPME5CUlVRN1NVRkRTU3d3UWtGQmQwTTdRMEZETTBNN08wTkJSVVE3U1VGRFNTd3dRa0ZCZDBNN1EwRkRNME03TzBOQlJVUTdTVUZEU1N3d1FrRkJlVU03UTBGRE5VTTdPME5CUlVRN1NVRkRTU3d3UWtGQk1FTTdTVUZETVVNc1lVRkJZVHRKUVVOaUxIbENRVUZwUWp0WlFVRnFRaXhwUWtGQmFVSTdRMEZEY0VJN08wTkJSVVFzZVVKQlFYbENPenREUVVWNlFqdEpRVU5KTEd0Q1FVRnJRanRKUVVOc1FpeGhRVUYzUXp0SlFVTjRReXhyUWtGQk5rTTdTVUZETjBNc1lVRkJjME03U1VGRGRFTXNNRUpCUVc5Q08xRkJRWEJDTEhWQ1FVRnZRanRaUVVGd1FpeHZRa0ZCYjBJN08wTkJSWFpDT3p0RFFVVkVPMGxCUTBrc2IwSkJRV0U3VVVGQllpeHhRa0ZCWVR0WlFVRmlMR0ZCUVdFN1NVRkRZaXhuUWtGQk5FTTdTVUZETlVNc2JVSkJRU3RETzBsQlF5OURMRFpDUVVGdlFqdFJRVUZ3UWl4dlFrRkJiMEk3U1VGRGNFSXNPRUpCUVRoQ08wbEJRemxDTEdGQlFXZENPMGxCUVdoQ0xHZENRVUZuUWp0RFFVTnVRanM3UTBGRlJDeDFRa0ZCZFVJN08wTkJSWFpDTzBsQlEwa3NZMEZCTUVNN1NVRkRNVU1zV1VGQk1rTTdRMEZET1VNN08wTkJSVVE3U1VGRFNTeHZRa0ZCWVR0UlFVRmlMSEZDUVVGaE8xbEJRV0lzWVVGQllUdEpRVU5pTEZsQlFUUkRPMGxCUXpWRExHdENRVUZyUWp0SlFVTnNRaXh0UWtGQmJVSTdTVUZEYmtJc2FVSkJRV2xDTzBOQlEzQkNPenREUVVWRUxESkNRVUV5UWpzN1EwRkZNMEk3U1VGRFNTeGhRVUYzUXp0SlFVTjRReXhoUVVGelF6dEpRVU4wUXl4clFrRkJOa003UTBGRGFFUTdPME5CUlVRN1NVRkRTU3h2UWtGQmIwSTdTVUZEY0VJc01FSkJRWGRHTzBsQlEzaEdMR2xDUVVGcFFqdEpRVU5xUWl4blFrRkJaMEk3U1VGRGFFSXNiMEpCUVN0RE8xRkJRUzlETEc5Q1FVRXJRenRaUVVFdlF5eG5Ra0ZCSzBNN1NVRkRMME1zWVVGQllTeERRVUZETEdsRlFVRnBSVHRKUVVNdlJTd3JRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPMGxCUTNaQ0xIbENRVUY1UWp0SlFVTjZRaXg1UWtGQmFVSTdXVUZCYWtJc2FVSkJRV2xDTzBsQlEycENMSGRDUVVFeVJEdEpRVU16UkN4NVFrRkJjVU03U1VGRGNrTXNaMEpCUVhWRE8wbEJRM1pETEc5Q1FVRnZRanRKUVVOd1FpeHJRa0ZCZVVRN1EwRkROVVFzYVVKQlFXbENPME5CUTJwQ0xIbENRVUY1UWp0RFFVTjZRaXh6UWtGQmMwSTdTVUZEYmtJc05rSkJRVFpDTzBOQlEyaERMSE5DUVVGelFqdERRVU4wUWl4clEwRkJhME03U1VGREwwSXNhM1ZDUVVGdFJEdERRVU4wUkRzN1EwRkRSRHRKUVVOSkxITkNRVUY1UkR0RFFVTTFSRHM3UTBGRlJEdEpRVU5KTEdGQlFUUkRPME5CUXk5RE96dERRVVZFT3paRFFVTTJRenM3UTBGRE4wTTdTVUZEU1N4dFFrRkJiVUk3U1VGRGJrSXNkMEpCUVhkQ08wTkJRek5DT3p0RFFVVkVMQ3RDUVVFclFqczdRMEZGTDBJN1NVRkRTU3hoUVVGelF6dEpRVU4wUXl4clFrRkJOa003TzBsQlJUZERPenRyUlVGRk9FUTdTVUZET1VRc2VVSkJRWGRDTzFGQlFYaENMSE5DUVVGM1FqdFpRVUY0UWl4M1FrRkJkMEk3UTBGRE0wSTdPME5CUlVRN1NVRkRTU3d3UWtGQmQwWTdTVUZEZUVZc2QwSkJRVEpFTzBsQlF6TkVMSGxDUVVGeFF6dEpRVU55UXl4blFrRkJkVU03U1VGRGRrTXNiMEpCUVN0RE8xRkJRUzlETEc5Q1FVRXJRenRaUVVFdlF5eG5Ra0ZCSzBNN1NVRkRMME1zZVVKQlFYbENPMGxCUTNwQ0xHVkJRV1U3U1VGRFppeG5Ra0ZCWjBJN08wbEJSV2hDT3p0clJVRkZPRVE3U1VGRE9VUXNhVUpCUVdsQ08wTkJRM0JDT3p0RFFVVkVPMGxCUTBrc2MwSkJRWGxFTzBOQlF6VkVPenREUVVWRU8wbEJRMGtzYTBKQlFUaERPMGxCUXpsRExHdENRVUUyUXp0SlFVTTNReXhyUlVGQmEwVTdTVUZEYkVVc01FUkJRV2xHTzBsQlEycEdMRFpFUVVGdlJqdERRVU4yUmpzN1EwRkpSQ3cwUWtGQk5FSTdPME5CUlRWQ08wbEJRMGtzYTBKQlFUWkRPME5CUTJoRU96dERRVVZFTzBsQlEwa3NhVUpCUVhORE8wbEJRM1JETEd0Q1FVRjFRenREUVVNeFF6czdRMEZGUkR0SlFVTkpMR0ZCUVRSRE8wTkJReTlET3p0RFFVVkVMREpDUVVFeVFqczdRMEZGTTBJN1NVRkRTU3hoUVVGelF6dEpRVU4wUXl4clFrRkJOa003UTBGRGFFUTdPME5CUlVRN1NVRkRTU3h4UWtGQll6dEpRVUZrTEhGQ1FVRmpPMGxCUVdRc1kwRkJZenRKUVVOa0xEWkNRVUYxUWp0SlFVRjJRaXc0UWtGQmRVSTdVVUZCZGtJc01rSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl3eVFrRkJjVUk3VVVGQmNrSXNkMEpCUVhGQ08xbEJRWEpDTEhGQ1FVRnhRanRKUVVOeVFpd3JRa0ZCZFVJN1dVRkJka0lzZFVKQlFYVkNPMGxCUTNaQ0xHOUNRVUZoTzFGQlFXSXNjVUpCUVdFN1dVRkJZaXhoUVVGaE8wbEJRMklzYlVKQlFUaEVPME5CUTJwRk96dERRVVZFTzBsQlEwa3NZVUZCTkVNN1NVRkROVU1zYTBKQlFXbEVPMGxCUTJwRUxHZENRVUYxUXp0RFFVTXhRenM3UTBGRlJEdEpRVU5KTEdGQlFUUkRPMGxCUXpWRExHdENRVUZwUkR0SlFVTnFSQ3h2UWtGQk5FUTdTVUZETlVRc1dVRkJXVHREUVVObU96dERRVVZFTERCQ1FVRXdRanM3UTBGRk1VSTdTVUZEU1N4aFFVRnpRenRKUVVOMFF5eGhRVUYzUXp0SlFVTjRReXhyUWtGQk5rTTdRMEZEYUVRN08wTkJSVVE3U1VGRFNTeHZRa0ZCWVR0UlFVRmlMSEZDUVVGaE8xbEJRV0lzWVVGQllUdEpRVU5pTEhGQ1FVRmxPMUZCUVdZc1pVRkJaVHRKUVVObUxHZENRVUVyUXp0RFFVTnNSRHM3UTBGRlJEdEpRVU5KTEZsQlFYVkRPMGxCUTNaRExHRkJRWGRETzBsQlEzaERMR1ZCUVdVc1EwRkJReXcyUkVGQk5rUTdTVUZETjBVc2EwSkJRWEZFTzBsQlEzSkVMSGxDUVVGeFF6dEpRVU55UXl3d1FrRkJkMFk3U1VGRGVFWXNhMEpCUVd0Q08wbEJRMnhDTEc5Q1FVRmhPMUZCUVdJc2NVSkJRV0U3V1VGQllpeGhRVUZoTzBsQlEySXNjVUpCUVdVN1VVRkJaaXhsUVVGbE8wbEJRMllzSzBKQlFYVkNPMWxCUVhaQ0xIVkNRVUYxUWp0SlFVTjJRaXcyUWtGQmIwSTdVVUZCY0VJc2IwSkJRVzlDTzBsQlEzQkNMSGxDUVVGNVFqdERRVU0xUWpzN1EwRkZSRHRKUVVOSkxDdENRVUUyUmp0RFFVTm9SenM3UTBGRlJEdEpRVU5KTEhOQ1FVRjVSRHREUVVNMVJEczdRMEZGUkR0SlFVTkpMRzlDUVVGaE8xRkJRV0lzY1VKQlFXRTdXVUZCWWl4aFFVRmhPMGxCUTJJc2VVSkJRWGxDTzBsQlEzcENMR0ZCUVhkRE8wbEJRM2hETEd0Q1FVRTJRenRKUVVNM1F5eHJRa0ZCY1VRN1NVRkRja1FzZVVKQlFYRkRPMGxCUTNKRExEQkNRVUYzUmp0SlFVTjRSaXhuUWtGQmRVTTdTVUZEZGtNc2FVSkJRWE5HTzBsQlEzUkdMR0ZCUVdFc1EwRkJReXhwUlVGQmFVVTdTVUZETDBVc2NVSkJRV1U3VVVGQlppeGxRVUZsTzBsQlEyWXNLMEpCUVhWQ08xbEJRWFpDTEhWQ1FVRjFRanREUVVNeFFqczdRMEZGUkR0SlFVTkpMR0ZCUVRSRE8wTkJReTlET3p0RFFVVkVMSGxDUVVGNVFqczdRMEZGZWtJN1NVRkRTU3hoUVVGelF6dEpRVU4wUXl4aFFVRjNRenRKUVVONFF5eHJRa0ZCTmtNN1EwRkRhRVE3TzBOQlJVUTdTVUZEU1N4dlFrRkJZVHRSUVVGaUxIRkNRVUZoTzFsQlFXSXNZVUZCWVR0SlFVTmlMSEZDUVVGbE8xRkJRV1lzWlVGQlpUdEpRVU5tTEdGQlFXRXNRMEZCUXl4cFJVRkJhVVU3U1VGREwwVXNlVUpCUVhsQ08wbEJRM3BDTEdGQlFYZERPMGxCUTNoRExEQkNRVUYzUmp0SlFVTjRSaXgzUWtGQk1rUTdTVUZETTBRc2VVSkJRWEZETzBsQlEzSkRMR2RDUVVGMVF6dEpRVU4yUXl4cFFrRkJjMFk3U1VGRGRFWXNLMEpCUVhWQ08xbEJRWFpDTEhWQ1FVRjFRanREUVVNeFFqczdRMEZGUkR0SlFVTkpMSE5DUVVGNVJEdERRVU0xUkRzN1EwRkZSRHRKUVVOSkxITkNRVUZ2UXp0RFFVTjJRenM3UTBGRlJEdEpRVU5KTEdGQlFUUkRPME5CUXk5RE96dERRVVZFTEdsQ1FVRnBRanM3UTBGRmFrSTdTVUZEU1N4aFFVRTBRenRKUVVNMVF5eHhRa0ZCWXp0SlFVRmtMSEZDUVVGak8wbEJRV1FzWTBGQll6dEpRVU5rTERKQ1FVRnhRanRSUVVGeVFpeDNRa0ZCY1VJN1dVRkJja0lzY1VKQlFYRkNPME5CUTNoQ096dERRVVZFTzBsQlEwa3NiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4aFFVRmhPME5CUTJoQ096dERRVVZFTzBsQlEwa3NZVUZCTkVNN1EwRkRMME03TzBOQlJVUXNaMEpCUVdkQ096dERRVVZvUWp0SlFVTkpMSEZDUVVGak8wbEJRV1FzY1VKQlFXTTdTVUZCWkN4alFVRmpPMGxCUTJRc05rSkJRWFZDTzBsQlFYWkNMRGhDUVVGMVFqdFJRVUYyUWl3eVFrRkJkVUk3V1VGQmRrSXNkVUpCUVhWQ08wTkJRekZDT3p0RFFVVkVPMGxCUTBrc2VVWkJRWGxHTzBsQlEzcEdMRzlDUVVGdlFqdEpRVU53UWl4dlFrRkJiMEk3UTBGRGRrSTdPME5CUlVRN1NVRkRTU3hwUkVGQmFVUTdTVUZEYWtRc2RVSkJRWE5DTzFGQlFYUkNMRzlDUVVGelFqdFpRVUYwUWl4elFrRkJjMEk3U1VGRGRFSXNZVUZCWVR0SlFVTmlMR05CUVdNN1EwRkRha0k3TzBOQlJVUTdTVUZEU1N4WlFVRlpPMGxCUTFvc0swSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl4VlFVRlZPMGxCUTFZc2EwSkJRVzlETzBsQlEzQkRMSGxDUVVGblF6dEpRVU5vUXl3d1FrRkJOa1E3U1VGRE4wUXNZMEZCTmtNN1NVRkROME1zYjBKQlFXRTdVVUZCWWl4eFFrRkJZVHRaUVVGaUxHRkJRV0U3U1VGRFlpeGxRVUZsTzBOQlEyeENPenREUVVWRU8wbEJRMGtzZDBOQlFTdEVPMGxCUXk5RUxHbENRVUZ0Ump0RFFVTjBSanM3UTBGRlJEdEpRVU5KTEc5Q1FVRnBSRHRSUVVGcVJDeHZRa0ZCYVVRN1dVRkJha1FzWjBKQlFXbEVPMGxCUTJwRUxHZENRVUZuUWp0SlFVTm9RaXhwUWtGQmJVWTdTVUZEYmtZc2EwSkJRWEZFTzBsQlEzSkVMR3RDUVVFclF6dEpRVU12UXl4clFrRkJhMEk3U1VGRGJFSXNiMEpCUVc5RE8wbEJRM0JETEhsQ1FVRm5RenRKUVVOb1F5d3dRa0ZCTmtRN1NVRkROMFFzYjBKQlFXOUNPMGxCUTNCQ0xHMUNRVUZ0UWp0RFFVTjBRanM3UTBGRlJEdEpRVU5KTERCQ1FVRm5RenRKUVVOb1F5eG5SVUZCWjBVN1NVRkRhRVVzYTBKQlFXOURPMGxCUTNCRExHbENRVUYxUmp0SlFVTjJSaXh0UTBGQk9FTTdXVUZCT1VNc01rSkJRVGhETzBsQlF6bERMR3RDUVVGclFqdERRVU55UWpzN1EwRkZSRHRKUVVOSkxHMUNRVUZ0UWp0SlFVTnVRaXhWUVVGMVF6dEpRVU4yUXl4WFFVRjNRenRKUVVONFF5eFpRVUZaTzBsQlExb3NXVUZCYjBRN1NVRkRjRVFzZDBKQlFTdERPMGxCUXk5RExHOUNRVUZ0UXp0RFFVTjBRenM3UTBGRlJEdEpRVU5KTEdWQlFXVTdRMEZEYkVJN08wTkJSVVE3U1VGRFNTeHJRa0ZCYjBNN1NVRkRjRU1zZVVKQlFXZERPME5CUTI1RE96dERRVVZFTzBsQlEwa3NhVUpCUVdsQ08wTkJRM0JDT3p0RFFVVkVPMGxCUTBrc2VVSkJRWGxDTzBsQlEzcENMR2xDUVVGcFFpeERRVUZETEZkQlFWYzdRMEZEYUVNN08wTkJSVVE3T3p0SlFVZEpMR3RDUVVGeFJEdERRVU40UkRzN1EwRkZSQ3h6UWtGQmMwSTdPME5CUlhSQ08wbEJRMGtzY1VKQlFXTTdTVUZCWkN4eFFrRkJZenRKUVVGa0xHTkJRV003U1VGRFpDdzJRa0ZCZFVJN1NVRkJka0lzT0VKQlFYVkNPMUZCUVhaQ0xESkNRVUYxUWp0WlFVRjJRaXgxUWtGQmRVSTdTVUZEZGtJc01rSkJRWEZDTzFGQlFYSkNMSGRDUVVGeFFqdFpRVUZ5UWl4eFFrRkJjVUk3UTBGRGVFSTdPME5CUlVRN1NVRkRTU3hoUVVGNVF6dEpRVU42UXl4blFrRkJaMEk3U1VGRGFFSXNlVUpCUVdkRE8wbEJRMmhETERCQ1FVRXdRenRKUVVNeFF5d3dRa0ZCY1VVN1NVRkRja1VzYlVKQlFTdEdPMGxCUXk5R0xHdENRVUZyUWp0RFFVTnlRanM3UTBGRlJEdEpRVU5KTEhkQ1FVRXdRenRKUVVNeFF5eDVRa0ZCWjBNN1EwRkRia003TzBOQlJVUTdTVUZEU1N4M1FrRkJNRU03U1VGRE1VTXNNRUpCUVdkRE8wbEJRMmhETEdkQ1FVRm5RanRKUVVOb1FpeHZRa0ZCYjBJN1EwRkRka0k3TzBOQlJVUTdTVUZEU1N4elFrRkJjMElzUlVGQlJTeHhRMEZCY1VNN1NVRkROMFFzYzBKQlFYTkNPMGxCUTNSQ0xEaERRVUU0UXp0SlFVTTVReXh0UWtGQmJVSTdTVUZEYmtJc2NVSkJRWEZDTzBsQlEzSkNMRzlEUVVGdlF6dEpRVU53UXl4dFEwRkJiVU03UTBGRGRFTTdPME5CUlVRN1NVRkRTU3h6UWtGQmMwSXNRMEZCUXl4dlEwRkJiME03UTBGRE9VUTdPME5CUlVRN1NVRkRTU3hqUVVFMlF6dEpRVU0zUXl4M1FrRkJNRU03U1VGRE1VTXNlVUpCUVdkRE8wbEJRMmhETEN0Q1FVRXdSVHRKUVVNeFJTeG5RMEZCTWtVN1NVRkRNMFVzYVVOQlFUUkZPMGxCUXpWRkxHVkJRV1U3UTBGRGJFSTdPME5CUlVRN1NVRkRTU3h4UWtGQll6dEpRVUZrTEhGQ1FVRmpPMGxCUVdRc1kwRkJZenRKUVVOa0xEWkNRVUYxUWp0SlFVRjJRaXc0UWtGQmRVSTdVVUZCZGtJc01rSkJRWFZDTzFsQlFYWkNMSFZDUVVGMVFqdEpRVU4yUWl3eVFrRkJjVUk3VVVGQmNrSXNkMEpCUVhGQ08xbEJRWEpDTEhGQ1FVRnhRanREUVVONFFqczdRMEZGUkR0SlFVTkpMR2xDUVVGcFFqdERRVU53UWpzN1EwRkZSRHRKUVVOSkxHZENRVUZuUWp0RFFVTnVRanM3UTBGSlJDeHBRa0ZCYVVJN08wTkJSV3BDTzBsQlEwa3NaMEpCUVhWRE8wTkJRekZET3p0RFFVVkVPMGxCUTBrc01FTkJRVEJETzBsQlF6RkRMRFpDUVVGdlFqdFJRVUZ3UWl4dlFrRkJiMEk3U1VGRGNFSXNiMEpCUVdFN1VVRkJZaXh4UWtGQllUdFpRVUZpTEdGQlFXRTdTVUZEWWl4eFFrRkJaVHRSUVVGbUxHVkJRV1U3U1VGRFppeHJSVUZCYTBVN1NVRkRiRVVzYTBKQlFUWkRPMGxCUXpkRExIbEZRVUY1UlR0SlFVTjZSU3h0UWtGQmJVSTdRMEZEZEVJaUxDSm1hV3hsSWpvaVkyOXVkSEp2YkhNdVkzTnpJaXdpYzI5MWNtTmxjME52Ym5SbGJuUWlPbHNpTHlvZ1EyOXdlWEpwWjJoMElDaGpLU0JLZFhCNWRHVnlJRVJsZG1Wc2IzQnRaVzUwSUZSbFlXMHVYRzRnS2lCRWFYTjBjbWxpZFhSbFpDQjFibVJsY2lCMGFHVWdkR1Z5YlhNZ2IyWWdkR2hsSUUxdlpHbG1hV1ZrSUVKVFJDQk1hV05sYm5ObExseHVJQ292WEc1Y2JpQXZLaUJYWlNCcGJYQnZjblFnWVd4c0lHOW1JSFJvWlhObElIUnZaMlYwYUdWeUlHbHVJR0VnYzJsdVoyeGxJR056Y3lCbWFXeGxJR0psWTJGMWMyVWdkR2hsSUZkbFluQmhZMnRjYm14dllXUmxjaUJ6WldWeklHOXViSGtnYjI1bElHWnBiR1VnWVhRZ1lTQjBhVzFsTGlCVWFHbHpJR0ZzYkc5M2N5QndiM04wWTNOeklIUnZJSE5sWlNCMGFHVWdkbUZ5YVdGaWJHVmNibVJsWm1sdWFYUnBiMjV6SUhkb1pXNGdkR2hsZVNCaGNtVWdkWE5sWkM0Z0tpOWNibHh1UUdsdGNHOXlkQ0JjSWk0dmJHRmlkbUZ5YVdGaWJHVnpMbU56YzF3aU8xeHVRR2x0Y0c5eWRDQmNJaTR2ZDJsa1oyVjBjeTFpWVhObExtTnpjMXdpTzF4dUlpd2lMeW90TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExWeHVmQ0JEYjNCNWNtbG5hSFFnS0dNcElFcDFjSGwwWlhJZ1JHVjJaV3h2Y0cxbGJuUWdWR1ZoYlM1Y2Jud2dSR2x6ZEhKcFluVjBaV1FnZFc1a1pYSWdkR2hsSUhSbGNtMXpJRzltSUhSb1pTQk5iMlJwWm1sbFpDQkNVMFFnVEdsalpXNXpaUzVjYm53dExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRMUzB0TFMwdExTMHRLaTljYmx4dUx5cGNibFJvYVhNZ1ptbHNaU0JwY3lCamIzQnBaV1FnWm5KdmJTQjBhR1VnU25Wd2VYUmxja3hoWWlCd2NtOXFaV04wSUhSdklHUmxabWx1WlNCa1pXWmhkV3gwSUhOMGVXeHBibWNnWm05eVhHNTNhR1Z1SUhSb1pTQjNhV1JuWlhRZ2MzUjViR2x1WnlCcGN5QmpiMjF3YVd4bFpDQmtiM2R1SUhSdklHVnNhVzFwYm1GMFpTQkRVMU1nZG1GeWFXRmliR1Z6TGlCWFpTQnRZV3RsSUc5dVpWeHVZMmhoYm1kbElDMGdkMlVnWTI5dGJXVnVkQ0J2ZFhRZ2RHaGxJR1p2Ym5RZ2FXMXdiM0owSUdKbGJHOTNMbHh1S2k5Y2JseHVRR2x0Y0c5eWRDQmNJaTR2YldGMFpYSnBZV3hqYjJ4dmNuTXVZM056WENJN1hHNWNiaThxWEc1VWFHVWdabTlzYkc5M2FXNW5JRU5UVXlCMllYSnBZV0pzWlhNZ1pHVm1hVzVsSUhSb1pTQnRZV2x1TENCd2RXSnNhV01nUVZCSklHWnZjaUJ6ZEhsc2FXNW5JRXAxY0hsMFpYSk1ZV0l1WEc1VWFHVnpaU0IyWVhKcFlXSnNaWE1nYzJodmRXeGtJR0psSUhWelpXUWdZbmtnWVd4c0lIQnNkV2RwYm5NZ2QyaGxjbVYyWlhJZ2NHOXpjMmxpYkdVdUlFbHVJRzkwYUdWeVhHNTNiM0prY3l3Z2NHeDFaMmx1Y3lCemFHOTFiR1FnYm05MElHUmxabWx1WlNCamRYTjBiMjBnWTI5c2IzSnpMQ0J6YVhwbGN5d2daWFJqSUhWdWJHVnpjeUJoWW5OdmJIVjBaV3g1WEc1dVpXTmxjM05oY25rdUlGUm9hWE1nWlc1aFlteGxjeUIxYzJWeWN5QjBieUJqYUdGdVoyVWdkR2hsSUhacGMzVmhiQ0IwYUdWdFpTQnZaaUJLZFhCNWRHVnlUR0ZpWEc1aWVTQmphR0Z1WjJsdVp5QjBhR1Z6WlNCMllYSnBZV0pzWlhNdVhHNWNiazFoYm5rZ2RtRnlhV0ZpYkdWeklHRndjR1ZoY2lCcGJpQmhiaUJ2Y21SbGNtVmtJSE5sY1hWbGJtTmxJQ2d3TERFc01pd3pLUzRnVkdobGMyVWdjMlZ4ZFdWdVkyVnpYRzVoY21VZ1pHVnphV2R1WldRZ2RHOGdkMjl5YXlCM1pXeHNJSFJ2WjJWMGFHVnlMQ0J6YnlCbWIzSWdaWGhoYlhCc1pTd2dZQzB0YW5BdFltOXlaR1Z5TFdOdmJHOXlNV0FnYzJodmRXeGtYRzVpWlNCMWMyVmtJSGRwZEdnZ1lDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1XQXVJRlJvWlNCdWRXMWlaWEp6SUdoaGRtVWdkR2hsSUdadmJHeHZkMmx1WnlCdFpXRnVhVzVuY3pwY2JseHVLaUF3T2lCemRYQmxjaTF3Y21sdFlYSjVMQ0J5WlhObGNuWmxaQ0JtYjNJZ2MzQmxZMmxoYkNCbGJYQm9ZWE5wYzF4dUtpQXhPaUJ3Y21sdFlYSjVMQ0J0YjNOMElHbHRjRzl5ZEdGdWRDQjFibVJsY2lCdWIzSnRZV3dnYzJsMGRXRjBhVzl1YzF4dUtpQXlPaUJ6WldOdmJtUmhjbmtzSUc1bGVIUWdiVzl6ZENCcGJYQnZjblJoYm5RZ2RXNWtaWElnYm05eWJXRnNJSE5wZEhWaGRHbHZibk5jYmlvZ016b2dkR1Z5ZEdsaGNua3NJRzVsZUhRZ2JXOXpkQ0JwYlhCdmNuUmhiblFnZFc1a1pYSWdibTl5YldGc0lITnBkSFZoZEdsdmJuTmNibHh1VkdoeWIzVm5hRzkxZENCS2RYQjVkR1Z5VEdGaUxDQjNaU0JoY21VZ2JXOXpkR3g1SUdadmJHeHZkMmx1WnlCd2NtbHVZMmx3YkdWeklHWnliMjBnUjI5dloyeGxKM05jYmsxaGRHVnlhV0ZzSUVSbGMybG5iaUIzYUdWdUlITmxiR1ZqZEdsdVp5QmpiMnh2Y25NdUlGZGxJR0Z5WlNCdWIzUXNJR2h2ZDJWMlpYSXNJR1p2Ykd4dmQybHVaMXh1WVd4c0lHOW1JRTFFSUdGeklHbDBJR2x6SUc1dmRDQnZjSFJwYldsNlpXUWdabTl5SUdSbGJuTmxMQ0JwYm1admNtMWhkR2x2YmlCeWFXTm9JRlZKY3k1Y2Jpb3ZYRzVjYmx4dUx5cGNiaUFxSUU5d2RHbHZibUZzSUcxdmJtOXpjR0ZqWlNCbWIyNTBJR1p2Y2lCcGJuQjFkQzl2ZFhSd2RYUWdjSEp2YlhCMExseHVJQ292WEc0Z0x5b2dRMjl0YldWdWRHVmtJRzkxZENCcGJpQnBjSGwzYVdSblpYUnpJSE5wYm1ObElIZGxJR1J2YmlkMElHNWxaV1FnYVhRdUlDb3ZYRzR2S2lCQWFXMXdiM0owSUhWeWJDZ25hSFIwY0hNNkx5OW1iMjUwY3k1bmIyOW5iR1ZoY0dsekxtTnZiUzlqYzNNL1ptRnRhV3g1UFZKdlltOTBieXROYjI1dkp5azdJQ292WEc1Y2JpOHFYRzRnS2lCQlpHUmxaQ0JtYjNJZ1kyOXRjR0ZpYVhScGJHbDBlU0IzYVhSb0lHOTFkSEIxZENCaGNtVmhYRzRnS2k5Y2JqcHliMjkwSUh0Y2JpQWdMUzFxY0MxcFkyOXVMWE5sWVhKamFEb2dibTl1WlR0Y2JpQWdMUzFxY0MxMWFTMXpaV3hsWTNRdFkyRnlaWFE2SUc1dmJtVTdYRzU5WEc1Y2JseHVPbkp2YjNRZ2UxeHVYRzRnSUM4cUlFSnZjbVJsY25OY2JseHVJQ0JVYUdVZ1ptOXNiRzkzYVc1bklIWmhjbWxoWW14bGN5d2djM0JsWTJsbWVTQjBhR1VnZG1semRXRnNJSE4wZVd4cGJtY2diMllnWW05eVpHVnljeUJwYmlCS2RYQjVkR1Z5VEdGaUxseHVJQ0FnS2k5Y2JseHVJQ0F0TFdwd0xXSnZjbVJsY2kxM2FXUjBhRG9nTVhCNE8xeHVJQ0F0TFdwd0xXSnZjbVJsY2kxamIyeHZjakE2SUhaaGNpZ3RMVzFrTFdkeVpYa3ROekF3S1R0Y2JpQWdMUzFxY0MxaWIzSmtaWEl0WTI5c2IzSXhPaUIyWVhJb0xTMXRaQzFuY21WNUxUVXdNQ2s3WEc0Z0lDMHRhbkF0WW05eVpHVnlMV052Ykc5eU1qb2dkbUZ5S0MwdGJXUXRaM0psZVMwek1EQXBPMXh1SUNBdExXcHdMV0p2Y21SbGNpMWpiMnh2Y2pNNklIWmhjaWd0TFcxa0xXZHlaWGt0TVRBd0tUdGNibHh1SUNBdktpQlZTU0JHYjI1MGMxeHVYRzRnSUZSb1pTQlZTU0JtYjI1MElFTlRVeUIyWVhKcFlXSnNaWE1nWVhKbElIVnpaV1FnWm05eUlIUm9aU0IwZVhCdlozSmhjR2g1SUdGc2JDQnZaaUIwYUdVZ1NuVndlWFJsY2t4aFlseHVJQ0IxYzJWeUlHbHVkR1Z5Wm1GalpTQmxiR1Z0Wlc1MGN5QjBhR0YwSUdGeVpTQnViM1FnWkdseVpXTjBiSGtnZFhObGNpQm5aVzVsY21GMFpXUWdZMjl1ZEdWdWRDNWNiaUFnS2k5Y2JseHVJQ0F0TFdwd0xYVnBMV1p2Ym5RdGMyTmhiR1V0Wm1GamRHOXlPaUF4TGpJN1hHNGdJQzB0YW5BdGRXa3RabTl1ZEMxemFYcGxNRG9nWTJGc1l5aDJZWElvTFMxcWNDMTFhUzFtYjI1MExYTnBlbVV4S1M5MllYSW9MUzFxY0MxMWFTMW1iMjUwTFhOallXeGxMV1poWTNSdmNpa3BPMXh1SUNBdExXcHdMWFZwTFdadmJuUXRjMmw2WlRFNklERXpjSGc3SUM4cUlFSmhjMlVnWm05dWRDQnphWHBsSUNvdlhHNGdJQzB0YW5BdGRXa3RabTl1ZEMxemFYcGxNam9nWTJGc1l5aDJZWElvTFMxcWNDMTFhUzFtYjI1MExYTnBlbVV4S1NwMllYSW9MUzFxY0MxMWFTMW1iMjUwTFhOallXeGxMV1poWTNSdmNpa3BPMXh1SUNBdExXcHdMWFZwTFdadmJuUXRjMmw2WlRNNklHTmhiR01vZG1GeUtDMHRhbkF0ZFdrdFptOXVkQzF6YVhwbE1pa3FkbUZ5S0MwdGFuQXRkV2t0Wm05dWRDMXpZMkZzWlMxbVlXTjBiM0lwS1R0Y2JpQWdMUzFxY0MxMWFTMXBZMjl1TFdadmJuUXRjMmw2WlRvZ01UUndlRHNnTHlvZ1JXNXpkWEpsY3lCd2VDQndaWEptWldOMElFWnZiblJCZDJWemIyMWxJR2xqYjI1eklDb3ZYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMW1ZVzFwYkhrNklGd2lTR1ZzZG1WMGFXTmhJRTVsZFdWY0lpd2dTR1ZzZG1WMGFXTmhMQ0JCY21saGJDd2djMkZ1Y3kxelpYSnBaanRjYmx4dUlDQXZLaUJWYzJVZ2RHaGxjMlVnWm05dWRDQmpiMnh2Y25NZ1lXZGhhVzV6ZENCMGFHVWdZMjl5Y21WemNHOXVaR2x1WnlCdFlXbHVJR3hoZVc5MWRDQmpiMnh2Y25NdVhHNGdJQ0FnSUVsdUlHRWdiR2xuYUhRZ2RHaGxiV1VzSUhSb1pYTmxJR2R2SUdaeWIyMGdaR0Z5YXlCMGJ5QnNhV2RvZEM1Y2JpQWdLaTljYmx4dUlDQXRMV3B3TFhWcExXWnZiblF0WTI5c2IzSXdPaUJ5WjJKaEtEQXNNQ3d3TERFdU1DazdYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMWpiMnh2Y2pFNklISm5ZbUVvTUN3d0xEQXNNQzQ0S1R0Y2JpQWdMUzFxY0MxMWFTMW1iMjUwTFdOdmJHOXlNam9nY21kaVlTZ3dMREFzTUN3d0xqVXBPMXh1SUNBdExXcHdMWFZwTFdadmJuUXRZMjlzYjNJek9pQnlaMkpoS0RBc01Dd3dMREF1TXlrN1hHNWNiaUFnTHlvZ1ZYTmxJSFJvWlhObElHRm5ZV2x1YzNRZ2RHaGxJR0p5WVc1a0wyRmpZMlZ1ZEM5M1lYSnVMMlZ5Y205eUlHTnZiRzl5Y3k1Y2JpQWdJQ0FnVkdobGMyVWdkMmxzYkNCMGVYQnBZMkZzYkhrZ1oyOGdabkp2YlNCc2FXZG9kQ0IwYnlCa1lYSnJaWElzSUdsdUlHSnZkR2dnWVNCa1lYSnJJR0Z1WkNCc2FXZG9kQ0IwYUdWdFpWeHVJQ0FnS2k5Y2JseHVJQ0F0TFdwd0xXbHVkbVZ5YzJVdGRXa3RabTl1ZEMxamIyeHZjakE2SUhKblltRW9NalUxTERJMU5Td3lOVFVzTVNrN1hHNGdJQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNVG9nY21kaVlTZ3lOVFVzTWpVMUxESTFOU3d4TGpBcE8xeHVJQ0F0TFdwd0xXbHVkbVZ5YzJVdGRXa3RabTl1ZEMxamIyeHZjakk2SUhKblltRW9NalUxTERJMU5Td3lOVFVzTUM0M0tUdGNiaUFnTFMxcWNDMXBiblpsY25ObExYVnBMV1p2Ym5RdFkyOXNiM0l6T2lCeVoySmhLREkxTlN3eU5UVXNNalUxTERBdU5TazdYRzVjYmlBZ0x5b2dRMjl1ZEdWdWRDQkdiMjUwYzF4dVhHNGdJRU52Ym5SbGJuUWdabTl1ZENCMllYSnBZV0pzWlhNZ1lYSmxJSFZ6WldRZ1ptOXlJSFI1Y0c5bmNtRndhSGtnYjJZZ2RYTmxjaUJuWlc1bGNtRjBaV1FnWTI5dWRHVnVkQzVjYmlBZ0tpOWNibHh1SUNBdExXcHdMV052Ym5SbGJuUXRabTl1ZEMxemFYcGxPaUF4TTNCNE8xeHVJQ0F0TFdwd0xXTnZiblJsYm5RdGJHbHVaUzFvWldsbmFIUTZJREV1TlR0Y2JpQWdMUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJd09pQmliR0ZqYXp0Y2JpQWdMUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJeE9pQmliR0ZqYXp0Y2JpQWdMUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJeU9pQjJZWElvTFMxdFpDMW5jbVY1TFRjd01DazdYRzRnSUMwdGFuQXRZMjl1ZEdWdWRDMW1iMjUwTFdOdmJHOXlNem9nZG1GeUtDMHRiV1F0WjNKbGVTMDFNREFwTzF4dVhHNGdJQzB0YW5BdGRXa3RabTl1ZEMxelkyRnNaUzFtWVdOMGIzSTZJREV1TWp0Y2JpQWdMUzFxY0MxMWFTMW1iMjUwTFhOcGVtVXdPaUJqWVd4aktIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdGMybDZaVEVwTDNaaGNpZ3RMV3B3TFhWcExXWnZiblF0YzJOaGJHVXRabUZqZEc5eUtTazdYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMXphWHBsTVRvZ01UTndlRHNnTHlvZ1FtRnpaU0JtYjI1MElITnBlbVVnS2k5Y2JpQWdMUzFxY0MxMWFTMW1iMjUwTFhOcGVtVXlPaUJqWVd4aktIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdGMybDZaVEVwS25aaGNpZ3RMV3B3TFhWcExXWnZiblF0YzJOaGJHVXRabUZqZEc5eUtTazdYRzRnSUMwdGFuQXRkV2t0Wm05dWRDMXphWHBsTXpvZ1kyRnNZeWgyWVhJb0xTMXFjQzExYVMxbWIyNTBMWE5wZW1VeUtTcDJZWElvTFMxcWNDMTFhUzFtYjI1MExYTmpZV3hsTFdaaFkzUnZjaWtwTzF4dVhHNGdJQzB0YW5BdFkyOWtaUzFtYjI1MExYTnBlbVU2SURFemNIZzdYRzRnSUMwdGFuQXRZMjlrWlMxc2FXNWxMV2hsYVdkb2REb2dNUzR6TURjN1hHNGdJQzB0YW5BdFkyOWtaUzF3WVdSa2FXNW5PaUExY0hnN1hHNGdJQzB0YW5BdFkyOWtaUzFtYjI1MExXWmhiV2xzZVRvZ2JXOXViM053WVdObE8xeHVYRzVjYmlBZ0x5b2dUR0Y1YjNWMFhHNWNiaUFnVkdobElHWnZiR3h2ZDJsdVp5QmhjbVVnZEdobElHMWhhVzRnYkdGNWIzVjBJR052Ykc5eWN5QjFjMlVnYVc0Z1NuVndlWFJsY2t4aFlpNGdTVzRnWVNCc2FXZG9kRnh1SUNCMGFHVnRaU0IwYUdWelpTQjNiM1ZzWkNCbmJ5Qm1jbTl0SUd4cFoyaDBJSFJ2SUdSaGNtc3VYRzRnSUNvdlhHNWNiaUFnTFMxcWNDMXNZWGx2ZFhRdFkyOXNiM0l3T2lCM2FHbDBaVHRjYmlBZ0xTMXFjQzFzWVhsdmRYUXRZMjlzYjNJeE9pQjNhR2wwWlR0Y2JpQWdMUzFxY0Mxc1lYbHZkWFF0WTI5c2IzSXlPaUIyWVhJb0xTMXRaQzFuY21WNUxUSXdNQ2s3WEc0Z0lDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU16b2dkbUZ5S0MwdGJXUXRaM0psZVMwME1EQXBPMXh1WEc0Z0lDOHFJRUp5WVc1a0wyRmpZMlZ1ZENBcUwxeHVYRzRnSUMwdGFuQXRZbkpoYm1RdFkyOXNiM0l3T2lCMllYSW9MUzF0WkMxaWJIVmxMVGN3TUNrN1hHNGdJQzB0YW5BdFluSmhibVF0WTI5c2IzSXhPaUIyWVhJb0xTMXRaQzFpYkhWbExUVXdNQ2s3WEc0Z0lDMHRhbkF0WW5KaGJtUXRZMjlzYjNJeU9pQjJZWElvTFMxdFpDMWliSFZsTFRNd01DazdYRzRnSUMwdGFuQXRZbkpoYm1RdFkyOXNiM0l6T2lCMllYSW9MUzF0WkMxaWJIVmxMVEV3TUNrN1hHNWNiaUFnTFMxcWNDMWhZMk5sYm5RdFkyOXNiM0l3T2lCMllYSW9MUzF0WkMxbmNtVmxiaTAzTURBcE8xeHVJQ0F0TFdwd0xXRmpZMlZ1ZEMxamIyeHZjakU2SUhaaGNpZ3RMVzFrTFdkeVpXVnVMVFV3TUNrN1hHNGdJQzB0YW5BdFlXTmpaVzUwTFdOdmJHOXlNam9nZG1GeUtDMHRiV1F0WjNKbFpXNHRNekF3S1R0Y2JpQWdMUzFxY0MxaFkyTmxiblF0WTI5c2IzSXpPaUIyWVhJb0xTMXRaQzFuY21WbGJpMHhNREFwTzF4dVhHNGdJQzhxSUZOMFlYUmxJR052Ykc5eWN5QW9kMkZ5Yml3Z1pYSnliM0lzSUhOMVkyTmxjM01zSUdsdVptOHBJQ292WEc1Y2JpQWdMUzFxY0MxM1lYSnVMV052Ykc5eU1Eb2dkbUZ5S0MwdGJXUXRiM0poYm1kbExUY3dNQ2s3WEc0Z0lDMHRhbkF0ZDJGeWJpMWpiMnh2Y2pFNklIWmhjaWd0TFcxa0xXOXlZVzVuWlMwMU1EQXBPMXh1SUNBdExXcHdMWGRoY200dFkyOXNiM0l5T2lCMllYSW9MUzF0WkMxdmNtRnVaMlV0TXpBd0tUdGNiaUFnTFMxcWNDMTNZWEp1TFdOdmJHOXlNem9nZG1GeUtDMHRiV1F0YjNKaGJtZGxMVEV3TUNrN1hHNWNiaUFnTFMxcWNDMWxjbkp2Y2kxamIyeHZjakE2SUhaaGNpZ3RMVzFrTFhKbFpDMDNNREFwTzF4dUlDQXRMV3B3TFdWeWNtOXlMV052Ykc5eU1Ub2dkbUZ5S0MwdGJXUXRjbVZrTFRVd01DazdYRzRnSUMwdGFuQXRaWEp5YjNJdFkyOXNiM0l5T2lCMllYSW9MUzF0WkMxeVpXUXRNekF3S1R0Y2JpQWdMUzFxY0MxbGNuSnZjaTFqYjJ4dmNqTTZJSFpoY2lndExXMWtMWEpsWkMweE1EQXBPMXh1WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqQTZJSFpoY2lndExXMWtMV2R5WldWdUxUY3dNQ2s3WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqRTZJSFpoY2lndExXMWtMV2R5WldWdUxUVXdNQ2s3WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqSTZJSFpoY2lndExXMWtMV2R5WldWdUxUTXdNQ2s3WEc0Z0lDMHRhbkF0YzNWalkyVnpjeTFqYjJ4dmNqTTZJSFpoY2lndExXMWtMV2R5WldWdUxURXdNQ2s3WEc1Y2JpQWdMUzFxY0MxcGJtWnZMV052Ykc5eU1Eb2dkbUZ5S0MwdGJXUXRZM2xoYmkwM01EQXBPMXh1SUNBdExXcHdMV2x1Wm04dFkyOXNiM0l4T2lCMllYSW9MUzF0WkMxamVXRnVMVFV3TUNrN1hHNGdJQzB0YW5BdGFXNW1ieTFqYjJ4dmNqSTZJSFpoY2lndExXMWtMV041WVc0dE16QXdLVHRjYmlBZ0xTMXFjQzFwYm1adkxXTnZiRzl5TXpvZ2RtRnlLQzB0YldRdFkzbGhiaTB4TURBcE8xeHVYRzRnSUM4cUlFTmxiR3dnYzNCbFkybG1hV01nYzNSNWJHVnpJQ292WEc1Y2JpQWdMUzFxY0MxalpXeHNMWEJoWkdScGJtYzZJRFZ3ZUR0Y2JpQWdMUzFxY0MxalpXeHNMV1ZrYVhSdmNpMWlZV05yWjNKdmRXNWtPaUFqWmpkbU4yWTNPMXh1SUNBdExXcHdMV05sYkd3dFpXUnBkRzl5TFdKdmNtUmxjaTFqYjJ4dmNqb2dJMk5tWTJaalpqdGNiaUFnTFMxcWNDMWpaV3hzTFdWa2FYUnZjaTFpWVdOclozSnZkVzVrTFdWa2FYUTZJSFpoY2lndExXcHdMWFZwTFd4aGVXOTFkQzFqYjJ4dmNqRXBPMXh1SUNBdExXcHdMV05sYkd3dFpXUnBkRzl5TFdKdmNtUmxjaTFqYjJ4dmNpMWxaR2wwT2lCMllYSW9MUzFxY0MxaWNtRnVaQzFqYjJ4dmNqRXBPMXh1SUNBdExXcHdMV05sYkd3dGNISnZiWEIwTFhkcFpIUm9PaUF4TURCd2VEdGNiaUFnTFMxcWNDMWpaV3hzTFhCeWIyMXdkQzFtYjI1MExXWmhiV2xzZVRvZ0oxSnZZbTkwYnlCTmIyNXZKeXdnYlc5dWIzTndZV05sTzF4dUlDQXRMV3B3TFdObGJHd3RjSEp2YlhCMExXeGxkSFJsY2kxemNHRmphVzVuT2lBd2NIZzdYRzRnSUMwdGFuQXRZMlZzYkMxd2NtOXRjSFF0YjNCaFkybDBlVG9nTVM0d08xeHVJQ0F0TFdwd0xXTmxiR3d0Y0hKdmJYQjBMVzl3WVdOcGRIa3RibTkwTFdGamRHbDJaVG9nTUM0ME8xeHVJQ0F0TFdwd0xXTmxiR3d0Y0hKdmJYQjBMV1p2Ym5RdFkyOXNiM0l0Ym05MExXRmpkR2wyWlRvZ2RtRnlLQzB0YldRdFozSmxlUzAzTURBcE8xeHVJQ0F2S2lCQklHTjFjM1J2YlNCaWJHVnVaQ0J2WmlCTlJDQm5jbVY1SUdGdVpDQmliSFZsSURZd01GeHVJQ0FnS2lCVFpXVWdhSFIwY0hNNkx5OXRaWGxsY25kbFlpNWpiMjB2WlhKcFl5OTBiMjlzY3k5amIyeHZjaTFpYkdWdVpDOGpOVFEyUlRkQk9qRkZPRGhGTlRvMU9taGxlQ0FxTDF4dUlDQXRMV3B3TFdObGJHd3RhVzV3Y205dGNIUXRabTl1ZEMxamIyeHZjam9nSXpNd04wWkRNVHRjYmlBZ0x5b2dRU0JqZFhOMGIyMGdZbXhsYm1RZ2IyWWdUVVFnWjNKbGVTQmhibVFnYjNKaGJtZGxJRFl3TUZ4dUlDQWdLaUJvZEhSd2N6b3ZMMjFsZVdWeWQyVmlMbU52YlM5bGNtbGpMM1J2YjJ4ekwyTnZiRzl5TFdKc1pXNWtMeU0xTkRaRk4wRTZSalExTVRGRk9qVTZhR1Y0SUNvdlhHNGdJQzB0YW5BdFkyVnNiQzF2ZFhSd2NtOXRjSFF0Wm05dWRDMWpiMnh2Y2pvZ0kwSkdOVUl6UkR0Y2JseHVJQ0F2S2lCT2IzUmxZbTl2YXlCemNHVmphV1pwWXlCemRIbHNaWE1nS2k5Y2JseHVJQ0F0TFdwd0xXNXZkR1ZpYjI5ckxYQmhaR1JwYm1jNklERXdjSGc3WEc0Z0lDMHRhbkF0Ym05MFpXSnZiMnN0YzJOeWIyeHNMWEJoWkdScGJtYzZJREV3TUhCNE8xeHVYRzRnSUM4cUlFTnZibk52YkdVZ2MzQmxZMmxtYVdNZ2MzUjViR1Z6SUNvdlhHNWNiaUFnTFMxcWNDMWpiMjV6YjJ4bExXSmhZMnRuY205MWJtUTZJSFpoY2lndExXMWtMV2R5WlhrdE1UQXdLVHRjYmx4dUlDQXZLaUJVYjI5c1ltRnlJSE53WldOcFptbGpJSE4wZVd4bGN5QXFMMXh1WEc0Z0lDMHRhbkF0ZEc5dmJHSmhjaTFpYjNKa1pYSXRZMjlzYjNJNklIWmhjaWd0TFcxa0xXZHlaWGt0TkRBd0tUdGNiaUFnTFMxcWNDMTBiMjlzWW1GeUxXMXBZM0p2TFdobGFXZG9kRG9nT0hCNE8xeHVJQ0F0TFdwd0xYUnZiMnhpWVhJdFltRmphMmR5YjNWdVpEb2dkbUZ5S0MwdGFuQXRiR0Y1YjNWMExXTnZiRzl5TUNrN1hHNGdJQzB0YW5BdGRHOXZiR0poY2kxaWIzZ3RjMmhoWkc5M09pQXdjSGdnTUhCNElESndlQ0F3Y0hnZ2NtZGlZU2d3TERBc01Dd3dMakkwS1R0Y2JpQWdMUzFxY0MxMGIyOXNZbUZ5TFdobFlXUmxjaTF0WVhKbmFXNDZJRFJ3ZUNBMGNIZ2dNSEI0SURSd2VEdGNiaUFnTFMxcWNDMTBiMjlzWW1GeUxXRmpkR2wyWlMxaVlXTnJaM0p2ZFc1a09pQjJZWElvTFMxdFpDMW5jbVY1TFRNd01DazdYRzU5WEc0aUxDSXZLaXBjYmlBcUlGUm9aU0J0WVhSbGNtbGhiQ0JrWlhOcFoyNGdZMjlzYjNKeklHRnlaU0JoWkdGd2RHVmtJR1p5YjIwZ1oyOXZaMnhsTFcxaGRHVnlhV0ZzTFdOdmJHOXlJSFl4TGpJdU5seHVJQ29nYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDJSaGJteGxkbUZ1TDJkdmIyZHNaUzF0WVhSbGNtbGhiQzFqYjJ4dmNseHVJQ29nYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDJSaGJteGxkbUZ1TDJkdmIyZHNaUzF0WVhSbGNtbGhiQzFqYjJ4dmNpOWliRzlpTDJZMk4yTmhOV1kwTURJNFlqSm1NV0l6TkRnMk1tWTJOR0l3WTJFMk56TXlNMlk1TVdJd09EZ3ZaR2x6ZEM5d1lXeGxkSFJsTG5aaGNpNWpjM05jYmlBcVhHNGdLaUJVYUdVZ2JHbGpaVzV6WlNCbWIzSWdkR2hsSUcxaGRHVnlhV0ZzSUdSbGMybG5iaUJqYjJ4dmNpQkRVMU1nZG1GeWFXRmliR1Z6SUdseklHRnpJR1p2Ykd4dmQzTWdLSE5sWlZ4dUlDb2dhSFIwY0hNNkx5OW5hWFJvZFdJdVkyOXRMMlJoYm14bGRtRnVMMmR2YjJkc1pTMXRZWFJsY21saGJDMWpiMnh2Y2k5aWJHOWlMMlkyTjJOaE5XWTBNREk0WWpKbU1XSXpORGcyTW1ZMk5HSXdZMkUyTnpNeU0yWTVNV0l3T0RndlRFbERSVTVUUlNsY2JpQXFYRzRnS2lCVWFHVWdUVWxVSUV4cFkyVnVjMlVnS0UxSlZDbGNiaUFxWEc0Z0tpQkRiM0I1Y21sbmFIUWdLR01wSURJd01UUWdSR0Z1SUV4bElGWmhibHh1SUNwY2JpQXFJRkJsY20xcGMzTnBiMjRnYVhNZ2FHVnlaV0o1SUdkeVlXNTBaV1FzSUdaeVpXVWdiMllnWTJoaGNtZGxMQ0IwYnlCaGJua2djR1Z5YzI5dUlHOWlkR0ZwYm1sdVp5QmhJR052Y0hsY2JpQXFJRzltSUhSb2FYTWdjMjltZEhkaGNtVWdZVzVrSUdGemMyOWphV0YwWldRZ1pHOWpkVzFsYm5SaGRHbHZiaUJtYVd4bGN5QW9kR2hsSUZ3aVUyOW1kSGRoY21WY0lpa3NJSFJ2SUdSbFlXeGNiaUFxSUdsdUlIUm9aU0JUYjJaMGQyRnlaU0IzYVhSb2IzVjBJSEpsYzNSeWFXTjBhVzl1TENCcGJtTnNkV1JwYm1jZ2QybDBhRzkxZENCc2FXMXBkR0YwYVc5dUlIUm9aU0J5YVdkb2RITmNiaUFxSUhSdklIVnpaU3dnWTI5d2VTd2diVzlrYVdaNUxDQnRaWEpuWlN3Z2NIVmliR2x6YUN3Z1pHbHpkSEpwWW5WMFpTd2djM1ZpYkdsalpXNXpaU3dnWVc1a0wyOXlJSE5sYkd4Y2JpQXFJR052Y0dsbGN5QnZaaUIwYUdVZ1UyOW1kSGRoY21Vc0lHRnVaQ0IwYnlCd1pYSnRhWFFnY0dWeWMyOXVjeUIwYnlCM2FHOXRJSFJvWlNCVGIyWjBkMkZ5WlNCcGMxeHVJQ29nWm5WeWJtbHphR1ZrSUhSdklHUnZJSE52TENCemRXSnFaV04wSUhSdklIUm9aU0JtYjJ4c2IzZHBibWNnWTI5dVpHbDBhVzl1Y3pwY2JpQXFYRzRnS2lCVWFHVWdZV0p2ZG1VZ1kyOXdlWEpwWjJoMElHNXZkR2xqWlNCaGJtUWdkR2hwY3lCd1pYSnRhWE56YVc5dUlHNXZkR2xqWlNCemFHRnNiQ0JpWlNCcGJtTnNkV1JsWkNCcGJseHVJQ29nWVd4c0lHTnZjR2xsY3lCdmNpQnpkV0p6ZEdGdWRHbGhiQ0J3YjNKMGFXOXVjeUJ2WmlCMGFHVWdVMjltZEhkaGNtVXVYRzRnS2x4dUlDb2dWRWhGSUZOUFJsUlhRVkpGSUVsVElGQlNUMVpKUkVWRUlGd2lRVk1nU1ZOY0lpd2dWMGxVU0U5VlZDQlhRVkpTUVU1VVdTQlBSaUJCVGxrZ1MwbE9SQ3dnUlZoUVVrVlRVeUJQVWx4dUlDb2dTVTFRVEVsRlJDd2dTVTVEVEZWRVNVNUhJRUpWVkNCT1QxUWdURWxOU1ZSRlJDQlVUeUJVU0VVZ1YwRlNVa0ZPVkVsRlV5QlBSaUJOUlZKRFNFRk9WRUZDU1V4SlZGa3NYRzRnS2lCR1NWUk9SVk5USUVaUFVpQkJJRkJCVWxSSlExVk1RVklnVUZWU1VFOVRSU0JCVGtRZ1RrOU9TVTVHVWtsT1IwVk5SVTVVTGlCSlRpQk9UeUJGVmtWT1ZDQlRTRUZNVENCVVNFVmNiaUFxSUVGVlZFaFBVbE1nVDFJZ1EwOVFXVkpKUjBoVUlFaFBURVJGVWxNZ1FrVWdURWxCUWt4RklFWlBVaUJCVGxrZ1EweEJTVTBzSUVSQlRVRkhSVk1nVDFJZ1QxUklSVkpjYmlBcUlFeEpRVUpKVEVsVVdTd2dWMGhGVkVoRlVpQkpUaUJCVGlCQlExUkpUMDRnVDBZZ1EwOU9WRkpCUTFRc0lGUlBVbFFnVDFJZ1QxUklSVkpYU1ZORkxDQkJVa2xUU1U1SElFWlNUMDBzWEc0Z0tpQlBWVlFnVDBZZ1QxSWdTVTRnUTA5T1RrVkRWRWxQVGlCWFNWUklJRlJJUlNCVFQwWlVWMEZTUlNCUFVpQlVTRVVnVlZORklFOVNJRTlVU0VWU0lFUkZRVXhKVGtkVElFbE9JRlJJUlZ4dUlDb2dVMDlHVkZkQlVrVXVYRzRnS2k5Y2JqcHliMjkwSUh0Y2JpQWdMUzF0WkMxeVpXUXROVEE2SUNOR1JrVkNSVVU3WEc0Z0lDMHRiV1F0Y21Wa0xURXdNRG9nSTBaR1EwUkVNanRjYmlBZ0xTMXRaQzF5WldRdE1qQXdPaUFqUlVZNVFUbEJPMXh1SUNBdExXMWtMWEpsWkMwek1EQTZJQ05GTlRjek56TTdYRzRnSUMwdGJXUXRjbVZrTFRRd01Eb2dJMFZHTlRNMU1EdGNiaUFnTFMxdFpDMXlaV1F0TlRBd09pQWpSalEwTXpNMk8xeHVJQ0F0TFcxa0xYSmxaQzAyTURBNklDTkZOVE01TXpVN1hHNGdJQzB0YldRdGNtVmtMVGN3TURvZ0kwUXpNa1l5Ump0Y2JpQWdMUzF0WkMxeVpXUXRPREF3T2lBalF6WXlPREk0TzF4dUlDQXRMVzFrTFhKbFpDMDVNREE2SUNOQ056RkRNVU03WEc0Z0lDMHRiV1F0Y21Wa0xVRXhNREE2SUNOR1JqaEJPREE3WEc0Z0lDMHRiV1F0Y21Wa0xVRXlNREE2SUNOR1JqVXlOVEk3WEc0Z0lDMHRiV1F0Y21Wa0xVRTBNREE2SUNOR1JqRTNORFE3WEc0Z0lDMHRiV1F0Y21Wa0xVRTNNREE2SUNORU5UQXdNREE3WEc1Y2JpQWdMUzF0WkMxd2FXNXJMVFV3T2lBalJrTkZORVZETzF4dUlDQXRMVzFrTFhCcGJtc3RNVEF3T2lBalJqaENRa1F3TzF4dUlDQXRMVzFrTFhCcGJtc3RNakF3T2lBalJqUTRSa0l4TzF4dUlDQXRMVzFrTFhCcGJtc3RNekF3T2lBalJqQTJNamt5TzF4dUlDQXRMVzFrTFhCcGJtc3ROREF3T2lBalJVTTBNRGRCTzF4dUlDQXRMVzFrTFhCcGJtc3ROVEF3T2lBalJUa3hSVFl6TzF4dUlDQXRMVzFrTFhCcGJtc3ROakF3T2lBalJEZ3hRall3TzF4dUlDQXRMVzFrTFhCcGJtc3ROekF3T2lBalF6SXhPRFZDTzF4dUlDQXRMVzFrTFhCcGJtc3RPREF3T2lBalFVUXhORFUzTzF4dUlDQXRMVzFrTFhCcGJtc3RPVEF3T2lBak9EZ3dSVFJHTzF4dUlDQXRMVzFrTFhCcGJtc3RRVEV3TURvZ0kwWkdPREJCUWp0Y2JpQWdMUzF0WkMxd2FXNXJMVUV5TURBNklDTkdSalF3T0RFN1hHNGdJQzB0YldRdGNHbHVheTFCTkRBd09pQWpSalV3TURVM08xeHVJQ0F0TFcxa0xYQnBibXN0UVRjd01Eb2dJME0xTVRFMk1qdGNibHh1SUNBdExXMWtMWEIxY25Cc1pTMDFNRG9nSTBZelJUVkdOVHRjYmlBZ0xTMXRaQzF3ZFhKd2JHVXRNVEF3T2lBalJURkNSVVUzTzF4dUlDQXRMVzFrTFhCMWNuQnNaUzB5TURBNklDTkRSVGt6UkRnN1hHNGdJQzB0YldRdGNIVnljR3hsTFRNd01Eb2dJMEpCTmpoRE9EdGNiaUFnTFMxdFpDMXdkWEp3YkdVdE5EQXdPaUFqUVVJME4wSkRPMXh1SUNBdExXMWtMWEIxY25Cc1pTMDFNREE2SUNNNVF6STNRakE3WEc0Z0lDMHRiV1F0Y0hWeWNHeGxMVFl3TURvZ0l6aEZNalJCUVR0Y2JpQWdMUzF0WkMxd2RYSndiR1V0TnpBd09pQWpOMEl4UmtFeU8xeHVJQ0F0TFcxa0xYQjFjbkJzWlMwNE1EQTZJQ00yUVRGQ09VRTdYRzRnSUMwdGJXUXRjSFZ5Y0d4bExUa3dNRG9nSXpSQk1UUTRRenRjYmlBZ0xTMXRaQzF3ZFhKd2JHVXRRVEV3TURvZ0kwVkJPREJHUXp0Y2JpQWdMUzF0WkMxd2RYSndiR1V0UVRJd01Eb2dJMFV3TkRCR1FqdGNiaUFnTFMxdFpDMXdkWEp3YkdVdFFUUXdNRG9nSTBRMU1EQkdPVHRjYmlBZ0xTMXRaQzF3ZFhKd2JHVXRRVGN3TURvZ0kwRkJNREJHUmp0Y2JseHVJQ0F0TFcxa0xXUmxaWEF0Y0hWeWNHeGxMVFV3T2lBalJVUkZOMFkyTzF4dUlDQXRMVzFrTFdSbFpYQXRjSFZ5Y0d4bExURXdNRG9nSTBReFF6UkZPVHRjYmlBZ0xTMXRaQzFrWldWd0xYQjFjbkJzWlMweU1EQTZJQ05DTXpsRVJFSTdYRzRnSUMwdGJXUXRaR1ZsY0Mxd2RYSndiR1V0TXpBd09pQWpPVFUzTlVORU8xeHVJQ0F0TFcxa0xXUmxaWEF0Y0hWeWNHeGxMVFF3TURvZ0l6ZEZOVGRETWp0Y2JpQWdMUzF0WkMxa1pXVndMWEIxY25Cc1pTMDFNREE2SUNNMk56TkJRamM3WEc0Z0lDMHRiV1F0WkdWbGNDMXdkWEp3YkdVdE5qQXdPaUFqTlVVek5VSXhPMXh1SUNBdExXMWtMV1JsWlhBdGNIVnljR3hsTFRjd01Eb2dJelV4TWtSQk9EdGNiaUFnTFMxdFpDMWtaV1Z3TFhCMWNuQnNaUzA0TURBNklDTTBOVEkzUVRBN1hHNGdJQzB0YldRdFpHVmxjQzF3ZFhKd2JHVXRPVEF3T2lBak16RXhRamt5TzF4dUlDQXRMVzFrTFdSbFpYQXRjSFZ5Y0d4bExVRXhNREE2SUNOQ016ZzRSa1k3WEc0Z0lDMHRiV1F0WkdWbGNDMXdkWEp3YkdVdFFUSXdNRG9nSXpkRE5FUkdSanRjYmlBZ0xTMXRaQzFrWldWd0xYQjFjbkJzWlMxQk5EQXdPaUFqTmpVeFJrWkdPMXh1SUNBdExXMWtMV1JsWlhBdGNIVnljR3hsTFVFM01EQTZJQ00yTWpBd1JVRTdYRzVjYmlBZ0xTMXRaQzFwYm1ScFoyOHROVEE2SUNORk9FVkJSalk3WEc0Z0lDMHRiV1F0YVc1a2FXZHZMVEV3TURvZ0kwTTFRMEZGT1R0Y2JpQWdMUzF0WkMxcGJtUnBaMjh0TWpBd09pQWpPVVpCT0VSQk8xeHVJQ0F0TFcxa0xXbHVaR2xuYnkwek1EQTZJQ00zT1RnMlEwSTdYRzRnSUMwdGJXUXRhVzVrYVdkdkxUUXdNRG9nSXpWRE5rSkRNRHRjYmlBZ0xTMXRaQzFwYm1ScFoyOHROVEF3T2lBak0wWTFNVUkxTzF4dUlDQXRMVzFrTFdsdVpHbG5ieTAyTURBNklDTXpPVFE1UVVJN1hHNGdJQzB0YldRdGFXNWthV2R2TFRjd01Eb2dJek13TTBZNVJqdGNiaUFnTFMxdFpDMXBibVJwWjI4dE9EQXdPaUFqTWpnek5Ua3pPMXh1SUNBdExXMWtMV2x1WkdsbmJ5MDVNREE2SUNNeFFUSXpOMFU3WEc0Z0lDMHRiV1F0YVc1a2FXZHZMVUV4TURBNklDTTRRemxGUmtZN1hHNGdJQzB0YldRdGFXNWthV2R2TFVFeU1EQTZJQ00xTXpaRVJrVTdYRzRnSUMwdGJXUXRhVzVrYVdkdkxVRTBNREE2SUNNelJEVkJSa1U3WEc0Z0lDMHRiV1F0YVc1a2FXZHZMVUUzTURBNklDTXpNRFJHUmtVN1hHNWNiaUFnTFMxdFpDMWliSFZsTFRVd09pQWpSVE5HTWtaRU8xeHVJQ0F0TFcxa0xXSnNkV1V0TVRBd09pQWpRa0pFUlVaQ08xeHVJQ0F0TFcxa0xXSnNkV1V0TWpBd09pQWpPVEJEUVVZNU8xeHVJQ0F0TFcxa0xXSnNkV1V0TXpBd09pQWpOalJDTlVZMk8xeHVJQ0F0TFcxa0xXSnNkV1V0TkRBd09pQWpOREpCTlVZMU8xeHVJQ0F0TFcxa0xXSnNkV1V0TlRBd09pQWpNakU1TmtZek8xeHVJQ0F0TFcxa0xXSnNkV1V0TmpBd09pQWpNVVU0T0VVMU8xeHVJQ0F0TFcxa0xXSnNkV1V0TnpBd09pQWpNVGszTmtReU8xeHVJQ0F0TFcxa0xXSnNkV1V0T0RBd09pQWpNVFUyTlVNd08xeHVJQ0F0TFcxa0xXSnNkV1V0T1RBd09pQWpNRVEwTjBFeE8xeHVJQ0F0TFcxa0xXSnNkV1V0UVRFd01Eb2dJemd5UWpGR1JqdGNiaUFnTFMxdFpDMWliSFZsTFVFeU1EQTZJQ00wTkRoQlJrWTdYRzRnSUMwdGJXUXRZbXgxWlMxQk5EQXdPaUFqTWprM09VWkdPMXh1SUNBdExXMWtMV0pzZFdVdFFUY3dNRG9nSXpJNU5qSkdSanRjYmx4dUlDQXRMVzFrTFd4cFoyaDBMV0pzZFdVdE5UQTZJQ05GTVVZMVJrVTdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzB4TURBNklDTkNNMFUxUmtNN1hHNGdJQzB0YldRdGJHbG5hSFF0WW14MVpTMHlNREE2SUNNNE1VUTBSa0U3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMwek1EQTZJQ00wUmtNelJqYzdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzAwTURBNklDTXlPVUkyUmpZN1hHNGdJQzB0YldRdGJHbG5hSFF0WW14MVpTMDFNREE2SUNNd00wRTVSalE3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMwMk1EQTZJQ013TXpsQ1JUVTdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzAzTURBNklDTXdNamc0UkRFN1hHNGdJQzB0YldRdGJHbG5hSFF0WW14MVpTMDRNREE2SUNNd01qYzNRa1E3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMwNU1EQTZJQ013TVRVM09VSTdYRzRnSUMwdGJXUXRiR2xuYUhRdFlteDFaUzFCTVRBd09pQWpPREJFT0VaR08xeHVJQ0F0TFcxa0xXeHBaMmgwTFdKc2RXVXRRVEl3TURvZ0l6UXdRelJHUmp0Y2JpQWdMUzF0WkMxc2FXZG9kQzFpYkhWbExVRTBNREE2SUNNd01FSXdSa1k3WEc0Z0lDMHRiV1F0YkdsbmFIUXRZbXgxWlMxQk56QXdPaUFqTURBNU1VVkJPMXh1WEc0Z0lDMHRiV1F0WTNsaGJpMDFNRG9nSTBVd1JqZEdRVHRjYmlBZ0xTMXRaQzFqZVdGdUxURXdNRG9nSTBJeVJVSkdNanRjYmlBZ0xTMXRaQzFqZVdGdUxUSXdNRG9nSXpnd1JFVkZRVHRjYmlBZ0xTMXRaQzFqZVdGdUxUTXdNRG9nSXpSRVJEQkZNVHRjYmlBZ0xTMXRaQzFqZVdGdUxUUXdNRG9nSXpJMlF6WkVRVHRjYmlBZ0xTMXRaQzFqZVdGdUxUVXdNRG9nSXpBd1FrTkVORHRjYmlBZ0xTMXRaQzFqZVdGdUxUWXdNRG9nSXpBd1FVTkRNVHRjYmlBZ0xTMXRaQzFqZVdGdUxUY3dNRG9nSXpBd09UZEJOenRjYmlBZ0xTMXRaQzFqZVdGdUxUZ3dNRG9nSXpBd09ETTRSanRjYmlBZ0xTMXRaQzFqZVdGdUxUa3dNRG9nSXpBd05qQTJORHRjYmlBZ0xTMXRaQzFqZVdGdUxVRXhNREE2SUNNNE5FWkdSa1k3WEc0Z0lDMHRiV1F0WTNsaGJpMUJNakF3T2lBak1UaEdSa1pHTzF4dUlDQXRMVzFrTFdONVlXNHRRVFF3TURvZ0l6QXdSVFZHUmp0Y2JpQWdMUzF0WkMxamVXRnVMVUUzTURBNklDTXdNRUk0UkRRN1hHNWNiaUFnTFMxdFpDMTBaV0ZzTFRVd09pQWpSVEJHTWtZeE8xeHVJQ0F0TFcxa0xYUmxZV3d0TVRBd09pQWpRakpFUmtSQ08xeHVJQ0F0TFcxa0xYUmxZV3d0TWpBd09pQWpPREJEUWtNME8xeHVJQ0F0TFcxa0xYUmxZV3d0TXpBd09pQWpORVJDTmtGRE8xeHVJQ0F0TFcxa0xYUmxZV3d0TkRBd09pQWpNalpCTmpsQk8xeHVJQ0F0TFcxa0xYUmxZV3d0TlRBd09pQWpNREE1TmpnNE8xeHVJQ0F0TFcxa0xYUmxZV3d0TmpBd09pQWpNREE0T1RkQ08xeHVJQ0F0TFcxa0xYUmxZV3d0TnpBd09pQWpNREEzT1RaQ08xeHVJQ0F0TFcxa0xYUmxZV3d0T0RBd09pQWpNREEyT1RWRE8xeHVJQ0F0TFcxa0xYUmxZV3d0T1RBd09pQWpNREEwUkRRd08xeHVJQ0F0TFcxa0xYUmxZV3d0UVRFd01Eb2dJMEUzUmtaRlFqdGNiaUFnTFMxdFpDMTBaV0ZzTFVFeU1EQTZJQ00yTkVaR1JFRTdYRzRnSUMwdGJXUXRkR1ZoYkMxQk5EQXdPaUFqTVVSRk9VSTJPMXh1SUNBdExXMWtMWFJsWVd3dFFUY3dNRG9nSXpBd1FrWkJOVHRjYmx4dUlDQXRMVzFrTFdkeVpXVnVMVFV3T2lBalJUaEdOVVU1TzF4dUlDQXRMVzFrTFdkeVpXVnVMVEV3TURvZ0kwTTRSVFpET1R0Y2JpQWdMUzF0WkMxbmNtVmxiaTB5TURBNklDTkJOVVEyUVRjN1hHNGdJQzB0YldRdFozSmxaVzR0TXpBd09pQWpPREZETnpnME8xeHVJQ0F0TFcxa0xXZHlaV1Z1TFRRd01Eb2dJelkyUWtJMlFUdGNiaUFnTFMxdFpDMW5jbVZsYmkwMU1EQTZJQ00wUTBGR05UQTdYRzRnSUMwdGJXUXRaM0psWlc0dE5qQXdPaUFqTkROQk1EUTNPMXh1SUNBdExXMWtMV2R5WldWdUxUY3dNRG9nSXpNNE9FVXpRenRjYmlBZ0xTMXRaQzFuY21WbGJpMDRNREE2SUNNeVJUZEVNekk3WEc0Z0lDMHRiV1F0WjNKbFpXNHRPVEF3T2lBak1VSTFSVEl3TzF4dUlDQXRMVzFrTFdkeVpXVnVMVUV4TURBNklDTkNPVVkyUTBFN1hHNGdJQzB0YldRdFozSmxaVzR0UVRJd01Eb2dJelk1UmpCQlJUdGNiaUFnTFMxdFpDMW5jbVZsYmkxQk5EQXdPaUFqTURCRk5qYzJPMXh1SUNBdExXMWtMV2R5WldWdUxVRTNNREE2SUNNd01FTTROVE03WEc1Y2JpQWdMUzF0WkMxc2FXZG9kQzFuY21WbGJpMDFNRG9nSTBZeFJqaEZPVHRjYmlBZ0xTMXRaQzFzYVdkb2RDMW5jbVZsYmkweE1EQTZJQ05FUTBWRVF6ZzdYRzRnSUMwdGJXUXRiR2xuYUhRdFozSmxaVzR0TWpBd09pQWpRelZGTVVFMU8xeHVJQ0F0TFcxa0xXeHBaMmgwTFdkeVpXVnVMVE13TURvZ0kwRkZSRFU0TVR0Y2JpQWdMUzF0WkMxc2FXZG9kQzFuY21WbGJpMDBNREE2SUNNNVEwTkROalU3WEc0Z0lDMHRiV1F0YkdsbmFIUXRaM0psWlc0dE5UQXdPaUFqT0VKRE16UkJPMXh1SUNBdExXMWtMV3hwWjJoMExXZHlaV1Z1TFRZd01Eb2dJemREUWpNME1qdGNiaUFnTFMxdFpDMXNhV2RvZEMxbmNtVmxiaTAzTURBNklDTTJPRGxHTXpnN1hHNGdJQzB0YldRdGJHbG5hSFF0WjNKbFpXNHRPREF3T2lBak5UVTRRakpHTzF4dUlDQXRMVzFrTFd4cFoyaDBMV2R5WldWdUxUa3dNRG9nSXpNek5qa3hSVHRjYmlBZ0xTMXRaQzFzYVdkb2RDMW5jbVZsYmkxQk1UQXdPaUFqUTBOR1Jqa3dPMXh1SUNBdExXMWtMV3hwWjJoMExXZHlaV1Z1TFVFeU1EQTZJQ05DTWtaR05UazdYRzRnSUMwdGJXUXRiR2xuYUhRdFozSmxaVzR0UVRRd01Eb2dJemMyUmtZd016dGNiaUFnTFMxdFpDMXNhV2RvZEMxbmNtVmxiaTFCTnpBd09pQWpOalJFUkRFM08xeHVYRzRnSUMwdGJXUXRiR2x0WlMwMU1Eb2dJMFk1UmtKRk56dGNiaUFnTFMxdFpDMXNhVzFsTFRFd01Eb2dJMFl3UmpSRE16dGNiaUFnTFMxdFpDMXNhVzFsTFRJd01Eb2dJMFUyUlVVNVF6dGNiaUFnTFMxdFpDMXNhVzFsTFRNd01Eb2dJMFJEUlRjM05UdGNiaUFnTFMxdFpDMXNhVzFsTFRRd01Eb2dJMFEwUlRFMU56dGNiaUFnTFMxdFpDMXNhVzFsTFRVd01Eb2dJME5FUkVNek9UdGNiaUFnTFMxdFpDMXNhVzFsTFRZd01Eb2dJME13UTBFek16dGNiaUFnTFMxdFpDMXNhVzFsTFRjd01Eb2dJMEZHUWpReVFqdGNiaUFnTFMxdFpDMXNhVzFsTFRnd01Eb2dJemxGT1VReU5EdGNiaUFnTFMxdFpDMXNhVzFsTFRrd01Eb2dJemd5TnpjeE56dGNiaUFnTFMxdFpDMXNhVzFsTFVFeE1EQTZJQ05HTkVaR09ERTdYRzRnSUMwdGJXUXRiR2x0WlMxQk1qQXdPaUFqUlVWR1JqUXhPMXh1SUNBdExXMWtMV3hwYldVdFFUUXdNRG9nSTBNMlJrWXdNRHRjYmlBZ0xTMXRaQzFzYVcxbExVRTNNREE2SUNOQlJVVkJNREE3WEc1Y2JpQWdMUzF0WkMxNVpXeHNiM2N0TlRBNklDTkdSa1pFUlRjN1hHNGdJQzB0YldRdGVXVnNiRzkzTFRFd01Eb2dJMFpHUmpsRE5EdGNiaUFnTFMxdFpDMTVaV3hzYjNjdE1qQXdPaUFqUmtaR05UbEVPMXh1SUNBdExXMWtMWGxsYkd4dmR5MHpNREE2SUNOR1JrWXhOelk3WEc0Z0lDMHRiV1F0ZVdWc2JHOTNMVFF3TURvZ0kwWkdSVVUxT0R0Y2JpQWdMUzF0WkMxNVpXeHNiM2N0TlRBd09pQWpSa1pGUWpOQ08xeHVJQ0F0TFcxa0xYbGxiR3h2ZHkwMk1EQTZJQ05HUkVRNE16VTdYRzRnSUMwdGJXUXRlV1ZzYkc5M0xUY3dNRG9nSTBaQ1F6QXlSRHRjYmlBZ0xTMXRaQzE1Wld4c2IzY3RPREF3T2lBalJqbEJPREkxTzF4dUlDQXRMVzFrTFhsbGJHeHZkeTA1TURBNklDTkdOVGRHTVRjN1hHNGdJQzB0YldRdGVXVnNiRzkzTFVFeE1EQTZJQ05HUmtaR09FUTdYRzRnSUMwdGJXUXRlV1ZzYkc5M0xVRXlNREE2SUNOR1JrWkdNREE3WEc0Z0lDMHRiV1F0ZVdWc2JHOTNMVUUwTURBNklDTkdSa1ZCTURBN1hHNGdJQzB0YldRdGVXVnNiRzkzTFVFM01EQTZJQ05HUmtRMk1EQTdYRzVjYmlBZ0xTMXRaQzFoYldKbGNpMDFNRG9nSTBaR1JqaEZNVHRjYmlBZ0xTMXRaQzFoYldKbGNpMHhNREE2SUNOR1JrVkRRak03WEc0Z0lDMHRiV1F0WVcxaVpYSXRNakF3T2lBalJrWkZNRGd5TzF4dUlDQXRMVzFrTFdGdFltVnlMVE13TURvZ0kwWkdSRFUwUmp0Y2JpQWdMUzF0WkMxaGJXSmxjaTAwTURBNklDTkdSa05CTWpnN1hHNGdJQzB0YldRdFlXMWlaWEl0TlRBd09pQWpSa1pETVRBM08xeHVJQ0F0TFcxa0xXRnRZbVZ5TFRZd01Eb2dJMFpHUWpNd01EdGNiaUFnTFMxdFpDMWhiV0psY2kwM01EQTZJQ05HUmtFd01EQTdYRzRnSUMwdGJXUXRZVzFpWlhJdE9EQXdPaUFqUmtZNFJqQXdPMXh1SUNBdExXMWtMV0Z0WW1WeUxUa3dNRG9nSTBaR05rWXdNRHRjYmlBZ0xTMXRaQzFoYldKbGNpMUJNVEF3T2lBalJrWkZOVGRHTzF4dUlDQXRMVzFrTFdGdFltVnlMVUV5TURBNklDTkdSa1EzTkRBN1hHNGdJQzB0YldRdFlXMWlaWEl0UVRRd01Eb2dJMFpHUXpRd01EdGNiaUFnTFMxdFpDMWhiV0psY2kxQk56QXdPaUFqUmtaQlFqQXdPMXh1WEc0Z0lDMHRiV1F0YjNKaGJtZGxMVFV3T2lBalJrWkdNMFV3TzF4dUlDQXRMVzFrTFc5eVlXNW5aUzB4TURBNklDTkdSa1V3UWpJN1hHNGdJQzB0YldRdGIzSmhibWRsTFRJd01Eb2dJMFpHUTBNNE1EdGNiaUFnTFMxdFpDMXZjbUZ1WjJVdE16QXdPaUFqUmtaQ056UkVPMXh1SUNBdExXMWtMVzl5WVc1blpTMDBNREE2SUNOR1JrRTNNalk3WEc0Z0lDMHRiV1F0YjNKaGJtZGxMVFV3TURvZ0kwWkdPVGd3TUR0Y2JpQWdMUzF0WkMxdmNtRnVaMlV0TmpBd09pQWpSa0k0UXpBd08xeHVJQ0F0TFcxa0xXOXlZVzVuWlMwM01EQTZJQ05HTlRkRE1EQTdYRzRnSUMwdGJXUXRiM0poYm1kbExUZ3dNRG9nSTBWR05rTXdNRHRjYmlBZ0xTMXRaQzF2Y21GdVoyVXRPVEF3T2lBalJUWTFNVEF3TzF4dUlDQXRMVzFrTFc5eVlXNW5aUzFCTVRBd09pQWpSa1pFTVRnd08xeHVJQ0F0TFcxa0xXOXlZVzVuWlMxQk1qQXdPaUFqUmtaQlFqUXdPMXh1SUNBdExXMWtMVzl5WVc1blpTMUJOREF3T2lBalJrWTVNVEF3TzF4dUlDQXRMVzFrTFc5eVlXNW5aUzFCTnpBd09pQWpSa1kyUkRBd08xeHVYRzRnSUMwdGJXUXRaR1ZsY0MxdmNtRnVaMlV0TlRBNklDTkdRa1U1UlRjN1hHNGdJQzB0YldRdFpHVmxjQzF2Y21GdVoyVXRNVEF3T2lBalJrWkRRMEpETzF4dUlDQXRMVzFrTFdSbFpYQXRiM0poYm1kbExUSXdNRG9nSTBaR1FVSTVNVHRjYmlBZ0xTMXRaQzFrWldWd0xXOXlZVzVuWlMwek1EQTZJQ05HUmpoQk5qVTdYRzRnSUMwdGJXUXRaR1ZsY0MxdmNtRnVaMlV0TkRBd09pQWpSa1kzTURRek8xeHVJQ0F0TFcxa0xXUmxaWEF0YjNKaGJtZGxMVFV3TURvZ0kwWkdOVGN5TWp0Y2JpQWdMUzF0WkMxa1pXVndMVzl5WVc1blpTMDJNREE2SUNOR05EVXhNVVU3WEc0Z0lDMHRiV1F0WkdWbGNDMXZjbUZ1WjJVdE56QXdPaUFqUlRZMFFURTVPMXh1SUNBdExXMWtMV1JsWlhBdGIzSmhibWRsTFRnd01Eb2dJMFE0TkRNeE5UdGNiaUFnTFMxdFpDMWtaV1Z3TFc5eVlXNW5aUzA1TURBNklDTkNSak0yTUVNN1hHNGdJQzB0YldRdFpHVmxjQzF2Y21GdVoyVXRRVEV3TURvZ0kwWkdPVVU0TUR0Y2JpQWdMUzF0WkMxa1pXVndMVzl5WVc1blpTMUJNakF3T2lBalJrWTJSVFF3TzF4dUlDQXRMVzFrTFdSbFpYQXRiM0poYm1kbExVRTBNREE2SUNOR1JqTkVNREE3WEc0Z0lDMHRiV1F0WkdWbGNDMXZjbUZ1WjJVdFFUY3dNRG9nSTBSRU1rTXdNRHRjYmx4dUlDQXRMVzFrTFdKeWIzZHVMVFV3T2lBalJVWkZRa1U1TzF4dUlDQXRMVzFrTFdKeWIzZHVMVEV3TURvZ0kwUTNRME5ET0R0Y2JpQWdMUzF0WkMxaWNtOTNiaTB5TURBNklDTkNRMEZCUVRRN1hHNGdJQzB0YldRdFluSnZkMjR0TXpBd09pQWpRVEU0T0RkR08xeHVJQ0F0TFcxa0xXSnliM2R1TFRRd01Eb2dJemhFTmtVMk16dGNiaUFnTFMxdFpDMWljbTkzYmkwMU1EQTZJQ00zT1RVMU5EZzdYRzRnSUMwdGJXUXRZbkp2ZDI0dE5qQXdPaUFqTmtRMFF6UXhPMXh1SUNBdExXMWtMV0p5YjNkdUxUY3dNRG9nSXpWRU5EQXpOenRjYmlBZ0xTMXRaQzFpY205M2JpMDRNREE2SUNNMFJUTTBNa1U3WEc0Z0lDMHRiV1F0WW5KdmQyNHRPVEF3T2lBak0wVXlOekl6TzF4dVhHNGdJQzB0YldRdFozSmxlUzAxTURvZ0kwWkJSa0ZHUVR0Y2JpQWdMUzF0WkMxbmNtVjVMVEV3TURvZ0kwWTFSalZHTlR0Y2JpQWdMUzF0WkMxbmNtVjVMVEl3TURvZ0kwVkZSVVZGUlR0Y2JpQWdMUzF0WkMxbmNtVjVMVE13TURvZ0kwVXdSVEJGTUR0Y2JpQWdMUzF0WkMxbmNtVjVMVFF3TURvZ0kwSkVRa1JDUkR0Y2JpQWdMUzF0WkMxbmNtVjVMVFV3TURvZ0l6bEZPVVU1UlR0Y2JpQWdMUzF0WkMxbmNtVjVMVFl3TURvZ0l6YzFOelUzTlR0Y2JpQWdMUzF0WkMxbmNtVjVMVGN3TURvZ0l6WXhOakUyTVR0Y2JpQWdMUzF0WkMxbmNtVjVMVGd3TURvZ0l6UXlOREkwTWp0Y2JpQWdMUzF0WkMxbmNtVjVMVGt3TURvZ0l6SXhNakV5TVR0Y2JseHVJQ0F0TFcxa0xXSnNkV1V0WjNKbGVTMDFNRG9nSTBWRFJVWkdNVHRjYmlBZ0xTMXRaQzFpYkhWbExXZHlaWGt0TVRBd09pQWpRMFpFT0VSRE8xeHVJQ0F0TFcxa0xXSnNkV1V0WjNKbGVTMHlNREE2SUNOQ01FSkZRelU3WEc0Z0lDMHRiV1F0WW14MVpTMW5jbVY1TFRNd01Eb2dJemt3UVRSQlJUdGNiaUFnTFMxdFpDMWliSFZsTFdkeVpYa3ROREF3T2lBak56ZzVNRGxETzF4dUlDQXRMVzFrTFdKc2RXVXRaM0psZVMwMU1EQTZJQ00yTURkRU9FSTdYRzRnSUMwdGJXUXRZbXgxWlMxbmNtVjVMVFl3TURvZ0l6VTBOa1UzUVR0Y2JpQWdMUzF0WkMxaWJIVmxMV2R5WlhrdE56QXdPaUFqTkRVMVFUWTBPMXh1SUNBdExXMWtMV0pzZFdVdFozSmxlUzA0TURBNklDTXpOelEzTkVZN1hHNGdJQzB0YldRdFlteDFaUzFuY21WNUxUa3dNRG9nSXpJMk16SXpPRHRjYm4waUxDSXZLaUJEYjNCNWNtbG5hSFFnS0dNcElFcDFjSGwwWlhJZ1JHVjJaV3h2Y0cxbGJuUWdWR1ZoYlM1Y2JpQXFJRVJwYzNSeWFXSjFkR1ZrSUhWdVpHVnlJSFJvWlNCMFpYSnRjeUJ2WmlCMGFHVWdUVzlrYVdacFpXUWdRbE5FSUV4cFkyVnVjMlV1WEc0Z0tpOWNibHh1THlwY2JpQXFJRmRsSUdGemMzVnRaU0IwYUdGMElIUm9aU0JEVTFNZ2RtRnlhV0ZpYkdWeklHbHVYRzRnS2lCb2RIUndjem92TDJkcGRHaDFZaTVqYjIwdmFuVndlWFJsY214aFlpOXFkWEI1ZEdWeWJHRmlMMkpzYjJJdmJXRnpkR1Z5TDNOeVl5OWtaV1poZFd4MExYUm9aVzFsTDNaaGNtbGhZbXhsY3k1amMzTmNiaUFxSUdoaGRtVWdZbVZsYmlCa1pXWnBibVZrTGx4dUlDb3ZYRzVjYmtCcGJYQnZjblFnWENJdUwzQm9iM053YUc5eUxtTnpjMXdpTzF4dVhHNDZjbTl2ZENCN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxXTnZiRzl5T2lCMllYSW9MUzFxY0MxamIyNTBaVzUwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRiR0ZpWld3dFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WTI5c2IzSXBPMXh1SUNBZ0lDMHRhbkF0ZDJsa1oyVjBjeTF5WldGa2IzVjBMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXTnZiRzl5S1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdFptOXVkQzF6YVhwbE9pQjJZWElvTFMxcWNDMTFhUzFtYjI1MExYTnBlbVV4S1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGJXRnlaMmx1T2lBeWNIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRNklESTRjSGc3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFEb2dNekF3Y0hnN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxM2FXUjBhQzF6YUc5eWREb2dZMkZzWXloMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFDa2dMeUF5SUMwZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxdFlYSm5hVzRwS1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFhkcFpIUm9MWFJwYm5rNklHTmhiR01vZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdndGMyaHZjblFwSUM4Z01pQXRJSFpoY2lndExXcHdMWGRwWkdkbGRITXRiV0Z5WjJsdUtTazdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMXRZWEpuYVc0NklEUndlRHNnTHlvZ2JXRnlaMmx1SUdKbGRIZGxaVzRnYVc1c2FXNWxJR1ZzWlcxbGJuUnpJQ292WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFzWVdKbGJDMTNhV1IwYURvZ09EQndlRHRjYmlBZ0lDQXRMV3B3TFhkcFpHZGxkSE10WW05eVpHVnlMWGRwWkhSb09pQjJZWElvTFMxcWNDMWliM0prWlhJdGQybGtkR2dwTzF4dUlDQWdJQzB0YW5BdGQybGtaMlYwY3kxMlpYSjBhV05oYkMxb1pXbG5hSFE2SURJd01IQjRPMXh1SUNBZ0lDMHRhbkF0ZDJsa1oyVjBjeTFvYjNKcGVtOXVkR0ZzTFhSaFlpMW9aV2xuYUhRNklESTBjSGc3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdodmNtbDZiMjUwWVd3dGRHRmlMWGRwWkhSb09pQXhORFJ3ZUR0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGFHOXlhWHB2Ym5SaGJDMTBZV0l0ZEc5d0xXSnZjbVJsY2pvZ01uQjRPMXh1SUNBZ0lDMHRhbkF0ZDJsa1oyVjBjeTF3Y205bmNtVnpjeTEwYUdsamEyNWxjM002SURJd2NIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMV052Ym5SaGFXNWxjaTF3WVdSa2FXNW5PaUF4TlhCNE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxd1lXUmthVzVuT2lBMGNIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMWEpoWkdsdkxXbDBaVzB0YUdWcFoyaDBMV0ZrYW5WemRHMWxiblE2SURod2VEdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRjbUZrYVc4dGFYUmxiUzFvWldsbmFIUTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLU0F0SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Y21Ga2FXOHRhWFJsYlMxb1pXbG5hSFF0WVdScWRYTjBiV1Z1ZENrcE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56T2lBMGNIZzdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWliM0prWlhJdGQybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WW05eVpHVnlMWGRwWkhSb0tUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXaGhibVJzWlMxemFYcGxPaUF4Tm5CNE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGFHRnVaR3hsTFdKdmNtUmxjaTFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRZbTl5WkdWeUxXTnZiRzl5TVNrN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxb1lXNWtiR1V0WW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1TazdYRzRnSUNBZ0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWhZM1JwZG1VdGFHRnVaR3hsTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzFpY21GdVpDMWpiMnh2Y2pFcE8xeHVJQ0FnSUMwdGFuQXRkMmxrWjJWMGN5MXRaVzUxTFdsMFpXMHRhR1ZwWjJoME9pQXlOSEI0TzF4dUlDQWdJQzB0YW5BdGQybGtaMlYwY3kxa2NtOXdaRzkzYmkxaGNuSnZkem9nZFhKc0tGd2laR0YwWVRwcGJXRm5aUzl6ZG1jcmVHMXNPMkpoYzJVMk5DeFFSRGswWWxkM1oyUnRWbmxqTW14Mlltb3dhVTFUTkhkSmFVSnNZbTFPZGxwSGJIVmFlakJwWkZoU2JVeFVaMmxRZWpSTFVFTkZkRXhUUWtoYVZ6VnNZMjFHTUdJelNUWkpSVVpyWWpKS2JFbEZiSE5pU0ZaNlpFaEthR1JIT1hsSlJFVTFUR3BKZFUxVGQyZFZNVnBJU1VWV05HTkhPWGxrUTBKUllraFdia3hWYkhWSlF6Um5WVEZhU0VsR1dteGpiazV3WWpJME5rbEVXWFZOUkVGblVXNVdjR0pIVVdkTlEydG5TVU13ZEZCbmJ6aGpNMXB1U1VoYWJHTnVUbkJpTWpRNVNXcEZkVTFUU1dkaFYxRTVTV3Q0YUdWWFZubFlla1ZwU1Vob2RHSkhOWHBRVTBwdlpFaFNkMDlwT0haa00yUXpURzVqZWt4dE9YbGFlVGg1VFVSQmQwd3pUakphZVVsblpVY3hjMkp1VFRabFIzaHdZbTF6T1VsdGFEQmtTRUUyVEhrNU0yUXpZM1ZrZWsxMVlqTktia3g2UlRWUFZHdDJaVWQ0Y0dKdGMybEpTR2M1U1dwQ2QyVkRTV2RsVkRCcFRVaENORWxuYjBwSlNGcHdXbGhrUTJJelp6bEpha0ZuVFVOQmVFOURRWGhQUTBsbll6TlNOV0pIVlRsSmJWWjFXVmRLYzFwVE1XbFpWMDV5V2pOS2RtUlhOV3RQYlRWc1pIbEJkMGxFUVdkTlZHZG5UVlJuTjBscFFqUmlWM2MyWXpOQ2FGa3lWVGxKYmtKNVdsaE9iR051V214SmFqUkxVRWhPTUdWWGVHeEpTRkkxWTBkVk9VbHVVbXhsU0ZGMldUTk9la2xxTkV0RFV6VjZaRVJDTjFwdGJITmlSSEIxWWpJMWJFOHpNRXRRUXpsNlpFaHNjMXBVTkV0UVNFSm9aRWRuWjFwRU1HbFVWRlYxVFdsM01VeHFiRTFQVTNjMVRHcGtjMDE1TkRSTVZFMTFUMGQzZUV4cVNYTk5VelI1WWtNd01FeHFhM05PVjNkMFRrTTBOVXhVVmsxT1V6UjVURVJWZFU5WWIybE1lalJMVUVoQ2FHUkhaMmRaTW5ob1l6Tk5PVWx1VGpCTlEwbG5Xa1F3YVZSVVFYUk5RelF5WVVSRk5HUnFSVFJUUkVKWFRGUkJkVTV1YjJsTWVqUkxVRU01ZW1SdFl5dERaMXdpS1R0Y2JpQWdJQ0F0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0WTI5c2IzSTZJSFpoY2lndExXcHdMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNU2s3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV0p2Y21SbGNpMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdFltOXlaR1Z5TFdOdmJHOXlNU2s3WEc0Z0lDQWdMUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV1p2WTNWekxXSnZjbVJsY2kxamIyeHZjam9nZG1GeUtDMHRhbkF0WW5KaGJtUXRZMjlzYjNJeUtUdGNiaUFnSUNBdExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV0p2Y21SbGNpMTNhV1IwYUNrN1hHNGdJQ0FnTFMxcWNDMTNhV1JuWlhSekxXUnBjMkZpYkdWa0xXOXdZV05wZEhrNklEQXVOanRjYmx4dUlDQWdJQzhxSUVaeWIyMGdUV0YwWlhKcFlXd2dSR1Z6YVdkdUlFeHBkR1VnS2k5Y2JpQWdJQ0F0TFcxa0xYTm9ZV1J2ZHkxclpYa3RkVzFpY21FdGIzQmhZMmwwZVRvZ01DNHlPMXh1SUNBZ0lDMHRiV1F0YzJoaFpHOTNMV3RsZVMxd1pXNTFiV0p5WVMxdmNHRmphWFI1T2lBd0xqRTBPMXh1SUNBZ0lDMHRiV1F0YzJoaFpHOTNMV0Z0WW1sbGJuUXRjMmhoWkc5M0xXOXdZV05wZEhrNklEQXVNVEk3WEc1OVhHNWNiaTVxZFhCNWRHVnlMWGRwWkdkbGRITWdlMXh1SUNBZ0lHMWhjbWRwYmpvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxdFlYSm5hVzRwTzF4dUlDQWdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRZMjlzYjNJcE8xeHVJQ0FnSUc5MlpYSm1iRzkzT2lCMmFYTnBZbXhsTzF4dWZWeHVYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpMbXAxY0hsMFpYSXRkMmxrWjJWMGN5MWthWE5qYjI1dVpXTjBaV1E2T21KbFptOXlaU0I3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ2FHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1ZlZ4dVhHNHVhbkF0VDNWMGNIVjBMWEpsYzNWc2RDQStJQzVxZFhCNWRHVnlMWGRwWkdkbGRITWdlMXh1SUNBZ0lHMWhjbWRwYmkxc1pXWjBPaUF3TzF4dUlDQWdJRzFoY21kcGJpMXlhV2RvZERvZ01EdGNibjFjYmx4dUx5b2dkbUp2ZUNCaGJtUWdhR0p2ZUNBcUwxeHVYRzR1ZDJsa1oyVjBMV2x1YkdsdVpTMW9ZbTk0SUh0Y2JpQWdJQ0F2S2lCSWIzSnBlbTl1ZEdGc0lIZHBaR2RsZEhNZ0tpOWNiaUFnSUNCaWIzZ3RjMmw2YVc1bk9pQmliM0prWlhJdFltOTRPMXh1SUNBZ0lHUnBjM0JzWVhrNklHWnNaWGc3WEc0Z0lDQWdabXhsZUMxa2FYSmxZM1JwYjI0NklISnZkenRjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWW1GelpXeHBibVU3WEc1OVhHNWNiaTUzYVdSblpYUXRhVzVzYVc1bExYWmliM2dnZTF4dUlDQWdJQzhxSUZabGNuUnBZMkZzSUZkcFpHZGxkSE1nS2k5Y2JpQWdJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeHVJQ0FnSUdScGMzQnNZWGs2SUdac1pYZzdYRzRnSUNBZ1pteGxlQzFrYVhKbFkzUnBiMjQ2SUdOdmJIVnRianRjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWTJWdWRHVnlPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXSnZlQ0I3WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeHVJQ0FnSUcxaGNtZHBiam9nTUR0Y2JpQWdJQ0J2ZG1WeVpteHZkem9nWVhWMGJ6dGNibjFjYmx4dUxuZHBaR2RsZEMxbmNtbGtZbTk0SUh0Y2JpQWdJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeHVJQ0FnSUdScGMzQnNZWGs2SUdkeWFXUTdYRzRnSUNBZ2JXRnlaMmx1T2lBd08xeHVJQ0FnSUc5MlpYSm1iRzkzT2lCaGRYUnZPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXaGliM2dnZTF4dUlDQWdJR1pzWlhndFpHbHlaV04wYVc5dU9pQnliM2M3WEc1OVhHNWNiaTUzYVdSblpYUXRkbUp2ZUNCN1hHNGdJQ0FnWm14bGVDMWthWEpsWTNScGIyNDZJR052YkhWdGJqdGNibjFjYmx4dUx5b2dSMlZ1WlhKaGJDQkNkWFIwYjI0Z1UzUjViR2x1WnlBcUwxeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNGdlMXh1SUNBZ0lIQmhaR1JwYm1jdGJHVm1kRG9nTVRCd2VEdGNiaUFnSUNCd1lXUmthVzVuTFhKcFoyaDBPaUF4TUhCNE8xeHVJQ0FnSUhCaFpHUnBibWN0ZEc5d09pQXdjSGc3WEc0Z0lDQWdjR0ZrWkdsdVp5MWliM1IwYjIwNklEQndlRHRjYmlBZ0lDQmthWE53YkdGNU9pQnBibXhwYm1VdFlteHZZMnM3WEc0Z0lDQWdkMmhwZEdVdGMzQmhZMlU2SUc1dmQzSmhjRHRjYmlBZ0lDQnZkbVZ5Wm14dmR6b2dhR2xrWkdWdU8xeHVJQ0FnSUhSbGVIUXRiM1psY21ac2IzYzZJR1ZzYkdsd2MybHpPMXh1SUNBZ0lIUmxlSFF0WVd4cFoyNDZJR05sYm5SbGNqdGNiaUFnSUNCbWIyNTBMWE5wZW1VNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdFptOXVkQzF6YVhwbEtUdGNiaUFnSUNCamRYSnpiM0k2SUhCdmFXNTBaWEk3WEc1Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzVzYVc1bExXaGxhV2RvZENrN1hHNGdJQ0FnWW05eVpHVnlPaUF3Y0hnZ2MyOXNhV1E3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ1ltOTRMWE5vWVdSdmR6b2dibTl1WlR0Y2JseHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzExYVMxbWIyNTBMV052Ykc5eU1TazdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNaWs3WEc0Z0lDQWdZbTl5WkdWeUxXTnZiRzl5T2lCMllYSW9MUzFxY0MxaWIzSmtaWEl0WTI5c2IzSXlLVHRjYmlBZ0lDQmliM0prWlhJNklHNXZibVU3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJpQnBMbVpoSUh0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFcxaGNtZHBiaWs3WEc0Z0lDQWdjRzlwYm5SbGNpMWxkbVZ1ZEhNNklHNXZibVU3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJqcGxiWEIwZVRwaVpXWnZjbVVnZTF4dUlDQWdJR052Ym5SbGJuUTZJRndpWEZ3eU1EQmlYQ0k3SUM4cUlIcGxjbTh0ZDJsa2RHZ2djM0JoWTJVZ0tpOWNibjFjYmx4dUxtcDFjSGwwWlhJdGQybGtaMlYwY3k1cWRYQjVkR1Z5TFdKMWRIUnZianBrYVhOaFlteGxaQ0I3WEc0Z0lDQWdiM0JoWTJsMGVUb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWthWE5oWW14bFpDMXZjR0ZqYVhSNUtUdGNibjFjYmx4dUxtcDFjSGwwWlhJdFluVjBkRzl1SUdrdVptRXVZMlZ1ZEdWeUlIdGNiaUFnSUNCdFlYSm5hVzR0Y21sbmFIUTZJREE3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJqcG9iM1psY2pwbGJtRmliR1ZrTENBdWFuVndlWFJsY2kxaWRYUjBiMjQ2Wm05amRYTTZaVzVoWW14bFpDQjdYRzRnSUNBZ0x5b2dUVVFnVEdsMFpTQXlaSEFnYzJoaFpHOTNJQ292WEc0Z0lDQWdZbTk0TFhOb1lXUnZkem9nTUNBeWNIZ2dNbkI0SURBZ2NtZGlZU2d3TENBd0xDQXdMQ0IyWVhJb0xTMXRaQzF6YUdGa2IzY3RhMlY1TFhCbGJuVnRZbkpoTFc5d1lXTnBkSGtwS1N4Y2JpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBd0lETndlQ0F4Y0hnZ0xUSndlQ0J5WjJKaEtEQXNJREFzSURBc0lIWmhjaWd0TFcxa0xYTm9ZV1J2ZHkxclpYa3RkVzFpY21FdGIzQmhZMmwwZVNrcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEQWdNWEI0SURWd2VDQXdJSEpuWW1Fb01Dd2dNQ3dnTUN3Z2RtRnlLQzB0YldRdGMyaGhaRzkzTFdGdFltbGxiblF0YzJoaFpHOTNMVzl3WVdOcGRIa3BLVHRjYm4xY2JseHVMbXAxY0hsMFpYSXRZblYwZEc5dU9tRmpkR2wyWlN3Z0xtcDFjSGwwWlhJdFluVjBkRzl1TG0xdlpDMWhZM1JwZG1VZ2UxeHVJQ0FnSUM4cUlFMUVJRXhwZEdVZ05HUndJSE5vWVdSdmR5QXFMMXh1SUNBZ0lHSnZlQzF6YUdGa2IzYzZJREFnTkhCNElEVndlQ0F3SUhKblltRW9NQ3dnTUN3Z01Dd2dkbUZ5S0MwdGJXUXRjMmhoWkc5M0xXdGxlUzF3Wlc1MWJXSnlZUzF2Y0dGamFYUjVLU2tzWEc0Z0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnTUNBeGNIZ2dNVEJ3ZUNBd0lISm5ZbUVvTUN3Z01Dd2dNQ3dnZG1GeUtDMHRiV1F0YzJoaFpHOTNMV0Z0WW1sbGJuUXRjMmhoWkc5M0xXOXdZV05wZEhrcEtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXdJREp3ZUNBMGNIZ2dMVEZ3ZUNCeVoySmhLREFzSURBc0lEQXNJSFpoY2lndExXMWtMWE5vWVdSdmR5MXJaWGt0ZFcxaWNtRXRiM0JoWTJsMGVTa3BPMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxMWFTMW1iMjUwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRiR0Y1YjNWMExXTnZiRzl5TXlrN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFdKMWRIUnZianBtYjJOMWN6cGxibUZpYkdWa0lIdGNiaUFnSUNCdmRYUnNhVzVsT2lBeGNIZ2djMjlzYVdRZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJuQjFkQzFtYjJOMWN5MWliM0prWlhJdFkyOXNiM0lwTzF4dWZWeHVYRzR2S2lCQ2RYUjBiMjRnWENKUWNtbHRZWEo1WENJZ1UzUjViR2x1WnlBcUwxeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNHViVzlrTFhCeWFXMWhjbmtnZTF4dUlDQWdJR052Ykc5eU9pQjJZWElvTFMxcWNDMXBiblpsY25ObExYVnBMV1p2Ym5RdFkyOXNiM0l4S1R0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzFpY21GdVpDMWpiMnh2Y2pFcE8xeHVmVnh1WEc0dWFuVndlWFJsY2kxaWRYUjBiMjR1Ylc5a0xYQnlhVzFoY25rdWJXOWtMV0ZqZEdsMlpTQjdYRzRnSUNBZ1kyOXNiM0k2SUhaaGNpZ3RMV3B3TFdsdWRtVnljMlV0ZFdrdFptOXVkQzFqYjJ4dmNqQXBPMXh1SUNBZ0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklIWmhjaWd0TFdwd0xXSnlZVzVrTFdOdmJHOXlNQ2s3WEc1OVhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJpNXRiMlF0Y0hKcGJXRnllVHBoWTNScGRtVWdlMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxcGJuWmxjbk5sTFhWcExXWnZiblF0WTI5c2IzSXdLVHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMWljbUZ1WkMxamIyeHZjakFwTzF4dWZWeHVYRzR2S2lCQ2RYUjBiMjRnWENKVGRXTmpaWE56WENJZ1UzUjViR2x1WnlBcUwxeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNHViVzlrTFhOMVkyTmxjM01nZTF4dUlDQWdJR052Ykc5eU9pQjJZWElvTFMxcWNDMXBiblpsY25ObExYVnBMV1p2Ym5RdFkyOXNiM0l4S1R0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzF6ZFdOalpYTnpMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRjM1ZqWTJWemN5NXRiMlF0WVdOMGFYWmxJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNQ2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRjM1ZqWTJWemN5MWpiMnh2Y2pBcE8xeHVJSDFjYmx4dUxtcDFjSGwwWlhJdFluVjBkRzl1TG0xdlpDMXpkV05qWlhOek9tRmpkR2wyWlNCN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMV2x1ZG1WeWMyVXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFhOMVkyTmxjM010WTI5c2IzSXdLVHRjYmlCOVhHNWNiaUF2S2lCQ2RYUjBiMjRnWENKSmJtWnZYQ0lnVTNSNWJHbHVaeUFxTDF4dVhHNHVhblZ3ZVhSbGNpMWlkWFIwYjI0dWJXOWtMV2x1Wm04Z2UxeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzFwYm5abGNuTmxMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFxY0MxcGJtWnZMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRhVzVtYnk1dGIyUXRZV04wYVhabElIdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0YVc1MlpYSnpaUzExYVMxbWIyNTBMV052Ykc5eU1DazdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNW1ieTFqYjJ4dmNqQXBPMXh1ZlZ4dVhHNHVhblZ3ZVhSbGNpMWlkWFIwYjI0dWJXOWtMV2x1Wm04NllXTjBhWFpsSUh0Y2JpQWdJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRhVzUyWlhKelpTMTFhUzFtYjI1MExXTnZiRzl5TUNrN1hHNGdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0YVc1bWJ5MWpiMnh2Y2pBcE8xeHVmVnh1WEc0dktpQkNkWFIwYjI0Z1hDSlhZWEp1YVc1blhDSWdVM1I1YkdsdVp5QXFMMXh1WEc0dWFuVndlWFJsY2kxaWRYUjBiMjR1Ylc5a0xYZGhjbTVwYm1jZ2UxeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzFwYm5abGNuTmxMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFxY0MxM1lYSnVMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRkMkZ5Ym1sdVp5NXRiMlF0WVdOMGFYWmxJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNQ2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMkZ5YmkxamIyeHZjakFwTzF4dWZWeHVYRzR1YW5Wd2VYUmxjaTFpZFhSMGIyNHViVzlrTFhkaGNtNXBibWM2WVdOMGFYWmxJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNQ2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMkZ5YmkxamIyeHZjakFwTzF4dWZWeHVYRzR2S2lCQ2RYUjBiMjRnWENKRVlXNW5aWEpjSWlCVGRIbHNhVzVuSUNvdlhHNWNiaTVxZFhCNWRHVnlMV0oxZEhSdmJpNXRiMlF0WkdGdVoyVnlJSHRjYmlBZ0lDQmpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGFXNTJaWEp6WlMxMWFTMW1iMjUwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRaWEp5YjNJdFkyOXNiM0l4S1R0Y2JuMWNibHh1TG1wMWNIbDBaWEl0WW5WMGRHOXVMbTF2WkMxa1lXNW5aWEl1Ylc5a0xXRmpkR2wyWlNCN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMV2x1ZG1WeWMyVXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFdWeWNtOXlMV052Ykc5eU1DazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxXSjFkSFJ2Ymk1dGIyUXRaR0Z1WjJWeU9tRmpkR2wyWlNCN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMV2x1ZG1WeWMyVXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFdWeWNtOXlMV052Ykc5eU1DazdYRzU5WEc1Y2JpOHFJRmRwWkdkbGRDQkNkWFIwYjI0cUwxeHVYRzR1ZDJsa1oyVjBMV0oxZEhSdmJpd2dMbmRwWkdkbGRDMTBiMmRuYkdVdFluVjBkRzl1SUh0Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGQybGtkR2d0YzJodmNuUXBPMXh1ZlZ4dVhHNHZLaUJYYVdSblpYUWdUR0ZpWld3Z1UzUjViR2x1WnlBcUwxeHVYRzR2S2lCUGRtVnljbWxrWlNCQ2IyOTBjM1J5WVhBZ2JHRmlaV3dnWTNOeklDb3ZYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpJR3hoWW1Wc0lIdGNiaUFnSUNCdFlYSm5hVzR0WW05MGRHOXRPaUJwYm1sMGFXRnNPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXeGhZbVZzTFdKaGMybGpJSHRjYmlBZ0lDQXZLaUJDWVhOcFl5Qk1ZV0psYkNBcUwxeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV3hoWW1Wc0xXTnZiRzl5S1R0Y2JpQWdJQ0JtYjI1MExYTnBlbVU2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Wm05dWRDMXphWHBsS1R0Y2JpQWdJQ0J2ZG1WeVpteHZkem9nYUdsa1pHVnVPMXh1SUNBZ0lIUmxlSFF0YjNabGNtWnNiM2M2SUdWc2JHbHdjMmx6TzF4dUlDQWdJSGRvYVhSbExYTndZV05sT2lCdWIzZHlZWEE3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGJHRmlaV3dnZTF4dUlDQWdJQzhxSUV4aFltVnNJQ292WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGJHRmlaV3d0WTI5c2IzSXBPMXh1SUNBZ0lHWnZiblF0YzJsNlpUb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MW1iMjUwTFhOcGVtVXBPMXh1SUNBZ0lHOTJaWEptYkc5M09pQm9hV1JrWlc0N1hHNGdJQ0FnZEdWNGRDMXZkbVZ5Wm14dmR6b2daV3hzYVhCemFYTTdYRzRnSUNBZ2QyaHBkR1V0YzNCaFkyVTZJRzV2ZDNKaGNEdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JuMWNibHh1TG5kcFpHZGxkQzFwYm14cGJtVXRhR0p2ZUNBdWQybGtaMlYwTFd4aFltVnNJSHRjYmlBZ0lDQXZLaUJJYjNKcGVtOXVkR0ZzSUZkcFpHZGxkQ0JNWVdKbGJDQXFMMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFd4aFltVnNMV052Ykc5eUtUdGNiaUFnSUNCMFpYaDBMV0ZzYVdkdU9pQnlhV2RvZER0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklHTmhiR01vSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMVzFoY21kcGJpa2dLaUF5SUNrN1hHNGdJQ0FnZDJsa2RHZzZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzVzYVc1bExXeGhZbVZzTFhkcFpIUm9LVHRjYmlBZ0lDQm1iR1Y0TFhOb2NtbHVhem9nTUR0Y2JuMWNibHh1TG5kcFpHZGxkQzFwYm14cGJtVXRkbUp2ZUNBdWQybGtaMlYwTFd4aFltVnNJSHRjYmlBZ0lDQXZLaUJXWlhKMGFXTmhiQ0JYYVdSblpYUWdUR0ZpWld3Z0tpOWNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFzWVdKbGJDMWpiMnh2Y2lrN1hHNGdJQ0FnZEdWNGRDMWhiR2xuYmpvZ1kyVnVkR1Z5TzF4dUlDQWdJR3hwYm1VdGFHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1ZlZ4dVhHNHZLaUJYYVdSblpYUWdVbVZoWkc5MWRDQlRkSGxzYVc1bklDb3ZYRzVjYmk1M2FXUm5aWFF0Y21WaFpHOTFkQ0I3WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGNtVmhaRzkxZEMxamIyeHZjaWs3WEc0Z0lDQWdabTl1ZEMxemFYcGxPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2s3WEc0Z0lDQWdhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dUlDQWdJR3hwYm1VdGFHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1SUNBZ0lHOTJaWEptYkc5M09pQm9hV1JrWlc0N1hHNGdJQ0FnZDJocGRHVXRjM0JoWTJVNklHNXZkM0poY0R0Y2JpQWdJQ0IwWlhoMExXRnNhV2R1T2lCalpXNTBaWEk3WEc1OVhHNWNiaTUzYVdSblpYUXRjbVZoWkc5MWRDNXZkbVZ5Wm14dmR5QjdYRzRnSUNBZ0x5b2dUM1psY21ac2IzZHBibWNnVW1WaFpHOTFkQ0FxTDF4dVhHNGdJQ0FnTHlvZ1JuSnZiU0JOWVhSbGNtbGhiQ0JFWlhOcFoyNGdUR2wwWlZ4dUlDQWdJQ0FnSUNCemFHRmtiM2N0YTJWNUxYVnRZbkpoTFc5d1lXTnBkSGs2SURBdU1qdGNiaUFnSUNBZ0lDQWdjMmhoWkc5M0xXdGxlUzF3Wlc1MWJXSnlZUzF2Y0dGamFYUjVPaUF3TGpFME8xeHVJQ0FnSUNBZ0lDQnphR0ZrYjNjdFlXMWlhV1Z1ZEMxemFHRmtiM2N0YjNCaFkybDBlVG9nTUM0eE1qdGNiaUFnSUNBZ0tpOWNiaUFnSUNBdGQyVmlhMmwwTFdKdmVDMXphR0ZrYjNjNklEQWdNbkI0SURKd2VDQXdJSEpuWW1Fb01Dd2dNQ3dnTUN3Z01DNHlLU3hjYmlBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJREFnTTNCNElERndlQ0F0TW5CNElISm5ZbUVvTUN3Z01Dd2dNQ3dnTUM0eE5Da3NYRzRnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXdJREZ3ZUNBMWNIZ2dNQ0J5WjJKaEtEQXNJREFzSURBc0lEQXVNVElwTzF4dVhHNGdJQ0FnTFcxdmVpMWliM2d0YzJoaFpHOTNPaUF3SURKd2VDQXljSGdnTUNCeVoySmhLREFzSURBc0lEQXNJREF1TWlrc1hHNGdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0F3SUROd2VDQXhjSGdnTFRKd2VDQnlaMkpoS0RBc0lEQXNJREFzSURBdU1UUXBMRnh1SUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ01DQXhjSGdnTlhCNElEQWdjbWRpWVNnd0xDQXdMQ0F3TENBd0xqRXlLVHRjYmx4dUlDQWdJR0p2ZUMxemFHRmtiM2M2SURBZ01uQjRJREp3ZUNBd0lISm5ZbUVvTUN3Z01Dd2dNQ3dnTUM0eUtTeGNiaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQXdJRE53ZUNBeGNIZ2dMVEp3ZUNCeVoySmhLREFzSURBc0lEQXNJREF1TVRRcExGeHVJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lEQWdNWEI0SURWd2VDQXdJSEpuWW1Fb01Dd2dNQ3dnTUN3Z01DNHhNaWs3WEc1OVhHNWNiaTUzYVdSblpYUXRhVzVzYVc1bExXaGliM2dnTG5kcFpHZGxkQzF5WldGa2IzVjBJSHRjYmlBZ0lDQXZLaUJJYjNKcGVtOXVkR0ZzSUZKbFlXUnZkWFFnS2k5Y2JpQWdJQ0IwWlhoMExXRnNhV2R1T2lCalpXNTBaWEk3WEc0Z0lDQWdiV0Y0TFhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUMxemFHOXlkQ2s3WEc0Z0lDQWdiV2x1TFhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUMxMGFXNTVLVHRjYmlBZ0lDQnRZWEpuYVc0dGJHVm1kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRiV0Z5WjJsdUtUdGNibjFjYmx4dUxuZHBaR2RsZEMxcGJteHBibVV0ZG1KdmVDQXVkMmxrWjJWMExYSmxZV1J2ZFhRZ2UxeHVJQ0FnSUM4cUlGWmxjblJwWTJGc0lGSmxZV1J2ZFhRZ0tpOWNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxdFlYSm5hVzRwTzF4dUlDQWdJQzhxSUdGeklIZHBaR1VnWVhNZ2RHaGxJSGRwWkdkbGRDQXFMMXh1SUNBZ0lIZHBaSFJvT2lCcGJtaGxjbWwwTzF4dWZWeHVYRzR2S2lCWGFXUm5aWFFnUTJobFkydGliM2dnVTNSNWJHbHVaeUFxTDF4dVhHNHVkMmxrWjJWMExXTm9aV05yWW05NElIdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdncE8xeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JuMWNibHh1TG5kcFpHZGxkQzFqYUdWamEySnZlQ0JwYm5CMWRGdDBlWEJsUFZ3aVkyaGxZMnRpYjNoY0lsMGdlMXh1SUNBZ0lHMWhjbWRwYmpvZ01IQjRJR05oYkdNb0lIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFcxaGNtZHBiaWtnS2lBeUlDa2dNSEI0SURCd2VEdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JpQWdJQ0JtYjI1MExYTnBlbVU2SUd4aGNtZGxPMXh1SUNBZ0lHWnNaWGd0WjNKdmR6b2dNVHRjYmlBZ0lDQm1iR1Y0TFhOb2NtbHVhem9nTUR0Y2JpQWdJQ0JoYkdsbmJpMXpaV3htT2lCalpXNTBaWEk3WEc1OVhHNWNiaThxSUZkcFpHZGxkQ0JXWVd4cFpDQlRkSGxzYVc1bklDb3ZYRzVjYmk1M2FXUm5aWFF0ZG1Gc2FXUWdlMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQnNhVzVsTFdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdndGMyaHZjblFwTzF4dUlDQWdJR1p2Ym5RdGMybDZaVG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFtYjI1MExYTnBlbVVwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFpoYkdsa0lHazZZbVZtYjNKbElIdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFcxaGNtZHBiaWs3WEc0Z0lDQWdiV0Z5WjJsdUxXeGxablE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMVzFoY21kcGJpazdYRzVjYmlBZ0lDQXZLaUJtY205dElIUm9aU0JtWVNCamJHRnpjeUJwYmlCR2IyNTBRWGRsYzI5dFpUb2dhSFIwY0hNNkx5OW5hWFJvZFdJdVkyOXRMMFp2Y25SQmQyVnpiMjFsTDBadmJuUXRRWGRsYzI5dFpTOWliRzlpTHpRNU1UQXdZemRqTTJFM1lqVTRaRFV3WW1GaE56RmxabVZtTVRGaFpqUXhZVFkyWWpBelpETXZZM056TDJadmJuUXRZWGRsYzI5dFpTNWpjM01qVERFMElDb3ZYRzRnSUNBZ1pHbHpjR3hoZVRvZ2FXNXNhVzVsTFdKc2IyTnJPMXh1SUNBZ0lHWnZiblE2SUc1dmNtMWhiQ0J1YjNKdFlXd2dibTl5YldGc0lERTBjSGd2TVNCR2IyNTBRWGRsYzI5dFpUdGNiaUFnSUNCbWIyNTBMWE5wZW1VNklHbHVhR1Z5YVhRN1hHNGdJQ0FnZEdWNGRDMXlaVzVrWlhKcGJtYzZJR0YxZEc4N1hHNGdJQ0FnTFhkbFltdHBkQzFtYjI1MExYTnRiMjkwYUdsdVp6b2dZVzUwYVdGc2FXRnpaV1E3WEc0Z0lDQWdMVzF2ZWkxdmMzZ3RabTl1ZEMxemJXOXZkR2hwYm1jNklHZHlZWGx6WTJGc1pUdGNibjFjYmx4dUxuZHBaR2RsZEMxMllXeHBaQzV0YjJRdGRtRnNhV1FnYVRwaVpXWnZjbVVnZTF4dUlDQWdJR052Ym5SbGJuUTZJRndpWEZ4bU1EQmpYQ0k3WEc0Z0lDQWdZMjlzYjNJNklHZHlaV1Z1TzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFpoYkdsa0xtMXZaQzFwYm5aaGJHbGtJR2s2WW1WbWIzSmxJSHRjYmlBZ0lDQmpiMjUwWlc1ME9pQmNJbHhjWmpBd1pGd2lPMXh1SUNBZ0lHTnZiRzl5T2lCeVpXUTdYRzU5WEc1Y2JpNTNhV1JuWlhRdGRtRnNhV1F1Ylc5a0xYWmhiR2xrSUM1M2FXUm5aWFF0ZG1Gc2FXUXRjbVZoWkc5MWRDQjdYRzRnSUNBZ1pHbHpjR3hoZVRvZ2JtOXVaVHRjYm4xY2JseHVMeW9nVjJsa1oyVjBJRlJsZUhRZ1lXNWtJRlJsZUhSQmNtVmhJRk4wZVdsdVp5QXFMMXh1WEc0dWQybGtaMlYwTFhSbGVIUmhjbVZoTENBdWQybGtaMlYwTFhSbGVIUWdlMXh1SUNBZ0lIZHBaSFJvT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGRHVjRkQ0JwYm5CMWRGdDBlWEJsUFZ3aWRHVjRkRndpWFN3Z0xuZHBaR2RsZEMxMFpYaDBJR2x1Y0hWMFczUjVjR1U5WENKdWRXMWlaWEpjSWwxN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVJQ0FnSUd4cGJtVXRhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFJsZUhRZ2FXNXdkWFJiZEhsd1pUMWNJblJsZUhSY0lsMDZaR2x6WVdKc1pXUXNJQzUzYVdSblpYUXRkR1Y0ZENCcGJuQjFkRnQwZVhCbFBWd2liblZ0WW1WeVhDSmRPbVJwYzJGaWJHVmtMQ0F1ZDJsa1oyVjBMWFJsZUhSaGNtVmhJSFJsZUhSaGNtVmhPbVJwYzJGaWJHVmtJSHRjYmlBZ0lDQnZjR0ZqYVhSNU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXUnBjMkZpYkdWa0xXOXdZV05wZEhrcE8xeHVmVnh1WEc0dWQybGtaMlYwTFhSbGVIUWdhVzV3ZFhSYmRIbHdaVDFjSW5SbGVIUmNJbDBzSUM1M2FXUm5aWFF0ZEdWNGRDQnBibkIxZEZ0MGVYQmxQVndpYm5WdFltVnlYQ0pkTENBdWQybGtaMlYwTFhSbGVIUmhjbVZoSUhSbGVIUmhjbVZoSUh0Y2JpQWdJQ0JpYjNndGMybDZhVzVuT2lCaWIzSmtaWEl0WW05NE8xeHVJQ0FnSUdKdmNtUmxjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFdOdmJHOXlLVHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdKaFkydG5jbTkxYm1RdFkyOXNiM0lwTzF4dUlDQWdJR052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdOdmJHOXlLVHRjYmlBZ0lDQm1iMjUwTFhOcGVtVTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRabTl1ZEMxemFYcGxLVHRjYmlBZ0lDQndZV1JrYVc1bk9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwSUdOaGJHTW9JSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdGNHRmtaR2x1WnlrZ0tpQWdNaUFwTzF4dUlDQWdJR1pzWlhndFozSnZkem9nTVR0Y2JpQWdJQ0J0YVc0dGQybGtkR2c2SURBN0lDOHFJRlJvYVhNZ2JXRnJaWE1nYVhRZ2NHOXpjMmxpYkdVZ1ptOXlJSFJvWlNCbWJHVjRZbTk0SUhSdklITm9jbWx1YXlCMGFHbHpJR2x1Y0hWMElDb3ZYRzRnSUNBZ1pteGxlQzF6YUhKcGJtczZJREU3WEc0Z0lDQWdiM1YwYkdsdVpUb2dibTl1WlNBaGFXMXdiM0owWVc1ME8xeHVmVnh1WEc0dWQybGtaMlYwTFhSbGVIUmhjbVZoSUhSbGVIUmhjbVZoSUh0Y2JpQWdJQ0JvWldsbmFIUTZJR2x1YUdWeWFYUTdYRzRnSUNBZ2QybGtkR2c2SUdsdWFHVnlhWFE3WEc1OVhHNWNiaTUzYVdSblpYUXRkR1Y0ZENCcGJuQjFkRHBtYjJOMWN5d2dMbmRwWkdkbGRDMTBaWGgwWVhKbFlTQjBaWGgwWVhKbFlUcG1iMk4xY3lCN1hHNGdJQ0FnWW05eVpHVnlMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdadlkzVnpMV0p2Y21SbGNpMWpiMnh2Y2lrN1hHNTlYRzVjYmk4cUlGZHBaR2RsZENCVGJHbGtaWElnS2k5Y2JseHVMbmRwWkdkbGRDMXpiR2xrWlhJZ0xuVnBMWE5zYVdSbGNpQjdYRzRnSUNBZ0x5b2dVMnhwWkdWeUlGUnlZV05ySUNvdlhHNGdJQ0FnWW05eVpHVnlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMV3hoZVc5MWRDMWpiMnh2Y2pNcE8xeHVJQ0FnSUdKaFkydG5jbTkxYm1RNklIWmhjaWd0TFdwd0xXeGhlVzkxZEMxamIyeHZjak1wTzF4dUlDQWdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hHNGdJQ0FnY0c5emFYUnBiMjQ2SUhKbGJHRjBhWFpsTzF4dUlDQWdJR0p2Y21SbGNpMXlZV1JwZFhNNklEQndlRHRjYm4xY2JseHVMbmRwWkdkbGRDMXpiR2xrWlhJZ0xuVnBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlMV2hoYm1Sc1pTQjdYRzRnSUNBZ0x5b2dVMnhwWkdWeUlFaGhibVJzWlNBcUwxeHVJQ0FnSUc5MWRHeHBibVU2SUc1dmJtVWdJV2x0Y0c5eWRHRnVkRHNnTHlvZ1ptOWpkWE5sWkNCemJHbGtaWElnYUdGdVpHeGxjeUJoY21VZ1kyOXNiM0psWkNBdElITmxaU0JpWld4dmR5QXFMMXh1SUNBZ0lIQnZjMmwwYVc5dU9pQmhZbk52YkhWMFpUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXTnZiRzl5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFvWVc1a2JHVXRZbUZqYTJkeWIzVnVaQzFqYjJ4dmNpazdYRzRnSUNBZ1ltOXlaR1Z5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFpYjNKa1pYSXRkMmxrZEdncElITnZiR2xrSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV2hoYm1Sc1pTMWliM0prWlhJdFkyOXNiM0lwTzF4dUlDQWdJR0p2ZUMxemFYcHBibWM2SUdKdmNtUmxjaTFpYjNnN1hHNGdJQ0FnZWkxcGJtUmxlRG9nTVR0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdsdFlXZGxPaUJ1YjI1bE95QXZLaUJQZG1WeWNtbGtaU0JxY1hWbGNua3RkV2tnS2k5Y2JuMWNibHh1THlvZ1QzWmxjbkpwWkdVZ2FuRjFaWEo1TFhWcElDb3ZYRzR1ZDJsa1oyVjBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlJQzUxYVMxemJHbGtaWEl0YUdGdVpHeGxPbWh2ZG1WeUxDQXVkMmxrWjJWMExYTnNhV1JsY2lBdWRXa3RjMnhwWkdWeUlDNTFhUzF6Ykdsa1pYSXRhR0Z1Wkd4bE9tWnZZM1Z6SUh0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMWhZM1JwZG1VdGFHRnVaR3hsTFdOdmJHOXlLVHRjYmlBZ0lDQmliM0prWlhJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGMyeHBaR1Z5TFdKdmNtUmxjaTEzYVdSMGFDa2djMjlzYVdRZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0WVdOMGFYWmxMV2hoYm1Sc1pTMWpiMnh2Y2lrN1hHNTlYRzVjYmk1M2FXUm5aWFF0YzJ4cFpHVnlJQzUxYVMxemJHbGtaWElnTG5WcExYTnNhV1JsY2kxb1lXNWtiR1U2WVdOMGFYWmxJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxaFkzUnBkbVV0YUdGdVpHeGxMV052Ykc5eUtUdGNiaUFnSUNCaWIzSmtaWEl0WTI5c2IzSTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXRmpkR2wyWlMxb1lXNWtiR1V0WTI5c2IzSXBPMXh1SUNBZ0lIb3RhVzVrWlhnNklESTdYRzRnSUNBZ2RISmhibk5tYjNKdE9pQnpZMkZzWlNneExqSXBPMXh1ZlZ4dVhHNHVkMmxrWjJWMExYTnNhV1JsY2lBZ0xuVnBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlMWEpoYm1kbElIdGNiaUFnSUNBdktpQkpiblJsY25aaGJDQmlaWFIzWldWdUlIUm9aU0IwZDI4Z2MzQmxZMmxtYVdWa0lIWmhiSFZsSUc5bUlHRWdaRzkxWW14bElITnNhV1JsY2lBcUwxeHVJQ0FnSUhCdmMybDBhVzl1T2lCaFluTnZiSFYwWlR0Y2JpQWdJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFoWTNScGRtVXRhR0Z1Wkd4bExXTnZiRzl5S1R0Y2JpQWdJQ0I2TFdsdVpHVjRPaUF3TzF4dWZWeHVYRzR2S2lCVGFHRndaWE1nYjJZZ1UyeHBaR1Z5SUVoaGJtUnNaWE1nS2k5Y2JseHVMbmRwWkdkbGRDMW9jMnhwWkdWeUlDNTFhUzF6Ykdsa1pYSWdMblZwTFhOc2FXUmxjaTFvWVc1a2JHVWdlMXh1SUNBZ0lIZHBaSFJvT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFvWVc1a2JHVXRjMmw2WlNrN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMW9ZVzVrYkdVdGMybDZaU2s3WEc0Z0lDQWdiV0Z5WjJsdUxYUnZjRG9nWTJGc1l5Z29kbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56S1NBdElIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGMyeHBaR1Z5TFdoaGJtUnNaUzF6YVhwbEtTa2dMeUF5SUMwZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ2JXRnlaMmx1TFd4bFpuUTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0YUdGdVpHeGxMWE5wZW1VcElDOGdMVElnS3lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFpYjNKa1pYSXRkMmxrZEdncEtUdGNiaUFnSUNCaWIzSmtaWEl0Y21Ga2FYVnpPaUExTUNVN1hHNGdJQ0FnZEc5d09pQXdPMXh1ZlZ4dVhHNHVkMmxrWjJWMExYWnpiR2xrWlhJZ0xuVnBMWE5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlMV2hoYm1Sc1pTQjdYRzRnSUNBZ2QybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV2hoYm1Sc1pTMXphWHBsS1R0Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXaGhibVJzWlMxemFYcGxLVHRjYmlBZ0lDQnRZWEpuYVc0dFltOTBkRzl0T2lCallXeGpLSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXaGhibVJzWlMxemFYcGxLU0F2SUMweUlDc2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdFltOXlaR1Z5TFhkcFpIUm9LU2s3WEc0Z0lDQWdiV0Z5WjJsdUxXeGxablE2SUdOaGJHTW9LSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxYUnlZV05yTFhSb2FXTnJibVZ6Y3lrZ0xTQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxb1lXNWtiR1V0YzJsNlpTa3BJQzhnTWlBdElIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGMyeHBaR1Z5TFdKdmNtUmxjaTEzYVdSMGFDa3BPMXh1SUNBZ0lHSnZjbVJsY2kxeVlXUnBkWE02SURVd0pUdGNiaUFnSUNCc1pXWjBPaUF3TzF4dWZWeHVYRzR1ZDJsa1oyVjBMV2h6Ykdsa1pYSWdMblZwTFhOc2FXUmxjaUF1ZFdrdGMyeHBaR1Z5TFhKaGJtZGxJSHRjYmlBZ0lDQm9aV2xuYUhRNklHTmhiR01vSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMWFJ5WVdOckxYUm9hV05yYm1WemN5a2dLaUF5SUNrN1hHNGdJQ0FnYldGeVoybHVMWFJ2Y0RvZ1kyRnNZeWdvZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRkSEpoWTJzdGRHaHBZMnR1WlhOektTQXRJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxYUnlZV05yTFhSb2FXTnJibVZ6Y3lrZ0tpQXlJQ2tnTHlBeUlDMGdkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdFltOXlaR1Z5TFhkcFpIUm9LU2s3WEc1OVhHNWNiaTUzYVdSblpYUXRkbk5zYVdSbGNpQXVkV2t0YzJ4cFpHVnlJQzUxYVMxemJHbGtaWEl0Y21GdVoyVWdlMXh1SUNBZ0lIZHBaSFJvT2lCallXeGpLQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMTBjbUZqYXkxMGFHbGphMjVsYzNNcElDb2dNaUFwTzF4dUlDQWdJRzFoY21kcGJpMXNaV1owT2lCallXeGpLQ2gyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMTBjbUZqYXkxMGFHbGphMjVsYzNNcElDMGdkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56S1NBcUlESWdLU0F2SURJZ0xTQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxaWIzSmtaWEl0ZDJsa2RHZ3BLVHRjYm4xY2JseHVMeW9nU0c5eWFYcHZiblJoYkNCVGJHbGtaWElnS2k5Y2JseHVMbmRwWkdkbGRDMW9jMnhwWkdWeUlIdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdncE8xeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JseHVJQ0FnSUM4cUlFOTJaWEp5YVdSbElIUm9aU0JoYkdsbmJpMXBkR1Z0Y3lCaVlYTmxiR2x1WlM0Z1ZHaHBjeUIzWVhrc0lIUm9aU0JrWlhOamNtbHdkR2x2YmlCaGJtUWdjbVZoWkc5MWRGeHVJQ0FnSUhOMGFXeHNJSE5sWlcwZ2RHOGdZV3hwWjI0Z2RHaGxhWElnWW1GelpXeHBibVVnY0hKdmNHVnliSGtzSUdGdVpDQjNaU0JrYjI0bmRDQm9ZWFpsSUhSdklHaGhkbVZjYmlBZ0lDQmhiR2xuYmkxelpXeG1PaUJ6ZEhKbGRHTm9JR2x1SUhSb1pTQXVjMnhwWkdWeUxXTnZiblJoYVc1bGNpNGdLaTljYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nWTJWdWRHVnlPMXh1ZlZ4dVhHNHVkMmxrWjJWMGN5MXpiR2xrWlhJZ0xuTnNhV1JsY2kxamIyNTBZV2x1WlhJZ2UxeHVJQ0FnSUc5MlpYSm1iRzkzT2lCMmFYTnBZbXhsTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV2h6Ykdsa1pYSWdMbk5zYVdSbGNpMWpiMjUwWVdsdVpYSWdlMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQnRZWEpuYVc0dGJHVm1kRG9nWTJGc1l5aDJZWElvTFMxcWNDMTNhV1JuWlhSekxYTnNhV1JsY2kxb1lXNWtiR1V0YzJsNlpTa2dMeUF5SUMwZ01pQXFJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjMnhwWkdWeUxXSnZjbVJsY2kxM2FXUjBhQ2twTzF4dUlDQWdJRzFoY21kcGJpMXlhV2RvZERvZ1kyRnNZeWgyWVhJb0xTMXFjQzEzYVdSblpYUnpMWE5zYVdSbGNpMW9ZVzVrYkdVdGMybDZaU2tnTHlBeUlDMGdNaUFxSUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV0p2Y21SbGNpMTNhV1IwYUNrcE8xeHVJQ0FnSUdac1pYZzZJREVnTVNCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzEzYVdSMGFDMXphRzl5ZENrN1hHNTlYRzVjYmk1M2FXUm5aWFF0YUhOc2FXUmxjaUF1ZFdrdGMyeHBaR1Z5SUh0Y2JpQWdJQ0F2S2lCSmJtNWxjaXdnYVc1MmFYTnBZbXhsSUhOc2FXUmxJR1JwZGlBcUwxeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRkSEpoWTJzdGRHaHBZMnR1WlhOektUdGNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQmpZV3hqS0NoMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBJQzBnZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRkSEpoWTJzdGRHaHBZMnR1WlhOektTa2dMeUF5S1R0Y2JpQWdJQ0IzYVdSMGFEb2dNVEF3SlR0Y2JuMWNibHh1THlvZ1ZtVnlkR2xqWVd3Z1UyeHBaR1Z5SUNvdlhHNWNiaTUzYVdSblpYUXRkbUp2ZUNBdWQybGtaMlYwTFd4aFltVnNJSHRjYmlBZ0lDQm9aV2xuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFdobGFXZG9kQ2s3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGRuTnNhV1JsY2lCN1hHNGdJQ0FnTHlvZ1ZtVnlkR2xqWVd3Z1UyeHBaR1Z5SUNvdlhHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWFpsY25ScFkyRnNMV2hsYVdkb2RDazdYRzRnSUNBZ2QybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMWGRwWkhSb0xYUnBibmtwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFp6Ykdsa1pYSWdMbk5zYVdSbGNpMWpiMjUwWVdsdVpYSWdlMXh1SUNBZ0lHWnNaWGc2SURFZ01TQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxM2FXUjBhQzF6YUc5eWRDazdYRzRnSUNBZ2JXRnlaMmx1TFd4bFpuUTZJR0YxZEc4N1hHNGdJQ0FnYldGeVoybHVMWEpwWjJoME9pQmhkWFJ2TzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklHTmhiR01vZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF6Ykdsa1pYSXRhR0Z1Wkd4bExYTnBlbVVwSUM4Z01pQXRJRElnS2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFhOc2FXUmxjaTFpYjNKa1pYSXRkMmxrZEdncEtUdGNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQmpZV3hqS0haaGNpZ3RMV3B3TFhkcFpHZGxkSE10YzJ4cFpHVnlMV2hoYm1Sc1pTMXphWHBsS1NBdklESWdMU0F5SUNvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxemJHbGtaWEl0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ1pHbHpjR3hoZVRvZ1pteGxlRHRjYmlBZ0lDQm1iR1Y0TFdScGNtVmpkR2x2YmpvZ1kyOXNkVzF1TzF4dWZWeHVYRzR1ZDJsa1oyVjBMWFp6Ykdsa1pYSWdMblZwTFhOc2FXUmxjaTEyWlhKMGFXTmhiQ0I3WEc0Z0lDQWdMeW9nU1c1dVpYSXNJR2x1ZG1semFXSnNaU0J6Ykdsa1pTQmthWFlnS2k5Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXpiR2xrWlhJdGRISmhZMnN0ZEdocFkydHVaWE56S1R0Y2JpQWdJQ0JtYkdWNExXZHliM2M2SURFN1hHNGdJQ0FnYldGeVoybHVMV3hsWm5RNklHRjFkRzg3WEc0Z0lDQWdiV0Z5WjJsdUxYSnBaMmgwT2lCaGRYUnZPMXh1ZlZ4dVhHNHZLaUJYYVdSblpYUWdVSEp2WjNKbGMzTWdVM1I1YkdsdVp5QXFMMXh1WEc0dWNISnZaM0psYzNNdFltRnlJSHRjYmlBZ0lDQXRkMlZpYTJsMExYUnlZVzV6YVhScGIyNDZJRzV2Ym1VN1hHNGdJQ0FnTFcxdmVpMTBjbUZ1YzJsMGFXOXVPaUJ1YjI1bE8xeHVJQ0FnSUMxdGN5MTBjbUZ1YzJsMGFXOXVPaUJ1YjI1bE8xeHVJQ0FnSUMxdkxYUnlZVzV6YVhScGIyNDZJRzV2Ym1VN1hHNGdJQ0FnZEhKaGJuTnBkR2x2YmpvZ2JtOXVaVHRjYm4xY2JseHVMbkJ5YjJkeVpYTnpMV0poY2lCN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVmVnh1WEc0dWNISnZaM0psYzNNdFltRnlJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMWljbUZ1WkMxamIyeHZjakVwTzF4dWZWeHVYRzR1Y0hKdlozSmxjM010WW1GeUxYTjFZMk5sYzNNZ2UxeHVJQ0FnSUdKaFkydG5jbTkxYm1RdFkyOXNiM0k2SUhaaGNpZ3RMV3B3TFhOMVkyTmxjM010WTI5c2IzSXhLVHRjYm4xY2JseHVMbkJ5YjJkeVpYTnpMV0poY2kxcGJtWnZJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMXBibVp2TFdOdmJHOXlNU2s3WEc1OVhHNWNiaTV3Y205bmNtVnpjeTFpWVhJdGQyRnlibWx1WnlCN1hHNGdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJGeWJpMWpiMnh2Y2pFcE8xeHVmVnh1WEc0dWNISnZaM0psYzNNdFltRnlMV1JoYm1kbGNpQjdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdFpYSnliM0l0WTI5c2IzSXhLVHRjYm4xY2JseHVMbkJ5YjJkeVpYTnpJSHRjYmlBZ0lDQmlZV05yWjNKdmRXNWtMV052Ykc5eU9pQjJZWElvTFMxcWNDMXNZWGx2ZFhRdFkyOXNiM0l5S1R0Y2JpQWdJQ0JpYjNKa1pYSTZJRzV2Ym1VN1hHNGdJQ0FnWW05NExYTm9ZV1J2ZHpvZ2JtOXVaVHRjYm4xY2JseHVMeW9nU0c5eWFYTnZiblJoYkNCUWNtOW5jbVZ6Y3lBcUwxeHVYRzR1ZDJsa1oyVjBMV2h3Y205bmNtVnpjeUI3WEc0Z0lDQWdMeW9nVUhKdlozSmxjM01nUW1GeUlDb3ZYRzRnSUNBZ2FHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVJQ0FnSUhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUNrN1hHNGdJQ0FnWVd4cFoyNHRhWFJsYlhNNklHTmxiblJsY2p0Y2JseHVmVnh1WEc0dWQybGtaMlYwTFdod2NtOW5jbVZ6Y3lBdWNISnZaM0psYzNNZ2UxeHVJQ0FnSUdac1pYZ3RaM0p2ZHpvZ01UdGNiaUFnSUNCdFlYSm5hVzR0ZEc5d09pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwTzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0Y0dGa1pHbHVaeWs3WEc0Z0lDQWdZV3hwWjI0dGMyVnNaam9nYzNSeVpYUmphRHRjYmlBZ0lDQXZLaUJQZG1WeWNtbGtaU0JpYjI5MGMzUnlZWEFnYzNSNWJHVWdLaTljYmlBZ0lDQm9aV2xuYUhRNklHbHVhWFJwWVd3N1hHNTlYRzVjYmk4cUlGWmxjblJwWTJGc0lGQnliMmR5WlhOeklDb3ZYRzVjYmk1M2FXUm5aWFF0ZG5CeWIyZHlaWE56SUh0Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRkbVZ5ZEdsallXd3RhR1ZwWjJoMEtUdGNiaUFnSUNCM2FXUjBhRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRkMmxrZEdndGRHbHVlU2s3WEc1OVhHNWNiaTUzYVdSblpYUXRkbkJ5YjJkeVpYTnpJQzV3Y205bmNtVnpjeUI3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJSGRwWkhSb09pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxYQnliMmR5WlhOekxYUm9hV05yYm1WemN5azdYRzRnSUNBZ2JXRnlaMmx1TFd4bFpuUTZJR0YxZEc4N1hHNGdJQ0FnYldGeVoybHVMWEpwWjJoME9pQmhkWFJ2TzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklEQTdYRzU5WEc1Y2JpOHFJRk5sYkdWamRDQlhhV1JuWlhRZ1UzUjViR2x1WnlBcUwxeHVYRzR1ZDJsa1oyVjBMV1J5YjNCa2IzZHVJSHRjYmlBZ0lDQm9aV2xuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFdobGFXZG9kQ2s3WEc0Z0lDQWdkMmxrZEdnNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFhkcFpIUm9LVHRjYmlBZ0lDQnNhVzVsTFdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNibjFjYmx4dUxuZHBaR2RsZEMxa2NtOXdaRzkzYmlBK0lITmxiR1ZqZENCN1hHNGdJQ0FnY0dGa1pHbHVaeTF5YVdkb2REb2dNakJ3ZUR0Y2JpQWdJQ0JpYjNKa1pYSTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFhkcFpIUm9LU0J6YjJ4cFpDQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFdKdmNtUmxjaTFqYjJ4dmNpazdYRzRnSUNBZ1ltOXlaR1Z5TFhKaFpHbDFjem9nTUR0Y2JpQWdJQ0JvWldsbmFIUTZJR2x1YUdWeWFYUTdYRzRnSUNBZ1pteGxlRG9nTVNBeElIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXNhVzVsTFhkcFpIUm9MWE5vYjNKMEtUdGNiaUFnSUNCdGFXNHRkMmxrZEdnNklEQTdJQzhxSUZSb2FYTWdiV0ZyWlhNZ2FYUWdjRzl6YzJsaWJHVWdabTl5SUhSb1pTQm1iR1Y0WW05NElIUnZJSE5vY21sdWF5QjBhR2x6SUdsdWNIVjBJQ292WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdJQ0J2ZFhSc2FXNWxPaUJ1YjI1bElDRnBiWEJ2Y25SaGJuUTdYRzRnSUNBZ1ltOTRMWE5vWVdSdmR6b2dibTl1WlR0Y2JpQWdJQ0JpWVdOclozSnZkVzVrTFdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSmhZMnRuY205MWJtUXRZMjlzYjNJcE8xeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXTnZiRzl5S1R0Y2JpQWdJQ0JtYjI1MExYTnBlbVU2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Wm05dWRDMXphWHBsS1R0Y2JpQWdJQ0IyWlhKMGFXTmhiQzFoYkdsbmJqb2dkRzl3TzF4dUlDQWdJSEJoWkdScGJtY3RiR1ZtZERvZ1kyRnNZeWdnZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMXdZV1JrYVc1bktTQXFJRElwTzF4dVhIUmhjSEJsWVhKaGJtTmxPaUJ1YjI1bE8xeHVYSFF0ZDJWaWEybDBMV0Z3Y0dWaGNtRnVZMlU2SUc1dmJtVTdYRzVjZEMxdGIzb3RZWEJ3WldGeVlXNWpaVG9nYm05dVpUdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xYSmxjR1ZoZERvZ2JtOHRjbVZ3WldGME8xeHVYSFJpWVdOclozSnZkVzVrTFhOcGVtVTZJREl3Y0hnN1hHNWNkR0poWTJ0bmNtOTFibVF0Y0c5emFYUnBiMjQ2SUhKcFoyaDBJR05sYm5SbGNqdGNiaUFnSUNCaVlXTnJaM0p2ZFc1a0xXbHRZV2RsT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdSeWIzQmtiM2R1TFdGeWNtOTNLVHRjYm4xY2JpNTNhV1JuWlhRdFpISnZjR1J2ZDI0Z1BpQnpaV3hsWTNRNlptOWpkWE1nZTF4dUlDQWdJR0p2Y21SbGNpMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJuQjFkQzFtYjJOMWN5MWliM0prWlhJdFkyOXNiM0lwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV1J5YjNCa2IzZHVJRDRnYzJWc1pXTjBPbVJwYzJGaWJHVmtJSHRjYmlBZ0lDQnZjR0ZqYVhSNU9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXUnBjMkZpYkdWa0xXOXdZV05wZEhrcE8xeHVmVnh1WEc0dktpQlVieUJrYVhOaFlteGxJSFJvWlNCa2IzUjBaV1FnWW05eVpHVnlJR2x1SUVacGNtVm1iM2dnWVhKdmRXNWtJSE5sYkdWamRDQmpiMjUwY205c2N5NWNiaUFnSUZObFpTQm9kSFJ3T2k4dmMzUmhZMnR2ZG1WeVpteHZkeTVqYjIwdllTOHhPRGcxTXpBd01pQXFMMXh1TG5kcFpHZGxkQzFrY205d1pHOTNiaUErSUhObGJHVmpkRG90Ylc5NkxXWnZZM1Z6Y21sdVp5QjdYRzRnSUNBZ1kyOXNiM0k2SUhSeVlXNXpjR0Z5Wlc1ME8xeHVJQ0FnSUhSbGVIUXRjMmhoWkc5M09pQXdJREFnTUNBak1EQXdPMXh1ZlZ4dVhHNHZLaUJUWld4bFkzUWdZVzVrSUZObGJHVmpkRTExYkhScGNHeGxJQ292WEc1Y2JpNTNhV1JuWlhRdGMyVnNaV04wSUh0Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGQybGtkR2dwTzF4dUlDQWdJR3hwYm1VdGFHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1WEc0Z0lDQWdMeW9nUW1WallYVnpaU0JHYVhKbFptOTRJR1JsWm1sdVpYTWdkR2hsSUdKaGMyVnNhVzVsSUc5bUlHRWdjMlZzWldOMElHRnpJSFJvWlNCaWIzUjBiMjBnYjJZZ2RHaGxYRzRnSUNBZ1kyOXVkSEp2YkN3Z2QyVWdZV3hwWjI0Z2RHaGxJR1Z1ZEdseVpTQmpiMjUwY205c0lIUnZJSFJvWlNCMGIzQWdZVzVrSUdGa1pDQndZV1JrYVc1bklIUnZJSFJvWlZ4dUlDQWdJSE5sYkdWamRDQjBieUJuWlhRZ1lXNGdZWEJ3Y205NGFXMWhkR1VnWm1seWMzUWdiR2x1WlNCaVlYTmxiR2x1WlNCaGJHbG5ibTFsYm5RdUlDb3ZYRzRnSUNBZ1lXeHBaMjR0YVhSbGJYTTZJR1pzWlhndGMzUmhjblE3WEc1OVhHNWNiaTUzYVdSblpYUXRjMlZzWldOMElENGdjMlZzWldOMElIdGNiaUFnSUNCaWIzSmtaWEk2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1d2RYUXRZbTl5WkdWeUxYZHBaSFJvS1NCemIyeHBaQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSnZjbVJsY2kxamIyeHZjaWs3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxaVlXTnJaM0p2ZFc1a0xXTnZiRzl5S1R0Y2JpQWdJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxamIyeHZjaWs3WEc0Z0lDQWdabTl1ZEMxemFYcGxPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2s3WEc0Z0lDQWdabXhsZURvZ01TQXhJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzVzYVc1bExYZHBaSFJvTFhOb2IzSjBLVHRjYmlBZ0lDQnZkWFJzYVc1bE9pQnViMjVsSUNGcGJYQnZjblJoYm5RN1hHNGdJQ0FnYjNabGNtWnNiM2M2SUdGMWRHODdYRzRnSUNBZ2FHVnBaMmgwT2lCcGJtaGxjbWwwTzF4dVhHNGdJQ0FnTHlvZ1FtVmpZWFZ6WlNCR2FYSmxabTk0SUdSbFptbHVaWE1nZEdobElHSmhjMlZzYVc1bElHOW1JR0VnYzJWc1pXTjBJR0Z6SUhSb1pTQmliM1IwYjIwZ2IyWWdkR2hsWEc0Z0lDQWdZMjl1ZEhKdmJDd2dkMlVnWVd4cFoyNGdkR2hsSUdWdWRHbHlaU0JqYjI1MGNtOXNJSFJ2SUhSb1pTQjBiM0FnWVc1a0lHRmtaQ0J3WVdSa2FXNW5JSFJ2SUhSb1pWeHVJQ0FnSUhObGJHVmpkQ0IwYnlCblpYUWdZVzRnWVhCd2NtOTRhVzFoZEdVZ1ptbHljM1FnYkdsdVpTQmlZWE5sYkdsdVpTQmhiR2xuYm0xbGJuUXVJQ292WEc0Z0lDQWdjR0ZrWkdsdVp5MTBiM0E2SURWd2VEdGNibjFjYmx4dUxuZHBaR2RsZEMxelpXeGxZM1FnUGlCelpXeGxZM1E2Wm05amRYTWdlMXh1SUNBZ0lHSnZjbVJsY2kxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMW1iMk4xY3kxaWIzSmtaWEl0WTI5c2IzSXBPMXh1ZlZ4dVhHNHVkMmxuWlhRdGMyVnNaV04wSUQ0Z2MyVnNaV04wSUQ0Z2IzQjBhVzl1SUh0Y2JpQWdJQ0J3WVdSa2FXNW5MV3hsWm5RNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0Y0dGa1pHbHVaeWs3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ0x5b2diR2x1WlMxb1pXbG5hSFFnWkc5bGMyNG5kQ0IzYjNKcklHOXVJSE52YldVZ1luSnZkM05sY25NZ1ptOXlJSE5sYkdWamRDQnZjSFJwYjI1eklDb3ZYRzRnSUNBZ2NHRmtaR2x1WnkxMGIzQTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLUzEyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2t2TWlrN1hHNGdJQ0FnY0dGa1pHbHVaeTFpYjNSMGIyMDZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLUzEyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2t2TWlrN1hHNTlYRzVjYmx4dVhHNHZLaUJVYjJkbmJHVWdRblYwZEc5dWN5QlRkSGxzYVc1bklDb3ZYRzVjYmk1M2FXUm5aWFF0ZEc5bloyeGxMV0oxZEhSdmJuTWdlMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVmVnh1WEc0dWQybGtaMlYwTFhSdloyZHNaUzFpZFhSMGIyNXpJQzUzYVdSblpYUXRkRzluWjJ4bExXSjFkSFJ2YmlCN1hHNGdJQ0FnYldGeVoybHVMV3hsWm5RNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGJXRnlaMmx1S1R0Y2JpQWdJQ0J0WVhKbmFXNHRjbWxuYUhRNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGJXRnlaMmx1S1R0Y2JuMWNibHh1TG5kcFpHZGxkQzEwYjJkbmJHVXRZblYwZEc5dWN5QXVhblZ3ZVhSbGNpMWlkWFIwYjI0NlpHbHpZV0pzWldRZ2UxeHVJQ0FnSUc5d1lXTnBkSGs2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WkdsellXSnNaV1F0YjNCaFkybDBlU2s3WEc1OVhHNWNiaThxSUZKaFpHbHZJRUoxZEhSdmJuTWdVM1I1YkdsdVp5QXFMMXh1WEc0dWQybGtaMlYwTFhKaFpHbHZJSHRjYmlBZ0lDQjNhV1IwYURvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0ZDJsa2RHZ3BPMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVmVnh1WEc0dWQybGtaMlYwTFhKaFpHbHZMV0p2ZUNCN1hHNGdJQ0FnWkdsemNHeGhlVG9nWm14bGVEdGNiaUFnSUNCbWJHVjRMV1JwY21WamRHbHZiam9nWTI5c2RXMXVPMXh1SUNBZ0lHRnNhV2R1TFdsMFpXMXpPaUJ6ZEhKbGRHTm9PMXh1SUNBZ0lHSnZlQzF6YVhwcGJtYzZJR0p2Y21SbGNpMWliM2c3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJRzFoY21kcGJpMWliM1IwYjIwNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGNtRmthVzh0YVhSbGJTMW9aV2xuYUhRdFlXUnFkWE4wYldWdWRDazdYRzU5WEc1Y2JpNTNhV1JuWlhRdGNtRmthVzh0WW05NElHeGhZbVZzSUh0Y2JpQWdJQ0JvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRjbUZrYVc4dGFYUmxiUzFvWldsbmFIUXBPMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMWEpoWkdsdkxXbDBaVzB0YUdWcFoyaDBLVHRjYmlBZ0lDQm1iMjUwTFhOcGVtVTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRabTl1ZEMxemFYcGxLVHRjYm4xY2JseHVMbmRwWkdkbGRDMXlZV1JwYnkxaWIzZ2dhVzV3ZFhRZ2UxeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTF5WVdScGJ5MXBkR1Z0TFdobGFXZG9kQ2s3WEc0Z0lDQWdiR2x1WlMxb1pXbG5hSFE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Y21Ga2FXOHRhWFJsYlMxb1pXbG5hSFFwTzF4dUlDQWdJRzFoY21kcGJqb2dNQ0JqWVd4aktDQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwSUNvZ01pQXBJREFnTVhCNE8xeHVJQ0FnSUdac2IyRjBPaUJzWldaME8xeHVmVnh1WEc0dktpQkRiMnh2Y2lCUWFXTnJaWElnVTNSNWJHbHVaeUFxTDF4dVhHNHVkMmxrWjJWMExXTnZiRzl5Y0dsamEyVnlJSHRjYmlBZ0lDQjNhV1IwYURvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0ZDJsa2RHZ3BPMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQnNhVzVsTFdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNibjFjYmx4dUxuZHBaR2RsZEMxamIyeHZjbkJwWTJ0bGNpQStJQzUzYVdSblpYUXRZMjlzYjNKd2FXTnJaWEl0YVc1d2RYUWdlMXh1SUNBZ0lHWnNaWGd0WjNKdmR6b2dNVHRjYmlBZ0lDQm1iR1Y0TFhOb2NtbHVhem9nTVR0Y2JpQWdJQ0J0YVc0dGQybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMWGRwWkhSb0xYUnBibmtwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV052Ykc5eWNHbGphMlZ5SUdsdWNIVjBXM1I1Y0dVOVhDSmpiMnh2Y2x3aVhTQjdYRzRnSUNBZ2QybGtkR2c2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1c2FXNWxMV2hsYVdkb2RDazdYRzRnSUNBZ2FHVnBaMmgwT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWJHbHVaUzFvWldsbmFIUXBPMXh1SUNBZ0lIQmhaR1JwYm1jNklEQWdNbkI0T3lBdktpQnRZV3RsSUhSb1pTQmpiMnh2Y2lCemNYVmhjbVVnWVdOMGRXRnNiSGtnYzNGMVlYSmxJRzl1SUVOb2NtOXRaU0J2YmlCUFV5QllJQ292WEc0Z0lDQWdZbUZqYTJkeWIzVnVaRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWlZV05yWjNKdmRXNWtMV052Ykc5eUtUdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWpiMnh2Y2lrN1hHNGdJQ0FnWW05eVpHVnlPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSnZjbVJsY2kxM2FXUjBhQ2tnYzI5c2FXUWdkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxaWIzSmtaWEl0WTI5c2IzSXBPMXh1SUNBZ0lHSnZjbVJsY2kxc1pXWjBPaUJ1YjI1bE8xeHVJQ0FnSUdac1pYZ3RaM0p2ZHpvZ01EdGNiaUFnSUNCbWJHVjRMWE5vY21sdWF6b2dNRHRjYmlBZ0lDQmliM2d0YzJsNmFXNW5PaUJpYjNKa1pYSXRZbTk0TzF4dUlDQWdJR0ZzYVdkdUxYTmxiR1k2SUhOMGNtVjBZMmc3WEc0Z0lDQWdiM1YwYkdsdVpUb2dibTl1WlNBaGFXMXdiM0owWVc1ME8xeHVmVnh1WEc0dWQybGtaMlYwTFdOdmJHOXljR2xqYTJWeUxtTnZibU5wYzJVZ2FXNXdkWFJiZEhsd1pUMWNJbU52Ykc5eVhDSmRJSHRjYmlBZ0lDQmliM0prWlhJdGJHVm1kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhVzV3ZFhRdFltOXlaR1Z5TFdOdmJHOXlLVHRjYm4xY2JseHVMbmRwWkdkbGRDMWpiMnh2Y25CcFkydGxjaUJwYm5CMWRGdDBlWEJsUFZ3aVkyOXNiM0pjSWwwNlptOWpkWE1zSUM1M2FXUm5aWFF0WTI5c2IzSndhV05yWlhJZ2FXNXdkWFJiZEhsd1pUMWNJblJsZUhSY0lsMDZabTlqZFhNZ2UxeHVJQ0FnSUdKdmNtUmxjaTFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxbWIyTjFjeTFpYjNKa1pYSXRZMjlzYjNJcE8xeHVmVnh1WEc0dWQybGtaMlYwTFdOdmJHOXljR2xqYTJWeUlHbHVjSFYwVzNSNWNHVTlYQ0owWlhoMFhDSmRJSHRjYmlBZ0lDQm1iR1Y0TFdkeWIzYzZJREU3WEc0Z0lDQWdiM1YwYkdsdVpUb2dibTl1WlNBaGFXMXdiM0owWVc1ME8xeHVJQ0FnSUdobGFXZG9kRG9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm14cGJtVXRhR1ZwWjJoMEtUdGNiaUFnSUNCc2FXNWxMV2hsYVdkb2REb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGFHVnBaMmgwS1R0Y2JpQWdJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV0poWTJ0bmNtOTFibVF0WTI5c2IzSXBPMXh1SUNBZ0lHTnZiRzl5T2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV052Ykc5eUtUdGNiaUFnSUNCaWIzSmtaWEk2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10YVc1d2RYUXRZbTl5WkdWeUxYZHBaSFJvS1NCemIyeHBaQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExXSnZjbVJsY2kxamIyeHZjaWs3WEc0Z0lDQWdabTl1ZEMxemFYcGxPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV1p2Ym5RdGMybDZaU2s3WEc0Z0lDQWdjR0ZrWkdsdVp6b2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibkIxZEMxd1lXUmthVzVuS1NCallXeGpLQ0IyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1Y0hWMExYQmhaR1JwYm1jcElDb2dJRElnS1R0Y2JpQWdJQ0J0YVc0dGQybGtkR2c2SURBN0lDOHFJRlJvYVhNZ2JXRnJaWE1nYVhRZ2NHOXpjMmxpYkdVZ1ptOXlJSFJvWlNCbWJHVjRZbTk0SUhSdklITm9jbWx1YXlCMGFHbHpJR2x1Y0hWMElDb3ZYRzRnSUNBZ1pteGxlQzF6YUhKcGJtczZJREU3WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JuMWNibHh1TG5kcFpHZGxkQzFqYjJ4dmNuQnBZMnRsY2lCcGJuQjFkRnQwZVhCbFBWd2lkR1Y0ZEZ3aVhUcGthWE5oWW14bFpDQjdYRzRnSUNBZ2IzQmhZMmwwZVRvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxa2FYTmhZbXhsWkMxdmNHRmphWFI1S1R0Y2JuMWNibHh1THlvZ1JHRjBaU0JRYVdOclpYSWdVM1I1YkdsdVp5QXFMMXh1WEc0dWQybGtaMlYwTFdSaGRHVndhV05yWlhJZ2UxeHVJQ0FnSUhkcFpIUm9PaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMTNhV1IwYUNrN1hHNGdJQ0FnYUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2x1YkdsdVpTMW9aV2xuYUhRcE8xeHVJQ0FnSUd4cGJtVXRhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dWZWeHVYRzR1ZDJsa1oyVjBMV1JoZEdWd2FXTnJaWElnYVc1d2RYUmJkSGx3WlQxY0ltUmhkR1ZjSWwwZ2UxeHVJQ0FnSUdac1pYZ3RaM0p2ZHpvZ01UdGNiaUFnSUNCbWJHVjRMWE5vY21sdWF6b2dNVHRjYmlBZ0lDQnRhVzR0ZDJsa2RHZzZJREE3SUM4cUlGUm9hWE1nYldGclpYTWdhWFFnY0c5emMybGliR1VnWm05eUlIUm9aU0JtYkdWNFltOTRJSFJ2SUhOb2NtbHVheUIwYUdseklHbHVjSFYwSUNvdlhHNGdJQ0FnYjNWMGJHbHVaVG9nYm05dVpTQWhhVzF3YjNKMFlXNTBPMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxcGJteHBibVV0YUdWcFoyaDBLVHRjYmlBZ0lDQmliM0prWlhJNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFXNXdkWFF0WW05eVpHVnlMWGRwWkhSb0tTQnpiMnhwWkNCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMV0p2Y21SbGNpMWpiMnh2Y2lrN1hHNGdJQ0FnWW1GamEyZHliM1Z1WkMxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWlZV05yWjNKdmRXNWtMV052Ykc5eUtUdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMWpiMnh2Y2lrN1hHNGdJQ0FnWm05dWRDMXphWHBsT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdadmJuUXRjMmw2WlNrN1hHNGdJQ0FnY0dGa1pHbHVaem9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMXdZV1JrYVc1bktTQmpZV3hqS0NCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdsdWNIVjBMWEJoWkdScGJtY3BJQ29nSURJZ0tUdGNiaUFnSUNCaWIzZ3RjMmw2YVc1bk9pQmliM0prWlhJdFltOTRPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXUmhkR1Z3YVdOclpYSWdhVzV3ZFhSYmRIbHdaVDFjSW1SaGRHVmNJbDA2Wm05amRYTWdlMXh1SUNBZ0lHSnZjbVJsY2kxamIyeHZjam9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFwYm5CMWRDMW1iMk4xY3kxaWIzSmtaWEl0WTI5c2IzSXBPMXh1ZlZ4dVhHNHVkMmxrWjJWMExXUmhkR1Z3YVdOclpYSWdhVzV3ZFhSYmRIbHdaVDFjSW1SaGRHVmNJbDA2YVc1MllXeHBaQ0I3WEc0Z0lDQWdZbTl5WkdWeUxXTnZiRzl5T2lCMllYSW9MUzFxY0MxM1lYSnVMV052Ykc5eU1TazdYRzU5WEc1Y2JpNTNhV1JuWlhRdFpHRjBaWEJwWTJ0bGNpQnBibkIxZEZ0MGVYQmxQVndpWkdGMFpWd2lYVHBrYVhOaFlteGxaQ0I3WEc0Z0lDQWdiM0JoWTJsMGVUb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWthWE5oWW14bFpDMXZjR0ZqYVhSNUtUdGNibjFjYmx4dUx5b2dVR3hoZVNCWGFXUm5aWFFnS2k5Y2JseHVMbmRwWkdkbGRDMXdiR0Y1SUh0Y2JpQWdJQ0IzYVdSMGFEb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MXBibXhwYm1VdGQybGtkR2d0YzJodmNuUXBPMXh1SUNBZ0lHUnBjM0JzWVhrNklHWnNaWGc3WEc0Z0lDQWdZV3hwWjI0dGFYUmxiWE02SUhOMGNtVjBZMmc3WEc1OVhHNWNiaTUzYVdSblpYUXRjR3hoZVNBdWFuVndlWFJsY2kxaWRYUjBiMjRnZTF4dUlDQWdJR1pzWlhndFozSnZkem9nTVR0Y2JpQWdJQ0JvWldsbmFIUTZJR0YxZEc4N1hHNTlYRzVjYmk1M2FXUm5aWFF0Y0d4aGVTQXVhblZ3ZVhSbGNpMWlkWFIwYjI0NlpHbHpZV0pzWldRZ2UxeHVJQ0FnSUc5d1lXTnBkSGs2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10WkdsellXSnNaV1F0YjNCaFkybDBlU2s3WEc1OVhHNWNiaThxSUZSaFlpQlhhV1JuWlhRZ0tpOWNibHh1TG1wMWNIbDBaWEl0ZDJsa1oyVjBjeTUzYVdSblpYUXRkR0ZpSUh0Y2JpQWdJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeHVJQ0FnSUdac1pYZ3RaR2x5WldOMGFXOXVPaUJqYjJ4MWJXNDdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUI3WEc0Z0lDQWdMeW9nVG1WalpYTnpZWEo1SUhOdklIUm9ZWFFnWVNCMFlXSWdZMkZ1SUdKbElITm9hV1owWldRZ1pHOTNiaUIwYnlCdmRtVnliR0Y1SUhSb1pTQmliM0prWlhJZ2IyWWdkR2hsSUdKdmVDQmlaV3h2ZHk0Z0tpOWNiaUFnSUNCdmRtVnlabXh2ZHkxNE9pQjJhWE5wWW14bE8xeHVJQ0FnSUc5MlpYSm1iRzkzTFhrNklIWnBjMmxpYkdVN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpQStJQzV3TFZSaFlrSmhjaTFqYjI1MFpXNTBJSHRjYmlBZ0lDQXZLaUJOWVd0bElITjFjbVVnZEdoaGRDQjBhR1VnZEdGaUlHZHliM2R6SUdaeWIyMGdZbTkwZEc5dElIVndJQ292WEc0Z0lDQWdZV3hwWjI0dGFYUmxiWE02SUdac1pYZ3RaVzVrTzF4dUlDQWdJRzFwYmkxM2FXUjBhRG9nTUR0Y2JpQWdJQ0J0YVc0dGFHVnBaMmgwT2lBd08xeHVmVnh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVkMmxrWjJWMExYUmhZaTFqYjI1MFpXNTBjeUI3WEc0Z0lDQWdkMmxrZEdnNklERXdNQ1U3WEc0Z0lDQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdJQ0J0WVhKbmFXNDZJREE3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaRG9nZG1GeUtDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1TazdYRzRnSUNBZ1kyOXNiM0k2SUhaaGNpZ3RMV3B3TFhWcExXWnZiblF0WTI5c2IzSXhLVHRjYmlBZ0lDQmliM0prWlhJNklIWmhjaWd0TFdwd0xXSnZjbVJsY2kxM2FXUjBhQ2tnYzI5c2FXUWdkbUZ5S0MwdGFuQXRZbTl5WkdWeUxXTnZiRzl5TVNrN1hHNGdJQ0FnY0dGa1pHbHVaem9nZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFqYjI1MFlXbHVaWEl0Y0dGa1pHbHVaeWs3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJRzkyWlhKbWJHOTNPaUJoZFhSdk8xeHVmVnh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdlMXh1SUNBZ0lHWnZiblE2SUhaaGNpZ3RMV3B3TFhkcFpHZGxkSE10Wm05dWRDMXphWHBsS1NCSVpXeDJaWFJwWTJFc0lFRnlhV0ZzTENCellXNXpMWE5sY21sbU8xeHVJQ0FnSUcxcGJpMW9aV2xuYUhRNklHTmhiR01vZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFvYjNKcGVtOXVkR0ZzTFhSaFlpMW9aV2xuYUhRcElDc2dkbUZ5S0MwdGFuQXRZbTl5WkdWeUxYZHBaSFJvS1NrN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpQXVjQzFVWVdKQ1lYSXRkR0ZpSUh0Y2JpQWdJQ0JtYkdWNE9pQXdJREVnZG1GeUtDMHRhbkF0ZDJsa1oyVjBjeTFvYjNKcGVtOXVkR0ZzTFhSaFlpMTNhV1IwYUNrN1hHNGdJQ0FnYldsdUxYZHBaSFJvT2lBek5YQjRPMXh1SUNBZ0lHMXBiaTFvWldsbmFIUTZJR05oYkdNb2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxb2IzSnBlbTl1ZEdGc0xYUmhZaTFvWldsbmFIUXBJQ3NnZG1GeUtDMHRhbkF0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ2JHbHVaUzFvWldsbmFIUTZJSFpoY2lndExXcHdMWGRwWkdkbGRITXRhRzl5YVhwdmJuUmhiQzEwWVdJdGFHVnBaMmgwS1R0Y2JpQWdJQ0J0WVhKbmFXNHRiR1ZtZERvZ1kyRnNZeWd0TVNBcUlIWmhjaWd0TFdwd0xXSnZjbVJsY2kxM2FXUjBhQ2twTzF4dUlDQWdJSEJoWkdScGJtYzZJREJ3ZUNBeE1IQjRPMXh1SUNBZ0lHSmhZMnRuY205MWJtUTZJSFpoY2lndExXcHdMV3hoZVc5MWRDMWpiMnh2Y2pJcE8xeHVJQ0FnSUdOdmJHOXlPaUIyWVhJb0xTMXFjQzExYVMxbWIyNTBMV052Ykc5eU1pazdYRzRnSUNBZ1ltOXlaR1Z5T2lCMllYSW9MUzFxY0MxaWIzSmtaWEl0ZDJsa2RHZ3BJSE52Ykdsa0lIWmhjaWd0TFdwd0xXSnZjbVJsY2kxamIyeHZjakVwTzF4dUlDQWdJR0p2Y21SbGNpMWliM1IwYjIwNklHNXZibVU3WEc0Z0lDQWdjRzl6YVhScGIyNDZJSEpsYkdGMGFYWmxPMXh1ZlZ4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWElnTG5BdFZHRmlRbUZ5TFhSaFlpNXdMVzF2WkMxamRYSnlaVzUwSUh0Y2JpQWdJQ0JqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRkV2t0Wm05dWRDMWpiMnh2Y2pBcE8xeHVJQ0FnSUM4cUlGZGxJSGRoYm5RZ2RHaGxJR0poWTJ0bmNtOTFibVFnZEc4Z2JXRjBZMmdnZEdobElIUmhZaUJqYjI1MFpXNTBJR0poWTJ0bmNtOTFibVFnS2k5Y2JpQWdJQ0JpWVdOclozSnZkVzVrT2lCMllYSW9MUzFxY0Mxc1lYbHZkWFF0WTI5c2IzSXhLVHRjYmlBZ0lDQnRhVzR0YUdWcFoyaDBPaUJqWVd4aktIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdGFHOXlhWHB2Ym5SaGJDMTBZV0l0YUdWcFoyaDBLU0FySURJZ0tpQjJZWElvTFMxcWNDMWliM0prWlhJdGQybGtkR2dwS1R0Y2JpQWdJQ0IwY21GdWMyWnZjbTA2SUhSeVlXNXpiR0YwWlZrb2RtRnlLQzB0YW5BdFltOXlaR1Z5TFhkcFpIUm9LU2s3WEc0Z0lDQWdiM1psY21ac2IzYzZJSFpwYzJsaWJHVTdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaUxuQXRiVzlrTFdOMWNuSmxiblE2WW1WbWIzSmxJSHRjYmlBZ0lDQndiM05wZEdsdmJqb2dZV0p6YjJ4MWRHVTdYRzRnSUNBZ2RHOXdPaUJqWVd4aktDMHhJQ29nZG1GeUtDMHRhbkF0WW05eVpHVnlMWGRwWkhSb0tTazdYRzRnSUNBZ2JHVm1kRG9nWTJGc1l5Z3RNU0FxSUhaaGNpZ3RMV3B3TFdKdmNtUmxjaTEzYVdSMGFDa3BPMXh1SUNBZ0lHTnZiblJsYm5RNklDY25PMXh1SUNBZ0lHaGxhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxb2IzSnBlbTl1ZEdGc0xYUmhZaTEwYjNBdFltOXlaR1Z5S1R0Y2JpQWdJQ0IzYVdSMGFEb2dZMkZzWXlneE1EQWxJQ3NnTWlBcUlIWmhjaWd0TFdwd0xXSnZjbVJsY2kxM2FXUjBhQ2twTzF4dUlDQWdJR0poWTJ0bmNtOTFibVE2SUhaaGNpZ3RMV3B3TFdKeVlXNWtMV052Ykc5eU1TazdYRzU5WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaU9tWnBjbk4wTFdOb2FXeGtJSHRjYmlBZ0lDQnRZWEpuYVc0dGJHVm1kRG9nTUR0Y2JuMWNibHh1TG1wMWNIbDBaWEl0ZDJsa1oyVjBjeTUzYVdSblpYUXRkR0ZpSUQ0Z0xuQXRWR0ZpUW1GeUlDNXdMVlJoWWtKaGNpMTBZV0k2YUc5MlpYSTZibTkwS0M1d0xXMXZaQzFqZFhKeVpXNTBLU0I3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaRG9nZG1GeUtDMHRhbkF0YkdGNWIzVjBMV052Ykc5eU1TazdYRzRnSUNBZ1kyOXNiM0k2SUhaaGNpZ3RMV3B3TFhWcExXWnZiblF0WTI5c2IzSXhLVHRjYm4xY2JseHVMbXAxY0hsMFpYSXRkMmxrWjJWMGN5NTNhV1JuWlhRdGRHRmlJRDRnTG5BdFZHRmlRbUZ5SUM1d0xXMXZaQzFqYkc5ellXSnNaU0ErSUM1d0xWUmhZa0poY2kxMFlXSkRiRzl6WlVsamIyNGdlMXh1SUNBZ0lHMWhjbWRwYmkxc1pXWjBPaUEwY0hnN1hHNTlYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpQXVjQzF0YjJRdFkyeHZjMkZpYkdVZ1BpQXVjQzFVWVdKQ1lYSXRkR0ZpUTJ4dmMyVkpZMjl1T21KbFptOXlaU0I3WEc0Z0lDQWdabTl1ZEMxbVlXMXBiSGs2SUVadmJuUkJkMlZ6YjIxbE8xeHVJQ0FnSUdOdmJuUmxiblE2SUNkY1hHWXdNR1FuT3lBdktpQmpiRzl6WlNBcUwxeHVmVnh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdMbkF0VkdGaVFtRnlMWFJoWWtsamIyNHNYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpMbmRwWkdkbGRDMTBZV0lnUGlBdWNDMVVZV0pDWVhJZ0xuQXRWR0ZpUW1GeUxYUmhZa3hoWW1Wc0xGeHVMbXAxY0hsMFpYSXRkMmxrWjJWMGN5NTNhV1JuWlhRdGRHRmlJRDRnTG5BdFZHRmlRbUZ5SUM1d0xWUmhZa0poY2kxMFlXSkRiRzl6WlVsamIyNGdlMXh1SUNBZ0lHeHBibVV0YUdWcFoyaDBPaUIyWVhJb0xTMXFjQzEzYVdSblpYUnpMV2h2Y21sNmIyNTBZV3d0ZEdGaUxXaGxhV2RvZENrN1hHNTlYRzVjYmk4cUlFRmpZMjl5WkdsdmJpQlhhV1JuWlhRZ0tpOWNibHh1TG5BdFEyOXNiR0Z3YzJVZ2UxeHVJQ0FnSUdScGMzQnNZWGs2SUdac1pYZzdYRzRnSUNBZ1pteGxlQzFrYVhKbFkzUnBiMjQ2SUdOdmJIVnRianRjYmlBZ0lDQmhiR2xuYmkxcGRHVnRjem9nYzNSeVpYUmphRHRjYm4xY2JseHVMbkF0UTI5c2JHRndjMlV0YUdWaFpHVnlJSHRjYmlBZ0lDQndZV1JrYVc1bk9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHVjSFYwTFhCaFpHUnBibWNwTzF4dUlDQWdJR04xY25OdmNqb2djRzlwYm5SbGNqdGNiaUFnSUNCamIyeHZjam9nZG1GeUtDMHRhbkF0ZFdrdFptOXVkQzFqYjJ4dmNqSXBPMXh1SUNBZ0lHSmhZMnRuY205MWJtUXRZMjlzYjNJNklIWmhjaWd0TFdwd0xXeGhlVzkxZEMxamIyeHZjaklwTzF4dUlDQWdJR0p2Y21SbGNqb2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWliM0prWlhJdGQybGtkR2dwSUhOdmJHbGtJSFpoY2lndExXcHdMV0p2Y21SbGNpMWpiMnh2Y2pFcE8xeHVJQ0FnSUhCaFpHUnBibWM2SUdOaGJHTW9kbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWpiMjUwWVdsdVpYSXRjR0ZrWkdsdVp5a2dLaUF5SUM4Z015a2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWpiMjUwWVdsdVpYSXRjR0ZrWkdsdVp5azdYRzRnSUNBZ1ptOXVkQzEzWldsbmFIUTZJR0p2YkdRN1hHNTlYRzVjYmk1d0xVTnZiR3hoY0hObExXaGxZV1JsY2pwb2IzWmxjaUI3WEc0Z0lDQWdZbUZqYTJkeWIzVnVaQzFqYjJ4dmNqb2dkbUZ5S0MwdGFuQXRiR0Y1YjNWMExXTnZiRzl5TVNrN1hHNGdJQ0FnWTI5c2IzSTZJSFpoY2lndExXcHdMWFZwTFdadmJuUXRZMjlzYjNJeEtUdGNibjFjYmx4dUxuQXRRMjlzYkdGd2MyVXRiM0JsYmlBK0lDNXdMVU52Ykd4aGNITmxMV2hsWVdSbGNpQjdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdFkyOXNiM0l3S1R0Y2JpQWdJQ0JqZFhKemIzSTZJR1JsWm1GMWJIUTdYRzRnSUNBZ1ltOXlaR1Z5TFdKdmRIUnZiVG9nYm05dVpUdGNibjFjYmx4dUxuQXRRMjlzYkdGd2MyVWdMbkF0UTI5c2JHRndjMlV0YUdWaFpHVnlPanBpWldadmNtVWdlMXh1SUNBZ0lHTnZiblJsYm5RNklDZGNYR1l3WkdGY1hEQXdRVEFuT3lBZ0x5b2dZMkZ5WlhRdGNtbG5hSFFzSUc1dmJpMWljbVZoYTJsdVp5QnpjR0ZqWlNBcUwxeHVJQ0FnSUdScGMzQnNZWGs2SUdsdWJHbHVaUzFpYkc5amF6dGNiaUFnSUNCbWIyNTBPaUJ1YjNKdFlXd2dibTl5YldGc0lHNXZjbTFoYkNBeE5IQjRMekVnUm05dWRFRjNaWE52YldVN1hHNGdJQ0FnWm05dWRDMXphWHBsT2lCcGJtaGxjbWwwTzF4dUlDQWdJSFJsZUhRdGNtVnVaR1Z5YVc1bk9pQmhkWFJ2TzF4dUlDQWdJQzEzWldKcmFYUXRabTl1ZEMxemJXOXZkR2hwYm1jNklHRnVkR2xoYkdsaGMyVmtPMXh1SUNBZ0lDMXRiM290YjNONExXWnZiblF0YzIxdmIzUm9hVzVuT2lCbmNtRjVjMk5oYkdVN1hHNTlYRzVjYmk1d0xVTnZiR3hoY0hObExXOXdaVzRnUGlBdWNDMURiMnhzWVhCelpTMW9aV0ZrWlhJNk9tSmxabTl5WlNCN1hHNGdJQ0FnWTI5dWRHVnVkRG9nSjF4Y1pqQmtOMXhjTURCQk1DYzdJQzhxSUdOaGNtVjBMV1J2ZDI0c0lHNXZiaTFpY21WaGEybHVaeUJ6Y0dGalpTQXFMMXh1ZlZ4dVhHNHVjQzFEYjJ4c1lYQnpaUzFqYjI1MFpXNTBjeUI3WEc0Z0lDQWdjR0ZrWkdsdVp6b2dkbUZ5S0MwdGFuQXRkMmxrWjJWMGN5MWpiMjUwWVdsdVpYSXRjR0ZrWkdsdVp5azdYRzRnSUNBZ1ltRmphMmR5YjNWdVpDMWpiMnh2Y2pvZ2RtRnlLQzB0YW5BdGJHRjViM1YwTFdOdmJHOXlNU2s3WEc0Z0lDQWdZMjlzYjNJNklIWmhjaWd0TFdwd0xYVnBMV1p2Ym5RdFkyOXNiM0l4S1R0Y2JpQWdJQ0JpYjNKa1pYSXRiR1ZtZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxaWIzSmtaWEl0ZDJsa2RHZ3BJSE52Ykdsa0lIWmhjaWd0TFdwd0xXSnZjbVJsY2kxamIyeHZjakVwTzF4dUlDQWdJR0p2Y21SbGNpMXlhV2RvZERvZ2RtRnlLQzB0YW5BdGQybGtaMlYwY3kxaWIzSmtaWEl0ZDJsa2RHZ3BJSE52Ykdsa0lIWmhjaWd0TFdwd0xXSnZjbVJsY2kxamIyeHZjakVwTzF4dUlDQWdJR0p2Y21SbGNpMWliM1IwYjIwNklIWmhjaWd0TFdwd0xYZHBaR2RsZEhNdFltOXlaR1Z5TFhkcFpIUm9LU0J6YjJ4cFpDQjJZWElvTFMxcWNDMWliM0prWlhJdFkyOXNiM0l4S1R0Y2JpQWdJQ0J2ZG1WeVpteHZkem9nWVhWMGJ6dGNibjFjYmx4dUxuQXRRV05qYjNKa2FXOXVJSHRjYmlBZ0lDQmthWE53YkdGNU9pQm1iR1Y0TzF4dUlDQWdJR1pzWlhndFpHbHlaV04wYVc5dU9pQmpiMngxYlc0N1hHNGdJQ0FnWVd4cFoyNHRhWFJsYlhNNklITjBjbVYwWTJnN1hHNTlYRzVjYmk1d0xVRmpZMjl5WkdsdmJpQXVjQzFEYjJ4c1lYQnpaU0I3WEc0Z0lDQWdiV0Z5WjJsdUxXSnZkSFJ2YlRvZ01EdGNibjFjYmx4dUxuQXRRV05qYjNKa2FXOXVJQzV3TFVOdmJHeGhjSE5sSUNzZ0xuQXRRMjlzYkdGd2MyVWdlMXh1SUNBZ0lHMWhjbWRwYmkxMGIzQTZJRFJ3ZUR0Y2JuMWNibHh1WEc1Y2JpOHFJRWhVVFV3Z2QybGtaMlYwSUNvdlhHNWNiaTUzYVdSblpYUXRhSFJ0YkN3Z0xuZHBaR2RsZEMxb2RHMXNiV0YwYUNCN1hHNGdJQ0FnWm05dWRDMXphWHBsT2lCMllYSW9MUzFxY0MxM2FXUm5aWFJ6TFdadmJuUXRjMmw2WlNrN1hHNTlYRzVjYmk1M2FXUm5aWFF0YUhSdGJDQStJQzUzYVdSblpYUXRhSFJ0YkMxamIyNTBaVzUwTENBdWQybGtaMlYwTFdoMGJXeHRZWFJvSUQ0Z0xuZHBaR2RsZEMxb2RHMXNMV052Ym5SbGJuUWdlMXh1SUNBZ0lDOHFJRVpwYkd3Z2IzVjBJSFJvWlNCaGNtVmhJR2x1SUhSb1pTQklWRTFNSUhkcFpHZGxkQ0FxTDF4dUlDQWdJR0ZzYVdkdUxYTmxiR1k2SUhOMGNtVjBZMmc3WEc0Z0lDQWdabXhsZUMxbmNtOTNPaUF4TzF4dUlDQWdJR1pzWlhndGMyaHlhVzVyT2lBeE8xeHVJQ0FnSUM4cUlFMWhhMlZ6SUhOMWNtVWdkR2hsSUdKaGMyVnNhVzVsSUdseklITjBhV3hzSUdGc2FXZHVaV1FnZDJsMGFDQnZkR2hsY2lCbGJHVnRaVzUwY3lBcUwxeHVJQ0FnSUd4cGJtVXRhR1ZwWjJoME9pQjJZWElvTFMxcWNDMTNhV1JuWlhSekxXbHViR2x1WlMxb1pXbG5hSFFwTzF4dUlDQWdJQzhxSUUxaGEyVWdhWFFnY0c5emMybGliR1VnZEc4Z2FHRjJaU0JoWW5OdmJIVjBaV3g1TFhCdmMybDBhVzl1WldRZ1pXeGxiV1Z1ZEhNZ2FXNGdkR2hsSUdoMGJXd2dLaTljYmlBZ0lDQndiM05wZEdsdmJqb2djbVZzWVhScGRtVTdYRzU5WEc0aUxDSXZLaUJVYUdseklHWnBiR1VnYUdGeklHTnZaR1VnWkdWeWFYWmxaQ0JtY205dElGQm9iM053YUc5eVNsTWdRMU5USUdacGJHVnpMQ0JoY3lCdWIzUmxaQ0JpWld4dmR5NGdWR2hsSUd4cFkyVnVjMlVnWm05eUlIUm9hWE1nVUdodmMzQm9iM0pLVXlCamIyUmxJR2x6T2x4dVhHNURiM0I1Y21sbmFIUWdLR01wSURJd01UUXRNakF4Tnl3Z1VHaHZjM0JvYjNKS1V5QkRiMjUwY21saWRYUnZjbk5jYmtGc2JDQnlhV2RvZEhNZ2NtVnpaWEoyWldRdVhHNWNibEpsWkdsemRISnBZblYwYVc5dUlHRnVaQ0IxYzJVZ2FXNGdjMjkxY21ObElHRnVaQ0JpYVc1aGNua2dabTl5YlhNc0lIZHBkR2dnYjNJZ2QybDBhRzkxZEZ4dWJXOWthV1pwWTJGMGFXOXVMQ0JoY21VZ2NHVnliV2wwZEdWa0lIQnliM1pwWkdWa0lIUm9ZWFFnZEdobElHWnZiR3h2ZDJsdVp5QmpiMjVrYVhScGIyNXpJR0Z5WlNCdFpYUTZYRzVjYmlvZ1VtVmthWE4wY21saWRYUnBiMjV6SUc5bUlITnZkWEpqWlNCamIyUmxJRzExYzNRZ2NtVjBZV2x1SUhSb1pTQmhZbTkyWlNCamIzQjVjbWxuYUhRZ2JtOTBhV05sTENCMGFHbHpYRzRnSUd4cGMzUWdiMllnWTI5dVpHbDBhVzl1Y3lCaGJtUWdkR2hsSUdadmJHeHZkMmx1WnlCa2FYTmpiR0ZwYldWeUxseHVYRzRxSUZKbFpHbHpkSEpwWW5WMGFXOXVjeUJwYmlCaWFXNWhjbmtnWm05eWJTQnRkWE4wSUhKbGNISnZaSFZqWlNCMGFHVWdZV0p2ZG1VZ1kyOXdlWEpwWjJoMElHNXZkR2xqWlN4Y2JpQWdkR2hwY3lCc2FYTjBJRzltSUdOdmJtUnBkR2x2Ym5NZ1lXNWtJSFJvWlNCbWIyeHNiM2RwYm1jZ1pHbHpZMnhoYVcxbGNpQnBiaUIwYUdVZ1pHOWpkVzFsYm5SaGRHbHZibHh1SUNCaGJtUXZiM0lnYjNSb1pYSWdiV0YwWlhKcFlXeHpJSEJ5YjNacFpHVmtJSGRwZEdnZ2RHaGxJR1JwYzNSeWFXSjFkR2x2Ymk1Y2JseHVLaUJPWldsMGFHVnlJSFJvWlNCdVlXMWxJRzltSUhSb1pTQmpiM0I1Y21sbmFIUWdhRzlzWkdWeUlHNXZjaUIwYUdVZ2JtRnRaWE1nYjJZZ2FYUnpYRzRnSUdOdmJuUnlhV0oxZEc5eWN5QnRZWGtnWW1VZ2RYTmxaQ0IwYnlCbGJtUnZjbk5sSUc5eUlIQnliMjF2ZEdVZ2NISnZaSFZqZEhNZ1pHVnlhWFpsWkNCbWNtOXRYRzRnSUhSb2FYTWdjMjltZEhkaGNtVWdkMmwwYUc5MWRDQnpjR1ZqYVdacFl5QndjbWx2Y2lCM2NtbDBkR1Z1SUhCbGNtMXBjM05wYjI0dVhHNWNibFJJU1ZNZ1UwOUdWRmRCVWtVZ1NWTWdVRkpQVmtsRVJVUWdRbGtnVkVoRklFTlBVRmxTU1VkSVZDQklUMHhFUlZKVElFRk9SQ0JEVDA1VVVrbENWVlJQVWxNZ1hDSkJVeUJKVTF3aVhHNUJUa1FnUVU1WklFVllVRkpGVTFNZ1QxSWdTVTFRVEVsRlJDQlhRVkpTUVU1VVNVVlRMQ0JKVGtOTVZVUkpUa2NzSUVKVlZDQk9UMVFnVEVsTlNWUkZSQ0JVVHl3Z1ZFaEZYRzVKVFZCTVNVVkVJRmRCVWxKQlRsUkpSVk1nVDBZZ1RVVlNRMGhCVGxSQlFrbE1TVlJaSUVGT1JDQkdTVlJPUlZOVElFWlBVaUJCSUZCQlVsUkpRMVZNUVZJZ1VGVlNVRTlUUlNCQlVrVmNia1JKVTBOTVFVbE5SVVF1SUVsT0lFNVBJRVZXUlU1VUlGTklRVXhNSUZSSVJTQkRUMUJaVWtsSFNGUWdTRTlNUkVWU0lFOVNJRU5QVGxSU1NVSlZWRTlTVXlCQ1JTQk1TVUZDVEVWY2JrWlBVaUJCVGxrZ1JFbFNSVU5VTENCSlRrUkpVa1ZEVkN3Z1NVNURTVVJGVGxSQlRDd2dVMUJGUTBsQlRDd2dSVmhGVFZCTVFWSlpMQ0JQVWlCRFQwNVRSVkZWUlU1VVNVRk1YRzVFUVUxQlIwVlRJQ2hKVGtOTVZVUkpUa2NzSUVKVlZDQk9UMVFnVEVsTlNWUkZSQ0JVVHl3Z1VGSlBRMVZTUlUxRlRsUWdUMFlnVTFWQ1UxUkpWRlZVUlNCSFQwOUVVeUJQVWx4dVUwVlNWa2xEUlZNN0lFeFBVMU1nVDBZZ1ZWTkZMQ0JFUVZSQkxDQlBVaUJRVWs5R1NWUlRPeUJQVWlCQ1ZWTkpUa1ZUVXlCSlRsUkZVbEpWVUZSSlQwNHBJRWhQVjBWV1JWSmNia05CVlZORlJDQkJUa1FnVDA0Z1FVNVpJRlJJUlU5U1dTQlBSaUJNU1VGQ1NVeEpWRmtzSUZkSVJWUklSVklnU1U0Z1EwOU9WRkpCUTFRc0lGTlVVa2xEVkNCTVNVRkNTVXhKVkZrc1hHNVBVaUJVVDFKVUlDaEpUa05NVlVSSlRrY2dUa1ZIVEVsSFJVNURSU0JQVWlCUFZFaEZVbGRKVTBVcElFRlNTVk5KVGtjZ1NVNGdRVTVaSUZkQldTQlBWVlFnVDBZZ1ZFaEZJRlZUUlZ4dVQwWWdWRWhKVXlCVFQwWlVWMEZTUlN3Z1JWWkZUaUJKUmlCQlJGWkpVMFZFSUU5R0lGUklSU0JRVDFOVFNVSkpURWxVV1NCUFJpQlRWVU5JSUVSQlRVRkhSUzVjYmx4dUtpOWNibHh1THlwY2JpQXFJRlJvWlNCbWIyeHNiM2RwYm1jZ2MyVmpkR2x2YmlCcGN5QmtaWEpwZG1Wa0lHWnliMjBnYUhSMGNITTZMeTluYVhSb2RXSXVZMjl0TDNCb2IzTndhRzl5YW5NdmNHaHZjM0JvYjNJdllteHZZaTh5TTJJNVpEQTNOV1ZpWXpWaU56TmhZakUwT0dJMlpXSm1Zekl3WVdZNU4yWTROVGN4TkdNMEwzQmhZMnRoWjJWekwzZHBaR2RsZEhNdmMzUjViR1V2ZEdGaVltRnlMbU56Y3lCY2JpQXFJRmRsSjNabElITmpiM0JsWkNCMGFHVWdjblZzWlhNZ2MyOGdkR2hoZENCMGFHVjVJR0Z5WlNCamIyNXphWE4wWlc1MElIZHBkR2dnWlhoaFkzUnNlU0J2ZFhJZ1kyOWtaUzVjYmlBcUwxeHVYRzR1YW5Wd2VYUmxjaTEzYVdSblpYUnpMbmRwWkdkbGRDMTBZV0lnUGlBdWNDMVVZV0pDWVhJZ2UxeHVJQ0JrYVhOd2JHRjVPaUJtYkdWNE8xeHVJQ0F0ZDJWaWEybDBMWFZ6WlhJdGMyVnNaV04wT2lCdWIyNWxPMXh1SUNBdGJXOTZMWFZ6WlhJdGMyVnNaV04wT2lCdWIyNWxPMXh1SUNBdGJYTXRkWE5sY2kxelpXeGxZM1E2SUc1dmJtVTdYRzRnSUhWelpYSXRjMlZzWldOME9pQnViMjVsTzF4dWZWeHVYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNsdGtZWFJoTFc5eWFXVnVkR0YwYVc5dVBTZG9iM0pwZW05dWRHRnNKMTBnZTF4dUlDQm1iR1Y0TFdScGNtVmpkR2x2YmpvZ2NtOTNPMXh1ZlZ4dVhHNWNiaTVxZFhCNWRHVnlMWGRwWkdkbGRITXVkMmxrWjJWMExYUmhZaUErSUM1d0xWUmhZa0poY2x0a1lYUmhMVzl5YVdWdWRHRjBhVzl1UFNkMlpYSjBhV05oYkNkZElIdGNiaUFnWm14bGVDMWthWEpsWTNScGIyNDZJR052YkhWdGJqdGNibjFjYmx4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWElnUGlBdWNDMVVZV0pDWVhJdFkyOXVkR1Z1ZENCN1hHNGdJRzFoY21kcGJqb2dNRHRjYmlBZ2NHRmtaR2x1WnpvZ01EdGNiaUFnWkdsemNHeGhlVG9nWm14bGVEdGNiaUFnWm14bGVEb2dNU0F4SUdGMWRHODdYRzRnSUd4cGMzUXRjM1I1YkdVdGRIbHdaVG9nYm05dVpUdGNibjFjYmx4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWEpiWkdGMFlTMXZjbWxsYm5SaGRHbHZiajBuYUc5eWFYcHZiblJoYkNkZElENGdMbkF0VkdGaVFtRnlMV052Ym5SbGJuUWdlMXh1SUNCbWJHVjRMV1JwY21WamRHbHZiam9nY205M08xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjbHRrWVhSaExXOXlhV1Z1ZEdGMGFXOXVQU2QyWlhKMGFXTmhiQ2RkSUQ0Z0xuQXRWR0ZpUW1GeUxXTnZiblJsYm5RZ2UxeHVJQ0JtYkdWNExXUnBjbVZqZEdsdmJqb2dZMjlzZFcxdU8xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaUlIdGNiaUFnWkdsemNHeGhlVG9nWm14bGVEdGNiaUFnWm14bGVDMWthWEpsWTNScGIyNDZJSEp2ZHp0Y2JpQWdZbTk0TFhOcGVtbHVaem9nWW05eVpHVnlMV0p2ZUR0Y2JpQWdiM1psY21ac2IzYzZJR2hwWkdSbGJqdGNibjFjYmx4dVhHNHVhblZ3ZVhSbGNpMTNhV1JuWlhSekxuZHBaR2RsZEMxMFlXSWdQaUF1Y0MxVVlXSkNZWElnTG5BdFZHRmlRbUZ5TFhSaFlrbGpiMjRzWEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdMbkF0VkdGaVFtRnlMWFJoWWtOc2IzTmxTV052YmlCN1hHNGdJR1pzWlhnNklEQWdNQ0JoZFhSdk8xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaUF1Y0MxVVlXSkNZWEl0ZEdGaVRHRmlaV3dnZTF4dUlDQm1iR1Y0T2lBeElERWdZWFYwYnp0Y2JpQWdiM1psY21ac2IzYzZJR2hwWkdSbGJqdGNiaUFnZDJocGRHVXRjM0JoWTJVNklHNXZkM0poY0R0Y2JuMWNibHh1WEc0dWFuVndlWFJsY2kxM2FXUm5aWFJ6TG5kcFpHZGxkQzEwWVdJZ1BpQXVjQzFVWVdKQ1lYSWdMbkF0VkdGaVFtRnlMWFJoWWk1d0xXMXZaQzFvYVdSa1pXNGdlMXh1SUNCa2FYTndiR0Y1T2lCdWIyNWxJQ0ZwYlhCdmNuUmhiblE3WEc1OVhHNWNibHh1TG1wMWNIbDBaWEl0ZDJsa1oyVjBjeTUzYVdSblpYUXRkR0ZpSUQ0Z0xuQXRWR0ZpUW1GeUxuQXRiVzlrTFdSeVlXZG5hVzVuSUM1d0xWUmhZa0poY2kxMFlXSWdlMXh1SUNCd2IzTnBkR2x2YmpvZ2NtVnNZWFJwZG1VN1hHNTlYRzVjYmx4dUxtcDFjSGwwWlhJdGQybGtaMlYwY3k1M2FXUm5aWFF0ZEdGaUlENGdMbkF0VkdGaVFtRnlMbkF0Ylc5a0xXUnlZV2RuYVc1blcyUmhkR0V0YjNKcFpXNTBZWFJwYjI0OUoyaHZjbWw2YjI1MFlXd25YU0F1Y0MxVVlXSkNZWEl0ZEdGaUlIdGNiaUFnYkdWbWREb2dNRHRjYmlBZ2RISmhibk5wZEdsdmJqb2diR1ZtZENBeE5UQnRjeUJsWVhObE8xeHVmVnh1WEc1Y2JpNXFkWEI1ZEdWeUxYZHBaR2RsZEhNdWQybGtaMlYwTFhSaFlpQStJQzV3TFZSaFlrSmhjaTV3TFcxdlpDMWtjbUZuWjJsdVoxdGtZWFJoTFc5eWFXVnVkR0YwYVc5dVBTZDJaWEowYVdOaGJDZGRJQzV3TFZSaFlrSmhjaTEwWVdJZ2UxeHVJQ0IwYjNBNklEQTdYRzRnSUhSeVlXNXphWFJwYjI0NklIUnZjQ0F4TlRCdGN5QmxZWE5sTzF4dWZWeHVYRzVjYmk1cWRYQjVkR1Z5TFhkcFpHZGxkSE11ZDJsa1oyVjBMWFJoWWlBK0lDNXdMVlJoWWtKaGNpNXdMVzF2WkMxa2NtRm5aMmx1WnlBdWNDMVVZV0pDWVhJdGRHRmlMbkF0Ylc5a0xXUnlZV2RuYVc1bklIdGNiaUFnZEhKaGJuTnBkR2x2YmpvZ2JtOXVaVHRjYm4xY2JseHVMeW9nUlc1a0lIUmhZbUpoY2k1amMzTWdLaTljYmlKZGZRPT0gKi8=",
+ "headers": [
+ [
+ "content-type",
+ "text/css"
+ ]
+ ],
+ "ok": true,
+ "status": 200,
+ "status_text": ""
+ }
+ }
+ },
+ "colab_type": "code",
+ "executionInfo": {
+ "elapsed": 12358,
+ "status": "ok",
+ "timestamp": 1574701946936,
+ "user": {
+ "displayName": "Michele Pasin",
+ "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mBu8LVjIGgontF2Wax51BoL5KFx8esezX3bUmaa0g=s64",
+ "userId": "10309320684375994511"
+ },
+ "user_tz": 0
+ },
+ "id": "3BFKuzYwiLiy",
+ "outputId": "a31e7830-6f15-485b-cb84-9d2386ca43ee"
+ },
+ "outputs": [
+ {
+ "data": {
+ "application/vnd.jupyter.widget-view+json": {
+ "model_id": "225073d7b7cb409b82a7cd252c729cc9",
+ "version_major": 2,
+ "version_minor": 0
+ },
+ "text/plain": [
+ " 0%| | 0/10 [00:00, ?it/s]"
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "{'results': [{'input': {'affiliation': 'University of Nebraska–Lincoln Lincoln Nebraska United States'}, 'matches': [{'affiliation_part': 'University of Nebraska–Lincoln Lincoln Nebraska United States', 'geo': {'cities': [{'geonames_id': 5072006, 'name': 'Lincoln'}], 'countries': [{'code': 'US', 'geonames_id': 6252001, 'name': 'United States'}], 'states': [{'code': 'US-NE', 'geonames_id': 5073708, 'name': 'Nebraska'}]}, 'institutes': [{'institute': {'city': 'Lincoln', 'country': 'United States', 'id': 'grid.24434.35', 'name': 'University of Nebraska–Lincoln', 'state': 'Nebraska'}, 'metadata': {'requires_manual_review': False}}]}]}]}\n",
+ "{'results': [{'input': {'affiliation': 'Tarbiat Modares University Tehran Iran'}, 'matches': [{'affiliation_part': 'Tarbiat Modares University Tehran Iran', 'geo': {'cities': [{'geonames_id': 112931, 'name': 'Tehran'}], 'countries': [{'code': 'IR', 'geonames_id': 130758, 'name': 'Iran'}], 'states': [{'code': None, 'geonames_id': 110791, 'name': 'Tehran'}]}, 'institutes': [{'institute': {'city': 'Tehran', 'country': 'Iran', 'id': 'grid.412266.5', 'name': 'Tarbiat Modares University', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}]}\n",
+ "{'results': [{'input': {'affiliation': 'Harvard University Cambridge Massachusetts United States'}, 'matches': [{'affiliation_part': 'Harvard University Cambridge Massachusetts United States', 'geo': {'cities': [{'geonames_id': 4931972, 'name': 'Cambridge'}], 'countries': [{'code': 'US', 'geonames_id': 6252001, 'name': 'United States'}], 'states': [{'code': 'US-MA', 'geonames_id': 6254926, 'name': 'Massachusetts'}]}, 'institutes': [{'institute': {'city': 'Cambridge', 'country': 'United States', 'id': 'grid.38142.3c', 'name': 'Harvard University', 'state': 'Massachusetts'}, 'metadata': {'requires_manual_review': False}}]}]}]}\n",
+ "{'results': [{'input': {'affiliation': 'China Academy of Chinese Medical Sciences Beijing China'}, 'matches': [{'affiliation_part': 'China Academy of Chinese Medical Sciences Beijing China', 'geo': {'cities': [{'geonames_id': 1816670, 'name': 'Beijing'}], 'countries': [{'code': 'CN', 'geonames_id': 1814991, 'name': 'China'}], 'states': [{'code': None, 'geonames_id': 2038349, 'name': 'Beijing'}]}, 'institutes': [{'institute': {'city': 'Beijing', 'country': 'China', 'id': 'grid.410318.f', 'name': 'China Academy of Chinese Medical Sciences', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}]}\n",
+ "{'results': [{'input': {'affiliation': 'Liaoning University Shenyang China'}, 'matches': [{'affiliation_part': 'Liaoning University Shenyang China', 'geo': {'cities': [{'geonames_id': 2034937, 'name': 'Shenyang'}], 'countries': [{'code': 'CN', 'geonames_id': 1814991, 'name': 'China'}], 'states': [{'code': None, 'geonames_id': 2036115, 'name': 'Liaoning'}]}, 'institutes': [{'institute': {'city': 'Shenyang', 'country': 'China', 'id': 'grid.411356.4', 'name': 'Liaoning University', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}]}\n",
+ "{'results': [{'input': {'affiliation': 'Liaoning Normal University Dalian China'}, 'matches': [{'affiliation_part': 'Liaoning Normal University Dalian China', 'geo': {'cities': [{'geonames_id': 1814087, 'name': 'Dalian'}], 'countries': [{'code': 'CN', 'geonames_id': 1814991, 'name': 'China'}], 'states': [{'code': None, 'geonames_id': 2036115, 'name': 'Liaoning'}]}, 'institutes': [{'institute': {'city': 'Dalian', 'country': 'China', 'id': 'grid.440818.1', 'name': 'Liaoning Normal University', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}]}\n",
+ "{'results': [{'input': {'affiliation': 'P.G. Department of Zoology and Research Centre, Shri Shiv Chhatrapati College of Arts, Commerce and Science, Junnar 410502, Pune, India. '}, 'matches': [{'affiliation_part': 'P.G. Department of Zoology and Research Centre, Shri Shiv Chhatrapati College of Arts, Commerce and Science, Junnar 410502, Pune, India', 'geo': {'cities': [{'geonames_id': 1259229, 'name': 'Pune'}], 'countries': [{'code': 'IN', 'geonames_id': 1269750, 'name': 'India'}], 'states': [{'code': None, 'geonames_id': 1264418, 'name': 'Maharashtra'}]}, 'institutes': []}]}]}\n",
+ "{'results': [{'input': {'affiliation': 'Sungkyunkwan University Seoul South Korea'}, 'matches': [{'affiliation_part': 'Sungkyunkwan University Seoul South Korea', 'geo': {'cities': [{'geonames_id': 1835848, 'name': 'Seoul'}], 'countries': [{'code': 'KR', 'geonames_id': 1835841, 'name': 'South Korea'}], 'states': [{'code': None, 'geonames_id': 1835847, 'name': 'Seoul'}]}, 'institutes': [{'institute': {'city': 'Seoul', 'country': 'South Korea', 'id': 'grid.264381.a', 'name': 'Sungkyunkwan University', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}]}\n",
+ "{'results': [{'input': {'affiliation': 'Centre for Materials for Electronics Technology Pune India'}, 'matches': [{'affiliation_part': 'Centre for Materials for Electronics Technology Pune India', 'geo': {'cities': [{'geonames_id': 1259229, 'name': 'Pune'}], 'countries': [{'code': 'IN', 'geonames_id': 1269750, 'name': 'India'}], 'states': [{'code': None, 'geonames_id': 1264418, 'name': 'Maharashtra'}]}, 'institutes': [{'institute': {'city': 'Pune', 'country': 'India', 'id': 'grid.494569.3', 'name': 'Centre for Materials for Electronics Technology', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}]}\n",
+ "{'results': [{'input': {'affiliation': 'Institut Necker-Enfants Malades (INEM), INSERM U1151-CNRS UMR8253, Université de Paris, Faculté de Médecine, 156 rue de Vaugirard, 75730 Paris Cedex 15, France '}, 'matches': [{'affiliation_part': 'Institut Necker-Enfants Malades (INEM), INSERM U1151-CNRS UMR8253, Université de Paris, Faculté de Médecine, 156 rue de Vaugirard, 75730 Paris Cedex 15, France', 'geo': {'cities': [{'geonames_id': 2988507, 'name': 'Paris'}], 'countries': [{'code': 'FR', 'geonames_id': 3017382, 'name': 'France'}], 'states': [{'code': None, 'geonames_id': 3012874, 'name': 'Ile-de-France'}]}, 'institutes': [{'institute': {'city': 'Paris', 'country': 'France', 'id': 'grid.508487.6', 'name': 'Université Paris Cité', 'state': None}, 'metadata': {'requires_manual_review': False}}]}]}]}\n"
+ ]
+ }
+ ],
+ "source": [
+ "# implicit results \n",
+ "for d in pbar(affiliations):\n",
+ " merged = f\"{d[0]} {d[1]} {d[2]} {d[3]}\"\n",
+ " res = dsl.query(f\"\"\"extract_affiliations(affiliation=\"{merged}\")\"\"\")\n",
+ " time.sleep(0.5)\n",
+ " print(res.json)"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "colab_type": "text",
+ "id": "VARKBkHejaLN"
+ },
+ "source": [
+ "> NOTE: the above commands also support **bulk querying** e.g. to save up API queries - check out the [docs](https://docs.dimensions.ai/dsl/functions.html#function-extract-affiliations) for more info."
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "colab_type": "text",
+ "id": "YBSdHL4Tywj4",
+ "toc-hr-collapsed": false
+ },
+ "source": [
+ "## 2. Searching the API for organizations \n",
+ "\n",
+ "This can be done using full text search and/or fielded search. \n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "colab_type": "text",
+ "id": "OAwuhlQmd2FK"
+ },
+ "source": [
+ "### Full-text search "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 6,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 315
+ },
+ "colab_type": "code",
+ "executionInfo": {
+ "elapsed": 1315,
+ "status": "ok",
+ "timestamp": 1574702298940,
+ "user": {
+ "displayName": "Michele Pasin",
+ "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mBu8LVjIGgontF2Wax51BoL5KFx8esezX3bUmaa0g=s64",
+ "userId": "10309320684375994511"
+ },
+ "user_tz": 0
+ },
+ "id": "qUz8_6M0d2Fa",
+ "outputId": "c8f58fc6-0e68-4a79-ef20-9dafbd0164f6"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Returned Organizations: 10 (total = 352)\n",
+ "\u001b[2mTime: 5.56s\u001b[0m\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
id
\n",
+ "
name
\n",
+ "
country_code
\n",
+ "
country_name
\n",
+ "
types
\n",
+ "
city_name
\n",
+ "
state_name
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
0
\n",
+ "
grid.798367.4
\n",
+ "
Bank of New York
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Company]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
+ "
grid.798343.2
\n",
+ "
Research Foundation of University of New York
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
grid.797561.b
\n",
+ "
New York Hospital-Cornell Medical Center
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Healthcare]
\n",
+ "
New York
\n",
+ "
New York
\n",
+ "
\n",
+ "
\n",
+ "
3
\n",
+ "
grid.796770.8
\n",
+ "
Research Foundation of City University of New ...
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Other]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
4
\n",
+ "
grid.796173.d
\n",
+ "
Bank of New York Mellon Trust Co NA
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Company]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
5
\n",
+ "
grid.795276.8
\n",
+ "
New York University Medical Center
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
New York
\n",
+ "
New York
\n",
+ "
\n",
+ "
\n",
+ "
6
\n",
+ "
grid.794869.d
\n",
+ "
International General Electric Company of New ...
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Other]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
7
\n",
+ "
grid.782261.8
\n",
+ "
New York Digital Investment Group LLC
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Other]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
8
\n",
+ "
grid.778414.9
\n",
+ "
China CITIC Bank International Ltd New York Br...
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Government]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
9
\n",
+ "
grid.777726.4
\n",
+ "
Morgan Guaranty Trust Company of New York
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Company]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " id name \\\n",
+ "0 grid.798367.4 Bank of New York \n",
+ "1 grid.798343.2 Research Foundation of University of New York \n",
+ "2 grid.797561.b New York Hospital-Cornell Medical Center \n",
+ "3 grid.796770.8 Research Foundation of City University of New ... \n",
+ "4 grid.796173.d Bank of New York Mellon Trust Co NA \n",
+ "5 grid.795276.8 New York University Medical Center \n",
+ "6 grid.794869.d International General Electric Company of New ... \n",
+ "7 grid.782261.8 New York Digital Investment Group LLC \n",
+ "8 grid.778414.9 China CITIC Bank International Ltd New York Br... \n",
+ "9 grid.777726.4 Morgan Guaranty Trust Company of New York \n",
+ "\n",
+ " country_code country_name types city_name state_name \n",
+ "0 US United States [Company] NaN NaN \n",
+ "1 US United States [Education] NaN NaN \n",
+ "2 US United States [Healthcare] New York New York \n",
+ "3 US United States [Other] NaN NaN \n",
+ "4 US United States [Company] NaN NaN \n",
+ "5 US United States [Education] New York New York \n",
+ "6 US United States [Other] NaN NaN \n",
+ "7 US United States [Other] NaN NaN \n",
+ "8 US United States [Government] NaN NaN \n",
+ "9 US United States [Company] NaN NaN "
+ ]
+ },
+ "execution_count": 6,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "%%dsldf \n",
+ "search organizations \n",
+ " for \"new york\" \n",
+ "return organizations limit 10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 7,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 252
+ },
+ "colab_type": "code",
+ "executionInfo": {
+ "elapsed": 1809,
+ "status": "ok",
+ "timestamp": 1574702323641,
+ "user": {
+ "displayName": "Michele Pasin",
+ "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mBu8LVjIGgontF2Wax51BoL5KFx8esezX3bUmaa0g=s64",
+ "userId": "10309320684375994511"
+ },
+ "user_tz": 0
+ },
+ "id": "P3UWAR0QkkKg",
+ "outputId": "9e1be9ab-e3cf-4aca-f621-27f8b93a8a91"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Returned Organizations: 9 (total = 9)\n",
+ "\u001b[2mTime: 0.62s\u001b[0m\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
id
\n",
+ "
name
\n",
+ "
country_code
\n",
+ "
country_name
\n",
+ "
types
\n",
+ "
acronym
\n",
+ "
city_name
\n",
+ "
latitude
\n",
+ "
linkout
\n",
+ "
longitude
\n",
+ "
state_name
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
0
\n",
+ "
grid.757191.c
\n",
+ "
New York Community Bank
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Company]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
+ "
grid.507861.d
\n",
+ "
Mohawk Valley Community College
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
MVCC
\n",
+ "
Utica
\n",
+ "
43.076850
\n",
+ "
[https://www.mvcc.edu/]
\n",
+ "
-75.220120
\n",
+ "
New York
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
grid.490742.c
\n",
+ "
Health Foundation for Western & Central New York
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Nonprofit]
\n",
+ "
NaN
\n",
+ "
Buffalo
\n",
+ "
42.874810
\n",
+ "
[https://hfwcny.org/]
\n",
+ "
-78.849690
\n",
+ "
New York
\n",
+ "
\n",
+ "
\n",
+ "
3
\n",
+ "
grid.480917.3
\n",
+ "
New York Community Trust
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Nonprofit]
\n",
+ "
NaN
\n",
+ "
New York
\n",
+ "
40.758870
\n",
+ "
[http://www.nycommunitytrust.org/]
\n",
+ "
-73.968185
\n",
+ "
New York
\n",
+ "
\n",
+ "
\n",
+ "
4
\n",
+ "
grid.478715.8
\n",
+ "
Central New York Community Foundation
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Nonprofit]
\n",
+ "
CNYCF
\n",
+ "
Syracuse
\n",
+ "
43.056038
\n",
+ "
[https://www.cnycf.org/]
\n",
+ "
-76.148210
\n",
+ "
New York
\n",
+ "
\n",
+ "
\n",
+ "
5
\n",
+ "
grid.475804.a
\n",
+ "
Community Service Society of New York
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Other]
\n",
+ "
CSS
\n",
+ "
New York
\n",
+ "
40.749622
\n",
+ "
[http://www.cssny.org/]
\n",
+ "
-73.974620
\n",
+ "
New York
\n",
+ "
\n",
+ "
\n",
+ "
6
\n",
+ "
grid.475783.a
\n",
+ "
Long Term Care Community Coalition
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Other]
\n",
+ "
LTCCC
\n",
+ "
New York
\n",
+ "
40.751163
\n",
+ "
[http://www.ltccc.org/]
\n",
+ "
-73.992470
\n",
+ "
New York
\n",
+ "
\n",
+ "
\n",
+ "
7
\n",
+ "
grid.429257.f
\n",
+ "
Korean Community Services of Metropolitan New ...
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Nonprofit]
\n",
+ "
KCS
\n",
+ "
New York
\n",
+ "
40.770954
\n",
+ "
[https://www.kcsny.org/]
\n",
+ "
-73.786670
\n",
+ "
New York
\n",
+ "
\n",
+ "
\n",
+ "
8
\n",
+ "
funder.196228
\n",
+ "
Community Health Foundation of Western and Cen...
\n",
+ "
NaN
\n",
+ "
United States
\n",
+ "
NaN
\n",
+ "
Community Health Foundation of Western and Centra
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " id name \\\n",
+ "0 grid.757191.c New York Community Bank \n",
+ "1 grid.507861.d Mohawk Valley Community College \n",
+ "2 grid.490742.c Health Foundation for Western & Central New York \n",
+ "3 grid.480917.3 New York Community Trust \n",
+ "4 grid.478715.8 Central New York Community Foundation \n",
+ "5 grid.475804.a Community Service Society of New York \n",
+ "6 grid.475783.a Long Term Care Community Coalition \n",
+ "7 grid.429257.f Korean Community Services of Metropolitan New ... \n",
+ "8 funder.196228 Community Health Foundation of Western and Cen... \n",
+ "\n",
+ " country_code country_name types \\\n",
+ "0 US United States [Company] \n",
+ "1 US United States [Education] \n",
+ "2 US United States [Nonprofit] \n",
+ "3 US United States [Nonprofit] \n",
+ "4 US United States [Nonprofit] \n",
+ "5 US United States [Other] \n",
+ "6 US United States [Other] \n",
+ "7 US United States [Nonprofit] \n",
+ "8 NaN United States NaN \n",
+ "\n",
+ " acronym city_name latitude \\\n",
+ "0 NaN NaN NaN \n",
+ "1 MVCC Utica 43.076850 \n",
+ "2 NaN Buffalo 42.874810 \n",
+ "3 NaN New York 40.758870 \n",
+ "4 CNYCF Syracuse 43.056038 \n",
+ "5 CSS New York 40.749622 \n",
+ "6 LTCCC New York 40.751163 \n",
+ "7 KCS New York 40.770954 \n",
+ "8 Community Health Foundation of Western and Centra NaN NaN \n",
+ "\n",
+ " linkout longitude state_name \n",
+ "0 NaN NaN NaN \n",
+ "1 [https://www.mvcc.edu/] -75.220120 New York \n",
+ "2 [https://hfwcny.org/] -78.849690 New York \n",
+ "3 [http://www.nycommunitytrust.org/] -73.968185 New York \n",
+ "4 [https://www.cnycf.org/] -76.148210 New York \n",
+ "5 [http://www.cssny.org/] -73.974620 New York \n",
+ "6 [http://www.ltccc.org/] -73.992470 New York \n",
+ "7 [https://www.kcsny.org/] -73.786670 New York \n",
+ "8 NaN NaN NaN "
+ ]
+ },
+ "execution_count": 7,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "%%dsldf \n",
+ "search organizations \n",
+ " for \"new york AND community\" \n",
+ "return organizations limit 10"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "colab_type": "text",
+ "id": "Baz2j_cmd2Fd"
+ },
+ "source": [
+ "### Fielded search \n",
+ "\n",
+ "We can easily look up an organization using its ID, e.g."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 8,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 151
+ },
+ "colab_type": "code",
+ "executionInfo": {
+ "elapsed": 1050,
+ "status": "ok",
+ "timestamp": 1574704472898,
+ "user": {
+ "displayName": "Michele Pasin",
+ "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mBu8LVjIGgontF2Wax51BoL5KFx8esezX3bUmaa0g=s64",
+ "userId": "10309320684375994511"
+ },
+ "user_tz": 0
+ },
+ "id": "jNBg_c3ed2Fe",
+ "outputId": "5cbfb9d9-dcdc-4a34-aa1c-d99987b91cb9"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Returned Errors: 1\n",
+ "\u001b[2mTime: 5.84s\u001b[0m\n",
+ "Query Error\n",
+ "Semantic errors found:\n",
+ "\tField / Fieldset 'all' is not present in Source 'organizations'. Available fields: acronym,city_name,cnrs_ids,country_code,country_name,dimensions_url,established,external_ids_fundref,hesa_ids,id,isni_ids,latitude,linkout,longitude,name,nuts_level1_code,nuts_level1_name,nuts_level2_code,nuts_level2_name,nuts_level3_code,nuts_level3_name,organization_child_ids,organization_parent_ids,organization_related_ids,orgref_ids,redirect,ror_ids,score,state_name,status,types,ucas_ids,ukprn_ids,wikidata_ids,wikipedia_url and available fieldsets: basics,nuts\n"
+ ]
+ }
+ ],
+ "source": [
+ "%%dsldf \n",
+ "search organizations \n",
+ " where id=\"grid.468887.d\" \n",
+ "return organizations[all] "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 9,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 315
+ },
+ "colab_type": "code",
+ "executionInfo": {
+ "elapsed": 1020,
+ "status": "ok",
+ "timestamp": 1574702525174,
+ "user": {
+ "displayName": "Michele Pasin",
+ "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mBu8LVjIGgontF2Wax51BoL5KFx8esezX3bUmaa0g=s64",
+ "userId": "10309320684375994511"
+ },
+ "user_tz": 0
+ },
+ "id": "GKh7VSOPk1Ye",
+ "outputId": "47a339ed-1f50-423c-8c04-e0ca3ad9347e"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Returned Organizations: 10 (total = 93)\n",
+ "\u001b[2mTime: 0.64s\u001b[0m\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
id
\n",
+ "
name
\n",
+ "
country_code
\n",
+ "
country_name
\n",
+ "
types
\n",
+ "
city_name
\n",
+ "
state_name
\n",
+ "
latitude
\n",
+ "
linkout
\n",
+ "
longitude
\n",
+ "
acronym
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
0
\n",
+ "
grid.798343.2
\n",
+ "
Research Foundation of University of New York
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
+ "
grid.795276.8
\n",
+ "
New York University Medical Center
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
New York
\n",
+ "
New York
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
grid.512545.2
\n",
+ "
State University of New York, Korea
\n",
+ "
KR
\n",
+ "
South Korea
\n",
+ "
[Education]
\n",
+ "
Incheon
\n",
+ "
NaN
\n",
+ "
37.376694
\n",
+ "
[http://www.sunykorea.ac.kr/]
\n",
+ "
126.667170
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
3
\n",
+ "
grid.511090.c
\n",
+ "
Craig Newmark Graduate School of Journalism at...
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
New York
\n",
+ "
New York
\n",
+ "
40.755230
\n",
+ "
[https://www.journalism.cuny.edu/]
\n",
+ "
-73.988830
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
4
\n",
+ "
grid.510787.c
\n",
+ "
Center for Migration Studies of New York
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
New York
\n",
+ "
New York
\n",
+ "
40.761470
\n",
+ "
[https://cmsny.org/]
\n",
+ "
-73.965450
\n",
+ "
CMS
\n",
+ "
\n",
+ "
\n",
+ "
5
\n",
+ "
grid.507867.b
\n",
+ "
New York State College of Ceramics
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
Alfred
\n",
+ "
New York
\n",
+ "
42.253372
\n",
+ "
[https://www.alfred.edu/academics/colleges-sch...
\n",
+ "
-77.787575
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
6
\n",
+ "
grid.507863.f
\n",
+ "
New York State School of Industrial and Labor ...
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
Ithaca
\n",
+ "
New York
\n",
+ "
42.439213
\n",
+ "
[https://www.ilr.cornell.edu/]
\n",
+ "
-76.493380
\n",
+ "
ILR
\n",
+ "
\n",
+ "
\n",
+ "
7
\n",
+ "
grid.507861.d
\n",
+ "
Mohawk Valley Community College
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
Utica
\n",
+ "
New York
\n",
+ "
43.076850
\n",
+ "
[https://www.mvcc.edu/]
\n",
+ "
-75.220120
\n",
+ "
MVCC
\n",
+ "
\n",
+ "
\n",
+ "
8
\n",
+ "
grid.507860.c
\n",
+ "
New York State College of Agriculture and Life...
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
Ithaca
\n",
+ "
New York
\n",
+ "
42.448290
\n",
+ "
[https://cals.cornell.edu/#]
\n",
+ "
-76.479390
\n",
+ "
CALS
\n",
+ "
\n",
+ "
\n",
+ "
9
\n",
+ "
grid.507859.6
\n",
+ "
New York State College of Veterinary Medicine ...
\n",
+ "
US
\n",
+ "
United States
\n",
+ "
[Education]
\n",
+ "
Ithaca
\n",
+ "
New York
\n",
+ "
42.447483
\n",
+ "
[https://www.vet.cornell.edu/]
\n",
+ "
-76.464905
\n",
+ "
NaN
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " id name \\\n",
+ "0 grid.798343.2 Research Foundation of University of New York \n",
+ "1 grid.795276.8 New York University Medical Center \n",
+ "2 grid.512545.2 State University of New York, Korea \n",
+ "3 grid.511090.c Craig Newmark Graduate School of Journalism at... \n",
+ "4 grid.510787.c Center for Migration Studies of New York \n",
+ "5 grid.507867.b New York State College of Ceramics \n",
+ "6 grid.507863.f New York State School of Industrial and Labor ... \n",
+ "7 grid.507861.d Mohawk Valley Community College \n",
+ "8 grid.507860.c New York State College of Agriculture and Life... \n",
+ "9 grid.507859.6 New York State College of Veterinary Medicine ... \n",
+ "\n",
+ " country_code country_name types city_name state_name latitude \\\n",
+ "0 US United States [Education] NaN NaN NaN \n",
+ "1 US United States [Education] New York New York NaN \n",
+ "2 KR South Korea [Education] Incheon NaN 37.376694 \n",
+ "3 US United States [Education] New York New York 40.755230 \n",
+ "4 US United States [Education] New York New York 40.761470 \n",
+ "5 US United States [Education] Alfred New York 42.253372 \n",
+ "6 US United States [Education] Ithaca New York 42.439213 \n",
+ "7 US United States [Education] Utica New York 43.076850 \n",
+ "8 US United States [Education] Ithaca New York 42.448290 \n",
+ "9 US United States [Education] Ithaca New York 42.447483 \n",
+ "\n",
+ " linkout longitude acronym \n",
+ "0 NaN NaN NaN \n",
+ "1 NaN NaN NaN \n",
+ "2 [http://www.sunykorea.ac.kr/] 126.667170 NaN \n",
+ "3 [https://www.journalism.cuny.edu/] -73.988830 NaN \n",
+ "4 [https://cmsny.org/] -73.965450 CMS \n",
+ "5 [https://www.alfred.edu/academics/colleges-sch... -77.787575 NaN \n",
+ "6 [https://www.ilr.cornell.edu/] -76.493380 ILR \n",
+ "7 [https://www.mvcc.edu/] -75.220120 MVCC \n",
+ "8 [https://cals.cornell.edu/#] -76.479390 CALS \n",
+ "9 [https://www.vet.cornell.edu/] -76.464905 NaN "
+ ]
+ },
+ "execution_count": 9,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "%%dsldf \n",
+ "search organizations \n",
+ " for \"new york\" \n",
+ " where types in [\"Education\"]\n",
+ "return organizations limit 10"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 10,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 273
+ },
+ "colab_type": "code",
+ "executionInfo": {
+ "elapsed": 779,
+ "status": "ok",
+ "timestamp": 1574702569063,
+ "user": {
+ "displayName": "Michele Pasin",
+ "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mBu8LVjIGgontF2Wax51BoL5KFx8esezX3bUmaa0g=s64",
+ "userId": "10309320684375994511"
+ },
+ "user_tz": 0
+ },
+ "id": "W6_BukMKleWs",
+ "outputId": "caedaf98-ca87-4504-a505-e4371f623eb2"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Returned Organizations: 9 (total = 9)\n",
+ "\u001b[2mTime: 5.97s\u001b[0m\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
\n",
+ "
id
\n",
+ "
name
\n",
+ "
city_name
\n",
+ "
country_code
\n",
+ "
country_name
\n",
+ "
latitude
\n",
+ "
linkout
\n",
+ "
longitude
\n",
+ "
types
\n",
+ "
acronym
\n",
+ "
state_name
\n",
+ "
\n",
+ " \n",
+ " \n",
+ "
\n",
+ "
0
\n",
+ "
grid.512545.2
\n",
+ "
State University of New York, Korea
\n",
+ "
Incheon
\n",
+ "
KR
\n",
+ "
South Korea
\n",
+ "
37.376694
\n",
+ "
[http://www.sunykorea.ac.kr/]
\n",
+ "
126.667170
\n",
+ "
[Education]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
1
\n",
+ "
grid.479986.d
\n",
+ "
New York University Paris
\n",
+ "
Paris
\n",
+ "
FR
\n",
+ "
France
\n",
+ "
48.869614
\n",
+ "
[http://www.nyu.edu/paris.html]
\n",
+ "
2.346863
\n",
+ "
[Education]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
2
\n",
+ "
grid.473731.5
\n",
+ "
New York University Florence
\n",
+ "
Florence
\n",
+ "
IT
\n",
+ "
Italy
\n",
+ "
43.795910
\n",
+ "
[http://www.nyu.edu/florence.html]
\n",
+ "
11.265850
\n",
+ "
[Education]
\n",
+ "
NYU
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
3
\n",
+ "
grid.473728.d
\n",
+ "
New York Institute of Technology
\n",
+ "
Vancouver
\n",
+ "
CA
\n",
+ "
Canada
\n",
+ "
49.284374
\n",
+ "
[http://nyit.edu/vancouver]
\n",
+ "
-123.116480
\n",
+ "
[Education]
\n",
+ "
NYIT
\n",
+ "
British Columbia
\n",
+ "
\n",
+ "
\n",
+ "
4
\n",
+ "
grid.449989.1
\n",
+ "
University of New York in Prague
\n",
+ "
Prague
\n",
+ "
CZ
\n",
+ "
Czechia
\n",
+ "
50.074043
\n",
+ "
[https://www.unyp.cz/]
\n",
+ "
14.433994
\n",
+ "
[Education]
\n",
+ "
UNYP
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
5
\n",
+ "
grid.449457.f
\n",
+ "
New York University Shanghai
\n",
+ "
Shanghai
\n",
+ "
CN
\n",
+ "
China
\n",
+ "
31.225506
\n",
+ "
[https://shanghai.nyu.edu/]
\n",
+ "
121.533510
\n",
+ "
[Education]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
6
\n",
+ "
grid.444973.9
\n",
+ "
University of New York Tirana
\n",
+ "
Tirana
\n",
+ "
AL
\n",
+ "
Albania
\n",
+ "
41.311060
\n",
+ "
[http://unyt.edu.al/]
\n",
+ "
19.801466
\n",
+ "
[Education]
\n",
+ "
UNYT
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
7
\n",
+ "
grid.440573.1
\n",
+ "
New York University Abu Dhabi
\n",
+ "
Abu Dhabi
\n",
+ "
AE
\n",
+ "
United Arab Emirates
\n",
+ "
24.485000
\n",
+ "
[https://nyuad.nyu.edu/]
\n",
+ "
54.353000
\n",
+ "
[Education]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ "
\n",
+ "
8
\n",
+ "
grid.410685.e
\n",
+ "
SUNY Korea
\n",
+ "
Seoul
\n",
+ "
KR
\n",
+ "
South Korea
\n",
+ "
37.377018
\n",
+ "
[http://www.sunykorea.ac.kr/]
\n",
+ "
126.666770
\n",
+ "
[Education]
\n",
+ "
NaN
\n",
+ "
NaN
\n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
"
+ ],
+ "text/plain": [
+ " id name city_name country_code \\\n",
+ "0 grid.512545.2 State University of New York, Korea Incheon KR \n",
+ "1 grid.479986.d New York University Paris Paris FR \n",
+ "2 grid.473731.5 New York University Florence Florence IT \n",
+ "3 grid.473728.d New York Institute of Technology Vancouver CA \n",
+ "4 grid.449989.1 University of New York in Prague Prague CZ \n",
+ "5 grid.449457.f New York University Shanghai Shanghai CN \n",
+ "6 grid.444973.9 University of New York Tirana Tirana AL \n",
+ "7 grid.440573.1 New York University Abu Dhabi Abu Dhabi AE \n",
+ "8 grid.410685.e SUNY Korea Seoul KR \n",
+ "\n",
+ " country_name latitude linkout \\\n",
+ "0 South Korea 37.376694 [http://www.sunykorea.ac.kr/] \n",
+ "1 France 48.869614 [http://www.nyu.edu/paris.html] \n",
+ "2 Italy 43.795910 [http://www.nyu.edu/florence.html] \n",
+ "3 Canada 49.284374 [http://nyit.edu/vancouver] \n",
+ "4 Czechia 50.074043 [https://www.unyp.cz/] \n",
+ "5 China 31.225506 [https://shanghai.nyu.edu/] \n",
+ "6 Albania 41.311060 [http://unyt.edu.al/] \n",
+ "7 United Arab Emirates 24.485000 [https://nyuad.nyu.edu/] \n",
+ "8 South Korea 37.377018 [http://www.sunykorea.ac.kr/] \n",
+ "\n",
+ " longitude types acronym state_name \n",
+ "0 126.667170 [Education] NaN NaN \n",
+ "1 2.346863 [Education] NaN NaN \n",
+ "2 11.265850 [Education] NYU NaN \n",
+ "3 -123.116480 [Education] NYIT British Columbia \n",
+ "4 14.433994 [Education] UNYP NaN \n",
+ "5 121.533510 [Education] NaN NaN \n",
+ "6 19.801466 [Education] UNYT NaN \n",
+ "7 54.353000 [Education] NaN NaN \n",
+ "8 126.666770 [Education] NaN NaN "
+ ]
+ },
+ "execution_count": 10,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "%%dsldf \n",
+ "search organizations \n",
+ " for \"new york\" \n",
+ " where types in [\"Education\"]\n",
+ " and country_name != \"United States\"\n",
+ "return organizations limit 10"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "metadata": {
+ "Collapsed": "false",
+ "colab_type": "text",
+ "id": "l4V7z5TCd2Fo"
+ },
+ "source": [
+ "### Returning facets \n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 11,
+ "metadata": {
+ "Collapsed": "false",
+ "colab": {
+ "base_uri": "https://localhost:8080/",
+ "height": 315
+ },
+ "colab_type": "code",
+ "executionInfo": {
+ "elapsed": 1147,
+ "status": "ok",
+ "timestamp": 1574702640852,
+ "user": {
+ "displayName": "Michele Pasin",
+ "photoUrl": "https://lh3.googleusercontent.com/a-/AAuE7mBu8LVjIGgontF2Wax51BoL5KFx8esezX3bUmaa0g=s64",
+ "userId": "10309320684375994511"
+ },
+ "user_tz": 0
+ },
+ "id": "1fqSIrMkd2Fp",
+ "outputId": "3add0d42-15b5-4471-c75d-2e5ba6e0d86a"
+ },
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Returned Country_name: 11\n",
+ "\u001b[2mTime: 0.50s\u001b[0m\n"
+ ]
+ },
+ {
+ "data": {
+ "text/html": [
+ "
For the purpose of this exercise, we will use University of Trento, Italy (grid.11696.39) as a starting point. You can pick any other GRID organization of course. Just use a DSL query or the GRID website to discover the ID of an organization that interests you.
+
For the purpose of this exercise, we will use University of Trento, Italy (organization ID grid.11696.39) as a starting point. You can pick any other organization of course. Just use a DSL query to discover the ID of an organization that interests you.
[3]:
#@markdown The main organization we are interested in:
-GRIDID="grid.11696.39"#@param {type:"string"}
+ORGID="grid.11696.39"#@param {type:"string"}#@markdown The start/end year of publications used to extract industry collaborations:YEAR_START=2000#@param {type: "slider", min: 1950, max: 2020}
@@ -1351,11 +1341,11 @@
A simple histogram chart can tell us the rate of publications per year.
-
[7]:
+
[9]:
px.histogram(pubs,x="year",color="type",
- title=f"Publications per year with industry collaborations for {GRIDID}")
+ title=f"Publications per year with industry collaborations for {ORGID}")
@@ -1670,9 +1679,10 @@
3.1 Count of Publications per year from Industry Collaborations
3.3 Top Industry CollaboratorsDslDataset class in the Dimcli library. This class abstracts the notion of a Dimensions ‘results list’ and provides useful methods to quickly process authors and affiliations.
-
[10]:
+
[13]:
-fromdimcliimportDslDataset
+fromdimcliimportDslDataset# create a new DslDataset instancepubsnew=DslDataset.from_publications_list(pubs)# extract affiliations as a dataframeaffiliations=pubsnew.as_dataframe_authors_affiliations()# focus only on affiliations including a grid from the industry set created above
-affiliations=affiliations[affiliations['aff_id'].isin(gridis)]
+affiliations=affiliations[affiliations['aff_id'].isin(orgids)]# preview the dataaffiliations.head(5)
+
+
+
+
+
+/opt/miniconda3/envs/apilab/lib/python3.12/site-packages/dimcli/core/dataframe_factory.py:195: FutureWarning:
+
+Setting an item of incompatible dtype is deprecated and will raise an error in a future version of pandas. Value '' has dtype incompatible with float64, please explicitly cast to a compatible dtype first.
+
+
We can use the same dataset to segment the data by country.
-
[12]:
+
[15]:
px.pie(affiliations,names="aff_country",height=600,
- title=f"Countries of collaborators for {GRIDID}")
+ title=f"Countries of collaborators for {ORGID}")
\n",
+ " \n",
" "
]
},
@@ -96,8 +86,8 @@
"text": [
"==\n",
"Logging in..\n",
- "\u001b[2mDimcli - Dimensions API Client (v0.9.6)\u001b[0m\n",
- "\u001b[2mConnected to: - DSL v2.0\u001b[0m\n",
+ "\u001b[2mDimcli - Dimensions API Client (v1.4)\u001b[0m\n",
+ "\u001b[2mConnected to: - DSL v2.12\u001b[0m\n",
"\u001b[2mMethod: dsl.ini file\u001b[0m\n"
]
}
@@ -150,8 +140,8 @@
"id": "L6uIjSVnGRQV"
},
"source": [
- "For the purpose of this exercise, we will use [University of Trento, Italy (grid.11696.39)](https://grid.ac/institutes/grid.11696.39) as a starting point. \n",
- "You can pick any other GRID organization of course. Just use a [DSL query](https://digital-science.github.io/dimensions-api-lab/cookbooks/8-organizations/1-GRID-preview.html) or the [GRID website](https://grid.ac/institutes) to discover the ID of an organization that interests you. "
+ "For the purpose of this exercise, we will use University of Trento, Italy (organization ID `grid.11696.39`) as a starting point. \n",
+ "You can pick any other organization of course. Just use a [DSL query](https://digital-science.github.io/dimensions-api-lab/cookbooks/8-organizations/1-GRID-preview.html) to discover the ID of an organization that interests you. "
]
},
{
@@ -182,7 +172,7 @@
{
"data": {
"text/html": [
- "GRID: grid.11696.39 - University of Trento ⧉"
+ "Organization: grid.11696.39 - University of Trento ⧉"
],
"text/plain": [
""
@@ -206,7 +196,7 @@
],
"source": [
"#@markdown The main organization we are interested in:\n",
- "GRIDID = \"grid.11696.39\" #@param {type:\"string\"}\n",
+ "ORGID = \"grid.11696.39\" #@param {type:\"string\"}\n",
" \n",
"#@markdown The start/end year of publications used to extract industry collaborations:\n",
"YEAR_START = 2000 #@param {type: \"slider\", min: 1950, max: 2020}\n",
@@ -219,11 +209,11 @@
"# gen link to Dimensions\n",
"#\n",
"try:\n",
- " gridname = dsl.query(f\"\"\"search organizations where id=\"{GRIDID}\" return organizations[name]\"\"\", verbose=False).organizations[0]['name']\n",
+ " orgname = dsl.query(f\"\"\"search organizations where id=\"{ORGID}\" return organizations[name]\"\"\", verbose=False).organizations[0]['name']\n",
"except:\n",
- " gridname = \"\"\n",
- "from IPython.core.display import display, HTML\n",
- "display(HTML('GRID: {} - {} ⧉'.format(dimensions_url(GRIDID), GRIDID, gridname)))\n",
+ " orgname = \"\"\n",
+ "from IPython.display import display, HTML\n",
+ "display(HTML('Organization: {} - {} ⧉'.format(dimensions_url(ORGID), ORGID, orgname)))\n",
"display(HTML('Time period: {} to {}
You can try using a different organization ID to see how results change.
[3]:
-GRIDID="grid.412125.1"#@param {type:"string"}
+ORGID="grid.412125.1"#@param {type:"string"}#@markdown The start/end year of publications used to extract patentsYEAR_START=2000#@param {type: "slider", min: 1950, max: 2020}
@@ -1369,11 +1349,11 @@
What if we want to retrieve the collaborators of the collaborators? In other words, what if we want to generate a larger network?
-
If we think of our collaboration data as a graph structure with nodes and edges, we can see that the get_collaborators function defined above is limited. That’s because it allows to obtain only the objects directly linked to the ‘seed’ GRID organization.
-
We would like to run the same collaborators-extraction step iteratively for any GRID ID in our results, so to generate an N-degrees network where N is chosen by us.
+
If we think of our collaboration data as a graph structure with nodes and edges, we can see that the get_collaborators function defined above is limited. That’s because it allows to obtain only the objects directly linked to the ‘seed’ organization.
+
We would like to run the same collaborators-extraction step iteratively for any ID in our results, so to generate an N-degrees network where N is chosen by us.
To this purpose, we can set up a recursive function. This function essentially repeats the get_collaborators function as many times as needed. Here’s what it looks like:
[6]:
-defrecursive_network(seed,maxlevel=1,thislevel=1):
+defrecursive_network(seed,maxlevel=1,thislevel=1):"Recursive function for building an organization collaboration network"results=get_collaborators(seed,thislevel)time.sleep(1)print("--"*thislevel,seed," :: level =",thislevel)ifthislevel<maxlevel:# remove the originating grid-id
- gridslist=list(results[results['id']!=GRIDID]['id'])
- next_level_results=[recursive_network(x,maxlevel,thislevel+1)forxingridslist]
+ orgslist=list(results[results['id']!=ORGID]['id'])
+ next_level_results=[recursive_network(x,maxlevel,thislevel+1)forxinorgslist]next_level_results=pd.concat(next_level_results)results=pd.concat([results,next_level_results])returnresults
@@ -1718,7 +1710,7 @@
What if we want to show a collaboration network focusing only on ‘government’ organizations?
-
That’s pretty easy to do, since the GRID database includes information about organization types. We can easily see what types are available using the API and a facet query:
+
That’s pretty easy to do, since the organization data set includes information about organization types. We can easily see what types are available using the API and a facet query:
[9]:
@@ -2021,8 +2013,8 @@
5. Addendum: showing only ‘Government’ collaborators