Skip to content

Instantly share code, notes, and snippets.

@psychemedia
Created June 30, 2018 00:56
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save psychemedia/add1b29d5597e8c271d4454dff6e279c to your computer and use it in GitHub Desktop.
Save psychemedia/add1b29d5597e8c271d4454dff6e279c to your computer and use it in GitHub Desktop.
Example of some geo queries using spatialite and foodgovuk data
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 50,
"metadata": {},
"outputs": [],
"source": [
"import oifsa, sqlite3"
]
},
{
"cell_type": "code",
"execution_count": 51,
"metadata": {},
"outputs": [],
"source": [
"dbname='adminboundaries.db'\n",
"conn = sqlite3.connect(dbname)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [],
"source": [
"#Handy utility function\n",
"def droptable(conn,table):\n",
" cursor = conn.cursor()\n",
" cursor.execute('''DROP TABLE IF EXISTS {}'''.format(table))\n",
" conn.commit()"
]
},
{
"cell_type": "code",
"execution_count": 54,
"metadata": {},
"outputs": [],
"source": [
"table = 'foodratings'\n",
"#droptable(conn,table)"
]
},
{
"cell_type": "code",
"execution_count": 30,
"metadata": {},
"outputs": [],
"source": [
"#wight /via http://ratings.food.gov.uk/open-data/en-GB\n",
"url='http://ratings.food.gov.uk/OpenDataFiles/FHRS867en-GB.xml'\n",
"\n",
"oifsa.save_fsa_data(url, conn, table, delay=1)"
]
},
{
"cell_type": "code",
"execution_count": 31,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r\n",
"BEGIN;\r\n",
"SELECT AddGeometryColumn('foodratings', 'Geometry', 4326, 'POINT', 2);\r\n",
"UPDATE foodratings SET Geometry = GeomFromText('POINT('||\"Longitude\"||' '||\"Latitude\"||')',4326);\r\n",
"COMMIT;\r\n"
]
}
],
"source": [
"addPointFromLatLon ='''\n",
"BEGIN;\n",
"SELECT AddGeometryColumn('{table}', 'Geometry', 4326, 'POINT', 2);\n",
"UPDATE {table} SET Geometry = GeomFromText('POINT('||\"Longitude\"||' '||\"Latitude\"||')',4326);\n",
"COMMIT;\n",
"'''.format(table=table)\n",
"\n",
"with open(\"addpointFromLatLon.sql\", \"w\") as sqlfile:\n",
" sqlfile.write(addPointFromLatLon)\n",
" \n",
"!cat addpointFromLatLon.sql"
]
},
{
"cell_type": "code",
"execution_count": 32,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"SpatiaLite version ..: 4.3.0a\tSupported Extensions:\n",
"\t- 'VirtualShape'\t[direct Shapefile access]\n",
"\t- 'VirtualDbf'\t\t[direct DBF access]\n",
"\t- 'VirtualXL'\t\t[direct XLS access]\n",
"\t- 'VirtualText'\t\t[direct CSV/TXT access]\n",
"\t- 'VirtualNetwork'\t[Dijkstra shortest path]\n",
"\t- 'RTree'\t\t[Spatial Index - R*Tree]\n",
"\t- 'MbrCache'\t\t[Spatial Index - MBR cache]\n",
"\t- 'VirtualSpatialIndex'\t[R*Tree metahandler]\n",
"\t- 'VirtualElementary'\t[ElemGeoms metahandler]\n",
"\t- 'VirtualXPath'\t[XML Path Language - XPath]\n",
"\t- 'VirtualFDO'\t\t[FDO-OGR interoperability]\n",
"\t- 'VirtualGPKG'\t[OGC GeoPackage interoperability]\n",
"\t- 'VirtualBBox'\t\t[BoundingBox tables]\n",
"\t- 'SpatiaLite'\t\t[Spatial SQL - OGC]\n",
"PROJ.4 version ......: Rel. 5.1.0, June 1st, 2018\n",
"GEOS version ........: 3.6.2-CAPI-1.10.2 4d2925d6\n",
"TARGET CPU ..........: x86_64-apple-darwin17.3.0\n",
"1\n",
"\n"
]
}
],
"source": [
"! spatialite adminboundaries.db \".read addpointFromLatLon.sql utf-8\""
]
},
{
"cell_type": "code",
"execution_count": 67,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"\r\n",
"BEGIN;\r\n",
"--ALTER TABLE foodratings ADD COLUMN osgb geometry(Geometry, 27700);\r\n",
"SELECT AddGeometryColumn('foodratings', 'osgb', 27700, 'POINT', 2);\r\n",
"UPDATE foodratings SET osgb = ST_Transform(Geometry, 27700);\r\n",
"COMMIT;\r\n"
]
}
],
"source": [
"osgbfromlatlon='''\n",
"BEGIN;\n",
"SELECT AddGeometryColumn('{table}', 'osgb', 27700, 'POINT', 2);\n",
"UPDATE {table} SET osgb = ST_Transform(Geometry, 27700);\n",
"COMMIT;\n",
"'''.format(table=table)\n",
"\n",
"with open(\"osgbfromlatlon.sql\", \"w\") as sqlfile:\n",
" sqlfile.write(osgbfromlatlon)\n",
"!cat osgbfromlatlon.sql"
]
},
{
"cell_type": "code",
"execution_count": 68,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"SpatiaLite version ..: 4.3.0a\tSupported Extensions:\n",
"\t- 'VirtualShape'\t[direct Shapefile access]\n",
"\t- 'VirtualDbf'\t\t[direct DBF access]\n",
"\t- 'VirtualXL'\t\t[direct XLS access]\n",
"\t- 'VirtualText'\t\t[direct CSV/TXT access]\n",
"\t- 'VirtualNetwork'\t[Dijkstra shortest path]\n",
"\t- 'RTree'\t\t[Spatial Index - R*Tree]\n",
"\t- 'MbrCache'\t\t[Spatial Index - MBR cache]\n",
"\t- 'VirtualSpatialIndex'\t[R*Tree metahandler]\n",
"\t- 'VirtualElementary'\t[ElemGeoms metahandler]\n",
"\t- 'VirtualXPath'\t[XML Path Language - XPath]\n",
"\t- 'VirtualFDO'\t\t[FDO-OGR interoperability]\n",
"\t- 'VirtualGPKG'\t[OGC GeoPackage interoperability]\n",
"\t- 'VirtualBBox'\t\t[BoundingBox tables]\n",
"\t- 'SpatiaLite'\t\t[Spatial SQL - OGC]\n",
"PROJ.4 version ......: Rel. 5.1.0, June 1st, 2018\n",
"GEOS version ........: 3.6.2-CAPI-1.10.2 4d2925d6\n",
"TARGET CPU ..........: x86_64-apple-darwin17.3.0\n",
"1\n",
"\n"
]
}
],
"source": [
"! spatialite adminboundaries.db \".read osgbfromlatlon.sql utf-8\""
]
},
{
"cell_type": "code",
"execution_count": 48,
"metadata": {},
"outputs": [],
"source": [
"! spatialite adminboundaries.db \"SELECT CreateSpatialIndex('parish_region', 'Geometry');\""
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": false
},
"outputs": [],
"source": [
"import requests, json\n",
"\n",
"def get_geojson_q( q=None,json_url = \"http://localhost:8001/adminboundaries.json\"): \n",
" params = {'sql': q}\n",
" \n",
" r = requests.get(json_url, params=params)\n",
" results = r.json()\n",
"\n",
" tmp = {r[0]:[r[1:-1]+[json.loads(r[-1])]] for r in results['rows']}\n",
" return tmp\n",
"\n",
"q='SELECT FHRSID, BusinessName, BusinessType, BusinessTypeID, RatingValue, AsGeoJSON(Geometry) FROM {} WHERE Geometry IS NOT NULL;'.format(table)\n",
"\n",
"gj=get_geojson_q(q, \"http://localhost:8003/adminboundaries.json\")"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"select BusinessName, AsGeoJSON(foodratings.Geometry) from foodratings, parish_region WHERE parish_region.NAME LIKE '%Arreton%' AND foodratings.Geometry NOT NULL AND within(foodratings.Geometry, parish_region.wgs84) ;"
]
},
{
"cell_type": "raw",
"metadata": {},
"source": [
"#do a quick text against the index\n",
"SELECT * FROM \n",
" (SELECT FHRSID, p.wgs84, f.Geometry FROM \n",
" (SELECT FHRSID, Geometry, X(osgb) x, Y(osgb) y \n",
" FROM foodratings WHERE Geometry NOT NULL) f ,\n",
" parish_region p, idx_parish_region_geometry i\n",
" WHERE p.NAME LIKE '%Arreton%' AND p.pk_uid= i.pkid AND \n",
" i.xmin < f.x and i.xmax > f.x and i.ymin < f.y and i.ymax > f.y) fr ;"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"#now use that inside a query to find within the actual shape"
]
},
{
"cell_type": "code",
"execution_count": 73,
"metadata": {},
"outputs": [],
"source": [
"q='''\n",
"SELECT BusinessName, BusinessType, AsGeoJSON(Geometry) FROM \n",
" (SELECT FHRSID, p.wgs84, f.Geometry, f.BusinessName, f.BusinessType FROM \n",
" (SELECT FHRSID, Geometry, X(osgb) x, Y(osgb) y, BusinessName, BusinessType\n",
" FROM foodratings WHERE Geometry NOT NULL) f ,\n",
" parish_region p, idx_parish_region_geometry i\n",
" WHERE p.NAME LIKE '%Arreton%' AND p.pk_uid= i.pkid AND \n",
" i.xmin < f.x and i.xmax > f.x and i.ymin < f.y and i.ymax > f.y) fr\n",
" WHERE within(Geometry, wgs84) ;\n",
"'''"
]
},
{
"cell_type": "code",
"execution_count": 74,
"metadata": {},
"outputs": [],
"source": [
"import requests\n",
"\n",
"params = {'sql': q}\n",
"json_url = \"http://localhost:8003/adminboundaries.json\"\n",
"\n",
"r = requests.get(json_url, params=params)\n",
"results = r.json()"
]
},
{
"cell_type": "code",
"execution_count": 75,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'database': 'adminboundaries',\n",
" 'rows': [['Amazon World',\n",
" 'Restaurant/Cafe/Canteen',\n",
" '{\"type\":\"Point\",\"coordinates\":[-1.21882903575897,50.6552581787109]}'],\n",
" ['Arreton Community Centre',\n",
" 'Other catering premises',\n",
" '{\"type\":\"Point\",\"coordinates\":[-1.24153304100037,50.67551422119139]}'],\n",
" ['Arreton Manor Guest House',\n",
" 'Hotel/bed & breakfast/guest house',\n",
" '{\"type\":\"Point\",\"coordinates\":[-1.24636101722717,50.6780624389648]}'],\n",
" ['Arreton Post Office',\n",
" 'Retailers - other',\n",
" '{\"type\":\"Point\",\"coordinates\":[-1.23434901237488,50.6716728210449]}'],\n",
" ['Blackwater Mill Residential Home',\n",
" 'Hospitals/Childcare/Caring Premises',\n",
" '{\"type\":\"Point\",\"coordinates\":[-1.285486,50.673022]}'],\n",
" ['Caterlink - Arreton St Georges CofE Primary School',\n",
" 'School/college/university',\n",
" '{\"type\":\"Point\",\"coordinates\":[-1.24153304100037,50.67551422119139]}'],\n",
" ['Egg Packing Station',\n",
" 'Manufacturers/packers',\n",
" '{\"type\":\"Point\",\"coordinates\":[-1.23272597789764,50.65320968627929]}'],\n",
" [\"Farmer Jack's Farm Shop\",\n",
" 'Retailers - other',\n",
" '{\"type\":\"Point\",\"coordinates\":[-1.246361,50.67806399999999]}'],\n",
" ['Naturezones Wildlife Education Trust',\n",
" 'Restaurant/Cafe/Canteen',\n",
" '{\"type\":\"Point\",\"coordinates\":[-1.28188856496417,50.66936417171749]}'],\n",
" ['NCCG Trading Ltd',\n",
" 'Restaurant/Cafe/Canteen',\n",
" '{\"type\":\"Point\",\"coordinates\":[-1.28424096107483,50.67769241333009]}'],\n",
" ['Newstone Farm Shop',\n",
" 'Retailers - other',\n",
" '{\"type\":\"Point\",\"coordinates\":[-1.28206,50.673136]}'],\n",
" [\"Pink's\",\n",
" 'Distributors/Transporters',\n",
" '{\"type\":\"Point\",\"coordinates\":[-1.24723601341248,50.66578674316409]}'],\n",
" ['Redway Farm Bed & Breakfast',\n",
" 'Hotel/bed & breakfast/guest house',\n",
" '{\"type\":\"Point\",\"coordinates\":[-1.24533402919769,50.66086196899409]}'],\n",
" ['St Georges Pre-School & Nursery',\n",
" 'Hospitals/Childcare/Caring Premises',\n",
" '{\"type\":\"Point\",\"coordinates\":[-1.24153304100037,50.67551422119139]}'],\n",
" ['Sweet Memories',\n",
" 'Retailers - other',\n",
" '{\"type\":\"Point\",\"coordinates\":[-1.24636101722717,50.6780624389648]}'],\n",
" [\"The Dairyman's Daughter\",\n",
" 'Pub/bar/nightclub',\n",
" '{\"type\":\"Point\",\"coordinates\":[-1.24636101722717,50.6780624389648]}'],\n",
" ['The Fighting Cocks',\n",
" 'Pub/bar/nightclub',\n",
" '{\"type\":\"Point\",\"coordinates\":[-1.22725796699524,50.6580009460449]}'],\n",
" ['The Garden Cafe',\n",
" 'Restaurant/Cafe/Canteen',\n",
" '{\"type\":\"Point\",\"coordinates\":[-1.218829,50.65525699999999]}'],\n",
" ['The White Lion',\n",
" 'Pub/bar/nightclub',\n",
" '{\"type\":\"Point\",\"coordinates\":[-1.24636101722717,50.6780624389648]}'],\n",
" ['Wight Salads Group Ltd',\n",
" 'Farmers/growers',\n",
" '{\"type\":\"Point\",\"coordinates\":[-1.22725796699524,50.6580009460449]}']],\n",
" 'truncated': False,\n",
" 'columns': ['BusinessName', 'BusinessType', 'AsGeoJSON(Geometry)'],\n",
" 'query': {'sql': \"\\nSELECT BusinessName, BusinessType, AsGeoJSON(Geometry) FROM \\n (SELECT FHRSID, p.wgs84, f.Geometry, f.BusinessName, f.BusinessType FROM \\n (SELECT FHRSID, Geometry, X(osgb) x, Y(osgb) y, BusinessName, BusinessType\\n FROM foodratings WHERE Geometry NOT NULL) f ,\\n parish_region p, idx_parish_region_geometry i\\n WHERE p.NAME LIKE '%Arreton%' AND p.pk_uid= i.pkid AND \\n i.xmin < f.x and i.xmax > f.x and i.ymin < f.y and i.ymax > f.y) fr\\n WHERE within(Geometry, wgs84) ;\\n\",\n",
" 'params': {}},\n",
" 'query_ms': 10.701179504394531}"
]
},
"execution_count": 75,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"results"
]
},
{
"cell_type": "code",
"execution_count": 110,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVMgPSBmYWxzZTsgTF9OT19UT1VDSCA9IGZhbHNlOyBMX0RJU0FCTEVfM0QgPSBmYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIgLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC5taW4uY3NzIiAvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLXRoZW1lLm1pbi5jc3MiIC8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIgLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuY3NzIiAvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3Jhd2dpdC5jb20vcHl0aG9uLXZpc3VhbGl6YXRpb24vZm9saXVtL21hc3Rlci9mb2xpdW0vdGVtcGxhdGVzL2xlYWZsZXQuYXdlc29tZS5yb3RhdGUuY3NzIiAvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgICAgICAgICA8c3R5bGU+ICNtYXBfNzExNTE5NjkxMGY4NGYwOTgwYjc1MjNiZGZjZjViYjggewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogMTAwLjAlOwogICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAuMCU7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgIAogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2xlYWZsZXQubWFya2VyY2x1c3Rlci8xLjEuMC9sZWFmbGV0Lm1hcmtlcmNsdXN0ZXIuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9sZWFmbGV0Lm1hcmtlcmNsdXN0ZXIvMS4xLjAvTWFya2VyQ2x1c3Rlci5jc3MiIC8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2xlYWZsZXQubWFya2VyY2x1c3Rlci8xLjEuMC9NYXJrZXJDbHVzdGVyLkRlZmF1bHQuY3NzIiAvPgo8L2hlYWQ+Cjxib2R5PiAgICAKICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwXzcxMTUxOTY5MTBmODRmMDk4MGI3NTIzYmRmY2Y1YmI4IiA+PC9kaXY+CiAgICAgICAgCjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGJvdW5kcyA9IG51bGw7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgdmFyIG1hcF83MTE1MTk2OTEwZjg0ZjA5ODBiNzUyM2JkZmNmNWJiOCA9IEwubWFwKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcF83MTE1MTk2OTEwZjg0ZjA5ODBiNzUyM2JkZmNmNWJiOCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2VudGVyOiBbNTAuNjU1MjU4MTc4NzEwOSwtMS4yMTg4MjkwMzU3NTg5N10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6b29tOiAxMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heEJvdW5kczogYm91bmRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXJzOiBbXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHRpbGVfbGF5ZXJfYjgyNTY1MDA1NGQyNDJhMThlZTU2YmMzYTQ1MjAxYjEgPSBMLnRpbGVMYXllcigKICAgICAgICAgICAgICAgICdodHRwczovL3tzfS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgICAgICAgICB7CiAgImF0dHJpYnV0aW9uIjogbnVsbCwKICAiZGV0ZWN0UmV0aW5hIjogZmFsc2UsCiAgIm1heFpvb20iOiAxOCwKICAibWluWm9vbSI6IDEsCiAgIm5vV3JhcCI6IGZhbHNlLAogICJzdWJkb21haW5zIjogImFiYyIKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNzExNTE5NjkxMGY4NGYwOTgwYjc1MjNiZGZjZjViYjgpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfY2x1c3Rlcl8zYWQ3ZmQ4MDMyZTg0NzAwOWU0ZjY1ZjA2MTMxMjNkYiA9IEwubWFya2VyQ2x1c3Rlckdyb3VwKHsKICAgICAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKICAgICAgICAgICAgbWFwXzcxMTUxOTY5MTBmODRmMDk4MGI3NTIzYmRmY2Y1YmI4LmFkZExheWVyKG1hcmtlcl9jbHVzdGVyXzNhZDdmZDgwMzJlODQ3MDA5ZTRmNjVmMDYxMzEyM2RiKTsKICAgICAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfMGFhYjhiZGIyYWIxNDI2NmJiZTI0MDZiYmE4N2Q5ZWMgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs1MC42NTUyNTgxNzg3MTA5LC0xLjIxODgyOTAzNTc1ODk3XSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl8zYWQ3ZmQ4MDMyZTg0NzAwOWU0ZjY1ZjA2MTMxMjNkYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85OGVjZDk0ODg4NDU0M2I3YTVmYjE3OTcxYzQ4ZGM1NiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85ZDg1YmRlOTU0NjE0NDg2YWYyYzE4Zjg5ODE0OTExMSA9ICQoJzxkaXYgaWQ9Imh0bWxfOWQ4NWJkZTk1NDYxNDQ4NmFmMmMxOGY4OTgxNDkxMTEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkFtYXpvbiBXb3JsZDxici8+UmVzdGF1cmFudC9DYWZlL0NhbnRlZW48L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzk4ZWNkOTQ4ODg0NTQzYjdhNWZiMTc5NzFjNDhkYzU2LnNldENvbnRlbnQoaHRtbF85ZDg1YmRlOTU0NjE0NDg2YWYyYzE4Zjg5ODE0OTExMSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgbWFya2VyXzBhYWI4YmRiMmFiMTQyNjZiYmUyNDA2YmJhODdkOWVjLmJpbmRQb3B1cChwb3B1cF85OGVjZDk0ODg4NDU0M2I3YTVmYjE3OTcxYzQ4ZGM1Nik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl9kMjI0MGUzMDQzNTI0MDg5YTEzMjM1MThlOGYyNjE2ZSA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzUwLjY3NTUxNDIyMTE5MTM5LC0xLjI0MTUzMzA0MTAwMDM3XSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl8zYWQ3ZmQ4MDMyZTg0NzAwOWU0ZjY1ZjA2MTMxMjNkYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9mNjkwZWM4MTJhN2E0YjIyOTU4MWQ3YTNhMWQ5N2Q0MiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84N2ZjZGJlNjZmMzM0MjIxOTU5ZGIxMzY2MGQzOWY5OSA9ICQoJzxkaXYgaWQ9Imh0bWxfODdmY2RiZTY2ZjMzNDIyMTk1OWRiMTM2NjBkMzlmOTkiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkFycmV0b24gQ29tbXVuaXR5IENlbnRyZTxici8+T3RoZXIgY2F0ZXJpbmcgcHJlbWlzZXM8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2Y2OTBlYzgxMmE3YTRiMjI5NTgxZDdhM2ExZDk3ZDQyLnNldENvbnRlbnQoaHRtbF84N2ZjZGJlNjZmMzM0MjIxOTU5ZGIxMzY2MGQzOWY5OSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgbWFya2VyX2QyMjQwZTMwNDM1MjQwODlhMTMyMzUxOGU4ZjI2MTZlLmJpbmRQb3B1cChwb3B1cF9mNjkwZWM4MTJhN2E0YjIyOTU4MWQ3YTNhMWQ5N2Q0Mik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl9iYmE5MThmMmY4YzI0MmMyOTVhYjBiZDUxNjk1YThiZiA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzUwLjY3ODA2MjQzODk2NDgsLTEuMjQ2MzYxMDE3MjI3MTddLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzNhZDdmZDgwMzJlODQ3MDA5ZTRmNjVmMDYxMzEyM2RiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzhiMWRjYTZiMWUxOTRkODBhZmExN2VhN2YwZjJjOTk0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2UxY2Y1YmMxM2MwMTQ3YmRiNWE4ZDcwMTBlY2MxNWQwID0gJCgnPGRpdiBpZD0iaHRtbF9lMWNmNWJjMTNjMDE0N2JkYjVhOGQ3MDEwZWNjMTVkMCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+QXJyZXRvbiBNYW5vciBHdWVzdCBIb3VzZTxici8+SG90ZWwvYmVkICZhbXA7IGJyZWFrZmFzdC9ndWVzdCBob3VzZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOGIxZGNhNmIxZTE5NGQ4MGFmYTE3ZWE3ZjBmMmM5OTQuc2V0Q29udGVudChodG1sX2UxY2Y1YmMxM2MwMTQ3YmRiNWE4ZDcwMTBlY2MxNWQwKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfYmJhOTE4ZjJmOGMyNDJjMjk1YWIwYmQ1MTY5NWE4YmYuYmluZFBvcHVwKHBvcHVwXzhiMWRjYTZiMWUxOTRkODBhZmExN2VhN2YwZjJjOTk0KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzkwZTYwNzU1NDFhYzRlYzc4ODUzOTU2YjgyODhkNTM3ID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTAuNjcxNjcyODIxMDQ0OSwtMS4yMzQzNDkwMTIzNzQ4OF0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfM2FkN2ZkODAzMmU4NDcwMDllNGY2NWYwNjEzMTIzZGIpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOTRlNDM4ZTlmMzRjNDVkMThlMjhhMzQzNmY1OWI0YWEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNDQxNjlmMzUyZGE3NGM5Mzg1MjcyMDk5MTdjODU1NWYgPSAkKCc8ZGl2IGlkPSJodG1sXzQ0MTY5ZjM1MmRhNzRjOTM4NTI3MjA5OTE3Yzg1NTVmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5BcnJldG9uIFBvc3QgT2ZmaWNlPGJyLz5SZXRhaWxlcnMgLSBvdGhlcjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOTRlNDM4ZTlmMzRjNDVkMThlMjhhMzQzNmY1OWI0YWEuc2V0Q29udGVudChodG1sXzQ0MTY5ZjM1MmRhNzRjOTM4NTI3MjA5OTE3Yzg1NTVmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfOTBlNjA3NTU0MWFjNGVjNzg4NTM5NTZiODI4OGQ1MzcuYmluZFBvcHVwKHBvcHVwXzk0ZTQzOGU5ZjM0YzQ1ZDE4ZTI4YTM0MzZmNTliNGFhKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzZmY2IxMGJiNmI5NDRhNzE4NmM0NjQwMjBjZWViOTRiID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTAuNjczMDIyLC0xLjI4NTQ4Nl0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfM2FkN2ZkODAzMmU4NDcwMDllNGY2NWYwNjEzMTIzZGIpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMWQxZTdkODFkMzA1NGZmODkwNGQyYjBmYzZlOWI4YzQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZmZlMmZiZjQ0YjcwNDE5OWI3OWFjOTY0MjFiNTk4ZmIgPSAkKCc8ZGl2IGlkPSJodG1sX2ZmZTJmYmY0NGI3MDQxOTliNzlhYzk2NDIxYjU5OGZiIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5CbGFja3dhdGVyIE1pbGwgUmVzaWRlbnRpYWwgSG9tZTxici8+SG9zcGl0YWxzL0NoaWxkY2FyZS9DYXJpbmcgUHJlbWlzZXM8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzFkMWU3ZDgxZDMwNTRmZjg5MDRkMmIwZmM2ZTliOGM0LnNldENvbnRlbnQoaHRtbF9mZmUyZmJmNDRiNzA0MTk5Yjc5YWM5NjQyMWI1OThmYik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgbWFya2VyXzZmY2IxMGJiNmI5NDRhNzE4NmM0NjQwMjBjZWViOTRiLmJpbmRQb3B1cChwb3B1cF8xZDFlN2Q4MWQzMDU0ZmY4OTA0ZDJiMGZjNmU5YjhjNCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl84ODYzOTUxYjliNjc0MzRjYWI5YzNhNDIwOTRhNWEyYSA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzUwLjY3NTUxNDIyMTE5MTM5LC0xLjI0MTUzMzA0MTAwMDM3XSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl8zYWQ3ZmQ4MDMyZTg0NzAwOWU0ZjY1ZjA2MTMxMjNkYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF80MjVlZDljOWJhYTU0Yzc1YmMxZDI2ZTk2NGI1ZTYyNCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iZWFkNjY2MTY0Yzc0YWVhYjMwYjAzMGI3YjMxZDllNiA9ICQoJzxkaXYgaWQ9Imh0bWxfYmVhZDY2NjE2NGM3NGFlYWIzMGIwMzBiN2IzMWQ5ZTYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNhdGVybGluayAtIEFycmV0b24gU3QgR2VvcmdlcyBDb2ZFIFByaW1hcnkgU2Nob29sPGJyLz5TY2hvb2wvY29sbGVnZS91bml2ZXJzaXR5PC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80MjVlZDljOWJhYTU0Yzc1YmMxZDI2ZTk2NGI1ZTYyNC5zZXRDb250ZW50KGh0bWxfYmVhZDY2NjE2NGM3NGFlYWIzMGIwMzBiN2IzMWQ5ZTYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl84ODYzOTUxYjliNjc0MzRjYWI5YzNhNDIwOTRhNWEyYS5iaW5kUG9wdXAocG9wdXBfNDI1ZWQ5YzliYWE1NGM3NWJjMWQyNmU5NjRiNWU2MjQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfNDA3Yjg2Mjc0YjdlNDZkZDg3ZDRjNDIyYzNlZDRjMzEgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs1MC42NTMyMDk2ODYyNzkyOSwtMS4yMzI3MjU5Nzc4OTc2NF0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfM2FkN2ZkODAzMmU4NDcwMDllNGY2NWYwNjEzMTIzZGIpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMzgxMDVhNTI4ZjU3NDdmN2JlMjIwMzhmYzIwYjM5MDUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNTcxYTU2YmM0NmYxNGFkNjgzZmRmMTU1NThkZGZmNjYgPSAkKCc8ZGl2IGlkPSJodG1sXzU3MWE1NmJjNDZmMTRhZDY4M2ZkZjE1NTU4ZGRmZjY2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5FZ2cgUGFja2luZyBTdGF0aW9uPGJyLz5NYW51ZmFjdHVyZXJzL3BhY2tlcnM8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzM4MTA1YTUyOGY1NzQ3ZjdiZTIyMDM4ZmMyMGIzOTA1LnNldENvbnRlbnQoaHRtbF81NzFhNTZiYzQ2ZjE0YWQ2ODNmZGYxNTU1OGRkZmY2Nik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgbWFya2VyXzQwN2I4NjI3NGI3ZTQ2ZGQ4N2Q0YzQyMmMzZWQ0YzMxLmJpbmRQb3B1cChwb3B1cF8zODEwNWE1MjhmNTc0N2Y3YmUyMjAzOGZjMjBiMzkwNSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl9hODdiYjdkNDgwMjY0ZDUwYjM5MTFlZWRiYTFjYjM2YiA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzUwLjY3ODA2Mzk5OTk5OTk5LC0xLjI0NjM2MV0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfM2FkN2ZkODAzMmU4NDcwMDllNGY2NWYwNjEzMTIzZGIpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOWYyODMwY2UxOTM1NDY1ZmIzMWFkODQyYmE5MmRkNTMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMTlhOTZiYWVmMzBjNDMwYWJmOGM1YjBjMmIyMmQ5ZTAgPSAkKCc8ZGl2IGlkPSJodG1sXzE5YTk2YmFlZjMwYzQzMGFiZjhjNWIwYzJiMjJkOWUwIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5GYXJtZXIgSmFjayYjeDI3O3MgRmFybSBTaG9wPGJyLz5SZXRhaWxlcnMgLSBvdGhlcjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOWYyODMwY2UxOTM1NDY1ZmIzMWFkODQyYmE5MmRkNTMuc2V0Q29udGVudChodG1sXzE5YTk2YmFlZjMwYzQzMGFiZjhjNWIwYzJiMjJkOWUwKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfYTg3YmI3ZDQ4MDI2NGQ1MGIzOTExZWVkYmExY2IzNmIuYmluZFBvcHVwKHBvcHVwXzlmMjgzMGNlMTkzNTQ2NWZiMzFhZDg0MmJhOTJkZDUzKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzZkYjAyNWUxZjNiZDRkOGQ4ZjlhYWQ2ZjA3NzY1YzM1ID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTAuNjY5MzY0MTcxNzE3NDksLTEuMjgxODg4NTY0OTY0MTddLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzNhZDdmZDgwMzJlODQ3MDA5ZTRmNjVmMDYxMzEyM2RiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzY3NzU4Y2VmYjEyMjRiYmJhNWIxOTAyZDU1ZmRlMzg1ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzhmNjgxYmMwN2I1ZjRlNDhiNGMxNjZjZmUwNmE2YjczID0gJCgnPGRpdiBpZD0iaHRtbF84ZjY4MWJjMDdiNWY0ZTQ4YjRjMTY2Y2ZlMDZhNmI3MyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TmF0dXJlem9uZXMgV2lsZGxpZmUgRWR1Y2F0aW9uIFRydXN0PGJyLz5SZXN0YXVyYW50L0NhZmUvQ2FudGVlbjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNjc3NThjZWZiMTIyNGJiYmE1YjE5MDJkNTVmZGUzODUuc2V0Q29udGVudChodG1sXzhmNjgxYmMwN2I1ZjRlNDhiNGMxNjZjZmUwNmE2YjczKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfNmRiMDI1ZTFmM2JkNGQ4ZDhmOWFhZDZmMDc3NjVjMzUuYmluZFBvcHVwKHBvcHVwXzY3NzU4Y2VmYjEyMjRiYmJhNWIxOTAyZDU1ZmRlMzg1KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzViNWY1MGI4ODIxNjRiYTY5YTdjOTlhNTVmNmFiNjFkID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTAuNjc3NjkyNDEzMzMwMDksLTEuMjg0MjQwOTYxMDc0ODNdLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzNhZDdmZDgwMzJlODQ3MDA5ZTRmNjVmMDYxMzEyM2RiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2U4ZDlkNDIyN2RiZjQ5OTc5ZDIxOTUyNmNiNWVhZWNmID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2NmZTdjZmY4YTBlNTQzNzM4ZGY0NTczYWIzOGYyMmM5ID0gJCgnPGRpdiBpZD0iaHRtbF9jZmU3Y2ZmOGEwZTU0MzczOGRmNDU3M2FiMzhmMjJjOSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TkNDRyBUcmFkaW5nIEx0ZDxici8+UmVzdGF1cmFudC9DYWZlL0NhbnRlZW48L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2U4ZDlkNDIyN2RiZjQ5OTc5ZDIxOTUyNmNiNWVhZWNmLnNldENvbnRlbnQoaHRtbF9jZmU3Y2ZmOGEwZTU0MzczOGRmNDU3M2FiMzhmMjJjOSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgbWFya2VyXzViNWY1MGI4ODIxNjRiYTY5YTdjOTlhNTVmNmFiNjFkLmJpbmRQb3B1cChwb3B1cF9lOGQ5ZDQyMjdkYmY0OTk3OWQyMTk1MjZjYjVlYWVjZik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl81M2FiZjZiMTNkMmQ0N2E5YTc1NDZlNjViYWQ4OWYzNSA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzUwLjY3MzEzNiwtMS4yODIwNl0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfM2FkN2ZkODAzMmU4NDcwMDllNGY2NWYwNjEzMTIzZGIpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZjI4MmU0YWIwNTI0NGY3OTg4NDQ0ZTU0NjZhNzE2YzkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZGI4ZjBhMmVmZTM1NDhiMGE5M2Y2ZDAwOGVmOTk0ZWYgPSAkKCc8ZGl2IGlkPSJodG1sX2RiOGYwYTJlZmUzNTQ4YjBhOTNmNmQwMDhlZjk5NGVmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5OZXdzdG9uZSBGYXJtIFNob3A8YnIvPlJldGFpbGVycyAtIG90aGVyPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9mMjgyZTRhYjA1MjQ0Zjc5ODg0NDRlNTQ2NmE3MTZjOS5zZXRDb250ZW50KGh0bWxfZGI4ZjBhMmVmZTM1NDhiMGE5M2Y2ZDAwOGVmOTk0ZWYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl81M2FiZjZiMTNkMmQ0N2E5YTc1NDZlNjViYWQ4OWYzNS5iaW5kUG9wdXAocG9wdXBfZjI4MmU0YWIwNTI0NGY3OTg4NDQ0ZTU0NjZhNzE2YzkpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfMWE4YTA5NDgxYmEyNDgwY2E0M2I0MDJlYzdkMTEyYTkgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs1MC42NjU3ODY3NDMxNjQwOSwtMS4yNDcyMzYwMTM0MTI0OF0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfM2FkN2ZkODAzMmU4NDcwMDllNGY2NWYwNjEzMTIzZGIpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYzBhZmUxODYzYjE4NDlkNDgwZjNkZDI5OTg5YTYyNjcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYmE3NjIzYjZlMzQwNDA1NjgwNDZhODllZjBjNzIwZmQgPSAkKCc8ZGl2IGlkPSJodG1sX2JhNzYyM2I2ZTM0MDQwNTY4MDQ2YTg5ZWYwYzcyMGZkIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5QaW5rJiN4Mjc7czxici8+RGlzdHJpYnV0b3JzL1RyYW5zcG9ydGVyczwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYzBhZmUxODYzYjE4NDlkNDgwZjNkZDI5OTg5YTYyNjcuc2V0Q29udGVudChodG1sX2JhNzYyM2I2ZTM0MDQwNTY4MDQ2YTg5ZWYwYzcyMGZkKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfMWE4YTA5NDgxYmEyNDgwY2E0M2I0MDJlYzdkMTEyYTkuYmluZFBvcHVwKHBvcHVwX2MwYWZlMTg2M2IxODQ5ZDQ4MGYzZGQyOTk4OWE2MjY3KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzM3ZTljZmMwZDczNzQxZTBiODI1MGJhMjc0Y2M2NDEzID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTAuNjYwODYxOTY4OTk0MDksLTEuMjQ1MzM0MDI5MTk3NjldLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzNhZDdmZDgwMzJlODQ3MDA5ZTRmNjVmMDYxMzEyM2RiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2JlNDgxOGZjMWM1YjRmNjc4ZjgwYTBkMzUyOTU1N2VlID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzIzZmE5OTI0MTRkYjRiMzViMDc1YTZiNTI3MzkwNmY5ID0gJCgnPGRpdiBpZD0iaHRtbF8yM2ZhOTkyNDE0ZGI0YjM1YjA3NWE2YjUyNzM5MDZmOSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+UmVkd2F5IEZhcm0gQmVkICZhbXA7IEJyZWFrZmFzdDxici8+SG90ZWwvYmVkICZhbXA7IGJyZWFrZmFzdC9ndWVzdCBob3VzZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYmU0ODE4ZmMxYzViNGY2NzhmODBhMGQzNTI5NTU3ZWUuc2V0Q29udGVudChodG1sXzIzZmE5OTI0MTRkYjRiMzViMDc1YTZiNTI3MzkwNmY5KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfMzdlOWNmYzBkNzM3NDFlMGI4MjUwYmEyNzRjYzY0MTMuYmluZFBvcHVwKHBvcHVwX2JlNDgxOGZjMWM1YjRmNjc4ZjgwYTBkMzUyOTU1N2VlKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyX2ExMzc3NDM0ODMyODQxZjliNjE4YzRiMzIzOWVhN2M4ID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTAuNjc1NTE0MjIxMTkxMzksLTEuMjQxNTMzMDQxMDAwMzddLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzNhZDdmZDgwMzJlODQ3MDA5ZTRmNjVmMDYxMzEyM2RiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzQ0MWFhOTUxY2IzYTRkMTA4NWMzNDYwMGUxNDQ3ZmM3ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzg2YTEzOTkyMDRlMDQ1YmZhN2I3ZTZiZDUxZGMyYjM4ID0gJCgnPGRpdiBpZD0iaHRtbF84NmExMzk5MjA0ZTA0NWJmYTdiN2U2YmQ1MWRjMmIzOCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+U3QgR2VvcmdlcyBQcmUtU2Nob29sICZhbXA7IE51cnNlcnk8YnIvPkhvc3BpdGFscy9DaGlsZGNhcmUvQ2FyaW5nIFByZW1pc2VzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80NDFhYTk1MWNiM2E0ZDEwODVjMzQ2MDBlMTQ0N2ZjNy5zZXRDb250ZW50KGh0bWxfODZhMTM5OTIwNGUwNDViZmE3YjdlNmJkNTFkYzJiMzgpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl9hMTM3NzQzNDgzMjg0MWY5YjYxOGM0YjMyMzllYTdjOC5iaW5kUG9wdXAocG9wdXBfNDQxYWE5NTFjYjNhNGQxMDg1YzM0NjAwZTE0NDdmYzcpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfNWVkZTc1NGQ0Y2VmNGRkNTkyNWY0YzgzYjlhZWE1OWUgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs1MC42NzgwNjI0Mzg5NjQ4LC0xLjI0NjM2MTAxNzIyNzE3XSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXJrZXJfY2x1c3Rlcl8zYWQ3ZmQ4MDMyZTg0NzAwOWU0ZjY1ZjA2MTMxMjNkYik7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83NWI5ZmIyNzNkMTE0OWFiOTcyZWExNGRlNTg4NDZlNiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF82ODVmZjkwMjc3Mjk0ZGNjYmRlYjY3ZGUwMDFiYjRhMyA9ICQoJzxkaXYgaWQ9Imh0bWxfNjg1ZmY5MDI3NzI5NGRjY2JkZWI2N2RlMDAxYmI0YTMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlN3ZWV0IE1lbW9yaWVzPGJyLz5SZXRhaWxlcnMgLSBvdGhlcjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNzViOWZiMjczZDExNDlhYjk3MmVhMTRkZTU4ODQ2ZTYuc2V0Q29udGVudChodG1sXzY4NWZmOTAyNzcyOTRkY2NiZGViNjdkZTAwMWJiNGEzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfNWVkZTc1NGQ0Y2VmNGRkNTkyNWY0YzgzYjlhZWE1OWUuYmluZFBvcHVwKHBvcHVwXzc1YjlmYjI3M2QxMTQ5YWI5NzJlYTE0ZGU1ODg0NmU2KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyX2JiZWYyYTk1YTBhZTRjYmVhMDE1Y2FjOTQ0ZGZkYWYwID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTAuNjc4MDYyNDM4OTY0OCwtMS4yNDYzNjEwMTcyMjcxN10sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfM2FkN2ZkODAzMmU4NDcwMDllNGY2NWYwNjEzMTIzZGIpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOGE5MWM2N2E5ZjRhNDJkMWEwYmRmZWVjZjQxMTk1ZGQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNDMyZTA4YjNiNDU2NGQxNWJjNjFmNGFhMTM0ZjFkMzkgPSAkKCc8ZGl2IGlkPSJodG1sXzQzMmUwOGIzYjQ1NjRkMTViYzYxZjRhYTEzNGYxZDM5IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5UaGUgRGFpcnltYW4mI3gyNztzIERhdWdodGVyPGJyLz5QdWIvYmFyL25pZ2h0Y2x1YjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOGE5MWM2N2E5ZjRhNDJkMWEwYmRmZWVjZjQxMTk1ZGQuc2V0Q29udGVudChodG1sXzQzMmUwOGIzYjQ1NjRkMTViYzYxZjRhYTEzNGYxZDM5KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfYmJlZjJhOTVhMGFlNGNiZWEwMTVjYWM5NDRkZmRhZjAuYmluZFBvcHVwKHBvcHVwXzhhOTFjNjdhOWY0YTQyZDFhMGJkZmVlY2Y0MTE5NWRkKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzgzMDg4ZTc5MjdhMzQ5NmY5ZWY2OTVlNjY5YWNkZWVlID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTAuNjU4MDAwOTQ2MDQ0OSwtMS4yMjcyNTc5NjY5OTUyNF0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfM2FkN2ZkODAzMmU4NDcwMDllNGY2NWYwNjEzMTIzZGIpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZDFkMmI1OTZjOTk2NDQwN2EwYmJmZWYwYmY3MmNkNGQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMjg3OTNiNjBhZmJiNDUzZTkwNWYyZWYxOTcwMGRjZjkgPSAkKCc8ZGl2IGlkPSJodG1sXzI4NzkzYjYwYWZiYjQ1M2U5MDVmMmVmMTk3MDBkY2Y5IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5UaGUgRmlnaHRpbmcgQ29ja3M8YnIvPlB1Yi9iYXIvbmlnaHRjbHViPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9kMWQyYjU5NmM5OTY0NDA3YTBiYmZlZjBiZjcyY2Q0ZC5zZXRDb250ZW50KGh0bWxfMjg3OTNiNjBhZmJiNDUzZTkwNWYyZWYxOTcwMGRjZjkpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl84MzA4OGU3OTI3YTM0OTZmOWVmNjk1ZTY2OWFjZGVlZS5iaW5kUG9wdXAocG9wdXBfZDFkMmI1OTZjOTk2NDQwN2EwYmJmZWYwYmY3MmNkNGQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfNDY1M2YxYTlmZWUyNDRkZmI4ZDdlYTFjZmY2NDkxMzUgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs1MC42NTUyNTY5OTk5OTk5OSwtMS4yMTg4MjldLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzNhZDdmZDgwMzJlODQ3MDA5ZTRmNjVmMDYxMzEyM2RiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzFkOWU3MmU0ZmFiZjQ4ZTFhYjdlZjBmZDhlNDAyMjM4ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2FiMmQyYTYxMzUzMzQxYWRiNWE5ODIzNDIyMzNlOGUyID0gJCgnPGRpdiBpZD0iaHRtbF9hYjJkMmE2MTM1MzM0MWFkYjVhOTgyMzQyMjMzZThlMiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+VGhlIEdhcmRlbiBDYWZlPGJyLz5SZXN0YXVyYW50L0NhZmUvQ2FudGVlbjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMWQ5ZTcyZTRmYWJmNDhlMWFiN2VmMGZkOGU0MDIyMzguc2V0Q29udGVudChodG1sX2FiMmQyYTYxMzUzMzQxYWRiNWE5ODIzNDIyMzNlOGUyKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfNDY1M2YxYTlmZWUyNDRkZmI4ZDdlYTFjZmY2NDkxMzUuYmluZFBvcHVwKHBvcHVwXzFkOWU3MmU0ZmFiZjQ4ZTFhYjdlZjBmZDhlNDAyMjM4KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzJmNzRmNjZiY2ZkYTRmZTM5MWMwZDM3MmQ1Njc0ZmY3ID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTAuNjc4MDYyNDM4OTY0OCwtMS4yNDYzNjEwMTcyMjcxN10sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFya2VyX2NsdXN0ZXJfM2FkN2ZkODAzMmU4NDcwMDllNGY2NWYwNjEzMTIzZGIpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMGUwNDE1ZDM0NzhlNDAyNjk2MjYxNTkzYTk0ZGYzNzcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMTFlYjk0Y2ZmZDI5NDg3YTgzODgzZjE1ODA3ZWVmNTcgPSAkKCc8ZGl2IGlkPSJodG1sXzExZWI5NGNmZmQyOTQ4N2E4Mzg4M2YxNTgwN2VlZjU3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5UaGUgV2hpdGUgTGlvbjxici8+UHViL2Jhci9uaWdodGNsdWI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzBlMDQxNWQzNDc4ZTQwMjY5NjI2MTU5M2E5NGRmMzc3LnNldENvbnRlbnQoaHRtbF8xMWViOTRjZmZkMjk0ODdhODM4ODNmMTU4MDdlZWY1Nyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgbWFya2VyXzJmNzRmNjZiY2ZkYTRmZTM5MWMwZDM3MmQ1Njc0ZmY3LmJpbmRQb3B1cChwb3B1cF8wZTA0MTVkMzQ3OGU0MDI2OTYyNjE1OTNhOTRkZjM3Nyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl9hNTZkZWQ0YWE2M2Q0ODk3OGVjZGE5MGU0MWY2OWU1OSA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzUwLjY1ODAwMDk0NjA0NDksLTEuMjI3MjU3OTY2OTk1MjRdLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzNhZDdmZDgwMzJlODQ3MDA5ZTRmNjVmMDYxMzEyM2RiKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzA0ZWVlYjA4MWI0ZDQyYTE5YzlkOGY2ZmM2ODEzYTUwID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzJkYWYwYzZkM2UzNDQwZTliNWU3NzVlNzQ2NjQzY2FlID0gJCgnPGRpdiBpZD0iaHRtbF8yZGFmMGM2ZDNlMzQ0MGU5YjVlNzc1ZTc0NjY0M2NhZSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+V2lnaHQgU2FsYWRzIEdyb3VwIEx0ZDxici8+RmFybWVycy9ncm93ZXJzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8wNGVlZWIwODFiNGQ0MmExOWM5ZDhmNmZjNjgxM2E1MC5zZXRDb250ZW50KGh0bWxfMmRhZjBjNmQzZTM0NDBlOWI1ZTc3NWU3NDY2NDNjYWUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl9hNTZkZWQ0YWE2M2Q0ODk3OGVjZGE5MGU0MWY2OWU1OS5iaW5kUG9wdXAocG9wdXBfMDRlZWViMDgxYjRkNDJhMTljOWQ4ZjZmYzY4MTNhNTApOwoKICAgICAgICAgICAgCiAgICAgICAgCjwvc2NyaXB0Pg==\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
],
"text/plain": [
"<folium.folium.Map at 0x113c1fa20>"
]
},
"execution_count": 110,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"import json\n",
"import folium\n",
"import html\n",
"from folium.plugins import MarkerCluster\n",
"\n",
"center=json.loads(results['rows'][0][2])['coordinates']\n",
"m=folium.Map(location=center[::-1], zoom_start=12)\n",
"\n",
"mc = MarkerCluster()\n",
"\n",
"for result in results['rows']:\n",
" name=result[0]\n",
" typ=result[1]\n",
" loc=json.loads(result[2])['coordinates'][::-1]\n",
" #folium.Marker(loc, popup='{}<br/>{}'.format(html.escape(name),html.escape(typ) )).add_to(m)\n",
" mc.add_child(folium.Marker(location=loc,\n",
" popup='{}<br/>{}'.format(html.escape(name),html.escape(typ))))\n",
"\n",
"m.add_child(mc)\n",
"m"
]
},
{
"cell_type": "code",
"execution_count": 99,
"metadata": {},
"outputs": [],
"source": [
"def get_geojson(region_type, region, county=None, code=None,\n",
" col='wgs84',json_url = \"http://localhost:8001/adminboundaries.json\"):\n",
" \n",
" q='SELECT AsGeoJSON({col}) FROM {table} WHERE name LIKE \"%{region}%\"'.format(col=col,table=region_type,region=region)\n",
" \n",
" if county is not None: q='{} AND FILE_NAME LIKE \"%{}%\"'.format(q, county)\n",
" if code is not None: q='{} AND CODE LIKE \"%{}%\"'.format(q, code)\n",
" \n",
" params = {'sql': q}\n",
" #for example: SELECT AsGeoJSON(wgs84) FROM district_borough_unitary_region WHERE name LIKE \"%wight%\" \n",
" r = requests.get(json_url, params=params)\n",
" results = r.json()\n",
" return json.loads(results['rows'][0][0])"
]
},
{
"cell_type": "code",
"execution_count": 124,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVMgPSBmYWxzZTsgTF9OT19UT1VDSCA9IGZhbHNlOyBMX0RJU0FCTEVfM0QgPSBmYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIgLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC5taW4uY3NzIiAvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLXRoZW1lLm1pbi5jc3MiIC8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIgLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuY3NzIiAvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3Jhd2dpdC5jb20vcHl0aG9uLXZpc3VhbGl6YXRpb24vZm9saXVtL21hc3Rlci9mb2xpdW0vdGVtcGxhdGVzL2xlYWZsZXQuYXdlc29tZS5yb3RhdGUuY3NzIiAvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgICAgICAgICA8c3R5bGU+ICNtYXBfM2U4MjQ3MzIzZTBkNDk5NDk1MWNkYmE3MThjMzRiZTEgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogMTAwLjAlOwogICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAuMCU7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgIAo8L2hlYWQ+Cjxib2R5PiAgICAKICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwXzNlODI0NzMyM2UwZDQ5OTQ5NTFjZGJhNzE4YzM0YmUxIiA+PC9kaXY+CiAgICAgICAgCjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGJvdW5kcyA9IG51bGw7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgdmFyIG1hcF8zZTgyNDczMjNlMGQ0OTk0OTUxY2RiYTcxOGMzNGJlMSA9IEwubWFwKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcF8zZTgyNDczMjNlMGQ0OTk0OTUxY2RiYTcxOGMzNGJlMScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2VudGVyOiBbNTAuNjU1MjU4MTc4NzEwOSwtMS4yMTg4MjkwMzU3NTg5N10sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6b29tOiAxMiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heEJvdW5kczogYm91bmRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXJzOiBbXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHRpbGVfbGF5ZXJfNmZmMzEwZTJjMThmNDZmZTk1YThiMmEzY2NmYjI1YzcgPSBMLnRpbGVMYXllcigKICAgICAgICAgICAgICAgICdodHRwczovL3tzfS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgICAgICAgICB7CiAgImF0dHJpYnV0aW9uIjogbnVsbCwKICAiZGV0ZWN0UmV0aW5hIjogZmFsc2UsCiAgIm1heFpvb20iOiAxOCwKICAibWluWm9vbSI6IDEsCiAgIm5vV3JhcCI6IGZhbHNlLAogICJzdWJkb21haW5zIjogImFiYyIKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfM2U4MjQ3MzIzZTBkNDk5NDk1MWNkYmE3MThjMzRiZTEpOwogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzQ3Zjc3ZmExYmEzYTQyNzY4YTVjMTQ3YzBhYTk4ZDE2ID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTAuNjU1NzExNzcxMDAzODQ0LC0xLjIxOTAzMjAyOTI0NjM4MjNdLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zZTgyNDczMjNlMGQ0OTk0OTUxY2RiYTcxOGMzNGJlMSk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84OTE4ZWQ0MmE0Mjg0YmI3OGM4ZGZjMWUwNjcxMTg5NiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF82MGI3ZWM2ZjY2YmY0ZWIyYTI4NmVkZmE1YTRhODEyMyA9ICQoJzxkaXYgaWQ9Imh0bWxfNjBiN2VjNmY2NmJmNGViMmEyODZlZGZhNWE0YTgxMjMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkFtYXpvbiBXb3JsZDxici8+UmVzdGF1cmFudC9DYWZlL0NhbnRlZW48L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzg5MThlZDQyYTQyODRiYjc4YzhkZmMxZTA2NzExODk2LnNldENvbnRlbnQoaHRtbF82MGI3ZWM2ZjY2YmY0ZWIyYTI4NmVkZmE1YTRhODEyMyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgbWFya2VyXzQ3Zjc3ZmExYmEzYTQyNzY4YTVjMTQ3YzBhYTk4ZDE2LmJpbmRQb3B1cChwb3B1cF84OTE4ZWQ0MmE0Mjg0YmI3OGM4ZGZjMWUwNjcxMTg5Nik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl84ZTQ4M2U3ZGIzMDI0YjQ3OGViYTRiNmQ5Yjc5ZWI0MCA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzUwLjY3NTI2MDU4Njc2NTE4NCwtMS4yNDE0OTYxMTYyMjA0OTI1XSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2U4MjQ3MzIzZTBkNDk5NDk1MWNkYmE3MThjMzRiZTEpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMmUxNGYxYmRiMWY4NDY5Mjg5ZmE1Y2QwMjA3NTEwNWUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOWUxZjkzYzQyYWU5NDAwMGI5ZjhjNWI1YjYzN2QyNzYgPSAkKCc8ZGl2IGlkPSJodG1sXzllMWY5M2M0MmFlOTQwMDBiOWY4YzViNWI2MzdkMjc2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5BcnJldG9uIENvbW11bml0eSBDZW50cmU8YnIvPk90aGVyIGNhdGVyaW5nIHByZW1pc2VzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8yZTE0ZjFiZGIxZjg0NjkyODlmYTVjZDAyMDc1MTA1ZS5zZXRDb250ZW50KGh0bWxfOWUxZjkzYzQyYWU5NDAwMGI5ZjhjNWI1YjYzN2QyNzYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl84ZTQ4M2U3ZGIzMDI0YjQ3OGViYTRiNmQ5Yjc5ZWI0MC5iaW5kUG9wdXAocG9wdXBfMmUxNGYxYmRiMWY4NDY5Mjg5ZmE1Y2QwMjA3NTEwNWUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfYTY4YzFlNzMzOGZkNDQyMDgyMWEyNWI2OGQ2YWI0ZDUgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs1MC42NzgzMzI2ODU5MTUwMywtMS4yNDU5OTk0MDc3OTY3NzY0XSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2U4MjQ3MzIzZTBkNDk5NDk1MWNkYmE3MThjMzRiZTEpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYzllZjNiNTNhZDRjNGQ0N2JjODg3NWNjMjdjOTVhNDUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfODBlN2QzODllNDU5NGU2OWIwYzIzZTFiM2NiYzIwMTcgPSAkKCc8ZGl2IGlkPSJodG1sXzgwZTdkMzg5ZTQ1OTRlNjliMGMyM2UxYjNjYmMyMDE3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5BcnJldG9uIE1hbm9yIEd1ZXN0IEhvdXNlPGJyLz5Ib3RlbC9iZWQgJmFtcDsgYnJlYWtmYXN0L2d1ZXN0IGhvdXNlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jOWVmM2I1M2FkNGM0ZDQ3YmM4ODc1Y2MyN2M5NWE0NS5zZXRDb250ZW50KGh0bWxfODBlN2QzODllNDU5NGU2OWIwYzIzZTFiM2NiYzIwMTcpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl9hNjhjMWU3MzM4ZmQ0NDIwODIxYTI1YjY4ZDZhYjRkNS5iaW5kUG9wdXAocG9wdXBfYzllZjNiNTNhZDRjNGQ0N2JjODg3NWNjMjdjOTVhNDUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfZmYyNDc5YTEyNjg5NDlmYjlkYzhiZjJiYzZiM2NiODEgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs1MC42NzE3MDAxNzA4MjMxNDQsLTEuMjMzODcwOTQ2MjY3NDQyOV0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNlODI0NzMyM2UwZDQ5OTQ5NTFjZGJhNzE4YzM0YmUxKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2VkYzNiNmIyNjYzZjQ3NWQ5ODczZDhmM2FlZThiZTcyID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzFlOWY5ZWJjMDVmZDQyMjk4ZmI0OTAwMzBiZTZkZjMwID0gJCgnPGRpdiBpZD0iaHRtbF8xZTlmOWViYzA1ZmQ0MjI5OGZiNDkwMDMwYmU2ZGYzMCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+QXJyZXRvbiBQb3N0IE9mZmljZTxici8+UmV0YWlsZXJzIC0gb3RoZXI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2VkYzNiNmIyNjYzZjQ3NWQ5ODczZDhmM2FlZThiZTcyLnNldENvbnRlbnQoaHRtbF8xZTlmOWViYzA1ZmQ0MjI5OGZiNDkwMDMwYmU2ZGYzMCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgbWFya2VyX2ZmMjQ3OWExMjY4OTQ5ZmI5ZGM4YmYyYmM2YjNjYjgxLmJpbmRQb3B1cChwb3B1cF9lZGMzYjZiMjY2M2Y0NzVkOTg3M2Q4ZjNhZWU4YmU3Mik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl9lYTkyY2RlMGUyNDE0NTZlOWI3OWM3OGI1YzQzNGU3YSA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzUwLjY3MjcyODgwNDE3MTY3LC0xLjI4NTk1MjYxNTIxMDA5MDldLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zZTgyNDczMjNlMGQ0OTk0OTUxY2RiYTcxOGMzNGJlMSk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81YmY2Nzg2NWQ5NDI0YmNiOTQzYzM5ZTliNzRmYjYwMyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9jNjUxY2E3OTI5OWQ0YTM4OWViZWI1YzNlYjUzYTc1YSA9ICQoJzxkaXYgaWQ9Imh0bWxfYzY1MWNhNzkyOTlkNGEzODllYmViNWMzZWI1M2E3NWEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJsYWNrd2F0ZXIgTWlsbCBSZXNpZGVudGlhbCBIb21lPGJyLz5Ib3NwaXRhbHMvQ2hpbGRjYXJlL0NhcmluZyBQcmVtaXNlczwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNWJmNjc4NjVkOTQyNGJjYjk0M2MzOWU5Yjc0ZmI2MDMuc2V0Q29udGVudChodG1sX2M2NTFjYTc5Mjk5ZDRhMzg5ZWJlYjVjM2ViNTNhNzVhKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfZWE5MmNkZTBlMjQxNDU2ZTliNzljNzhiNWM0MzRlN2EuYmluZFBvcHVwKHBvcHVwXzViZjY3ODY1ZDk0MjRiY2I5NDNjMzllOWI3NGZiNjAzKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyX2NhNDg1NDM5ZDkzNzQ5YzVhZTc0ODk2OGIyMjZkOThhID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTAuNjc1NDcwMzUyNTc1MTk2LC0xLjI0MTcyNDE5MDIzMDY1NjZdLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zZTgyNDczMjNlMGQ0OTk0OTUxY2RiYTcxOGMzNGJlMSk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82NDZjZWFmZDBmNDk0YTNmOWFkZWU1ODMwMWZkYzlmMSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9jMDA5OTFhOWMwYTA0YjRkOTUyNzQwZGU2N2ZhNmFlNCA9ICQoJzxkaXYgaWQ9Imh0bWxfYzAwOTkxYTljMGEwNGI0ZDk1Mjc0MGRlNjdmYTZhZTQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNhdGVybGluayAtIEFycmV0b24gU3QgR2VvcmdlcyBDb2ZFIFByaW1hcnkgU2Nob29sPGJyLz5TY2hvb2wvY29sbGVnZS91bml2ZXJzaXR5PC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82NDZjZWFmZDBmNDk0YTNmOWFkZWU1ODMwMWZkYzlmMS5zZXRDb250ZW50KGh0bWxfYzAwOTkxYTljMGEwNGI0ZDk1Mjc0MGRlNjdmYTZhZTQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl9jYTQ4NTQzOWQ5Mzc0OWM1YWU3NDg5NjhiMjI2ZDk4YS5iaW5kUG9wdXAocG9wdXBfNjQ2Y2VhZmQwZjQ5NGEzZjlhZGVlNTgzMDFmZGM5ZjEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfMDRhZGYzMmRmMDU3NDRlNjgzYzdmNWJjNzdkZWUwZmUgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs1MC42NTM0MDU3MjQ5ODMyNDQsLTEuMjMzMDE3NDE5MTExNzc4NF0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNlODI0NzMyM2UwZDQ5OTQ5NTFjZGJhNzE4YzM0YmUxKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzZlYjhjMTFlYzZiODRkMjM4NWVmMzViY2NiYzU1NmQzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzRlNTU2MjE4ZTA4YTQzNjU4YjAzMzVjZjhhNDhlOTQwID0gJCgnPGRpdiBpZD0iaHRtbF80ZTU1NjIxOGUwOGE0MzY1OGIwMzM1Y2Y4YTQ4ZTk0MCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+RWdnIFBhY2tpbmcgU3RhdGlvbjxici8+TWFudWZhY3R1cmVycy9wYWNrZXJzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82ZWI4YzExZWM2Yjg0ZDIzODVlZjM1YmNjYmM1NTZkMy5zZXRDb250ZW50KGh0bWxfNGU1NTYyMThlMDhhNDM2NThiMDMzNWNmOGE0OGU5NDApOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl8wNGFkZjMyZGYwNTc0NGU2ODNjN2Y1YmM3N2RlZTBmZS5iaW5kUG9wdXAocG9wdXBfNmViOGMxMWVjNmI4NGQyMzg1ZWYzNWJjY2JjNTU2ZDMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfNjY3NWYwMjBlY2YwNDk5YjlmNzhiZTljZTJmNWVkYTMgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs1MC42Nzg0ODU5NDUyNjM4OTQsLTEuMjQ2ODA4MTg5NTA4OTE2NV0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNlODI0NzMyM2UwZDQ5OTQ5NTFjZGJhNzE4YzM0YmUxKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzg2YjYxOTllZWMzNDQxYzJhNDI3NzViOTMwYjc4ZWY0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2E5Njk1NzQxNzU3OTQwMWY4NjU5YzkzN2ZhYjEzNmU3ID0gJCgnPGRpdiBpZD0iaHRtbF9hOTY5NTc0MTc1Nzk0MDFmODY1OWM5MzdmYWIxMzZlNyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+RmFybWVyIEphY2smI3gyNztzIEZhcm0gU2hvcDxici8+UmV0YWlsZXJzIC0gb3RoZXI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzg2YjYxOTllZWMzNDQxYzJhNDI3NzViOTMwYjc4ZWY0LnNldENvbnRlbnQoaHRtbF9hOTY5NTc0MTc1Nzk0MDFmODY1OWM5MzdmYWIxMzZlNyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgbWFya2VyXzY2NzVmMDIwZWNmMDQ5OWI5Zjc4YmU5Y2UyZjVlZGEzLmJpbmRQb3B1cChwb3B1cF84NmI2MTk5ZWVjMzQ0MWMyYTQyNzc1YjkzMGI3OGVmNCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl9hNWJlOWZhOWZlYTY0MWQ4YmZhYTNkM2YwZDE1MmQzMiA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzUwLjY2OTY3NDkzOTY4NzYzLC0xLjI4MTg3MTcyNDAzNjc5ODVdLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zZTgyNDczMjNlMGQ0OTk0OTUxY2RiYTcxOGMzNGJlMSk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9lMmMyYWU0OTNkNDA0OWZjYTQ5NDU4MmU1NDQ0MjE1NSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8yMmJiYzgxOWI5MTM0YWE0ODMyYTUxNDg3NDcyM2IzOSA9ICQoJzxkaXYgaWQ9Imh0bWxfMjJiYmM4MTliOTEzNGFhNDgzMmE1MTQ4NzQ3MjNiMzkiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk5hdHVyZXpvbmVzIFdpbGRsaWZlIEVkdWNhdGlvbiBUcnVzdDxici8+UmVzdGF1cmFudC9DYWZlL0NhbnRlZW48L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2UyYzJhZTQ5M2Q0MDQ5ZmNhNDk0NTgyZTU0NDQyMTU1LnNldENvbnRlbnQoaHRtbF8yMmJiYzgxOWI5MTM0YWE0ODMyYTUxNDg3NDcyM2IzOSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgbWFya2VyX2E1YmU5ZmE5ZmVhNjQxZDhiZmFhM2QzZjBkMTUyZDMyLmJpbmRQb3B1cChwb3B1cF9lMmMyYWU0OTNkNDA0OWZjYTQ5NDU4MmU1NDQ0MjE1NSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl9kZWU4NWRjN2ViNGU0YWNhODQwYzRmYTQ0YTg1MmNlMyA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzUwLjY3ODE0OTQ4NjQ0Njk1NSwtMS4yODQzNjUyMjU0NDY1OTk0XSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2U4MjQ3MzIzZTBkNDk5NDk1MWNkYmE3MThjMzRiZTEpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfODY1YzU0MzhhNzBlNDg2MjllNzlkOWQ2Yzc2MjY5YjAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMTcwNjExYTdhOGZmNGFmYWJmNDRiYWIyZGVmZDFiNTIgPSAkKCc8ZGl2IGlkPSJodG1sXzE3MDYxMWE3YThmZjRhZmFiZjQ0YmFiMmRlZmQxYjUyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5OQ0NHIFRyYWRpbmcgTHRkPGJyLz5SZXN0YXVyYW50L0NhZmUvQ2FudGVlbjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfODY1YzU0MzhhNzBlNDg2MjllNzlkOWQ2Yzc2MjY5YjAuc2V0Q29udGVudChodG1sXzE3MDYxMWE3YThmZjRhZmFiZjQ0YmFiMmRlZmQxYjUyKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfZGVlODVkYzdlYjRlNGFjYTg0MGM0ZmE0NGE4NTJjZTMuYmluZFBvcHVwKHBvcHVwXzg2NWM1NDM4YTcwZTQ4NjI5ZTc5ZDlkNmM3NjI2OWIwKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyX2E5ZWQ4MGNkNjI2YjQ0OTc5ZDE4NDkwZmRlODA5Y2ZkID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTAuNjczNDc3NzY2ODc1MDMsLTEuMjgxNzQ3OTQ0MzYwMzY1XSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2U4MjQ3MzIzZTBkNDk5NDk1MWNkYmE3MThjMzRiZTEpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNTUwZDYyYmZhN2YzNDIxYWJkOTZmODgzN2JhYzczZWMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMDc1OGMwZmEwZTA5NDgwZmJmOGM5MDFmMjQ0OGE0ZDIgPSAkKCc8ZGl2IGlkPSJodG1sXzA3NThjMGZhMGUwOTQ4MGZiZjhjOTAxZjI0NDhhNGQyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5OZXdzdG9uZSBGYXJtIFNob3A8YnIvPlJldGFpbGVycyAtIG90aGVyPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF81NTBkNjJiZmE3ZjM0MjFhYmQ5NmY4ODM3YmFjNzNlYy5zZXRDb250ZW50KGh0bWxfMDc1OGMwZmEwZTA5NDgwZmJmOGM5MDFmMjQ0OGE0ZDIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl9hOWVkODBjZDYyNmI0NDk3OWQxODQ5MGZkZTgwOWNmZC5iaW5kUG9wdXAocG9wdXBfNTUwZDYyYmZhN2YzNDIxYWJkOTZmODgzN2JhYzczZWMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfMTIxM2FkNDMxMzczNGVlYWE5MDdiOWI5NWJiZDE2NWYgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs1MC42NjU4OTMyMjk3NTg4NiwtMS4yNDY3NDI4ODMzOTA5MDQ5XSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2U4MjQ3MzIzZTBkNDk5NDk1MWNkYmE3MThjMzRiZTEpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNTE1YTQ1YTgzNzk5NDg1MWE1ZTBiM2JiNmE4MjI3ZmIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNWI0ZmIxMGFjNmM4NGM2Y2FjMzE0ZGU5ZmVhMTRlMjYgPSAkKCc8ZGl2IGlkPSJodG1sXzViNGZiMTBhYzZjODRjNmNhYzMxNGRlOWZlYTE0ZTI2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5QaW5rJiN4Mjc7czxici8+RGlzdHJpYnV0b3JzL1RyYW5zcG9ydGVyczwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNTE1YTQ1YTgzNzk5NDg1MWE1ZTBiM2JiNmE4MjI3ZmIuc2V0Q29udGVudChodG1sXzViNGZiMTBhYzZjODRjNmNhYzMxNGRlOWZlYTE0ZTI2KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfMTIxM2FkNDMxMzczNGVlYWE5MDdiOWI5NWJiZDE2NWYuYmluZFBvcHVwKHBvcHVwXzUxNWE0NWE4Mzc5OTQ4NTFhNWUwYjNiYjZhODIyN2ZiKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzk0YWMwYTIyYzFlYjRkYmE5ZThlMTczODJjM2QzZTAzID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTAuNjYwOTA0OTIxMDE0MTMsLTEuMjQ1NjI2NTA1NzE3MDkxXSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2U4MjQ3MzIzZTBkNDk5NDk1MWNkYmE3MThjMzRiZTEpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNmQ2NGEyZTNmNTQ0NGJhM2FhMDRjM2I3ZGJjODJiNWIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNzU0MDM4ZjQ3NDM0NDliMzkyYzY5MWZmZjg1ZWY5ZmIgPSAkKCc8ZGl2IGlkPSJodG1sXzc1NDAzOGY0NzQzNDQ5YjM5MmM2OTFmZmY4NWVmOWZiIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5SZWR3YXkgRmFybSBCZWQgJmFtcDsgQnJlYWtmYXN0PGJyLz5Ib3RlbC9iZWQgJmFtcDsgYnJlYWtmYXN0L2d1ZXN0IGhvdXNlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82ZDY0YTJlM2Y1NDQ0YmEzYWEwNGMzYjdkYmM4MmI1Yi5zZXRDb250ZW50KGh0bWxfNzU0MDM4ZjQ3NDM0NDliMzkyYzY5MWZmZjg1ZWY5ZmIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl85NGFjMGEyMmMxZWI0ZGJhOWU4ZTE3MzgyYzNkM2UwMy5iaW5kUG9wdXAocG9wdXBfNmQ2NGEyZTNmNTQ0NGJhM2FhMDRjM2I3ZGJjODJiNWIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfNjc5ZDlmNDkxNjc3NGQ5Y2IzYjRjZGUzZjg0MGFkMGUgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs1MC42NzUxNzYzMzM4MjU2OCwtMS4yNDExMjY1OTAwMjk1Mzc2XSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2U4MjQ3MzIzZTBkNDk5NDk1MWNkYmE3MThjMzRiZTEpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZTE4ZDM4NzczN2QyNDkxY2ExMzRlODRhY2I4NGY5YjEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOWNjMzBmYTYxYTc2NDBjNjg2YWQ2ZDc3MGRmMzU3ZGUgPSAkKCc8ZGl2IGlkPSJodG1sXzljYzMwZmE2MWE3NjQwYzY4NmFkNmQ3NzBkZjM1N2RlIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5TdCBHZW9yZ2VzIFByZS1TY2hvb2wgJmFtcDsgTnVyc2VyeTxici8+SG9zcGl0YWxzL0NoaWxkY2FyZS9DYXJpbmcgUHJlbWlzZXM8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2UxOGQzODc3MzdkMjQ5MWNhMTM0ZTg0YWNiODRmOWIxLnNldENvbnRlbnQoaHRtbF85Y2MzMGZhNjFhNzY0MGM2ODZhZDZkNzcwZGYzNTdkZSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgbWFya2VyXzY3OWQ5ZjQ5MTY3NzRkOWNiM2I0Y2RlM2Y4NDBhZDBlLmJpbmRQb3B1cChwb3B1cF9lMThkMzg3NzM3ZDI0OTFjYTEzNGU4NGFjYjg0ZjliMSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAoKICAgICAgICAgICAgdmFyIG1hcmtlcl85MmM2NjcxODcyNmQ0ZGIzYmQxYjI3MGI1NjRhYTc2ZSA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzUwLjY3ODM0MTY1OTE4NTQ5LC0xLjI0NjEzMjgxODkwNzI2MTZdLAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpCiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zZTgyNDczMjNlMGQ0OTk0OTUxY2RiYTcxOGMzNGJlMSk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85N2VmZWVjYTRmNzE0YjEwOGEwNTcwN2JlMjI0ODk5MCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9jYWE3ODA2M2U2OWY0NzhlOTc4MGNkMTM2Zjk3YjY2YiA9ICQoJzxkaXYgaWQ9Imh0bWxfY2FhNzgwNjNlNjlmNDc4ZTk3ODBjZDEzNmY5N2I2NmIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlN3ZWV0IE1lbW9yaWVzPGJyLz5SZXRhaWxlcnMgLSBvdGhlcjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOTdlZmVlY2E0ZjcxNGIxMDhhMDU3MDdiZTIyNDg5OTAuc2V0Q29udGVudChodG1sX2NhYTc4MDYzZTY5ZjQ3OGU5NzgwY2QxMzZmOTdiNjZiKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfOTJjNjY3MTg3MjZkNGRiM2JkMWIyNzBiNTY0YWE3NmUuYmluZFBvcHVwKHBvcHVwXzk3ZWZlZWNhNGY3MTRiMTA4YTA1NzA3YmUyMjQ4OTkwKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzFmZjcwMjlmODExNTQ1MDU5ZmU0ZWVkYzQyYzczNmJlID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTAuNjc3NTY1MDM0MjUyNjIsLTEuMjQ2MTQ5ODEwMjY3NjE4XSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2U4MjQ3MzIzZTBkNDk5NDk1MWNkYmE3MThjMzRiZTEpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZDAzYjk5NzdiZGZmNGY1YmI0ZWRjMWEyOTBjNzhlMDEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMWQyYWVhM2FkMGU1NDgzMWEzMzJiYjgyZjI4YWYzZDggPSAkKCc8ZGl2IGlkPSJodG1sXzFkMmFlYTNhZDBlNTQ4MzFhMzMyYmI4MmYyOGFmM2Q4IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5UaGUgRGFpcnltYW4mI3gyNztzIERhdWdodGVyPGJyLz5QdWIvYmFyL25pZ2h0Y2x1YjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZDAzYjk5NzdiZGZmNGY1YmI0ZWRjMWEyOTBjNzhlMDEuc2V0Q29udGVudChodG1sXzFkMmFlYTNhZDBlNTQ4MzFhMzMyYmI4MmYyOGFmM2Q4KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfMWZmNzAyOWY4MTE1NDUwNTlmZTRlZWRjNDJjNzM2YmUuYmluZFBvcHVwKHBvcHVwX2QwM2I5OTc3YmRmZjRmNWJiNGVkYzFhMjkwYzc4ZTAxKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyX2Q2ZWE3NWU5ZjBjMTRkY2E5YmFlZTA5NjE3MGM2NTg4ID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTAuNjU3NTk5ODYzNTc1NzYsLTEuMjI3MDM0NTQyNjA0MDc1XSwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2U4MjQ3MzIzZTBkNDk5NDk1MWNkYmE3MThjMzRiZTEpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNWQzZmFiZjI5OWJiNDI3ZThlNzA2ZDUxYTViMTQ0MjAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYzEyMjFjNzNmMGEzNDQ0NGIyMmUwNzMzNzBjNTg0ZDcgPSAkKCc8ZGl2IGlkPSJodG1sX2MxMjIxYzczZjBhMzQ0NDRiMjJlMDczMzcwYzU4NGQ3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5UaGUgRmlnaHRpbmcgQ29ja3M8YnIvPlB1Yi9iYXIvbmlnaHRjbHViPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF81ZDNmYWJmMjk5YmI0MjdlOGU3MDZkNTFhNWIxNDQyMC5zZXRDb250ZW50KGh0bWxfYzEyMjFjNzNmMGEzNDQ0NGIyMmUwNzMzNzBjNTg0ZDcpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl9kNmVhNzVlOWYwYzE0ZGNhOWJhZWUwOTYxNzBjNjU4OC5iaW5kUG9wdXAocG9wdXBfNWQzZmFiZjI5OWJiNDI3ZThlNzA2ZDUxYTViMTQ0MjApOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfM2UzNDQxNmQzNzUyNDA0MzhmYmY0MjMyMDVhYzM4MTMgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs1MC42NTU3MTcwOTU4MzI3MDYsLTEuMjE4ODE5NjA1NTQ5ODI0NF0sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNlODI0NzMyM2UwZDQ5OTQ5NTFjZGJhNzE4YzM0YmUxKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzY2YjIxOWExNjk1NjQwNTg5ZTdhOTYwNWE0NWE1MjVkID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzlmN2U1ODQyYWZiYjQxYzY5YTNiMTQ0Mzc2YTYyNzcyID0gJCgnPGRpdiBpZD0iaHRtbF85ZjdlNTg0MmFmYmI0MWM2OWEzYjE0NDM3NmE2Mjc3MiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+VGhlIEdhcmRlbiBDYWZlPGJyLz5SZXN0YXVyYW50L0NhZmUvQ2FudGVlbjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNjZiMjE5YTE2OTU2NDA1ODllN2E5NjA1YTQ1YTUyNWQuc2V0Q29udGVudChodG1sXzlmN2U1ODQyYWZiYjQxYzY5YTNiMTQ0Mzc2YTYyNzcyKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfM2UzNDQxNmQzNzUyNDA0MzhmYmY0MjMyMDVhYzM4MTMuYmluZFBvcHVwKHBvcHVwXzY2YjIxOWExNjk1NjQwNTg5ZTdhOTYwNWE0NWE1MjVkKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCgogICAgICAgICAgICB2YXIgbWFya2VyXzA2YmIxMzU4MDI3ZjQzOWVhNDFjOTg0ZDc1MTFjMzFmID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTAuNjc3NjY0NDA4Njg5OTMsLTEuMjQ2NjE0ODgwNjIxMDg3N10sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNlODI0NzMyM2UwZDQ5OTQ5NTFjZGJhNzE4YzM0YmUxKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzJlMjIxYmExMmM0MTRiNTFhMTlmNDMxMDU0OGU3ZTk5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzlkMWNiYjMyM2JiNzQyMzM4MTc3MmY1MDZlMDJjN2ZjID0gJCgnPGRpdiBpZD0iaHRtbF85ZDFjYmIzMjNiYjc0MjMzODE3NzJmNTA2ZTAyYzdmYyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+VGhlIFdoaXRlIExpb248YnIvPlB1Yi9iYXIvbmlnaHRjbHViPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8yZTIyMWJhMTJjNDE0YjUxYTE5ZjQzMTA1NDhlN2U5OS5zZXRDb250ZW50KGh0bWxfOWQxY2JiMzIzYmI3NDIzMzgxNzcyZjUwNmUwMmM3ZmMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl8wNmJiMTM1ODAyN2Y0MzllYTQxYzk4NGQ3NTExYzMxZi5iaW5kUG9wdXAocG9wdXBfMmUyMjFiYTEyYzQxNGI1MWExOWY0MzEwNTQ4ZTdlOTkpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKCiAgICAgICAgICAgIHZhciBtYXJrZXJfN2UwZTI3NDA4MTU5NDRiMjkxZTE4MWQwYzI2MzA0MmMgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs1MC42NTc5NTkxMDE0NjkxMjUsLTEuMjI3NTQwNTAzNzc2NDUzM10sCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCkKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNlODI0NzMyM2UwZDQ5OTQ5NTFjZGJhNzE4YzM0YmUxKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzM3OTk1OWMyYjM1YjQ4Y2I5NmRjNzllYTg0NzRhNTBiID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2IwNWVhOTIzNWM2YzQyZmE5N2E5MWQxZGY3OGEwMjRlID0gJCgnPGRpdiBpZD0iaHRtbF9iMDVlYTkyMzVjNmM0MmZhOTdhOTFkMWRmNzhhMDI0ZSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+V2lnaHQgU2FsYWRzIEdyb3VwIEx0ZDxici8+RmFybWVycy9ncm93ZXJzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8zNzk5NTljMmIzNWI0OGNiOTZkYzc5ZWE4NDc0YTUwYi5zZXRDb250ZW50KGh0bWxfYjA1ZWE5MjM1YzZjNDJmYTk3YTkxZDFkZjc4YTAyNGUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl83ZTBlMjc0MDgxNTk0NGIyOTFlMTgxZDBjMjYzMDQyYy5iaW5kUG9wdXAocG9wdXBfMzc5OTU5YzJiMzViNDhjYjk2ZGM3OWVhODQ3NGE1MGIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKCiAgICAgICAgICAgIAoKICAgICAgICAgICAgICAgIHZhciBnZW9fanNvbl82MTczN2Y4Y2MyMmM0ZmM2OWMzY2RjNmZhOGY1MDFiMCA9IEwuZ2VvSnNvbigKICAgICAgICAgICAgICAgICAgICB7ImZlYXR1cmVzIjogW3siZ2VvbWV0cnkiOiB7ImNvb3JkaW5hdGVzIjogW1tbWy0xLjI5MzMyMTk2MTU0Njg1NiwgNTAuNjYzOTk2ODEzNTYyODFdLCBbLTEuMjkzMDAwOTU4MDg3NjU2LCA1MC42NjQwNzkzNzY0NjgwM10sIFstMS4yOTI3MjMxNDI4NzQ0MSwgNTAuNjY0MTEzNjUyNzcwOTZdLCBbLTEuMjkyNTA0OTg1MzgyODM0LCA1MC42NjQxMjk0MTA3NzAxOF0sIFstMS4yOTIyNTI5Nzk0ODc5MzUsIDUwLjY2NDIzOTQ1MTE0MTk5XSwgWy0xLjI5MTg0NDcwNTg5NTEzOCwgNTAuNjY0NTcwNjAyNzkyNzJdLCBbLTEuMjkxODY0NzU0NTIwNTg0LCA1MC42NjQ3NDI0Mzk2MzE1Ml0sIFstMS4yOTE3ODY0OTQ5NDkxMjcsIDUwLjY2NDg2NTIyMTU0MTUxXSwgWy0xLjI5MTg5OTY2MjgyMzE0MywgNTAuNjY0OTY1NzAxNDIxNjVdLCBbLTEuMjkxOTc0MTUwNDk1MjUyLCA1MC42NjUwOTM4MTYyODcyMV0sIFstMS4yOTE5NTEyNjMyODIyMDgsIDUwLjY2NTExMDc1ODkwMTMyXSwgWy0xLjI5MTg5MTczMDMzMTcyNywgNTAuNjY1MTEzMDk0NDQ2NzRdLCBbLTEuMjkxODE2NjgyNjg4ODMsIDUwLjY2NTExNTMzNTcyNjU0XSwgWy0xLjI5MTczNzM2Nzk4MTYwNCwgNTAuNjY1MTIyMDQ2MTk1NjJdLCBbLTEuMjkxNjY0Nzc1NTc4MjM2LCA1MC42NjUxNTQ5NTkyNzM3NV0sIFstMS4yOTE2Mjc0NTM4Nzg1NiwgNTAuNjY1MTg1Mjk5NjA1MTldLCBbLTEuMjkxNjA4ODE1MDE0MzQyLCA1MC42NjUyMDY3NjMxMjE5Ml0sIFstMS4yOTE2MTM2MzAwODY1NjUsIDUwLjY2NTI1ODkzNjIxNTY4XSwgWy0xLjI5MTU1NDAxNzc4MzQ1OCwgNTAuNjY1MzY3MzU2ODQ2MDRdLCBbLTEuMjkxNTY5MzE2MjAwMTEsIDUwLjY2NTM4MTgzNDMwODgzXSwgWy0xLjI5MTU5MTc5ODAzNDg3OCwgNTAuNjY1MzkxODYwMjU3MjVdLCBbLTEuMjkxNjI1NTU0NjA3NDM0LCA1MC42NjU0MDQ2NTE3OTc5OV0sIFstMS4yOTE2NTI0NzQyOTIzNzIsIDUwLjY2NTQwNjYxMzQxMjIzXSwgWy0xLjI5MTcxNzMwOTUyMTgwNSwgNTAuNjY1NDI0MDg4ODk1NjldLCBbLTEuMjkxNzcwNjM4ODkxODk4LCA1MC42NjU0NTQxNzA3OTg5MV0sIFstMS4yOTE4MTkyMzQ0OTU3NCwgNTAuNjY1NTEyMDA0MDAyOF0sIFstMS4yOTE4MDI5ODk3MjYxNzMsIDUwLjY2NTU2MDQ1MzA0MDM5XSwgWy0xLjI5MTc2MDIwMzYzMzg5OSwgNTAuNjY1NTgxNzY5OTA0OTNdLCBbLTEuMjkxNzI2MDQxMzI0MDYxLCA1MC42NjU1OTU5NDY4ODgzOF0sIFstMS4yOTE2OTMzNDY0Mjg1OCwgNTAuNjY1NjA1NjM3NjE4MjRdLCBbLTEuMjkxNjIxNTEwNDU2NDIsIDUwLjY2NTY3MzUyNzU5NDE1XSwgWy0xLjI5MTYwODUyNDgzMzc5OSwgNTAuNjY1NjkxNDI5MzI5OTJdLCBbLTEuMjkxNjA2ODU0NTY2MTcxLCA1MC42NjU3MDkzOTk4MTQyOV0sIFstMS4yOTE2MzYzODQ4MDk4MDIsIDUwLjY2NTcyMzk2MzczNTddLCBbLTEuMjkxNzM5Mjk4NTEyOTY5LCA1MC42NjU3NDYxNjU3MDM1Nl0sIFstMS4yOTE4NDIxMzgzNzc2NjIsIDUwLjY2NTc4MTA0MzQ3NzQzXSwgWy0xLjI5MTg1NTI2NjcxODk0OSwgNTAuNjY1ODQ2NzUyNTIxODddLCBbLTEuMjkxODA1MTA3Njc4ODYzLCA1MC42NjU4ODUxMDYyMjE3NV0sIFstMS4yOTE3NzQwNjkyOTE0MDgsIDUwLjY2NTg3NzcyNTQzNTYyXSwgWy0xLjI5MTQyMjk4NzQxNzc3MywgNTAuNjY1ODAyNzcwNzU3NV0sIFstMS4yOTEzNzMzNjkxMTQwMTYsIDUwLjY2NTgwNTE2NjI5NF0sIFstMS4yOTEzMTQ5ODY1MjMyNTQsIDUwLjY2NTgzMTc4MjM5MTddLCBbLTEuMjkxMjc2NDI2NTQ5MDgyLCA1MC42NjU4NTEzMjY3MDI3OF0sIFstMS4yOTEyNzU5NjY2MDE5OCwgNTAuNjY1ODgxODkwOTgxODVdLCBbLTEuMjkxMjY4Mzg1Njc3MzM4LCA1MC42NjU5MjA1MDMyNTkzM10sIFstMS4yOTEyNjc5MTIxOTU4MjksIDUwLjY2NTk1MTk2NjQ4NzM1XSwgWy0xLjI5MTMzOTQ2MzIwMTcyOSwgNTAuNjY1OTg4MzYyNjY0NV0sIFstMS4yOTE0ODI2MjgxMDM5OTEsIDUwLjY2NjA2NDc1MTM5NDEzXSwgWy0xLjI5MTQ2NDE3ODE2MjkyMiwgNTAuNjY2MDczNjI5NTkxMzRdLCBbLTEuMjkxNDA4Nzk2NTE4NiwgNTAuNjY2MDg2ODY4NDAxNTldLCBbLTEuMjkxMzM3NzQzOTUxNzU1LCA1MC42NjYxMDI2MTkxMjkyMl0sIFstMS4yOTEyOTYyMjE3MzA1MjYsIDUwLjY2NjEzMjkzMzgyMDQ3XSwgWy0xLjI5MTI2OTA5MzYyNTYzNiwgNTAuNjY2MTUyNTQ3NjE1ODFdLCBbLTEuMjkxMjQ4NTk5NDkwODE2LCA1MC42NjYxOTY0NzU1ODQwOV0sIFstMS4yOTEzODAxNjUzMjY3MjUsIDUwLjY2NjI5MTY3MzU4OTE1XSwgWy0xLjI5MTQyMzcwOTk2NDU2LCA1MC42NjY1MDY4OTY2NzAzMl0sIFstMS4yOTE1Njk5MTMyMjQxODUsIDUwLjY2NjY2MDYyMDQ1NTU3XSwgWy0xLjI5MTYxMzI1NDE0ODYyMywgNTAuNjY2Nzg4NjM2MTYxMl0sIFstMS4yOTE2MDM4MTg3NjcwMjgsIDUwLjY2Njg0OTcxMjk3MzU2XSwgWy0xLjI5MTU2NTk5MDI4MDMzMywgNTAuNjY2OTIxNDA1NjQ2NjldLCBbLTEuMjkxNTU2ODc5MzYxODQyLCA1MC42NjY5NjA5MDc2NzEwNV0sIFstMS4yOTE1NzkyMjY3MTg2MTcsIDUwLjY2Njk3OTkyMzExNDk1XSwgWy0xLjI5MTY1OTk1Mjk0NDU4MiwgNTAuNjY2OTgwNDEzNTc2MTldLCBbLTEuMjkxNzM5MDEzOTI0NDc3LCA1MC42NjY5OTA3ODMyMTE1MV0sIFstMS4yOTE4MTUwOTk0NDkzOSwgNTAuNjY3MDEyODIyMTI4OV0sIFstMS4yOTE4MDc0MDA3NjY2NzMsIDUwLjY2NzA1MTUyMzYyMTRdLCBbLTEuMjkxNzYxNTU2NjkxMDI3LCA1MC42NjcwODk5MDM1MDYzXSwgWy0xLjI5MTcyMjk3NzMyMjQyOSwgNTAuNjY3MTE4NDM4MTU4ODhdLCBbLTEuMjkxNjY4NzI1MzMxNDY5LCA1MC42NjcxNDk1NzQ2Nzk4N10sIFstMS4yOTE2NDEyNjM3ODk2ODUsIDUwLjY2NzE4MzU3MTAzNjAyXSwgWy0xLjI5MTY1MjAzODY1NjQwNiwgNTAuNjY3MjE5NTk3NzUzMThdLCBbLTEuMjkxNzIyOTY0OTM1NjI3LCA1MC42NjczMDU0MzY2MTMxNl0sIFstMS4yOTE3MjIyNDcwMjE3NTYsIDUwLjY2NzM1MzE3MDgxODAxXSwgWy0xLjI5MTY4Nzc4NTk1Mzg2OSwgNTAuNjY3Mzg3MTI0NjYzNzZdLCBbLTEuMjkxNjMwODQyMDIzNDI1LCA1MC42Njc0MTEwNTI1NjE4Nl0sIFstMS4yOTE1OTUwMTMwNDY3NjUsIDUwLjY2NzQzNTEwODcyNDM1XSwgWy0xLjI5MTU4MDc0ODczNTgxMSwgNTAuNjY3NDQ0OTExNDAxMjldLCBbLTEuMjkxNTY4OTU5NjQ3ODUxLCA1MC42Njc0NzYzMDU4Njg2OV0sIFstMS4yOTE1NTk5MDI3MTI2NjQsIDUwLjY2NzUxMjIxMjA5MjM3XSwgWy0xLjI5MTU5MDUzNjQ2MTUwMywgNTAuNjY3NTQ2NTYxNDEzMzNdLCBbLTEuMjkxNjEyNjk0Nzk2MDc4LCA1MC42Njc1NzgxNjIxMzg2NV0sIFstMS4yOTE2MjkzMjExODgwODMsIDUwLjY2NzYwNTIzNDA5MzY0XSwgWy0xLjI5MTgyMTM2NTcwNjk4MywgNTAuNjY3NjI3OTc3NDU0MDFdLCBbLTEuMjkxODc0OTI4NzcyMDAzLCA1MC42Njc2NDI2ODcyNzcwMl0sIFstMS4yOTE5MDQzMTAyNzAzMDcsIDUwLjY2NzY2NzIyOTQ2NzM3XSwgWy0xLjI5MTkwNzgyMDYxMjE3NSwgNTAuNjY3NzEzMTAxMzgzMDNdLCBbLTEuMjkxODk1OTIzNTM3NjI0LCA1MC42Njc3NTE2ODc0NzYzNl0sIFstMS4yOTE4NzUzMzQ2NTM5MDYsIDUwLjY2NzgwMTkwODE4Njc2XSwgWy0xLjI5MTgxMjk4NzQ1NjY1NSwgNTAuNjY3OTA1ODE3MTQxNDNdLCBbLTEuMjkxODU4MjcwNzc0NTE4LCA1MC42Njc5OTc4ODMyNzI1OF0sIFstMS4yOTE4MTg5NDcxOTUwNzQsIDUwLjY2ODA3NTg2MDE1MzE5XSwgWy0xLjI5MTgxODYyMjc0OTU3LCA1MC42NjgwOTc0MzQ5MzI2OF0sIFstMS4yOTE4MzY2NTQzNTY0MzcsIDUwLjY2ODExNjQyNDEwODkxXSwgWy0xLjI5MTg4MTU4MDE5ODQ3OCwgNTAuNjY4MTM5MTcyNzQ3NTJdLCBbLTEuMjkxOTg1MDIxNDEwMDAzLCA1MC42NjgxMzQ0MDY3NDUxMl0sIFstMS4yOTE5OTU5MzE5MDI1OTIsIDUwLjY2ODE2MTQ0MzkzNDkzXSwgWy0xLjI5MTkxMzM1NzY3OTM4NCwgNTAuNjY4MTkwNjEwNTE4NDNdLCBbLTEuMjkxODYyMTgzMjcxMTU0LCA1MC42NjgyMTA5Nzc0NDE0Ml0sIFstMS4yOTE3ODk2NDY2MTA5NjQsIDUwLjY2ODIzMjExMzYxODc1XSwgWy0xLjI5MTczNDM4NTU0NTM0MywgNTAuNjY4MjM3MTcyMTMxODddLCBbLTEuMjkxNjg5MjE2MzAyMTY0LCA1MC42NjgyMzA2MDQ1MjA2MV0sIFstMS4yOTE2NDk3NDEzNzk3MzgsIDUwLjY2ODIxNzc3ODI2Nzk1XSwgWy0xLjI5MTYyMzEyNjA2MTAzNiwgNTAuNjY4MjAzMjMyMDY5MDFdLCBbLTEuMjkxNTU4ODgyMDg2OTM4LCA1MC42NjgxNDYyMDI3NjYzNV0sIFstMS4yOTE1MjUxMzcwOTg1MTQsIDUwLjY2ODEzMjUxMjI1NTI3XSwgWy0xLjI5MTQ3NDMwNTc4MzkyMiwgNTAuNjY4MTIyMzE0MDMwMjldLCBbLTEuMjkxNDI0ODQyMjc0MDIxLCA1MC42NjgxMjIwMTM0Mzk0NV0sIFstMS4yOTEzODIyMjk1MjE5OTksIDUwLjY2ODEzMTY0MzgwNzkzXSwgWy0xLjI5MTM0MzgyNDkyNDI1NCwgNTAuNjY4MTQ4NDkxOTg3ODddLCBbLTEuMjkxMzE1MTI0OTg0ODU2LCA1MC42NjgxNzE2OTIzNjFdLCBbLTEuMjkxMjk5MjcxMDc5NDIxLCA1MC42NjgxOTQwNzE3Nzg2NF0sIFstMS4yOTEyOTc0MTYyOTI5NywgNTAuNjY4MjE2NTM2Mjg2MDRdLCBbLTEuMjkxMzEzOTYxNTU1Mjg2LCA1MC42NjgyNDkwMDE5NzczOF0sIFstMS4yOTEzNjE0OTYzNjI2MDIsIDUwLjY2ODI4NDQ0MzAxNDQ1XSwgWy0xLjI5MTQzNDU0MDQ5MjY3NSwgNTAuNjY4MzIyNjQ2MjQ4OTFdLCBbLTEuMjkxNTM5ODYyMzQ5NDExLCA1MC42NjgzNzkwMjYxOTMxMl0sIFstMS4yOTE1NjQ2MDQ0OTc0MjksIDUwLjY2ODQyNTAyNzEyMTYzXSwgWy0xLjI5MTU5ODMwOTEzNzQ1MiwgNTAuNjY4NDQxNDE0NDY4NjVdLCBbLTEuMjkxNjA2NDY3Mjc1MDE0LCA1MC42Njg1NTgzMzgwOTA5Ml0sIFstMS4yOTE1NTgzODE4MDQ1NSwgNTAuNjY4NjUyNTM0MTA3NzddLCBbLTEuMjkxNjA3NjUwMTAwMzI5LCA1MC42Njg3NTg5MTkxMzI1M10sIFstMS4yOTE1ODQxMzg4ODUzNzYsIDUwLjY2ODgxNzIxMzMwOTY4XSwgWy0xLjI5MTUxNDM1NTM5MzI1MiwgNTAuNjY4ODQ5MTU0NDE3MTRdLCBbLTEuMjkxNDUwNDI4NTMzMDkyLCA1MC42Njg4NjQwNDk0ODE3OV0sIFstMS4yOTEzNzUxNDQ5MjQzMjEsIDUwLjY2ODg4MTU3MjU4MzM1XSwgWy0xLjI5MTMwNTc2NzA1ODQxNywgNTAuNjY4ODg2NTQ1MDk2NzldLCBbLTEuMjkxMjgxODI5NTczODMzLCA1MC42Njg4ODAxMDYzNzg5XSwgWy0xLjI5MTI2NTAyNzA1NTcyNiwgNTAuNjY4ODY0NzIwNzE1MTRdLCBbLTEuMjkxMjY5NTE5Mzk3MzUxLCA1MC42Njg4NTMwNjA2MTcwNF0sIFstMS4yOTEzMTEwNzYyMDY1MzEsIDUwLjY2ODgxMjg1NjgxMTk2XSwgWy0xLjI5MTM0MDI2MzU1MTI5MiwgNTAuNjY4NzU3Mjk0MjgxOTZdLCBbLTEuMjkxMzE2NzcyNTY2ODE4LCA1MC42Njg3MjExOTAyNTYwNV0sIFstMS4yOTEyNzU4Mjk3NjI5MiwgNTAuNjY4NzEyODUwMTEyMzVdLCBbLTEuMjkxMjI0ODA4NDU1MjEzLCA1MC42Njg3MTUyMzcwNjIzNl0sIFstMS4yOTEyMjA1OTUxNDAyNTEsIDUwLjY2ODcxNjExMDQ4MTA1XSwgWy0xLjI5MTIwMjA0MDk3NTg5LCA1MC42Njg3MjQwODg5NzAxNl0sIFstMS4yOTExODc4MDMyNTIxMjUsIDUwLjY2ODczMjA5MzY5NzA4XSwgWy0xLjI5MTE1OTIwNjAwNjc5NCwgNTAuNjY4NzU2MTkzNjg1ODVdLCBbLTEuMjkxMTI3NzA1NzQzMTExLCA1MC42Njg3NzkzNzY5ODY3OV0sIFstMS4yOTA4ODE1NzQ4MzczMTcsIDUwLjY2ODk2MjI3MTYwNDI1XSwgWy0xLjI5MTA2MjU3MTQ4ODIzOSwgNTAuNjY5MDYwNDY3NjIzMTVdLCBbLTEuMjkwODMwNjg2MTUxNDc0LCA1MC42NjkxNDE3NjgzMjQyXSwgWy0xLjI5MDcwNTM4NjA1NTU4OSwgNTAuNjY5Mjg4NTM3MTUzMDRdLCBbLTEuMjkwNTE3MjkxMzY5NDMzLCA1MC42NjkyODE5OTg1Njc0Ml0sIFstMS4yOTAzNDU3NzQwNTQ0NTgsIDUwLjY2OTI5ODAzNjM1NDY3XSwgWy0xLjI5MDI2OTI3MzgwNjA1OCwgNTAuNjY5MzExMDU2MTgyMTNdLCBbLTEuMjkwMTk1Mzc1NDQ0NzMxLCA1MC42NjkzMjk0ODU5ODU4XSwgWy0xLjI5MDA0MTc0ODM1NzgyOCwgNTAuNjY5MzgxNTkzNDgwNjVdLCBbLTEuMjg5NzcxNDY3MDAzMTE3LCA1MC42Njk0Nzg4NDA4MzUyMV0sIFstMS4yODk3MjAwMzgwMTU3NTQsIDUwLjY2OTUwODE5NTU3ODJdLCBbLTEuMjg5NzE1MzQ4NjY2NzU3LCA1MC42Njk1NDA2MjIwMzQ3NV0sIFstMS4yODk3MjMwODM5NzU2NSwgNTAuNjY5NTg0NzIxNjgxMDZdLCBbLTEuMjg5NzIyNjA5Mzk5NjI4LCA1MC42Njk2MTYxODQ4Nzg2NF0sIFstMS4yODk3NTAzNzU0NTEyNTcsIDUwLjY2OTY1NTAxMjM1NzA0XSwgWy0xLjI4OTc2Mzk2Mjg4NzcxOCwgNTAuNjY5NjkwMTU3MzM3MV0sIFstMS4yODk3NTc3ODAwMzY3NDMsIDUwLjY2OTcyODc3ODAxMTI2XSwgWy0xLjI4OTczMDMwMjAzNjU4MiwgNTAuNjY5NzYzNjcyODM4NzZdLCBbLTEuMjg5NDQ5NjY4ODIzMDQ2LCA1MC42Njk5ODIzMTU0ODIxOV0sIFstMS4yODkxMDMyMjg1OTY2NzIsIDUwLjY3MDI0NzMwNTg0OTQ5XSwgWy0xLjI4ODkxMDQ0MzQzNzg1NCwgNTAuNjcwMzY1NzAxMzkzMTldLCBbLTEuMjg4ODQ3NjE0OTk5ODI1LCA1MC42NzA0MDAzODA0MTMzMl0sIFstMS4yODg3ODA2OTUxNTUwNzcsIDUwLjY3MDQyNzg0MjE5NDcxXSwgWy0xLjI4ODcwOTY3MDM0ODM2LCA1MC42NzA0NDg5ODU2Nzg2NV0sIFstMS4yODg1OTAzOTM1ODEzMzMsIDUwLjY3MDQ3NDQxOTc4MDM5XSwgWy0xLjI4ODM5MTIyMzIyNTcxMSwgNTAuNjcwNTQ0MjI3ODMxNjRdLCBbLTEuMjg4MzM5Nzc4NjI2NzgyLCA1MC42NzA1NzQ0ODA4OTk5OF0sIFstMS4yODgyODgyMTE2NzY5ODIsIDUwLjY3MDYxMjgyNDQ3Nzc3XSwgWy0xLjI4ODE4NTE2NzAxMjE3NSwgNTAuNjcwNjkxMzEwMTcxNDNdLCBbLTEuMjg4MDczNTA4OTA4NjE0LCA1MC42NzA3NzYxMjYzMDEzNV0sIFstMS4yODc4MzgxMDA4NzYyNzgsIDUwLjY3MTA4OTQzOTQzNDI1XSwgWy0xLjI4NzY0NTM3NjMwOTMzLCA1MC42NzEyOTU5MzgyODI3M10sIFstMS4yODg2MDMxMTI2NzkyODEsIDUwLjY3MTUwMTQ2MDQxOTQ3XSwgWy0xLjI4ODU2Mzg3NjgzMzYzNCwgNTAuNjcxNjY1NzQzNjY3NTddLCBbLTEuMjg4NTI5NDY0MjM2MzM1LCA1MC42NzE3ODg3OTA4MTUzN10sIFstMS4yODg0OTU2MDYzMzIzNTUsIDUwLjY3MjI1MzQ3MzAyODE1XSwgWy0xLjI4ODU4NzQ2MDMxNjA3NywgNTAuNjcyMjU5NDI3Njg2ODRdLCBbLTEuMjg4NjY0OTkzNDYzMDM4LCA1MC42NzIzNzE0NzA0MzUxOF0sIFstMS4yODg2OTUzODM3NzI4MzYsIDUwLjY3MjQyMjAwMTU1NDMzXSwgWy0xLjI4ODcxMjEzMzY4NDAzMSwgNTAuNjcyNTMzNTgzNTQyMzZdLCBbLTEuMjg4NjY1MTA1NzI3MzYzLCA1MC42NzI2NDIwNzkzNjAzXSwgWy0xLjI4ODYyMzIyOTUxMzkyNSwgNTAuNjcyNzAzMDQ3ODY2NzRdLCBbLTEuMjg4NTcxMzM0NDU2MjkxLCA1MC42NzI3NjI5NjYyOTQyNl0sIFstMS4yODg2MjQxMDA5ODkzOCwgNTAuNjcyODMwNzE1NTM3NDJdLCBbLTEuMjg4NDg5MzcwMTgxODExLCA1MC42NzI4NTE0NzAxOTQyM10sIFstMS4yODc4NjMzNjU3MjgyNjUsIDUwLjY3Mjk3NTQwMDc1NTQ4XSwgWy0xLjI4NzgwOTM3NjM2MjA5NywgNTAuNjcyOTg4NTU2NDU4M10sIFstMS4yODc3ODMzNzA5MjcwMDEsIDUwLjY3MzAyNjE1NjkwMDU0XSwgWy0xLjI4NzUxMzMwMzE0NzE4NCwgNTAuNjczNDc3NzA4MjgxMTldLCBbLTEuMjg2ODU1OTE3MTM2NzY0LCA1MC42NzQ2NDgxODI5MTExNF0sIFstMS4yODcyMTc3MDE5NDQ0OSwgNTAuNjc1MTUzMDQyOTcxMTZdLCBbLTEuMjg3MjIxNTYwNjk0Nzc0LCA1MC42NzUxNzU2MzIyMjE0Nl0sIFstMS4yODcyMTU1MDMyOTQxNDYsIDUwLjY3NTE5ODA3MDk1MTAzXSwgWy0xLjI4NzE5OTY5OTQ4NTA0OSwgNTAuNjc1MjE2ODUzOTc3NzNdLCBbLTEuMjg3MTc2ODE5MjEzODQsIDUwLjY3NTIzMjg5NjY1MDM3XSwgWy0xLjI4NzE0OTcwMzU1MzM4NCwgNTAuNjc1MjQzNTE5MjQzMDZdLCBbLTEuMjg2NzUwOTkzMjg1Mzk0LCA1MC42NzUzMTIxMDQ0MDAxMV0sIFstMS4yODYzNTMzNzE5ODQzNjEsIDUwLjY3NTMwODc3MjQzMTQ4XSwgWy0xLjI4NTk2MzI0OTc5MTk4MywgNTAuNjc1MjgwMzEyMTc4ODNdLCBbLTEuMjg1NTk4MTMxOTkxOTI3LCA1MC42NzUxODgxNzI2NjM0M10sIFstMS4yODUxMTczNTM2MzcwMzUsIDUwLjY3NTE1OTE1NDA5NzA3XSwgWy0xLjI4NTE5OTUwNTEyMjM4OSwgNTAuNjc1NjIwMDUxMjA1NzFdLCBbLTEuMjg1MzQ0NTgwNTA2OTk5LCA1MC42NzU2NjQwOTM5MzEzXSwgWy0xLjI4NTQ2OTAyODYzNTgyMiwgNTAuNjc1Njc1NjQ0OTgxMjZdLCBbLTEuMjg1NTg1OTU2MzM1Mzc1LCA1MC42NzU3MDYwMjk0NTc2XSwgWy0xLjI4NTY3ODY5MjQxNzEzMSwgNTAuNjc1NzU0MjQ2MjIyMTRdLCBbLTEuMjg1ODI3NjM1OTkxMzI0LCA1MC42NzU5MTI1Nzg3OTE0NF0sIFstMS4yODU4Njc5NTY4MDQ3NTksIDUwLjY3NTk2MjI3MjQxMTc3XSwgWy0xLjI4NTkwMDE2OTIyNTAyNywgNTAuNjc1OTg0OTQ1NDUxNTVdLCBbLTEuMjg1OTM2NzE4NDU0MDksIDUwLjY3NTk5ODY1NDczODJdLCBbLTEuMjg2MTU0MTAxNjEyMTQ4LCA1MC42NzYwMzc3NDUwNTcwOF0sIFstMS4yODYyMDQ2Njc2ODk0MDMsIDUwLjY3NjA2NTkyNDU1NTI4XSwgWy0xLjI4NjM3Nzg1ODYxOTk0OSwgNTAuNjc2MzEwNzExNzM5NjJdLCBbLTEuMjg2NjE2NjUyMDc5MzE1LCA1MC42NzY0MzA5MzQ4NDI1NF0sIFstMS4yODcwODE5OTgzNDU0NTYsIDUwLjY3NjgyNDk0ODk3MTVdLCBbLTEuMjg3MjI1Nzg2MjE4ODgzLCA1MC42NzY5NTQzODkzMjEwNV0sIFstMS4yODc0NTM5MTc1ODUwMjEsIDUwLjY3NzIxNjU5MjI1MzUzXSwgWy0xLjI4NzQ1MDg4NDYzNzY4LCA1MC42NzczMjQ0NTczMjEzN10sIFstMS4yODc0MDI2MTA2MjAxOTEsIDUwLjY3NzQyMjI0NjQ4NTM3XSwgWy0xLjI4NzM4Nzc3MDg2OTY5NywgNTAuNjc3NDY5ODA0MzgzMTddLCBbLTEuMjg3MzgxNDQ4OTA0NDI3LCA1MC42Nzc1MTc0MTQzMzU3MV0sIFstMS4yODczODM1Njg4OTExODYsIDUwLjY3NzU2MjM3ODc5MDkzXSwgWy0xLjI4NzM5Njg0MzgwNTQwMiwgNTAuNjc3NjE4MTk5Nzc3OTNdLCBbLTEuMjg3NDE4NzE4MjM3ODgzLCA1MC42Nzc2Njg2NzkxMzY3NF0sIFstMS4yODc0NTA2NDU0Njk2NzYsIDUwLjY3NzcxMDMxOTUyNjY4XSwgWy0xLjI4NzQ4OTc3MzQxNjEzMywgNTAuNjc3NzQ2NTE5ODI1NjJdLCBbLTEuMjg3NTM0NTgzODQwMjgzLCA1MC42Nzc3NzczNjA2NTI2Ml0sIFstMS4yODc1ODM2NjI5MzY1OTIsIDUwLjY3NzgwMzczMjM5MzJdLCBbLTEuMjg3NjQwMDU4MDY0MDcxLCA1MC42Nzc4MjQ3NTQ2MjkyOV0sIFstMS4yODc2OTY0MzE3NzI4NzIsIDUwLjY3NzgzOTQ4MzQ5NzY1XSwgWy0xLjI4NzgwOTQyNDA5NDMyOSwgNTAuNjc3ODUyNzYwMTA5NjVdLCBbLTEuMjg3ODkxNTM0MDA5MywgNTAuNjc3ODQ3ODY3NDE0OTldLCBbLTEuMjg3OTI2OTUxMzIzODIsIDUwLjY3Nzg1MTY3OTgyNzM5XSwgWy0xLjI4Nzk4NzQzMDU3OTE5OCwgNTAuNjc3ODcyNzI2ODM1NzhdLCBbLTEuMjg4MDA1NjYyNTk5NTcxLCA1MC42Nzc4ODYzMjM2MTMxOV0sIFstMS4yODgwMjIyMTQ1OTcwMTEsIDUwLjY3NzkxMDY5ODQ4ODI0XSwgWy0xLjI4ODAzMDI3MDIzMjc5NywgNTAuNjc3OTQxMzE0NjkyMTJdLCBbLTEuMjg4MDA5MjQ5ODIzOTU4LCA1MC42NzgwMTk0OTE4NDQwOV0sIFstMS4yODgwMDcyOTIxNzc4ODcsIDUwLjY3ODA1NjM0MDExNTQ1XSwgWy0xLjI4ODAxNDIxOTU0Mjc1NywgNTAuNjc4MDY4OTY4ODMyODVdLCBbLTEuMjg4MDI5NTg4OTMzNzQ5LCA1MC42NzgwNzg5NTIwMDY5N10sIFstMS4yODg0MDYyOTEyNzgxMzYsIDUwLjY3ODE2MzA2MzIzNDZdLCBbLTEuMjg4NTU3ODYyMzExNjQyLCA1MC42NzgyNDEzMDQ2OTQwMV0sIFstMS4yODg2NDE5MzkwNDg4MzEsIDUwLjY3ODI5OTM1NTU1NzQ1XSwgWy0xLjI4ODc0NjczNTA5NTQ0MywgNTAuNjc4MzkxNzg1Nzc5NDRdLCBbLTEuMjg4ODQ0NDMwMTU0MjY2LCA1MC42Nzg1NzU3ODM3MzAzNl0sIFstMS4yODg5Mjg5NTYxODYzMDUsIDUwLjY3ODY5Njg1OTEwNzAzXSwgWy0xLjI4OTM2NDU2NTUwMDA4OSwgNTAuNjc5Mjc3NzcwNjEyNjJdLCBbLTEuMjg5MzgzNzgyOTgyNzkyLCA1MC42Nzk1MDQ0NDMxOTQ0NF0sIFstMS4yODk1NjE1Mzc1MDUzMjUsIDUwLjY3OTczNDg2ODc4NTEzXSwgWy0xLjI4OTYxMjcxMzkyMDU4MSwgNTAuNjgwMDAxMzgzMjIzMjJdLCBbLTEuMjg5NzExODk3MzA3NzE0LCA1MC42ODAxNzk5OTUyNzM2MV0sIFstMS4yODk1NTgxMjcwNTY3OSwgNTAuNjgwMzMxOTgzNDA5MDddLCBbLTEuMjg5MzI2OTMyMjI1NTk5LCA1MC42ODA0NTY0Mzg2OTkyNl0sIFstMS4yODkzMDM5MTQzODM4OTMsIDUwLjY4MDQ4MTQ3MTIzNDkzXSwgWy0xLjI4OTMwNjIyNjMyODM5NCwgNTAuNjgwNTEzODUwMzg2MjRdLCBbLTEuMjg5MzIzMDE3Mzk0NjE4LCA1MC42ODA1MzAyMjUxNTc1MV0sIFstMS4yODkzNDgyNTIyMjI1OTMsIDUwLjY4MDU0Mzg2NDM5NTk0XSwgWy0xLjI4OTQ3NDg5MDY0MTUxNywgNTAuNjgwNTk2Nzc5ODMzOTRdLCBbLTEuMjg5NjE3MjY2MjEzMjAxLCA1MC42ODA2MzU0MDY1Mzc1Nl0sIFstMS4yODk3OTA4Nzk3MDg5MzIsIDUwLjY4MDY2ODgyOTE1NTQ0XSwgWy0xLjI5MDA4MzMyNDkyNTQ4OSwgNTAuNjgwNzAwMjc3OTU3NzJdLCBbLTEuMjkwMjU3MTg3MTUyNzA3LCA1MC42ODA4MTAxMTg4OTA2Ml0sIFstMS4yOTA0NTIzODE0NDAxNiwgNTAuNjgwOTEzODg2MDY2MDhdLCBbLTEuMjkwNDc1NzY5MzQ4Mjk2LCA1MC42ODA5NTcxODE3ODgwOF0sIFstMS4yOTA0ODEwNTM1OTgxNTEsIDUwLjY4MDk4NTk4Mjg4MDM5XSwgWy0xLjI5MDQ2MzI0NDMxMTc3MywgNTAuNjgxMDM3MTE5MTg1M10sIFstMS4yOTA0MjE1NDU2MzcwMTMsIDUwLjY4MTA3ODIyMDc5MzQxXSwgWy0xLjI5MDE1NjAwNTg2NTgzLCA1MC42ODEyMzU4MjI2OTldLCBbLTEuMjkwMDY0NjAwNDc5MjEyLCA1MC42ODExOTEyMTM3OTE2Ml0sIFstMS4yODk5OTk3MzA2NDg4MjUsIDUwLjY4MTE3NDYzNjI5NjI0XSwgWy0xLjI4OTk2NDM1OTU1MTYyMiwgNTAuNjgxMTc1MzE5OTQ5MjRdLCBbLTEuMjg5OTMzMTA3OTgzNzg2LCA1MC42ODExODE0MjI4NTMyN10sIFstMS4yODk5MDg5MDY3ODcwMzYsIDUwLjY4MTE5MjA2MzgzMDIyXSwgWy0xLjI4OTg4MTcxNTExNDUyLCA1MC42ODEyMTUyNzMwMDA5N10sIFstMS4yODk4NTg1NDgwMDU4NSwgNTAuNjgxMjUwMTk0MDU2NTVdLCBbLTEuMjg5ODU2NDYxMzkzMzU0LCA1MC42ODEyODc5NDA1ODAwMl0sIFstMS4yODk4ODUzNzY5NzI2NjMsIDUwLjY4MTM0Mzg1NjQ5MjcxXSwgWy0xLjI4OTgxNDc3MzQ0MzQ1MiwgNTAuNjgxNDI4ODM0Mjg4MTddLCBbLTEuMjg5ODA4NzU3MTMyOTMxLCA1MC42ODE0NDg1NzYyOTAyXSwgWy0xLjI4OTgwOTc3NjMwODg2MiwgNTAuNjgxNDczODQ1MjIwNDNdLCBbLTEuMjg5ODIyMTc4NDM4OTUsIDUwLjY4MTUwMjY4OTY5MjEzXSwgWy0xLjI4OTk2MTc4NzExMjIyLCA1MC42ODE2MzIxMDEwNjY2Nl0sIFstMS4yOTAwMzUyMTIzMDMzMywgNTAuNjgxNzMxNDQxMzYxMThdLCBbLTEuMjkwMDY2MTA0MzM5MDE3LCA1MC42ODE5MzQ4OTk5NTE3N10sIFstMS4yOTAwOTY4MTQwNjY3MTQsIDUwLjY4MTk2NDc1NDg4MTE4XSwgWy0xLjI5MDE0NjEyNDEwNTE1OSwgNTAuNjgxOTgzOTM0Njg0OF0sIFstMS4yOTAxNzQzMDk3MTgzNDQsIDUwLjY4MTk4NzcwMjM4MTA1XSwgWy0xLjI5MDIxMjYxMjMxODk1NSwgNTAuNjgxOTg2MTM3NDc4MjNdLCBbLTEuMjkwMjc2NTQzODc4NDk4LCA1MC42ODE5NzIxNDIxNDczMl0sIFstMS4yOTAzNTg2NDcxOTQ0NDIsIDUwLjY4MTk2ODE0NjY5MzIzXSwgWy0xLjI5MDQwNzAyMzA3MzAzMiwgNTAuNjgxOTQ4NjYyNDQ2MThdLCBbLTEuMjkwNDQyNTUyMDk0NjczLCA1MC42ODE5NDUyODI1MzEyXSwgWy0xLjI5MDQ2Nzk1MDYxNjg1NiwgNTAuNjgxOTQ4MTM0MTY3NjNdLCBbLTEuMjkwNDgxODEzMDYyMzQ3LCA1MC42ODE5NjUzMDAwNzIxNl0sIFstMS4yOTA0MzM5MTYwMDM5MTUsIDUwLjY4MjA0NTkyMTI0NzldLCBbLTEuMjkwMzgxOTE2NTk0Mjk0LCA1MC42ODIxMTIyMjI4NzQ0XSwgWy0xLjI5MDM0NzQ4NDMwNjgzOSwgNTAuNjgyMTQzNDc5MzQ5N10sIFstMS4yOTAxNTQ2ODAzMjg2NTYsIDUwLjY4MjI2MDA3ODYyOTk2XSwgWy0xLjI5MDE4Mzg1ODQyMzE3OCwgNTAuNjgyMzkxNTE0NTAyODZdLCBbLTEuMjkwMTUyOTM3OTYyMzEyLCA1MC42ODI1NjEzMzI2ODM4NF0sIFstMS4yOTAwMjY2Njc2NTExNTIsIDUwLjY4Mjg2MjcyNzYxOF0sIFstMS4yODk4NTY5MDU4NDA0ODcsIDUwLjY4Mjk1MjQ5NTgxOTI1XSwgWy0xLjI4OTc0OTY5NTEzNzAxOSwgNTAuNjgzMDE5MjcwMDMxMDRdLCBbLTEuMjg5ODgyMDExOTEyNTU4LCA1MC42ODMxNjA0MTQzMjQ1Nl0sIFstMS4yODk4ODgyMjE2OTYwMTMsIDUwLjY4MzIyMDY4NzA4NTA4XSwgWy0xLjI4OTkxMjQwMDI2Njg0MSwgNTAuNjgzMzA0NDQ0MDIxOTldLCBbLTEuMjg5ODk5NDY4NzkwODk4LCA1MC42ODM1MDQwMzk2MTE5NF0sIFstMS4yOTAxMzkwMzAxMDc5NDEsIDUwLjY4MzY2OTIxMTM4MzE2XSwgWy0xLjI5MDIzNjIzNzE5MDc3NCwgNTAuNjgzOTg3MjUwMjA3MDFdLCBbLTEuMjkwMzY1MDQ0NjU5NDk5LCA1MC42ODQyNjg1MzExNTc0M10sIFstMS4yOTAzNzE0MjE3NzM1OTEsIDUwLjY4NDMxMDAxNTE5NTE1XSwgWy0xLjI5MDM2MzY0NzIyNjM1LCA1MC42ODQzNjEyMTI1MjUzNl0sIFstMS4yOTAzNDQ1NTgwOTM5MjMsIDUwLjY4NDQwNDI0OTczNzU4XSwgWy0xLjI5MDMwMTMwNjc5NjIwMSwgNTAuNjg0NDU1MjMxMTUzMjNdLCBbLTEuMjkwMTEyMjY2NzQ1NjcsIDUwLjY4NDc4NTkxMTk5NzQyXSwgWy0xLjI5MDEwNzUwOTU5NjcyLCA1MC42ODQ4MjI3NDMyMTYxN10sIFstMS4yOTAxMTY4ODY3ODE5MiwgNTAuNjg0ODU4NzYxNDUyNjNdLCBbLTEuMjkwMTQxODEyMzAxMjIyLCA1MC42ODQ4OTMwNzYyODIzN10sIFstMS4yOTAyMDQ4MTEwMTg2MzcsIDUwLjY4NDk0MTE5ODE5NzI3XSwgWy0xLjI5MDIxODYyMDAwOTY1LCA1MC42ODQ5NjE5NTk5MTIzN10sIFstMS4yOTAyMzg0NjMyMjIzNywgNTAuNjg1MDU0NjgwNjUyMjhdLCBbLTEuMjkwMjM2MzQ4MzM1Mjg5LCA1MC42ODUxOTQ5MTYyNTgyOF0sIFstMS4yOTAyMzIwNTIxODA4ODIsIDUwLjY4NTIwMTE4MzMwOTcyXSwgWy0xLjI4NzkyMDA2NDU3NzQ2MiwgNTAuNjg1MTM0MDQ1MjM4MzJdLCBbLTEuMjg3NDgxODM1NDk5ODM5LCA1MC42ODc2MjIzOTY4NDcyN10sIFstMS4yODczNDI4NjkzNTU5ODMsIDUwLjY4ODc2MDA3NzE1NDQyXSwgWy0xLjI4NzMzNDMyMjI3NjQ1NCwgNTAuNjg4NzYxODIyOTc2MzNdLCBbLTEuMjg2ODQwNzYxNzYxMzg2LCA1MC42ODg4MTk5Mzk0OTExXSwgWy0xLjI4NjcwMDg5MjMyMzAzMiwgNTAuNjg4Nzk5MzA1MzkwMDJdLCBbLTEuMjg1NDQwMjQzMTAwNDI2LCA1MC42ODkxMjYxMTU3ODAwMl0sIFstMS4yODQ3NDU2NzI5MDkzMjIsIDUwLjY4OTI4NDU4MTczNTI0XSwgWy0xLjI4NDExMjUxMTcyOTM3MiwgNTAuNjg5Mzk1ODYxOTY5MzNdLCBbLTEuMjgzNzQ0NzI0NzQxNDQ3LCA1MC42ODkzODAxMTgxMDIwM10sIFstMS4yODM1MzczMDE4ODU5MDUsIDUwLjY5MDE3MDE2ODU1MzY0XSwgWy0xLjI4MzQ0MzUxMzcxOTA5NiwgNTAuNjkwMzgwOTUzODExNjRdLCBbLTEuMjgyMzc5NDk2MDgwMDM4LCA1MC42OTAyNDc2NDc4NTg0NF0sIFstMS4yODE5NDk0NDY0ODg1NSwgNTAuNjkwMjI3MDIwMDI2NDddLCBbLTEuMjgxODU0OTA4MTI0NTM4LCA1MC42OTAyMTExNTQzODExNl0sIFstMS4yODE3NjE4MTk3MDQ1NTksIDUwLjY5MDE4NDQxOTM0NzU3XSwgWy0xLjI4MTY4MTcwNTc0NTEwNywgNTAuNjkwMTQ4ODYzNzgxMTZdLCBbLTEuMjgxNTk0NzE5NDI1MTUsIDUwLjY5MDA5NzA4MzMxMjM4XSwgWy0xLjI4MTQ0NzY2MDAzMjQwMywgNTAuNjg5OTg5MTkyODc1NTddLCBbLTEuMjgxMjUwMzMzNzU1OTQ5LCA1MC42ODk3NDg3NDUzNjgxN10sIFstMS4yODEyMTQwMjI0MzQ5NzEsIDUwLjY4OTcxODg1MzYxODg2XSwgWy0xLjI4MTExNzA0ODIwNDEzNCwgNTAuNjg5NjcxNTA2MzY0MDRdLCBbLTEuMjgwNDcyMjg0NjkwMjU0LCA1MC42ODk1MjUzOTMzOTMyM10sIFstMS4yNzk5ODEyMjc2MjkwODMsIDUwLjY4OTMyNzI3MzIyOV0sIFstMS4yNzkxODkxOTM1MzQ2NDEsIDUwLjY4OTA5NTczNTAzODc5XSwgWy0xLjI3ODY4ODU5MzA3ODg0NiwgNTAuNjg4OTY0OTc3NTQ2MDVdLCBbLTEuMjc4NTU3NDg3NTAzNzQ2LCA1MC42ODg5MzYyOTY2MTk1MV0sIFstMS4yNzg0MjYyNjY3NTc4ODUsIDUwLjY4ODkwNzUyNDkyOTUyXSwgWy0xLjI3NzgwMTI3MjA0Mzk5MiwgNTAuNjg4ODU4NzA0NDQ1NzldLCBbLTEuMjc2OTY0NTM1Mzk1MTM0LCA1MC42ODg3NzI2MDY3Njg3M10sIFstMS4yNzY5OTk4MDU5Njk2MDIsIDUwLjY4ODU5NjUyNTkzMjE2XSwgWy0xLjI3NjczNTk5MjgyOTE0NiwgNTAuNjg4NTM3MzUyMTI2NTldLCBbLTEuMjc2NTQyMDAzMjIwNzM5LCA1MC42ODg0NDYyNDU4OTY4Ml0sIFstMS4yNzYzOTc5MzgwMDcxNjYsIDUwLjY4ODQyNTU3MzM4ODg2XSwgWy0xLjI3NTgzOTQzMTI1NDYzMywgNTAuNjg4Mjg5MDUwMTAyMjJdLCBbLTEuMjc1ODMxNTc2OTE0NjM2LCA1MC42ODgyNDU3NTgwNDE0MV0sIFstMS4yNzUzNDY2NjE1NzE3OTMsIDUwLjY4ODExMzI4NTQ4NzczXSwgWy0xLjI3NTE0MzIxMzE3MDE5OCwgNTAuNjg3OTkyNDUwMTgxOThdLCBbLTEuMjc0Nzk5OTM5NTMzNjg4LCA1MC42ODc4NTYyNzA2NjAxOF0sIFstMS4yNzQxODY5NzY0OTM5NzgsIDUwLjY4NzY3MTc1MjIwODA5XSwgWy0xLjI3MzExNDUyMjI1MzY4MiwgNTAuNjg3MjY2NjIyMzU4XSwgWy0xLjI3MjM5NTk0NjcxNTk4MSwgNTAuNjg3MDUxNzY4MDk0NzFdLCBbLTEuMjcxNDA5NzkzNDc3MjExLCA1MC42ODY3NDM0NDY5NDMxMV0sIFstMS4yNzA4MjI2NjM0NzMzMDYsIDUwLjY4NjUzNTYwNzQ0OTddLCBbLTEuMjcwNjU0NTkzNDY4OTM5LCA1MC42ODY1MTI5Nzk2NTE1XSwgWy0xLjI3MDM4NzQ0MTc0MjE2NywgNTAuNjg2NDg5NzMxNzA0ODhdLCBbLTEuMjcwMjgyNTcxNjU3ODcxLCA1MC42ODY0OTM1NzA2Mzg4OF0sIFstMS4yNzAyNDQyODM5MTgzMjYsIDUwLjY4NjUwMTQyMjI5NzczXSwgWy0xLjI3MDIwODYzODU0MzIxNCwgNTAuNjg2NTExOTg3NTY5MDJdLCBbLTEuMjcwMTYwMTkzOTEwMTU3LCA1MC42ODY1MzUwNTkxMzA4OV0sIFstMS4yNzAwOTAxMzI1ODA2NCwgNTAuNjg2NTgyMjY5MTU1NDhdLCBbLTEuMjcwMDE2OTU4Mjc5NTU1LCA1MC42ODY2NDIwNDYwNjAwMl0sIFstMS4yNjk5NjUyNTA5MjUzMTksIDUwLjY4NjY5NDg1NDk4NDEzXSwgWy0xLjI2OTkyOTA0NzUxMDAyNSwgNTAuNjg2NzQxMzc3ODQ2MzZdLCBbLTEuMjY5OTAwMDM3ODkwNDg5LCA1MC42ODY3OTA2NDI4MjYxM10sIFstMS4yNjk4NTQ2MDg2ODE5NzcsIDUwLjY4Njg5MDE1MDYyNTRdLCBbLTEuMjY5ODM0MzkyMjEwMjg0LCA1MC42ODY5MTQyOTc4Mjc1OF0sIFstMS4yNjk4MDI4NDEzNTMzNjQsIDUwLjY4NjkzOTI3MzA4MDgyXSwgWy0xLjI2OTc1OTk5NzkzOTAwMSwgNTAuNjg2OTYyMzc5NTUwMjddLCBbLTEuMjY5NzEwMjQ5ODA3MjIsIDUwLjY4Njk3OTE0OTU1NzMxXSwgWy0xLjI2OTYwMTAwODM2NTc2NSwgNTAuNjg2OTkzODM4NzU3MDNdLCBbLTEuMjY5NTYyNjY0Mjk1MDQ0LCA1MC42ODcwMDUyODU5NTY0Ml0sIFstMS4yNjk1MTcwMDA3NDE0NjgsIDUwLjY4NzAyMjA4MTQ2Njc5XSwgWy0xLjI2OTQ4MTMzMTk3MDE1MSwgNTAuNjg3MDQxNjM2NjYxNDldLCBbLTEuMjY5NDQ1NTY1NDgyODM0LCA1MC42ODcwNjc0ODQ0Mzc1OV0sIFstMS4yNjk0MDUxNTk4NTc4MTcsIDUwLjY4NzExMzk4MDgwODk0XSwgWy0xLjI2OTM1MzA2MTg5NDUzNywgNTAuNjg3MTkxODY5OTI3MTRdLCBbLTEuMjY5MzA0OTQxODUwNDc4LCA1MC42ODcyODQxNjg0MTQ4N10sIFstMS4yNjkyNjY0NDIwOTI5NCwgNTAuNjg3Mzg4MzA0NDQ5ODldLCBbLTEuMjY5MjMzNjM0MjY3MDA5LCA1MC42ODc0OTQxODQyOTY0MV0sIFstMS4yNjkxOTg3OTYyMDM0MTIsIDUwLjY4NzY0MDU5NzYyMjY4XSwgWy0xLjI2OTE5MzU4NzYwMzY3NiwgNTAuNjg3OTc1OTkyNzQxODJdLCBbLTEuMjY5MjE0MTQ3NTE1OTIxLCA1MC42ODgyOTgwNjM4OTgyNV0sIFstMS4yNjkwMjkwMDQ2MzU3MjksIDUwLjY4ODI3NzEyNDgzNjY0XSwgWy0xLjI2ODc5NTgwNTkzMTYzNywgNTAuNjg4MjU0MDg2MDk3NzddLCBbLTEuMjY4NjQwMjAwNTQ2NzUxLCA1MC42ODgyNDc3MTYwOTQyNF0sIFstMS4yNjg1MzIzMTU4MTE5NzUsIDUwLjY4ODI2NTAxOTk4OTI2XSwgWy0xLjI2ODQ5MTk3ODExNjc2OSwgNTAuNjg4MzA3MDIxMzE5MzNdLCBbLTEuMjY4NDYwNTIzNDMxNjA5LCA1MC42ODgzMjU3MDM2MDY1NV0sIFstMS4yNjg0MzE4NzQ2MzkxNTcsIDUwLjY4ODM1MTU5NTcyMDk1XSwgWy0xLjI2ODQxNTgxNjM5NTgwOSwgNTAuNjg4Mzc4NDY1ODQ4MTNdLCBbLTEuMjY4NDA2ODEyNDAyOTI5LCA1MC42ODg0MTcwNjc2MDgxNV0sIFstMS4yNjgzNTE1OTc5MjE1MjEsIDUwLjY4ODUwNzUyMzEyMTgzXSwgWy0xLjI2ODEyNDQ2NzYxNzAxNSwgNTAuNjg4NzI0NjUxNzcxOTldLCBbLTEuMjY4MDYxMTU2NzI3MjQ1LCA1MC42ODg3OTUyNzc2OTE4MV0sIFstMS4yNjgwMDUxMjg2ODIyODUsIDUwLjY4ODkzNzk2MTUxNTYzXSwgWy0xLjI2Nzc5OTk5NzU4ODY1NiwgNTAuNjg5MTEzNzgyMzgyNDldLCBbLTEuMjY3NTMyMTUxNjA0ODM3LCA1MC42ODk2NzQxNzMxNTYyN10sIFstMS4yNjcyMzUwMDMyNzgyMjUsIDUwLjY5MDEyMjAwMDU0NDFdLCBbLTEuMjY3MDgyMjIyMTcwOTk5LCA1MC42OTAzODM1NTY4MTE0Ml0sIFstMS4yNjcwNzE5NzgzOTExNDIsIDUwLjY5MDQ5NDE2Mjg3MjE5XSwgWy0xLjI2NzExMDQ0MzQ1NjEyNSwgNTAuNjkwNjYyNTIzMDA2NzRdLCBbLTEuMjY3MjE3Nzg5MjgzMDUzLCA1MC42OTEwMzk5ODA1NDk5OF0sIFstMS4yNjY2MzIzOTI4NTAyNTQsIDUwLjY5MTM2MjczNzgxMjExXSwgWy0xLjI2NjQ3ODk3Mzg4MzU3MiwgNTAuNjkxNDg1MDI5Njk5ODhdLCBbLTEuMjY2MjE3MzU4Mzc5MjQzLCA1MC42OTE2NTE1MDIxMzk2OV0sIFstMS4yNjYwMzg3MTI4NjE4MSwgNTAuNjkxNzUyMDU4MDE4OF0sIFstMS4yNjU4NTMxMzk1Nzc4ODgsIDUwLjY5MTg1NTE3NzE5Mjc3XSwgWy0xLjI2NTM5NjMyNjM2ODgwNCwgNTAuNjkyMDk3ODI1MTAzODVdLCBbLTEuMjY1MzE3NTYxNjk4Nzk2LCA1MC42OTIwNTg2NzA2Njg0N10sIFstMS4yNjUyMTg0NDEyOTgzNjMsIDUwLjY5MjE1NjkzOTI5NzE3XSwgWy0xLjI2NDkzODczNzM0NzkyMywgNTAuNjkyNjU4ODEyMzQ4NTFdLCBbLTEuMjY0OTM4ODE3ODMzODA5LCA1MC42OTI3NDMzMjE1Mzc5M10sIFstMS4yNjQ5NDMyODcxNzE3MjksIDUwLjY5MjgyMzM2MzI0ODE5XSwgWy0xLjI2NTA2NTE4MDM3OTgxOCwgNTAuNjkyODE0MjQyMjA3NDFdLCBbLTEuMjY1MDgyMDY1NjA0MjMxLCA1MC42OTMxODMwNDAyMDI1N10sIFstMS4yNjUzMzk1ODM5NjA3OSwgNTAuNjkzMTkwMDU3MDA4NDhdLCBbLTEuMjY1MjY4OTQ5NDY0OCwgNTAuNjkzNTQyMTIxMDM2NjldLCBbLTEuMjY1MTcwMDk3NDQ3MjQ3LCA1MC42OTM3MDUyMTEyNDNdLCBbLTEuMjY0OTYwMDIxNjcxODM4LCA1MC42OTQxMDU4NDI4NjI0XSwgWy0xLjI2NDcxMjM4MTczNzk3NywgNTAuNjk0NTQ5NDgwNDk2ODhdLCBbLTEuMjY0NjA5NjY1OTQ1ODI0LCA1MC42OTQ4Njk4NzU3ODU5XSwgWy0xLjI2NDU1MDEzNjAwMjU2OCwgNTAuNjk0OTY2NTk1NDEzODZdLCBbLTEuMjY0NDk1ODA0MzY2NzMyLCA1MC42OTUyNjg0MTYxMjMxOV0sIFstMS4yNjQyNjcyNzU2MDI5ODEsIDUwLjY5NTQwMDAzMDcxNTU3XSwgWy0xLjI2NDIwOTMyNjM1ODg2MSwgNTAuNjk1NDg1MTYyNjczMzVdLCBbLTEuMjYzNDIwODUxMzA2MDI2LCA1MC42OTUxMTQxMDA4MTM1XSwgWy0xLjI2Mjk4ODc5OTI0NTUzNywgNTAuNjk0OTQzMjUyNzUxNDNdLCBbLTEuMjYyMzEzNjU3Njc3MTExLCA1MC42OTQ2NjM3OTEzMTI4XSwgWy0xLjI2MTIxMTk3ODI4MDMxNSwgNTAuNjk0MzA5NzAyMTk0N10sIFstMS4yNjExNzU5NzI3MjM3MzksIDUwLjY5NDI2MDkyNjU0NzIyXSwgWy0xLjI2MDg1NDc0MTc0NzY1MSwgNTAuNjk0MTU1NDEyNzMyNTddLCBbLTEuMjYwMzk0MDIyOTQwODExLCA1MC42OTQwMTIyNDMxNjY5MV0sIFstMS4yNTk2ODc0NjI5MTEzNzgsIDUwLjY5MzgzOTU1MTU0MjddLCBbLTEuMjU5Mjg4NTI4Mjg2NTM3LCA1MC42OTM3MzE4MzE5MTY0OV0sIFstMS4yNTg5NDgyMTQ5ODg2MDYsIDUwLjY5MzU4NTgyNTIyNjk5XSwgWy0xLjI1ODU5MTExODkyMTU5NCwgNTAuNjkzNDIzNDM4NDE2MTFdLCBbLTEuMjU3ODg5NDQ1ODk4MjQ3LCA1MC42OTMxMTk1MDg3MTgzXSwgWy0xLjI1NzU0NTIwNTc2ODg5NywgNTAuNjkyOTQ5MTk5MTMxOTRdLCBbLTEuMjU3MjMzNjM2ODE5NDEsIDUwLjY5Mjc3OTkwNTc0ODU5XSwgWy0xLjI1NjgzMjIxNzE1MTg2OSwgNTAuNjkyNTU2OTk2MjM5MjddLCBbLTEuMjU2MTgzODI3Nzk3ODc3LCA1MC42OTIzNzY2NTI2MDk0Nl0sIFstMS4yNTUzODg2NjE4MjYwMzksIDUwLjY5MjE3MDEwNTUxMzE3XSwgWy0xLjI1NDI1ODU5MTQ5NzgzLCA1MC42OTE4MzE5NTE1Mjg1MV0sIFstMS4yNTM1MjM0MDU1OTg4MDMsIDUwLjY5MTU4MzUyMDg0MzMzXSwgWy0xLjI1MjM5MDM3NTIzNTQxNiwgNTAuNjkxMTY4OTEyMjE5MTNdLCBbLTEuMjUxMzIyNTYzMDIyNDcyLCA1MC42OTA3NTAyMTYxMDIyN10sIFstMS4yNDk3NTk0MTU4MzAzMjgsIDUwLjY5MDEzOTQzODIyNzQxXSwgWy0xLjI0OTI3NDU3NDQwMTg4MywgNTAuNjg5OTEwNTcxNTQ1OTNdLCBbLTEuMjQ4OTM0OTk0NDAzNTM4LCA1MC42ODk3MjIyODU3MzIzNV0sIFstMS4yNDg2MTY0MDE2MTk5ODgsIDUwLjY4OTU1MDIyNjc4MzUxXSwgWy0xLjI0ODQ4OTM5MTk1MDI2MiwgNTAuNjg5NDQxNTI0NzU1MjhdLCBbLTEuMjQ4Mzg3NzUzNTk5Mzc3LCA1MC42ODkzMzAxOTkxMjgzNF0sIFstMS4yNDgyNTU3OTQyNTIyNTksIDUwLjY4OTA4NTcxMTQ0NDc2XSwgWy0xLjI0ODE5Mjc4OTcwOTIxNCwgNTAuNjg4ODY0OTUzMDU5Nl0sIFstMS4yNDgxMzgxOTc4Nzg2ODEsIDUwLjY4ODczODY0NzAwNDc0XSwgWy0xLjI0ODA0NDA5NjI1NDgxNSwgNTAuNjg4NjAxMzg3NjkyMjhdLCBbLTEuMjQ3OTQwMjMyOTg2ODk5LCA1MC42ODg0NTQxNzYwMTQzNl0sIFstMS4yNDc2ODUxOTYxMDY0MzcsIDUwLjY4ODIwNjEwNjc5ODUzXSwgWy0xLjI0NzMxNzE2NDA5MTA3NSwgNTAuNjg3ODQ5NDI0MTA1NDhdLCBbLTEuMjQ3MjI1MTY0MzkyNDcxLCA1MC42ODc3NTYxNDAyMzY4XSwgWy0xLjI0NzExOTk2NDIzNDUyMSwgNTAuNjg3NjEyNTE1Mjg3MV0sIFstMS4yNDcwODE2MjE2NjEzNDksIDUwLjY4NzUyODY1NzkyODcyXSwgWy0xLjI0NzA3Mzc3ODEwNjc0MywgNTAuNjg3NDg2MzUyODcxOTddLCBbLTEuMjQ3MDc1OTU2NjkxNzk5LCA1MC42ODc0Mzc3Mjk0MTMzNl0sIFstMS4yNDcwODIwMzQ4NTE1NTcsIDUwLjY4NzQxNTI5MjkwNzk2XSwgWy0xLjI0NzEwMDA3OTAzMDg2NSwgNTAuNjg3MzQ1Mjg1MDcwNTRdLCBbLTEuMjQ3MTk4MTk3ODI1MDc0LCA1MC42ODcxNDM1NDY4ODI1M10sIFstMS4yNDcyODUzNDE3MjMyMjUsIDUwLjY4NjczNzY1NzkyMjc5XSwgWy0xLjI0NzI4MTg0NDkxOTA4MiwgNTAuNjg2NjkzNTgyODcyOTVdLCBbLTEuMjQ3MjU2Njg1MzEzMDIzLCA1MC42ODY1ODgyMzM5MzE1Ml0sIFstMS4yNDcyMDg5MTM4NTIyNzUsIDUwLjY4NjQ3MzY1ODgwMjE5XSwgWy0xLjI0NzE2MDc1NDU2MzU1NCwgNTAuNjg2MzkwNjM3MTA2OThdLCBbLTEuMjQ3MDI2MjE1MjU4MDc1LCA1MC42ODYyMTM0Njg1ODY4OV0sIFstMS4yNDY5NzEwOTU5MTQyODIsIDUwLjY4NjEyMDUxMjUzMTY0XSwgWy0xLjI0NjkzNjg0MjYyOTg2MywgNTAuNjg2MDUxMDY1OTkzNTVdLCBbLTEuMjQ2ODg5MzQ0MzY5MjIzLCA1MC42ODU5MTk1MDA4MTE4OV0sIFstMS4yNDYzMjk5NTQ1ODk5MDksIDUwLjY4NTY3MDM2MTQyODQyXSwgWy0xLjI0NTkzOTYwNzIxMDY5OSwgNTAuNjg1NDY5OTYxMjI0MzFdLCBbLTEuMjQ1MjY2NzA5MjQ0NTUxLCA1MC42ODUxNTI2NTUzMjc1OV0sIFstMS4yNDQyMjA1NjYxMzkxNjEsIDUwLjY4NDcxMjQ1NjgxNTkzXSwgWy0xLjI0Mzg2ODU1NTY0ODM1NywgNTAuNjg0NTk2ODA2OTYxMDZdLCBbLTEuMjQyOTYyNzA1NDY4Mzg2LCA1MC42ODQyMzc1MjA0NTE4N10sIFstMS4yNDIyOTQyMDA2OTE1MjksIDUwLjY4Mzk5NzYzMjMxOTQ5XSwgWy0xLjI0MTYwMDg3MjcyNDc4MSwgNTAuNjgzNzE5NzI5NjgxODZdLCBbLTEuMjQwNjc1OTY2OTg3NDY3LCA1MC42ODM0MDc5NDk5NzMxNF0sIFstMS4yNDAxNzk4Mzk4MTk1ODIsIDUwLjY4MzI3MDY3MjYyMzYxXSwgWy0xLjIzOTkyNDY4MDUyNDQ0MSwgNTAuNjgzMjA3ODc1NTUzNTJdLCBbLTEuMjM5MzYzMjIzMDIxMDk5LCA1MC42ODMwOTA5MzY0NTk1XSwgWy0xLjIzOTA5MjE5NjE3Mzc0NiwgNTAuNjgzMDQyNDE4NTQ3ODJdLCBbLTEuMjM4NTA3NjU0NTk2NzE2LCA1MC42ODI5NTMxMDQ3NDExXSwgWy0xLjIzNzIxODAzMDUzMTU4MiwgNTAuNjgyNzg4MjQ0MTM5ODJdLCBbLTEuMjM0NjE1NTI5OTc3ODA4LCA1MC42ODI0OTA2MDI2NTM5Nl0sIFstMS4yMzM3NzE0ODE1NzQzMjEsIDUwLjY4MjM0MjAyMzM0Mjc3XSwgWy0xLjIzMjYzNzIyODgwMzk2LCA1MC42ODIxMTI1MDM1NTg3OV0sIFstMS4yMzA1NzQ2MjcxMTMyNDMsIDUwLjY4MTY5NTk2NTMxNDY2XSwgWy0xLjIzMDAxNTIzMjUyMzc1MSwgNTAuNjgxNjI2NjQzMzYwMTFdLCBbLTEuMjI5MTMzMjkyMzYwODE5LCA1MC42ODE1NDg4OTM1NTMzOV0sIFstMS4yMjc1MTAxNDAyOTY2MDcsIDUwLjY4MTQ0NDY1MjA5MzUyXSwgWy0xLjIyNjg1MjgwMjk3MDE5MywgNTAuNjgxMzkxNzQ3NjI4NV0sIFstMS4yMjY1NzgyMTU2Njg2MzgsIDUwLjY4MTM5MDgyNTYzMjE5XSwgWy0xLjIyNjMwMjE4Mzc3MDQ1OSwgNTAuNjgxMzkyNTkwNDk4OTRdLCBbLTEuMjI1MDMwODI5NDg3MDkyLCA1MC42ODE0OTgzMjQ2NDI4OV0sIFstMS4yMjQzMTE1NzI3MDA5NTIsIDUwLjY4MTUxMzMyMDcxMjE0XSwgWy0xLjIyMzg4NDgzODUxNDIwOSwgNTAuNjgxNTUyNzM1NTgzODddLCBbLTEuMjIyODgwNzIxMTc3MzY3LCA1MC42ODE2NzI5MDExMDUxXSwgWy0xLjIyMjg3OTMyMDg4NTM0NiwgNTAuNjgxNjcyODkxNzcyNDddLCBbLTEuMjIyNDE3ODI1MDQ4OTI5LCA1MC42ODE3NjA2MTczMTgzMV0sIFstMS4yMjE3MDc4MTY0Njk3MDUsIDUwLjY4MTkwMDYyNDQ0MzI3XSwgWy0xLjIyMTExNDUyMjg2MDE3MSwgNTAuNjgxOTk3NDQ0Mjg5NTVdLCBbLTEuMjIwMTYyNjgxNDAyODQ3LCA1MC42ODIyMDg2NDc5MzJdLCBbLTEuMjE5Nzc1MDQ1MjM2NTIyLCA1MC42ODIyODI1NjIzNzQxXSwgWy0xLjIxOTMwMzMwNTc1NTQ2OCwgNTAuNjgyMzg5MDg2NzMxMV0sIFstMS4yMTkwMzI0MDQxMzY1MTUsIDUwLjY4MjQyNTkzMDk4OTg2XSwgWy0xLjIxODU5NjcwNjA3MjczMywgNTAuNjgyNDkxMzM4NDEwOV0sIFstMS4yMTc3NDQ3NzE5NjgwNywgNTAuNjgyNTY3NDM3OTg4ODRdLCBbLTEuMjE3NzA4Njk1Mjg0MzA1LCA1MC42ODI2MTA0MzkzOTE2XSwgWy0xLjIxNzM5ODg0Nzg5MTQyOCwgNTAuNjgyNjAyOTY1OTkxOTRdLCBbLTEuMjE3NDAwNDkwOTc2MTcyLCA1MC42ODIzMjg2ODIzNDcxMV0sIFstMS4yMTc0MTcyODk1NDg1MzIsIDUwLjY4MjA5MDQ2MTY5MjA5XSwgWy0xLjIxNzQzMjE5MTE0MDM0MywgNTAuNjgxOTU5MzAzMDE4NzhdLCBbLTEuMjE3NDc4NTI0Mjg4NzM1LCA1MC42ODE3Mjc1NzM3ODM1XSwgWy0xLjIxNzU4NDM4Njg3ODQ3MSwgNTAuNjgxNDg4MTUyNzAyNzVdLCBbLTEuMjE3NjkxMTc5ODA5MDc5LCA1MC42ODEzNjEyMDY2ODgxOF0sIFstMS4yMTc3NTQ1NTQ1NDAxODcsIDUwLjY4MTI5NzcxMDY4MjY5XSwgWy0xLjIxNzc2NTM1ODY2Nzc4LCA1MC42ODExNjAyMzEyMzcyNV0sIFstMS4yMTc3NjMzOTQ3MzUyMzQsIDUwLjY4MTEwOTg3MjI1NzU2XSwgWy0xLjIxNzU2MjAxNDIxNDU3MSwgNTAuNjgwNzkxMDcyNzkzMDRdLCBbLTEuMjE3NDk2MzgzNDAwNzAyLCA1MC42ODA3Mzc1ODk0NTc5Ml0sIFstMS4yMTc0Njg2NTU3Nzc2MzEsIDUwLjY4MDY5OTY0NDAxNzk5XSwgWy0xLjIxNzQ1Nzg0NjYzMDI3NiwgNTAuNjgwNjY4OTE0NDczMThdLCBbLTEuMjE3NDQzMDk3MTU1ODQzLCA1MC42ODAyNzg1NDU1NDc2Nl0sIFstMS4yMTc0NDU0MTM5OTgwMiwgNTAuNjc5ODg2NDkzMDcwNjJdLCBbLTEuMjE3NDE2NDAyNTM3NDcsIDUwLjY3OTQyMDQxOTczNjYyXSwgWy0xLjIxNzQxNjcwMzI3MjM2MiwgNTAuNjc5MTQyNjIwNzA3NjJdLCBbLTEuMjE3NDY4NjY4ODE5Mzc1LCA1MC42Nzg4MjQ2MjIwNDc0NV0sIFstMS4yMTc1MTYxMjk3NTQyMDEsIDUwLjY3ODYwOTA4MjgzNzMyXSwgWy0xLjIxNzU5NTY5MDEyNTcxMiwgNTAuNjc4MjUyNjEwODc0MzhdLCBbLTEuMjE3NjAyNzM5NTQxNTksIDUwLjY3NzkxMjczMzkxNzI1XSwgWy0xLjIxNzU0ODE2MzU1MzYwNSwgNTAuNjc3MTEwMTYwNzM3MjVdLCBbLTEuMjE3NTUzNTI0NjgzMTU0LCA1MC42NzY4NzE4NjMxMDMyM10sIFstMS4yMTc1OTMxODEyODM4NDMsIDUwLjY3NjYxMzIwNzc0NjE4XSwgWy0xLjIxNzY2NTMyOTQwNzE2MiwgNTAuNjc2MzY1NDY4ODcyNDFdLCBbLTEuMjE3NzA2NzgxNzgyODMsIDUwLjY3NjI1MTQ3OTkxMTk3XSwgWy0xLjIxNzYxNTgzMjIzOTk0MSwgNTAuNjc1ODQ3MTEzOTM3NzddLCBbLTEuMjE3NTg1NTY2MTE4ODE2LCA1MC42NzQ5NDQwMTE4OTgxNF0sIFstMS4yMTc1OTA5NzU3MzQzMzIsIDUwLjY3NDYxODUwODI3OTU5XSwgWy0xLjIxNzY0NDQ3MjMxNTcxOSwgNTAuNjczOTU1MjAwODk3MjldLCBbLTEuMjE3NTM4NTAxMzI5NDA3LCA1MC42NzMzNDU2NjQzNzk4NF0sIFstMS4yMTc0MzY3Njc3NDgzNDIsIDUwLjY3MzA4NTA3MTAzNDFdLCBbLTEuMjE3Mjk2NTQyMjIwNjUxLCA1MC42NzI4Mzc3OTQ1OTc1N10sIFstMS4yMTcyODkzNDE5NzQ2MzIsIDUwLjY3Mjc1ODU0MTQwOTJdLCBbLTEuMjE3MzU2NDAzODkzOTM3LCA1MC42NzIzODEzMDc1OTY4OF0sIFstMS4yMTczNTk1NjQyNjY0NTQsIDUwLjY3MjI4MjQzNTExNzY3XSwgWy0xLjIxNzI4NTI4NTQ5ODU4OCwgNTAuNjcyMTUzMjg0NzgzNTddLCBbLTEuMjE3MjA0NjkxMTQ0MDc2LCA1MC42NzIwNjAxNDMyNDQ3Ml0sIFstMS4yMTcwNjA3Njc4MzE4MzQsIDUwLjY3MTk1MTI5MjgyODgzXSwgWy0xLjIxNjkwNjUyNjM1MjQ3NCwgNTAuNjcxODY2NTU2OTM2XSwgWy0xLjIxNjcxODAxOTk5MTM2OCwgNTAuNjcxODAwNTYwMjU3MDZdLCBbLTEuMjE2NTM5MTE5NjY3MTY3LCA1MC42NzE3NDYzMTUyNTkwNl0sIFstMS4yMTYxMTc3NzkxNjQzNjcsIDUwLjY3MTY0MTg5MjQyNTI5XSwgWy0xLjIxNTczMTMyNjA3MjcwMiwgNTAuNjcxNTY1NTcyNzg3Nl0sIFstMS4yMTUzNzMyMjg2NDgyNjgsIDUwLjY3MTQ4MjE2MDUxODYzXSwgWy0xLjIxNTE4NDcyNTk5ODQxNCwgNTAuNjcxNDE2MTYxMzcyMTddLCBbLTEuMjE1MDExMzU5NDc5OTg3LCA1MC42NzEyODkxMjk1Mjc2Nl0sIFstMS4yMTQ3NjcyMzQxMTA3NywgNTAuNjcxMDc0MzI0NzAwNDddLCBbLTEuMjE0NTMzMzA5MDE5MjA1LCA1MC42NzA4NDk2OTg2OTQ3N10sIFstMS4yMTQyNjkzOTU0ODE1MjUsIDUwLjY3MDYzOTM0NDU1OTI0XSwgWy0xLjIxNDA5NzY0MTIwODg0NiwgNTAuNjcwNDE2MDM1NjUwOTNdLCBbLTEuMjE0MDUxNzU2NjgxNTc4LCA1MC42NzAyNzgwODQyNDE0MV0sIFstMS4yMTQwMTQ1MjMzNzIwOTEsIDUwLjY3MDIyMjk5MjE2NzE3XSwgWy0xLjIxMzk4NTE5NDYzNDQ3NywgNTAuNjcwMTk3NjIxNDkzOTFdLCBbLTEuMjEzODkxMjYwMjUzMTE4LCA1MC42NzAxNDkzMzkzNzk1NV0sIFstMS4yMTM4OTYzMjYyOTE3NiwgNTAuNjcwMDEzNjE5MzkyOThdLCBbLTEuMjEzNzUzNjA0MTg2OTk5LCA1MC42Njk4MzM2NTkzMjU5Nl0sIFstMS4yMTM3MTkxMjk4MzYxOCwgNTAuNjY5Nzc0MDkwNTg2NDVdLCBbLTEuMjEzNjYwMzc3NDMzNjQ4LCA1MC42Njk2NTIyMzQ4Mzc1NV0sIFstMS4yMTM1ODc1NzUwOTI3NDEsIDUwLjY2OTYwMzE5NTk1ODg1XSwgWy0xLjIxMzI4ODQ5MzA0Mzc3NywgNTAuNjY5NDY2MzIzMTE2NDJdLCBbLTEuMjEzMTk3MDU5MjUyMDA5LCA1MC42NjkyNjE1MzU0NDkxM10sIFstMS4yMTMxNzYzMzc4NDg0NzksIDUwLjY2OTIzMDgyODQ0NjRdLCBbLTEuMjEzMDk3ODc2OTA0MDcxLCA1MC42NjkxODUzNDcyMDQ3MV0sIFstMS4yMTI5MzAwMzAxNTc2MDgsIDUwLjY2OTA3MDkzNTkxOTY1XSwgWy0xLjIxMjg3NjY5ODYyODcyNCwgNTAuNjY4Nzg1NDkyMTA4MDddLCBbLTEuMjEyNzYwOTQ5NDYwODYyLCA1MC42Njg2ODg0MjQwMjcwMl0sIFstMS4yMTI2NzUyNjg0NDQ5MDgsIDUwLjY2ODY0OTE4Njk4MjM4XSwgWy0xLjIxMjY1MTkxMzE4MzM5OCwgNTAuNjY4NjA4NTcyNzE3NzVdLCBbLTEuMjEyNjQ2ODczMzAzOTEzLCA1MC42Njg1NjgwODIxMzY5N10sIFstMS4yMTI2ODE1ODczNzY3LCA1MC42Njg1MjI0NjU4MTEwM10sIFstMS4yMTI3MjE3NzcxNTc4MzQsIDUwLjY2ODQ5MTI3MDk5OTVdLCBbLTEuMjEyNzg0NDY2ODQ1MTY0LCA1MC42Njg0NjExMjcxMzA1M10sIFstMS4yMTI4OTI1MzYzNzQzLCA1MC42Njg0MzEyODk2MDA1OV0sIFstMS4yMTI5OTgzOTQ1ODY5LCA1MC42Njg0NDk5ODQ4OTkwMV0sIFstMS4yMTMwODU3NjA4MzI0MzgsIDUwLjY2ODQ3MjE1MTQyOTQ2XSwgWy0xLjIxMzE3MjcwNjU4NTY3MywgNTAuNjY4NTE5NDg4MDE3NzldLCBbLTEuMjEzMjUzNjk1OTU1NDY1LCA1MC42Njg1ODExNjg4OTYxNF0sIFstMS4yMTMzNDY4MjM4NzY0OTUsIDUwLjY2ODYwMDY3NzAwNjI0XSwgWy0xLjIxMzQyNDg0NTIwNTAyNCwgNTAuNjY4NTg4NjE2OTI0OF0sIFstMS4yMTM1NzUxMTE0MzgxMTUsIDUwLjY2ODU2ODA1Mzc3OTQ0XSwgWy0xLjIxMzc1MDcxNTU1NjQ5MywgNTAuNjY4NTYwMjQ3Nzk1NDRdLCBbLTEuMjEzODQyNzU4OTEwNzMxLCA1MC42Njg1NjA4Njg0NzQ2Nl0sIFstMS4yMTM5NDQ5MTY2ODM2MTcsIDUwLjY2ODU0MjY3NzU1MzRdLCBbLTEuMjE0MDg1MzIzMjUyNTE3LCA1MC42Njg1MjU2NDM0MTMwOV0sIFstMS4yMTQyNjA5ODcxMzU3MTYsIDUwLjY2ODUxNDI0MDkyNjQxXSwgWy0xLjIxNDQ4MDMwNDQ1MTU5NiwgNTAuNjY4NTE1NzE4Nzc3XSwgWy0xLjIxNDkxMzg3Nzc0Nzg1MSwgNTAuNjY4Mzk1MzgxNTU5NzFdLCBbLTEuMjE1MjI2MTU0NjU5MzQ1LCA1MC42NjgzMzU0NTA1NzM0XSwgWy0xLjIxNTcwOTEwNzY5NDEwMSwgNTAuNjY4MjI3MjIwMTE5NDldLCBbLTEuMjE2MTIzNjczMjcxNjMzLCA1MC42NjgxNDEwMDM3NDg0MV0sIFstMS4yMTY0OTg3MDcwNTI0MzksIDUwLjY2ODA1MzUzMTMxMzEzXSwgWy0xLjIxNjg5MzQ1MDAyODE4NywgNTAuNjY3OTczNDcyMjM0NDddLCBbLTEuMjE3MzMyMTYyMDQ0ODkzLCA1MC42Njc4ODAyMjE0ODA1MV0sIFstMS4yMTgwNTQ5ODQxOTkxNjEsIDUwLjY2NzcyOTQ0ODczODk3XSwgWy0xLjIxODMwNjI2NjAwOTExLCA1MC42Njc2ODE2ODY4OTAyNF0sIFstMS4yMTg0ODQ5NjQyMzU4NTksIDUwLjY2NzY1NTkxMzg0MDU1XSwgWy0xLjIxODYxNTM3NjIyNTU4NSwgNTAuNjY3NjQzMzAyNDI0OTJdLCBbLTEuMjE4NzcxMTQ0NjA2MTI0LCA1MC42Njc2MzUzNTU5NDI4Ml0sIFstMS4yMTg5NjkzMDEyMDA3OTQsIDUwLjY2NzYzMjE4ODM4OTg1XSwgWy0xLjIxOTExNDk3NDg0NDY0MSwgNTAuNjY3NjM0OTYyMjM0MDJdLCBbLTEuMjE5Mjc4OTQ2MDQxNjEyLCA1MC42Njc2NDU5NDk3MzE5Nl0sIFstMS4yMTk1Njk4MTY3NDQ2MjYsIDUwLjY2NzY4MDI2MjM2Nzg4XSwgWy0xLjIyMDE3MzA1NTQ5MzExNywgNTAuNjY3ODI0NjM4MDIwOTldLCBbLTEuMjIwMzY3MzcxMjYyMTY3LCA1MC42Njc4ODQzNzQ3ODg3OF0sIFstMS4yMjA1MDU1NTUzMzU4MjEsIDUwLjY2NzkxNjc2NDkzNTg1XSwgWy0xLjIyMDU3MTg1NjMwNjM1NCwgNTAuNjY3OTI4ODk1NjM1MzJdLCBbLTEuMjIwNzU2ODgxOTM5ODM3LCA1MC42Njc5NTA4MTAyMTEzMV0sIFstMS4yMjA4OTM5NjYzNzkxOTksIDUwLjY2Nzk1ODAxOTU5MjI3XSwgWy0xLjIyMjAyMTQwOTMxNjQ2NCwgNTAuNjY3OTc1NDM3NjA3NTVdLCBbLTEuMjIyOTc4NTgzMTQ5NTA3LCA1MC42NjgwMjQwNzUyOTE0Nl0sIFstMS4yMjMxMDU2OTA5OTk4NCwgNTAuNjY4MDQyMDAzOTg3MjZdLCBbLTEuMjIzMjI5ODgyNTE2ODI2LCA1MC42NjgwNTk5MTMxMTQzOF0sIFstMS4yMjMyMzk5NzYzMjEyNjIsIDUwLjY2ODA0OTE5MTk1NTI0XSwgWy0xLjIyMzI3NzIxMjY1NDQ3MiwgNTAuNjY4MDE5NzcxOTA4MzZdLCBbLTEuMjIzNDU0MjIxNTU0NTU2LCA1MC42Njc5MjY1NTI0NDAwNV0sIFstMS4yMjM1Mjk0OTg3NzMxODMsIDUwLjY2NzkxMDg3MTE4NzMxXSwgWy0xLjIyMzU3MjE4NDIxMTQwMywgNTAuNjY3ODk3NjY5OTQ4MTZdLCBbLTEuMjIzNjA5MjQyMzY2MTg0LCA1MC42Njc4NzkwMzcwMTY1NV0sIFstMS4yMjM2NDkzNjUxMTI3NDQsIDUwLjY2Nzg1MTQzNDEzOTc5XSwgWy0xLjIyMzc0NzM0MjE2MDUwNiwgNTAuNjY3NzQ2ODA5NjI4NzhdLCBbLTEuMjIzNzk5ODA0NjU1MTUzLCA1MC42Njc2NTAwNjMyMzc5N10sIFstMS4yMjM4MDI5NTgxMzU0OSwgNTAuNjY3NjM1Njk5Njg3OTldLCBbLTEuMjIzNzQzNjI0MjMzMjY2LCA1MC42NjcyMDA4OTEzOTg2NV0sIFstMS4yMjM3NDE5MDgxMTQ4NywgNTAuNjY3MTI4MDU4MjEwNjNdLCBbLTEuMjIzNzU0MjI0MjYyNTUyLCA1MC42NjY5ODI0OTY2ODUwM10sIFstMS4yMjM3NjY3MjUxNTQ5ODMsIDUwLjY2NjkxMDY1NzE4NDM2XSwgWy0xLjIyMzk1Mzg2NDM2NDUzNCwgNTAuNjY2MzcyMzAyNjcyMTddLCBbLTEuMjIzOTk1MjIzODU0NDU4LCA1MC42NjYwMTQ2NzI0MzU2NV0sIFstMS4yMjM5Nzg0Mzg1MTU1NTcsIDUwLjY2NTkxNDY3ODAwNDU2XSwgWy0xLjIyMzkzMzM5MjQyMDM3MiwgNTAuNjY1ODE2MzgzNDI3NDZdLCBbLTEuMjIzOTEyNjUwNjY5ODgxLCA1MC42NjU3ODY1NzcyMjY2NF0sIFstMS4yMjM4MDY5OTQzMDI0NywgNTAuNjY1NjcwNzk3NDY3NzRdLCBbLTEuMjIzNzYxNjk4Mzg5NzE3LCA1MC42NjU1ODc2OTQ4MzYwNl0sIFstMS4yMjM3Mzg4MDkxNzk0NzgsIDUwLjY2NTUxODMxNjc5MzddLCBbLTEuMjIzNzI0OTg1Njc4Mzc0LCA1MC42NjU0MDg1NDI1NjE5Ml0sIFstMS4yMjM1OTAzOTA2ODkzMDksIDUwLjY2NDkwNDAwNzIzNDQ3XSwgWy0xLjIyMzYwNjg5NjA2MDk2LCA1MC42NjQ4NTEwNzQxMTc1OF0sIFstMS4yMjM2MzcxNDczNzkwNDgsIDUwLjY2NDgxMzUxNjExOTg3XSwgWy0xLjIyMzY3OTMxMzgzNTI0NywgNTAuNjY0NjYxNzcwMTcyNTddLCBbLTEuMjIzNzMzMTI2NDA4MTc2LCA1MC42NjQ1NzQ5MjIxMzc1NF0sIFstMS4yMjM3MzU0MTUxOTgyMzUsIDUwLjY2NDUyMDk5NTMwNjk5XSwgWy0xLjIyMzY3NTUzMjI5MjY2NCwgNTAuNjY0NDU5NDYyMjMwMDldLCBbLTEuMjIzNTk0MzU4Mzg1OTgyLCA1MC42NjQ0MDg1NzU3NTExNF0sIFstMS4yMjM1MDUyNTg5ODg1OTcsIDUwLjY2NDIyOTg4MzYyMDUyXSwgWy0xLjIyMzM2NjQ3NzQ5NTczOSwgNTAuNjY0MDcxNTM4MjY3MTNdLCBbLTEuMjIzMjg0NjQxODIwMDM0LCA1MC42NjM4ODM5OTM4OTgyNV0sIFstMS4yMjMxMjUxNzcwOTQyNiwgNTAuNjYzNjAwNTQ0NjMwMzFdLCBbLTEuMjIzMDM0NDIzMzUzMzYyLCA1MC42NjMzNTI2MTU0MTJdLCBbLTEuMjIyOTE2OTI0MDA1ODI4LCA1MC42NjMyNzYzMTMzODM4Nl0sIFstMS4yMjI4NTE2OTQ5ODA0NTksIDUwLjY2MzEwNzY2OTE5MjgyXSwgWy0xLjIyMjc3NDA2OTY4NDg5MiwgNTAuNjYyODQxOTM2NDY1NjFdLCBbLTEuMjIyNjkzNTAwOTcwMTkyLCA1MC42NjI1Nzc4OTIyMTQ0NV0sIFstMS4yMjI2NTcxNTUxNjY5MzksIDUwLjY2MjQ2ODc3Njc2MDc5XSwgWy0xLjIyMjY4NDA1MjE2NDkyMywgNTAuNjYyMzc5OTUxNjQ0MjFdLCBbLTEuMjIyNzE5MDYzNDUxMDk2LCA1MC42NjIzMTU0NTQ1NjA5NF0sIFstMS4yMjI3NTM5MTE0NjMyNjIsIDUwLjY2MjI2MDg0NTc2MTkxXSwgWy0xLjIyMjc1NTI0ODAzMDM2LCA1MC42NjIxNzk4NTE2Mjg1N10sIFstMS4yMjI2OTcxMjMwNzI3ODEsIDUwLjY2MjEwMzk0NTE3NjQzXSwgWy0xLjIyMjYzMDY3NjI4ODIwNywgNTAuNjYyMDE2Mjk1NzUxNV0sIFstMS4yMjI1NzI4NTA1NDEzNDIsIDUwLjY2MTkxNTIxODI1MDk4XSwgWy0xLjIyMjUyMjA2NTQxMzk3LCA1MC42NjE4MjU3ODUyMjMxMV0sIFstMS4yMjIzNzk1NzUyOTY1NjMsIDUwLjY2MTcxNjA1MTY2ODE2XSwgWy0xLjIyMjMwMDE5NTIwMjU2NSwgNTAuNjYxNjM0NjA5MDI1NDldLCBbLTEuMjIyMjg0NzY3OTg2ODAyLCA1MC42NjE1NDQ1MTI3MDk3N10sIFstMS4yMjIzMDcxOTg5MDQxMzcsIDUwLjY2MTQ3MTg0MDUwMzgyXSwgWy0xLjIyMjI5MTQzMDk1OTkwNywgNTAuNjYxMzk1MzE3MzQyNjJdLCBbLTEuMjIyMTUyOTAxNDU5NDgxLCA1MC42NjEyMTUzOTUyODAxNV0sIFstMS4yMjIwODY0ODY2MTk4NjQsIDUwLjY2MTEyNTk0NzY2OTc2XSwgWy0xLjIyMjAxNDIzMzkwOTEyMiwgNTAuNjYwOTU5MTQ0MDQzMDVdLCBbLTEuMjIxOTc1MjkzNzI0NTQ4LCA1MC42NjA2NjEyMTM2NDY0NF0sIFstMS4yMjE5MzU0ODE3ODI4MTgsIDUwLjY2MDUwMDgyOTc4ODM0XSwgWy0xLjIyMTc1NTA2ODYxMjExNCwgNTAuNjYwMDMyMDM3MzY4M10sIFstMS4yMjE2NjQyNTU2ODY4MTQsIDUwLjY1OTg4MDMwMzI4NDU4XSwgWy0xLjIyMTQ4MDI1MjEwNDA4MiwgNTAuNjU5NjI5MDUyOTY0ODRdLCBbLTEuMjIxNDIwNDIyODgzODkxLCA1MC42NTk1NjQ4MjE5MTA1Nl0sIFstMS4yMjEyMzY1NzE1NzY3MzQsIDUwLjY1OTM4OTE4MTA4MDY5XSwgWy0xLjIyMTMzMDk3OTAzOTQ5NywgNTAuNjU5MzMwMzg1NDM4MzddLCBbLTEuMjIwODEzODA4MDk0MDYxLCA1MC42NTg4NjIwMzg4MTE0XSwgWy0xLjIyMDQ1MjMzOTE0NjQyMSwgNTAuNjU4NDgwMTM5NDQ1OTJdLCBbLTEuMjIwMjU2NDgzNTAwNjEsIDUwLjY1ODI2MjA3MjE3MzU0XSwgWy0xLjIxOTkyNzY3MDYxNTg5MSwgNTAuNjU3ODY2OTAzOTk5MzRdLCBbLTEuMjE5NzgwMDIwOTQyNTY1LCA1MC42NTc2NDAxNjgwODM0M10sIFstMS4yMTk3MjAyOTgyODkzNjYsIDUwLjY1NzU3NjgzNTg3Mjk4XSwgWy0xLjIxOTUwNjg3MDYxNTQzNiwgNTAuNjU3MzkxOTE0MDAzNTVdLCBbLTEuMjE5NDU2ODgzNTA1NzAyLCA1MC42NTczMzk0MzUyNjEwNF0sIFstMS4yMTkyMzAxNTM3MTkwNDEsIDUwLjY1NzAxNDE3NDIyMTgyXSwgWy0xLjIxODk0MTc4MjgzODkyLCA1MC42NTY2NjQyMjU3ODM4XSwgWy0xLjIxODgwOTA1Njk0MjEyOSwgNTAuNjU2NDczNTQ5OTk1MDddLCBbLTEuMjE4NzM5MTU3MTE0MzYsIDUwLjY1NjM0MTgyMjMzNDEyXSwgWy0xLjIxODYyNTE4NDYzMDA5NywgNTAuNjU2MjE2MDkyNDkxMDhdLCBbLTEuMjE4NDQ1NjQzNjA5MDI4LCA1MC42NTYwNDIxODQxNjQ5Nl0sIFstMS4yMTc5NzkyMDEzMDgzODcsIDUwLjY1NTY3NjY1NDc0NzMzXSwgWy0xLjIxNzQ3MDAzNDkwMDY1NiwgNTAuNjU1MjQzNDA4OTM1NzNdLCBbLTEuMjE5OTA4Mjk0MzE4NDg2LCA1MC42NTM4MjQ0Mzg4NTE4MV0sIFstMS4yMjA3MTExMDI1NTk1NTMsIDUwLjY1MzM1MTM0MTAzNTQyXSwgWy0xLjIyMTE2MzUwNjc1MTQ2OSwgNTAuNjUzMTEyNTIzNTgxODNdLCBbLTEuMjIzMzY4MzM2MTc1MTI5LCA1MC42NTIwMzAwNDg5MTYzXSwgWy0xLjIyMzM2OTc1MDQwMzA2LCA1MC42NTIwMjkxNTkzMDE0NV0sIFstMS4yMjM1NjgwNzExNTcxMzMsIDUwLjY1MTkyNzA5MTE1MTI0XSwgWy0xLjIyMzc5MDI5NTY5NzAxNiwgNTAuNjUxODMyMzc0MTE3ODNdLCBbLTEuMjIzODk2MTMxNjg3NTEyLCA1MC42NTE3NTgzNjg4MzcyXSwgWy0xLjIyMzk0MDc2NDM2ODQ4OCwgNTAuNjUxNzExMDE3MDM3NzNdLCBbLTEuMjIzOTgxNDk0ODY0NzIsIDUwLjY1MTY0NTY1ODUxNjEzXSwgWy0xLjIyNDA4NjQzMzA1NzgzNCwgNTAuNjUxMzcxMTYxOTUxMDVdLCBbLTEuMjI0MTE1NzMyOTAxMjE5LCA1MC42NTEzMTI5MTk1OTA1M10sIFstMS4yMjQxNzY4OTYxMTUwMjIsIDUwLjY1MTIwMzY0NDE5ODc4XSwgWy0xLjIyNDI1NjY2MzMzMjQ0OCwgNTAuNjUxMDgzNjE0MjMxNTNdLCBbLTEuMjI0MzU1MDAxODAxMDI3LCA1MC42NTA5NTQ4MDczMTI4NV0sIFstMS4yMjQ0NjAyNDkzMTA5NjMsIDUwLjY1MDgzMTM1MDU4OV0sIFstMS4yMjQ3MTIyNDYxMjY4MTEsIDUwLjY1MDU2NDEyNDkyOTg3XSwgWy0xLjIyNDc0MTI1MDU4OTA4OCwgNTAuNjUwNTE2NjY4ODgxNTldLCBbLTEuMjI0NzYwNDU5NDM4MzY1LCA1MC42NTA0NjkxNDc2ODQzNl0sIFstMS4yMjQ4MzcyNDE5MjM2NCwgNTAuNjUwMDEyODU3NzU3M10sIFstMS4yMjQ4NzY3MTc0NjkzNTUsIDUwLjY0OTc2MTMwMDA2NjM1XSwgWy0xLjIyNTY4NTE1MjUyNzAwNSwgNTAuNjUwMDU5ODQ4NTE0NTNdLCBbLTEuMjI2MTk3MTY2NTkwNjU2LCA1MC42NTAxNTA0NTQ4MzU1Ml0sIFstMS4yMjY2MzQ4NjQyNjc3MjksIDUwLjY1MDIwMDEwOTI2MjAzXSwgWy0xLjIyNjkwNTk3MDkxODI2LCA1MC42NTAyMjQzODMzOTE1Nl0sIFstMS4yMjcwMTU2OTcxMzUyOTIsIDUwLjY1MDI2MTA3MjQ3Mzc4XSwgWy0xLjIyNzA3ODg3OTkxNjE2LCA1MC42NTAyOTEyNDk1MTYxM10sIFstMS4yMjcxODExMzc4MjQ2ODksIDUwLjY1MDM1NjY1ODA5MzQ4XSwgWy0xLjIyNzIyODkwMjQ4ODQ0NiwgNTAuNjUwMzc0MDU2NDI1NjldLCBbLTEuMjI3MjczOTg2Mzk1MTEsIDUwLjY1MDM4NDI0NDY3NjYyXSwgWy0xLjIyNzI5Nzk5NDA1NTExMiwgNTAuNjUwMzg1MzAyODQ2NDJdLCBbLTEuMjI3MzQ2NDA2MDU5NjczLCA1MC42NTAzNzAzNDAxMDY3MV0sIFstMS4yMjczNzIwOTMxMzUyOSwgNTAuNjUwMzU0MzI3Njk4NTldLCBbLTEuMjI3NDIwNzQyMjA2MDk1LCA1MC42NTAzMTc3ODk2MjI5MV0sIFstMS4yMjc0NzQwMTY4NjUwNjIsIDUwLjY1MDI2MjMxMjUwOTM2XSwgWy0xLjIyNzk3MDc2MzYwMTE0MiwgNTAuNjUwMTYwNDE2MDM1NDVdLCBbLTEuMjI4MjQ1OTYzOTIzOTg4LCA1MC42NTAxMTI3OTEyMzY0OV0sIFstMS4yMjgzNzgxMDY4ODExNjQsIDUwLjY1MDA3NjgwNTQ3OTEzXSwgWy0xLjIyODYxNzM1NDU3NzgwMSwgNTAuNjUwMDY2NzAxMzU4NjhdLCBbLTEuMjI4Njk2NjUyNDE5MTEzLCA1MC42NTAwNjAwMzM3NTU2N10sIFstMS4yMjg4Mzg1MzA0MzIwMjksIDUwLjY1MDAzNDkwMDMyNTA3XSwgWy0xLjIyOTI0NTA2MjQwMDM1MiwgNTAuNjUwMDAwNzI4MzgyMTFdLCBbLTEuMjI5MjgxODk4MzI0ODI1LCA1MC42NDk5OTQ2Nzg2NjY4OF0sIFstMS4yMjkzMjMyMTA2MzYwNTksIDUwLjY0OTk3ODc2OTEzMjAxXSwgWy0xLjIyOTQwNDY4ODIwMzk0OSwgNTAuNjQ5OTI0Mzc2NjIwMDldLCBbLTEuMjI5NDgyNDA3MDQ4NzIzLCA1MC42NDk4NDMwNzgwMTYwNl0sIFstMS4yMjk1MjI4NjQ2MzU0MzksIDUwLjY0OTc4NjcwNjExODIzXSwgWy0xLjIyOTUzNTg4MzA1MzI2OSwgNTAuNjQ5Nzc1MTA0Njg1MDldLCBbLTEuMjI5NTY3MTM3MDQ5MTQ2LCA1MC42NDk3NjA5MjY2NTkzM10sIFstMS4yMjk2MTI1ODczNDQ0LCA1MC42NDk3NTU4MzI4MDc0NV0sIFstMS4yMjk2NTkxODgwOTk2NjksIDUwLjY0OTc1ODgzNzg2ODc2XSwgWy0xLjIyOTc0MjE4MzcxMDI0MSwgNTAuNjQ5NzgyNzYxMjMxNjddLCBbLTEuMjI5Nzc5MDQ3ODUyMDQ4LCA1MC42NDk3ODIxMDU3NjUwMV0sIFstMS4yMjk4MjE3MDAzODQzODUsIDUwLjY0OTc2OTgwMTA1NDUxXSwgWy0xLjIyOTg1MzAxMzA2MDQ4MiwgNTAuNjQ5NzUyMDI3MTkzOTJdLCBbLTEuMjI5ODY0NTQ0ODE0NzYxLCA1MC42NDk3Mzg2MTc4Mjk2NF0sIFstMS4yMjk5MDY5MTU5NDAyNDMsIDUwLjY0OTY1Nzg5NDU1MDY0XSwgWy0xLjIyOTk1MDE0MTI0OTM4MiwgNTAuNjQ5NjEwNTMxMTUyNzldLCBbLTEuMjI5OTk0NDU3MzMyNzMyLCA1MC42NDk1ODIwNTQ3MTA1M10sIFstMS4yMzAwNTI3NjU4NjE3MiwgNTAuNjQ5NTYwODYyOTYwNzldLCBbLTEuMjMwMTQ3ODk0MjI2NjUyLCA1MC42NDk1NDE3MTI0MTU4OV0sIFstMS4yMzAyMzE0NjI0MTk0MzYsIDUwLjY0OTUzMDU3Njc4ODU4XSwgWy0xLjIzMDQyMzkwMDg3MjczMSwgNTAuNjQ5NTMwMDQ5MjY2MjZdLCBbLTEuMjMwNDgwNjMzNjQ2NDQ2LCA1MC42NDk1MTk2MzUzMzg1XSwgWy0xLjIzMDY4MjY3MTU0MjcwNiwgNTAuNjQ5NDQ1NDQ5NzYxMzNdLCBbLTEuMjMwNzMxMDA4MTQxNzkxLCA1MC42NDk0MzQ5ODAzMDI0XSwgWy0xLjIzMDc4NDgzOTM0MjkwMiwgNTAuNjQ5NDMwODQwMzM1MDZdLCBbLTEuMjMwOTEyMDE4Mjk2MDMxLCA1MC42NDk0MzQzNzY1NTk4NV0sIFstMS4yMzA5NDE4ODYyMzExNTEsIDUwLjY0OTQyNjQ4MjI3NzExXSwgWy0xLjIzMDk3MzQxNzU2NDIzOCwgNTAuNjQ5NDAyNDE2MzAyNzVdLCBbLTEuMjMwOTg0NDg5OTU0OTExLCA1MC42NDkzMzEzNzU1NTY3NF0sIFstMS4yMzEwMDE3Nzk5ODU4NzQsIDUwLjY0OTMwODExNDY2Mzg5XSwgWy0xLjIzMTAzNDc1NDU0ODY5LCA1MC42NDkyODEzNjEwODM1M10sIFstMS4yMzEwNzMxMzU3MDQ0NjUsIDUwLjY0OTI2NjMzMDYzMDU4XSwgWy0xLjIzMTExMTQ4Njc2NzE0NiwgNTAuNjQ5MjYwMjkwMzMxNzldLCBbLTEuMjMxMTU2NzAyNDcwNjgyLCA1MC42NDkyNjIzODY2MjM0OV0sIFstMS4yMzEyNjY2OTM3ODAyMjMsIDUwLjY0OTI4Mjg5MDc5NzU3XSwgWy0xLjIzMTMwMDY1NjkwNDY5NiwgNTAuNjQ5MjgxMzE2NjgzNTRdLCBbLTEuMjMxMzUzMzM3ODI4Mjc0LCA1MC42NDkyNjE4ODUyNDgyM10sIFstMS4yMzEzNjE5OTcwNTgxMTIsIDUwLjY0OTI1Mjk1MTk3ODEyXSwgWy0xLjIzMTM2MzE0MDc4MzczNiwgNTAuNjQ5MTgyODM0NjcwNjJdLCBbLTEuMjMxMzczNDkyNTgzOTEyLCA1MC42NDkxNTU5MzE4Mjg5Nl0sIFstMS4yMzE0MTM0MTk0NzkxNywgNTAuNjQ5MTMxOTIxMDkwNDVdLCBbLTEuMjMxNjczMTQ1MTY1MjkyLCA1MC42NDkwODE0ODkwNzM0M10sIFstMS4yMzIwMjk4MjMwODYxNTgsIDUwLjY0ODk3ODU2MjE2MDg0XSwgWy0xLjIzMjI3MjY4MzMwMjkyLCA1MC42NDg5MTgxMjgzMDAxM10sIFstMS4yMzIzOTczNjk4NjcwNzksIDUwLjY0ODkwMjc2NjcyNTU5XSwgWy0xLjIzMjY5NDUzNjc0ODAwOSwgNTAuNjQ4ODk0ODMzNjgyMjhdLCBbLTEuMjMyNzQ3MDQxMDMwOTAxLCA1MC42NDg4ODYxODg4OTMzXSwgWy0xLjIzMjgwMjQ2MTAxOTE5NSwgNTAuNjQ4ODcwMzcwOTc3MzRdLCBbLTEuMjMyODM5NTAwNTAwNTI1LCA1MC42NDg4NTE3MzQ5Njc2MV0sIFstMS4yMzI5MjU1Nzc4MzM2NDcsIDUwLjY0ODc3OTQ3OTQzOTc2XSwgWy0xLjIzMjk2OTgwMzU0OTkwMSwgNTAuNjQ4NzU2Mzk1NDkxOTldLCBbLTEuMjMyOTkyNTQyODkwOTc3LCA1MC42NDg3NDkzNTI4MTY0MV0sIFstMS4yMzMwNDkwOTg1OTk3NzYsIDUwLjY0ODc0OTcyNDkxMzI4XSwgWy0xLjIzMzEwNTk3NzYyNDcxMiwgNTAuNjQ4NzMwMjMwNDAyNDldLCBbLTEuMjMzMTkwNjI1NzU3Mzg0LCA1MC42NDg2NTk3NjMzNDk2N10sIFstMS4yMzMzNDc0ODQ0NDU5NzUsIDUwLjY0ODU4MDc4MDc4NDkzXSwgWy0xLjIzMzM4NzI5MjQ3NDI3LCA1MC42NDg1NzExNTMxNzM3OV0sIFstMS4yMzM0Mjk2NTA4ODksIDUwLjY0ODU2OTYzMzY0ODc5XSwgWy0xLjIzMzQ2NTAyNjk5NTI3NiwgNTAuNjQ4NTc0MzYxNDUyMjFdLCBbLTEuMjMzNTMyNDQwMzM3NjE4LCA1MC42NDg2MDI2NzQ4NDEwOF0sIFstMS4yMzM2MDAxOTAwMjQ1MjYsIDUwLjY0ODYxMDMxMjU2MTkyXSwgWy0xLjIzMzYzODM5NDM4OTA5MywgNTAuNjQ4NjA2MDY4NTQxMjRdLCBbLTEuMjMzNjcxMDg5MjEwMjQsIDUwLjY0ODU5NjM5NDA3MDgyXSwgWy0xLjIzMzg0MzgyMDk3NzU0OCwgNTAuNjQ4NTAyMjMxNTYyNV0sIFstMS4yMzM4ODA4MDEzMDA2MDYsIDUwLjY0ODQ4NzE5MDk3OTQ0XSwgWy0xLjIzMzk2NDYwMDI4MDY5MiwgNTAuNjQ4NDY4ODYxOTAzMjJdLCBbLTEuMjM0OTg1NTE1NDc3MDIyLCA1MC42NDg0MDM1NTMyNTY5Nl0sIFstMS4yMzUwMDk0MzQ3NTk4LCA1MC42NDg0MTAwMDM0NzkxNV0sIFstMS4yMzUwNjI3NTM3MDk4OTQsIDUwLjY0ODQzNzMyNDQ1MzhdLCBbLTEuMjM1MTM2MzYwNDIwODY1LCA1MC42NDg1MTUyMTQ0NjMxMV0sIFstMS4yMzUxNDg4MjI2Njc5ODksIDUwLjY0ODUzNzc3MjE0MDk1XSwgWy0xLjIzNTE2MTc1MDU3MTUyNCwgNTAuNjQ4NjEwNjc4OTE0MzZdLCBbLTEuMjM1MTcyNTgwMjExMjE1LCA1MC42NDg2NDA0MTgxNjk0MV0sIFstMS4yMzUxODkyMTEzODE2MDcsIDUwLjY0ODY1NzYwODk3NTE5XSwgWy0xLjIzNTI0NjgxNjA5MzYwNywgNTAuNjQ4Njg2NzU2MDU0MDJdLCBbLTEuMjM1NTI0MjI4MzQwMjYxLCA1MC42NDg3NjA1ODg0MjA0N10sIFstMS4yMzU2NjQwNDM0MjU2NDIsIDUwLjY0ODc3NTg4OTgwMDM0XSwgWy0xLjIzNTgyNjU2ODQwMDQ2NiwgNTAuNjQ4Nzc4NzUzMzcyOTldLCBbLTEuMjM2MTcyMjAxMzM0NTksIDUwLjY0ODc1MjE1OTQ5MTAxXSwgWy0xLjIzNjM1MTEyMzQzMDEzMiwgNTAuNjQ4NzkzODc4MjM3MjZdLCBbLTEuMjM2NTEwODc5MTAyOTI1LCA1MC42NDg4MDIxMTY5MzI1M10sIFstMS4yMzY1NzE0NzI2ODAyOTQsIDUwLjY0ODgxMjQwMzE2NDk5XSwgWy0xLjIzNjY3OTcwMTk5NjUzNSwgNTAuNjQ4ODU1MzY2NTk4MzRdLCBbLTEuMjM2NzE2MzE3NjgyNTQyLCA1MC42NDg4NjI3OTg2MzldLCBbLTEuMjM2ODcwMzc0MzIwNTQzLCA1MC42NDg4NzAxMDA0ODkzMl0sIFstMS4yMzcwMTQ4NTQwODM5NTEsIDUwLjY0ODg2Mzg1MzkxMDMxXSwgWy0xLjIzNzEzMzQzMjE5MzIxOCwgNTAuNjQ4ODcyNzIxMjcyNTNdLCBbLTEuMjM3MjgwMDg0OTIzODYzLCA1MC42NDg5MDUxNDcxNDY3OV0sIFstMS4yMzc1ODgyNzQ1MTgzMjgsIDUwLjY0OTAwMTU2MTk1NDg2XSwgWy0xLjIzNzYzMjAwMzcwMzI0NywgNTAuNjQ5MDA5MDQwMjI5NzJdLCBbLTEuMjM3Njg4NTMwNzAwMzIzLCA1MC42NDkwMTEyMDc5NTg4OF0sIFstMS4yMzc3MzgwNjA3OTQwNjQsIDUwLjY0OTAwNjEzNzYxOTFdLCBbLTEuMjM3NzYwOTAxNjIyODYsIDUwLjY0ODk5OTk5MzcxNDQ2XSwgWy0xLjIzNzg4Nzc0MjAwNTY4LCA1MC42NDg5Mzc4OTA0NjQyXSwgWy0xLjIzNzkyMDM5MjU4NDU2MSwgNTAuNjQ4OTMwOTExNjIzMDhdLCBbLTEuMjM3OTgzOTAxOTAxMDI1LCA1MC42NDg5NDEyMTYxODA2OF0sIFstMS4yMzgwOTQ3NDI1MTUzODgsIDUwLjY0ODk5NTg4MjgzNjI4XSwgWy0xLjIzODI1Mjc4MjY2Nzc3MiwgNTAuNjQ5MTAzMDkxODIxNl0sIFstMS4yMzg5ODc5NzM2NTA5OTUsIDUwLjY0OTM5MTk4ODk2MDEyXSwgWy0xLjI0MDE1Mzc2NTk0MzI1MywgNTAuNjQ5ODk2OTQwMjU1NDNdLCBbLTEuMjQwNTk3Njg0MzU1NTYyLCA1MC42NTAwODk2MTkzODc4Nl0sIFstMS4yNDIwMTQ3MjkyMDE4ODYsIDUwLjY1MDcxNzU1ODIwOTE0XSwgWy0xLjI0MjE5MzM3MjIyNDI1LCA1MC42NTA1MTYzNDY2MzkwNV0sIFstMS4yNDI0MzYyOTE4NzA4OTIsIDUwLjY1MDI3Nzc5Mjk5NzY3XSwgWy0xLjI0MjQ1MjQ5NTE5ODU1LCA1MC42NTAyMzQ3NDQ1Njg4NF0sIFstMS4yNDI0ODMzNjEzMTYyOTcsIDUwLjY1MDA3NzYxMzg1NDY3XSwgWy0xLjI0MjUxOTcyMjU3NTQ3LCA1MC42NTAwMTM5Mjg2NzAwN10sIFstMS4yNDI1Nzg1NDYyNTY0MTgsIDUwLjY0OTk2MDM2ODcxODA4XSwgWy0xLjI0MjYwMDYzNjc2MDc1MywgNTAuNjQ5OTA2NTcwMDg1NDddLCBbLTEuMjQyNTk3NjM3OTc0NDE3LCA1MC42NDk4MzE5MzA2MTcxOF0sIFstMS4yNDI1NjIyNzkxNjA4MzYsIDUwLjY0OTc0NjIwMjU2MjA0XSwgWy0xLjI0MjU2Mjc5OTM0OTcwNywgNTAuNjQ5NzEzODQwNjQ2MzRdLCBbLTEuMjQyNTgxNzE0MzYwNTUyLCA1MC42NDk2NzYyMDQwMzA4M10sIFstMS4yNDI2MTA2MTQ2NDEyNjMsIDUwLjY0OTY0MTMyOTM5NDM2XSwgWy0xLjI0MjY4NjU0OTc5MTYzMiwgNTAuNjQ5NTgyNDg2MzQwODldLCBbLTEuMjQyNzQwNzcwMjE3OTU3LCA1MC42NDk1NTQwNjk0MDg2Ml0sIFstMS4yNDI4Njg3NDQ5NDg1MjEsIDUwLjY0OTUwODE1MDc2OTc0XSwgWy0xLjI0MzA4NzQ4NTU5MTU1MiwgNTAuNjQ5NDUyOTMxOTYxMTZdLCBbLTEuMjQzMTE1Mjg5NTgzNDMsIDUwLjY0OTM5MTg4ODEzMzE5XSwgWy0xLjI0MzE4NTA0OTk1OTA3NiwgNTAuNjQ5MjgxNzU5NjEwMjhdLCBbLTEuMjQzMjMyNDE2MzEzNzg4LCA1MC42NDkyMzcxMTUzMDM0NV0sIFstMS4yNDMzMDY1NjA5NTE0MDYsIDUwLjY0OTIwMjUzNDE5NDU5XSwgWy0xLjI0MzMyMzU0MTczNjcxOCwgNTAuNjQ5MTk4MTQ5MjM1NV0sIFstMS4yNDMzNTM4Njg1NzgwOTcsIDUwLjY0OTI0ODY5MjA5NjU4XSwgWy0xLjI0NDgzMTU5MTYyMjg2NiwgNTAuNjQ4OTIxOTQ0NjYyNDFdLCBbLTEuMjQ1NzUzMzM5MjI4MDY3LCA1MC42NDg4NTg2ODYyNjAwMV0sIFstMS4yNDYxOTE5NjY2Mzg5OTMsIDUwLjY0ODg1MDczNDkzMDg4XSwgWy0xLjI0NzM0NjM1NTUyNDI1MiwgNTAuNjQ4NzUyMDE3NjQyNTVdLCBbLTEuMjQ3ODA0MjAwOTcxNjQ5LCA1MC42NDg3NzQ3NTE1NDUzOF0sIFstMS4yNDc4ODExNDc3ODg5NTUsIDUwLjY0ODgyNzM5MjA5NjQ3XSwgWy0xLjI0Nzk1OTc2NzA4ODA3MywgNTAuNjQ4ODcwMjQzODkzOTNdLCBbLTEuMjQ4MDU2NzY3NTM4NTQ4LCA1MC42NDg5MDg2MjkxMTkxNF0sIFstMS4yNDgxODIxMDI2NTA5MzgsIDUwLjY0ODk0MDAwNDcxNDU1XSwgWy0xLjI0ODMxMzI2NjU3MDg5OCwgNTAuNjQ4OTY0MjI1NDcyMTldLCBbLTEuMjQ4NDMzMzA1NzcyMzcyLCA1MC42NDg5NzY2ODY4OTQ4OF0sIFstMS4yNDg4MTE5NzUyNzA3NzQsIDUwLjY0ODk5ODkwNjM1NjEyXSwgWy0xLjI0OTU0NDI2ODUwNzE0MywgNTAuNjQ5MDI2OTk3NzExMDRdLCBbLTEuMjQ5NjQ1ODI2NDMyNzIsIDUwLjY0OTA0MjkzNTA1MjQ0XSwgWy0xLjI0OTgwNTExMzIwMjA2MiwgNTAuNjQ5MDgwODIwNjc3NDRdLCBbLTEuMjUwMDYwNTY0NjU3MDQzLCA1MC42NDg5Mzg2MTg1NjA3OV0sIFstMS4yNTAzODk5MDk0ODA5NCwgNTAuNjQ4NzY5ODMwMDgwNzNdLCBbLTEuMjUwNzM4MDkxNjM1MTk4LCA1MC42NDg1ODIzNzE4OTQ4XSwgWy0xLjI1MTAzODgxMjAzODAzMSwgNTAuNjQ4NDM4NTcwNjA0MzRdLCBbLTEuMjUxMjA3NDc5OTIwODAyLCA1MC42NDgzMjYzNzU2MDI2M10sIFstMS4yNTEyODE5NDU4MTY1MTEsIDUwLjY0ODI3MTExMzY2NzgzXSwgWy0xLjI1MTQwMzc1Mzg4MTE2NSwgNTAuNjQ4MTY0ODIwNzU3MzJdLCBbLTEuMjUxNDgyOTE5MzMyODgsIDUwLjY0ODA4NTMxNDkwMzI3XSwgWy0xLjI1MTU2MzcwOTg1NzY4NCwgNTAuNjQ3OTg0MjQyNTY2ODNdLCBbLTEuMjUxNjAyMTgzNDA3OTA2LCA1MC42NDc5NjI5MTI3MDY3NV0sIFstMS4yNTE2Mjc3NDkxNjkwODIsIDUwLjY0Nzk2MTI3ODc2MDldLCBbLTEuMjUxNjY5ODkyMzkyMzgsIDUwLjY0Nzk3MzIzNjc2NDQyXSwgWy0xLjI1MTc4NTIwNDAwMjQ4MywgNTAuNjQ4MDE4OTI4NzE5MzldLCBbLTEuMjUxODMzMTQ2NzYyNjk2LCA1MC42NDgwMjU1Mjk2NzEzXSwgWy0xLjI1MTg5ODIyODUzNDQyNSwgNTAuNjQ4MDI1MDQ4MzA0MjddLCBbLTEuMjUxOTc2MjkxNzM4MDIsIDUwLjY0ODAwNzU2ODUxNzRdLCBbLTEuMjUyMTM1NzYxMTYzODE3LCA1MC42NDc5NDU2NTkxNTcyNV0sIFstMS4yNTIxNzk3NDg1MTI3MDYsIDUwLjY0NzkzNjk1MDk4MTY1XSwgWy0xLjI1MjMyODI0NzgyMjA5NCwgNTAuNjQ3OTM0MzA3MzUzMjJdLCBbLTEuMjUyNDQwMTczODIwNjcxLCA1MC42NDc5MjE0NDk3MTA0M10sIFstMS4yNTI3MTMwMDg3MzU5NjMsIDUwLjY0Nzg0NDA4MzgzNjkxXSwgWy0xLjI1Mjc0MDAxMzg4NDMzOCwgNTAuNjQ3ODMyNTY5NDc5NjFdLCBbLTEuMjUyNzcxNDYxNzk4NTkzLCA1MC42NDc4MTI5OTIyNzA3Ml0sIFstMS4yNTI3ODg4NTcxNDgxNjYsIDUwLjY0Nzc4OTcyODgzODEzXSwgWy0xLjI1MjgxNTM4OTQwMDcwNiwgNTAuNjQ3NzE5Nzc0MTAwMTZdLCBbLTEuMjUyODMyNzEzNDMwMzQ5LCA1MC42NDc3MDEwMDUzODMwOF0sIFstMS4yNTI5NDQzMjEwNjU3ODYsIDUwLjY0NzYxOTkwODM5MjZdLCBbLTEuMjUzMDA2Nzg3NzQ2Njg1LCA1MC42NDc2MDA0Mzk5OTE3OV0sIFstMS4yNTMwMzA4NTE2MTgyNDMsIDUwLjY0NzU5Nzg5NzA3ODc0XSwgWy0xLjI1MzE0NjY2MjI4MDkyNywgNTAuNjQ3NjEyMTI0NjMwM10sIFstMS4yNTMzODQzMDgyNDM5MzEsIDUwLjY0NzYxMzY0Njg5NjgyXSwgWy0xLjI1MzU4MTAxOTYwOTc3OSwgNTAuNjQ3NjAwNTIyMDExODRdLCBbLTEuMjUzNjgyOTM0NDk0OTIzLCA1MC42NDc2MDExNzQ1MThdLCBbLTEuMjUzODc3Nzc2NzYzNDg2LCA1MC42NDc2MTc3MDUzNDk2M10sIFstMS4yNTQwMDc0ODIzNzE0MjQsIDUwLjY0NzY0NTU5NjQxNzk2XSwgWy0xLjI1NDA2MjI5NjIzODE0NywgNTAuNjQ3NjY3NTI0MDMyMl0sIFstMS4yNTQxNDYxNzY0MDk1ODIsIDUwLjY0NzczMTg5MjI3NTddLCBbLTEuMjU0MjQzMTIyNzE4NTY0LCA1MC42NDc3NzM4NjgxNDk3Nl0sIFstMS4yNTQ0MTYzNzYzMTAyMzgsIDUwLjY0NzgyMDgyNzE4NjU0XSwgWy0xLjI1NDY1NDY1MjA1NTQ3NywgNTAuNjQ3ODYzNzA2NTM0Ml0sIFstMS4yNTQ3OTU1NTc0OTk4NjEsIDUwLjY0Nzg5ODc3MDcxMTk1XSwgWy0xLjI1NDg4NzM3NjU4NTUwMSwgNTAuNjQ3OTExMDQ1MDkwODNdLCBbLTEuMjU1MTcwMjY1MjAxNzQ2LCA1MC42NDc5MDU2NjA1OTMwM10sIFstMS4yNTU5ODM4NjcwMjMwODcsIDUwLjY0Nzk3NTY3NjUzMDI5XSwgWy0xLjI1NjEwOTM3ODM5OTk0OSwgNTAuNjQ4MDAzNDQ4NTgwMjldLCBbLTEuMjU2MTgzODQzNzU3NTc1LCA1MC42NDgwMjkwOTY3MzMyXSwgWy0xLjI1NjI3NjYzNzE1OTAxMSwgNTAuNjQ4MDY4MzQ3MzAzM10sIFstMS4yNTY0MDI3OTMzMzk3OTEsIDUwLjY0ODEzNjU3OTc1NTIyXSwgWy0xLjI1NjU1ODQ3ODk3NjUwNywgNTAuNjQ4NDAyODc4MTM2OTFdLCBbLTEuMjU2NjA0MTQ0Mjc1NzE5LCA1MC42NDg0NjUyMDI4MDc3MV0sIFstMS4yNTY2NTQyODAyMzkzNzgsIDUwLjY0ODUxNzY2NjU3NTJdLCBbLTEuMjU2ODUyMTc0Njg3MDE1LCA1MC42NDg3MDMzMjA0NzYzN10sIFstMS4yNTY5MDkzNzg2Nzc3MDksIDUwLjY0ODc1MTMzNDAwOTkyXSwgWy0xLjI1NzE4OTI5ODI3NDM1OCwgNTAuNjQ4OTQyMDA1MzI2NTZdLCBbLTEuMjU3MjMyNDM1NDgwMzkxLCA1MC42NDg5ODcyMzE5NTkxNl0sIFstMS4yNTcyODc2MTc0NjIxMTQsIDUwLjY0OTA3NDc4OTk4MjAzXSwgWy0xLjI1NzMyOTUyNTU1ODg5OCwgNTAuNjQ5MTA5MjIwMzIwNjZdLCBbLTEuMjU3Mzc4NzMxMTc1MDU3LCA1MC42NDkxMzIwMDk2Njk3NF0sIFstMS4yNTc0MjM4MDYzNzM4NDQsIDUwLjY0OTE0MzA4NTIyNjU0XSwgWy0xLjI1NzQ5MzAzMTAxNTk1NiwgNTAuNjQ5MTQ2MjIzMjYyOThdLCBbLTEuMjU3OTU0NzYzNDgzMDEsIDUwLjY0OTEwNzgwNzYwODk0XSwgWy0xLjI1ODA0NjAwMzk4Mjg0NiwgNTAuNjQ5MDYwNzM5NDY2MTddLCBbLTEuMjU4MDY1MTUwMzc0MDg4LCA1MC42NDkwMTUwMTA1MTI5NV0sIFstMS4yNTgzNTY3NzAxNjQxOTksIDUwLjY0ODk5NjE4ODMwMzE4XSwgWy0xLjI1ODY1OTk1OTAyNDMxNSwgNTAuNjQ4OTY4NDQ4NTgwNTldLCBbLTEuMjU4OTIxNDc4MjI3MjY1LCA1MC42NDkwNjkwMDUyNTE0Nl0sIFstMS4yNTkwMTU5Njg2MjMwMiwgNTAuNjQ5MDgyMTkyMzg0NjNdLCBbLTEuMjU5MjMzODk3MzI2MTkxLCA1MC42NDkwNzcyODQxMjg4M10sIFstMS4yNTkyNzgyMzgxMzYxMjcsIDUwLjY0OTEzNTEwNDE0MjU2XSwgWy0xLjI1OTM0ODI1ODI2NjQ2NywgNTAuNjQ5MTg0MDk2OTM2NzFdLCBbLTEuMjU5MzcwMzcyMjYzMTI0LCA1MC42NDkyMTY2MDI3MDY0Nl0sIFstMS4yNTkzNzQyNDM5MDg1MTQsIDUwLjY0OTIzNzM5NTAyMTA3XSwgWy0xLjI1OTM3MTk2ODU5MDkwMSwgNTAuNjQ5MjkzMTIwNzU5NjldLCBbLTEuMjU5Mzc3MzY4MTU1MDEzLCA1MC42NDkzMDU3NDE1NTg5OV0sIFstMS4yNTkzOTE0MTExMjUyNzMsIDUwLjY0OTMxNzUxODIzNDE2XSwgWy0xLjI1OTQxOTQxOTI2OTA3MiwgNTAuNjQ5MzMxMTgxNjk1OV0sIFstMS4yNTk0ODcwNDcyMTkxODgsIDUwLjY0OTM0Njg5NDg5ODY4XSwgWy0xLjI1OTU3NzQ5OTI5MTU2MiwgNTAuNjQ5MzU3MzU4ODE2MjhdLCBbLTEuMjU5NjQ5NTc5NTg1NjE1LCA1MC42NDkzNTY5MTc1NjYzXSwgWy0xLjI1OTcwMzQ2NDc4NTYyMiwgNTAuNjQ5MzQ5MTY4NDQ2NDFdLCBbLTEuMjU5ODMyOTI0NDUxNTU3LCA1MC42NDkzMDQxMzk2NzU4Nl0sIFstMS4yNTk4NzExOTc3MDIyMzIsIDUwLjY0OTI5NTM5MjMxOTIzXSwgWy0xLjI1OTkwNTE1OTk2NzI5NywgNTAuNjQ5MjkzODA5ODY0NTNdLCBbLTEuMjU5OTg5ODI3NDcxMTY3LCA1MC42NDkzMDg3MzE5MTUxOV0sIFstMS4yNjAwNTQ4OTY4NjQ5OTQsIDUwLjY0OTMwOTE0NDk0NTg2XSwgWy0xLjI2MDI4MTM3NzgwNjAzOCwgNTAuNjQ5Mjk0Mzk5NjIzNDVdLCBbLTEuMjYwNDkwNjY3NzU4MTczLCA1MC42NDkyOTc1MjU1MTc3NF0sIFstMS4yNjA1NDE3NjgxNzk0NjgsIDUwLjY0OTI4ODg1OTMwOTg4XSwgWy0xLjI2MDYxODY1NjY3MzYyOCwgNTAuNjQ5MjU2OTgxNzIyNjVdLCBbLTEuMjYwNzIyMTk3OTEzODM4LCA1MC42NDkyMzU5NzE2Mjc3M10sIFstMS4yNjA3NTYxMTYzOTMwNywgNTAuNjQ5MjM3MTc1NjU3MDJdLCBbLTEuMjYwNzk0MjM4MTAzNTI2LCA1MC42NDkyNDU1MDg3MDc5OF0sIFstMS4yNjA4NDQ5MDEyOTYxOTcsIDUwLjY0OTI2NDcwOTY5MDE3XSwgWy0xLjI2MDk0ODM3MDU1MTgwNCwgNTAuNjQ5MjQ4Mjg0MDE4MjJdLCBbLTEuMjYxNTAyNTA5OTg4OTEzLCA1MC42NDk2MzEyNzg1MTExOV0sIFstMS4yNjE0MTU2NjcxMjEzNCwgNTAuNjQ5NjY1NzkwNzE5MThdLCBbLTEuMjYyMDM4MzA5NDk0MTg5LCA1MC42NTAwOTg2NjM1MzYzOF0sIFstMS4yNjIwNjM3ODc2MTkwNiwgNTAuNjUwMDk1MjI4Njc0NzVdLCBbLTEuMjYyNjA1NTk2OTA1NjQzLCA1MC42NTAwMDc4NTQ1MTE1NF0sIFstMS4yNjMwNzQ5NzA4OTE0NTIsIDUwLjY1MDAxODAxNDc5NzUzXSwgWy0xLjI2Mjc0MjQzOTE2MDQ1NiwgNTAuNjUwMDI3NTk5NzQyOThdLCBbLTEuMjYyNTExNjEyNTY2NTI2LCA1MC42NTAwNDQxMjA0MzE2OV0sIFstMS4yNjIzOTUxMjE2MjE5MTQsIDUwLjY1MDA4MDI0Mzg3NTc1XSwgWy0xLjI2MjI5MDkxNTE4Mjk1NCwgNTAuNjUwMTM2MjIzNzE0MDVdLCBbLTEuMjYyMjM2NDM4MzY2NTA5LCA1MC42NTAxODE3Mjk3NjIwN10sIFstMS4yNjIyMTgyMDQ4ODg3NzgsIDUwLjY1MDI2NjIxMzU3NTYyXSwgWy0xLjI2MjIxMTcyMjYwOTY5OSwgNTAuNjUwNDA0NjIzOTU4NDZdLCBbLTEuMjYyMTk2OTEyOTgyOTAxLCA1MC42NTA1Mzg1NzYzNjM4NV0sIFstMS4yNjIxNzc5ODcyNDMxNTQsIDUwLjY1MDg0NjAxNjQ3ODAxXSwgWy0xLjI2MjEyMDI5NTk0MTQ0MiwgNTAuNjUxMjc1NDc5OTcyNDhdLCBbLTEuMjYyMjAzNzc5NDUzMDUxLCA1MC42NTEyNzY5MDczODIxNF0sIFstMS4yNjI3MDE1NzQxODc2MDksIDUwLjY1MTI4Mjc1MzgzMzJdLCBbLTEuMjYyOTMyNTA1MjI1NjE4LCA1MC42NTEyNTk5NDAxNzUwN10sIFstMS4yNjMwMjYwNTE2ODQ4MTYsIDUwLjY1MTI0NDM0ODk1NDE0XSwgWy0xLjI2MzEzNDAzNjE4MjQyNywgNTAuNjUxMjE1MzYzMzk0MjVdLCBbLTEuMjYzNDUxMjk4MjQwMzE2LCA1MC42NTExMDEzMDI4ODY2NF0sIFstMS4yNjM4MTMzNjkwMTAxMjMsIDUwLjY1MTAxNTQ4NDQ3NTYxXSwgWy0xLjI2NDA0ODk1OTczMDIzMSwgNTAuNjUwOTYzMDI5ODgwMTNdLCBbLTEuMjY0NDA0OTA3MjIwMDc1LCA1MC42NTA5MDMyNDI5OTA4Nl0sIFstMS4yNjQ5MTU1OTYyMDI3NywgNTAuNjUwODA3NDgwNTAxODldLCBbLTEuMjY1MTQyODcyNDczNjUxLCA1MC42NTA3NDk1NzcwNjEwN10sIFstMS4yNjU1NDk4MzM5NjEyMzMsIDUwLjY1MDY4NjUxMjA5NjEzXSwgWy0xLjI2NTYzMjAyNDcxNzk3MSwgNTAuNjUwNjczNTQ0MzQ4NThdLCBbLTEuMjY1NjI5NDcxMTk0NTU2LCA1MC42NTIwMTk3NDMwMDYzMl0sIFstMS4yNjU3MjgxNTM5Mzg3MjEsIDUwLjY1MjIyMDkzOTIzODQxXSwgWy0xLjI2NjA2MjY0Njc5ODE4OSwgNTAuNjUyODIwMTg0MzQxNTFdLCBbLTEuMjY2MjUzMTg4MDUwNzQyLCA1MC42NTMxMTQ1NTg5MTM5OF0sIFstMS4yNjYzMDcyMzAxMTI3MjIsIDUwLjY1MzE4NjgyMTc5ODMzXSwgWy0xLjI2NjMyNjU5Mzg0OTk5NywgNTAuNjUzMjE2NjExNzk5OTddLCBbLTEuMjY2NzEyMDQ3MTMxNzc5LCA1MC42NTM1NDAwODIxMzA3Nl0sIFstMS4yNjY4NDY1MzY3NDk3ODYsIDUwLjY1MzYyMTg0MTA4NF0sIFstMS4yNjY5NDI0NTYxNzU2MTIsIDUwLjY1MzczMTMxNzMyODcyXSwgWy0xLjI2NzE0MjczNzk5NTgwMywgNTAuNjUzOTQ3NDQ1NzM3MjNdLCBbLTEuMjY3NDMyODQwNDEzOTMsIDUwLjY1NDIxNTQ3MzA5MjE2XSwgWy0xLjI2NzcwODg5OTUzNDg3OSwgNTAuNjU0NDcxNzI0MDUwNTVdLCBbLTEuMjY2NzI0NjcwMzA0NDEzLCA1MC42NTUwODk2NDcxOTAyOF0sIFstMS4yNjY3NjMzMTEyMjY5NywgNTAuNjU1MTQ3NDI4NDE1MDddLCBbLTEuMjY2OTc3NTE4NDI4ODMzLCA1MC42NTU0NzM0MTY2OTYwM10sIFstMS4yNjgwMjc1MDEwMzE3MzgsIDUwLjY1NTE4MDU0NTU0NjY3XSwgWy0xLjI2ODI1MjEyOTgzMDQyNiwgNTAuNjU1Mzg0MzI4MjYwMDRdLCBbLTEuMjY5NTkwOTIzMTEwNzY2LCA1MC42NTQ5ODQ0NzIzMjAzMl0sIFstMS4yNjk2ODQ2NTU5ODM2MDIsIDUwLjY1NDk1NzE4OTQ3Nzc0XSwgWy0xLjI2OTYwODY5MzQzNjgxMiwgNTAuNjU0ODM4ODUwMjIxODldLCBbLTEuMjY5NDc5MjUzOTg0OTg0LCA1MC42NTQ2MTEzOTI2OTc4XSwgWy0xLjI2OTM4NzgyMTgxOTU3OCwgNTAuNjU0NDkwMzQ5MTUzNjVdLCBbLTEuMjY5OTA4MTMzNTQyNTk2LCA1MC42NTQyMzQ1OTcwMDExM10sIFstMS4yNzIyNTY3NjY3MjI3MDYsIDUwLjY1MzM4NTA0MDA0MjgzXSwgWy0xLjI3MjI1ODEzODQxOTc5LCA1MC42NTMzODY4NDY2NzM5NV0sIFstMS4yNzIzMjA3NzU2NjY0NjgsIDUwLjY1MzM2Mzg2Mjc3MDM5XSwgWy0xLjI3Mjc2NjM4ODU4NTM5MywgNTAuNjUzOTEwNzM4ODQ2NjddLCBbLTEuMjc0MDkzNjUzMDAzNjcyLCA1MC42NTUzNTE2MjEzODQzXSwgWy0xLjI3NDgzMjM0MTk4NjQyMiwgNTAuNjU2NDQxNjIxOTY5MjFdLCBbLTEuMjc1NDc5ODk1Nzg4Njg4LCA1MC42NTczODQ1MDg4MTMwMV0sIFstMS4yNzU1MzYyNDEyMjU1MjcsIDUwLjY1NzM5OTI0MzQ5NTkyXSwgWy0xLjI3NTYwMzk4Mjk2NzY3OSwgNTAuNjU3NDA4NjU0NzYxNTRdLCBbLTEuMjc1NzA0NDUwODg3MjQsIDUwLjY1NzQxMzc3NDEzOTM5XSwgWy0xLjI3NjkwODAxMTg1MTA1MywgNTAuNjU3ODk3OTEyNjg1NzldLCBbLTEuMjc3MDA5MTU2ODk2MDgyLCA1MC42NTc5NDI1OTI2MDQyXSwgWy0xLjI3NzEwODM5MjEzMTU2OCwgNTAuNjU4MDIwNTI0ODI2NTZdLCBbLTEuMjc3MTc0NzAwNTg5MzYxLCA1MC42NTgxMjM0MjU3NTY0XSwgWy0xLjI3NzU0Nzc1NDAwOTIzNywgNTAuNjU4ODkwMTg2MDU3NjJdLCBbLTEuMjc3NTU1OTkyNzA4Nzk3LCA1MC42NTg5MDgyMTc3NzQyOV0sIFstMS4yNzg1MTg5NDMwOTAwNTYsIDUwLjY1ODQ3OTg1NzkxOTU1XSwgWy0xLjI3OTA1ODkwNjEyNzgxMiwgNTAuNjU4MjI3NzgyODM1NjZdLCBbLTEuMjc5MjAwNDAyMTQ3MTU0LCA1MC42NTgxMzU5Njc0MDE2XSwgWy0xLjI3OTYyMjg2MTgyNjI0NiwgNTAuNjU3ODAyMjUwMTc2MzZdLCBbLTEuMjc5NjMxNDg2MDMxMjM0LCA1MC42NTc3OTUxMTExOTgzXSwgWy0xLjI3OTY2MjQ1ODM1MTQyNSwgNTAuNjU3ODk3ODgyMjY2MjldLCBbLTEuMjc5Njk5NTgwNDA1ODI0LCA1MC42NTc5NjQ2NDAwODUxOF0sIFstMS4yNzk4MTMxNzEwMjIzOTksIDUwLjY1ODEyNjI2ODc3NzIxXSwgWy0xLjI3OTgzNzgxMjU3NDIyNiwgNTAuNjU4MTc3NzU1NzkwNl0sIFstMS4yNzk4NjgxMTM2MDU2MiwgNTAuNjU4MzI0NDg1MzczMDRdLCBbLTEuMjc5ODg3MDYyMDMyMTA2LCA1MC42NTgzODIxNDA1MzczOV0sIFstMS4yNzk5NzMzOTQxNTg4MzUsIDUwLjY1ODU2NDM2ODM1NV0sIFstMS4yODAwMDY1NTE4NjcxOTksIDUwLjY1ODYxNTgxODAxOTQ4XSwgWy0xLjI4MDEwMTIyMzY5NzM4NCwgNTAuNjU4NzE3OTkzMzg0MThdLCBbLTEuMjgwMTMxOTk0NTA5MDgxLCA1MC42NTg3NDI0NTcyNzg2NF0sIFstMS4yODAyNDY4MDI3NTIzMjEsIDUwLjY1ODgxNjk3NjczMDA5XSwgWy0xLjI4MTI2MDY2NTc5NTg4NCwgNTAuNjU5MzE1OTkxNDY5NDFdLCBbLTEuMjgxMjgzNTk1ODEwODE5LCA1MC42NTkzODgwNTU0NjYzXSwgWy0xLjI4MTgzMDUwNjMyMTYwNiwgNTAuNjU5Nzk3MDY5MzQ3MTJdLCBbLTEuMjgxOTQzNDUzMTA3NDMzLCA1MC42NTk3MTg1NjAyMzcyOF0sIFstMS4yODIyNDI2NTEwNzI2NTgsIDUwLjY1OTQ4OTM1MTE0MTgxXSwgWy0xLjI4MjMzNjk2Nzk5NTE5LCA1MC42NTk0MzE0OTQ2MTU3NF0sIFstMS4yODI0MDI1MTg2NjkwNTcsIDUwLjY1OTQwMTI0MTA3NzUxXSwgWy0xLjI4MjQ5MzUzNTkwMTE4OCwgNTAuNjU5MzY4NTM3MDM3MzNdLCBbLTEuMjgyNjQ3MDI4OTQwNTY4LCA1MC42NTkzMjM2MzA4OTE0OF0sIFstMS4yODI2NzExMzgzMzc4MTQsIDUwLjY1OTMxODM4NTAzNDk5XSwgWy0xLjI4NDE2ODAyNTc0NTI3OSwgNTAuNjU5MjIyMzk4NTJdLCBbLTEuMjg0MjE3MjYwMzgyMzExLCA1MC42NTk0MjEzODcwNzIzMl0sIFstMS4yODQyNjU0ODYyOTczNzksIDUwLjY1OTQxODA4NzAxMTk1XSwgWy0xLjI4NDcwNzMzMzk0NDU4NywgNTAuNjU5Mzg4NDMzNTE0ODJdLCBbLTEuMjg0ODIyMjkwMzQwNTA5LCA1MC42NTk3MzgwNTMzODQwNV0sIFstMS4yODUxOTQ3NzU3MTUyNSwgNTAuNjU5NzEzMzY2NzI1MjVdLCBbLTEuMjg1MjcyNjgyNTMyMTY3LCA1MC42NTk3MDY2NTIwODgyMV0sIFstMS4yODUyMDU0OTYzNjE4NjQsIDUwLjY1OTg0NDc4MTE0MjMxXSwgWy0xLjI4NTE1MzgxMDQ4OTI1MywgNTAuNjU5OTgzODE0MzI0MjJdLCBbLTEuMjg1MTAyMzA3Nzk3MTY4LCA1MC42NjAxMTg0NDMzNDMzN10sIFstMS4yODUwMTYzMDUwNjMyMTIsIDUwLjY2MDM3NDE0MDI4MDA4XSwgWy0xLjI4NDk1NjQ0NDcwODQ3LCA1MC42NjA1OTA1Mjk5NDYxNF0sIFstMS4yODUwNDU0MDc4ODY0MjQsIDUwLjY2MDYwMDk2NDg4ODQ4XSwgWy0xLjI4NTA5OTEyNDU1MDA0LCA1MC42NjA2MDQ4OTA0MTM1M10sIFstMS4yODU0NjkzODUxNTkzNywgNTAuNjYwNjM1MDMwMjE2MjhdLCBbLTEuMjg1ODk4NzE2NTA2NTQ2LCA1MC42NjA2ODUzMDkzODA5XSwgWy0xLjI4NjMwMTA3NjE2MDczOSwgNTAuNjYwNzM3MzA5ODI1MzJdLCBbLTEuMjg2NzMxNzg5NTY5MTE2LCA1MC42NjA3OTY1ODQ3MDIyNl0sIFstMS4yODcxMTk5OTgwOTYzMDIsIDUwLjY2MDg1MTEwMjkzMzk2XSwgWy0xLjI4NzU1MzE5MjQwNjUxMywgNTAuNjYwOTIzODc1NDI2ODZdLCBbLTEuMjg3OTM4MjAzODE2NzUyLCA1MC42NjEwMTI1MzQ2MjUzOF0sIFstMS4yODgzNTM5ODk1Nzk3NTUsIDUwLjY2MTExMDQ2MDYyMjc1XSwgWy0xLjI4ODc0MDUzOTQ5MTAzMywgNTAuNjYxMTkwMTM2MjI4MjVdLCBbLTEuMjg5MTU0MDE4ODQxMzMyLCA1MC42NjEyNTU1OTAyMjE4NF0sIFstMS4yODk0NzkzNDM2NTYzODQsIDUwLjY2MTM1NzQ1NTc3NTk5XSwgWy0xLjI4OTg4ODg1Njc4MTY5NywgNTAuNjYxNDA3NTk5NDM0NV0sIFstMS4yOTAyOTgzNzA3OTMyOTYsIDUwLjY2MTQ1Nzc0MTY1NzE5XSwgWy0xLjI5MDczMzUzODc1Njc2NCwgNTAuNjYxNTAwODQ2MjQ3NjZdLCBbLTEuMjkwOTQyNTMzNjg3OTc5LCA1MC42NjE1MjcyOTAzNzUwOF0sIFstMS4yOTExMzQ0ODAzNDY0NTcsIDUwLjY2MTU2MjYyMDc5NzQ4XSwgWy0xLjI5MTM3Njk0NTU3MDg0MiwgNTAuNjYxNjIwNzMzNzY4NThdLCBbLTEuMjkxNTQwMTQxNjY4MzgsIDUwLjY2MTY4Mjk0OTY0NDJdLCBbLTEuMjkxODYxNTQ2MzE1MzIzLCA1MC42NjE4NTIxMjIyMTYzMV0sIFstMS4yOTE5NzgyMjI3OTM5OTgsIDUwLjY2MTkwNDk3NDY4OTk5XSwgWy0xLjI5MjA0OTQ4NDQ5OTU5OSwgNTAuNjYxOTYwMjQ4Mzg2NF0sIFstMS4yOTIwODM3MDQ4OTQzNiwgNTAuNjYyMDM1MTY1NzQ2MThdLCBbLTEuMjkyMDY4ODA3MzIwMDcyLCA1MC42NjIwODcyMTkxNTUxNV0sIFstMS4yOTE5OTQ2MTMyMjg1MzEsIDUwLjY2MjIyNzAxNzY0MzQ4XSwgWy0xLjI5MTk3MjM5NzQ3MDE5MSwgNTAuNjYyMjkyNTEyMDgwMTldLCBbLTEuMjkxOTI1NzUxMDAzNTU4LCA1MC42NjIzNzY4Mjc3MjAyNV0sIFstMS4yOTE4NjM3NjI2MTI4NDcsIDUwLjY2MjQ1NzM2NDEyNzY3XSwgWy0xLjI5MTc4NzA4MzcwOTc2OSwgNTAuNjYyNTY4Mzc4MzU4MjldLCBbLTEuMjkxNjk4OTY2Nzg5ODQ4LCA1MC42NjI2ODc1MDQyNDIzMl0sIFstMS4yOTE3ODcxOTIwNTk1ODQsIDUwLjY2Mjc0NzM3NjMwNDc3XSwgWy0xLjI5MjA2MjgzOTgxODU5OCwgNTAuNjYyOTU3NzE1Njk5MzNdLCBbLTEuMjkyMzIyNzkzMTYxNTYyLCA1MC42NjMxNzIzNjQ0MjYyM10sIFstMS4yOTI1ODcwMTQzMzk0MTYsIDUwLjY2MzM4MjYzMzE5OTI0XSwgWy0xLjI5Mjg1MTE0MzM5NzAxMywgNTAuNjYzNTk5MTk0MDI1NTddLCBbLTEuMjkzMTIyNjIxMTUxMjQ0LCA1MC42NjM4MDA0MjUzNDk5OV0sIFstMS4yOTMzMjE5NjE1NDY4NTYsIDUwLjY2Mzk5NjgxMzU2MjgxXV1dXSwgInR5cGUiOiAiTXVsdGlQb2x5Z29uIn0sICJwcm9wZXJ0aWVzIjogeyJoaWdobGlnaHQiOiB7fSwgInN0eWxlIjoge319LCAidHlwZSI6ICJGZWF0dXJlIn1dLCAidHlwZSI6ICJGZWF0dXJlQ29sbGVjdGlvbiJ9CiAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfM2U4MjQ3MzIzZTBkNDk5NDk1MWNkYmE3MThjMzRiZTEpOwogICAgICAgICAgICAgICAgZ2VvX2pzb25fNjE3MzdmOGNjMjJjNGZjNjljM2NkYzZmYThmNTAxYjAuc2V0U3R5bGUoZnVuY3Rpb24oZmVhdHVyZSkge3JldHVybiBmZWF0dXJlLnByb3BlcnRpZXMuc3R5bGU7fSk7CgogICAgICAgICAgICAKPC9zY3JpcHQ+\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
],
"text/plain": [
"<folium.folium.Map at 0x1140250b8>"
]
},
"execution_count": 124,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"m=folium.Map(location=center[::-1], zoom_start=12)\n",
"\n",
"import numpy as np\n",
"\n",
"for result in results['rows']:\n",
" name=result[0]\n",
" typ=result[1]\n",
" loc=json.loads(result[2])['coordinates'][::-1]\n",
" loc[0]=loc[0]+np.random.uniform(0.001, 10**(-20))-0.0005\n",
" loc[1]=loc[1]+np.random.uniform(0.001, 10**(-20))-0.0005\n",
" folium.Marker(loc, popup='{}<br/>{}'.format(html.escape(name),html.escape(typ) )).add_to(m)\n",
"\n",
"gj=get_geojson('parish_region', 'arreton', json_url = \"http://localhost:8003/adminboundaries.json\")\n",
"folium.GeoJson(gj, name='geojson').add_to(m)\n",
"m"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.4"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment