Skip to content

Instantly share code, notes, and snippets.

@karussell
Last active July 28, 2020 12:33
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save karussell/5b799b253e608a93aeb6b120ccc8e67a to your computer and use it in GitHub Desktop.
Save karussell/5b799b253e608a93aeb6b120ccc8e67a to your computer and use it in GitHub Desktop.
customizable routing - the notebook needs to be trusted to run JavaScript which is required for the leaflet maps or view it on https://nbviewer.jupyter.org/gist/karussell/5b799b253e608a93aeb6b120ccc8e67a
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Customizable Routing\n",
"\n",
"Let's try customizable routing inside a Jupyter Notebook. Read the details in [this blog post](https://www.graphhopper.com/blog/2020/05/31/examples-for-customizable-routing/) and also [here](https://www.graphhopper.com/blog/2020/05/06/get-started-with-customizable-routing/).\n",
"You can install the open source GraphHopper routing engine [locally](https://github.com/graphhopper/graphhopper) and replace the route_url with\n",
"```\n",
"route_url = 'http://localhost:8989/route?\n",
"```\n",
"\n",
"[Documentation for the folium library](https://python-visualization.github.io/folium/)."
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"route_url = 'http://148.251.46.152:8989/route-custom'"
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
"import requests\n",
"import folium # https://python-visualization.github.io/folium/\n",
"\n",
"def latlon ( point_arr ): return [point_arr[1],point_arr[0]]\n",
"def plot_route ( map, start, end, route, name, color ): \n",
" print(f'{name}: distance {(int)(route[\"distance\"]/1000)}km and time {(int)(route[\"time\"]/60000)}min');\n",
" def style_function(feature):\n",
" return { 'opacity': 0.5, 'weight': 5, 'color': color }\n",
" m = folium.Map(location=start, zoom_start=12)\n",
" folium.Marker(location=latlon(start), popup='start', icon=folium.Icon(color='green')).add_to(map)\n",
" folium.Marker(location=latlon(end), popup='end', icon=folium.Icon(color='red')).add_to(map)\n",
" folium.GeoJson(route[\"points\"], name=name, style_function=style_function).add_to(map)\n",
" # folium.Choropleth(geo_data=geojson, name=name, line_color=color).add_to(m)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Plot a first custom route with a green start marker and a red destination marker"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"route: distance 6km and time 9min\n",
"other: distance 6km and time 10min\n"
]
},
{
"data": {
"text/html": [
"<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><span style=\"color:#565656\">Make this Notebook Trusted to load map: File -> Trust Notebook</span><iframe src=\"about:blank\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" data-html=PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgCiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgTF9OT19UT1VDSCA9IGZhbHNlOwogICAgICAgICAgICBMX0RJU0FCTEVfM0QgPSBmYWxzZTsKICAgICAgICA8L3NjcmlwdD4KICAgIAogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjYuMC9kaXN0L2xlYWZsZXQuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0xLjEyLjQubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjYuMC9kaXN0L2xlYWZsZXQuY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vYm9vdHN0cmFwLzMuMi4wL2Nzcy9ib290c3RyYXAubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLXRoZW1lLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9mb250LWF3ZXNvbWUvNC42LjMvY3NzL2ZvbnQtYXdlc29tZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL0xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLzIuMC4yL2xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3Jhd2Nkbi5naXRoYWNrLmNvbS9weXRob24tdmlzdWFsaXphdGlvbi9mb2xpdW0vbWFzdGVyL2ZvbGl1bS90ZW1wbGF0ZXMvbGVhZmxldC5hd2Vzb21lLnJvdGF0ZS5jc3MiLz4KICAgIDxzdHlsZT5odG1sLCBib2R5IHt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7bWFyZ2luOiAwO3BhZGRpbmc6IDA7fTwvc3R5bGU+CiAgICA8c3R5bGU+I21hcCB7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7cmlnaHQ6MDtsZWZ0OjA7fTwvc3R5bGU+CiAgICAKICAgICAgICAgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwKICAgICAgICAgICAgICAgIGluaXRpYWwtc2NhbGU9MS4wLCBtYXhpbXVtLXNjYWxlPTEuMCwgdXNlci1zY2FsYWJsZT1ubyIgLz4KICAgICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAgICAgI21hcF81NGNjNjdiMzAyNjQ0MWE2YTI1MGNlZDA5MGJmMzI1YSB7CiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgCjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvbGl1bS1tYXAiIGlkPSJtYXBfNTRjYzY3YjMwMjY0NDFhNmEyNTBjZWQwOTBiZjMyNWEiID48L2Rpdj4KICAgICAgICAKPC9ib2R5Pgo8c2NyaXB0PiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFwXzU0Y2M2N2IzMDI2NDQxYTZhMjUwY2VkMDkwYmYzMjVhID0gTC5tYXAoCiAgICAgICAgICAgICAgICAibWFwXzU0Y2M2N2IzMDI2NDQxYTZhMjUwY2VkMDkwYmYzMjVhIiwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBjZW50ZXI6IFs1Mi40OTUzMjMsIDEzLjM4NDA5NF0sCiAgICAgICAgICAgICAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NywKICAgICAgICAgICAgICAgICAgICB6b29tOiAxMiwKICAgICAgICAgICAgICAgICAgICB6b29tQ29udHJvbDogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICBwcmVmZXJDYW52YXM6IGZhbHNlLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApOwoKICAgICAgICAgICAgCgogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciB0aWxlX2xheWVyX2IxNTU2OTcxMjBjMjQxMWZiMjJlOTYxOWQxYjBkZjJhID0gTC50aWxlTGF5ZXIoCiAgICAgICAgICAgICAgICAiaHR0cHM6Ly97c30udGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmciLAogICAgICAgICAgICAgICAgeyJhdHRyaWJ1dGlvbiI6ICJEYXRhIGJ5IFx1MDAyNmNvcHk7IFx1MDAzY2EgaHJlZj1cImh0dHA6Ly9vcGVuc3RyZWV0bWFwLm9yZ1wiXHUwMDNlT3BlblN0cmVldE1hcFx1MDAzYy9hXHUwMDNlLCB1bmRlciBcdTAwM2NhIGhyZWY9XCJodHRwOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL2NvcHlyaWdodFwiXHUwMDNlT0RiTFx1MDAzYy9hXHUwMDNlLiIsICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwgIm1heE5hdGl2ZVpvb20iOiAxOCwgIm1heFpvb20iOiAxOCwgIm1pblpvb20iOiAwLCAibm9XcmFwIjogZmFsc2UsICJvcGFjaXR5IjogMSwgInN1YmRvbWFpbnMiOiAiYWJjIiwgInRtcyI6IGZhbHNlfQogICAgICAgICAgICApLmFkZFRvKG1hcF81NGNjNjdiMzAyNjQ0MWE2YTI1MGNlZDA5MGJmMzI1YSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl82NDNjZGIyZmFlMDE0ODE5YjNlMGMyNmQwZGZlMWVmZSA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzUyLjQ5NTMyMywgMTMuMzg0MDk0XSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwXzU0Y2M2N2IzMDI2NDQxYTZhMjUwY2VkMDkwYmYzMjVhKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl8yODliNmFmZjkxOGE0Nzk3YWJkNWU4Mjc5NjU4ZWJmYSA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJncmVlbiIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyXzY0M2NkYjJmYWUwMTQ4MTliM2UwYzI2ZDBkZmUxZWZlLnNldEljb24oaWNvbl8yODliNmFmZjkxOGE0Nzk3YWJkNWU4Mjc5NjU4ZWJmYSk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfMTJlMzQ2MGE0MmM4NGI4M2I2YzE0MTk0NzJkY2ZiNzQgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sX2MwMjk5Yzk1OGRmMDQ1Nzk4NmM0YzBjNjE3ZTcxYzg4ID0gJChgPGRpdiBpZD0iaHRtbF9jMDI5OWM5NThkZjA0NTc5ODZjNGMwYzYxN2U3MWM4OCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+c3RhcnQ8L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfMTJlMzQ2MGE0MmM4NGI4M2I2YzE0MTk0NzJkY2ZiNzQuc2V0Q29udGVudChodG1sX2MwMjk5Yzk1OGRmMDQ1Nzk4NmM0YzBjNjE3ZTcxYzg4KTsKICAgICAgICAKCiAgICAgICAgbWFya2VyXzY0M2NkYjJmYWUwMTQ4MTliM2UwYzI2ZDBkZmUxZWZlLmJpbmRQb3B1cChwb3B1cF8xMmUzNDYwYTQyYzg0YjgzYjZjMTQxOTQ3MmRjZmI3NCkKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl8yNGIyMzZiNjU5Nzk0MGY0YWJjYzdiNWZkYTYxZmIzMSA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzUyLjUyMTIzNSwgMTMuNDQ3OTUyXSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwXzU0Y2M2N2IzMDI2NDQxYTZhMjUwY2VkMDkwYmYzMjVhKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl9lYWE4ZjBjOWQyNmM0ZWJmYjQ1MjdmZGNiY2VmYjJmMCA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJyZWQiLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl8yNGIyMzZiNjU5Nzk0MGY0YWJjYzdiNWZkYTYxZmIzMS5zZXRJY29uKGljb25fZWFhOGYwYzlkMjZjNGViZmI0NTI3ZmRjYmNlZmIyZjApOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwX2IyMzI3MDI5NmQ2ZDQ2ZGJhNGU0ZTI1MjA1NDgzMDI4ID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF9mNDQwMDMyNWQ0YWE0YWIwODc3Y2NlNGVmZDk4NWEyNiA9ICQoYDxkaXYgaWQ9Imh0bWxfZjQ0MDAzMjVkNGFhNGFiMDg3N2NjZTRlZmQ5ODVhMjYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPmVuZDwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF9iMjMyNzAyOTZkNmQ0NmRiYTRlNGUyNTIwNTQ4MzAyOC5zZXRDb250ZW50KGh0bWxfZjQ0MDAzMjVkNGFhNGFiMDg3N2NjZTRlZmQ5ODVhMjYpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfMjRiMjM2YjY1OTc5NDBmNGFiY2M3YjVmZGE2MWZiMzEuYmluZFBvcHVwKHBvcHVwX2IyMzI3MDI5NmQ2ZDQ2ZGJhNGU0ZTI1MjA1NDgzMDI4KQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uXzljMmY0MjMwMTVkZDRjZmE5ZDA4NTUwZDVmNWEyMDIwX3N0eWxlcihmZWF0dXJlKSB7CiAgICAgICAgICAgIHN3aXRjaChmZWF0dXJlLmlkKSB7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIHJldHVybiB7ImNvbG9yIjogImJsdWUiLCAib3BhY2l0eSI6IDAuNSwgIndlaWdodCI6IDV9OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uXzljMmY0MjMwMTVkZDRjZmE5ZDA4NTUwZDVmNWEyMDIwX29uRWFjaEZlYXR1cmUoZmVhdHVyZSwgbGF5ZXIpIHsKICAgICAgICAgICAgbGF5ZXIub24oewogICAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAgICAgICBtYXBfNTRjYzY3YjMwMjY0NDFhNmEyNTBjZWQwOTBiZjMyNWEuZml0Qm91bmRzKGUudGFyZ2V0LmdldEJvdW5kcygpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfTsKICAgICAgICB2YXIgZ2VvX2pzb25fOWMyZjQyMzAxNWRkNGNmYTlkMDg1NTBkNWY1YTIwMjAgPSBMLmdlb0pzb24obnVsbCwgewogICAgICAgICAgICAgICAgb25FYWNoRmVhdHVyZTogZ2VvX2pzb25fOWMyZjQyMzAxNWRkNGNmYTlkMDg1NTBkNWY1YTIwMjBfb25FYWNoRmVhdHVyZSwKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBzdHlsZTogZ2VvX2pzb25fOWMyZjQyMzAxNWRkNGNmYTlkMDg1NTBkNWY1YTIwMjBfc3R5bGVyLAogICAgICAgIH0pLmFkZFRvKG1hcF81NGNjNjdiMzAyNjQ0MWE2YTI1MGNlZDA5MGJmMzI1YSk7CgogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uXzljMmY0MjMwMTVkZDRjZmE5ZDA4NTUwZDVmNWEyMDIwX2FkZCAoZGF0YSkgewogICAgICAgICAgICBnZW9fanNvbl85YzJmNDIzMDE1ZGQ0Y2ZhOWQwODU1MGQ1ZjVhMjAyMC5hZGREYXRhKGRhdGEpOwogICAgICAgIH0KICAgICAgICAgICAgZ2VvX2pzb25fOWMyZjQyMzAxNWRkNGNmYTlkMDg1NTBkNWY1YTIwMjBfYWRkKHsiZmVhdHVyZXMiOiBbeyJnZW9tZXRyeSI6IHsiY29vcmRpbmF0ZXMiOiBbWzEzLjM4NDA5MSwgNTIuNDk1MzIzXSwgWzEzLjM4NTE4LCA1Mi40OTg0OV0sIFsxMy4zODgzNTcsIDUyLjQ5NzcyNl0sIFsxMy4zODkyMTUsIDUyLjQ5NzU2OV0sIFsxMy4zODk3MzYsIDUyLjQ5NzQ4NV0sIFsxMy4zOTA2MSwgNTIuNDk3NDAzXSwgWzEzLjM5MDk1OCwgNTIuNDk3Mzc4XSwgWzEzLjM5MTgwOSwgNTIuNDk3Mzc3XSwgWzEzLjM5Mjk0NSwgNTIuNDk3NDM1XSwgWzEzLjM5NDgxNiwgNTIuNDk3NjE2XSwgWzEzLjM5NTAxNywgNTIuNDk3NjUzXSwgWzEzLjM5NTg1NiwgNTIuNDk3ODg0XSwgWzEzLjM5NjA0OCwgNTIuNDk3OTY1XSwgWzEzLjM5NjU1LCA1Mi40OTgxMTVdLCBbMTMuMzk3MjQ1LCA1Mi40OTgyNF0sIFsxMy4zOTc3MjQsIDUyLjQ5ODI2NV0sIFsxMy40MDY1NjQsIDUyLjQ5ODMxNV0sIFsxMy40MDY5OTcsIDUyLjQ5ODk0XSwgWzEzLjQwOTIyLCA1Mi41MDE3NTRdLCBbMTMuNDA5OTE2LCA1Mi41MDI2NjZdLCBbMTMuNDEwNTQ4LCA1Mi41MDM0MzJdLCBbMTMuNDEwNjY3LCA1Mi41MDM0MDZdLCBbMTMuNDEwODI5LCA1Mi41MDM0MDddLCBbMTMuNDEwOTY1LCA1Mi41MDM0NDNdLCBbMTMuNDExMSwgNTIuNTAzNTM0XSwgWzEzLjQxMTExNywgNTIuNTAzNjUyXSwgWzEzLjQxMTA5MSwgNTIuNTAzNzE1XSwgWzEzLjQxMTAyMiwgNTIuNTAzNzkzXSwgWzEzLjQxMTA0NiwgNTIuNTA0MDMzXSwgWzEzLjQxMTM0LCA1Mi41MDQ0NDJdLCBbMTMuNDEzNTgxLCA1Mi41MDcyNzZdLCBbMTMuNDE2NDYzLCA1Mi41MTEwMDddLCBbMTMuNDIxMTcsIDUyLjUwOTc3NV0sIFsxMy40MjI3NywgNTIuNTExOTldLCBbMTMuNDI0MDY1LCA1Mi41MTM0MDhdLCBbMTMuNDI0MjYyLCA1Mi41MTM0OTVdLCBbMTMuNDI0NDA2LCA1Mi41MTM1OTldLCBbMTMuNDI1MjA2LCA1Mi41MTQxOTNdLCBbMTMuNDI1NTQ1LCA1Mi41MTQ1XSwgWzEzLjQyNjQxMiwgNTIuNTE1NDQ2XSwgWzEzLjQyNzA2OSwgNTIuNTE2MjI2XSwgWzEzLjQyNzQ2NywgNTIuNTE2Nzk3XSwgWzEzLjQyNzk1NywgNTIuNTE3NjYzXSwgWzEzLjQyODE0NCwgNTIuNTE3OTQ2XSwgWzEzLjQyODI4MSwgNTIuNTE4MDM2XSwgWzEzLjQyODQ0MiwgNTIuNTE4MTExXSwgWzEzLjQyODU3NiwgNTIuNTE4MTQyXSwgWzEzLjQyOTIxNCwgNTIuNTE4MjFdLCBbMTMuNDI5NzIsIDUyLjUxODIwMl0sIFsxMy40MzE5MTgsIDUyLjUxNzk4Nl0sIFsxMy40NDA3MzQsIDUyLjUxNzA2NF0sIFsxMy40NDEwMDksIDUyLjUxODE5NV0sIFsxMy40NDIzOTksIDUyLjUxODA0Nl0sIFsxMy40NDI4MTUsIDUyLjUxODAxNl0sIFsxMy40NDQyNiwgNTIuNTE5Mjc4XSwgWzEzLjQ0NjQzOCwgNTIuNTIxMjddLCBbMTMuNDQ2NTc4LCA1Mi41MjEzNjNdLCBbMTMuNDQ3Njc5LCA1Mi41MjE2MzldXSwgInR5cGUiOiAiTGluZVN0cmluZyJ9LCAiaWQiOiAiMCIsICJ0eXBlIjogIkZlYXR1cmUifV0sICJ0eXBlIjogIkZlYXR1cmVDb2xsZWN0aW9uIn0pOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfZjhjNDNmYWNiMzgxNDVjMWJlNWNhMmE3ZThjZWE4OGIgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs1Mi40OTUzMjMsIDEzLjM4NDA5NF0sCiAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICApLmFkZFRvKG1hcF81NGNjNjdiMzAyNjQ0MWE2YTI1MGNlZDA5MGJmMzI1YSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGljb25fYmQ0OTJkOTdiMDYyNDkwYWE2ZDdiNWFlNzdlYmU3NmEgPSBMLkF3ZXNvbWVNYXJrZXJzLmljb24oCiAgICAgICAgICAgICAgICB7ImV4dHJhQ2xhc3NlcyI6ICJmYS1yb3RhdGUtMCIsICJpY29uIjogImluZm8tc2lnbiIsICJpY29uQ29sb3IiOiAid2hpdGUiLCAibWFya2VyQ29sb3IiOiAiZ3JlZW4iLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl9mOGM0M2ZhY2IzODE0NWMxYmU1Y2EyYTdlOGNlYTg4Yi5zZXRJY29uKGljb25fYmQ0OTJkOTdiMDYyNDkwYWE2ZDdiNWFlNzdlYmU3NmEpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwXzY5YWY2NWFkMGRiOTRiNzg4NTkxZWU3Y2IwYTgyNjI3ID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF8xOWYxZTdjZWZjNzQ0ZWYzOGRmYmZhMTA5M2ExY2ZhZiA9ICQoYDxkaXYgaWQ9Imh0bWxfMTlmMWU3Y2VmYzc0NGVmMzhkZmJmYTEwOTNhMWNmYWYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPnN0YXJ0PC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwXzY5YWY2NWFkMGRiOTRiNzg4NTkxZWU3Y2IwYTgyNjI3LnNldENvbnRlbnQoaHRtbF8xOWYxZTdjZWZjNzQ0ZWYzOGRmYmZhMTA5M2ExY2ZhZik7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl9mOGM0M2ZhY2IzODE0NWMxYmU1Y2EyYTdlOGNlYTg4Yi5iaW5kUG9wdXAocG9wdXBfNjlhZjY1YWQwZGI5NGI3ODg1OTFlZTdjYjBhODI2MjcpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfN2IwYTU5ZjdiMDU0NDkwYWFiMmQ2OWIyYjg0ZWZjMzEgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs1Mi41MjEyMzUsIDEzLjQ0Nzk1Ml0sCiAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICApLmFkZFRvKG1hcF81NGNjNjdiMzAyNjQ0MWE2YTI1MGNlZDA5MGJmMzI1YSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGljb25fMTYyYmY2M2MyZWZlNDQyOWJkZjQyNTk5MzBjZGNlZjUgPSBMLkF3ZXNvbWVNYXJrZXJzLmljb24oCiAgICAgICAgICAgICAgICB7ImV4dHJhQ2xhc3NlcyI6ICJmYS1yb3RhdGUtMCIsICJpY29uIjogImluZm8tc2lnbiIsICJpY29uQ29sb3IiOiAid2hpdGUiLCAibWFya2VyQ29sb3IiOiAicmVkIiwgInByZWZpeCI6ICJnbHlwaGljb24ifQogICAgICAgICAgICApOwogICAgICAgICAgICBtYXJrZXJfN2IwYTU5ZjdiMDU0NDkwYWFiMmQ2OWIyYjg0ZWZjMzEuc2V0SWNvbihpY29uXzE2MmJmNjNjMmVmZTQ0MjliZGY0MjU5OTMwY2RjZWY1KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBwb3B1cF9mZGFhYWJjOTJmMjg0YTNmOWFhOGEzYThjNjNlZGM4ZCA9IEwucG9wdXAoeyJtYXhXaWR0aCI6ICIxMDAlIn0pOwoKICAgICAgICAKICAgICAgICAgICAgdmFyIGh0bWxfODZlZDk2NTE0YTc0NGMyY2I0YTg3MWI3ZjFkNjhjZTAgPSAkKGA8ZGl2IGlkPSJodG1sXzg2ZWQ5NjUxNGE3NDRjMmNiNGE4NzFiN2YxZDY4Y2UwIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5lbmQ8L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfZmRhYWFiYzkyZjI4NGEzZjlhYThhM2E4YzYzZWRjOGQuc2V0Q29udGVudChodG1sXzg2ZWQ5NjUxNGE3NDRjMmNiNGE4NzFiN2YxZDY4Y2UwKTsKICAgICAgICAKCiAgICAgICAgbWFya2VyXzdiMGE1OWY3YjA1NDQ5MGFhYjJkNjliMmI4NGVmYzMxLmJpbmRQb3B1cChwb3B1cF9mZGFhYWJjOTJmMjg0YTNmOWFhOGEzYThjNjNlZGM4ZCkKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICBmdW5jdGlvbiBnZW9fanNvbl84YWMxZmQxYjMyNWI0NjAwYmNhYmM1NjBjNmEyZWIyOF9zdHlsZXIoZmVhdHVyZSkgewogICAgICAgICAgICBzd2l0Y2goZmVhdHVyZS5pZCkgewogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICByZXR1cm4geyJjb2xvciI6ICJyZWQiLCAib3BhY2l0eSI6IDAuNSwgIndlaWdodCI6IDV9OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uXzhhYzFmZDFiMzI1YjQ2MDBiY2FiYzU2MGM2YTJlYjI4X29uRWFjaEZlYXR1cmUoZmVhdHVyZSwgbGF5ZXIpIHsKICAgICAgICAgICAgbGF5ZXIub24oewogICAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAgICAgICBtYXBfNTRjYzY3YjMwMjY0NDFhNmEyNTBjZWQwOTBiZjMyNWEuZml0Qm91bmRzKGUudGFyZ2V0LmdldEJvdW5kcygpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfTsKICAgICAgICB2YXIgZ2VvX2pzb25fOGFjMWZkMWIzMjViNDYwMGJjYWJjNTYwYzZhMmViMjggPSBMLmdlb0pzb24obnVsbCwgewogICAgICAgICAgICAgICAgb25FYWNoRmVhdHVyZTogZ2VvX2pzb25fOGFjMWZkMWIzMjViNDYwMGJjYWJjNTYwYzZhMmViMjhfb25FYWNoRmVhdHVyZSwKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBzdHlsZTogZ2VvX2pzb25fOGFjMWZkMWIzMjViNDYwMGJjYWJjNTYwYzZhMmViMjhfc3R5bGVyLAogICAgICAgIH0pLmFkZFRvKG1hcF81NGNjNjdiMzAyNjQ0MWE2YTI1MGNlZDA5MGJmMzI1YSk7CgogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uXzhhYzFmZDFiMzI1YjQ2MDBiY2FiYzU2MGM2YTJlYjI4X2FkZCAoZGF0YSkgewogICAgICAgICAgICBnZW9fanNvbl84YWMxZmQxYjMyNWI0NjAwYmNhYmM1NjBjNmEyZWIyOC5hZGREYXRhKGRhdGEpOwogICAgICAgIH0KICAgICAgICAgICAgZ2VvX2pzb25fOGFjMWZkMWIzMjViNDYwMGJjYWJjNTYwYzZhMmViMjhfYWRkKHsiZmVhdHVyZXMiOiBbeyJnZW9tZXRyeSI6IHsiY29vcmRpbmF0ZXMiOiBbWzEzLjM4NDA5MSwgNTIuNDk1MzIzXSwgWzEzLjM4NDU3MSwgNTIuNDk2NzI4XSwgWzEzLjM4ODQ0MywgNTIuNDk2MjA0XSwgWzEzLjM4OTM3OCwgNTIuNDk1OTYyXSwgWzEzLjM4OTgwNywgNTIuNDk1ODk3XSwgWzEzLjM5MDE5NSwgNTIuNDk1ODU5XSwgWzEzLjM5MDcxLCA1Mi40OTU4NThdLCBbMTMuMzkxNzA0LCA1Mi40OTU5NDRdLCBbMTMuMzkzMzksIDUyLjQ5NjEyNV0sIFsxMy4zOTM5NjEsIDUyLjQ5NjE2NF0sIFsxMy4zOTQ1OTMsIDUyLjQ5NjE3Ml0sIFsxMy4zOTUxODUsIDUyLjQ5NjExNF0sIFsxMy4zOTUyMywgNTIuNDk2MjYxXSwgWzEzLjM5NTIxOSwgNTIuNDk2MzVdLCBbMTMuMzk1MjksIDUyLjQ5NjcyN10sIFsxMy4zOTU0NDUsIDUyLjQ5NzEyOV0sIFsxMy4zOTU4NTYsIDUyLjQ5Nzg4NF0sIFsxMy4zOTYwNDgsIDUyLjQ5Nzk2NV0sIFsxMy4zOTY1NSwgNTIuNDk4MTE1XSwgWzEzLjM5NzI0NSwgNTIuNDk4MjRdLCBbMTMuMzk3NzI0LCA1Mi40OTgyNjVdLCBbMTMuNDA2NTY0LCA1Mi40OTgzMTVdLCBbMTMuNDA4NTc4LCA1Mi40OTgzNThdLCBbMTMuNDEwNTY1LCA1Mi40OTg0NzJdLCBbMTMuNDEyMTk0LCA1Mi40OTg1MzJdLCBbMTMuNDEyODUyLCA1Mi40OTg1MTldLCBbMTMuNDE0MDc3LCA1Mi40OTg0MzddLCBbMTMuNDE0MzMyLCA1Mi40OTg0NDldLCBbMTMuNDE2MTk2LCA1Mi40OTg3MjRdLCBbMTMuNDE2OTU5LCA1Mi40OTg4MTddLCBbMTMuNDE3NjUyLCA1Mi40OTg4MzldLCBbMTMuNDE4MDA5LCA1Mi40OTg4MTZdLCBbMTMuNDE4MTA0LCA1Mi40OTg3ODhdLCBbMTMuNDE4MzA5LCA1Mi40OTg3NzVdLCBbMTMuNDE4NDExLCA1Mi40OTg3ODldLCBbMTMuNDE4NTg5LCA1Mi40OTg4NTldLCBbMTMuNDE4NjgzLCA1Mi40OTg5NDNdLCBbMTMuNDE4NzE3LCA1Mi40OTkwMTRdLCBbMTMuNDE4NzIsIDUyLjQ5OTA4OF0sIFsxMy40MTg2OTEsIDUyLjQ5OTE2XSwgWzEzLjQxODYwNywgNTIuNDk5MjQ1XSwgWzEzLjQxODQ4LCA1Mi40OTkzMDddLCBbMTMuNDE4MzI2LCA1Mi40OTkzMzldLCBbMTMuNDE4MTY0LCA1Mi40OTkzMzZdLCBbMTMuNDE4MDk4LCA1Mi40OTk1MjVdLCBbMTMuNDE4MTA2LCA1Mi40OTk2MzZdLCBbMTMuNDE5OTgyLCA1Mi41MDIyNDldLCBbMTMuNDIxOTgxLCA1Mi41MDUxMDNdLCBbMTMuNDIyNTA5LCA1Mi41MDUwNjldLCBbMTMuNDIzMjg0LCA1Mi41MDUwNjZdLCBbMTMuNDIzNjUzLCA1Mi41MDUwODFdLCBbMTMuNDI0NDI2LCA1Mi41MDUxNjddLCBbMTMuNDI1MDM2LCA1Mi41MDUyODVdLCBbMTMuNDI1ODIyLCA1Mi41MDU1MTVdLCBbMTMuNDI2MjY2LCA1Mi41MDU2OV0sIFsxMy40MjY0OTUsIDUyLjUwNThdLCBbMTMuNDI3MjksIDUyLjUwNjI1XSwgWzEzLjQyNzcyOCwgNTIuNTA2NjM3XSwgWzEzLjQyNzkwNSwgNTIuNTA2ODQ5XSwgWzEzLjQyODI1OSwgNTIuNTA3MzUzXSwgWzEzLjQyODMwMSwgNTIuNTA3OTQ3XSwgWzEzLjQyODM2LCA1Mi41MDgxMzddLCBbMTMuNDI4ODA1LCA1Mi41MDg2ODddLCBbMTMuNDMwMDI4LCA1Mi41MTAwNTddLCBbMTMuNDMwMTEzLCA1Mi41MTAxOTNdLCBbMTMuNDMzOTA3LCA1Mi41MDg3OF0sIFsxMy40MzQ2MzIsIDUyLjUwODQ1N10sIFsxMy40MzQ3NjcsIDUyLjUwODQ1Ml0sIFsxMy40MzQ4NjYsIDUyLjUwODQ3XSwgWzEzLjQzNDkzNSwgNTIuNTA4NTE5XSwgWzEzLjQzNTMyNywgNTIuNTA4ODQ5XSwgWzEzLjQzNTM1OSwgNTIuNTA4OTQyXSwgWzEzLjQzNTY0OCwgNTIuNTA5MTQyXSwgWzEzLjQzNjg3NiwgNTIuNTEwMjJdLCBbMTMuNDM3MDA0LCA1Mi41MTAzNTJdLCBbMTMuNDM5NTU5LCA1Mi41MTM1OTFdLCBbMTMuNDM5NzE2LCA1Mi41MTM5NDhdLCBbMTMuNDQwMzQsIDUyLjUxNjExNV0sIFsxMy40NDA1MzIsIDUyLjUxNjM2MV0sIFsxMy40NDA1ODMsIDUyLjUxNjUxMl0sIFsxMy40NDA4NjcsIDUyLjUxNzU1XSwgWzEzLjQ0MTAwOSwgNTIuNTE4MTk1XSwgWzEzLjQ0MjM5OSwgNTIuNTE4MDQ2XSwgWzEzLjQ0MjgxNSwgNTIuNTE4MDE2XSwgWzEzLjQ0NDI2LCA1Mi41MTkyNzhdLCBbMTMuNDQ2NDM4LCA1Mi41MjEyN10sIFsxMy40NDY1NzgsIDUyLjUyMTM2M10sIFsxMy40NDc2NzksIDUyLjUyMTYzOV1dLCAidHlwZSI6ICJMaW5lU3RyaW5nIn0sICJpZCI6ICIwIiwgInR5cGUiOiAiRmVhdHVyZSJ9XSwgInR5cGUiOiAiRmVhdHVyZUNvbGxlY3Rpb24ifSk7CiAgICAgICAgCjwvc2NyaXB0Pg== onload=\"this.contentDocument.open();this.contentDocument.write(atob(this.getAttribute('data-html')));this.contentDocument.close();\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
],
"text/plain": [
"<folium.folium.Map at 0x7f6777a55e48>"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"start=[13.384094,52.495323]\n",
"end=[13.447952,52.521235]\n",
"\n",
"m = folium.Map(location=latlon(start), zoom_start=12)\n",
"\n",
"route = requests.post(url=route_url, json={'profile':'car', 'points':[start,end], 'points_encoded':False}).json()\n",
"if 'message' in route: raise Exception(route[\"message\"])\n",
"plot_route(m, start, end, route[\"paths\"][0], \"route\", \"blue\")\n",
"\n",
"priorityJson = {'road_class': {'primary': 0.5}}\n",
"route = requests.post(url=route_url, json={'profile':'car', 'points':[start,end], 'points_encoded':False, 'priority': priorityJson}).json()\n",
"if 'message' in route: raise Exception(route[\"message\"])\n",
"plot_route(m, start, end, route[\"paths\"][0], \"other\", \"red\")\n",
"\n",
"m"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Safe Biking\n",
"## Avoid roads with max_speed greater than 50 km/h.\n"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"route: distance 2km and time 8min\n",
"other: distance 2km and time 10min\n"
]
},
{
"data": {
"text/html": [
"<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><span style=\"color:#565656\">Make this Notebook Trusted to load map: File -> Trust Notebook</span><iframe src=\"about:blank\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" data-html=PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgCiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgTF9OT19UT1VDSCA9IGZhbHNlOwogICAgICAgICAgICBMX0RJU0FCTEVfM0QgPSBmYWxzZTsKICAgICAgICA8L3NjcmlwdD4KICAgIAogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjYuMC9kaXN0L2xlYWZsZXQuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0xLjEyLjQubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjYuMC9kaXN0L2xlYWZsZXQuY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vYm9vdHN0cmFwLzMuMi4wL2Nzcy9ib290c3RyYXAubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLXRoZW1lLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9mb250LWF3ZXNvbWUvNC42LjMvY3NzL2ZvbnQtYXdlc29tZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL0xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLzIuMC4yL2xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3Jhd2Nkbi5naXRoYWNrLmNvbS9weXRob24tdmlzdWFsaXphdGlvbi9mb2xpdW0vbWFzdGVyL2ZvbGl1bS90ZW1wbGF0ZXMvbGVhZmxldC5hd2Vzb21lLnJvdGF0ZS5jc3MiLz4KICAgIDxzdHlsZT5odG1sLCBib2R5IHt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7bWFyZ2luOiAwO3BhZGRpbmc6IDA7fTwvc3R5bGU+CiAgICA8c3R5bGU+I21hcCB7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7cmlnaHQ6MDtsZWZ0OjA7fTwvc3R5bGU+CiAgICAKICAgICAgICAgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwKICAgICAgICAgICAgICAgIGluaXRpYWwtc2NhbGU9MS4wLCBtYXhpbXVtLXNjYWxlPTEuMCwgdXNlci1zY2FsYWJsZT1ubyIgLz4KICAgICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAgICAgI21hcF85OGM2YjIwNTI3Yzk0YzQ0YjgzZjhjYmRiNzBlMjRkMiB7CiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgCjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvbGl1bS1tYXAiIGlkPSJtYXBfOThjNmIyMDUyN2M5NGM0NGI4M2Y4Y2JkYjcwZTI0ZDIiID48L2Rpdj4KICAgICAgICAKPC9ib2R5Pgo8c2NyaXB0PiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFwXzk4YzZiMjA1MjdjOTRjNDRiODNmOGNiZGI3MGUyNGQyID0gTC5tYXAoCiAgICAgICAgICAgICAgICAibWFwXzk4YzZiMjA1MjdjOTRjNDRiODNmOGNiZGI3MGUyNGQyIiwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBjZW50ZXI6IFs0OS45NTQ1MDYsIDExLjU1NTY4Nl0sCiAgICAgICAgICAgICAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NywKICAgICAgICAgICAgICAgICAgICB6b29tOiAxNCwKICAgICAgICAgICAgICAgICAgICB6b29tQ29udHJvbDogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICBwcmVmZXJDYW52YXM6IGZhbHNlLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApOwoKICAgICAgICAgICAgCgogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciB0aWxlX2xheWVyXzQ4NzkxMThlOTlmZjQ2MWNhMjdjYzAxMDYyYmEwYzFlID0gTC50aWxlTGF5ZXIoCiAgICAgICAgICAgICAgICAiaHR0cHM6Ly97c30udGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmciLAogICAgICAgICAgICAgICAgeyJhdHRyaWJ1dGlvbiI6ICJEYXRhIGJ5IFx1MDAyNmNvcHk7IFx1MDAzY2EgaHJlZj1cImh0dHA6Ly9vcGVuc3RyZWV0bWFwLm9yZ1wiXHUwMDNlT3BlblN0cmVldE1hcFx1MDAzYy9hXHUwMDNlLCB1bmRlciBcdTAwM2NhIGhyZWY9XCJodHRwOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL2NvcHlyaWdodFwiXHUwMDNlT0RiTFx1MDAzYy9hXHUwMDNlLiIsICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwgIm1heE5hdGl2ZVpvb20iOiAxOCwgIm1heFpvb20iOiAxOCwgIm1pblpvb20iOiAwLCAibm9XcmFwIjogZmFsc2UsICJvcGFjaXR5IjogMSwgInN1YmRvbWFpbnMiOiAiYWJjIiwgInRtcyI6IGZhbHNlfQogICAgICAgICAgICApLmFkZFRvKG1hcF85OGM2YjIwNTI3Yzk0YzQ0YjgzZjhjYmRiNzBlMjRkMik7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl85YTI1YzViYjgxNTc0ZTlhYTJkNjc2OTQ1YjMxZDUzMyA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzQ5Ljk1NDUwNiwgMTEuNTU1Njg2XSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwXzk4YzZiMjA1MjdjOTRjNDRiODNmOGNiZGI3MGUyNGQyKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl9iZTYxMGFhMDBkN2I0ZGUyODEyNDk0MDgwOTM0NDExYiA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJncmVlbiIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyXzlhMjVjNWJiODE1NzRlOWFhMmQ2NzY5NDViMzFkNTMzLnNldEljb24oaWNvbl9iZTYxMGFhMDBkN2I0ZGUyODEyNDk0MDgwOTM0NDExYik7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfZWU0OWZkNjU3NjE0NGJiMmFjMWZkOWQ4ZDk0MDcyZGYgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sX2IxZmI1NWIxZjkzYTQ5ZGM4YmZmZDVhZTgzZDU0ZWI4ID0gJChgPGRpdiBpZD0iaHRtbF9iMWZiNTViMWY5M2E0OWRjOGJmZmQ1YWU4M2Q1NGViOCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+c3RhcnQ8L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfZWU0OWZkNjU3NjE0NGJiMmFjMWZkOWQ4ZDk0MDcyZGYuc2V0Q29udGVudChodG1sX2IxZmI1NWIxZjkzYTQ5ZGM4YmZmZDVhZTgzZDU0ZWI4KTsKICAgICAgICAKCiAgICAgICAgbWFya2VyXzlhMjVjNWJiODE1NzRlOWFhMmQ2NzY5NDViMzFkNTMzLmJpbmRQb3B1cChwb3B1cF9lZTQ5ZmQ2NTc2MTQ0YmIyYWMxZmQ5ZDhkOTQwNzJkZikKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl9mMjFlNWNlNWFjZjY0ODkxYmFlNDc4ZWNmOTg2YWFmOCA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzQ5Ljk2MzM2OCwgMTEuNTMxOTk3XSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwXzk4YzZiMjA1MjdjOTRjNDRiODNmOGNiZGI3MGUyNGQyKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl8yZDRiYzQxYmUwYWQ0MTNiODYzYjkxMzAzZGRiNDZiMiA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJyZWQiLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl9mMjFlNWNlNWFjZjY0ODkxYmFlNDc4ZWNmOTg2YWFmOC5zZXRJY29uKGljb25fMmQ0YmM0MWJlMGFkNDEzYjg2M2I5MTMwM2RkYjQ2YjIpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwX2NiYTJjM2QwMDllNzQ0MjY5YjA0YWM3MGFjZTM4Mzc0ID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF8zNzkyZTk2NzY5OGY0NzIxOWNlMTllZmIzNzdkYjIwMiA9ICQoYDxkaXYgaWQ9Imh0bWxfMzc5MmU5Njc2OThmNDcyMTljZTE5ZWZiMzc3ZGIyMDIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPmVuZDwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF9jYmEyYzNkMDA5ZTc0NDI2OWIwNGFjNzBhY2UzODM3NC5zZXRDb250ZW50KGh0bWxfMzc5MmU5Njc2OThmNDcyMTljZTE5ZWZiMzc3ZGIyMDIpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfZjIxZTVjZTVhY2Y2NDg5MWJhZTQ3OGVjZjk4NmFhZjguYmluZFBvcHVwKHBvcHVwX2NiYTJjM2QwMDllNzQ0MjY5YjA0YWM3MGFjZTM4Mzc0KQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uXzI2NmQ1ZmY1MjY5YjQ3Mzc5ZDczZjk3YWZlYWQ1MzM5X3N0eWxlcihmZWF0dXJlKSB7CiAgICAgICAgICAgIHN3aXRjaChmZWF0dXJlLmlkKSB7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIHJldHVybiB7ImNvbG9yIjogImJsdWUiLCAib3BhY2l0eSI6IDAuNSwgIndlaWdodCI6IDV9OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uXzI2NmQ1ZmY1MjY5YjQ3Mzc5ZDczZjk3YWZlYWQ1MzM5X29uRWFjaEZlYXR1cmUoZmVhdHVyZSwgbGF5ZXIpIHsKICAgICAgICAgICAgbGF5ZXIub24oewogICAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAgICAgICBtYXBfOThjNmIyMDUyN2M5NGM0NGI4M2Y4Y2JkYjcwZTI0ZDIuZml0Qm91bmRzKGUudGFyZ2V0LmdldEJvdW5kcygpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfTsKICAgICAgICB2YXIgZ2VvX2pzb25fMjY2ZDVmZjUyNjliNDczNzlkNzNmOTdhZmVhZDUzMzkgPSBMLmdlb0pzb24obnVsbCwgewogICAgICAgICAgICAgICAgb25FYWNoRmVhdHVyZTogZ2VvX2pzb25fMjY2ZDVmZjUyNjliNDczNzlkNzNmOTdhZmVhZDUzMzlfb25FYWNoRmVhdHVyZSwKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBzdHlsZTogZ2VvX2pzb25fMjY2ZDVmZjUyNjliNDczNzlkNzNmOTdhZmVhZDUzMzlfc3R5bGVyLAogICAgICAgIH0pLmFkZFRvKG1hcF85OGM2YjIwNTI3Yzk0YzQ0YjgzZjhjYmRiNzBlMjRkMik7CgogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uXzI2NmQ1ZmY1MjY5YjQ3Mzc5ZDczZjk3YWZlYWQ1MzM5X2FkZCAoZGF0YSkgewogICAgICAgICAgICBnZW9fanNvbl8yNjZkNWZmNTI2OWI0NzM3OWQ3M2Y5N2FmZWFkNTMzOS5hZGREYXRhKGRhdGEpOwogICAgICAgIH0KICAgICAgICAgICAgZ2VvX2pzb25fMjY2ZDVmZjUyNjliNDczNzlkNzNmOTdhZmVhZDUzMzlfYWRkKHsiZmVhdHVyZXMiOiBbeyJnZW9tZXRyeSI6IHsiY29vcmRpbmF0ZXMiOiBbWzExLjU1NTY3OSwgNDkuOTU0NDg3XSwgWzExLjU1NTg5OSwgNDkuOTU0NDVdLCBbMTEuNTU1MzY4LCA0OS45NTM1NjRdLCBbMTEuNTU1MDg0LCA0OS45NTMyMDNdLCBbMTEuNTU0NDU0LCA0OS45NTM0MjFdLCBbMTEuNTU0MjE3LCA0OS45NTM0NzddLCBbMTEuNTUzNTc3LCA0OS45NTM1NjZdLCBbMTEuNTUxNTYyLCA0OS45NTM3NzhdLCBbMTEuNTUwMjA5LCA0OS45NTM5MzldLCBbMTEuNTQ5NjA3LCA0OS45NTQwNl0sIFsxMS41NDkyNzEsIDQ5Ljk1NDE1XSwgWzExLjU0ODQ4NiwgNDkuOTU0NDE3XSwgWzExLjU0ODEyOSwgNDkuOTU0NTk0XSwgWzExLjU0NzYzMywgNDkuOTU0OTExXSwgWzExLjU0NzAzNCwgNDkuOTU1NDY1XSwgWzExLjU0MjgyMiwgNDkuOTU5ODIzXSwgWzExLjU0MjI1NCwgNDkuOTYwMzVdLCBbMTEuNTQxNzMsIDQ5Ljk2MDc4Ml0sIFsxMS41NDExOTgsIDQ5Ljk2MTE1OV0sIFsxMS41NDA3MTgsIDQ5Ljk2MTQ1MV0sIFsxMS41NDAyMDIsIDQ5Ljk2MTcyNF0sIFsxMS41Mzk3OTgsIDQ5Ljk2MTkxXSwgWzExLjUzODM5OCwgNDkuOTYyNDk3XSwgWzExLjUzNzk4OSwgNDkuOTYyNjg2XSwgWzExLjUzNzYwNiwgNDkuOTYyODk2XSwgWzExLjUzNzI3MywgNDkuOTYzMTE5XSwgWzExLjUzNjYwNSwgNDkuOTYzNjgyXSwgWzExLjUzNjIyNCwgNDkuOTYzOTYyXSwgWzExLjUzNTc5NywgNDkuOTY0MjEzXSwgWzExLjUzNTMzNSwgNDkuOTY0NDM2XSwgWzExLjUzNTA1MSwgNDkuOTY0NTk0XSwgWzExLjUzNDcyMywgNDkuOTY0ODI2XSwgWzExLjUzNDQyOCwgNDkuOTY1MDk0XSwgWzExLjUzNDExNywgNDkuOTY1NDUzXSwgWzExLjUzMzg2NiwgNDkuOTY1Njk0XSwgWzExLjUzMzI2OCwgNDkuOTY2MTExXSwgWzExLjUzMzA1NiwgNDkuOTY1OTU1XSwgWzExLjUzMjc5OSwgNDkuOTY1NzA2XSwgWzExLjUzMjYyOSwgNDkuOTY1NDg2XSwgWzExLjUzMjQ5NSwgNDkuOTY1MjA0XSwgWzExLjUzMjQxNiwgNDkuOTY0NTM4XSwgWzExLjUzMjM1NiwgNDkuOTY0NDM5XSwgWzExLjUzMTg3MSwgNDkuOTY0MDM0XSwgWzExLjUzMTcxMywgNDkuOTYzOTI2XSwgWzExLjUzMTQ5NywgNDkuOTYzODI5XV0sICJ0eXBlIjogIkxpbmVTdHJpbmcifSwgImlkIjogIjAiLCAidHlwZSI6ICJGZWF0dXJlIn1dLCAidHlwZSI6ICJGZWF0dXJlQ29sbGVjdGlvbiJ9KTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyXzAyODA4NGRhNjIwZDRjZDg5ZWU2YmYzNGQ0YzYxYmFlID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNDkuOTU0NTA2LCAxMS41NTU2ODZdLAogICAgICAgICAgICAgICAge30KICAgICAgICAgICAgKS5hZGRUbyhtYXBfOThjNmIyMDUyN2M5NGM0NGI4M2Y4Y2JkYjcwZTI0ZDIpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBpY29uXzYyZTVmMmNjYmEzZjRkNDdhMzc4Y2NkZTBmMDBkZThlID0gTC5Bd2Vzb21lTWFya2Vycy5pY29uKAogICAgICAgICAgICAgICAgeyJleHRyYUNsYXNzZXMiOiAiZmEtcm90YXRlLTAiLCAiaWNvbiI6ICJpbmZvLXNpZ24iLCAiaWNvbkNvbG9yIjogIndoaXRlIiwgIm1hcmtlckNvbG9yIjogImdyZWVuIiwgInByZWZpeCI6ICJnbHlwaGljb24ifQogICAgICAgICAgICApOwogICAgICAgICAgICBtYXJrZXJfMDI4MDg0ZGE2MjBkNGNkODllZTZiZjM0ZDRjNjFiYWUuc2V0SWNvbihpY29uXzYyZTVmMmNjYmEzZjRkNDdhMzc4Y2NkZTBmMDBkZThlKTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBwb3B1cF8wMzVmNmZlMDFkYjc0NWUzOTJhYzI2OTJhMTU5NTUyNCA9IEwucG9wdXAoeyJtYXhXaWR0aCI6ICIxMDAlIn0pOwoKICAgICAgICAKICAgICAgICAgICAgdmFyIGh0bWxfMzNlOTBhMDU0YjMzNGRiYjgzYWQ1N2Y5ZmQ3MmM4MmMgPSAkKGA8ZGl2IGlkPSJodG1sXzMzZTkwYTA1NGIzMzRkYmI4M2FkNTdmOWZkNzJjODJjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5zdGFydDwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF8wMzVmNmZlMDFkYjc0NWUzOTJhYzI2OTJhMTU5NTUyNC5zZXRDb250ZW50KGh0bWxfMzNlOTBhMDU0YjMzNGRiYjgzYWQ1N2Y5ZmQ3MmM4MmMpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfMDI4MDg0ZGE2MjBkNGNkODllZTZiZjM0ZDRjNjFiYWUuYmluZFBvcHVwKHBvcHVwXzAzNWY2ZmUwMWRiNzQ1ZTM5MmFjMjY5MmExNTk1NTI0KQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyXzAyNTMxZTBlMzIxOTRkMWI4YmVmNTg0ZDI1NmUxZmI3ID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNDkuOTYzMzY4LCAxMS41MzE5OTddLAogICAgICAgICAgICAgICAge30KICAgICAgICAgICAgKS5hZGRUbyhtYXBfOThjNmIyMDUyN2M5NGM0NGI4M2Y4Y2JkYjcwZTI0ZDIpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBpY29uX2IwNzJmNjZiYTE4YTRhNjZiNDcwMmYyYzRkNTE4MDE5ID0gTC5Bd2Vzb21lTWFya2Vycy5pY29uKAogICAgICAgICAgICAgICAgeyJleHRyYUNsYXNzZXMiOiAiZmEtcm90YXRlLTAiLCAiaWNvbiI6ICJpbmZvLXNpZ24iLCAiaWNvbkNvbG9yIjogIndoaXRlIiwgIm1hcmtlckNvbG9yIjogInJlZCIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyXzAyNTMxZTBlMzIxOTRkMWI4YmVmNTg0ZDI1NmUxZmI3LnNldEljb24oaWNvbl9iMDcyZjY2YmExOGE0YTY2YjQ3MDJmMmM0ZDUxODAxOSk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfNjk4NWVjZjE3MWQ5NGY5NThiN2U1ZDU3NDIzNDEwMmQgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sX2Q2ZDI0ZWU0ZmFhZDRkYzQ4MDUzODFlZGI2MzI4YTcxID0gJChgPGRpdiBpZD0iaHRtbF9kNmQyNGVlNGZhYWQ0ZGM0ODA1MzgxZWRiNjMyOGE3MSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+ZW5kPC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwXzY5ODVlY2YxNzFkOTRmOTU4YjdlNWQ1NzQyMzQxMDJkLnNldENvbnRlbnQoaHRtbF9kNmQyNGVlNGZhYWQ0ZGM0ODA1MzgxZWRiNjMyOGE3MSk7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl8wMjUzMWUwZTMyMTk0ZDFiOGJlZjU4NGQyNTZlMWZiNy5iaW5kUG9wdXAocG9wdXBfNjk4NWVjZjE3MWQ5NGY5NThiN2U1ZDU3NDIzNDEwMmQpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgZnVuY3Rpb24gZ2VvX2pzb25fM2VlODhjNGNjMzFmNGFjOTlhNGU0M2VjM2ExNzZkZDNfc3R5bGVyKGZlYXR1cmUpIHsKICAgICAgICAgICAgc3dpdGNoKGZlYXR1cmUuaWQpIHsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsiY29sb3IiOiAicmVkIiwgIm9wYWNpdHkiOiAwLjUsICJ3ZWlnaHQiOiA1fTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBnZW9fanNvbl8zZWU4OGM0Y2MzMWY0YWM5OWE0ZTQzZWMzYTE3NmRkM19vbkVhY2hGZWF0dXJlKGZlYXR1cmUsIGxheWVyKSB7CiAgICAgICAgICAgIGxheWVyLm9uKHsKICAgICAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICAgICAgbWFwXzk4YzZiMjA1MjdjOTRjNDRiODNmOGNiZGI3MGUyNGQyLmZpdEJvdW5kcyhlLnRhcmdldC5nZXRCb3VuZHMoKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH07CiAgICAgICAgdmFyIGdlb19qc29uXzNlZTg4YzRjYzMxZjRhYzk5YTRlNDNlYzNhMTc2ZGQzID0gTC5nZW9Kc29uKG51bGwsIHsKICAgICAgICAgICAgICAgIG9uRWFjaEZlYXR1cmU6IGdlb19qc29uXzNlZTg4YzRjYzMxZjRhYzk5YTRlNDNlYzNhMTc2ZGQzX29uRWFjaEZlYXR1cmUsCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgc3R5bGU6IGdlb19qc29uXzNlZTg4YzRjYzMxZjRhYzk5YTRlNDNlYzNhMTc2ZGQzX3N0eWxlciwKICAgICAgICB9KS5hZGRUbyhtYXBfOThjNmIyMDUyN2M5NGM0NGI4M2Y4Y2JkYjcwZTI0ZDIpOwoKICAgICAgICBmdW5jdGlvbiBnZW9fanNvbl8zZWU4OGM0Y2MzMWY0YWM5OWE0ZTQzZWMzYTE3NmRkM19hZGQgKGRhdGEpIHsKICAgICAgICAgICAgZ2VvX2pzb25fM2VlODhjNGNjMzFmNGFjOTlhNGU0M2VjM2ExNzZkZDMuYWRkRGF0YShkYXRhKTsKICAgICAgICB9CiAgICAgICAgICAgIGdlb19qc29uXzNlZTg4YzRjYzMxZjRhYzk5YTRlNDNlYzNhMTc2ZGQzX2FkZCh7ImZlYXR1cmVzIjogW3siZ2VvbWV0cnkiOiB7ImNvb3JkaW5hdGVzIjogW1sxMS41NTU2NzksIDQ5Ljk1NDQ4N10sIFsxMS41NTU4OTksIDQ5Ljk1NDQ1XSwgWzExLjU1NTM2OCwgNDkuOTUzNTY0XSwgWzExLjU1NTA4NCwgNDkuOTUzMjAzXSwgWzExLjU1NDQ1NCwgNDkuOTUzNDIxXSwgWzExLjU1NDIxNywgNDkuOTUzNDc3XSwgWzExLjU1MzU3NywgNDkuOTUzNTY2XSwgWzExLjU1MjE1MSwgNDkuOTUzNzE4XSwgWzExLjU1MjE3NCwgNDkuOTUzODQ2XSwgWzExLjU1MTk3NCwgNDkuOTUzODg1XSwgWzExLjU1MTMyNiwgNDkuOTU0MDgzXSwgWzExLjU1MTE0MSwgNDkuOTU0MTkzXSwgWzExLjU1MTAyNSwgNDkuOTU0Mjk1XSwgWzExLjU1MDg3OSwgNDkuOTU0NTQ1XSwgWzExLjU1MDc5MSwgNDkuOTU0ODI2XSwgWzExLjU1MDU1OCwgNDkuOTU1MjEyXSwgWzExLjU1MDM5MSwgNDkuOTU1NDIxXSwgWzExLjU0OTg1OCwgNDkuOTU1OTI4XSwgWzExLjU0ODg1NywgNDkuOTU2NzQ5XSwgWzExLjU0ODM3NywgNDkuOTU3MTY5XSwgWzExLjU0NzkzMiwgNDkuOTU3NjIxXSwgWzExLjU0Nzc1NCwgNDkuOTU3ODQ0XSwgWzExLjU0NjQxOSwgNDkuOTU5NzM2XSwgWzExLjU0NjA2MywgNDkuOTU5OTM5XSwgWzExLjU0NDg2MiwgNDkuOTYwNDFdLCBbMTEuNTQ0MzE0LCA0OS45NjA2ODRdLCBbMTEuNTQ0MDE4LCA0OS45NjA3OTldLCBbMTEuNTQxMzI5LCA0OS45NjE0OTJdLCBbMTEuNTQwNTc5LCA0OS45NjE3NThdLCBbMTEuNTM5NTUzLCA0OS45NjIxNzRdLCBbMTEuNTM4MzI4LCA0OS45NjI5MDhdLCBbMTEuNTM4MDg2LCA0OS45NjMwODhdLCBbMTEuNTM3NDY5LCA0OS45NjM2OTVdLCBbMTEuNTM3MjIsIDQ5Ljk2Mzk5OF0sIFsxMS41MzY4NCwgNDkuOTY0NTM2XSwgWzExLjUzNjc2OCwgNDkuOTY0NjA1XSwgWzExLjUzNjQsIDQ5Ljk2NDA5Ml0sIFsxMS41MzYzMjgsIDQ5Ljk2NDAyNF0sIFsxMS41MzYyMjQsIDQ5Ljk2Mzk2Ml0sIFsxMS41MzU3OTcsIDQ5Ljk2NDIxM10sIFsxMS41MzUzMzUsIDQ5Ljk2NDQzNl0sIFsxMS41MzUwNTEsIDQ5Ljk2NDU5NF0sIFsxMS41MzQ3MjMsIDQ5Ljk2NDgyNl0sIFsxMS41MzQ0MjgsIDQ5Ljk2NTA5NF0sIFsxMS41MzQxMTcsIDQ5Ljk2NTQ1M10sIFsxMS41MzM4NjYsIDQ5Ljk2NTY5NF0sIFsxMS41MzMyNjgsIDQ5Ljk2NjExMV0sIFsxMS41MzMwNTYsIDQ5Ljk2NTk1NV0sIFsxMS41MzI3OTksIDQ5Ljk2NTcwNl0sIFsxMS41MzI2MjksIDQ5Ljk2NTQ4Nl0sIFsxMS41MzI0OTUsIDQ5Ljk2NTIwNF0sIFsxMS41MzI0MTYsIDQ5Ljk2NDUzOF0sIFsxMS41MzIzNTYsIDQ5Ljk2NDQzOV0sIFsxMS41MzE4NzEsIDQ5Ljk2NDAzNF0sIFsxMS41MzE3MTMsIDQ5Ljk2MzkyNl0sIFsxMS41MzE0OTcsIDQ5Ljk2MzgyOV1dLCAidHlwZSI6ICJMaW5lU3RyaW5nIn0sICJpZCI6ICIwIiwgInR5cGUiOiAiRmVhdHVyZSJ9XSwgInR5cGUiOiAiRmVhdHVyZUNvbGxlY3Rpb24ifSk7CiAgICAgICAgCjwvc2NyaXB0Pg== onload=\"this.contentDocument.open();this.contentDocument.write(atob(this.getAttribute('data-html')));this.contentDocument.close();\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
],
"text/plain": [
"<folium.folium.Map at 0x7f67779a8278>"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"start=[11.555686,49.954506]\n",
"end=[11.531997,49.963368]\n",
"\n",
"m = folium.Map(location=latlon(start), zoom_start=14)\n",
"\n",
"route = requests.post(url=route_url, json={'profile':'bike', 'points':[start,end], 'points_encoded':False}).json()\n",
"if 'message' in route: raise Exception(route[\"message\"])\n",
"plot_route(m, start, end, route[\"paths\"][0], \"route\", \"blue\")\n",
"\n",
"priorityJson = {'max_speed': {'>50': 0.1}}\n",
"route = requests.post(url=route_url, json={'profile':'bike', 'points':[start,end], 'points_encoded':False, 'priority': priorityJson}).json()\n",
"if 'message' in route: raise Exception(route[\"message\"])\n",
"plot_route(m, start, end, route[\"paths\"][0], \"other\", \"red\")\n",
"\n",
"m"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Avoid tunnels"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"route: distance 0km and time 2min\n",
"other: distance 0km and time 2min\n"
]
},
{
"data": {
"text/html": [
"<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><span style=\"color:#565656\">Make this Notebook Trusted to load map: File -> Trust Notebook</span><iframe src=\"about:blank\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" data-html=PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgCiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgTF9OT19UT1VDSCA9IGZhbHNlOwogICAgICAgICAgICBMX0RJU0FCTEVfM0QgPSBmYWxzZTsKICAgICAgICA8L3NjcmlwdD4KICAgIAogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjYuMC9kaXN0L2xlYWZsZXQuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0xLjEyLjQubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjYuMC9kaXN0L2xlYWZsZXQuY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vYm9vdHN0cmFwLzMuMi4wL2Nzcy9ib290c3RyYXAubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLXRoZW1lLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9mb250LWF3ZXNvbWUvNC42LjMvY3NzL2ZvbnQtYXdlc29tZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL0xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLzIuMC4yL2xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3Jhd2Nkbi5naXRoYWNrLmNvbS9weXRob24tdmlzdWFsaXphdGlvbi9mb2xpdW0vbWFzdGVyL2ZvbGl1bS90ZW1wbGF0ZXMvbGVhZmxldC5hd2Vzb21lLnJvdGF0ZS5jc3MiLz4KICAgIDxzdHlsZT5odG1sLCBib2R5IHt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7bWFyZ2luOiAwO3BhZGRpbmc6IDA7fTwvc3R5bGU+CiAgICA8c3R5bGU+I21hcCB7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7cmlnaHQ6MDtsZWZ0OjA7fTwvc3R5bGU+CiAgICAKICAgICAgICAgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwKICAgICAgICAgICAgICAgIGluaXRpYWwtc2NhbGU9MS4wLCBtYXhpbXVtLXNjYWxlPTEuMCwgdXNlci1zY2FsYWJsZT1ubyIgLz4KICAgICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAgICAgI21hcF9hMmRmODlmNDdhZDE0MWQzODk2NzQzNGE3YTgxM2FkMyB7CiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgCjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvbGl1bS1tYXAiIGlkPSJtYXBfYTJkZjg5ZjQ3YWQxNDFkMzg5Njc0MzRhN2E4MTNhZDMiID48L2Rpdj4KICAgICAgICAKPC9ib2R5Pgo8c2NyaXB0PiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFwX2EyZGY4OWY0N2FkMTQxZDM4OTY3NDM0YTdhODEzYWQzID0gTC5tYXAoCiAgICAgICAgICAgICAgICAibWFwX2EyZGY4OWY0N2FkMTQxZDM4OTY3NDM0YTdhODEzYWQzIiwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBjZW50ZXI6IFs0OS45NTAxNTcsIDExLjU4MjY4XSwKICAgICAgICAgICAgICAgICAgICBjcnM6IEwuQ1JTLkVQU0czODU3LAogICAgICAgICAgICAgICAgICAgIHpvb206IDE2LAogICAgICAgICAgICAgICAgICAgIHpvb21Db250cm9sOiB0cnVlLAogICAgICAgICAgICAgICAgICAgIHByZWZlckNhbnZhczogZmFsc2UsCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICk7CgogICAgICAgICAgICAKCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHRpbGVfbGF5ZXJfYzI2MTg0NDFjNDU4NGE4OTgzMWY1Y2VjYzFhMTk2YzEgPSBMLnRpbGVMYXllcigKICAgICAgICAgICAgICAgICJodHRwczovL3tzfS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZyIsCiAgICAgICAgICAgICAgICB7ImF0dHJpYnV0aW9uIjogIkRhdGEgYnkgXHUwMDI2Y29weTsgXHUwMDNjYSBocmVmPVwiaHR0cDovL29wZW5zdHJlZXRtYXAub3JnXCJcdTAwM2VPcGVuU3RyZWV0TWFwXHUwMDNjL2FcdTAwM2UsIHVuZGVyIFx1MDAzY2EgaHJlZj1cImh0dHA6Ly93d3cub3BlbnN0cmVldG1hcC5vcmcvY29weXJpZ2h0XCJcdTAwM2VPRGJMXHUwMDNjL2FcdTAwM2UuIiwgImRldGVjdFJldGluYSI6IGZhbHNlLCAibWF4TmF0aXZlWm9vbSI6IDE4LCAibWF4Wm9vbSI6IDE4LCAibWluWm9vbSI6IDAsICJub1dyYXAiOiBmYWxzZSwgIm9wYWNpdHkiOiAxLCAic3ViZG9tYWlucyI6ICJhYmMiLCAidG1zIjogZmFsc2V9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2EyZGY4OWY0N2FkMTQxZDM4OTY3NDM0YTdhODEzYWQzKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyX2E4MTJmZWI2MTMwYjRmMzU5ODEzNTNmODA3OWFiOTI3ID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNDkuOTUwMTU3LCAxMS41ODI2OF0sCiAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICApLmFkZFRvKG1hcF9hMmRmODlmNDdhZDE0MWQzODk2NzQzNGE3YTgxM2FkMyk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGljb25fZWU1MzliYTE4NTJlNGM2YzhmY2QxZWIyMDgyNzY5MjIgPSBMLkF3ZXNvbWVNYXJrZXJzLmljb24oCiAgICAgICAgICAgICAgICB7ImV4dHJhQ2xhc3NlcyI6ICJmYS1yb3RhdGUtMCIsICJpY29uIjogImluZm8tc2lnbiIsICJpY29uQ29sb3IiOiAid2hpdGUiLCAibWFya2VyQ29sb3IiOiAiZ3JlZW4iLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl9hODEyZmViNjEzMGI0ZjM1OTgxMzUzZjgwNzlhYjkyNy5zZXRJY29uKGljb25fZWU1MzliYTE4NTJlNGM2YzhmY2QxZWIyMDgyNzY5MjIpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwXzIyOTQxMWQxYWVkMjRiNDg4NWNlZWQ5ODQyY2VhMDgyID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF9jMThhNzUwNmQ1ZGQ0MjVkYjA5YWNmZDcwNThjMTVkNCA9ICQoYDxkaXYgaWQ9Imh0bWxfYzE4YTc1MDZkNWRkNDI1ZGIwOWFjZmQ3MDU4YzE1ZDQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPnN0YXJ0PC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwXzIyOTQxMWQxYWVkMjRiNDg4NWNlZWQ5ODQyY2VhMDgyLnNldENvbnRlbnQoaHRtbF9jMThhNzUwNmQ1ZGQ0MjVkYjA5YWNmZDcwNThjMTVkNCk7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl9hODEyZmViNjEzMGI0ZjM1OTgxMzUzZjgwNzlhYjkyNy5iaW5kUG9wdXAocG9wdXBfMjI5NDExZDFhZWQyNGI0ODg1Y2VlZDk4NDJjZWEwODIpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfMjMyOGUxMzM3NzAwNDFhM2IzOTc1MTFhMWYzODcxYjcgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs0OS45NDY4OTgsIDExLjU3OTMyMl0sCiAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICApLmFkZFRvKG1hcF9hMmRmODlmNDdhZDE0MWQzODk2NzQzNGE3YTgxM2FkMyk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGljb25fMzgwYjY2Yzg2ZTA2NGE3MmEwNmFmN2VjMzYyMmUyOTMgPSBMLkF3ZXNvbWVNYXJrZXJzLmljb24oCiAgICAgICAgICAgICAgICB7ImV4dHJhQ2xhc3NlcyI6ICJmYS1yb3RhdGUtMCIsICJpY29uIjogImluZm8tc2lnbiIsICJpY29uQ29sb3IiOiAid2hpdGUiLCAibWFya2VyQ29sb3IiOiAicmVkIiwgInByZWZpeCI6ICJnbHlwaGljb24ifQogICAgICAgICAgICApOwogICAgICAgICAgICBtYXJrZXJfMjMyOGUxMzM3NzAwNDFhM2IzOTc1MTFhMWYzODcxYjcuc2V0SWNvbihpY29uXzM4MGI2NmM4NmUwNjRhNzJhMDZhZjdlYzM2MjJlMjkzKTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBwb3B1cF8wYjYyY2E1YTZmZWQ0ZWM2YWFlMjYwYmU4ZWU2Yzc1NyA9IEwucG9wdXAoeyJtYXhXaWR0aCI6ICIxMDAlIn0pOwoKICAgICAgICAKICAgICAgICAgICAgdmFyIGh0bWxfZjEyYjhhOWUwOWExNDgwZjgwMmU0NzBhYTJjZTY0MDUgPSAkKGA8ZGl2IGlkPSJodG1sX2YxMmI4YTllMDlhMTQ4MGY4MDJlNDcwYWEyY2U2NDA1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5lbmQ8L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfMGI2MmNhNWE2ZmVkNGVjNmFhZTI2MGJlOGVlNmM3NTcuc2V0Q29udGVudChodG1sX2YxMmI4YTllMDlhMTQ4MGY4MDJlNDcwYWEyY2U2NDA1KTsKICAgICAgICAKCiAgICAgICAgbWFya2VyXzIzMjhlMTMzNzcwMDQxYTNiMzk3NTExYTFmMzg3MWI3LmJpbmRQb3B1cChwb3B1cF8wYjYyY2E1YTZmZWQ0ZWM2YWFlMjYwYmU4ZWU2Yzc1NykKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICBmdW5jdGlvbiBnZW9fanNvbl8zYjIwZWI0MzM2Y2I0OWUzYjYzNTExNTZjMDk2YzlmOV9zdHlsZXIoZmVhdHVyZSkgewogICAgICAgICAgICBzd2l0Y2goZmVhdHVyZS5pZCkgewogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICByZXR1cm4geyJjb2xvciI6ICJibHVlIiwgIm9wYWNpdHkiOiAwLjUsICJ3ZWlnaHQiOiA1fTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBnZW9fanNvbl8zYjIwZWI0MzM2Y2I0OWUzYjYzNTExNTZjMDk2YzlmOV9vbkVhY2hGZWF0dXJlKGZlYXR1cmUsIGxheWVyKSB7CiAgICAgICAgICAgIGxheWVyLm9uKHsKICAgICAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICAgICAgbWFwX2EyZGY4OWY0N2FkMTQxZDM4OTY3NDM0YTdhODEzYWQzLmZpdEJvdW5kcyhlLnRhcmdldC5nZXRCb3VuZHMoKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH07CiAgICAgICAgdmFyIGdlb19qc29uXzNiMjBlYjQzMzZjYjQ5ZTNiNjM1MTE1NmMwOTZjOWY5ID0gTC5nZW9Kc29uKG51bGwsIHsKICAgICAgICAgICAgICAgIG9uRWFjaEZlYXR1cmU6IGdlb19qc29uXzNiMjBlYjQzMzZjYjQ5ZTNiNjM1MTE1NmMwOTZjOWY5X29uRWFjaEZlYXR1cmUsCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgc3R5bGU6IGdlb19qc29uXzNiMjBlYjQzMzZjYjQ5ZTNiNjM1MTE1NmMwOTZjOWY5X3N0eWxlciwKICAgICAgICB9KS5hZGRUbyhtYXBfYTJkZjg5ZjQ3YWQxNDFkMzg5Njc0MzRhN2E4MTNhZDMpOwoKICAgICAgICBmdW5jdGlvbiBnZW9fanNvbl8zYjIwZWI0MzM2Y2I0OWUzYjYzNTExNTZjMDk2YzlmOV9hZGQgKGRhdGEpIHsKICAgICAgICAgICAgZ2VvX2pzb25fM2IyMGViNDMzNmNiNDllM2I2MzUxMTU2YzA5NmM5ZjkuYWRkRGF0YShkYXRhKTsKICAgICAgICB9CiAgICAgICAgICAgIGdlb19qc29uXzNiMjBlYjQzMzZjYjQ5ZTNiNjM1MTE1NmMwOTZjOWY5X2FkZCh7ImZlYXR1cmVzIjogW3siZ2VvbWV0cnkiOiB7ImNvb3JkaW5hdGVzIjogW1sxMS41ODI2OTYsIDQ5Ljk1MDEzM10sIFsxMS41ODIxMjcsIDQ5Ljk0OTk4OV0sIFsxMS41ODE5NjksIDQ5Ljk1MDAxMV0sIFsxMS41ODE2MjMsIDQ5Ljk0OThdLCBbMTEuNTgxNDQ5LCA0OS45NDk1NTZdLCBbMTEuNTgxNDE1LCA0OS45NDk0NF0sIFsxMS41ODE0MTgsIDQ5Ljk0OTMyXSwgWzExLjU4MTU0MywgNDkuOTQ4NzU5XSwgWzExLjU4MTUzOSwgNDkuOTQ4NjIxXSwgWzExLjU4MTUwOCwgNDkuOTQ4NTE3XSwgWzExLjU4MTQ0OCwgNDkuOTQ4NDIzXSwgWzExLjU4MTM4MiwgNDkuOTQ4MzY4XSwgWzExLjU4MTExMywgNDkuOTQ4MjEzXSwgWzExLjU4MDk4LCA0OS45NDgxNzFdLCBbMTEuNTgwNjEzLCA0OS45NDgxMzJdLCBbMTEuNTgwMDczLCA0OS45NDgxMDldLCBbMTEuNTc5ODI4LCA0OS45NDgxNDldLCBbMTEuNTc5NTk5LCA0OS45NDc4MTNdLCBbMTEuNTc5NjIxLCA0OS45NDc3MTNdLCBbMTEuNTc5NTQ1LCA0OS45NDc1NjNdLCBbMTEuNTc5NTE2LCA0OS45NDc0NTFdLCBbMTEuNTc5MzU2LCA0OS45NDcyMzFdLCBbMTEuNTc5MjA5LCA0OS45NDcxNzRdLCBbMTEuNTc5MTU3LCA0OS45NDcxN10sIFsxMS41NzkwMjksIDQ5Ljk0NzAwM10sIFsxMS41NzkzMTksIDQ5Ljk0Njg5NF1dLCAidHlwZSI6ICJMaW5lU3RyaW5nIn0sICJpZCI6ICIwIiwgInR5cGUiOiAiRmVhdHVyZSJ9XSwgInR5cGUiOiAiRmVhdHVyZUNvbGxlY3Rpb24ifSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl9hMzJmNGM5ZDVhNzM0N2YyYWMyMjM5N2RjOWFiOWZhZSA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzQ5Ljk1MDE1NywgMTEuNTgyNjhdLAogICAgICAgICAgICAgICAge30KICAgICAgICAgICAgKS5hZGRUbyhtYXBfYTJkZjg5ZjQ3YWQxNDFkMzg5Njc0MzRhN2E4MTNhZDMpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBpY29uX2E0ZjY2YmExN2MzMjQ0ODI4YmE2ZDRhMDdiYzBlZGE2ID0gTC5Bd2Vzb21lTWFya2Vycy5pY29uKAogICAgICAgICAgICAgICAgeyJleHRyYUNsYXNzZXMiOiAiZmEtcm90YXRlLTAiLCAiaWNvbiI6ICJpbmZvLXNpZ24iLCAiaWNvbkNvbG9yIjogIndoaXRlIiwgIm1hcmtlckNvbG9yIjogImdyZWVuIiwgInByZWZpeCI6ICJnbHlwaGljb24ifQogICAgICAgICAgICApOwogICAgICAgICAgICBtYXJrZXJfYTMyZjRjOWQ1YTczNDdmMmFjMjIzOTdkYzlhYjlmYWUuc2V0SWNvbihpY29uX2E0ZjY2YmExN2MzMjQ0ODI4YmE2ZDRhMDdiYzBlZGE2KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBwb3B1cF8yZWJmZjU0Y2RjY2U0OTQzYmI3MDJhZjY4OWQ4NjlhMiA9IEwucG9wdXAoeyJtYXhXaWR0aCI6ICIxMDAlIn0pOwoKICAgICAgICAKICAgICAgICAgICAgdmFyIGh0bWxfNzc0ZWU0ZTgyNDE1NGFjYzg2OGRkZjFlYjAwODQwMGIgPSAkKGA8ZGl2IGlkPSJodG1sXzc3NGVlNGU4MjQxNTRhY2M4NjhkZGYxZWIwMDg0MDBiIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5zdGFydDwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF8yZWJmZjU0Y2RjY2U0OTQzYmI3MDJhZjY4OWQ4NjlhMi5zZXRDb250ZW50KGh0bWxfNzc0ZWU0ZTgyNDE1NGFjYzg2OGRkZjFlYjAwODQwMGIpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfYTMyZjRjOWQ1YTczNDdmMmFjMjIzOTdkYzlhYjlmYWUuYmluZFBvcHVwKHBvcHVwXzJlYmZmNTRjZGNjZTQ5NDNiYjcwMmFmNjg5ZDg2OWEyKQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyXzc1MmM5ZDdiMThhYTRmNjY5ZTVjOWMyZDQyZmM3YzA5ID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNDkuOTQ2ODk4LCAxMS41NzkzMjJdLAogICAgICAgICAgICAgICAge30KICAgICAgICAgICAgKS5hZGRUbyhtYXBfYTJkZjg5ZjQ3YWQxNDFkMzg5Njc0MzRhN2E4MTNhZDMpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBpY29uX2QwZTU5NTI3M2Q5ZTQ1NjBiMjUxYjg1NDZmYzJhNzYwID0gTC5Bd2Vzb21lTWFya2Vycy5pY29uKAogICAgICAgICAgICAgICAgeyJleHRyYUNsYXNzZXMiOiAiZmEtcm90YXRlLTAiLCAiaWNvbiI6ICJpbmZvLXNpZ24iLCAiaWNvbkNvbG9yIjogIndoaXRlIiwgIm1hcmtlckNvbG9yIjogInJlZCIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyXzc1MmM5ZDdiMThhYTRmNjY5ZTVjOWMyZDQyZmM3YzA5LnNldEljb24oaWNvbl9kMGU1OTUyNzNkOWU0NTYwYjI1MWI4NTQ2ZmMyYTc2MCk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfZWE0YmQ1NTU1NzMyNGRlMGI2NzI3M2VjMzE2MTg3NTggPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sX2ZkNTkyNWY4MTkzNDQ4MGFiYjY5YTk4OGM3YWM0YmI4ID0gJChgPGRpdiBpZD0iaHRtbF9mZDU5MjVmODE5MzQ0ODBhYmI2OWE5ODhjN2FjNGJiOCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+ZW5kPC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwX2VhNGJkNTU1NTczMjRkZTBiNjcyNzNlYzMxNjE4NzU4LnNldENvbnRlbnQoaHRtbF9mZDU5MjVmODE5MzQ0ODBhYmI2OWE5ODhjN2FjNGJiOCk7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl83NTJjOWQ3YjE4YWE0ZjY2OWU1YzljMmQ0MmZjN2MwOS5iaW5kUG9wdXAocG9wdXBfZWE0YmQ1NTU1NzMyNGRlMGI2NzI3M2VjMzE2MTg3NTgpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgZnVuY3Rpb24gZ2VvX2pzb25fMTQ3YmNkNDg5MDA4NGQ3OWJjYzZlYTVhNDJkMGY1NjJfc3R5bGVyKGZlYXR1cmUpIHsKICAgICAgICAgICAgc3dpdGNoKGZlYXR1cmUuaWQpIHsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsiY29sb3IiOiAicmVkIiwgIm9wYWNpdHkiOiAwLjUsICJ3ZWlnaHQiOiA1fTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBnZW9fanNvbl8xNDdiY2Q0ODkwMDg0ZDc5YmNjNmVhNWE0MmQwZjU2Ml9vbkVhY2hGZWF0dXJlKGZlYXR1cmUsIGxheWVyKSB7CiAgICAgICAgICAgIGxheWVyLm9uKHsKICAgICAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICAgICAgbWFwX2EyZGY4OWY0N2FkMTQxZDM4OTY3NDM0YTdhODEzYWQzLmZpdEJvdW5kcyhlLnRhcmdldC5nZXRCb3VuZHMoKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH07CiAgICAgICAgdmFyIGdlb19qc29uXzE0N2JjZDQ4OTAwODRkNzliY2M2ZWE1YTQyZDBmNTYyID0gTC5nZW9Kc29uKG51bGwsIHsKICAgICAgICAgICAgICAgIG9uRWFjaEZlYXR1cmU6IGdlb19qc29uXzE0N2JjZDQ4OTAwODRkNzliY2M2ZWE1YTQyZDBmNTYyX29uRWFjaEZlYXR1cmUsCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgc3R5bGU6IGdlb19qc29uXzE0N2JjZDQ4OTAwODRkNzliY2M2ZWE1YTQyZDBmNTYyX3N0eWxlciwKICAgICAgICB9KS5hZGRUbyhtYXBfYTJkZjg5ZjQ3YWQxNDFkMzg5Njc0MzRhN2E4MTNhZDMpOwoKICAgICAgICBmdW5jdGlvbiBnZW9fanNvbl8xNDdiY2Q0ODkwMDg0ZDc5YmNjNmVhNWE0MmQwZjU2Ml9hZGQgKGRhdGEpIHsKICAgICAgICAgICAgZ2VvX2pzb25fMTQ3YmNkNDg5MDA4NGQ3OWJjYzZlYTVhNDJkMGY1NjIuYWRkRGF0YShkYXRhKTsKICAgICAgICB9CiAgICAgICAgICAgIGdlb19qc29uXzE0N2JjZDQ4OTAwODRkNzliY2M2ZWE1YTQyZDBmNTYyX2FkZCh7ImZlYXR1cmVzIjogW3siZ2VvbWV0cnkiOiB7ImNvb3JkaW5hdGVzIjogW1sxMS41ODI2OTYsIDQ5Ljk1MDEzM10sIFsxMS41ODIxMjcsIDQ5Ljk0OTk4OV0sIFsxMS41ODE5NjksIDQ5Ljk1MDAxMV0sIFsxMS41ODE2MjMsIDQ5Ljk0OThdLCBbMTEuNTgxNDQ5LCA0OS45NDk1NTZdLCBbMTEuNTgxNDE1LCA0OS45NDk0NF0sIFsxMS41ODE0MTgsIDQ5Ljk0OTMyXSwgWzExLjU4MTU0MywgNDkuOTQ4NzU5XSwgWzExLjU4MTUzOSwgNDkuOTQ4NjIxXSwgWzExLjU4MTUwOCwgNDkuOTQ4NTE3XSwgWzExLjU4MTQ0OCwgNDkuOTQ4NDIzXSwgWzExLjU4MTM4MiwgNDkuOTQ4MzY4XSwgWzExLjU4MTExMywgNDkuOTQ4MjEzXSwgWzExLjU4MDk4LCA0OS45NDgxNzFdLCBbMTEuNTgxMTEzLCA0OS45NDgxMDRdLCBbMTEuNTgxMDE5LCA0OS45NDgwNzNdLCBbMTEuNTgxMTE5LCA0OS45NDgwMTJdLCBbMTEuNTgxMTIyLCA0OS45NDc5MDhdLCBbMTEuNTgxNDUsIDQ5Ljk0NzE4OF0sIFsxMS41ODE0OSwgNDkuOTQ2OTE2XSwgWzExLjU4MTQ2OSwgNDkuOTQ2NzQzXSwgWzExLjU4MTEyOCwgNDkuOTQ2NjM4XSwgWzExLjU4MDcyNSwgNDkuOTQ2NTM5XSwgWzExLjU4MDQ4NywgNDkuOTQ2NTM0XSwgWzExLjU4MDMxMywgNDkuOTQ2NTY1XSwgWzExLjU3OTcyOCwgNDkuOTQ2NzQxXSwgWzExLjU3OTU3MywgNDkuOTQ2ODExXSwgWzExLjU3OTMxOSwgNDkuOTQ2ODk0XV0sICJ0eXBlIjogIkxpbmVTdHJpbmcifSwgImlkIjogIjAiLCAidHlwZSI6ICJGZWF0dXJlIn1dLCAidHlwZSI6ICJGZWF0dXJlQ29sbGVjdGlvbiJ9KTsKICAgICAgICAKPC9zY3JpcHQ+ onload=\"this.contentDocument.open();this.contentDocument.write(atob(this.getAttribute('data-html')));this.contentDocument.close();\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
],
"text/plain": [
"<folium.folium.Map at 0x7f67779ca240>"
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"start=[11.58268,49.950157]\n",
"end=[11.579322,49.946898]\n",
"\n",
"m = folium.Map(location=latlon(start), zoom_start=16)\n",
"\n",
"route = requests.post(url=route_url, json={'profile':'bike', 'points':[start,end], 'points_encoded':False}).json()\n",
"if 'message' in route: raise Exception(route[\"message\"])\n",
"plot_route(m, start, end, route[\"paths\"][0], \"route\", \"blue\")\n",
"\n",
"priorityJson = {'road_environment': {'tunnel': 0.01}}\n",
"route = requests.post(url=route_url, json={'profile':'bike', 'points':[start,end], 'points_encoded':False, 'priority': priorityJson}).json()\n",
"if 'message' in route: raise Exception(route[\"message\"])\n",
"plot_route(m, start, end, route[\"paths\"][0], \"other\", \"red\")\n",
"\n",
"m"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Cargo Bike\n",
"\n",
"Cargo bikes require a certain width"
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"route: distance 0km and time 0min\n",
"other: distance 0km and time 0min\n"
]
},
{
"data": {
"text/html": [
"<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><span style=\"color:#565656\">Make this Notebook Trusted to load map: File -> Trust Notebook</span><iframe src=\"about:blank\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" data-html=PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgCiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgTF9OT19UT1VDSCA9IGZhbHNlOwogICAgICAgICAgICBMX0RJU0FCTEVfM0QgPSBmYWxzZTsKICAgICAgICA8L3NjcmlwdD4KICAgIAogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjYuMC9kaXN0L2xlYWZsZXQuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0xLjEyLjQubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjYuMC9kaXN0L2xlYWZsZXQuY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vYm9vdHN0cmFwLzMuMi4wL2Nzcy9ib290c3RyYXAubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLXRoZW1lLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9mb250LWF3ZXNvbWUvNC42LjMvY3NzL2ZvbnQtYXdlc29tZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL0xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLzIuMC4yL2xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3Jhd2Nkbi5naXRoYWNrLmNvbS9weXRob24tdmlzdWFsaXphdGlvbi9mb2xpdW0vbWFzdGVyL2ZvbGl1bS90ZW1wbGF0ZXMvbGVhZmxldC5hd2Vzb21lLnJvdGF0ZS5jc3MiLz4KICAgIDxzdHlsZT5odG1sLCBib2R5IHt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7bWFyZ2luOiAwO3BhZGRpbmc6IDA7fTwvc3R5bGU+CiAgICA8c3R5bGU+I21hcCB7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7cmlnaHQ6MDtsZWZ0OjA7fTwvc3R5bGU+CiAgICAKICAgICAgICAgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwKICAgICAgICAgICAgICAgIGluaXRpYWwtc2NhbGU9MS4wLCBtYXhpbXVtLXNjYWxlPTEuMCwgdXNlci1zY2FsYWJsZT1ubyIgLz4KICAgICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAgICAgI21hcF9hNDBiZWQ0ZmU2MmY0NWQ2OTliNzQyNjNhNmRmMDk0YSB7CiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgCjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvbGl1bS1tYXAiIGlkPSJtYXBfYTQwYmVkNGZlNjJmNDVkNjk5Yjc0MjYzYTZkZjA5NGEiID48L2Rpdj4KICAgICAgICAKPC9ib2R5Pgo8c2NyaXB0PiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFwX2E0MGJlZDRmZTYyZjQ1ZDY5OWI3NDI2M2E2ZGYwOTRhID0gTC5tYXAoCiAgICAgICAgICAgICAgICAibWFwX2E0MGJlZDRmZTYyZjQ1ZDY5OWI3NDI2M2E2ZGYwOTRhIiwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBjZW50ZXI6IFs1Mi41MDIzNjgsIDEzLjM1ODg4MV0sCiAgICAgICAgICAgICAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NywKICAgICAgICAgICAgICAgICAgICB6b29tOiAxOCwKICAgICAgICAgICAgICAgICAgICB6b29tQ29udHJvbDogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICBwcmVmZXJDYW52YXM6IGZhbHNlLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApOwoKICAgICAgICAgICAgCgogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciB0aWxlX2xheWVyX2I1YWZkNGZiZGI2ZjRiMDNhMzg5NjY0MjgxMmMxYzU1ID0gTC50aWxlTGF5ZXIoCiAgICAgICAgICAgICAgICAiaHR0cHM6Ly97c30udGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmciLAogICAgICAgICAgICAgICAgeyJhdHRyaWJ1dGlvbiI6ICJEYXRhIGJ5IFx1MDAyNmNvcHk7IFx1MDAzY2EgaHJlZj1cImh0dHA6Ly9vcGVuc3RyZWV0bWFwLm9yZ1wiXHUwMDNlT3BlblN0cmVldE1hcFx1MDAzYy9hXHUwMDNlLCB1bmRlciBcdTAwM2NhIGhyZWY9XCJodHRwOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL2NvcHlyaWdodFwiXHUwMDNlT0RiTFx1MDAzYy9hXHUwMDNlLiIsICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwgIm1heE5hdGl2ZVpvb20iOiAxOCwgIm1heFpvb20iOiAxOCwgIm1pblpvb20iOiAwLCAibm9XcmFwIjogZmFsc2UsICJvcGFjaXR5IjogMSwgInN1YmRvbWFpbnMiOiAiYWJjIiwgInRtcyI6IGZhbHNlfQogICAgICAgICAgICApLmFkZFRvKG1hcF9hNDBiZWQ0ZmU2MmY0NWQ2OTliNzQyNjNhNmRmMDk0YSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl84ODJiMTI1NjliYzU0ZmJjYTMxZDlkMjc0OTUwYjEwMiA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzUyLjUwMjM2OCwgMTMuMzU4ODgxXSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2E0MGJlZDRmZTYyZjQ1ZDY5OWI3NDI2M2E2ZGYwOTRhKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl82ZjlmZjQ3MGM1NWM0MjRhODkwMDljZTM3YjkwM2M4MSA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJncmVlbiIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyXzg4MmIxMjU2OWJjNTRmYmNhMzFkOWQyNzQ5NTBiMTAyLnNldEljb24oaWNvbl82ZjlmZjQ3MGM1NWM0MjRhODkwMDljZTM3YjkwM2M4MSk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfZjg2ZDQ2ZTlkZWRlNGJmZDlmYjU3MWMwYjcxYzEwODIgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sX2RhOTM1ZmJhNDkwNTRiNzFiZWJmNjI0MjNlZWQ4ZTg2ID0gJChgPGRpdiBpZD0iaHRtbF9kYTkzNWZiYTQ5MDU0YjcxYmViZjYyNDIzZWVkOGU4NiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+c3RhcnQ8L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfZjg2ZDQ2ZTlkZWRlNGJmZDlmYjU3MWMwYjcxYzEwODIuc2V0Q29udGVudChodG1sX2RhOTM1ZmJhNDkwNTRiNzFiZWJmNjI0MjNlZWQ4ZTg2KTsKICAgICAgICAKCiAgICAgICAgbWFya2VyXzg4MmIxMjU2OWJjNTRmYmNhMzFkOWQyNzQ5NTBiMTAyLmJpbmRQb3B1cChwb3B1cF9mODZkNDZlOWRlZGU0YmZkOWZiNTcxYzBiNzFjMTA4MikKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl8xOTFmZDJlZDk1MjQ0MzJjOTVjODE1NWQzNjM3MmFiMiA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzUyLjUwMjEzNiwgMTMuMzU5MTg3XSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2E0MGJlZDRmZTYyZjQ1ZDY5OWI3NDI2M2E2ZGYwOTRhKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl8zYTQ2N2Y5MDM3NWU0ZGQzOGQ4NDc2ODA4ZWY0ZTNmOCA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJyZWQiLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl8xOTFmZDJlZDk1MjQ0MzJjOTVjODE1NWQzNjM3MmFiMi5zZXRJY29uKGljb25fM2E0NjdmOTAzNzVlNGRkMzhkODQ3NjgwOGVmNGUzZjgpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwXzRkNWZlOGRkYTdlYTRjYmFhZDg4Y2MxMWI2Njk5ZmNlID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF9iNmY4Nzg2MTQ3ZTE0MDE5YjJkZjI0ZWQ1MDc1ODEwMSA9ICQoYDxkaXYgaWQ9Imh0bWxfYjZmODc4NjE0N2UxNDAxOWIyZGYyNGVkNTA3NTgxMDEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPmVuZDwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF80ZDVmZThkZGE3ZWE0Y2JhYWQ4OGNjMTFiNjY5OWZjZS5zZXRDb250ZW50KGh0bWxfYjZmODc4NjE0N2UxNDAxOWIyZGYyNGVkNTA3NTgxMDEpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfMTkxZmQyZWQ5NTI0NDMyYzk1YzgxNTVkMzYzNzJhYjIuYmluZFBvcHVwKHBvcHVwXzRkNWZlOGRkYTdlYTRjYmFhZDg4Y2MxMWI2Njk5ZmNlKQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uXzQxZDJlNzk2Y2M4NDRjYTE5OGZiOTliNTk1NTdmYmZmX3N0eWxlcihmZWF0dXJlKSB7CiAgICAgICAgICAgIHN3aXRjaChmZWF0dXJlLmlkKSB7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIHJldHVybiB7ImNvbG9yIjogImJsdWUiLCAib3BhY2l0eSI6IDAuNSwgIndlaWdodCI6IDV9OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uXzQxZDJlNzk2Y2M4NDRjYTE5OGZiOTliNTk1NTdmYmZmX29uRWFjaEZlYXR1cmUoZmVhdHVyZSwgbGF5ZXIpIHsKICAgICAgICAgICAgbGF5ZXIub24oewogICAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAgICAgICBtYXBfYTQwYmVkNGZlNjJmNDVkNjk5Yjc0MjYzYTZkZjA5NGEuZml0Qm91bmRzKGUudGFyZ2V0LmdldEJvdW5kcygpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfTsKICAgICAgICB2YXIgZ2VvX2pzb25fNDFkMmU3OTZjYzg0NGNhMTk4ZmI5OWI1OTU1N2ZiZmYgPSBMLmdlb0pzb24obnVsbCwgewogICAgICAgICAgICAgICAgb25FYWNoRmVhdHVyZTogZ2VvX2pzb25fNDFkMmU3OTZjYzg0NGNhMTk4ZmI5OWI1OTU1N2ZiZmZfb25FYWNoRmVhdHVyZSwKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBzdHlsZTogZ2VvX2pzb25fNDFkMmU3OTZjYzg0NGNhMTk4ZmI5OWI1OTU1N2ZiZmZfc3R5bGVyLAogICAgICAgIH0pLmFkZFRvKG1hcF9hNDBiZWQ0ZmU2MmY0NWQ2OTliNzQyNjNhNmRmMDk0YSk7CgogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uXzQxZDJlNzk2Y2M4NDRjYTE5OGZiOTliNTk1NTdmYmZmX2FkZCAoZGF0YSkgewogICAgICAgICAgICBnZW9fanNvbl80MWQyZTc5NmNjODQ0Y2ExOThmYjk5YjU5NTU3ZmJmZi5hZGREYXRhKGRhdGEpOwogICAgICAgIH0KICAgICAgICAgICAgZ2VvX2pzb25fNDFkMmU3OTZjYzg0NGNhMTk4ZmI5OWI1OTU1N2ZiZmZfYWRkKHsiZmVhdHVyZXMiOiBbeyJnZW9tZXRyeSI6IHsiY29vcmRpbmF0ZXMiOiBbWzEzLjM1ODg1LCA1Mi41MDIzNzRdLCBbMTMuMzU4NzkxLCA1Mi41MDIyNDldLCBbMTMuMzU5MDE5LCA1Mi41MDIxOV0sIFsxMy4zNTkwOTcsIDUyLjUwMjE1Nl0sIFsxMy4zNTkxODgsIDUyLjUwMjEzOF1dLCAidHlwZSI6ICJMaW5lU3RyaW5nIn0sICJpZCI6ICIwIiwgInR5cGUiOiAiRmVhdHVyZSJ9XSwgInR5cGUiOiAiRmVhdHVyZUNvbGxlY3Rpb24ifSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl9iOTk0ODA3MGFjNDM0ZmJhOTE0MTUyY2EzYjc3OGI5YSA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzUyLjUwMjM2OCwgMTMuMzU4ODgxXSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2E0MGJlZDRmZTYyZjQ1ZDY5OWI3NDI2M2E2ZGYwOTRhKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl9kOGMwMWI5ZTU3NDk0NzdhODRhNTRmMmVmZmIxNjc5NSA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJncmVlbiIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyX2I5OTQ4MDcwYWM0MzRmYmE5MTQxNTJjYTNiNzc4YjlhLnNldEljb24oaWNvbl9kOGMwMWI5ZTU3NDk0NzdhODRhNTRmMmVmZmIxNjc5NSk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfYTllNTkxM2RmM2Q1NGE3NmI5M2ZkY2NmMDY4ZWZhYmUgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sX2YwMjJjNjBlNzc3NDRlMWRiODZmODNlNDY0ZDZkZmEyID0gJChgPGRpdiBpZD0iaHRtbF9mMDIyYzYwZTc3NzQ0ZTFkYjg2ZjgzZTQ2NGQ2ZGZhMiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+c3RhcnQ8L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfYTllNTkxM2RmM2Q1NGE3NmI5M2ZkY2NmMDY4ZWZhYmUuc2V0Q29udGVudChodG1sX2YwMjJjNjBlNzc3NDRlMWRiODZmODNlNDY0ZDZkZmEyKTsKICAgICAgICAKCiAgICAgICAgbWFya2VyX2I5OTQ4MDcwYWM0MzRmYmE5MTQxNTJjYTNiNzc4YjlhLmJpbmRQb3B1cChwb3B1cF9hOWU1OTEzZGYzZDU0YTc2YjkzZmRjY2YwNjhlZmFiZSkKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl9mYTk2OGQ4ZjRiMDY0ZGNiYjFmZDRiZmY1M2Y4NzIxYiA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzUyLjUwMjEzNiwgMTMuMzU5MTg3XSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2E0MGJlZDRmZTYyZjQ1ZDY5OWI3NDI2M2E2ZGYwOTRhKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl8yZTExZDBmNTA5ZWU0NDQ4OTcxNjlkOTY2ZWNmNjc1ZSA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJyZWQiLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl9mYTk2OGQ4ZjRiMDY0ZGNiYjFmZDRiZmY1M2Y4NzIxYi5zZXRJY29uKGljb25fMmUxMWQwZjUwOWVlNDQ0ODk3MTY5ZDk2NmVjZjY3NWUpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwX2I5YjNiYmE5MTFhMjRjMjg4MGViNjNlNTc0OTQ1MjI2ID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF9jMTNlNWY1YzYxMTg0YzExYTQxNWVjODUyZWJlZjY3NCA9ICQoYDxkaXYgaWQ9Imh0bWxfYzEzZTVmNWM2MTE4NGMxMWE0MTVlYzg1MmViZWY2NzQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPmVuZDwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF9iOWIzYmJhOTExYTI0YzI4ODBlYjYzZTU3NDk0NTIyNi5zZXRDb250ZW50KGh0bWxfYzEzZTVmNWM2MTE4NGMxMWE0MTVlYzg1MmViZWY2NzQpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfZmE5NjhkOGY0YjA2NGRjYmIxZmQ0YmZmNTNmODcyMWIuYmluZFBvcHVwKHBvcHVwX2I5YjNiYmE5MTFhMjRjMjg4MGViNjNlNTc0OTQ1MjI2KQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uX2MzNDc0YTExZmZiZDQwYTc5YTExY2I0NTJkZGI1NzgzX3N0eWxlcihmZWF0dXJlKSB7CiAgICAgICAgICAgIHN3aXRjaChmZWF0dXJlLmlkKSB7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIHJldHVybiB7ImNvbG9yIjogInJlZCIsICJvcGFjaXR5IjogMC41LCAid2VpZ2h0IjogNX07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gZ2VvX2pzb25fYzM0NzRhMTFmZmJkNDBhNzlhMTFjYjQ1MmRkYjU3ODNfb25FYWNoRmVhdHVyZShmZWF0dXJlLCBsYXllcikgewogICAgICAgICAgICBsYXllci5vbih7CiAgICAgICAgICAgICAgICBjbGljazogZnVuY3Rpb24oZSkgewogICAgICAgICAgICAgICAgICAgIG1hcF9hNDBiZWQ0ZmU2MmY0NWQ2OTliNzQyNjNhNmRmMDk0YS5maXRCb3VuZHMoZS50YXJnZXQuZ2V0Qm91bmRzKCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9OwogICAgICAgIHZhciBnZW9fanNvbl9jMzQ3NGExMWZmYmQ0MGE3OWExMWNiNDUyZGRiNTc4MyA9IEwuZ2VvSnNvbihudWxsLCB7CiAgICAgICAgICAgICAgICBvbkVhY2hGZWF0dXJlOiBnZW9fanNvbl9jMzQ3NGExMWZmYmQ0MGE3OWExMWNiNDUyZGRiNTc4M19vbkVhY2hGZWF0dXJlLAogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHN0eWxlOiBnZW9fanNvbl9jMzQ3NGExMWZmYmQ0MGE3OWExMWNiNDUyZGRiNTc4M19zdHlsZXIsCiAgICAgICAgfSkuYWRkVG8obWFwX2E0MGJlZDRmZTYyZjQ1ZDY5OWI3NDI2M2E2ZGYwOTRhKTsKCiAgICAgICAgZnVuY3Rpb24gZ2VvX2pzb25fYzM0NzRhMTFmZmJkNDBhNzlhMTFjYjQ1MmRkYjU3ODNfYWRkIChkYXRhKSB7CiAgICAgICAgICAgIGdlb19qc29uX2MzNDc0YTExZmZiZDQwYTc5YTExY2I0NTJkZGI1NzgzLmFkZERhdGEoZGF0YSk7CiAgICAgICAgfQogICAgICAgICAgICBnZW9fanNvbl9jMzQ3NGExMWZmYmQ0MGE3OWExMWNiNDUyZGRiNTc4M19hZGQoeyJmZWF0dXJlcyI6IFt7Imdlb21ldHJ5IjogeyJjb29yZGluYXRlcyI6IFtbMTMuMzU4ODUsIDUyLjUwMjM3NF0sIFsxMy4zNTg3NywgNTIuNTAyMjA3XSwgWzEzLjM1OTA1MiwgNTIuNTAyMTEzXSwgWzEzLjM1OTA5NywgNTIuNTAyMTU2XSwgWzEzLjM1OTE4OCwgNTIuNTAyMTM4XV0sICJ0eXBlIjogIkxpbmVTdHJpbmcifSwgImlkIjogIjAiLCAidHlwZSI6ICJGZWF0dXJlIn1dLCAidHlwZSI6ICJGZWF0dXJlQ29sbGVjdGlvbiJ9KTsKICAgICAgICAKPC9zY3JpcHQ+ onload=\"this.contentDocument.open();this.contentDocument.write(atob(this.getAttribute('data-html')));this.contentDocument.close();\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
],
"text/plain": [
"<folium.folium.Map at 0x7f6777969940>"
]
},
"execution_count": 6,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"start=[13.358881,52.502368]\n",
"end=[13.359187,52.502136]\n",
"\n",
"m = folium.Map(location=latlon(start), zoom_start=18)\n",
"\n",
"route = requests.post(url=route_url, json={'profile':'bike', 'points':[start,end], 'points_encoded':False}).json()\n",
"if 'message' in route: raise Exception(route[\"message\"])\n",
"plot_route(m, start, end, route[\"paths\"][0], \"route\", \"blue\")\n",
"\n",
"priorityJson = {'road_class': {'steps': 0}, 'max_width': {'<1.5': 0.}}\n",
"route = requests.post(url=route_url, json={'profile':'bike', 'points':[start,end], 'points_encoded':False, 'priority': priorityJson}).json()\n",
"if 'message' in route: raise Exception(route[\"message\"])\n",
"plot_route(m, start, end, route[\"paths\"][0], \"other\", \"red\")\n",
"\n",
"m"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Walking for Tourists\n",
"\n",
"Let's prefer roads from the official foot network"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"route: distance 3km and time 42min\n",
"other: distance 4km and time 48min\n"
]
},
{
"data": {
"text/html": [
"<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><span style=\"color:#565656\">Make this Notebook Trusted to load map: File -> Trust Notebook</span><iframe src=\"about:blank\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" data-html=PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgCiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgTF9OT19UT1VDSCA9IGZhbHNlOwogICAgICAgICAgICBMX0RJU0FCTEVfM0QgPSBmYWxzZTsKICAgICAgICA8L3NjcmlwdD4KICAgIAogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjYuMC9kaXN0L2xlYWZsZXQuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0xLjEyLjQubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjYuMC9kaXN0L2xlYWZsZXQuY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vYm9vdHN0cmFwLzMuMi4wL2Nzcy9ib290c3RyYXAubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLXRoZW1lLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9mb250LWF3ZXNvbWUvNC42LjMvY3NzL2ZvbnQtYXdlc29tZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL0xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLzIuMC4yL2xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3Jhd2Nkbi5naXRoYWNrLmNvbS9weXRob24tdmlzdWFsaXphdGlvbi9mb2xpdW0vbWFzdGVyL2ZvbGl1bS90ZW1wbGF0ZXMvbGVhZmxldC5hd2Vzb21lLnJvdGF0ZS5jc3MiLz4KICAgIDxzdHlsZT5odG1sLCBib2R5IHt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7bWFyZ2luOiAwO3BhZGRpbmc6IDA7fTwvc3R5bGU+CiAgICA8c3R5bGU+I21hcCB7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7cmlnaHQ6MDtsZWZ0OjA7fTwvc3R5bGU+CiAgICAKICAgICAgICAgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwKICAgICAgICAgICAgICAgIGluaXRpYWwtc2NhbGU9MS4wLCBtYXhpbXVtLXNjYWxlPTEuMCwgdXNlci1zY2FsYWJsZT1ubyIgLz4KICAgICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAgICAgI21hcF9mZjkwNWYzYTZmNWE0ZmM3OTVhODlkZDBmNGM0ZGI0MCB7CiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgCjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvbGl1bS1tYXAiIGlkPSJtYXBfZmY5MDVmM2E2ZjVhNGZjNzk1YTg5ZGQwZjRjNGRiNDAiID48L2Rpdj4KICAgICAgICAKPC9ib2R5Pgo8c2NyaXB0PiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFwX2ZmOTA1ZjNhNmY1YTRmYzc5NWE4OWRkMGY0YzRkYjQwID0gTC5tYXAoCiAgICAgICAgICAgICAgICAibWFwX2ZmOTA1ZjNhNmY1YTRmYzc5NWE4OWRkMGY0YzRkYjQwIiwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBjZW50ZXI6IFs1Mi42MDAzODksIDEzLjIyNzE5Nl0sCiAgICAgICAgICAgICAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NywKICAgICAgICAgICAgICAgICAgICB6b29tOiAxNSwKICAgICAgICAgICAgICAgICAgICB6b29tQ29udHJvbDogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICBwcmVmZXJDYW52YXM6IGZhbHNlLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApOwoKICAgICAgICAgICAgCgogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciB0aWxlX2xheWVyXzViNTE2MDEyNWE0NzQyZGRhYTdhNDczM2EzYmIzOTY0ID0gTC50aWxlTGF5ZXIoCiAgICAgICAgICAgICAgICAiaHR0cHM6Ly97c30udGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmciLAogICAgICAgICAgICAgICAgeyJhdHRyaWJ1dGlvbiI6ICJEYXRhIGJ5IFx1MDAyNmNvcHk7IFx1MDAzY2EgaHJlZj1cImh0dHA6Ly9vcGVuc3RyZWV0bWFwLm9yZ1wiXHUwMDNlT3BlblN0cmVldE1hcFx1MDAzYy9hXHUwMDNlLCB1bmRlciBcdTAwM2NhIGhyZWY9XCJodHRwOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL2NvcHlyaWdodFwiXHUwMDNlT0RiTFx1MDAzYy9hXHUwMDNlLiIsICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwgIm1heE5hdGl2ZVpvb20iOiAxOCwgIm1heFpvb20iOiAxOCwgIm1pblpvb20iOiAwLCAibm9XcmFwIjogZmFsc2UsICJvcGFjaXR5IjogMSwgInN1YmRvbWFpbnMiOiAiYWJjIiwgInRtcyI6IGZhbHNlfQogICAgICAgICAgICApLmFkZFRvKG1hcF9mZjkwNWYzYTZmNWE0ZmM3OTVhODlkZDBmNGM0ZGI0MCk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl9hY2E5YWRhMWU4NWM0ODVkODYxMmI0ZmM3MmJkNjcxZSA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzUyLjYwMDM4OSwgMTMuMjI3MTk2XSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2ZmOTA1ZjNhNmY1YTRmYzc5NWE4OWRkMGY0YzRkYjQwKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl9kMGYxM2JiMzM4NDE0OTdhOWVkOTRkOTMyYjBiN2Y5MyA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJncmVlbiIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyX2FjYTlhZGExZTg1YzQ4NWQ4NjEyYjRmYzcyYmQ2NzFlLnNldEljb24oaWNvbl9kMGYxM2JiMzM4NDE0OTdhOWVkOTRkOTMyYjBiN2Y5Myk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfNGNhMTI5ZTY0Yzg1NDcwMmFmN2E3NDU2YWZlOGEyOTggPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sX2E4MDRkMWI0NGJhMzQ1OGI4MmQwOTExMjBjM2RhNTJhID0gJChgPGRpdiBpZD0iaHRtbF9hODA0ZDFiNDRiYTM0NThiODJkMDkxMTIwYzNkYTUyYSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+c3RhcnQ8L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfNGNhMTI5ZTY0Yzg1NDcwMmFmN2E3NDU2YWZlOGEyOTguc2V0Q29udGVudChodG1sX2E4MDRkMWI0NGJhMzQ1OGI4MmQwOTExMjBjM2RhNTJhKTsKICAgICAgICAKCiAgICAgICAgbWFya2VyX2FjYTlhZGExZTg1YzQ4NWQ4NjEyYjRmYzcyYmQ2NzFlLmJpbmRQb3B1cChwb3B1cF80Y2ExMjllNjRjODU0NzAyYWY3YTc0NTZhZmU4YTI5OCkKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl9hYTNkNTJlYmQ5MDc0MzA2OGZkZTljZjg0MTI4ZDVmOCA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzUyLjU5NzY1MiwgMTMuMjc1MjYxXSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2ZmOTA1ZjNhNmY1YTRmYzc5NWE4OWRkMGY0YzRkYjQwKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl9hYTVhYWQxNGViNDA0YjI1OGY1YWQ0ODM1YWIzNTBhMyA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJyZWQiLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl9hYTNkNTJlYmQ5MDc0MzA2OGZkZTljZjg0MTI4ZDVmOC5zZXRJY29uKGljb25fYWE1YWFkMTRlYjQwNGIyNThmNWFkNDgzNWFiMzUwYTMpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwX2NmZWYwYmFiMDc3OTQ1MWY4Y2I5MzliYzY5NTM1YTMxID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF82NzViNDViYjIyNmQ0MzU3ODQ0NjAyNDk4MzQzMzI4NCA9ICQoYDxkaXYgaWQ9Imh0bWxfNjc1YjQ1YmIyMjZkNDM1Nzg0NDYwMjQ5ODM0MzMyODQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPmVuZDwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF9jZmVmMGJhYjA3Nzk0NTFmOGNiOTM5YmM2OTUzNWEzMS5zZXRDb250ZW50KGh0bWxfNjc1YjQ1YmIyMjZkNDM1Nzg0NDYwMjQ5ODM0MzMyODQpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfYWEzZDUyZWJkOTA3NDMwNjhmZGU5Y2Y4NDEyOGQ1ZjguYmluZFBvcHVwKHBvcHVwX2NmZWYwYmFiMDc3OTQ1MWY4Y2I5MzliYzY5NTM1YTMxKQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uX2YyMjE1MGU3OTc2ZTQ3MzI5NDFjN2YyYjUwNGY0NzI5X3N0eWxlcihmZWF0dXJlKSB7CiAgICAgICAgICAgIHN3aXRjaChmZWF0dXJlLmlkKSB7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIHJldHVybiB7ImNvbG9yIjogImJsdWUiLCAib3BhY2l0eSI6IDAuNSwgIndlaWdodCI6IDV9OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uX2YyMjE1MGU3OTc2ZTQ3MzI5NDFjN2YyYjUwNGY0NzI5X29uRWFjaEZlYXR1cmUoZmVhdHVyZSwgbGF5ZXIpIHsKICAgICAgICAgICAgbGF5ZXIub24oewogICAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAgICAgICBtYXBfZmY5MDVmM2E2ZjVhNGZjNzk1YTg5ZGQwZjRjNGRiNDAuZml0Qm91bmRzKGUudGFyZ2V0LmdldEJvdW5kcygpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfTsKICAgICAgICB2YXIgZ2VvX2pzb25fZjIyMTUwZTc5NzZlNDczMjk0MWM3ZjJiNTA0ZjQ3MjkgPSBMLmdlb0pzb24obnVsbCwgewogICAgICAgICAgICAgICAgb25FYWNoRmVhdHVyZTogZ2VvX2pzb25fZjIyMTUwZTc5NzZlNDczMjk0MWM3ZjJiNTA0ZjQ3Mjlfb25FYWNoRmVhdHVyZSwKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBzdHlsZTogZ2VvX2pzb25fZjIyMTUwZTc5NzZlNDczMjk0MWM3ZjJiNTA0ZjQ3Mjlfc3R5bGVyLAogICAgICAgIH0pLmFkZFRvKG1hcF9mZjkwNWYzYTZmNWE0ZmM3OTVhODlkZDBmNGM0ZGI0MCk7CgogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uX2YyMjE1MGU3OTc2ZTQ3MzI5NDFjN2YyYjUwNGY0NzI5X2FkZCAoZGF0YSkgewogICAgICAgICAgICBnZW9fanNvbl9mMjIxNTBlNzk3NmU0NzMyOTQxYzdmMmI1MDRmNDcyOS5hZGREYXRhKGRhdGEpOwogICAgICAgIH0KICAgICAgICAgICAgZ2VvX2pzb25fZjIyMTUwZTc5NzZlNDczMjk0MWM3ZjJiNTA0ZjQ3MjlfYWRkKHsiZmVhdHVyZXMiOiBbeyJnZW9tZXRyeSI6IHsiY29vcmRpbmF0ZXMiOiBbWzEzLjIyNzI4MywgNTIuNjAwNTU4XSwgWzEzLjIyODgxOSwgNTIuNjAwMjc2XSwgWzEzLjIzMzQwNCwgNTIuNTk5Nl0sIFsxMy4yNDExMzEsIDUyLjU5ODYzNF0sIFsxMy4yNDE0ODYsIDUyLjU5ODY2N10sIFsxMy4yNDMzMTMsIDUyLjU5ODkxNl0sIFsxMy4yNDQ1NzksIDUyLjU5OTEyXSwgWzEzLjI0NjUxLCA1Mi41OTkwNV0sIFsxMy4yNDcyNzUsIDUyLjYwMDg2XSwgWzEzLjI0NzcyMSwgNTIuNjAwNzMxXSwgWzEzLjI0ODAxNiwgNTIuNjAwNjk2XSwgWzEzLjI1MDI0MywgNTIuNjAwMDk2XSwgWzEzLjI1MDY2MywgNTIuNjAwMDFdLCBbMTMuMjUxMTA3LCA1Mi41OTk5NTZdLCBbMTMuMjUzNDMyLCA1Mi41OTk4MzJdLCBbMTMuMjU0MjY3LCA1Mi41OTk3NzJdLCBbMTMuMjU5MzI4LCA1Mi41OTkyMzFdLCBbMTMuMjU5NzA1LCA1Mi41OTkxN10sIFsxMy4yNjAxMDYsIDUyLjU5OTA2NV0sIFsxMy4yNjE3MzYsIDUyLjU5ODU1OV0sIFsxMy4yNjIxOTYsIDUyLjU5ODQ4OF0sIFsxMy4yNjQyMzQsIDUyLjU5ODQyMV0sIFsxMy4yNjgxMDEsIDUyLjU5Nzg0OF0sIFsxMy4yNjkwOTMsIDUyLjU5NzYwOF0sIFsxMy4yNzE4NjgsIDUyLjU5NzIxM10sIFsxMy4yNzIyNjcsIDUyLjU5NzE1OV0sIFsxMy4yNzI4OTUsIDUyLjU5NzEzXSwgWzEzLjI3MzI4MSwgNTIuNTk3MjA1XSwgWzEzLjI3MzY2NSwgNTIuNTk3MzMyXSwgWzEzLjI3NDk2NSwgNTIuNTk3ODYyXSwgWzEzLjI3NTA0OCwgNTIuNTk3ODhdLCBbMTMuMjc1MTY1LCA1Mi41OTc4NTNdLCBbMTMuMjc1Mzg1LCA1Mi41OTc3MTldXSwgInR5cGUiOiAiTGluZVN0cmluZyJ9LCAiaWQiOiAiMCIsICJ0eXBlIjogIkZlYXR1cmUifV0sICJ0eXBlIjogIkZlYXR1cmVDb2xsZWN0aW9uIn0pOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfMzEyMDQ0MmIzYjU4NGE2ZmEyMWVhYjllZDIxOGNkZjkgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs1Mi42MDAzODksIDEzLjIyNzE5Nl0sCiAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICApLmFkZFRvKG1hcF9mZjkwNWYzYTZmNWE0ZmM3OTVhODlkZDBmNGM0ZGI0MCk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGljb25fNWEyZWE1N2RkYTYxNDEwYzhjNGFjNjkyOWIzZDAyN2YgPSBMLkF3ZXNvbWVNYXJrZXJzLmljb24oCiAgICAgICAgICAgICAgICB7ImV4dHJhQ2xhc3NlcyI6ICJmYS1yb3RhdGUtMCIsICJpY29uIjogImluZm8tc2lnbiIsICJpY29uQ29sb3IiOiAid2hpdGUiLCAibWFya2VyQ29sb3IiOiAiZ3JlZW4iLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl8zMTIwNDQyYjNiNTg0YTZmYTIxZWFiOWVkMjE4Y2RmOS5zZXRJY29uKGljb25fNWEyZWE1N2RkYTYxNDEwYzhjNGFjNjkyOWIzZDAyN2YpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwX2NhNDdhNTJhNTk3YjQwYjQ4MTM4MjNmOGYxNTllMzlmID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF9hNzNhZTlkNDQ5NzE0MTI3YWNmZTI3YTIyZmVjNjliMiA9ICQoYDxkaXYgaWQ9Imh0bWxfYTczYWU5ZDQ0OTcxNDEyN2FjZmUyN2EyMmZlYzY5YjIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPnN0YXJ0PC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwX2NhNDdhNTJhNTk3YjQwYjQ4MTM4MjNmOGYxNTllMzlmLnNldENvbnRlbnQoaHRtbF9hNzNhZTlkNDQ5NzE0MTI3YWNmZTI3YTIyZmVjNjliMik7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl8zMTIwNDQyYjNiNTg0YTZmYTIxZWFiOWVkMjE4Y2RmOS5iaW5kUG9wdXAocG9wdXBfY2E0N2E1MmE1OTdiNDBiNDgxMzgyM2Y4ZjE1OWUzOWYpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfMjFmYmNlMzI4MDE3NGQ2ZThkNThiYTI0YWI0ODUxNzcgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs1Mi41OTc2NTIsIDEzLjI3NTI2MV0sCiAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICApLmFkZFRvKG1hcF9mZjkwNWYzYTZmNWE0ZmM3OTVhODlkZDBmNGM0ZGI0MCk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGljb25fNDkwNTRkM2IxNzRiNGI1MGFjYmE3YmVhODQ4NzdiNWYgPSBMLkF3ZXNvbWVNYXJrZXJzLmljb24oCiAgICAgICAgICAgICAgICB7ImV4dHJhQ2xhc3NlcyI6ICJmYS1yb3RhdGUtMCIsICJpY29uIjogImluZm8tc2lnbiIsICJpY29uQ29sb3IiOiAid2hpdGUiLCAibWFya2VyQ29sb3IiOiAicmVkIiwgInByZWZpeCI6ICJnbHlwaGljb24ifQogICAgICAgICAgICApOwogICAgICAgICAgICBtYXJrZXJfMjFmYmNlMzI4MDE3NGQ2ZThkNThiYTI0YWI0ODUxNzcuc2V0SWNvbihpY29uXzQ5MDU0ZDNiMTc0YjRiNTBhY2JhN2JlYTg0ODc3YjVmKTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBwb3B1cF81YmIwNzUwZmM2NDM0NTNhOWYzYTg2ZThlZDZmYjhiZiA9IEwucG9wdXAoeyJtYXhXaWR0aCI6ICIxMDAlIn0pOwoKICAgICAgICAKICAgICAgICAgICAgdmFyIGh0bWxfMzQzMDRlY2MxMmFlNDZlNDhhYWVhOWRjYzI5NTQ1ZjggPSAkKGA8ZGl2IGlkPSJodG1sXzM0MzA0ZWNjMTJhZTQ2ZTQ4YWFlYTlkY2MyOTU0NWY4IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5lbmQ8L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfNWJiMDc1MGZjNjQzNDUzYTlmM2E4NmU4ZWQ2ZmI4YmYuc2V0Q29udGVudChodG1sXzM0MzA0ZWNjMTJhZTQ2ZTQ4YWFlYTlkY2MyOTU0NWY4KTsKICAgICAgICAKCiAgICAgICAgbWFya2VyXzIxZmJjZTMyODAxNzRkNmU4ZDU4YmEyNGFiNDg1MTc3LmJpbmRQb3B1cChwb3B1cF81YmIwNzUwZmM2NDM0NTNhOWYzYTg2ZThlZDZmYjhiZikKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICBmdW5jdGlvbiBnZW9fanNvbl8yZDE5OTJkZTRhNzE0OWM1OGU1MTkyNTg0ZTNhMGVlN19zdHlsZXIoZmVhdHVyZSkgewogICAgICAgICAgICBzd2l0Y2goZmVhdHVyZS5pZCkgewogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICByZXR1cm4geyJjb2xvciI6ICJyZWQiLCAib3BhY2l0eSI6IDAuNSwgIndlaWdodCI6IDV9OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uXzJkMTk5MmRlNGE3MTQ5YzU4ZTUxOTI1ODRlM2EwZWU3X29uRWFjaEZlYXR1cmUoZmVhdHVyZSwgbGF5ZXIpIHsKICAgICAgICAgICAgbGF5ZXIub24oewogICAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAgICAgICBtYXBfZmY5MDVmM2E2ZjVhNGZjNzk1YTg5ZGQwZjRjNGRiNDAuZml0Qm91bmRzKGUudGFyZ2V0LmdldEJvdW5kcygpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfTsKICAgICAgICB2YXIgZ2VvX2pzb25fMmQxOTkyZGU0YTcxNDljNThlNTE5MjU4NGUzYTBlZTcgPSBMLmdlb0pzb24obnVsbCwgewogICAgICAgICAgICAgICAgb25FYWNoRmVhdHVyZTogZ2VvX2pzb25fMmQxOTkyZGU0YTcxNDljNThlNTE5MjU4NGUzYTBlZTdfb25FYWNoRmVhdHVyZSwKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBzdHlsZTogZ2VvX2pzb25fMmQxOTkyZGU0YTcxNDljNThlNTE5MjU4NGUzYTBlZTdfc3R5bGVyLAogICAgICAgIH0pLmFkZFRvKG1hcF9mZjkwNWYzYTZmNWE0ZmM3OTVhODlkZDBmNGM0ZGI0MCk7CgogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uXzJkMTk5MmRlNGE3MTQ5YzU4ZTUxOTI1ODRlM2EwZWU3X2FkZCAoZGF0YSkgewogICAgICAgICAgICBnZW9fanNvbl8yZDE5OTJkZTRhNzE0OWM1OGU1MTkyNTg0ZTNhMGVlNy5hZGREYXRhKGRhdGEpOwogICAgICAgIH0KICAgICAgICAgICAgZ2VvX2pzb25fMmQxOTkyZGU0YTcxNDljNThlNTE5MjU4NGUzYTBlZTdfYWRkKHsiZmVhdHVyZXMiOiBbeyJnZW9tZXRyeSI6IHsiY29vcmRpbmF0ZXMiOiBbWzEzLjIyNzI4MywgNTIuNjAwNTU4XSwgWzEzLjIyODgxOSwgNTIuNjAwMjc2XSwgWzEzLjIyODc4NiwgNTIuNTk5MTM1XSwgWzEzLjIyODc3MiwgNTIuNTk4OTE1XSwgWzEzLjIyODU3NywgNTIuNTk3MDYyXSwgWzEzLjIyODUzMSwgNTIuNTk2MzY1XSwgWzEzLjIyODk4LCA1Mi41OTYzMDRdLCBbMTMuMjMwNDI5LCA1Mi41OTYwNjFdLCBbMTMuMjMyNTY1LCA1Mi41OTYxNjVdLCBbMTMuMjMzNTkyLCA1Mi41OTYzNDldLCBbMTMuMjM0MzMzLCA1Mi41OTYzNjZdLCBbMTMuMjM0ODExLCA1Mi41OTYzM10sIFsxMy4yMzU5MiwgNTIuNTk2NDJdLCBbMTMuMjM3ODU2LCA1Mi41OTY0MTJdLCBbMTMuMjM5Nzg0LCA1Mi41OTYyOThdLCBbMTMuMjQwNzUsIDUyLjU5NjIyMl0sIFsxMy4yNDIwMzgsIDUyLjU5NTY4NV0sIFsxMy4yNDMwNDcsIDUyLjU5NTE3XSwgWzEzLjI0MzUzMSwgNTIuNTk1MTNdLCBbMTMuMjQ0MzY3LCA1Mi41OTQ5NTZdLCBbMTMuMjQ3MzczLCA1Mi41OTQwMjJdLCBbMTMuMjQ3OTMxLCA1Mi41OTM3NzVdLCBbMTMuMjQ4ODkxLCA1Mi41OTM1NDZdLCBbMTMuMjQ5MzE1LCA1Mi41OTM0MjhdLCBbMTMuMjUwMjk1LCA1Mi41OTMwNzNdLCBbMTMuMjUxMTgzLCA1Mi41OTI4MTZdLCBbMTMuMjUyNzc3LCA1Mi41OTI1NjFdLCBbMTMuMjUzODYyLCA1Mi41OTI1MDNdLCBbMTMuMjU0NzAzLCA1Mi41OTI2MjVdLCBbMTMuMjU2MzQsIDUyLjU5MjY1Ml0sIFsxMy4yNTY4NjcsIDUyLjU5MjY5OV0sIFsxMy4yNTkxNjgsIDUyLjU5MzE3OV0sIFsxMy4yNTk4MzIsIDUyLjU5MzIyNl0sIFsxMy4yNjAxNTQsIDUyLjU5MzI5NV0sIFsxMy4yNjA1NzQsIDUyLjU5MzQzOF0sIFsxMy4yNjIyNjgsIDUyLjU5MzY0NF0sIFsxMy4yNjI2MTcsIDUyLjU5MzU5NF0sIFsxMy4yNjMwNzgsIDUyLjU5Mzg3NV0sIFsxMy4yNjQ3OTYsIDUyLjU5NTEzOV0sIFsxMy4yNjU0NDQsIDUyLjU5NTU0OF0sIFsxMy4yNjU4ODQsIDUyLjU5NTc4MV0sIFsxMy4yNjY0OTIsIDUyLjU5NTk5N10sIFsxMy4yNjcxMDMsIDUyLjU5NjE2OV0sIFsxMy4yNjc2NTYsIDUyLjU5NjIzN10sIFsxMy4yNjgyMiwgNTIuNTk2MjY0XSwgWzEzLjI3MDAyOCwgNTIuNTk2MTc5XSwgWzEzLjI3MDUwMywgNTIuNTk2MjRdLCBbMTMuMjcxMDU2LCA1Mi41OTYzNzZdLCBbMTMuMjcyODAxLCA1Mi41OTY5ODldLCBbMTMuMjcyODYxLCA1Mi41OTcwMzddLCBbMTMuMjcyODk1LCA1Mi41OTcxM10sIFsxMy4yNzMyODEsIDUyLjU5NzIwNV0sIFsxMy4yNzM2NjUsIDUyLjU5NzMzMl0sIFsxMy4yNzQ5NjUsIDUyLjU5Nzg2Ml0sIFsxMy4yNzUwNDgsIDUyLjU5Nzg4XSwgWzEzLjI3NTE2NSwgNTIuNTk3ODUzXSwgWzEzLjI3NTM4NSwgNTIuNTk3NzE5XV0sICJ0eXBlIjogIkxpbmVTdHJpbmcifSwgImlkIjogIjAiLCAidHlwZSI6ICJGZWF0dXJlIn1dLCAidHlwZSI6ICJGZWF0dXJlQ29sbGVjdGlvbiJ9KTsKICAgICAgICAKPC9zY3JpcHQ+ onload=\"this.contentDocument.open();this.contentDocument.write(atob(this.getAttribute('data-html')));this.contentDocument.close();\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
],
"text/plain": [
"<folium.folium.Map at 0x7f677797df98>"
]
},
"execution_count": 7,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"start=[13.227196,52.600389]\n",
"end=[13.275261,52.597652]\n",
"\n",
"m = folium.Map(location=latlon(start), zoom_start=15)\n",
"\n",
"route = requests.post(url=route_url, json={'profile':'foot', 'points':[start,end], 'points_encoded':False}).json()\n",
"if 'message' in route: raise Exception(route[\"message\"])\n",
"plot_route(m, start, end, route[\"paths\"][0], \"route\", \"blue\")\n",
"\n",
"priorityJson = {'foot_network': {'other': 0.5}}\n",
"route = requests.post(url=route_url, json={'profile':'foot', 'points':[start,end], 'points_encoded':False, 'priority': priorityJson}).json()\n",
"if 'message' in route: raise Exception(route[\"message\"])\n",
"plot_route(m, start, end, route[\"paths\"][0], \"other\", \"red\")\n",
"\n",
"m"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Economically Driving"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"route: distance 71km and time 47min\n",
"other: distance 66km and time 70min\n"
]
},
{
"data": {
"text/html": [
"<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><span style=\"color:#565656\">Make this Notebook Trusted to load map: File -> Trust Notebook</span><iframe src=\"about:blank\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" data-html=PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgCiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgTF9OT19UT1VDSCA9IGZhbHNlOwogICAgICAgICAgICBMX0RJU0FCTEVfM0QgPSBmYWxzZTsKICAgICAgICA8L3NjcmlwdD4KICAgIAogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjYuMC9kaXN0L2xlYWZsZXQuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0xLjEyLjQubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjYuMC9kaXN0L2xlYWZsZXQuY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vYm9vdHN0cmFwLzMuMi4wL2Nzcy9ib290c3RyYXAubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLXRoZW1lLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9mb250LWF3ZXNvbWUvNC42LjMvY3NzL2ZvbnQtYXdlc29tZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL0xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLzIuMC4yL2xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3Jhd2Nkbi5naXRoYWNrLmNvbS9weXRob24tdmlzdWFsaXphdGlvbi9mb2xpdW0vbWFzdGVyL2ZvbGl1bS90ZW1wbGF0ZXMvbGVhZmxldC5hd2Vzb21lLnJvdGF0ZS5jc3MiLz4KICAgIDxzdHlsZT5odG1sLCBib2R5IHt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7bWFyZ2luOiAwO3BhZGRpbmc6IDA7fTwvc3R5bGU+CiAgICA8c3R5bGU+I21hcCB7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7cmlnaHQ6MDtsZWZ0OjA7fTwvc3R5bGU+CiAgICAKICAgICAgICAgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwKICAgICAgICAgICAgICAgIGluaXRpYWwtc2NhbGU9MS4wLCBtYXhpbXVtLXNjYWxlPTEuMCwgdXNlci1zY2FsYWJsZT1ubyIgLz4KICAgICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAgICAgI21hcF9lMGU4YTY3MGIwMTI0MTU5OGI3NjcyYTkzNDQ1OTEwMCB7CiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgCjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvbGl1bS1tYXAiIGlkPSJtYXBfZTBlOGE2NzBiMDEyNDE1OThiNzY3MmE5MzQ0NTkxMDAiID48L2Rpdj4KICAgICAgICAKPC9ib2R5Pgo8c2NyaXB0PiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFwX2UwZThhNjcwYjAxMjQxNTk4Yjc2NzJhOTM0NDU5MTAwID0gTC5tYXAoCiAgICAgICAgICAgICAgICAibWFwX2UwZThhNjcwYjAxMjQxNTk4Yjc2NzJhOTM0NDU5MTAwIiwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBjZW50ZXI6IFs1MS4yNjM2MDcsIDEzLjkwMzY3XSwKICAgICAgICAgICAgICAgICAgICBjcnM6IEwuQ1JTLkVQU0czODU3LAogICAgICAgICAgICAgICAgICAgIHpvb206IDExLAogICAgICAgICAgICAgICAgICAgIHpvb21Db250cm9sOiB0cnVlLAogICAgICAgICAgICAgICAgICAgIHByZWZlckNhbnZhczogZmFsc2UsCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICk7CgogICAgICAgICAgICAKCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHRpbGVfbGF5ZXJfOGE1NjFmZjRlYWI1NDYxYThjYjNjZTE5NjMzOTQ1Y2QgPSBMLnRpbGVMYXllcigKICAgICAgICAgICAgICAgICJodHRwczovL3tzfS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZyIsCiAgICAgICAgICAgICAgICB7ImF0dHJpYnV0aW9uIjogIkRhdGEgYnkgXHUwMDI2Y29weTsgXHUwMDNjYSBocmVmPVwiaHR0cDovL29wZW5zdHJlZXRtYXAub3JnXCJcdTAwM2VPcGVuU3RyZWV0TWFwXHUwMDNjL2FcdTAwM2UsIHVuZGVyIFx1MDAzY2EgaHJlZj1cImh0dHA6Ly93d3cub3BlbnN0cmVldG1hcC5vcmcvY29weXJpZ2h0XCJcdTAwM2VPRGJMXHUwMDNjL2FcdTAwM2UuIiwgImRldGVjdFJldGluYSI6IGZhbHNlLCAibWF4TmF0aXZlWm9vbSI6IDE4LCAibWF4Wm9vbSI6IDE4LCAibWluWm9vbSI6IDAsICJub1dyYXAiOiBmYWxzZSwgIm9wYWNpdHkiOiAxLCAic3ViZG9tYWlucyI6ICJhYmMiLCAidG1zIjogZmFsc2V9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2UwZThhNjcwYjAxMjQxNTk4Yjc2NzJhOTM0NDU5MTAwKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyXzY1MjBlOWE3MzlmNzQwNzZiODYzMDliODE0ZTQ2MTdmID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTEuMjYzNjA3LCAxMy45MDM2N10sCiAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICApLmFkZFRvKG1hcF9lMGU4YTY3MGIwMTI0MTU5OGI3NjcyYTkzNDQ1OTEwMCk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGljb25fZmYyNzQ2ZmZhYzQ0NDA4ZmFkYjlhODY4NGZmZTUzZDQgPSBMLkF3ZXNvbWVNYXJrZXJzLmljb24oCiAgICAgICAgICAgICAgICB7ImV4dHJhQ2xhc3NlcyI6ICJmYS1yb3RhdGUtMCIsICJpY29uIjogImluZm8tc2lnbiIsICJpY29uQ29sb3IiOiAid2hpdGUiLCAibWFya2VyQ29sb3IiOiAiZ3JlZW4iLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl82NTIwZTlhNzM5Zjc0MDc2Yjg2MzA5YjgxNGU0NjE3Zi5zZXRJY29uKGljb25fZmYyNzQ2ZmZhYzQ0NDA4ZmFkYjlhODY4NGZmZTUzZDQpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwX2RhMDMyMzhjZTkyMzQxMzFhNjM1OTRmZjRlMWYxMWY5ID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF82ZTIzNTA3NThhMzQ0N2YwOTJlZGMxZjc3NTFlYjM3MSA9ICQoYDxkaXYgaWQ9Imh0bWxfNmUyMzUwNzU4YTM0NDdmMDkyZWRjMWY3NzUxZWIzNzEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPnN0YXJ0PC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwX2RhMDMyMzhjZTkyMzQxMzFhNjM1OTRmZjRlMWYxMWY5LnNldENvbnRlbnQoaHRtbF82ZTIzNTA3NThhMzQ0N2YwOTJlZGMxZjc3NTFlYjM3MSk7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl82NTIwZTlhNzM5Zjc0MDc2Yjg2MzA5YjgxNGU0NjE3Zi5iaW5kUG9wdXAocG9wdXBfZGEwMzIzOGNlOTIzNDEzMWE2MzU5NGZmNGUxZjExZjkpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfNGIwMjhiYzFiNTMzNGY3MDg4NGRkYTI2ZWI4NDg3MDkgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs1MS4xMTcyNjMsIDEzLjExNjU2XSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2UwZThhNjcwYjAxMjQxNTk4Yjc2NzJhOTM0NDU5MTAwKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl8yMTI5MDk4MDc4N2M0ZTk5YWE2NTVlY2YwM2YyM2YwZSA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJyZWQiLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl80YjAyOGJjMWI1MzM0ZjcwODg0ZGRhMjZlYjg0ODcwOS5zZXRJY29uKGljb25fMjEyOTA5ODA3ODdjNGU5OWFhNjU1ZWNmMDNmMjNmMGUpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwXzU0YWM5YWMxNmYyMjRiZjU5NGU4ZjNlMTg4MTg5YjAwID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF9hMmJmNjlkZTdhOTQ0Njk4OWI0OGRkYmI0NTc3NWJhNCA9ICQoYDxkaXYgaWQ9Imh0bWxfYTJiZjY5ZGU3YTk0NDY5ODliNDhkZGJiNDU3NzViYTQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPmVuZDwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF81NGFjOWFjMTZmMjI0YmY1OTRlOGYzZTE4ODE4OWIwMC5zZXRDb250ZW50KGh0bWxfYTJiZjY5ZGU3YTk0NDY5ODliNDhkZGJiNDU3NzViYTQpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfNGIwMjhiYzFiNTMzNGY3MDg4NGRkYTI2ZWI4NDg3MDkuYmluZFBvcHVwKHBvcHVwXzU0YWM5YWMxNmYyMjRiZjU5NGU4ZjNlMTg4MTg5YjAwKQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uXzI4NTVlYjU4OGEwZDRiNTFiYTM0MDM3OWFlNDlkYjE4X3N0eWxlcihmZWF0dXJlKSB7CiAgICAgICAgICAgIHN3aXRjaChmZWF0dXJlLmlkKSB7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIHJldHVybiB7ImNvbG9yIjogImJsdWUiLCAib3BhY2l0eSI6IDAuNSwgIndlaWdodCI6IDV9OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uXzI4NTVlYjU4OGEwZDRiNTFiYTM0MDM3OWFlNDlkYjE4X29uRWFjaEZlYXR1cmUoZmVhdHVyZSwgbGF5ZXIpIHsKICAgICAgICAgICAgbGF5ZXIub24oewogICAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAgICAgICBtYXBfZTBlOGE2NzBiMDEyNDE1OThiNzY3MmE5MzQ0NTkxMDAuZml0Qm91bmRzKGUudGFyZ2V0LmdldEJvdW5kcygpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfTsKICAgICAgICB2YXIgZ2VvX2pzb25fMjg1NWViNTg4YTBkNGI1MWJhMzQwMzc5YWU0OWRiMTggPSBMLmdlb0pzb24obnVsbCwgewogICAgICAgICAgICAgICAgb25FYWNoRmVhdHVyZTogZ2VvX2pzb25fMjg1NWViNTg4YTBkNGI1MWJhMzQwMzc5YWU0OWRiMThfb25FYWNoRmVhdHVyZSwKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBzdHlsZTogZ2VvX2pzb25fMjg1NWViNTg4YTBkNGI1MWJhMzQwMzc5YWU0OWRiMThfc3R5bGVyLAogICAgICAgIH0pLmFkZFRvKG1hcF9lMGU4YTY3MGIwMTI0MTU5OGI3NjcyYTkzNDQ1OTEwMCk7CgogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uXzI4NTVlYjU4OGEwZDRiNTFiYTM0MDM3OWFlNDlkYjE4X2FkZCAoZGF0YSkgewogICAgICAgICAgICBnZW9fanNvbl8yODU1ZWI1ODhhMGQ0YjUxYmEzNDAzNzlhZTQ5ZGIxOC5hZGREYXRhKGRhdGEpOwogICAgICAgIH0KICAgICAgICAgICAgZ2VvX2pzb25fMjg1NWViNTg4YTBkNGI1MWJhMzQwMzc5YWU0OWRiMThfYWRkKHsiZmVhdHVyZXMiOiBbeyJnZW9tZXRyeSI6IHsiY29vcmRpbmF0ZXMiOiBbWzEzLjkwMzYzMywgNTEuMjYzNjY0XSwgWzEzLjkwNDMyNiwgNTEuMjYzODQyXSwgWzEzLjkwNDkyNCwgNTEuMjYzOTI3XSwgWzEzLjkwNTAyLCA1MS4yNjM0NTVdLCBbMTMuOTA0ODc0LCA1MS4yNjM0NTJdLCBbMTMuOTA0NzMsIDUxLjI2Mjk1NF0sIFsxMy45MDQ0NTQsIDUxLjI2MjUwMV0sIFsxMy45MDQzMjIsIDUxLjI2MjQ2Nl0sIFsxMy45MDQxOTcsIDUxLjI2MjQ1N10sIFsxMy45MDM3NzgsIDUxLjI2MjU4Ml0sIFsxMy45MDMzMzEsIDUxLjI2MjYyM10sIFsxMy45MDI1NDYsIDUxLjI2MjU4N10sIFsxMy45MDIyMzYsIDUxLjI2MjUzM10sIFsxMy45MDE5OTEsIDUxLjI2MjQ0MV0sIFsxMy45MDIyOTMsIDUxLjI2MjIwNl0sIFsxMy45MDIzMTIsIDUxLjI2MjA0XSwgWzEzLjkwMjEzOSwgNTEuMjYxNTU3XSwgWzEzLjkwMjIwMywgNTEuMjYxMzg0XSwgWzEzLjg5ODE4NiwgNTEuMjYwNzldLCBbMTMuODk3ODkyLCA1MS4yNjA3MTZdLCBbMTMuODk1NjQ0LCA1MS4yNTk5NzRdLCBbMTMuODk0OTE4LCA1MS4yNTk2OTVdLCBbMTMuODk0MzI1LCA1MS4yNTkzOTFdLCBbMTMuODkyNDg5LCA1MS4yNTgwMTNdLCBbMTMuODkwNDgyLCA1MS4yNTY1NThdLCBbMTMuODg5MzM0LCA1MS4yNTU2NjZdLCBbMTMuODc5MDYzLCA1MS4yNDgwNzJdLCBbMTMuODc4ODAxLCA1MS4yNDc5NTNdLCBbMTMuODc4MjQ0LCA1MS4yNDc3ODddLCBbMTMuODc3OTQxLCA1MS4yNDc2NzFdLCBbMTMuODc3MTQyLCA1MS4yNDcyNzVdLCBbMTMuODc0NzY4LCA1MS4yNDYyODVdLCBbMTMuODczOTA0LCA1MS4yNDU5NzFdLCBbMTMuODcxMjU2LCA1MS4yNDUwODNdLCBbMTMuODY5ODEzLCA1MS4yNDQ2MzFdLCBbMTMuODY1MjAzLCA1MS4yNDMxMDFdLCBbMTMuODYxNzcyLCA1MS4yNDE5OTldLCBbMTMuODU5NTY4LCA1MS4yNDEyMzldLCBbMTMuODUwNTIyLCA1MS4yMzgzMDNdLCBbMTMuODUwMDI5LCA1MS4yMzgxMTRdLCBbMTMuODQ5NzYxLCA1MS4yMzc5MjhdLCBbMTMuODQ5MDY5LCA1MS4yMzczNDVdLCBbMTMuODQ3ODc1LCA1MS4yMzY0MDFdLCBbMTMuODQ2Nzg0LCA1MS4yMzUzMDZdLCBbMTMuODQ2Mzg2LCA1MS4yMzQ3MjddLCBbMTMuODQ0OTkxLCA1MS4yMjk5MV0sIFsxMy44NDQ1NTcsIDUxLjIyODYxNV0sIFsxMy44NDQyOTQsIDUxLjIyNzk2Ml0sIFsxMy44NDM4MTYsIDUxLjIyNDEzOF0sIFsxMy44NDMzMjksIDUxLjIyMzA3OV0sIFsxMy44NDI1MzEsIDUxLjIyMTA3MV0sIFsxMy44NDE4NiwgNTEuMjE4NzQ2XSwgWzEzLjg0MTQwMSwgNTEuMjE3MDRdLCBbMTMuODQxMDA1LCA1MS4yMTU3NTNdLCBbMTMuODQwNzA1LCA1MS4yMTQ1NzFdLCBbMTMuODQwMzA3LCA1MS4yMTMyODRdLCBbMTMuODM5NDgzLCA1MS4yMTA4MzddLCBbMTMuODM4OTQ1LCA1MS4yMDkwNzldLCBbMTMuODM4MzMxLCA1MS4yMDcyMjFdLCBbMTMuODM4MTY0LCA1MS4yMDY3MjNdLCBbMTMuODM3MDc0LCA1MS4yMDQ0NDddLCBbMTMuODM1ODk4LCA1MS4yMDIxNDRdLCBbMTMuODM1NDU1LCA1MS4yMDExNjldLCBbMTMuODM1MTg1LCA1MS4xOTk3MzNdLCBbMTMuODM0NjksIDUxLjE5NjI4M10sIFsxMy44MzQzMSwgNTEuMTkzODYxXSwgWzEzLjgzNDI3MSwgNTEuMTkzNDQyXSwgWzEzLjgzNDkwNiwgNTEuMTkwMTUzXSwgWzEzLjgzNDk4NCwgNTEuMTg5NjQ5XSwgWzEzLjgzNDk4OCwgNTEuMTg5MzNdLCBbMTMuODM0OTM1LCA1MS4xODkyNDZdLCBbMTMuODM0ODY2LCA1MS4xODkxOV0sIFsxMy44MzM5NzcsIDUxLjE4ODgzNF0sIFsxMy44MzM3MzYsIDUxLjE4ODY4OV0sIFsxMy44MzI1MiwgNTEuMTg3Nzg3XSwgWzEzLjgzMTcxMiwgNTEuMTg3MTE4XSwgWzEzLjgzMTM2MSwgNTEuMTg2NzQ3XSwgWzEzLjgzMDQzOSwgNTEuMTg1NTk0XSwgWzEzLjgyNTc2LCA1MS4xNzk2NjZdLCBbMTMuODI1MzYsIDUxLjE3OTAzM10sIFsxMy44MjUyMjcsIDUxLjE3ODczM10sIFsxMy44MjUxNDMsIDUxLjE3ODQzN10sIFsxMy44MjUwODIsIDUxLjE3Nzk0Nl0sIFsxMy44MjQ5NDUsIDUxLjE3NTkwOV0sIFsxMy44MjQ2ODksIDUxLjE3MzkwN10sIFsxMy44MjQ2MiwgNTEuMTczNjg4XSwgWzEzLjgyNDUyOSwgNTEuMTczNTAyXSwgWzEzLjgyNDI0OSwgNTEuMTczMTI3XSwgWzEzLjgyNDAzMywgNTEuMTcyODk4XSwgWzEzLjgyMzczLCA1MS4xNzI2MzRdLCBbMTMuODI0NDM5LCA1MS4xNzIyOTJdLCBbMTMuODI0NTQ1LCA1MS4xNzIyMjRdLCBbMTMuODI0NjU3LCA1MS4xNzIwODFdLCBbMTMuODI0NiwgNTEuMTcxOTU0XSwgWzEzLjgyNDQ1MSwgNTEuMTcxODYyXSwgWzEzLjgyNDM1NiwgNTEuMTcxODRdLCBbMTMuODIzOTQ4LCA1MS4xNzE4MzNdLCBbMTMuODIxNzk1LCA1MS4xNzIwOTddLCBbMTMuODIwNDkzLCA1MS4xNzIyMThdLCBbMTMuODE5MjM4LCA1MS4xNzIyODVdLCBbMTMuODE4Mzc5LCA1MS4xNzIzMDddLCBbMTMuODE3MTA2LCA1MS4xNzIyODNdLCBbMTMuODE2Mzk2LCA1MS4xNzIyNDhdLCBbMTMuODE1MDksIDUxLjE3MjEzN10sIFsxMy44MTQ1NzQsIDUxLjE3MjA3OF0sIFsxMy44MTM0LCA1MS4xNzE4OTddLCBbMTMuODExODIyLCA1MS4xNzE1ODJdLCBbMTMuODExMTUsIDUxLjE3MTQxNV0sIFsxMy44MTAxNTYsIDUxLjE3MTEzNF0sIFsxMy44MDg4NCwgNTEuMTcwNjk1XSwgWzEzLjgwNzgyNSwgNTEuMTcwMjg4XSwgWzEzLjgwNzEyOCwgNTEuMTY5OTY3XSwgWzEzLjgwNjA5MiwgNTEuMTY5NDQ0XSwgWzEzLjgwNTM1MiwgNTEuMTY5MDIzXSwgWzEzLjc5NTY1OCwgNTEuMTYyOTFdLCBbMTMuNzkzMjQ1LCA1MS4xNjE0NDhdLCBbMTMuNzg1MjgzLCA1MS4xNTY2OTFdLCBbMTMuNzgzMywgNTEuMTU1NDI1XSwgWzEzLjc4MTM2MywgNTEuMTU0MTA5XSwgWzEzLjc3NTg5LCA1MS4xNTA0ODFdLCBbMTMuNzc1Mjk4LCA1MS4xNTAwOTVdLCBbMTMuNzc0MDMzLCA1MS4xNDkzMjNdLCBbMTMuNzcyNjE4LCA1MS4xNDg1NjJdLCBbMTMuNzYzODAzLCA1MS4xNDQzMjFdLCBbMTMuNzYzMjYyLCA1MS4xNDQwMjddLCBbMTMuNzYyMjEzLCA1MS4xNDM0MDJdLCBbMTMuNzYwNTc4LCA1MS4xNDIzMjNdLCBbMTMuNzU0NDYsIDUxLjEzODEyNF0sIFsxMy43NTM0MiwgNTEuMTM3MzI4XSwgWzEzLjc1MjkyNSwgNTEuMTM2OTE1XSwgWzEzLjc1MjM5MywgNTEuMTM2NDMzXSwgWzEzLjc1MTgwOSwgNTEuMTM1ODQ4XSwgWzEzLjc1MTE3MiwgNTEuMTM1MDc0XSwgWzEzLjc1MDg4NSwgNTEuMTM0NjhdLCBbMTMuNzUwNTk3LCA1MS4xMzQyMjRdLCBbMTMuNzUwMTk4LCA1MS4xMzM1MDJdLCBbMTMuNzQ5OTAxLCA1MS4xMzI3NDVdLCBbMTMuNzQ5NTU2LCA1MS4xMzE3MDhdLCBbMTMuNzQ3MDYsIDUxLjEyMzQ4N10sIFsxMy43NDY3NjQsIDUxLjEyMjU4M10sIFsxMy43NDY2MjksIDUxLjEyMjA1OV0sIFsxMy43NDYyOTgsIDUxLjEyMDk5M10sIFsxMy43NDU4MTcsIDUxLjExOTcxMV0sIFsxMy43NDUxOTIsIDUxLjExODM3OV0sIFsxMy43NDM3NywgNTEuMTE1NThdLCBbMTMuNzQzMDQ2LCA1MS4xMTQzMTNdLCBbMTMuNzQyNjcxLCA1MS4xMTM3MzZdLCBbMTMuNzQyMjUyLCA1MS4xMTMxNDldLCBbMTMuNzQxNzczLCA1MS4xMTI1NDVdLCBbMTMuNzQxMDU2LCA1MS4xMTE3NjddLCBbMTMuNzQwMzc2LCA1MS4xMTExMjldLCBbMTMuNzM5NDczLCA1MS4xMTA0MTVdLCBbMTMuNzM4NzkxLCA1MS4xMDk5NDFdLCBbMTMuNzM3OTI1LCA1MS4xMDk0MDZdLCBbMTMuNzM3MTYyLCA1MS4xMDg5ODJdLCBbMTMuNzM1NTYzLCA1MS4xMDgxNTFdLCBbMTMuNzMzNDE5LCA1MS4xMDcwODZdLCBbMTMuNzMwNjM2LCA1MS4xMDU3ODJdLCBbMTMuNzI5MDExLCA1MS4xMDUxMjhdLCBbMTMuNzI4MTE3LCA1MS4xMDQ4MDVdLCBbMTMuNzI2OTkxLCA1MS4xMDQ0MjddLCBbMTMuNzI1NjY1LCA1MS4xMDQwMjldLCBbMTMuNzI0MzMsIDUxLjEwMzY2M10sIFsxMy43MjI5MzIsIDUxLjEwMzMxOV0sIFsxMy43MTM5OTgsIDUxLjEwMTI2OV0sIFsxMy43MDYzMzUsIDUxLjA5OTQ2NV0sIFsxMy43MDQ4MjUsIDUxLjA5ODk4NV0sIFsxMy43MDMwOTksIDUxLjA5ODMzM10sIFsxMy43MDE1MDMsIDUxLjA5NzU3OF0sIFsxMy42OTk5MTYsIDUxLjA5NjcxNF0sIFsxMy42OTkzMiwgNTEuMDk2MzM1XSwgWzEzLjY5NzE5NywgNTEuMDk0NzQzXSwgWzEzLjY5NjUxNiwgNTEuMDk0MTU4XSwgWzEzLjY5NTM4NywgNTEuMDkzMDVdLCBbMTMuNjk0NjMsIDUxLjA5MjE5N10sIFsxMy42OTQwNTksIDUxLjA5MTUxNV0sIFsxMy42OTMyMjMsIDUxLjA5MDM1M10sIFsxMy42OTI3MjYsIDUxLjA4OTU3MV0sIFsxMy42ODkwMiwgNTEuMDgyMzE4XSwgWzEzLjY4ODczMSwgNTEuMDgxODYxXSwgWzEzLjY4ODM4OCwgNTEuMDgxMzgyXSwgWzEzLjY4NzgxNiwgNTEuMDgwNzE5XSwgWzEzLjY4NzIwNywgNTEuMDgwMTMyXSwgWzEzLjY4NjY3OSwgNTEuMDc5Njc5XSwgWzEzLjY4NDg4OSwgNTEuMDc4MjEzXSwgWzEzLjY4MzU2MywgNTEuMDc3MTkzXSwgWzEzLjY4MjgwOSwgNTEuMDc2Njg4XSwgWzEzLjY4MjIzNiwgNTEuMDc2MzQ0XSwgWzEzLjY4MDg2NywgNTEuMDc1NjcyXSwgWzEzLjY4MDQzLCA1MS4wNzU0NzZdLCBbMTMuNjc5NTYzLCA1MS4wNzUxMjVdLCBbMTMuNjc4NzE4LCA1MS4wNzQ4M10sIFsxMy42Nzc5NzIsIDUxLjA3NDU5Nl0sIFsxMy42NzcyNjgsIDUxLjA3NDQwN10sIFsxMy42NzUzMTQsIDUxLjA3Mzk2M10sIFsxMy42NjcyNDIsIDUxLjA3MjMyMV0sIFsxMy42NjU4MTMsIDUxLjA3MjA4NV0sIFsxMy42NjQ4NjUsIDUxLjA3MTk3MV0sIFsxMy42NjQzMjYsIDUxLjA3MTkyNV0sIFsxMy42NjI3NDUsIDUxLjA3MTg0NF0sIFsxMy42NTIyOCwgNTEuMDcxNjgxXSwgWzEzLjY0OTM1NSwgNTEuMDcxNTk4XSwgWzEzLjY0NzQ4MiwgNTEuMDcxNDk2XSwgWzEzLjY0NTc3MywgNTEuMDcxMzc4XSwgWzEzLjY0NDA3NSwgNTEuMDcxMjIyXSwgWzEzLjY0Mjg1OSwgNTEuMDcxMDg3XSwgWzEzLjY0MTY3OSwgNTEuMDcwOTI5XSwgWzEzLjYzOTc3NCwgNTEuMDcwNjVdLCBbMTMuNjM3MjI5LCA1MS4wNzAyXSwgWzEzLjYzNDQ0NywgNTEuMDY5NjU1XSwgWzEzLjYxNjQ5LCA1MS4wNjU0NDFdLCBbMTMuNjEyMTQsIDUxLjA2NDQ0Ml0sIFsxMy42MTEyMTUsIDUxLjA2NDIwNF0sIFsxMy42MDk0MTYsIDUxLjA2Mzc5MV0sIFsxMy42MDczMywgNTEuMDYzMzg4XSwgWzEzLjYwNjU4NSwgNTEuMDYzMjY2XSwgWzEzLjYwNTY5LCA1MS4wNjMxNTddLCBbMTMuNjA1MTAyLCA1MS4wNjMwNzFdLCBbMTMuNjAzMDMzLCA1MS4wNjI4MzddLCBbMTMuNjAxOTY1LCA1MS4wNjI3NTNdLCBbMTMuNjAwNTgyLCA1MS4wNjI2OF0sIFsxMy41OTgxODEsIDUxLjA2MjU5OV0sIFsxMy41OTAyNTksIDUxLjA2MjQwMl0sIFsxMy41ODI2ODcsIDUxLjA2MjEyNV0sIFsxMy41ODA1NDYsIDUxLjA2MjA4MV0sIFsxMy41NzcwNTMsIDUxLjA2MTk3Ml0sIFsxMy41NzMxMDMsIDUxLjA2MTkxNF0sIFsxMy41NjgxOTMsIDUxLjA2MTg5Ml0sIFsxMy41NjUxNDcsIDUxLjA2MTg0NV0sIFsxMy41NjIxNzEsIDUxLjA2MTc2NV0sIFsxMy41MjYwNCwgNTEuMDYwNjY0XSwgWzEzLjUyMTkwNCwgNTEuMDYwNTU1XSwgWzEzLjUyMTA1OSwgNTEuMDYwNTUyXSwgWzEzLjUxOTQzLCA1MS4wNjA1ODddLCBbMTMuNTE3NzY3LCA1MS4wNjA2NzRdLCBbMTMuNTEyNzkxLCA1MS4wNjExMDJdLCBbMTMuNTExNzkzLCA1MS4wNjExNjldLCBbMTMuNTEwOTQ0LCA1MS4wNjEyMDhdLCBbMTMuNTA5MjE4LCA1MS4wNjEyNDJdLCBbMTMuNTA3MzM3LCA1MS4wNjEyMDldLCBbMTMuNTA2MDY4LCA1MS4wNjExNDFdLCBbMTMuNTA0ODU3LCA1MS4wNjEwNTFdLCBbMTMuNTAzNDc4LCA1MS4wNjA5MjJdLCBbMTMuNTAyMTExLCA1MS4wNjA3NzJdLCBbMTMuNDk4OTY5LCA1MS4wNjAzOTVdLCBbMTMuNDk3NDc0LCA1MS4wNjAyMzJdLCBbMTMuNDkzOTUzLCA1MS4wNTk5MDZdLCBbMTMuNDkwODg5LCA1MS4wNTk2ODhdLCBbMTMuNDg3OTk2LCA1MS4wNTk1MzRdLCBbMTMuNDg1MjU1LCA1MS4wNTk0MzldLCBbMTMuNDgzNDM3LCA1MS4wNTk0MDFdLCBbMTMuNDc5NDQ2LCA1MS4wNTkzOTFdLCBbMTMuNDc3OTk4LCA1MS4wNTk0MTRdLCBbMTMuNDc2MzM0LCA1MS4wNTk0NTZdLCBbMTMuNDczNDQxLCA1MS4wNTk1NzFdLCBbMTMuNDcxNDQ0LCA1MS4wNTk2OF0sIFsxMy40NTU0NjksIDUxLjA2MDY4M10sIFsxMy40NTM3NDQsIDUxLjA2MDczNV0sIFsxMy40NTI5MjQsIDUxLjA2MDczXSwgWzEzLjQ1MTM0NywgNTEuMDYwNjZdLCBbMTMuNDQ5ODc2LCA1MS4wNjA1MjldLCBbMTMuNDQ4MzMxLCA1MS4wNjAzMDRdLCBbMTMuNDQ3NDkyLCA1MS4wNjAxNV0sIFsxMy40NDY2NzIsIDUxLjA1OTk3N10sIFsxMy40NDU0NzUsIDUxLjA1OTY3NV0sIFsxMy40NDMzMiwgNTEuMDU5MDU5XSwgWzEzLjQ0MjU5MiwgNTEuMDU4ODYxXSwgWzEzLjQ0MTQ4MSwgNTEuMDU4NTg2XSwgWzEzLjQ0MDkyMywgNTEuMDU4NDY1XSwgWzEzLjQzOTY2MSwgNTEuMDU4MjM4XSwgWzEzLjQzODU1MiwgNTEuMDU4MDg1XSwgWzEzLjQzNzc0LCA1MS4wNTc5OTZdLCBbMTMuNDM2OTA1LCA1MS4wNTc5MjldLCBbMTMuNDM2MTkzLCA1MS4wNTc4OV0sIFsxMy40MzQ4NTIsIDUxLjA1Nzg2MV0sIFsxMy40MzQxMjQsIDUxLjA1Nzg2Nl0sIFsxMy40MzMzNTEsIDUxLjA1Nzg5NV0sIFsxMy40MzIwNTksIDUxLjA1Nzk3OF0sIFsxMy40MzExMTMsIDUxLjA1ODA3N10sIFsxMy40MzA0MzIsIDUxLjA1ODE2OF0sIFsxMy40Mjk0NzYsIDUxLjA1ODMxOV0sIFsxMy40Mjg3OCwgNTEuMDU4NDVdLCBbMTMuNDI3Mjc1LCA1MS4wNTg3OTNdLCBbMTMuNDI2NDY2LCA1MS4wNTkwMTRdLCBbMTMuNDI0MjYsIDUxLjA1OTY4Ml0sIFsxMy40MjI1ODEsIDUxLjA2MDE1MV0sIFsxMy40MjE4NTQsIDUxLjA2MDMzNV0sIFsxMy40MjExNDQsIDUxLjA2MDQ5MV0sIFsxMy40MjAzMzMsIDUxLjA2MDY0NF0sIFsxMy40MTk1MzMsIDUxLjA2MDc3XSwgWzEzLjQxODY2LCA1MS4wNjA4ODJdLCBbMTMuNDE3OTE1LCA1MS4wNjA5NDldLCBbMTMuNDE3MDIzLCA1MS4wNjEwMDNdLCBbMTMuNDE1OTUsIDUxLjA2MTAyN10sIFsxMy40MTUwNTcsIDUxLjA2MTAyMl0sIFsxMy40MTQzNzUsIDUxLjA2MTAwMV0sIFsxMy40MTI0MDgsIDUxLjA2MDg3MV0sIFsxMy40MTA4ODIsIDUxLjA2MDczNF0sIFsxMy40MDg5MzUsIDUxLjA2MDUwN10sIFsxMy40MDY4MzQsIDUxLjA2MDIxMV0sIFsxMy40MDQ3NTQsIDUxLjA1OTg3XSwgWzEzLjQwMTgzMiwgNTEuMDU5MzY3XSwgWzEzLjM5OTU0LCA1MS4wNTkwMTVdLCBbMTMuMzk3Nzc5LCA1MS4wNTg3OTVdLCBbMTMuMzk3MTc0LCA1MS4wNTg3MzddLCBbMTMuMzk1NjI0LCA1MS4wNTg2MjFdLCBbMTMuMzk0NDYyLCA1MS4wNTg1N10sIFsxMy4zOTMyNjMsIDUxLjA1ODU0OV0sIFsxMy4zOTE1LCA1MS4wNTg1OF0sIFsxMy4zOTAxNzQsIDUxLjA1ODYzNl0sIFsxMy4zODYxNjMsIDUxLjA1ODkxNF0sIFsxMy4zODQ3NCwgNTEuMDU4OTY0XSwgWzEzLjM4Mzg5MywgNTEuMDU4OTYxXSwgWzEzLjM4MzAwMywgNTEuMDU4OTM1XSwgWzEzLjM4MjEwMywgNTEuMDU4ODgzXSwgWzEzLjM4MTQ0NiwgNTEuMDU4ODI1XSwgWzEzLjM4MDE5NSwgNTEuMDU4NjY4XSwgWzEzLjM3OTIwNiwgNTEuMDU4NTA1XSwgWzEzLjM3Nzk1MiwgNTEuMDU4MjQ4XSwgWzEzLjM3NzE3NSwgNTEuMDU4MDU2XSwgWzEzLjM3NjQyMSwgNTEuMDU3ODRdLCBbMTMuMzc1NDU1LCA1MS4wNTc1MzVdLCBbMTMuMzc0NTU0LCA1MS4wNTcyMDddLCBbMTMuMzczNTczLCA1MS4wNTY4MDldLCBbMTMuMzcwODAxLCA1MS4wNTU2Ml0sIFsxMy4zNjk4MTQsIDUxLjA1NTNdLCBbMTMuMzY5MjU1LCA1MS4wNTUwOTFdLCBbMTMuMzY4NTk5LCA1MS4wNTQ4ODhdLCBbMTMuMzY3Nzc0LCA1MS4wNTQ2OV0sIFsxMy4zNjY5MjQsIDUxLjA1NDU0NV0sIFsxMy4zNjU3ODQsIDUxLjA1NDQ0OF0sIFsxMy4zNjUwODUsIDUxLjA1NDQzMl0sIFsxMy4zNjQ0MTQsIDUxLjA1NDQ0Ml0sIFsxMy4zNjMzNDksIDUxLjA1NDU1MV0sIFsxMy4zNTk1MzUsIDUxLjA1NTA3Ml0sIFsxMy4zNTY5NjcsIDUxLjA1NTMzXSwgWzEzLjM1NDM3MywgNTEuMDU1NTJdLCBbMTMuMzUyMTY1LCA1MS4wNTU2MzFdLCBbMTMuMzUxMzg2LCA1MS4wNTU2ODNdLCBbMTMuMzUwMDI2LCA1MS4wNTU4MDJdLCBbMTMuMzQ5MjI0LCA1MS4wNTU5MDFdLCBbMTMuMzQ4NDI1LCA1MS4wNTYwMThdLCBbMTMuMzQ3NjM5LCA1MS4wNTYxNTJdLCBbMTMuMzQ2ODQ3LCA1MS4wNTYzMDddLCBbMTMuMzQ2MDc4LCA1MS4wNTY0NzZdLCBbMTMuMzQ1NDA5LCA1MS4wNTY2NDRdLCBbMTMuMzQzMjk3LCA1MS4wNTcyNTVdLCBbMTMuMzQyNjA1LCA1MS4wNTc0OTNdLCBbMTMuMzQyMDMsIDUxLjA1NzcxXSwgWzEzLjM0MDc2NCwgNTEuMDU4MjQ3XSwgWzEzLjMzOTc0NiwgNTEuMDU4NzI3XSwgWzEzLjMzODY3MSwgNTEuMDU5MzA3XSwgWzEzLjMzODE3NCwgNTEuMDU5NjEzXSwgWzEzLjMzNzc3MiwgNTEuMDU5ODM1XSwgWzEzLjMzNzI5LCA1MS4wNjAxNTddLCBbMTMuMzM2ODgsIDUxLjA2MDQwM10sIFsxMy4zMzUxMDQsIDUxLjA2MTY5Ml0sIFsxMy4zMzQyMDYsIDUxLjA2MjM3NV0sIFsxMy4zMzMxNDMsIDUxLjA2MzIxOV0sIFsxMy4zMzEwODIsIDUxLjA2NDc4NV0sIFsxMy4zMjk2NTUsIDUxLjA2NTgxM10sIFsxMy4zMjg1NTMsIDUxLjA2NjU0OF0sIFsxMy4zMjc2ODEsIDUxLjA2NzA4N10sIFsxMy4zMjY3MjksIDUxLjA2NzYzN10sIFsxMy4zMjU3MTIsIDUxLjA2ODE4Nl0sIFsxMy4zMjQ1NjgsIDUxLjA2ODc0OV0sIFsxMy4zMjQwMjMsIDUxLjA2OV0sIFsxMy4zMjI0NDcsIDUxLjA2OTY4Ml0sIFsxMy4zMjAwMjgsIDUxLjA3MDU5M10sIFsxMy4zMTUyMTIsIDUxLjA3MjI5MV0sIFsxMy4zMTM0NjksIDUxLjA3Mjk3Nl0sIFsxMy4zMTIwMTEsIDUxLjA3MzYyMl0sIFsxMy4zMTEwNzgsIDUxLjA3NDA3NV0sIFsxMy4zMTAyMTYsIDUxLjA3NDUxOF0sIFsxMy4zMDkzMTUsIDUxLjA3NTAwOF0sIFsxMy4zMDU2MzUsIDUxLjA3NzE0NV0sIFsxMy4zMDUwNTgsIDUxLjA3NzQ2OV0sIFsxMy4zMDQzMDcsIDUxLjA3Nzg1OV0sIFsxMy4zMDM1MTEsIDUxLjA3ODI1Nl0sIFsxMy4zMDI2MjMsIDUxLjA3ODY2N10sIFsxMy4zMDE4NTYsIDUxLjA3ODk5XSwgWzEzLjMwMTA5NCwgNTEuMDc5Mjg0XSwgWzEzLjMwMDIxNywgNTEuMDc5NTg5XSwgWzEzLjI5OTE5MywgNTEuMDc5OTEzXSwgWzEzLjI5ODA4NiwgNTEuMDgwMjJdLCBbMTMuMjk3NDIxLCA1MS4wODAzODhdLCBbMTMuMjk2MDI0LCA1MS4wODA2OTFdLCBbMTMuMjk1Mjk2LCA1MS4wODA4MjddLCBbMTMuMjkzODM2LCA1MS4wODEwNjVdLCBbMTMuMjkyMTM3LCA1MS4wODEzMDZdLCBbMTMuMjg3Mjc5LCA1MS4wODE5MTJdLCBbMTMuMjg1MzMxLCA1MS4wODIxNzNdLCBbMTMuMjgzNDQ0LCA1MS4wODI0NTddLCBbMTMuMjgxNzIzLCA1MS4wODI3NTVdLCBbMTMuMjgwMTUsIDUxLjA4MzA1OV0sIFsxMy4yNzg1ODYsIDUxLjA4MzM4XSwgWzEzLjI3NjMzNCwgNTEuMDgzOTA3XSwgWzEzLjI3NTEyMiwgNTEuMDg0MjA4XSwgWzEzLjI2NzAxMSwgNTEuMDg2MzI4XSwgWzEzLjI2NDcwMiwgNTEuMDg2ODcxXSwgWzEzLjI2MjkwMiwgNTEuMDg3MjUxXSwgWzEzLjI2MDg2OSwgNTEuMDg3NjMyXSwgWzEzLjI1OTM1NywgNTEuMDg3ODg0XSwgWzEzLjI1NjkwMiwgNTEuMDg4MjM4XSwgWzEzLjI1NDQwMSwgNTEuMDg4NTVdLCBbMTMuMjUxNDkyLCA1MS4wODg4NjRdLCBbMTMuMjQyMTEsIDUxLjA4OTc1NV0sIFsxMy4yMzkzMiwgNTEuMDkwMDQxXSwgWzEzLjIzNjc0MiwgNTEuMDkwMzM3XSwgWzEzLjIzMzUzOCwgNTEuMDkwNzg1XSwgWzEzLjIzMTk4OSwgNTEuMDkxMDQxXSwgWzEzLjIzMDI1NiwgNTEuMDkxMzU0XSwgWzEzLjIyODU3NywgNTEuMDkxN10sIFsxMy4yMjcwOSwgNTEuMDkyMDQ5XSwgWzEzLjIyNTY2OCwgNTEuMDkyNDE1XSwgWzEzLjIyNDI0NSwgNTEuMDkyODI2XSwgWzEzLjIyMjg0LCA1MS4wOTMyOF0sIFsxMy4yMjE5MTEsIDUxLjA5MzYwNl0sIFsxMy4yMjA3MjMsIDUxLjA5NDA2Ml0sIFsxMy4yMTk4MDcsIDUxLjA5NDQzOF0sIFsxMy4yMTg3NzUsIDUxLjA5NDg5NV0sIFsxMy4yMTc3NzUsIDUxLjA5NTM2OF0sIFsxMy4yMTY3OTgsIDUxLjA5NTg2NF0sIFsxMy4yMTQ5MDcsIDUxLjA5Njg4OF0sIFsxMy4yMTEzOTUsIDUxLjA5ODg5XSwgWzEzLjIwOTc1NSwgNTEuMDk5Nzg3XSwgWzEzLjIwODc3LCA1MS4xMDAyOTldLCBbMTMuMjA2NzU0LCA1MS4xMDEyNl0sIFsxMy4yMDU2MDUsIDUxLjEwMTc1MV0sIFsxMy4yMDQ0NCwgNTEuMTAyMjJdLCBbMTMuMjAzMjQ1LCA1MS4xMDI2NjldLCBbMTMuMjAxOTgsIDUxLjEwMzEwNV0sIFsxMy4yMDA2MzksIDUxLjEwMzUzXSwgWzEzLjE5OTM3LCA1MS4xMDM5MDNdLCBbMTMuMTk4MDI4LCA1MS4xMDQyNjFdLCBbMTMuMTk2MDExLCA1MS4xMDQ3NTFdLCBbMTMuMTkyMDg1LCA1MS4xMDU2MzZdLCBbMTMuMTkwMTM4LCA1MS4xMDYwOTddLCBbMTMuMTg4MzA3LCA1MS4xMDY1NzJdLCBbMTMuMTg3NDUsIDUxLjEwNjgxNF0sIFsxMy4xODY0NDEsIDUxLjEwNzEyOV0sIFsxMy4xODQ4NDUsIDUxLjEwNzY4M10sIFsxMy4xODM3NTksIDUxLjEwODExMl0sIFsxMy4xODM1NjgsIDUxLjEwODI3Ml0sIFsxMy4xODMwMiwgNTEuMTA4NTldLCBbMTMuMTgyNzMxLCA1MS4xMDg4MDldLCBbMTMuMTgyNTEzLCA1MS4xMDkwN10sIFsxMy4xODIzODIsIDUxLjEwOTQ1MV0sIFsxMy4xODIzODIsIDUxLjEwOTk0MV0sIFsxMy4xODI0MjQsIDUxLjExMDMwNV0sIFsxMy4xODI1ODIsIDUxLjExMDc0XSwgWzEzLjE3NzQ2NiwgNTEuMTEwNzU4XSwgWzEzLjE3NjY4NiwgNTEuMTEwODA5XSwgWzEzLjE3NjIzNiwgNTEuMTEwODg5XSwgWzEzLjE3NTcxNCwgNTEuMTExMDE0XSwgWzEzLjE3NTM2MSwgNTEuMTExMTJdLCBbMTMuMTc0NjQ2LCA1MS4xMTE0MTRdLCBbMTMuMTc0MjU2LCA1MS4xMTE2MDJdLCBbMTMuMTY2NjU2LCA1MS4xMTY1NzddLCBbMTMuMTY1NDE5LCA1MS4xMTcxMDJdLCBbMTMuMTY0MDk0LCA1MS4xMTc0ODddLCBbMTMuMTYzMDg2LCA1MS4xMTc2NjNdLCBbMTMuMTYyMDY0LCA1MS4xMTc3OTZdLCBbMTMuMTYxMjUxLCA1MS4xMTc4NjZdLCBbMTMuMTYwNDk3LCA1MS4xMTgwMDJdLCBbMTMuMTU5NDk1LCA1MS4xMTgzMjddLCBbMTMuMTU2MDk1LCA1MS4xMTk3ODldLCBbMTMuMTU1MjMsIDUxLjEyMDEyXSwgWzEzLjE1NDcyMiwgNTEuMTIwMjkxXSwgWzEzLjE1NDIwNiwgNTEuMTIwNDM4XSwgWzEzLjE1MzY2MSwgNTEuMTIwNTYyXSwgWzEzLjE1MjcxMywgNTEuMTIwNjA2XSwgWzEzLjE0NzcyNCwgNTEuMTIwODkyXSwgWzEzLjE0NzcxMywgNTEuMTIwOTU4XSwgWzEzLjE0NzYyNSwgNTEuMTIxMDQ0XSwgWzEzLjE0NzU1NSwgNTEuMTIxMDcxXSwgWzEzLjE0NzQwMiwgNTEuMTIxMDg0XSwgWzEzLjE0NzMwOCwgNTEuMTIxMDY0XSwgWzEzLjE0NzIzNywgNTEuMTIxMDI5XSwgWzEzLjE0NzE4NywgNTEuMTIwOTgxXSwgWzEzLjE0NzE2NCwgNTEuMTIwOTI2XSwgWzEzLjE0MzIyNiwgNTEuMTIxMTI0XSwgWzEzLjEzODcxNSwgNTEuMTIxMjg2XSwgWzEzLjEzNTU0NSwgNTEuMTIxNDgyXSwgWzEzLjEzNTIyMiwgNTEuMTIxNTUyXSwgWzEzLjEzNDk4NSwgNTEuMTIxNjRdLCBbMTMuMTMzMTU4LCA1MS4xMjI1ODJdLCBbMTMuMTMyODA5LCA1MS4xMjI3NDRdLCBbMTMuMTMyNjE4LCA1MS4xMjI4MTVdLCBbMTMuMTMyNDQ3LCA1MS4xMjI4NTldLCBbMTMuMTMyMDUsIDUxLjEyMjkzM10sIFsxMy4xMzEwOTgsIDUxLjEyMzAxXSwgWzEzLjEyOTEwNywgNTEuMTIzMjE4XSwgWzEzLjEyODksIDUxLjEyMzIxM10sIFsxMy4xMjg1MzksIDUxLjEyMzE2OF0sIFsxMy4xMjgyMzMsIDUxLjEyMzA4NF0sIFsxMy4xMjgxMzQsIDUxLjEyMzA3M10sIFsxMy4xMjc5NzMsIDUxLjEyMzA4M10sIFsxMy4xMjc0MTksIDUxLjEyMzE5OV0sIFsxMy4xMjcxMiwgNTEuMTIzMzAyXSwgWzEzLjEyNjcxNSwgNTEuMTIzNDkyXSwgWzEzLjEyNjQ3OSwgNTEuMTIzNTc5XSwgWzEzLjEyNjM0OCwgNTEuMTIzNjA3XSwgWzEzLjEyNTUwNiwgNTEuMTIzNjYzXSwgWzEzLjEyNTA5OSwgNTEuMTIzNjU5XSwgWzEzLjEyNTAxNCwgNTEuMTIzNzI3XSwgWzEzLjEyNDkyMSwgNTEuMTIzNzM4XSwgWzEzLjEyNDgyNywgNTEuMTIzNzEyXSwgWzEzLjEyNDc5NSwgNTEuMTIzNjg3XSwgWzEzLjEyNDc3NCwgNTEuMTIzNjI0XSwgWzEzLjEyNDc4OCwgNTEuMTIzNTkyXSwgWzEzLjEyNDE3OCwgNTEuMTIzNDAyXSwgWzEzLjEyNDAyOCwgNTEuMTIzMzQyXSwgWzEzLjEyNDIxMSwgNTEuMTIyNjk2XSwgWzEzLjEyNDI0LCA1MS4xMjIzMDNdLCBbMTMuMTI0MiwgNTEuMTIyMDcyXSwgWzEzLjEyNDE1MywgNTEuMTIxOTYzXSwgWzEzLjEyMzk3OCwgNTEuMTIxNjgzXSwgWzEzLjEyMzgzMiwgNTEuMTIxNTI3XSwgWzEzLjEyMzY3LCA1MS4xMjEzOTddLCBbMTMuMTIzNDU4LCA1MS4xMjEyN10sIFsxMy4xMjI5NzEsIDUxLjEyMTAzOF0sIFsxMy4xMjMxNjUsIDUxLjEyMDgyMV0sIFsxMy4xMjM0ODgsIDUxLjEyMDMwOV0sIFsxMy4xMjM4MjgsIDUxLjExOTI5OV0sIFsxMy4xMjE3NzksIDUxLjExOTA0Nl0sIFsxMy4xMTk2NjgsIDUxLjExODc2MV0sIFsxMy4xMTk0ODIsIDUxLjExODc1MV0sIFsxMy4xMTkzMzMsIDUxLjExODc2Ml0sIFsxMy4xMTg3NCwgNTEuMTE4ODUzXSwgWzEzLjExODM4MiwgNTEuMTE4MDFdLCBbMTMuMTE4MzA1LCA1MS4xMTc2NTRdLCBbMTMuMTE4MTc4LCA1MS4xMTcyNTZdLCBbMTMuMTE4MDkzLCA1MS4xMTcxNzldLCBbMTMuMTE4MDM2LCA1MS4xMTcxNTFdLCBbMTMuMTE3OTAzLCA1MS4xMTcxMjddLCBbMTMuMTE3NzYyLCA1MS4xMTcxNjJdLCBbMTMuMTE3Njk1LCA1MS4xMTcxOTVdLCBbMTMuMTE3NDQ2LCA1MS4xMTc0NTVdLCBbMTMuMTE3MzU3LCA1MS4xMTc1Ml0sIFsxMy4xMTcwMDYsIDUxLjExNzY2Ml0sIFsxMy4xMTY2MzksIDUxLjExNzc0Nl0sIFsxMy4xMTYzMTUsIDUxLjExNzc3M10sIFsxMy4xMTYwMTIsIDUxLjExNzc3Ml0sIFsxMy4xMTYwNDksIDUxLjExNzY0N10sIFsxMy4xMTYzMDIsIDUxLjExNzMzOF0sIFsxMy4xMTYzMjksIDUxLjExNzI1M11dLCAidHlwZSI6ICJMaW5lU3RyaW5nIn0sICJpZCI6ICIwIiwgInR5cGUiOiAiRmVhdHVyZSJ9XSwgInR5cGUiOiAiRmVhdHVyZUNvbGxlY3Rpb24ifSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl82MzAxZmFmNWNjOTY0YjE5ODdhMjFjYTdiMzgwYmExMSA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzUxLjI2MzYwNywgMTMuOTAzNjddLAogICAgICAgICAgICAgICAge30KICAgICAgICAgICAgKS5hZGRUbyhtYXBfZTBlOGE2NzBiMDEyNDE1OThiNzY3MmE5MzQ0NTkxMDApOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBpY29uXzMwYTZlYWU1MWM0ZDRiYTZiMjkzOTlmNmU5MDAwYTg5ID0gTC5Bd2Vzb21lTWFya2Vycy5pY29uKAogICAgICAgICAgICAgICAgeyJleHRyYUNsYXNzZXMiOiAiZmEtcm90YXRlLTAiLCAiaWNvbiI6ICJpbmZvLXNpZ24iLCAiaWNvbkNvbG9yIjogIndoaXRlIiwgIm1hcmtlckNvbG9yIjogImdyZWVuIiwgInByZWZpeCI6ICJnbHlwaGljb24ifQogICAgICAgICAgICApOwogICAgICAgICAgICBtYXJrZXJfNjMwMWZhZjVjYzk2NGIxOTg3YTIxY2E3YjM4MGJhMTEuc2V0SWNvbihpY29uXzMwYTZlYWU1MWM0ZDRiYTZiMjkzOTlmNmU5MDAwYTg5KTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBwb3B1cF8wODgwZDMwNWQ4NmM0ZmU5YTg5NWQ1ZmRjODc1MGI4NSA9IEwucG9wdXAoeyJtYXhXaWR0aCI6ICIxMDAlIn0pOwoKICAgICAgICAKICAgICAgICAgICAgdmFyIGh0bWxfZWIyZjhlODhiNDZkNGQ0ZWJiZjI1ODE2NmU1YjE1NzcgPSAkKGA8ZGl2IGlkPSJodG1sX2ViMmY4ZTg4YjQ2ZDRkNGViYmYyNTgxNjZlNWIxNTc3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5zdGFydDwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF8wODgwZDMwNWQ4NmM0ZmU5YTg5NWQ1ZmRjODc1MGI4NS5zZXRDb250ZW50KGh0bWxfZWIyZjhlODhiNDZkNGQ0ZWJiZjI1ODE2NmU1YjE1NzcpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfNjMwMWZhZjVjYzk2NGIxOTg3YTIxY2E3YjM4MGJhMTEuYmluZFBvcHVwKHBvcHVwXzA4ODBkMzA1ZDg2YzRmZTlhODk1ZDVmZGM4NzUwYjg1KQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyX2ZhZWIzNjk1YTk5NzQzNDdhOTNiN2M2ZGZlOTBjMWZhID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTEuMTE3MjYzLCAxMy4xMTY1Nl0sCiAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICApLmFkZFRvKG1hcF9lMGU4YTY3MGIwMTI0MTU5OGI3NjcyYTkzNDQ1OTEwMCk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGljb25fM2I4MDE0NjIyMWQwNGEzMDllZTljODIyOTQzZmZhODIgPSBMLkF3ZXNvbWVNYXJrZXJzLmljb24oCiAgICAgICAgICAgICAgICB7ImV4dHJhQ2xhc3NlcyI6ICJmYS1yb3RhdGUtMCIsICJpY29uIjogImluZm8tc2lnbiIsICJpY29uQ29sb3IiOiAid2hpdGUiLCAibWFya2VyQ29sb3IiOiAicmVkIiwgInByZWZpeCI6ICJnbHlwaGljb24ifQogICAgICAgICAgICApOwogICAgICAgICAgICBtYXJrZXJfZmFlYjM2OTVhOTk3NDM0N2E5M2I3YzZkZmU5MGMxZmEuc2V0SWNvbihpY29uXzNiODAxNDYyMjFkMDRhMzA5ZWU5YzgyMjk0M2ZmYTgyKTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBwb3B1cF9hODYyN2M4MTE1NTY0YTMwYjg2OWVmNjc3OTk5YTU4YSA9IEwucG9wdXAoeyJtYXhXaWR0aCI6ICIxMDAlIn0pOwoKICAgICAgICAKICAgICAgICAgICAgdmFyIGh0bWxfZDcxZGU2NjYxYjljNDU1NzkyZjhmMjRkODg2MGZkMzUgPSAkKGA8ZGl2IGlkPSJodG1sX2Q3MWRlNjY2MWI5YzQ1NTc5MmY4ZjI0ZDg4NjBmZDM1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5lbmQ8L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfYTg2MjdjODExNTU2NGEzMGI4NjllZjY3Nzk5OWE1OGEuc2V0Q29udGVudChodG1sX2Q3MWRlNjY2MWI5YzQ1NTc5MmY4ZjI0ZDg4NjBmZDM1KTsKICAgICAgICAKCiAgICAgICAgbWFya2VyX2ZhZWIzNjk1YTk5NzQzNDdhOTNiN2M2ZGZlOTBjMWZhLmJpbmRQb3B1cChwb3B1cF9hODYyN2M4MTE1NTY0YTMwYjg2OWVmNjc3OTk5YTU4YSkKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICBmdW5jdGlvbiBnZW9fanNvbl9mNzI1MmIyOGZmZDg0MWE0OWZkZTgzZmQ3NjdhMTFhZF9zdHlsZXIoZmVhdHVyZSkgewogICAgICAgICAgICBzd2l0Y2goZmVhdHVyZS5pZCkgewogICAgICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICAgICByZXR1cm4geyJjb2xvciI6ICJyZWQiLCAib3BhY2l0eSI6IDAuNSwgIndlaWdodCI6IDV9OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uX2Y3MjUyYjI4ZmZkODQxYTQ5ZmRlODNmZDc2N2ExMWFkX29uRWFjaEZlYXR1cmUoZmVhdHVyZSwgbGF5ZXIpIHsKICAgICAgICAgICAgbGF5ZXIub24oewogICAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAgICAgICBtYXBfZTBlOGE2NzBiMDEyNDE1OThiNzY3MmE5MzQ0NTkxMDAuZml0Qm91bmRzKGUudGFyZ2V0LmdldEJvdW5kcygpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfTsKICAgICAgICB2YXIgZ2VvX2pzb25fZjcyNTJiMjhmZmQ4NDFhNDlmZGU4M2ZkNzY3YTExYWQgPSBMLmdlb0pzb24obnVsbCwgewogICAgICAgICAgICAgICAgb25FYWNoRmVhdHVyZTogZ2VvX2pzb25fZjcyNTJiMjhmZmQ4NDFhNDlmZGU4M2ZkNzY3YTExYWRfb25FYWNoRmVhdHVyZSwKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBzdHlsZTogZ2VvX2pzb25fZjcyNTJiMjhmZmQ4NDFhNDlmZGU4M2ZkNzY3YTExYWRfc3R5bGVyLAogICAgICAgIH0pLmFkZFRvKG1hcF9lMGU4YTY3MGIwMTI0MTU5OGI3NjcyYTkzNDQ1OTEwMCk7CgogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uX2Y3MjUyYjI4ZmZkODQxYTQ5ZmRlODNmZDc2N2ExMWFkX2FkZCAoZGF0YSkgewogICAgICAgICAgICBnZW9fanNvbl9mNzI1MmIyOGZmZDg0MWE0OWZkZTgzZmQ3NjdhMTFhZC5hZGREYXRhKGRhdGEpOwogICAgICAgIH0KICAgICAgICAgICAgZ2VvX2pzb25fZjcyNTJiMjhmZmQ4NDFhNDlmZGU4M2ZkNzY3YTExYWRfYWRkKHsiZmVhdHVyZXMiOiBbeyJnZW9tZXRyeSI6IHsiY29vcmRpbmF0ZXMiOiBbWzEzLjkwMzYzMywgNTEuMjYzNjY0XSwgWzEzLjkwNDMyNiwgNTEuMjYzODQyXSwgWzEzLjkwNDkyNCwgNTEuMjYzOTI3XSwgWzEzLjkwNDYzLCA1MS4yNjQ1NjZdLCBbMTMuOTA0MzQzLCA1MS4yNjQ1MTldLCBbMTMuOTAzOTgsIDUxLjI2NDQzN10sIFsxMy45MDI0NTcsIDUxLjI2Mzk1NF0sIFsxMy45MDEzMTksIDUxLjI2MzYzNF0sIFsxMy45MDEwNjUsIDUxLjI2MzU0M10sIFsxMy45MDA5NzIsIDUxLjI2MzQ5Nl0sIFsxMy45MDA5MzEsIDUxLjI2MzQ1M10sIFsxMy45MDA2MzUsIDUxLjI2MzM3MV0sIFsxMy45MDAzNTEsIDUxLjI2MzM2N10sIFsxMy45MDAyMjcsIDUxLjI2MzQxMl0sIFsxMy45MDAxMzUsIDUxLjI2MzQ4OV0sIFsxMy44OTk4MzYsIDUxLjI2Mzg0NV0sIFsxMy44OTk2MjYsIDUxLjI2MzkyMl0sIFsxMy44OTk0MzMsIDUxLjI2MzkzNl0sIFsxMy44OTg0OTcsIDUxLjI2MzkwOF0sIFsxMy44OTgwNzgsIDUxLjI2MzkyXSwgWzEzLjg5NzgzLCA1MS4yNjM5NjFdLCBbMTMuODk2NzY1LCA1MS4yNjQyMzRdLCBbMTMuODk1MjI4LCA1MS4yNjQ0ODldLCBbMTMuODk0MzI5LCA1MS4yNjQ1NjldLCBbMTMuODkzOTQsIDUxLjI2NDYxN10sIFsxMy44OTM1NTUsIDUxLjI2NDcwMl0sIFsxMy44OTMyNjQsIDUxLjI2NDgxMl0sIFsxMy44OTI4NDEsIDUxLjI2NTA3XSwgWzEzLjg5MjEyMywgNTEuMjY1NDJdLCBbMTMuODkxMzU3LCA1MS4yNjU3NTddLCBbMTMuODkwOTY2LCA1MS4yNjU4NjhdLCBbMTMuODkwNTUyLCA1MS4yNjU5MzFdLCBbMTMuODkwMjAxLCA1MS4yNjU5MzldLCBbMTMuODg5MjcsIDUxLjI2NTgzOV0sIFsxMy44ODkwMTMsIDUxLjI2NTgzMl0sIFsxMy44ODg3MzYsIDUxLjI2NTg4M10sIFsxMy44ODcyNjcsIDUxLjI2NjI0N10sIFsxMy44ODY1NzQsIDUxLjI2NjM3OF0sIFsxMy44ODU2MzUsIDUxLjI2NjQ2OF0sIFsxMy44ODMyMDMsIDUxLjI2NjczNV0sIFsxMy44ODE4OTIsIDUxLjI2NjkyN10sIFsxMy44Nzk2MDksIDUxLjI2NzI4Nl0sIFsxMy44Nzc0MjUsIDUxLjI2NzY0NF0sIFsxMy44NzY2MDksIDUxLjI2Nzc1Nl0sIFsxMy44NzUzNjcsIDUxLjI2NzgyM10sIFsxMy44NzE3ODYsIDUxLjI2Nzg4MV0sIFsxMy44NzAxMzUsIDUxLjI2NzkyOF0sIFsxMy44Njk0NjEsIDUxLjI2Nzg3OV0sIFsxMy44Njg1MTMsIDUxLjI2Nzc1OF0sIFsxMy44Njc1NiwgNTEuMjY3NTUyXSwgWzEzLjg2Njg0LCA1MS4yNjczN10sIFsxMy44NjQzMiwgNTEuMjY2ODk4XSwgWzEzLjg2Mjc0NiwgNTEuMjY2NjY4XSwgWzEzLjg1ODgwOSwgNTEuMjY2MjE2XSwgWzEzLjg1NjY0MiwgNTEuMjY2MDkyXSwgWzEzLjg1MDA3NCwgNTEuMjY2NzM3XSwgWzEzLjg0OTg4MSwgNTEuMjY2NzI2XSwgWzEzLjg0OTc2NCwgNTEuMjY2NzAyXSwgWzEzLjg0OTUyNSwgNTEuMjY2NTddLCBbMTMuODQ5MDM2LCA1MS4yNjY4MjldLCBbMTMuODQ3OTA0LCA1MS4yNjcyOTZdLCBbMTMuODQ2NzExLCA1MS4yNjc2OF0sIFsxMy44NDU4NDYsIDUxLjI2NzkzM10sIFsxMy44NDUyODEsIDUxLjI2ODE2NV0sIFsxMy44NDQ2NzQsIDUxLjI2ODQ0XSwgWzEzLjg0NDMxOSwgNTEuMjY4NTY3XSwgWzEzLjg0MzE3MywgNTEuMjY4ODcxXSwgWzEzLjg0MjU4NywgNTEuMjY4NDQ3XSwgWzEzLjg0MDg1NSwgNTEuMjY3MTMzXSwgWzEzLjg0MDU0OSwgNTEuMjY2OTJdLCBbMTMuODQwMzY0LCA1MS4yNjY4MjhdLCBbMTMuODQwMDExLCA1MS4yNjY3MzNdLCBbMTMuODM4NjE2LCA1MS4yNjY0ODFdLCBbMTMuODM3NTYzLCA1MS4yNjYzNDNdLCBbMTMuODM2NzEzLCA1MS4yNjYzNDldLCBbMTMuODM1NDc1LCA1MS4yNjY0MThdLCBbMTMuODM0NDg5LCA1MS4yNjY1NDRdLCBbMTMuODMzNjE4LCA1MS4yNjY2ODddLCBbMTMuODMyNjg2LCA1MS4yNjY4MTNdLCBbMTMuODMyMDkzLCA1MS4yNjY4NDFdLCBbMTMuODMxNSwgNTEuMjY2ODUxXSwgWzEzLjgzMDUyNywgNTEuMjY2Nzk3XSwgWzEzLjgyOTg0MSwgNTEuMjY2NzIxXSwgWzEzLjgyNjQ1MywgNTEuMjY2MjRdLCBbMTMuODIzMDQsIDUxLjI2NTU0MV0sIFsxMy44MjIzMjUsIDUxLjI2NTM0N10sIFsxMy44MjE4NTksIDUxLjI2NTEzNF0sIFsxMy44MjEzNTEsIDUxLjI2NDc4OF0sIFsxMy44MTk3MzEsIDUxLjI2MzU1NF0sIFsxMy44MTg5NTUsIDUxLjI2MzExN10sIFsxMy44MTU2NTYsIDUxLjI2MTYzN10sIFsxMy44MTQ0NDgsIDUxLjI2MTAzMl0sIFsxMy44MTI5ODEsIDUxLjI2MDM0Nl0sIFsxMy44MTE2MzIsIDUxLjI1OTgwNF0sIFsxMy44MTAyMTksIDUxLjI1OTI4MV0sIFsxMy44MDg5NDUsIDUxLjI1ODg1XSwgWzEzLjgwNzIyNywgNTEuMjU4NDI2XSwgWzEzLjgwNDM4OSwgNTEuMjU3ODM5XSwgWzEzLjgwMzMwNywgNTEuMjU3NTk1XSwgWzEzLjc5OTM1NSwgNTEuMjU2NjAyXSwgWzEzLjc5NjA3OSwgNTEuMjU1NjEyXSwgWzEzLjc5Mjk3NCwgNTEuMjU0ODI2XSwgWzEzLjc5MjI3MSwgNTEuMjU0NTg0XSwgWzEzLjc4OTE3NywgNTEuMjUzMzQ5XSwgWzEzLjc4ODE0OCwgNTEuMjUyOTU5XSwgWzEzLjc4NzYwNywgNTEuMjUyODA1XSwgWzEzLjc4NjU0NCwgNTEuMjUyNTM0XSwgWzEzLjc4NTE5MSwgNTEuMjUyMjI1XSwgWzEzLjc4NDQ2NywgNTEuMjUxOTk3XSwgWzEzLjc4MTk0MSwgNTEuMjUwNjEzXSwgWzEzLjc4MDY3MywgNTEuMjUwMDEyXSwgWzEzLjc3ODUyLCA1MS4yNDkwNV0sIFsxMy43Nzc4MDgsIDUxLjI0ODc5M10sIFsxMy43NzU0NDQsIDUxLjI0ODA1N10sIFsxMy43NzUyMjEsIDUxLjI0Nzk3Nl0sIFsxMy43NzUwMTEsIDUxLjI0Nzg5Ml0sIFsxMy43NzM0MTEsIDUxLjI0NzA4OF0sIFsxMy43NzMxNDQsIDUxLjI0Njk4NV0sIFsxMy43NzI2MTYsIDUxLjI0NjgxNF0sIFsxMy43NzA2NSwgNTEuMjQ2MzE0XSwgWzEzLjc3MDQyNSwgNTEuMjQ2MjE3XSwgWzEzLjc3MDI1NCwgNTEuMjQ2MTIyXSwgWzEzLjc2OTk1NywgNTEuMjQ1ODk3XSwgWzEzLjc2OTQxMywgNTEuMjQ1MzZdLCBbMTMuNzY5MzAxLCA1MS4yNDUyN10sIFsxMy43NjkxMiwgNTEuMjQ1MTcxXSwgWzEzLjc2ODkxMSwgNTEuMjQ1MDg4XSwgWzEzLjc2NzMwMSwgNTEuMjQ0N10sIFsxMy43NjQzMTgsIDUxLjI0NDE2Nl0sIFsxMy43NjM5OTgsIDUxLjI0NDA4MV0sIFsxMy43NjM0NjksIDUxLjI0Mzg4NV0sIFsxMy43NjE2NTIsIDUxLjI0MzEwMl0sIFsxMy43NjEyNTEsIDUxLjI0Mjk3NF0sIFsxMy43NTk4NTUsIDUxLjI0MjY2NV0sIFsxMy43NTk0MzIsIDUxLjI0MjU5M10sIFsxMy43NTc1MzUsIDUxLjI0MjQwM10sIFsxMy43NTY3MzQsIDUxLjI0MjI1N10sIFsxMy43NTUxMiwgNTEuMjQxOTE2XSwgWzEzLjc1NDgyNCwgNTEuMjQxODM0XSwgWzEzLjc1MTY2NCwgNTEuMjQwODA3XSwgWzEzLjc1MTEyNCwgNTEuMjQwNjY3XSwgWzEzLjc0NzkwNywgNTEuMjQwMDE0XSwgWzEzLjc0NTQ5NSwgNTEuMjM5MzQyXSwgWzEzLjc0NTExNiwgNTEuMjM5MjA2XSwgWzEzLjc0NDc0NCwgNTEuMjM5MDI0XSwgWzEzLjc0MzU3NiwgNTEuMjM4Mzc0XSwgWzEzLjc0MzA4NywgNTEuMjM4MTQzXSwgWzEzLjc0MjQ5MSwgNTEuMjM3OTA3XSwgWzEzLjc0MTQxNSwgNTEuMjM3NTYyXSwgWzEzLjc0MTE5MSwgNTEuMjM3NTA1XSwgWzEzLjc0MDM0MSwgNTEuMjM3MzY3XSwgWzEzLjczOTgyMSwgNTEuMjM3MjY4XSwgWzEzLjczOTQyNCwgNTEuMjM3MTc1XSwgWzEzLjczOTAwOCwgNTEuMjM3MDQ3XSwgWzEzLjczNzQzMywgNTEuMjM2NDU2XSwgWzEzLjczNjgyNCwgNTEuMjM2MTQ5XSwgWzEzLjczNDM2MiwgNTEuMjM0NTk0XSwgWzEzLjczMzc3OCwgNTEuMjM0MjYxXSwgWzEzLjczMzI2MywgNTEuMjMzOTI4XSwgWzEzLjczMjQxMiwgNTEuMjMzMjQ4XSwgWzEzLjczMjA1MiwgNTEuMjMyOTE2XSwgWzEzLjczMDc0OSwgNTEuMjMxMjg1XSwgWzEzLjczMDMxMiwgNTEuMjMwNjcxXSwgWzEzLjczMDIwNiwgNTEuMjMwNDkzXSwgWzEzLjczMDIwOSwgNTEuMjMwMTkyXSwgWzEzLjczMDI0OCwgNTEuMjMwMDU3XSwgWzEzLjczMDY5NCwgNTEuMjI5NTczXSwgWzEzLjczMDgzMywgNTEuMjI5MzA4XSwgWzEzLjczMDkyMSwgNTEuMjI4OTY1XSwgWzEzLjczMDkyNywgNTEuMjI4NzcyXSwgWzEzLjczMDgyMywgNTEuMjI4NDAxXSwgWzEzLjczMDcwNywgNTEuMjI4MjMxXSwgWzEzLjczMDQ4NywgNTEuMjI4MDA2XSwgWzEzLjczMDI4OCwgNTEuMjI3ODUzXSwgWzEzLjczMDEzMiwgNTEuMjI3NzY0XSwgWzEzLjcyOTY5OSwgNTEuMjI3NTg5XSwgWzEzLjcyOTUyOSwgNTEuMjI3NTM2XSwgWzEzLjcyODc0OSwgNTEuMjI3MzVdLCBbMTMuNzI3OTQ2LCA1MS4yMjcxNzddLCBbMTMuNzI3MzU3LCA1MS4yMjY5NThdLCBbMTMuNzI2NDg0LCA1MS4yMjY1MjVdLCBbMTMuNzI1NTE0LCA1MS4yMjYwMTRdLCBbMTMuNzI0OTgzLCA1MS4yMjU2NDVdLCBbMTMuNzI0NzUzLCA1MS4yMjU0MDRdLCBbMTMuNzI0NTg2LCA1MS4yMjUxNzNdLCBbMTMuNzI0NDQzLCA1MS4yMjQ4OThdLCBbMTMuNzI0MzU5LCA1MS4yMjQ2MTRdLCBbMTMuNzI0MzYsIDUxLjIyNDUwMV0sIFsxMy43MjQ0MDEsIDUxLjIyNDM5Ml0sIFsxMy43MjQ1MDgsIDUxLjIyNDIzM10sIFsxMy43MjU1MjUsIDUxLjIyMzQzXSwgWzEzLjcyNTcxMiwgNTEuMjIzMjA1XSwgWzEzLjcyNTgwNCwgNTEuMjIzMDQ0XSwgWzEzLjcyNTgyNSwgNTEuMjIyODYzXSwgWzEzLjcyNTYyNCwgNTEuMjIxMjQ1XSwgWzEzLjcyNTQwNSwgNTEuMjE5ODkyXSwgWzEzLjcyNTMyLCA1MS4yMTk2NjNdLCBbMTMuNzI1MTA0LCA1MS4yMTk0OTFdLCBbMTMuNzI0NzU0LCA1MS4yMTkzMzRdLCBbMTMuNzI0MjU5LCA1MS4yMTkxOTNdLCBbMTMuNzIzNzM4LCA1MS4yMTg5ODFdLCBbMTMuNzIzNDc1LCA1MS4yMTg3ODhdLCBbMTMuNzIyMDk3LCA1MS4yMTc2MzldLCBbMTMuNzIxNjg3LCA1MS4yMTczNjJdLCBbMTMuNzIxMzk5LCA1MS4yMTcxOTZdLCBbMTMuNzIxMjU2LCA1MS4yMTcxMzddLCBbMTMuNzIxMDA2LCA1MS4yMTcxNThdLCBbMTMuNzE5MTUsIDUxLjIxNzY1OV0sIFsxMy43MTkwODIsIDUxLjIxNzQyM10sIFsxMy43MTkxMzMsIDUxLjIxNjg5NV0sIFsxMy43MTkzMDksIDUxLjIxNjU1NF0sIFsxMy43MTk1MjMsIDUxLjIxNjE4Nl0sIFsxMy43MjA0NzIsIDUxLjIxNTEzOF0sIFsxMy43MjA4MTQsIDUxLjIxNDY1Nl0sIFsxMy43MjA4MTQsIDUxLjIxNDUwOF0sIFsxMy43MjA3ODksIDUxLjIxNDQzXSwgWzEzLjcyMDE5OCwgNTEuMjEzNzk1XSwgWzEzLjcyMDA5NywgNTEuMjEzNzEyXSwgWzEzLjcxOTk0MiwgNTEuMjEzNjNdLCBbMTMuNzE5Nzk2LCA1MS4yMTM1ODVdLCBbMTMuNzE5Njk2LCA1MS4yMTM1NzFdLCBbMTMuNzE5NDc0LCA1MS4yMTM1NzVdLCBbMTMuNzE4NzkxLCA1MS4yMTM2OTZdLCBbMTMuNzE4NTUyLCA1MS4yMTM2NzZdLCBbMTMuNzE4MzY5LCA1MS4yMTM2MjJdLCBbMTMuNzE4MjQ2LCA1MS4yMTM1NTRdLCBbMTMuNzE3OTQ5LCA1MS4yMTMzMV0sIFsxMy43MTc4MDQsIDUxLjIxMzIyNV0sIFsxMy43MTc1NzksIDUxLjIxMzE2NF0sIFsxMy43MTcwMDMsIDUxLjIxMzFdLCBbMTMuNzE2ODM2LCA1MS4yMTMwNjNdLCBbMTMuNzE2NjM3LCA1MS4yMTI5OTRdLCBbMTMuNzE1MzMyLCA1MS4yMTI0MzNdLCBbMTMuNzEzODkzLCA1MS4yMTE3ODJdLCBbMTMuNzEzMTIxLCA1MS4yMTE0NTRdLCBbMTMuNzEyNjk0LCA1MS4yMTEzMTddLCBbMTMuNzEwNjk0LCA1MS4yMTA3NjRdLCBbMTMuNzA5NDgxLCA1MS4yMTA0NDhdLCBbMTMuNzA3MjExLCA1MS4yMDk4NDldLCBbMTMuNzAzMzQsIDUxLjIwOTMyOF0sIFsxMy42ODYwNTYsIDUxLjIwNzA3Nl0sIFsxMy42ODU0NjYsIDUxLjIwNzAzOV0sIFsxMy42ODQ4NzYsIDUxLjIwNzAyMl0sIFsxMy42Njk3NjUsIDUxLjIwNzA3XSwgWzEzLjY2NjI0MSwgNTEuMjA3MDYzXSwgWzEzLjY2NDAzNiwgNTEuMjA3MDgyXSwgWzEzLjY1MjMxNywgNTEuMjA3MDQ3XSwgWzEzLjY1MjA2NywgNTEuMjA3MDQ1XSwgWzEzLjY1MTY0NiwgNTEuMjA2OTg2XSwgWzEzLjY1MDYxMiwgNTEuMjA2NzkzXSwgWzEzLjY1MDQxLCA1MS4yMDY3NzRdLCBbMTMuNjUwMjI0LCA1MS4yMDY3NzVdLCBbMTMuNjQ4ODk2LCA1MS4yMDY5NzNdLCBbMTMuNjQ0OTA2LCA1MS4yMDczNDldLCBbMTMuNjQyODAyLCA1MS4yMDc1OTZdLCBbMTMuNjQyMTY3LCA1MS4yMDc2MzhdLCBbMTMuNjQwNDI0LCA1MS4yMDc2MzldLCBbMTMuNjM3MjQ3LCA1MS4yMDc1NTRdLCBbMTMuNjM2NjMxLCA1MS4yMDc1NjNdLCBbMTMuNjM0MzgsIDUxLjIwNzY3Nl0sIFsxMy42MzIwNjYsIDUxLjIwNzg2Ml0sIFsxMy42MzEyNTgsIDUxLjIwNzg5MV0sIFsxMy42MzExMDYsIDUxLjIwNzkxNl0sIFsxMy42MzA3MzYsIDUxLjIwODAyM10sIFsxMy42MjkzOTUsIDUxLjIwODUzOF0sIFsxMy42MjkyMDYsIDUxLjIwODU5Nl0sIFsxMy42Mjg4NDEsIDUxLjIwODYzOF0sIFsxMy42Mjg2MDUsIDUxLjIwODYyNl0sIFsxMy42MjQ5MzIsIDUxLjIwODIzOV0sIFsxMy42MjMxNiwgNTEuMjA4MDc2XSwgWzEzLjYyMjgyOCwgNTEuMjA4MDI1XSwgWzEzLjYyMDIsIDUxLjIwNzM5NV0sIFsxMy42MTkwMjIsIDUxLjIwNzEyOV0sIFsxMy42MTU2NDEsIDUxLjIwNjQxNF0sIFsxMy42MDY0OSwgNTEuMjA0Mzc5XSwgWzEzLjYwNTk3NCwgNTEuMjA0MzI0XSwgWzEzLjYwMTgyNSwgNTEuMjA0MzYxXSwgWzEzLjYwMTI2NiwgNTEuMjA0Mjg5XSwgWzEzLjU5OTA5OSwgNTEuMjAzODk3XSwgWzEzLjU5NDc5OSwgNTEuMjAxNTIxXSwgWzEzLjU5NDE2MiwgNTEuMjAxMTM2XSwgWzEzLjU5MzQxLCA1MS4yMDA3NzJdLCBbMTMuNTkzMTcyLCA1MS4yMDA2NzhdLCBbMTMuNTkyOTE2LCA1MS4yMDA2MTNdLCBbMTMuNTkwMDQ3LCA1MS4yMDAyNDldLCBbMTMuNTg5ODExLCA1MS4yMDAxNzldLCBbMTMuNTg5NjczLCA1MS4yMDAyMzRdLCBbMTMuNTg5NTExLCA1MS4yMDAyMjRdLCBbMTMuNTg5NDQyLCA1MS4yMDAxOTVdLCBbMTMuNTg5MzcxLCA1MS4yMDAxMTddLCBbMTMuNTg5MzY1LCA1MS4yMDAwNzJdLCBbMTMuNTg5NDE0LCA1MS4xOTk5ODddLCBbMTMuNTg5MTU0LCA1MS4xOTk4OTldLCBbMTMuNTg4ODI0LCA1MS4xOTk4NzFdLCBbMTMuNTg4Mjk2LCA1MS4xOTk4NjJdLCBbMTMuNTg3ODg1LCA1MS4xOTk4MjJdLCBbMTMuNTc0MjYxLCA1MS4xOTcyMjJdLCBbMTMuNTczOTYsIDUxLjE5NzE4Nl0sIFsxMy41NzM2NTEsIDUxLjE5NzE2OV0sIFsxMy41NjQwODUsIDUxLjE5NjkyNl0sIFsxMy41NjM3MDcsIDUxLjE5Njg5Ml0sIFsxMy41NjE3ODMsIDUxLjE5NjY1M10sIFsxMy41NjE0MTMsIDUxLjE5NjYzXSwgWzEzLjU2MDg2NCwgNTEuMTk2NjRdLCBbMTMuNTUzNzkzLCA1MS4xOTcxNzldLCBbMTMuNTUyNzA1LCA1MS4xOTcyOTJdLCBbMTMuNTUwODE5LCA1MS4xOTc1NTFdLCBbMTMuNTUwNjEyLCA1MS4xOTc1NTZdLCBbMTMuNTUwNDA4LCA1MS4xOTc1NDJdLCBbMTMuNTQ5ODc1LCA1MS4xOTc0NDddLCBbMTMuNTQ4MDczLCA1MS4xOTY5NDNdLCBbMTMuNTQ3ODM4LCA1MS4xOTY4NDddLCBbMTMuNTQ3Mzk1LCA1MS4xOTY1OTddLCBbMTMuNTQwOTI0LCA1MS4xOTI1NjVdLCBbMTMuNTQwMzgxLCA1MS4xOTIyODJdLCBbMTMuNTM5ODMsIDUxLjE5MjA1N10sIFsxMy41MzgxMzcsIDUxLjE5MTUxNV0sIFsxMy41Mjg1NTQsIDUxLjE4ODU0NV0sIFsxMy41MjU2MjMsIDUxLjE4NzYyM10sIFsxMy41MjUxOCwgNTEuMTg3NDU4XSwgWzEzLjUyNDgxNCwgNTEuMTg3MzY5XSwgWzEzLjUyMzE5MiwgNTEuMTg3MjM2XSwgWzEzLjUyMjIzLCA1MS4xODcwNjJdLCBbMTMuNTIxMzM2LCA1MS4xODY5OV0sIFsxMy41MjAzMDcsIDUxLjE4Njc2NV0sIFsxMy41MTk2MDQsIDUxLjE4NjU2MV0sIFsxMy41MTk0NjQsIDUxLjE4NjQ4N10sIFsxMy41MTk0MTgsIDUxLjE4NjQyMV0sIFsxMy41MTkyMjQsIDUxLjE4NTkxOV0sIFsxMy41MTkwODYsIDUxLjE4NTY0OV0sIFsxMy41MTg2NDgsIDUxLjE4NTIwNl0sIFsxMy41MTg0NTYsIDUxLjE4NTA3Ml0sIFsxMy41MTgyMzQsIDUxLjE4NDk1M10sIFsxMy41MTc4NTYsIDUxLjE4NDc5Nl0sIFsxMy41MTc3MjQsIDUxLjE4NDc1Nl0sIFsxMy41MTQ4NjEsIDUxLjE4NDE0Nl0sIFsxMy41MTQxODYsIDUxLjE4Mzk3N10sIFsxMy41MTM2MzcsIDUxLjE4Mzc3OF0sIFsxMy41MTE4OTgsIDUxLjE4MzEwNF0sIFsxMy41MTE3ODEsIDUxLjE4MzAzN10sIFsxMy41MTE2MDYsIDUxLjE4Mjg5OV0sIFsxMy41MTA5MTIsIDUxLjE4MjA4M10sIFsxMy41MTA3NDEsIDUxLjE4MTkyOV0sIFsxMy41MDgzMjcsIDUxLjE4MDE3MV0sIFsxMy41MDgwODQsIDUxLjE4MDAxNl0sIFsxMy41MDc4MDQsIDUxLjE3OTg3N10sIFsxMy41MDQzMiwgNTEuMTc4NDQzXSwgWzEzLjUwMjczOSwgNTEuMTc3ODA4XSwgWzEzLjUwMjQ4OCwgNTEuMTc3NzE3XSwgWzEzLjUwMjIzLCA1MS4xNzc2NTVdLCBbMTMuNTAxOTUzLCA1MS4xNzc2NDNdLCBbMTMuNTAwOTU4LCA1MS4xNzc3MzRdLCBbMTMuNTAwNzg3LCA1MS4xNzc3MjZdLCBbMTMuNDk5MTYxLCA1MS4xNzc1NDFdLCBbMTMuNDk4NzA3LCA1MS4xNzc1N10sIFsxMy40OTc5MjIsIDUxLjE3NzcyMl0sIFsxMy40OTc2NjYsIDUxLjE3Nzc1NV0sIFsxMy40OTcyOSwgNTEuMTc3NzRdLCBbMTMuNDk2OTMzLCA1MS4xNzc2OTldLCBbMTMuNDk2NjQ4LCA1MS4xNzc2OV0sIFsxMy40OTYwNjQsIDUxLjE3NzcyNV0sIFsxMy40OTYwNjcsIDUxLjE3NzU3MV0sIFsxMy40OTU5ODYsIDUxLjE3NzQwOF0sIFsxMy40OTU4NTcsIDUxLjE3NzMwNl0sIFsxMy40OTU1MzgsIDUxLjE3NzExNl0sIFsxMy40OTUzNjYsIDUxLjE3Njk2NV0sIFsxMy40OTM4MDgsIDUxLjE3NTU0Ml0sIFsxMy40OTM1MiwgNTEuMTc1MjVdLCBbMTMuNDkzNDM0LCA1MS4xNzUwNjddLCBbMTMuNDkzMzQ5LCA1MS4xNzQ2NzhdLCBbMTMuNDkzMjgsIDUxLjE3Mzg5Ml0sIFsxMy40OTMwOTksIDUxLjE3MzI0N10sIFsxMy40OTMxMTQsIDUxLjE3MzEzNV0sIFsxMy40OTI5MDcsIDUxLjE3MzE2Ml0sIFsxMy40OTI1NDUsIDUxLjE3MzI4NV0sIFsxMy40OTIyNTksIDUxLjE3MzM1NF0sIFsxMy40OTE5MDcsIDUxLjE3MzM1NF0sIFsxMy40OTE2NTgsIDUxLjE3MzMwNV0sIFsxMy40OTEyNjQsIDUxLjE3MzA5MV0sIFsxMy40OTA1NzMsIDUxLjE3MjU1Nl0sIFsxMy40OTAyMSwgNTEuMTcyMTc2XSwgWzEzLjQ4OTc0OCwgNTEuMTcxNzhdLCBbMTMuNDg4OTcsIDUxLjE3MjM5Nl0sIFsxMy40ODgyMDgsIDUxLjE3MTk4N10sIFsxMy40ODc5MDcsIDUxLjE3MTc1NF0sIFsxMy40ODczNzIsIDUxLjE3MTQzOV0sIFsxMy40ODcxNywgNTEuMTcxMzQzXSwgWzEzLjQ4NjcxMywgNTEuMTcxMzgzXSwgWzEzLjQ4NjQwNywgNTEuMTcxNDczXSwgWzEzLjQ4NjQ3OCwgNTEuMTcxMDc1XSwgWzEzLjQ4NjU3MiwgNTEuMTcwODM4XSwgWzEzLjQ4Njk2NywgNTEuMTcwMzgxXSwgWzEzLjQ4NjQ2NywgNTEuMTcwMTk2XSwgWzEzLjQ4NDM4OSwgNTEuMTY5MzcxXSwgWzEzLjQ4MzQwOSwgNTEuMTY4NzM2XSwgWzEzLjQ4MzA4NywgNTEuMTY4NDk3XSwgWzEzLjQ4MTA2MywgNTEuMTY5MjY0XSwgWzEzLjQ3OTIxMywgNTEuMTY5OTkxXSwgWzEzLjQ3ODA3LCA1MS4xNzA0NTFdLCBbMTMuNDc3ODE0LCA1MS4xNzA1ODNdLCBbMTMuNDc3MDU1LCA1MS4xNzA4NDhdLCBbMTMuNDc2ODM1LCA1MS4xNzA5XSwgWzEzLjQ3NjYzOSwgNTEuMTcwOTE5XSwgWzEzLjQ3NjE2MywgNTEuMTcwODk4XSwgWzEzLjQ3MTMyNCwgNTEuMTcwMTQ2XSwgWzEzLjQ3MTI0MSwgNTEuMTcwMjJdLCBbMTMuNDcwMzMyLCA1MS4xNzA3M10sIFsxMy40NzAyMzEsIDUxLjE3MDc2OV0sIFsxMy40Njk2OSwgNTEuMTcwOTFdLCBbMTMuNDY5NDEsIDUxLjE3MTA1XSwgWzEzLjQ2ODk3NiwgNTEuMTcxMjE3XSwgWzEzLjQ2ODI4MSwgNTEuMTcxNDM3XSwgWzEzLjQ2NTEzOCwgNTEuMTcyMjYxXSwgWzEzLjQ2Mzc0NCwgNTEuMTcyNzA0XSwgWzEzLjQ2MjYyMiwgNTEuMTczMTU5XSwgWzEzLjQ2MjE0NiwgNTEuMTczMzc5XSwgWzEzLjQ2MTU3MSwgNTEuMTczNjc2XSwgWzEzLjQ2MDU3NywgNTEuMTc0Mjc0XSwgWzEzLjQ2MDIwMywgNTEuMTc0NTM4XSwgWzEzLjQ1NzgzMSwgNTEuMTc2Mjg5XSwgWzEzLjQ1NzUyNiwgNTEuMTc2NTQ3XSwgWzEzLjQ1NzEwNCwgNTEuMTc2OTddLCBbMTMuNDU1OTM0LCA1MS4xNzg0MjldLCBbMTMuNDU1MTU3LCA1MS4xNzkyMTZdLCBbMTMuNDU0NzI2LCA1MS4xNzk1OV0sIFsxMy40NTQxODQsIDUxLjE3OTk3OF0sIFsxMy40NTM0OTksIDUxLjE4MDM5M10sIFsxMy40NTEwOTIsIDUxLjE4MTk1XSwgWzEzLjQ1MDcwNiwgNTEuMTgyMTcxXSwgWzEzLjQ1MDM1NCwgNTEuMTgyMzQ5XSwgWzEzLjQ0ODc1OCwgNTEuMTgzMDMyXSwgWzEzLjQ0Nzk5NCwgNTEuMTgzMjk1XSwgWzEzLjQ0NzI5LCA1MS4xODM1XSwgWzEzLjQ0NjY1NSwgNTEuMTgzNjQ1XSwgWzEzLjQ0NTQxOSwgNTEuMTgzODU1XSwgWzEzLjQ0NDg1MywgNTEuMTg0MDI3XSwgWzEzLjQ0MjY1OSwgNTEuMTg0ODFdLCBbMTMuNDQxNjIxLCA1MS4xODUwNjNdLCBbMTMuNDQwODQ2LCA1MS4xODUyNzNdLCBbMTMuNDQwMzE0LCA1MS4xODU0NF0sIFsxMy40NDAwNTgsIDUxLjE4NTUzN10sIFsxMy40Mzg2MywgNTEuMTg2MjI4XSwgWzEzLjQzODIsIDUxLjE4NjQwOF0sIFsxMy40MzYzNDYsIDUxLjE4NzE1OV0sIFsxMy40MzU2NjQsIDUxLjE4NzQxOV0sIFsxMy40MzUyMDgsIDUxLjE4NzU2M10sIFsxMy40MzM4NjEsIDUxLjE4NzldLCBbMTMuNDMzNTg1LCA1MS4xODc5NF0sIFsxMy40MzIxMDcsIDUxLjE4ODAxOV0sIFsxMy40MzEyNDksIDUxLjE4ODExNV0sIFsxMy40MzAwMTQsIDUxLjE4ODMyXSwgWzEzLjQyOTU1NCwgNTEuMTg4NDE2XSwgWzEzLjQyNzgxNSwgNTEuMTg4ODc0XSwgWzEzLjQyNjI3MiwgNTEuMTg5MTIxXSwgWzEzLjQyNTkzLCA1MS4xODkyMDJdLCBbMTMuNDIzNzIxLCA1MS4xODk4OTFdLCBbMTMuNDIxODczLCA1MS4xOTA1NDldLCBbMTMuNDIxMDg2LCA1MS4xOTA4NTldLCBbMTMuNDIwNzUyLCA1MS4xOTEwMTVdLCBbMTMuNDE5MzQ2LCA1MS4xOTE3NzldLCBbMTMuNDE4Mjg0LCA1MS4xOTI0OTZdLCBbMTMuNDE3NTA3LCA1MS4xOTMxNjJdLCBbMTMuNDE2Mjg4LCA1MS4xOTQwNzFdLCBbMTMuNDE1NzczLCA1MS4xOTQ1NTVdLCBbMTMuNDE1MzgxLCA1MS4xOTQ4MDRdLCBbMTMuNDE1MTczLCA1MS4xOTQ5MDZdLCBbMTMuNDE0NDg4LCA1MS4xOTUxMzZdLCBbMTMuNDE0MTU3LCA1MS4xOTUyMTRdLCBbMTMuNDEzNDk1LCA1MS4xOTUyOTldLCBbMTMuNDEzMDI2LCA1MS4xOTU0MTVdLCBbMTMuNDEyNjA1LCA1MS4xOTU1NjFdLCBbMTMuNDExOTYxLCA1MS4xOTU4ODZdLCBbMTMuNDExMjg2LCA1MS4xOTYxNjJdLCBbMTMuNDA5ODA2LCA1MS4xOTY2MDVdLCBbMTMuNDA5MzIsIDUxLjE5Njg2OF0sIFsxMy40MDkwMjEsIDUxLjE5Njk1OV0sIFsxMy40MDg3NzIsIDUxLjE5Njk3XSwgWzEzLjQwODYyNiwgNTEuMTk2OTQ4XSwgWzEzLjQwNzY3MiwgNTEuMTk2NzI1XSwgWzEzLjQwNjU4MiwgNTEuMTk2Nl0sIFsxMy40MDYyNzMsIDUxLjE5NjU5M10sIFsxMy40MDU5NzMsIDUxLjE5NjY0N10sIFsxMy40MDQ5ODEsIDUxLjE5NjU4OF0sIFsxMy40MDQ2NzEsIDUxLjE5NjU5Ml0sIFsxMy40MDQzNywgNTEuMTk2NjI4XSwgWzEzLjQwMzI4MSwgNTEuMTk2OTA4XSwgWzEzLjQwMzEwOCwgNTEuMTk2OTE2XSwgWzEzLjQwMjkzNCwgNTEuMTk2OTAzXSwgWzEzLjQwMjQ3OSwgNTEuMTk2ODEzXSwgWzEzLjQwMTk4OCwgNTEuMTk2NzUyXSwgWzEzLjQwMTQ2NiwgNTEuMTk2NzQ2XSwgWzEzLjQwMTA0LCA1MS4xOTY3NzldLCBbMTMuNDAwNzk2LCA1MS4xOTY3NzVdLCBbMTMuNDAwNjE4LCA1MS4xOTY3NDRdLCBbMTMuMzk5MzI2LCA1MS4xOTYxN10sIFsxMy4zOTg1MzksIDUxLjE5NTkwNF0sIFsxMy4zOTc5MDMsIDUxLjE5NTc3Nl0sIFsxMy4zOTc1NzUsIDUxLjE5NTc1Ml0sIFsxMy4zOTczMjYsIDUxLjE5NTc2NF0sIFsxMy4zOTY0NjQsIDUxLjE5NTg1M10sIFsxMy4zOTU2NjMsIDUxLjE5NTkwMl0sIFsxMy4zOTU0NTgsIDUxLjE5NTkzNF0sIFsxMy4zOTUyMjMsIDUxLjE5NjAxOF0sIFsxMy4zOTUxMTgsIDUxLjE5NjExNl0sIFsxMy4zOTQ5NjQsIDUxLjE5NjQzOV0sIFsxMy4zOTQ4MTgsIDUxLjE5NjU4OF0sIFsxMy4zOTQ0MzIsIDUxLjE5Njg2M10sIFsxMy4zOTQyMjIsIDUxLjE5Njk4OF0sIFsxMy4zOTM3ODQsIDUxLjE5NzEzN10sIFsxMy4zOTMyNDQsIDUxLjE5NzI0OV0sIFsxMy4zOTI5OTcsIDUxLjE5NzI1MV0sIFsxMy4zOTE3NzgsIDUxLjE5NzEzMl0sIFsxMy4zOTE0NzEsIDUxLjE5NzA4OV0sIFsxMy4zOTEwMzUsIDUxLjE5NzA1OV0sIFsxMy4zOTA1NiwgNTEuMTk3MDQ3XSwgWzEzLjM5MDE0OCwgNTEuMTk3MDcyXSwgWzEzLjM4OTUzNiwgNTEuMTk3MTQzXSwgWzEzLjM4OTExMywgNTEuMTk3MjIxXSwgWzEzLjM4ODkyOSwgNTEuMTk3MjczXSwgWzEzLjM4ODUwNSwgNTEuMTk3NDcyXSwgWzEzLjM4ODA2OSwgNTEuMTk3NTkyXSwgWzEzLjM4NzcxNiwgNTEuMTk3NjI4XSwgWzEzLjM4NzU0NiwgNTEuMTk3NjY4XSwgWzEzLjM4NzA3NSwgNTEuMTk3ODY1XSwgWzEzLjM4NjY5MywgNTEuMTk4MDldLCBbMTMuMzg2MjY4LCA1MS4xOTgyNl0sIFsxMy4zODU3MiwgNTEuMTk4NDM0XSwgWzEzLjM4NDk2NCwgNTEuMTk4NjQ2XSwgWzEzLjM4NDM1OCwgNTEuMTk4NzE2XSwgWzEzLjM4Mzg0NywgNTEuMTk4NzA3XSwgWzEzLjM4MzQ0OSwgNTEuMTk4NjY0XSwgWzEzLjM4MTU1MywgNTEuMTk4MjU0XSwgWzEzLjM4MTE0NywgNTEuMTk4MTM5XSwgWzEzLjM3OTg5NiwgNTEuMTk3NjAyXSwgWzEzLjM3OTY0OCwgNTEuMTk3NTJdLCBbMTMuMzc4OSwgNTEuMTk3MzRdLCBbMTMuMzc4NjA1LCA1MS4xOTcyOTddLCBbMTMuMzc4MTk1LCA1MS4xOTcyOTFdLCBbMTMuMzc3NDkzLCA1MS4xOTczNzldLCBbMTMuMzc3MjEyLCA1MS4xOTc0MzldLCBbMTMuMzc1OTYxLCA1MS4xOTc4NDRdLCBbMTMuMzc1MTM3LCA1MS4xOTgwNTldLCBbMTMuMzc0NjgyLCA1MS4xOTgxMzVdLCBbMTMuMzc0MjM3LCA1MS4xOTgxMjhdLCBbMTMuMzcyODA4LCA1MS4xOTc5NTNdLCBbMTMuMzcyMTg0LCA1MS4xOTc4OTNdLCBbMTMuMzY4MjAzLCA1MS4xOTc3NzJdLCBbMTMuMzY1NjUsIDUxLjE5NzU5N10sIFsxMy4zNTkxNzMsIDUxLjE5NjczMl0sIFsxMy4zNTg0NDUsIDUxLjE5NjY5NV0sIFsxMy4zNTgwMzEsIDUxLjE5NjY5NV0sIFsxMy4zNTcyODgsIDUxLjE5NjcyMl0sIFsxMy4zNDA4NDksIDUxLjE5NzUwN10sIFsxMy4zNDA1NzksIDUxLjE5NzU1M10sIFsxMy4zMzAyMTIsIDUxLjE5OTk3Nl0sIFsxMy4zMjk2ODMsIDUxLjIwMDA3Nl0sIFsxMy4zMjc5ODMsIDUxLjIwMDE4OF0sIFsxMy4zMjc2OSwgNTEuMjAwMTgyXSwgWzEzLjMyNjI0NSwgNTEuMjAwMDk0XSwgWzEzLjMyNTk0NywgNTEuMjAwMDQ1XSwgWzEzLjMyMjIxNiwgNTEuMTk4ODE1XSwgWzEzLjMyMTY1MSwgNTEuMTk4NjEyXSwgWzEzLjMyMTMxOSwgNTEuMTk4NDA3XSwgWzEzLjMyMTA0OCwgNTEuMTk4MTk2XSwgWzEzLjMyMDg4OSwgNTEuMTk4MDE2XSwgWzEzLjMyMDE5NSwgNTEuMTk2OTVdLCBbMTMuMzIwMTAzLCA1MS4xOTY4NDRdLCBbMTMuMzE5OTY0LCA1MS4xOTY3MzNdLCBbMTMuMzE5ODA1LCA1MS4xOTY2Nl0sIFsxMy4zMTk2MzIsIDUxLjE5NjYyNF0sIFsxMy4zMTk0NTgsIDUxLjE5NjYxNV0sIFsxMy4zMTg5MjgsIDUxLjE5NjYzMl0sIFsxMy4zMTc1MTEsIDUxLjE5NjczMl0sIFsxMy4zMTYxNTYsIDUxLjE5Njg3M10sIFsxMy4zMTU2NTksIDUxLjE5Njg4OV0sIFsxMy4zMTM3NDcsIDUxLjE5NjkwOF0sIFsxMy4zMTI4MTcsIDUxLjE5Njg0NV0sIFsxMy4zMTIzOTUsIDUxLjE5Njc5Ml0sIFsxMy4zMTE3NTksIDUxLjE5Njc4NF0sIFsxMy4zMTEzMzcsIDUxLjE5NzAwMl0sIFsxMy4zMTEwOCwgNTEuMTk3MTY3XSwgWzEzLjMxMDUyNSwgNTEuMTk3MDA0XSwgWzEzLjMxMDA3NSwgNTEuMTk2ODQyXSwgWzEzLjMwOTQ4OSwgNTEuMTk3NTExXSwgWzEzLjMwODc1MSwgNTEuMTk3MDddLCBbMTMuMzA4NTQ1LCA1MS4xOTY5MzVdLCBbMTMuMzA3OTYyLCA1MS4xOTYzOTFdLCBbMTMuMzA3NjE1LCA1MS4xOTYxNl0sIFsxMy4zMDY4NCwgNTEuMTk1NzI4XSwgWzEzLjMwNTg4NCwgNTEuMTk0MzY5XSwgWzEzLjMwNTIyNywgNTEuMTkzNjIxXSwgWzEzLjMwNDg5NywgNTEuMTkzMDQ1XSwgWzEzLjMwNDcwMywgNTEuMTkyOTA2XSwgWzEzLjMwNDU3LCA1MS4xOTI4ODNdLCBbMTMuMzA0NSwgNTEuMTkyODM0XSwgWzEzLjMwMzg1NiwgNTEuMTkyODgzXSwgWzEzLjMwMzc1LCA1MS4xOTI4NzldLCBbMTMuMzAyODkyLCA1MS4xOTI5NjVdLCBbMTMuMzAyNzAyLCA1MS4xOTI5NjZdLCBbMTMuMzAyNTQ3LCA1MS4xOTI5MzhdLCBbMTMuMzAyNDEyLCA1MS4xOTI4OTJdLCBbMTMuMjk2NDg1LCA1MS4xODkyNzVdLCBbMTMuMjkyMjY1LCA1MS4xODU3MTNdLCBbMTMuMjkxNDQzLCA1MS4xODUxOTddLCBbMTMuMjg2MjgyLCA1MS4xODI0MjhdLCBbMTMuMjg1ODcyLCA1MS4xODIxOTJdLCBbMTMuMjg0NzE1LCA1MS4xODE2MjVdLCBbMTMuMjgzODYyLCA1MS4xODEyNThdLCBbMTMuMjgzMDgxLCA1MS4xODEwNjNdLCBbMTMuMjgyNTcyLCA1MS4xODEwMDJdLCBbMTMuMjc4MzY5LCA1MS4xODA2OF0sIFsxMy4yNzc4MzMsIDUxLjE4MDY2OV0sIFsxMy4yNzQxNTgsIDUxLjE4MDg4Ml0sIFsxMy4yNzM3NDMsIDUxLjE4MDg3NV0sIFsxMy4yNzA0MTEsIDUxLjE4MDUwNl0sIFsxMy4yNjkyNywgNTEuMTgwNDI1XSwgWzEzLjI2NzM3OCwgNTEuMTgwMzY1XSwgWzEzLjI2NjgxMSwgNTEuMTgwMzMyXSwgWzEzLjI2NDkzNywgNTEuMTgwMTI1XSwgWzEzLjI2NDUyNCwgNTEuMTgwMTEyXSwgWzEzLjI2NDAxMiwgNTEuMTgwMTE3XSwgWzEzLjI2MjY0MywgNTEuMTgwMTczXSwgWzEzLjI2MDU3NywgNTEuMTgwMjE2XSwgWzEzLjI1OTk3MywgNTEuMTgwMTk0XSwgWzEzLjI1NzIxNywgNTEuMTc5ODQ1XSwgWzEzLjI1NjY5NCwgNTEuMTc5NzQ2XSwgWzEzLjI1NjIyMywgNTEuMTc5NjE1XSwgWzEzLjI0ODE4MSwgNTEuMTc2NDYzXSwgWzEzLjI0NjAxMSwgNTEuMTc1NzY2XSwgWzEzLjI0NTYyMywgNTEuMTc1Njk0XSwgWzEzLjI0NTIyOCwgNTEuMTc1NjYyXSwgWzEzLjI0NDM5MiwgNTEuMTc1NTVdLCBbMTMuMjQ0MTAzLCA1MS4xNzU0NjZdLCBbMTMuMjQzOTQ4LCA1MS4xNzUzOThdLCBbMTMuMjQzMDY2LCA1MS4xNzQ4NjRdLCBbMTMuMjQyNjc1LCA1MS4xNzQ2ODVdLCBbMTMuMjQyMDExLCA1MS4xNzQ0OTFdLCBbMTMuMjQwODIxLCA1MS4xNzQyMjJdLCBbMTMuMjM4Njk3LCA1MS4xNzM1MDJdLCBbMTMuMjM4MjUyLCA1MS4xNzM0MDJdLCBbMTMuMjM3MjU5LCA1MS4xNzMyNDZdLCBbMTMuMjM2NDIsIDUxLjE3MzA3M10sIFsxMy4yMzYwNTgsIDUxLjE3Mjg5OF0sIFsxMy4yMzU0NDIsIDUxLjE3MjQ3NF0sIFsxMy4yMzQ0OTksIDUxLjE3MTg2MV0sIFsxMy4yMzI2MDQsIDUxLjE3MDE0Ml0sIFsxMy4yMzAzMjksIDUxLjE2ODM4OF0sIFsxMy4yMzAxNzksIDUxLjE2ODIzN10sIFsxMy4yMzAwNzgsIDUxLjE2ODA2N10sIFsxMy4yMjg5MDcsIDUxLjE2NTM4Ml0sIFsxMy4yMjg4NDIsIDUxLjE2NTI4XSwgWzEzLjIyODY2NywgNTEuMTY1MTA0XSwgWzEzLjIyODI2MywgNTEuMTY0Nzc4XSwgWzEzLjIyNzg2NiwgNTEuMTY0NTE0XSwgWzEzLjIyNjI3NSwgNTEuMTYzNTM5XSwgWzEzLjIyNTYxNywgNTEuMTYzMTYyXSwgWzEzLjIyMjQ4NywgNTEuMTYxNTM4XSwgWzEzLjIyMDUwMywgNTEuMTYwMjM1XSwgWzEzLjIyMDIyNCwgNTEuMTYwMDcxXSwgWzEzLjIyMDExLCA1MS4xNjAwMTZdLCBbMTMuMjE5OTc3LCA1MS4xNTk5NzddLCBbMTMuMjE5MjA1LCA1MS4xNTk4OTldLCBbMTMuMjE4NjcyLCA1MS4xNTk4MDhdLCBbMTMuMjE3OTg0LCA1MS4xNTk1OThdLCBbMTMuMjE2OTU5LCA1MS4xNTkxODFdLCBbMTMuMjE2ODAzLCA1MS4xNTkxNDhdLCBbMTMuMjE2NzA5LCA1MS4xNTkwNTNdLCBbMTMuMjE2MzkzLCA1MS4xNTg4NDddLCBbMTMuMjE0NDksIDUxLjE1NzM3OF0sIFsxMy4yMTM5MjksIDUxLjE1Njg5NV0sIFsxMy4yMTMzMjUsIDUxLjE1NjMzM10sIFsxMy4yMTMxMTUsIDUxLjE1NjEwNV0sIFsxMy4yMTI0ODYsIDUxLjE1NTI2M10sIFsxMy4yMTIwNCwgNTEuMTU0ODM1XSwgWzEzLjIwOTQ2OSwgNTEuMTUzMTAzXSwgWzEzLjIwODU0LCA1MS4xNTIzODRdLCBbMTMuMjA3NTY4LCA1MS4xNTE1NDNdLCBbMTMuMjA1Nzc2LCA1MS4xNDk5MDZdLCBbMTMuMjA1NTU2LCA1MS4xNDk3NDRdLCBbMTMuMjA1MjkxLCA1MS4xNDk2MDNdLCBbMTMuMjA0OTU0LCA1MS4xNDk0NzddLCBbMTMuMjA0NTYsIDUxLjE0OTM5M10sIFsxMy4yMDMxODksIDUxLjE0OTIxMl0sIFsxMy4xOTgzOTMsIDUxLjE0ODY1OF0sIFsxMy4xOTgwMywgNTEuMTQ4NjUxXSwgWzEzLjE5NzgyMiwgNTEuMTQ4NjY4XSwgWzEzLjE5NzI0NCwgNTEuMTQ4NzU3XSwgWzEzLjE5Njc0OCwgNTEuMTQ4NzkyXSwgWzEzLjE5NTQ2OSwgNTEuMTQ4ODA3XSwgWzEzLjE5NDkzMywgNTEuMTQ4NzZdLCBbMTMuMTk0NTcsIDUxLjE0ODY4MV0sIFsxMy4xOTQxNjUsIDUxLjE0ODU2OV0sIFsxMy4xOTA1MywgNTEuMTQ3NTEzXSwgWzEzLjE4OTk2NywgNTEuMTQ3MzI1XSwgWzEzLjE4OTY5OSwgNTEuMTQ3MjExXSwgWzEzLjE4OTM0NSwgNTEuMTQ3MDE3XSwgWzEzLjE4ODA0NSwgNTEuMTQ2MTkzXSwgWzEzLjE4NzU3MSwgNTEuMTQ1OTMxXSwgWzEzLjE4NzI2OSwgNTEuMTQ1Nzg3XSwgWzEzLjE4NjcwMywgNTEuMTQ1NTldLCBbMTMuMTg2MDQ3LCA1MS4xNDU0MzRdLCBbMTMuMTg0MTE1LCA1MS4xNDUwN10sIFsxMy4xODI3NDksIDUxLjE0NDgzM10sIFsxMy4xODIyMDMsIDUxLjE0NDc5MV0sIFsxMy4xODEyNzksIDUxLjE0NDY2N10sIFsxMy4xODExMzksIDUxLjE0NDY2MV0sIFsxMy4xNzg3ODYsIDUxLjE0NDcxM10sIFsxMy4xNzYwMDgsIDUxLjE0NDgwNl0sIFsxMy4xNzU1MzYsIDUxLjE0NDg1Nl0sIFsxMy4xNzUyNDgsIDUxLjE0NDkyNV0sIFsxMy4xNzQ1MjMsIDUxLjE0NTE0Nl0sIFsxMy4xNzQxNjgsIDUxLjE0NTIzMl0sIFsxMy4xNzM4NTQsIDUxLjE0NTI2NF0sIFsxMy4xNzM1NjUsIDUxLjE0NTI3XSwgWzEzLjE3MzIyMSwgNTEuMTQ1MjQ1XSwgWzEzLjE3MzA0MywgNTEuMTQ1MjE3XSwgWzEzLjE3Mjc0NywgNTEuMTQ1MTM5XSwgWzEzLjE3MjE2MywgNTEuMTQ0OTRdLCBbMTMuMTcwNTg4LCA1MS4xNDQzNDFdLCBbMTMuMTY5NDksIDUxLjE0Mzk0NF0sIFsxMy4xNjkzMTQsIDUxLjE0Mzg2N10sIFsxMy4xNjkyMzMsIDUxLjE0MzgxMV0sIFsxMy4xNjkwODgsIDUxLjE0MzU5XSwgWzEzLjE2OTAwNywgNTEuMTQzNTAyXSwgWzEzLjE2ODg4NywgNTEuMTQzNDQyXSwgWzEzLjE2Nzk1OSwgNTEuMTQzMTc2XSwgWzEzLjE2NzM0MiwgNTEuMTQyOTY2XSwgWzEzLjE2NTc1NiwgNTEuMTQyMjk3XSwgWzEzLjE2NTQzNSwgNTEuMTQyMTc5XSwgWzEzLjE2NTA2NiwgNTEuMTQyMDY2XSwgWzEzLjE2MzMxNiwgNTEuMTQxNjAzXSwgWzEzLjE1NjAzNSwgNTEuMTM5Njk5XSwgWzEzLjE1NTIzMSwgNTEuMTM5NTZdLCBbMTMuMTUzNzY5LCA1MS4xMzkzODJdLCBbMTMuMTUxNzA0LCA1MS4xMzkwNzJdLCBbMTMuMTQ5NjU5LCA1MS4xMzg4MTNdLCBbMTMuMTQ4NTUsIDUxLjEzODY1M10sIFsxMy4xNDgwOTcsIDUxLjEzODU3M10sIFsxMy4xNDc3NjEsIDUxLjEzODQ4N10sIFsxMy4xNDc0OTQsIDUxLjEzODM5N10sIFsxMy4xNDU3MzcsIDUxLjEzNzUzNl0sIFsxMy4xNDM5NzEsIDUxLjEzNjcyNV0sIFsxMy4xNDM0NjEsIDUxLjEzNjU1MV0sIFsxMy4xNDI5MDcsIDUxLjEzNjQxNl0sIFsxMy4xNDI0NzQsIDUxLjEzNjM2NF0sIFsxMy4xNDIxNjgsIDUxLjEzNjM2N10sIFsxMy4xNDEyNzcsIDUxLjEzNjQyNV0sIFsxMy4xNDA4MDUsIDUxLjEzNjQwOV0sIFsxMy4xNDA0NjksIDUxLjEzNjM2NV0sIFsxMy4xMzgxNDEsIDUxLjEzNTg4Ml0sIFsxMy4xMzcyNzUsIDUxLjEzNTc0Ml0sIFsxMy4xMzY5NzYsIDUxLjEzNTczOF0sIFsxMy4xMzYxNTUsIDUxLjEzNTgwN10sIFsxMy4xMzU5MTcsIDUxLjEzNTg3NV0sIFsxMy4xMzQ2MzIsIDUxLjEzNTM1Nl0sIFsxMy4xMzM5MzgsIDUxLjEzNTE3Nl0sIFsxMy4xMzM2MDEsIDUxLjEzNTA3M10sIFsxMy4xMzMzNjYsIDUxLjEzNDk1N10sIFsxMy4xMzMwNDcsIDUxLjEzNDZdLCBbMTMuMTMxODYyLCA1MS4xMzMxNDJdLCBbMTMuMTMxMjc4LCA1MS4xMzI0NzFdLCBbMTMuMTMxMDMyLCA1MS4xMzIyNzVdLCBbMTMuMTMwMzA2LCA1MS4xMzE4NjddLCBbMTMuMTMwMDcsIDUxLjEzMTY5XSwgWzEzLjEyOTkxOCwgNTEuMTMxNDQ4XSwgWzEzLjEyOTc2OCwgNTEuMTMwOTk2XSwgWzEzLjEyOTMxOCwgNTEuMTI5NDE2XSwgWzEzLjEyOTEzNiwgNTEuMTI4NDAyXSwgWzEzLjEyOTA1NywgNTEuMTI4Mjg2XSwgWzEzLjEyODY3NiwgNTEuMTI3ODY2XSwgWzEzLjEyODQ1LCA1MS4xMjc1NjRdLCBbMTMuMTI4NDA5LCA1MS4xMjczXSwgWzEzLjEyODQyNiwgNTEuMTI2MzJdLCBbMTMuMTI4NTg4LCA1MS4xMjQ3ODFdLCBbMTMuMTI4NTg2LCA1MS4xMjQ1MzVdLCBbMTMuMTI4NTQxLCA1MS4xMjQyOF0sIFsxMy4xMjg0MzgsIDUxLjEyNDA5Nl0sIFsxMy4xMjgyODcsIDUxLjEyMzk0MV0sIFsxMy4xMjgxOTYsIDUxLjEyMzg4XSwgWzEzLjEyODAwNCwgNTEuMTIzNzk0XSwgWzEzLjEyNzc5OCwgNTEuMTIzNzQ3XSwgWzEzLjEyNjkyMiwgNTEuMTIzNjQ2XSwgWzEzLjEyNjUzNSwgNTEuMTIzNjI5XSwgWzEzLjEyNjM0OCwgNTEuMTIzNjA3XSwgWzEzLjEyNTUwNiwgNTEuMTIzNjYzXSwgWzEzLjEyNTA5OSwgNTEuMTIzNjU5XSwgWzEzLjEyNTAxNCwgNTEuMTIzNzI3XSwgWzEzLjEyNDkyMSwgNTEuMTIzNzM4XSwgWzEzLjEyNDgyNywgNTEuMTIzNzEyXSwgWzEzLjEyNDc5NSwgNTEuMTIzNjg3XSwgWzEzLjEyNDc3NCwgNTEuMTIzNjI0XSwgWzEzLjEyNDc4OCwgNTEuMTIzNTkyXSwgWzEzLjEyNDE3OCwgNTEuMTIzNDAyXSwgWzEzLjEyNDAyOCwgNTEuMTIzMzQyXSwgWzEzLjEyNDIxMSwgNTEuMTIyNjk2XSwgWzEzLjEyNDI0LCA1MS4xMjIzMDNdLCBbMTMuMTI0MiwgNTEuMTIyMDcyXSwgWzEzLjEyNDE1MywgNTEuMTIxOTYzXSwgWzEzLjEyMzk3OCwgNTEuMTIxNjgzXSwgWzEzLjEyMzgzMiwgNTEuMTIxNTI3XSwgWzEzLjEyMzY3LCA1MS4xMjEzOTddLCBbMTMuMTIzNDU4LCA1MS4xMjEyN10sIFsxMy4xMjI5NzEsIDUxLjEyMTAzOF0sIFsxMy4xMjMxNjUsIDUxLjEyMDgyMV0sIFsxMy4xMjM0ODgsIDUxLjEyMDMwOV0sIFsxMy4xMjM4MjgsIDUxLjExOTI5OV0sIFsxMy4xMjE3NzksIDUxLjExOTA0Nl0sIFsxMy4xMTk2NjgsIDUxLjExODc2MV0sIFsxMy4xMTk0ODIsIDUxLjExODc1MV0sIFsxMy4xMTkzMzMsIDUxLjExODc2Ml0sIFsxMy4xMTg3NCwgNTEuMTE4ODUzXSwgWzEzLjExODM4MiwgNTEuMTE4MDFdLCBbMTMuMTE4MzA1LCA1MS4xMTc2NTRdLCBbMTMuMTE4MTc4LCA1MS4xMTcyNTZdLCBbMTMuMTE4MDkzLCA1MS4xMTcxNzldLCBbMTMuMTE4MDM2LCA1MS4xMTcxNTFdLCBbMTMuMTE3OTAzLCA1MS4xMTcxMjddLCBbMTMuMTE3NzYyLCA1MS4xMTcxNjJdLCBbMTMuMTE3Njk1LCA1MS4xMTcxOTVdLCBbMTMuMTE3NDQ2LCA1MS4xMTc0NTVdLCBbMTMuMTE3MzU3LCA1MS4xMTc1Ml0sIFsxMy4xMTcwMDYsIDUxLjExNzY2Ml0sIFsxMy4xMTY2MzksIDUxLjExNzc0Nl0sIFsxMy4xMTYzMTUsIDUxLjExNzc3M10sIFsxMy4xMTYwMTIsIDUxLjExNzc3Ml0sIFsxMy4xMTYwNDksIDUxLjExNzY0N10sIFsxMy4xMTYzMDIsIDUxLjExNzMzOF0sIFsxMy4xMTYzMjksIDUxLjExNzI1M11dLCAidHlwZSI6ICJMaW5lU3RyaW5nIn0sICJpZCI6ICIwIiwgInR5cGUiOiAiRmVhdHVyZSJ9XSwgInR5cGUiOiAiRmVhdHVyZUNvbGxlY3Rpb24ifSk7CiAgICAgICAgCjwvc2NyaXB0Pg== onload=\"this.contentDocument.open();this.contentDocument.write(atob(this.getAttribute('data-html')));this.contentDocument.close();\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
],
"text/plain": [
"<folium.folium.Map at 0x7f677799ecf8>"
]
},
"execution_count": 8,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"start=[13.90367,51.263607]\n",
"end=[13.11656,51.117263]\n",
"\n",
"m = folium.Map(location=latlon(start), zoom_start=11)\n",
"\n",
"route = requests.post(url=route_url, json={'profile':'car', 'points':[start,end], 'points_encoded':False}).json()\n",
"if 'message' in route: raise Exception(route[\"message\"])\n",
"plot_route(m, start, end, route[\"paths\"][0], \"route\", \"blue\")\n",
"\n",
"di = 200\n",
"maxSpeedJson = {'road_class': {'*': 110}}\n",
"speedFactorJson = {}\n",
"priorityJson = {'road_class': {'motorway': 0.8}}\n",
"route = requests.post(url=route_url, json={'profile':'car', 'points':[start,end], 'points_encoded':False, \n",
" 'distance_influence': di, 'speed_factor':speedFactorJson,'max_speed':maxSpeedJson,'priority': priorityJson}).json()\n",
"if 'message' in route: raise Exception(route[\"message\"])\n",
"plot_route(m, start, end, route[\"paths\"][0], \"other\", \"red\")\n",
"\n",
"m"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Block Area"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"route: distance 11km and time 16min\n",
"other: distance 14km and time 18min\n"
]
},
{
"data": {
"text/html": [
"<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><span style=\"color:#565656\">Make this Notebook Trusted to load map: File -> Trust Notebook</span><iframe src=\"about:blank\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" data-html=PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgCiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgTF9OT19UT1VDSCA9IGZhbHNlOwogICAgICAgICAgICBMX0RJU0FCTEVfM0QgPSBmYWxzZTsKICAgICAgICA8L3NjcmlwdD4KICAgIAogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjYuMC9kaXN0L2xlYWZsZXQuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0xLjEyLjQubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjYuMC9kaXN0L2xlYWZsZXQuY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vYm9vdHN0cmFwLzMuMi4wL2Nzcy9ib290c3RyYXAubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLXRoZW1lLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9mb250LWF3ZXNvbWUvNC42LjMvY3NzL2ZvbnQtYXdlc29tZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL0xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLzIuMC4yL2xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3Jhd2Nkbi5naXRoYWNrLmNvbS9weXRob24tdmlzdWFsaXphdGlvbi9mb2xpdW0vbWFzdGVyL2ZvbGl1bS90ZW1wbGF0ZXMvbGVhZmxldC5hd2Vzb21lLnJvdGF0ZS5jc3MiLz4KICAgIDxzdHlsZT5odG1sLCBib2R5IHt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7bWFyZ2luOiAwO3BhZGRpbmc6IDA7fTwvc3R5bGU+CiAgICA8c3R5bGU+I21hcCB7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7cmlnaHQ6MDtsZWZ0OjA7fTwvc3R5bGU+CiAgICAKICAgICAgICAgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwKICAgICAgICAgICAgICAgIGluaXRpYWwtc2NhbGU9MS4wLCBtYXhpbXVtLXNjYWxlPTEuMCwgdXNlci1zY2FsYWJsZT1ubyIgLz4KICAgICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAgICAgI21hcF9hNGJjODUxZmQ1ZGQ0YzI1YmQ4MWQyZmFlOTQ2NGY1ZiB7CiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgCjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvbGl1bS1tYXAiIGlkPSJtYXBfYTRiYzg1MWZkNWRkNGMyNWJkODFkMmZhZTk0NjRmNWYiID48L2Rpdj4KICAgICAgICAKPC9ib2R5Pgo8c2NyaXB0PiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFwX2E0YmM4NTFmZDVkZDRjMjViZDgxZDJmYWU5NDY0ZjVmID0gTC5tYXAoCiAgICAgICAgICAgICAgICAibWFwX2E0YmM4NTFmZDVkZDRjMjViZDgxZDJmYWU5NDY0ZjVmIiwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBjZW50ZXI6IFs1MS43MTE1MDIsIDE0LjM1ODQ0NF0sCiAgICAgICAgICAgICAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NywKICAgICAgICAgICAgICAgICAgICB6b29tOiAxMiwKICAgICAgICAgICAgICAgICAgICB6b29tQ29udHJvbDogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICBwcmVmZXJDYW52YXM6IGZhbHNlLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApOwoKICAgICAgICAgICAgCgogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciB0aWxlX2xheWVyX2I4ZDcwYjVhYjdkZDQ1ZTRiZTZhMmFhYzUyNDJlOGFmID0gTC50aWxlTGF5ZXIoCiAgICAgICAgICAgICAgICAiaHR0cHM6Ly97c30udGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmciLAogICAgICAgICAgICAgICAgeyJhdHRyaWJ1dGlvbiI6ICJEYXRhIGJ5IFx1MDAyNmNvcHk7IFx1MDAzY2EgaHJlZj1cImh0dHA6Ly9vcGVuc3RyZWV0bWFwLm9yZ1wiXHUwMDNlT3BlblN0cmVldE1hcFx1MDAzYy9hXHUwMDNlLCB1bmRlciBcdTAwM2NhIGhyZWY9XCJodHRwOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL2NvcHlyaWdodFwiXHUwMDNlT0RiTFx1MDAzYy9hXHUwMDNlLiIsICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwgIm1heE5hdGl2ZVpvb20iOiAxOCwgIm1heFpvb20iOiAxOCwgIm1pblpvb20iOiAwLCAibm9XcmFwIjogZmFsc2UsICJvcGFjaXR5IjogMSwgInN1YmRvbWFpbnMiOiAiYWJjIiwgInRtcyI6IGZhbHNlfQogICAgICAgICAgICApLmFkZFRvKG1hcF9hNGJjODUxZmQ1ZGQ0YzI1YmQ4MWQyZmFlOTQ2NGY1Zik7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl8zYmY4NTQ5MTM1ZjA0NTRmYTExNTZkYmYxYTUwMjZlOCA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzUxLjcxMTUwMiwgMTQuMzU4NDQ0XSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2E0YmM4NTFmZDVkZDRjMjViZDgxZDJmYWU5NDY0ZjVmKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl8zOTFmN2NkOTk5NmQ0MGE1OWEyYjU3MDU1NGJlNjljMyA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJncmVlbiIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyXzNiZjg1NDkxMzVmMDQ1NGZhMTE1NmRiZjFhNTAyNmU4LnNldEljb24oaWNvbl8zOTFmN2NkOTk5NmQ0MGE1OWEyYjU3MDU1NGJlNjljMyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfYWRlZWQ5YmYxOWY3NDk0NThjMTVkMjM2YmU0ZGYzNGIgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sXzc3MTc4MzEyZDY0MjQ0ZjJiMDI0NTVkMWQwYzJmOTZkID0gJChgPGRpdiBpZD0iaHRtbF83NzE3ODMxMmQ2NDI0NGYyYjAyNDU1ZDFkMGMyZjk2ZCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+c3RhcnQ8L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfYWRlZWQ5YmYxOWY3NDk0NThjMTVkMjM2YmU0ZGYzNGIuc2V0Q29udGVudChodG1sXzc3MTc4MzEyZDY0MjQ0ZjJiMDI0NTVkMWQwYzJmOTZkKTsKICAgICAgICAKCiAgICAgICAgbWFya2VyXzNiZjg1NDkxMzVmMDQ1NGZhMTE1NmRiZjFhNTAyNmU4LmJpbmRQb3B1cChwb3B1cF9hZGVlZDliZjE5Zjc0OTQ1OGMxNWQyMzZiZTRkZjM0YikKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl9iOWVhOTdlOTNiYjM0NzExYTYzNjA4MzIzOTFlY2MzMiA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzUxLjc5OTI3NCwgMTQuMzAyMTM5XSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2E0YmM4NTFmZDVkZDRjMjViZDgxZDJmYWU5NDY0ZjVmKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl84ZGQ1ZTkxYjEwOTQ0YjZmYTQxZDljZTlmM2FiZTNjYiA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJyZWQiLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl9iOWVhOTdlOTNiYjM0NzExYTYzNjA4MzIzOTFlY2MzMi5zZXRJY29uKGljb25fOGRkNWU5MWIxMDk0NGI2ZmE0MWQ5Y2U5ZjNhYmUzY2IpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwXzQ5ZGE0NTFhNjBkMDQ3YTE5MzY5NmM5ZjJjMjBhZjRmID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF9mOGU3NzMxNzZmZjU0NDMwYjMzMTcyMmM4OTc5YWE0OCA9ICQoYDxkaXYgaWQ9Imh0bWxfZjhlNzczMTc2ZmY1NDQzMGIzMzE3MjJjODk3OWFhNDgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPmVuZDwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF80OWRhNDUxYTYwZDA0N2ExOTM2OTZjOWYyYzIwYWY0Zi5zZXRDb250ZW50KGh0bWxfZjhlNzczMTc2ZmY1NDQzMGIzMzE3MjJjODk3OWFhNDgpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfYjllYTk3ZTkzYmIzNDcxMWE2MzYwODMyMzkxZWNjMzIuYmluZFBvcHVwKHBvcHVwXzQ5ZGE0NTFhNjBkMDQ3YTE5MzY5NmM5ZjJjMjBhZjRmKQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uXzU0ZDU4MjIxNjg3ZjQ0ZDhhYjkwOTE3YmZlZDM5MTA1X3N0eWxlcihmZWF0dXJlKSB7CiAgICAgICAgICAgIHN3aXRjaChmZWF0dXJlLmlkKSB7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIHJldHVybiB7ImNvbG9yIjogImJsdWUiLCAib3BhY2l0eSI6IDAuNSwgIndlaWdodCI6IDV9OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uXzU0ZDU4MjIxNjg3ZjQ0ZDhhYjkwOTE3YmZlZDM5MTA1X29uRWFjaEZlYXR1cmUoZmVhdHVyZSwgbGF5ZXIpIHsKICAgICAgICAgICAgbGF5ZXIub24oewogICAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAgICAgICBtYXBfYTRiYzg1MWZkNWRkNGMyNWJkODFkMmZhZTk0NjRmNWYuZml0Qm91bmRzKGUudGFyZ2V0LmdldEJvdW5kcygpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfTsKICAgICAgICB2YXIgZ2VvX2pzb25fNTRkNTgyMjE2ODdmNDRkOGFiOTA5MTdiZmVkMzkxMDUgPSBMLmdlb0pzb24obnVsbCwgewogICAgICAgICAgICAgICAgb25FYWNoRmVhdHVyZTogZ2VvX2pzb25fNTRkNTgyMjE2ODdmNDRkOGFiOTA5MTdiZmVkMzkxMDVfb25FYWNoRmVhdHVyZSwKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBzdHlsZTogZ2VvX2pzb25fNTRkNTgyMjE2ODdmNDRkOGFiOTA5MTdiZmVkMzkxMDVfc3R5bGVyLAogICAgICAgIH0pLmFkZFRvKG1hcF9hNGJjODUxZmQ1ZGQ0YzI1YmQ4MWQyZmFlOTQ2NGY1Zik7CgogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uXzU0ZDU4MjIxNjg3ZjQ0ZDhhYjkwOTE3YmZlZDM5MTA1X2FkZCAoZGF0YSkgewogICAgICAgICAgICBnZW9fanNvbl81NGQ1ODIyMTY4N2Y0NGQ4YWI5MDkxN2JmZWQzOTEwNS5hZGREYXRhKGRhdGEpOwogICAgICAgIH0KICAgICAgICAgICAgZ2VvX2pzb25fNTRkNTgyMjE2ODdmNDRkOGFiOTA5MTdiZmVkMzkxMDVfYWRkKHsiZmVhdHVyZXMiOiBbeyJnZW9tZXRyeSI6IHsiY29vcmRpbmF0ZXMiOiBbWzE0LjM1OTI2NiwgNTEuNzExMDE3XSwgWzE0LjM1OTEwOSwgNTEuNzEwOTE1XSwgWzE0LjM1ODI3OSwgNTEuNzEwNjNdLCBbMTQuMzU3OCwgNTEuNzEwNTc4XSwgWzE0LjM1NzU2NiwgNTEuNzEwNTQyXSwgWzE0LjM1NjI5MSwgNTEuNzEwMDgyXSwgWzE0LjM1NTIzOCwgNTEuNzExMTU1XSwgWzE0LjM1MjQzOSwgNTEuNzE0MTI4XSwgWzE0LjM0OTY0NiwgNTEuNzE3MjM5XSwgWzE0LjM0ODY3NSwgNTEuNzE4MjkxXSwgWzE0LjM0Nzk4NywgNTEuNzE5MDkxXSwgWzE0LjM0NjU2MiwgNTEuNzIwNjY2XSwgWzE0LjM0NDk5MiwgNTEuNzIyNTIyXSwgWzE0LjM0MzYxMywgNTEuNzI0NDFdLCBbMTQuMzQzMDU4LCA1MS43MjUyMzldLCBbMTQuMzQyNDM0LCA1MS43MjYzOTFdLCBbMTQuMzQxNTc5LCA1MS43Mjc4MTldLCBbMTQuMzQxMjIyLCA1MS43MjgzNjddLCBbMTQuMzQwNDE1LCA1MS43Mjk3OTddLCBbMTQuMzM5NjgxLCA1MS43MzEwNDFdLCBbMTQuMzM2MTEsIDUxLjczNjk4NV0sIFsxNC4zMzQ2ODcsIDUxLjczOTVdLCBbMTQuMzMzNjA2LCA1MS43NDEyNzhdLCBbMTQuMzMxNzk0LCA1MS43NDQzNDddLCBbMTQuMzMxNjU3LCA1MS43NDQ1MTNdLCBbMTQuMzMxNjkxLCA1MS43NDQ2NV0sIFsxNC4zMzE0NDYsIDUxLjc0NTM1N10sIFsxNC4zMzE1MTgsIDUxLjc0NTkzM10sIFsxNC4zMzE2OTEsIDUxLjc0NjQ4NF0sIFsxNC4zMzIyODEsIDUxLjc0ODEzOV0sIFsxNC4zMzIzOSwgNTEuNzQ4MzddLCBbMTQuMzMyNTQ0LCA1MS43NDg2MDZdLCBbMTQuMzMyNjUxLCA1MS43NDg4NTJdLCBbMTQuMzMzLCA1MS43NTAwNF0sIFsxNC4zMzMwMzYsIDUxLjc1MDQyM10sIFsxNC4zMzMwMiwgNTEuNzUwNjIzXSwgWzE0LjMzMzEwNSwgNTEuNzUxMDZdLCBbMTQuMzMzMzU1LCA1MS43NTMxNDRdLCBbMTQuMzMzMzQ3LCA1MS43NTQwNDZdLCBbMTQuMzMzMjY4LCA1MS43NTQ1MDFdLCBbMTQuMzMzMDAxLCA1MS43NTUzMzVdLCBbMTQuMzMyOTgsIDUxLjc1NjA4Nl0sIFsxNC4zMzMwODcsIDUxLjc1NjM0Nl0sIFsxNC4zMzMyMDUsIDUxLjc1NjU1NV0sIFsxNC4zMzMyODcsIDUxLjc1Njc3Ml0sIFsxNC4zMzMzMDQsIDUxLjc1NzE0MV0sIFsxNC4zMzMzOTIsIDUxLjc1NzM2MV0sIFsxNC4zMzA1NjgsIDUxLjc1NzI2NV0sIFsxNC4zMjk4ODgsIDUxLjc1NzE2OF0sIFsxNC4zMjk2NDQsIDUxLjc1NzEwNF0sIFsxNC4zMjgwOTIsIDUxLjc1NzAyMV0sIFsxNC4zMjc3NjksIDUxLjc1OTc5OF0sIFsxNC4zMjc3NTQsIDUxLjc2MDQ0Nl0sIFsxNC4zMjc1ODcsIDUxLjc2MTQ4XSwgWzE0LjMyNzU4NiwgNTEuNzYxNjQ5XSwgWzE0LjMyNzYzNSwgNTEuNzYxODddLCBbMTQuMzI3NDcxLCA1MS43NjM4MjRdLCBbMTQuMzI4MDMyLCA1MS43NjU1NDldLCBbMTQuMzI4MjgsIDUxLjc2NjI0M10sIFsxNC4zMjg0MDMsIDUxLjc2NjQ2Ml0sIFsxNC4zMjg1OTcsIDUxLjc2NjkwN10sIFsxNC4zMjg2NTQsIDUxLjc2NzMxOV0sIFsxNC4zMjkwNTksIDUxLjc2ODY1Ml0sIFsxNC4zMjkxNzIsIDUxLjc2OTExXSwgWzE0LjMyOTI1LCA1MS43Njk1ODddLCBbMTQuMzI5MjksIDUxLjc3MDA0NV0sIFsxNC4zMjkyNDQsIDUxLjc3MDIzOV0sIFsxNC4zMjkxOTIsIDUxLjc3MDM0XSwgWzE0LjMyODYxNiwgNTEuNzcxMDU4XSwgWzE0LjMyODE4NiwgNTEuNzcxNDc2XSwgWzE0LjMyNzk1MSwgNTEuNzcxNjgxXSwgWzE0LjMyNzYxNCwgNTEuNzcyMDI3XSwgWzE0LjMyNjczOSwgNTEuNzcyNzkxXSwgWzE0LjMyNDQ3LCA1MS43NzQ2NzFdLCBbMTQuMzIzODkzLCA1MS43NzU1MzRdLCBbMTQuMzIzNDUyLCA1MS43NzYwNDhdLCBbMTQuMzIyNzQ2LCA1MS43NzY3ODJdLCBbMTQuMzIyMDAxLCA1MS43Nzc0MjhdLCBbMTQuMzIxMDMxLCA1MS43NzgxMTRdLCBbMTQuMzE5Nzc0LCA1MS43NzkwNThdLCBbMTQuMzE3NDQ2LCA1MS43ODA4OTJdLCBbMTQuMzE2Njg1LCA1MS43ODE1MjRdLCBbMTQuMzE0MTgyLCA1MS43ODM3MjRdLCBbMTQuMzExOTQ3LCA1MS43ODU4MDNdLCBbMTQuMzEwMjE5LCA1MS43ODczMzZdLCBbMTQuMzA4MDUxLCA1MS43ODkzMTNdLCBbMTQuMzA3NTE0LCA1MS43ODk5MzJdLCBbMTQuMzA1ODE3LCA1MS43OTIxMzZdLCBbMTQuMzA1MzIsIDUxLjc5MjczNF0sIFsxNC4zMDUwMjcsIDUxLjc5MzAzMl0sIFsxNC4zMDQ0NzgsIDUxLjc5MzQ2Ml0sIFsxNC4zMDQzNDQsIDUxLjc5MzYwOF0sIFsxNC4zMDQyMjgsIDUxLjc5MzgyNF0sIFsxNC4zMDM3MjgsIDUxLjc5NjY3Ml0sIFsxNC4zMDM2MTgsIDUxLjc5NzUyMl0sIFsxNC4zMDM2NTQsIDUxLjc5Nzg1OF0sIFsxNC4zMDE2MzMsIDUxLjc5NzgxOF0sIFsxNC4zMDExNDgsIDUxLjc5OTEzMV1dLCAidHlwZSI6ICJMaW5lU3RyaW5nIn0sICJpZCI6ICIwIiwgInR5cGUiOiAiRmVhdHVyZSJ9XSwgInR5cGUiOiAiRmVhdHVyZUNvbGxlY3Rpb24ifSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl80NjcwMmJmN2U2YmU0MDg5YjRlOTRmNWM4NmZlNDg1YSA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzUxLjcxMTUwMiwgMTQuMzU4NDQ0XSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2E0YmM4NTFmZDVkZDRjMjViZDgxZDJmYWU5NDY0ZjVmKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl9jMmFlOTNlMmNhZTc0YTkzYmViNWIzZWNjM2Y1ZDBkYiA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJncmVlbiIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyXzQ2NzAyYmY3ZTZiZTQwODliNGU5NGY1Yzg2ZmU0ODVhLnNldEljb24oaWNvbl9jMmFlOTNlMmNhZTc0YTkzYmViNWIzZWNjM2Y1ZDBkYik7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfZGM1MTY5OWIxZmIyNDgxOWJiNDYxZTI2ZjQ2YzE5NTEgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sXzYwMWRjMzk5MGVlMjRhZmRiZTU5ZmNmZjM0ZTQyZDExID0gJChgPGRpdiBpZD0iaHRtbF82MDFkYzM5OTBlZTI0YWZkYmU1OWZjZmYzNGU0MmQxMSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+c3RhcnQ8L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfZGM1MTY5OWIxZmIyNDgxOWJiNDYxZTI2ZjQ2YzE5NTEuc2V0Q29udGVudChodG1sXzYwMWRjMzk5MGVlMjRhZmRiZTU5ZmNmZjM0ZTQyZDExKTsKICAgICAgICAKCiAgICAgICAgbWFya2VyXzQ2NzAyYmY3ZTZiZTQwODliNGU5NGY1Yzg2ZmU0ODVhLmJpbmRQb3B1cChwb3B1cF9kYzUxNjk5YjFmYjI0ODE5YmI0NjFlMjZmNDZjMTk1MSkKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl80ZWEyM2U4OTk4NDg0YjJjYmM2MzllZTVhMzYwOWMzMSA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzUxLjc5OTI3NCwgMTQuMzAyMTM5XSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2E0YmM4NTFmZDVkZDRjMjViZDgxZDJmYWU5NDY0ZjVmKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl9mY2I4YThkNzY3NmE0NTU5OTdjYmZiNjNjOWUzMTc0YyA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJyZWQiLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl80ZWEyM2U4OTk4NDg0YjJjYmM2MzllZTVhMzYwOWMzMS5zZXRJY29uKGljb25fZmNiOGE4ZDc2NzZhNDU1OTk3Y2JmYjYzYzllMzE3NGMpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwX2FjYjgzNmJlNjA5MDQ2YTZiNGE4NjUxMmIzNjVhMDhkID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF9hZDdmMDZjOWZkN2M0ZDE0OTk2OWYxYWRmY2M5MjJhOCA9ICQoYDxkaXYgaWQ9Imh0bWxfYWQ3ZjA2YzlmZDdjNGQxNDk5NjlmMWFkZmNjOTIyYTgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPmVuZDwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF9hY2I4MzZiZTYwOTA0NmE2YjRhODY1MTJiMzY1YTA4ZC5zZXRDb250ZW50KGh0bWxfYWQ3ZjA2YzlmZDdjNGQxNDk5NjlmMWFkZmNjOTIyYTgpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfNGVhMjNlODk5ODQ4NGIyY2JjNjM5ZWU1YTM2MDljMzEuYmluZFBvcHVwKHBvcHVwX2FjYjgzNmJlNjA5MDQ2YTZiNGE4NjUxMmIzNjVhMDhkKQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uXzAyMjBjZjNkYjQ2YTQxZGZiNWY2NWFmMzNmYzQ0ZTAwX3N0eWxlcihmZWF0dXJlKSB7CiAgICAgICAgICAgIHN3aXRjaChmZWF0dXJlLmlkKSB7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIHJldHVybiB7ImNvbG9yIjogInJlZCIsICJvcGFjaXR5IjogMC41LCAid2VpZ2h0IjogNX07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgZnVuY3Rpb24gZ2VvX2pzb25fMDIyMGNmM2RiNDZhNDFkZmI1ZjY1YWYzM2ZjNDRlMDBfb25FYWNoRmVhdHVyZShmZWF0dXJlLCBsYXllcikgewogICAgICAgICAgICBsYXllci5vbih7CiAgICAgICAgICAgICAgICBjbGljazogZnVuY3Rpb24oZSkgewogICAgICAgICAgICAgICAgICAgIG1hcF9hNGJjODUxZmQ1ZGQ0YzI1YmQ4MWQyZmFlOTQ2NGY1Zi5maXRCb3VuZHMoZS50YXJnZXQuZ2V0Qm91bmRzKCkpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9KTsKICAgICAgICB9OwogICAgICAgIHZhciBnZW9fanNvbl8wMjIwY2YzZGI0NmE0MWRmYjVmNjVhZjMzZmM0NGUwMCA9IEwuZ2VvSnNvbihudWxsLCB7CiAgICAgICAgICAgICAgICBvbkVhY2hGZWF0dXJlOiBnZW9fanNvbl8wMjIwY2YzZGI0NmE0MWRmYjVmNjVhZjMzZmM0NGUwMF9vbkVhY2hGZWF0dXJlLAogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHN0eWxlOiBnZW9fanNvbl8wMjIwY2YzZGI0NmE0MWRmYjVmNjVhZjMzZmM0NGUwMF9zdHlsZXIsCiAgICAgICAgfSkuYWRkVG8obWFwX2E0YmM4NTFmZDVkZDRjMjViZDgxZDJmYWU5NDY0ZjVmKTsKCiAgICAgICAgZnVuY3Rpb24gZ2VvX2pzb25fMDIyMGNmM2RiNDZhNDFkZmI1ZjY1YWYzM2ZjNDRlMDBfYWRkIChkYXRhKSB7CiAgICAgICAgICAgIGdlb19qc29uXzAyMjBjZjNkYjQ2YTQxZGZiNWY2NWFmMzNmYzQ0ZTAwLmFkZERhdGEoZGF0YSk7CiAgICAgICAgfQogICAgICAgICAgICBnZW9fanNvbl8wMjIwY2YzZGI0NmE0MWRmYjVmNjVhZjMzZmM0NGUwMF9hZGQoeyJmZWF0dXJlcyI6IFt7Imdlb21ldHJ5IjogeyJjb29yZGluYXRlcyI6IFtbMTQuMzU5MjY2LCA1MS43MTEwMTddLCBbMTQuMzU5MTA5LCA1MS43MTA5MTVdLCBbMTQuMzU4Mjc5LCA1MS43MTA2M10sIFsxNC4zNTc4LCA1MS43MTA1NzhdLCBbMTQuMzU3NTY2LCA1MS43MTA1NDJdLCBbMTQuMzU2MjkxLCA1MS43MTAwODJdLCBbMTQuMzU1MjM4LCA1MS43MTExNTVdLCBbMTQuMzUyNDM5LCA1MS43MTQxMjhdLCBbMTQuMzQ5NjQ2LCA1MS43MTcyMzldLCBbMTQuMzQ4Njc1LCA1MS43MTgyOTFdLCBbMTQuMzQ3OTg3LCA1MS43MTkwOTFdLCBbMTQuMzQ2NTYyLCA1MS43MjA2NjZdLCBbMTQuMzQ0OTkyLCA1MS43MjI1MjJdLCBbMTQuMzQzNjEzLCA1MS43MjQ0MV0sIFsxNC4zNDMwNTgsIDUxLjcyNTIzOV0sIFsxNC4zNDI0MzQsIDUxLjcyNjM5MV0sIFsxNC4zNDE1NzksIDUxLjcyNzgxOV0sIFsxNC4zNDEyMjIsIDUxLjcyODM2N10sIFsxNC4zNDA0MTUsIDUxLjcyOTc5N10sIFsxNC4zMzk2ODEsIDUxLjczMTA0MV0sIFsxNC4zMzYxMSwgNTEuNzM2OTg1XSwgWzE0LjMzNDY4NywgNTEuNzM5NV0sIFsxNC4zMzM2MDYsIDUxLjc0MTI3OF0sIFsxNC4zMzE3OTQsIDUxLjc0NDM0N10sIFsxNC4zMzE2NTcsIDUxLjc0NDUxM10sIFsxNC4zMzE2OTEsIDUxLjc0NDY1XSwgWzE0LjMzMTQ0NiwgNTEuNzQ1MzU3XSwgWzE0LjMzMTUxOCwgNTEuNzQ1OTMzXSwgWzE0LjMzMTY5MSwgNTEuNzQ2NDg0XSwgWzE0LjMzMjI4MSwgNTEuNzQ4MTM5XSwgWzE0LjMzMjM5LCA1MS43NDgzN10sIFsxNC4zMzI1NDQsIDUxLjc0ODYwNl0sIFsxNC4zMzI2NTEsIDUxLjc0ODg1Ml0sIFsxNC4zMzMyNDQsIDUxLjc0ODgxNV0sIFsxNC4zMzQ0ODksIDUxLjc0ODc4OF0sIFsxNC4zMzU3MzUsIDUxLjc0ODgwM10sIFsxNC4zMzY0NDYsIDUxLjc0ODg0N10sIFsxNC4zMzc1MjcsIDUxLjc0ODk0MV0sIFsxNC4zMzg1NCwgNTEuNzQ5MDYyXSwgWzE0LjMzOTE3NSwgNTEuNzQ5MTY1XSwgWzE0LjM0MDkzMywgNTEuNzQ5NDk3XSwgWzE0LjM0MTU3NCwgNTEuNzQ5NTk1XSwgWzE0LjM0NTc2OSwgNTEuNzUwNDI3XSwgWzE0LjM0Njk0OSwgNTEuNzUwNjc5XSwgWzE0LjM0ODU4MywgNTEuNzUxMTE2XSwgWzE0LjM0OTY3NSwgNTEuNzUxNDg1XSwgWzE0LjM1MDIyNSwgNTEuNzUxNzAyXSwgWzE0LjM1MTczNCwgNTEuNzUyMzgxXSwgWzE0LjM1NDM1NCwgNTEuNzUzOTQ1XSwgWzE0LjM1NjkxMSwgNTEuNzU1NDM5XSwgWzE0LjM1NzQ3LCA1MS43NTU3OThdLCBbMTQuMzU3Nzg3LCA1MS43NTYwMzddLCBbMTQuMzU4MSwgNTEuNzU2MzM0XSwgWzE0LjM1ODM1MiwgNTEuNzU2NjU1XSwgWzE0LjM1ODU3MSwgNTEuNzU3MDI0XSwgWzE0LjM1ODc0OSwgNTEuNzU3NTU4XSwgWzE0LjM1ODc3NiwgNTEuNzU3ODEyXSwgWzE0LjM1ODgxLCA1MS43NjAyODddLCBbMTQuMzU4OTgyLCA1MS43NjIxMDRdLCBbMTQuMzU4OTQzLCA1MS43NjI3NzVdLCBbMTQuMzU4NzE2LCA1MS43NjM5NTVdLCBbMTQuMzU4NjU4LCA1MS43NjQzOThdLCBbMTQuMzU4NTE2LCA1MS43NjY4ODZdLCBbMTQuMzU4MzQ1LCA1MS43Njc0MTZdLCBbMTQuMzU4MjE5LCA1MS43Njc2NDFdLCBbMTQuMzU3NzUzLCA1MS43NjgzMTVdLCBbMTQuMzU3ODAxLCA1MS43NjgzNjVdLCBbMTQuMzU3ODI0LCA1MS43Njg0MjldLCBbMTQuMzU3ODA4LCA1MS43Njg1MDddLCBbMTQuMzU3NzY2LCA1MS43Njg1NTldLCBbMTQuMzU3NjI3LCA1MS43Njg2M10sIFsxNC4zNTc0ODIsIDUxLjc2ODY0OF0sIFsxNC4zNTczNzIsIDUxLjc2ODYzM10sIFsxNC4zNTcyNjksIDUxLjc2ODU5NF0sIFsxNC4zNTcxMTMsIDUxLjc2ODYwM10sIFsxNC4zNTYxNzEsIDUxLjc2ODg2OF0sIFsxNC4zNTU4NjMsIDUxLjc2ODkzOV0sIFsxNC4zNTE0NjYsIDUxLjc3MDIxM10sIFsxNC4zNTAyNjUsIDUxLjc3MDQ3XSwgWzE0LjM0OTU1MiwgNTEuNzcwNThdLCBbMTQuMzQ2NjI4LCA1MS43NzA4NjNdLCBbMTQuMzQ0MDI4LCA1MS43NzExMzRdLCBbMTQuMzM4NDE1LCA1MS43NzE2NjNdLCBbMTQuMzM3MzcxLCA1MS43NzE3MDRdLCBbMTQuMzMwMTY4LCA1MS43NzE4NzldLCBbMTQuMzI4ODY1LCA1MS43NzE5XSwgWzE0LjMyNzczNywgNTEuNzcxODk4XSwgWzE0LjMyNzYxNCwgNTEuNzcyMDI3XSwgWzE0LjMyNjczOSwgNTEuNzcyNzkxXSwgWzE0LjMyNDQ3LCA1MS43NzQ2NzFdLCBbMTQuMzIzODkzLCA1MS43NzU1MzRdLCBbMTQuMzIzNDUyLCA1MS43NzYwNDhdLCBbMTQuMzIyNzQ2LCA1MS43NzY3ODJdLCBbMTQuMzIyMDAxLCA1MS43Nzc0MjhdLCBbMTQuMzIxMDMxLCA1MS43NzgxMTRdLCBbMTQuMzE5Nzc0LCA1MS43NzkwNThdLCBbMTQuMzE3NDQ2LCA1MS43ODA4OTJdLCBbMTQuMzE2Njg1LCA1MS43ODE1MjRdLCBbMTQuMzE0MTgyLCA1MS43ODM3MjRdLCBbMTQuMzExOTQ3LCA1MS43ODU4MDNdLCBbMTQuMzEwMjE5LCA1MS43ODczMzZdLCBbMTQuMzA4MDUxLCA1MS43ODkzMTNdLCBbMTQuMzA3NTE0LCA1MS43ODk5MzJdLCBbMTQuMzA1ODE3LCA1MS43OTIxMzZdLCBbMTQuMzA1MzIsIDUxLjc5MjczNF0sIFsxNC4zMDUwMjcsIDUxLjc5MzAzMl0sIFsxNC4zMDQ0NzgsIDUxLjc5MzQ2Ml0sIFsxNC4zMDQzNDQsIDUxLjc5MzYwOF0sIFsxNC4zMDQyMjgsIDUxLjc5MzgyNF0sIFsxNC4zMDM3MjgsIDUxLjc5NjY3Ml0sIFsxNC4zMDM2MTgsIDUxLjc5NzUyMl0sIFsxNC4zMDM2NTQsIDUxLjc5Nzg1OF0sIFsxNC4zMDE2MzMsIDUxLjc5NzgxOF0sIFsxNC4zMDExNDgsIDUxLjc5OTEzMV1dLCAidHlwZSI6ICJMaW5lU3RyaW5nIn0sICJpZCI6ICIwIiwgInR5cGUiOiAiRmVhdHVyZSJ9XSwgInR5cGUiOiAiRmVhdHVyZUNvbGxlY3Rpb24ifSk7CiAgICAgICAgCiAgICAKICAgICAgICBmdW5jdGlvbiBnZW9fanNvbl83ZWFiMTc0OTU4ZGU0YTY3YTFlNmMzYTU1ZTIyNDM1Nl9vbkVhY2hGZWF0dXJlKGZlYXR1cmUsIGxheWVyKSB7CiAgICAgICAgICAgIGxheWVyLm9uKHsKICAgICAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICAgICAgbWFwX2E0YmM4NTFmZDVkZDRjMjViZDgxZDJmYWU5NDY0ZjVmLmZpdEJvdW5kcyhlLnRhcmdldC5nZXRCb3VuZHMoKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH07CiAgICAgICAgdmFyIGdlb19qc29uXzdlYWIxNzQ5NThkZTRhNjdhMWU2YzNhNTVlMjI0MzU2ID0gTC5nZW9Kc29uKG51bGwsIHsKICAgICAgICAgICAgICAgIG9uRWFjaEZlYXR1cmU6IGdlb19qc29uXzdlYWIxNzQ5NThkZTRhNjdhMWU2YzNhNTVlMjI0MzU2X29uRWFjaEZlYXR1cmUsCiAgICAgICAgICAgIAogICAgICAgIH0pLmFkZFRvKG1hcF9hNGJjODUxZmQ1ZGQ0YzI1YmQ4MWQyZmFlOTQ2NGY1Zik7CgogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uXzdlYWIxNzQ5NThkZTRhNjdhMWU2YzNhNTVlMjI0MzU2X2FkZCAoZGF0YSkgewogICAgICAgICAgICBnZW9fanNvbl83ZWFiMTc0OTU4ZGU0YTY3YTFlNmMzYTU1ZTIyNDM1Ni5hZGREYXRhKGRhdGEpOwogICAgICAgIH0KICAgICAgICAgICAgZ2VvX2pzb25fN2VhYjE3NDk1OGRlNGE2N2ExZTZjM2E1NWUyMjQzNTZfYWRkKHsiZ2VvbWV0cnkiOiB7ImNvb3JkaW5hdGVzIjogW1tbMTQuMzEsIDUxLjc1XSwgWzE0LjM0LCA1MS43NV0sIFsxNC4zNCwgNTEuNzddLCBbMTQuMzEsIDUxLjc3XSwgWzE0LjMxLCA1MS43NV1dXSwgInR5cGUiOiAiUG9seWdvbiJ9LCAicHJvcGVydGllcyI6IHt9LCAidHlwZSI6ICJGZWF0dXJlIn0pOwogICAgICAgIAo8L3NjcmlwdD4= onload=\"this.contentDocument.open();this.contentDocument.write(atob(this.getAttribute('data-html')));this.contentDocument.close();\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
],
"text/plain": [
"<folium.folium.Map at 0x7f6777949a20>"
]
},
"execution_count": 9,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"start=[14.358444,51.711502]\n",
"end=[14.302139,51.799274]\n",
"\n",
"m = folium.Map(location=latlon(start), zoom_start=12)\n",
"\n",
"route = requests.post(url=route_url, json={'profile':'car', 'points':[start,end], 'points_encoded':False}).json()\n",
"if 'message' in route: raise Exception(route[\"message\"])\n",
"plot_route(m, start, end, route[\"paths\"][0], \"route\", \"blue\")\n",
"\n",
"area = { \"type\": \"Feature\", \"properties\": {}, \n",
" \"geometry\": { \n",
" \"type\": \"Polygon\", \n",
" \"coordinates\": [[[14.31, 51.75], [14.34,51.75], [14.34,51.77], [14.31,51.77], [14.31,51.75]]]\n",
" }}\n",
"priorityJson = {'area_cottbus': 0}\n",
"route = requests.post(url=route_url, json={'profile':'car', 'points':[start,end], 'points_encoded':False, \n",
" 'priority': priorityJson, 'areas': {'cottbus': area}}).json()\n",
"if 'message' in route: raise Exception(route[\"message\"])\n",
"plot_route(m, start, end, route[\"paths\"][0], \"other\", \"red\")\n",
"\n",
"folium.GeoJson(area, name='blocked area').add_to(m)\n",
"\n",
"m"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Truck\n",
"\n",
"## Exclude ferries and tracks. And avoid smaller roads like residential and tertiary."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"route: distance 4km and time 8min\n",
"other: distance 22km and time 19min\n"
]
},
{
"data": {
"text/html": [
"<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><span style=\"color:#565656\">Make this Notebook Trusted to load map: File -> Trust Notebook</span><iframe src=\"about:blank\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" data-html=PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgCiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgTF9OT19UT1VDSCA9IGZhbHNlOwogICAgICAgICAgICBMX0RJU0FCTEVfM0QgPSBmYWxzZTsKICAgICAgICA8L3NjcmlwdD4KICAgIAogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjYuMC9kaXN0L2xlYWZsZXQuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0xLjEyLjQubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjYuMC9kaXN0L2xlYWZsZXQuY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vYm9vdHN0cmFwLzMuMi4wL2Nzcy9ib290c3RyYXAubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLXRoZW1lLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9mb250LWF3ZXNvbWUvNC42LjMvY3NzL2ZvbnQtYXdlc29tZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL0xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLzIuMC4yL2xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3Jhd2Nkbi5naXRoYWNrLmNvbS9weXRob24tdmlzdWFsaXphdGlvbi9mb2xpdW0vbWFzdGVyL2ZvbGl1bS90ZW1wbGF0ZXMvbGVhZmxldC5hd2Vzb21lLnJvdGF0ZS5jc3MiLz4KICAgIDxzdHlsZT5odG1sLCBib2R5IHt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7bWFyZ2luOiAwO3BhZGRpbmc6IDA7fTwvc3R5bGU+CiAgICA8c3R5bGU+I21hcCB7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7cmlnaHQ6MDtsZWZ0OjA7fTwvc3R5bGU+CiAgICAKICAgICAgICAgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwKICAgICAgICAgICAgICAgIGluaXRpYWwtc2NhbGU9MS4wLCBtYXhpbXVtLXNjYWxlPTEuMCwgdXNlci1zY2FsYWJsZT1ubyIgLz4KICAgICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAgICAgI21hcF8wMTBmYWEwNzU0OWM0MDY3YWUzYjM4MzllZmVkOTZjNiB7CiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgCjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvbGl1bS1tYXAiIGlkPSJtYXBfMDEwZmFhMDc1NDljNDA2N2FlM2IzODM5ZWZlZDk2YzYiID48L2Rpdj4KICAgICAgICAKPC9ib2R5Pgo8c2NyaXB0PiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFwXzAxMGZhYTA3NTQ5YzQwNjdhZTNiMzgzOWVmZWQ5NmM2ID0gTC5tYXAoCiAgICAgICAgICAgICAgICAibWFwXzAxMGZhYTA3NTQ5YzQwNjdhZTNiMzgzOWVmZWQ5NmM2IiwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBjZW50ZXI6IFs1Mi40NTY2MzcsIDQuNzYwNTEzXSwKICAgICAgICAgICAgICAgICAgICBjcnM6IEwuQ1JTLkVQU0czODU3LAogICAgICAgICAgICAgICAgICAgIHpvb206IDEzLAogICAgICAgICAgICAgICAgICAgIHpvb21Db250cm9sOiB0cnVlLAogICAgICAgICAgICAgICAgICAgIHByZWZlckNhbnZhczogZmFsc2UsCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICk7CgogICAgICAgICAgICAKCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHRpbGVfbGF5ZXJfYzNiYTM0MWIzZGRkNDA4Zjg2YTFiOGM0ZWU4MjhkNWUgPSBMLnRpbGVMYXllcigKICAgICAgICAgICAgICAgICJodHRwczovL3tzfS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZyIsCiAgICAgICAgICAgICAgICB7ImF0dHJpYnV0aW9uIjogIkRhdGEgYnkgXHUwMDI2Y29weTsgXHUwMDNjYSBocmVmPVwiaHR0cDovL29wZW5zdHJlZXRtYXAub3JnXCJcdTAwM2VPcGVuU3RyZWV0TWFwXHUwMDNjL2FcdTAwM2UsIHVuZGVyIFx1MDAzY2EgaHJlZj1cImh0dHA6Ly93d3cub3BlbnN0cmVldG1hcC5vcmcvY29weXJpZ2h0XCJcdTAwM2VPRGJMXHUwMDNjL2FcdTAwM2UuIiwgImRldGVjdFJldGluYSI6IGZhbHNlLCAibWF4TmF0aXZlWm9vbSI6IDE4LCAibWF4Wm9vbSI6IDE4LCAibWluWm9vbSI6IDAsICJub1dyYXAiOiBmYWxzZSwgIm9wYWNpdHkiOiAxLCAic3ViZG9tYWlucyI6ICJhYmMiLCAidG1zIjogZmFsc2V9CiAgICAgICAgICAgICkuYWRkVG8obWFwXzAxMGZhYTA3NTQ5YzQwNjdhZTNiMzgzOWVmZWQ5NmM2KTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyX2Y2YTI2MmUxYmQ5ZTQxMDM4ZjFkZGI4OTljMDM3MWIwID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTIuNDU2NjM3LCA0Ljc2MDUxM10sCiAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICApLmFkZFRvKG1hcF8wMTBmYWEwNzU0OWM0MDY3YWUzYjM4MzllZmVkOTZjNik7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGljb25fZTVlMWQxOTY2MTFjNGUwOWE3ZThkMDg5ZGZlYTgxM2IgPSBMLkF3ZXNvbWVNYXJrZXJzLmljb24oCiAgICAgICAgICAgICAgICB7ImV4dHJhQ2xhc3NlcyI6ICJmYS1yb3RhdGUtMCIsICJpY29uIjogImluZm8tc2lnbiIsICJpY29uQ29sb3IiOiAid2hpdGUiLCAibWFya2VyQ29sb3IiOiAiZ3JlZW4iLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl9mNmEyNjJlMWJkOWU0MTAzOGYxZGRiODk5YzAzNzFiMC5zZXRJY29uKGljb25fZTVlMWQxOTY2MTFjNGUwOWE3ZThkMDg5ZGZlYTgxM2IpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwX2UwMGU0ZGM4YzY5NTQ1NWI4ZDVmODkwNTBiZWRlYWQ5ID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF9kNTlhZmI3YjJjZDk0N2YxYjMwY2Y3YzFlNTI5NDdhZCA9ICQoYDxkaXYgaWQ9Imh0bWxfZDU5YWZiN2IyY2Q5NDdmMWIzMGNmN2MxZTUyOTQ3YWQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPnN0YXJ0PC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwX2UwMGU0ZGM4YzY5NTQ1NWI4ZDVmODkwNTBiZWRlYWQ5LnNldENvbnRlbnQoaHRtbF9kNTlhZmI3YjJjZDk0N2YxYjMwY2Y3YzFlNTI5NDdhZCk7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl9mNmEyNjJlMWJkOWU0MTAzOGYxZGRiODk5YzAzNzFiMC5iaW5kUG9wdXAocG9wdXBfZTAwZTRkYzhjNjk1NDU1YjhkNWY4OTA1MGJlZGVhZDkpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfOTBmY2EyN2ViZjY4NDY3OTgyNTE3NjcyMWU3YmY5YjAgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs1Mi40MzA4OTcsIDQuNzI3ODk4XSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwXzAxMGZhYTA3NTQ5YzQwNjdhZTNiMzgzOWVmZWQ5NmM2KTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl9jZmUyMjIzZmMwNjg0MzY2OTY5MmZhMjM5YWNiZDllNiA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJyZWQiLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl85MGZjYTI3ZWJmNjg0Njc5ODI1MTc2NzIxZTdiZjliMC5zZXRJY29uKGljb25fY2ZlMjIyM2ZjMDY4NDM2Njk2OTJmYTIzOWFjYmQ5ZTYpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwX2M4NzJiNzY4NjdlZjQ1ZWY4ZWIyM2QxMTRhNjFhZWFmID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF8wODM2NGUxZDhhNDU0ODcwYjJhYTY2YmMwY2FhNGRmNiA9ICQoYDxkaXYgaWQ9Imh0bWxfMDgzNjRlMWQ4YTQ1NDg3MGIyYWE2NmJjMGNhYTRkZjYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPmVuZDwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF9jODcyYjc2ODY3ZWY0NWVmOGViMjNkMTE0YTYxYWVhZi5zZXRDb250ZW50KGh0bWxfMDgzNjRlMWQ4YTQ1NDg3MGIyYWE2NmJjMGNhYTRkZjYpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfOTBmY2EyN2ViZjY4NDY3OTgyNTE3NjcyMWU3YmY5YjAuYmluZFBvcHVwKHBvcHVwX2M4NzJiNzY4NjdlZjQ1ZWY4ZWIyM2QxMTRhNjFhZWFmKQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uXzJjMWU1ZTAzYmZiNjQ3ZjY4NDg4MGI0MjY2YzQzMzhiX3N0eWxlcihmZWF0dXJlKSB7CiAgICAgICAgICAgIHN3aXRjaChmZWF0dXJlLmlkKSB7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIHJldHVybiB7ImNvbG9yIjogImJsdWUiLCAib3BhY2l0eSI6IDAuNSwgIndlaWdodCI6IDV9OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uXzJjMWU1ZTAzYmZiNjQ3ZjY4NDg4MGI0MjY2YzQzMzhiX29uRWFjaEZlYXR1cmUoZmVhdHVyZSwgbGF5ZXIpIHsKICAgICAgICAgICAgbGF5ZXIub24oewogICAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAgICAgICBtYXBfMDEwZmFhMDc1NDljNDA2N2FlM2IzODM5ZWZlZDk2YzYuZml0Qm91bmRzKGUudGFyZ2V0LmdldEJvdW5kcygpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfTsKICAgICAgICB2YXIgZ2VvX2pzb25fMmMxZTVlMDNiZmI2NDdmNjg0ODgwYjQyNjZjNDMzOGIgPSBMLmdlb0pzb24obnVsbCwgewogICAgICAgICAgICAgICAgb25FYWNoRmVhdHVyZTogZ2VvX2pzb25fMmMxZTVlMDNiZmI2NDdmNjg0ODgwYjQyNjZjNDMzOGJfb25FYWNoRmVhdHVyZSwKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBzdHlsZTogZ2VvX2pzb25fMmMxZTVlMDNiZmI2NDdmNjg0ODgwYjQyNjZjNDMzOGJfc3R5bGVyLAogICAgICAgIH0pLmFkZFRvKG1hcF8wMTBmYWEwNzU0OWM0MDY3YWUzYjM4MzllZmVkOTZjNik7CgogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uXzJjMWU1ZTAzYmZiNjQ3ZjY4NDg4MGI0MjY2YzQzMzhiX2FkZCAoZGF0YSkgewogICAgICAgICAgICBnZW9fanNvbl8yYzFlNWUwM2JmYjY0N2Y2ODQ4ODBiNDI2NmM0MzM4Yi5hZGREYXRhKGRhdGEpOwogICAgICAgIH0KICAgICAgICAgICAgZ2VvX2pzb25fMmMxZTVlMDNiZmI2NDdmNjg0ODgwYjQyNjZjNDMzOGJfYWRkKHsiZmVhdHVyZXMiOiBbeyJnZW9tZXRyeSI6IHsiY29vcmRpbmF0ZXMiOiBbWzQuNzYwNTI0LCA1Mi40NTY2MzVdLCBbNC43NTkyNiwgNTIuNDU0MjZdLCBbNC43NTg2NiwgNTIuNDUzNDVdLCBbNC43NTgwNywgNTIuNDUyNDJdLCBbNC43NTc3OCwgNTIuNDUxNzhdLCBbNC43NTc1NSwgNTIuNDUxNDFdLCBbNC43NTcxOSwgNTIuNDUwOTJdLCBbNC43NTcsIDUyLjQ1MDU0XSwgWzQuNzU2NzMsIDUyLjQ0OTY2XSwgWzQuNzU2NDMsIDUyLjQ0ODQzXSwgWzQuNzU1ODgsIDUyLjQ0NzA1XSwgWzQuNzU1NjksIDUyLjQ0NjcxN10sIFs0Ljc1NTUyNSwgNTIuNDQ2NTY1XSwgWzQuNzU1MTQ0LCA1Mi40NDYzNTRdLCBbNC43NTQ3NDMsIDUyLjQ0NjI0Ml0sIFs0Ljc0MzY5OSwgNTIuNDQ0NF0sIFs0Ljc0MzY1NywgNTIuNDQ0NDU1XSwgWzQuNzQzNTgyLCA1Mi40NDQ0OTRdLCBbNC43NDM0ODYsIDUyLjQ0NDUxMl0sIFs0Ljc0MzM4OCwgNTIuNDQ0NTA0XSwgWzQuNzQzMzEzLCA1Mi40NDQ0NzhdLCBbNC43NDMyNTcsIDUyLjQ0NDQzOF0sIFs0Ljc0MzIzLCA1Mi40NDQzODhdLCBbNC43NDMyMzMsIDUyLjQ0NDMzNV0sIFs0Ljc0MjgxMywgNTIuNDQ0MjM0XSwgWzQuNzQyNTg2LCA1Mi40NDQxNjFdLCBbNC43NDA1LCA1Mi40NDMzNzddLCBbNC43MzgzMTcsIDUyLjQ0MjUyN10sIFs0LjczNzE3NSwgNTIuNDQxOTc5XSwgWzQuNzMxNjkzLCA1Mi40Mzg4MTddLCBbNC43MzAzNzUsIDUyLjQzODAzNl0sIFs0LjcyOTM4OCwgNTIuNDM3NTUyXSwgWzQuNzI4NDU5LCA1Mi40MzY5OV0sIFs0LjcyNzcwOCwgNTIuNDM2NDg2XSwgWzQuNzI3NTMsIDUyLjQzNjM4N10sIFs0LjcyNzA1NywgNTIuNDM2MTczXSwgWzQuNzI2NTk3LCA1Mi40MzYwMzNdLCBbNC43MjYzNjksIDUyLjQzNTk4NV0sIFs0LjcyNjIwNCwgNTIuNDM1OTc3XSwgWzQuNzI2MDc2LCA1Mi40MzYwNDJdLCBbNC43MjU5MTEsIDUyLjQzNjA1NV0sIFs0LjcyNTc1NSwgNTIuNDM2MDExXSwgWzQuNzI1NjY2LCA1Mi40MzU5MjJdLCBbNC43MjU2NywgNTIuNDM1ODE5XSwgWzQuNzI1NzY0LCA1Mi40MzU3MzRdLCBbNC43MjU1MzIsIDUyLjQzNTUyNl0sIFs0LjcyNTQwMywgNTIuNDM1MzA1XSwgWzQuNzI1MTc3LCA1Mi40MzQ2NjhdLCBbNC43MjQ1ODYsIDUyLjQzMTUwNl0sIFs0LjcyNDUyLCA1Mi40MzEyNzVdLCBbNC43MjQ0NjksIDUyLjQzMTIzMV0sIFs0LjcyNDM4NiwgNTIuNDMxMjA3XSwgWzQuNzIzNzQxLCA1Mi40MzEyNTVdLCBbNC43MjMzNzcsIDUyLjQzMTMxNF0sIFs0LjcyMzExNiwgNTIuNDMxNDA0XSwgWzQuNzIyODIxLCA1Mi40MzE1NV0sIFs0LjcyMjUzNSwgNTIuNDMxNDA2XSwgWzQuNzIyNDU3LCA1Mi40MzEzMDhdLCBbNC43MjI0NTEsIDUyLjQzMTIxNV0sIFs0LjcyMjQ4NCwgNTIuNDMxMTUyXSwgWzQuNzIyNTU2LCA1Mi40MzEwODhdLCBbNC43MjI2NywgNTIuNDMxMDM3XSwgWzQuNzIyODMxLCA1Mi40MzEwMTVdLCBbNC43MjQ0NDEsIDUyLjQzMTAyXSwgWzQuNzI0NTU0LCA1Mi40MzEwMDZdLCBbNC43MjQ2NDksIDUyLjQzMDk3M10sIFs0LjcyNDc3OCwgNTIuNDMwODc2XSwgWzQuNzI0ODcsIDUyLjQzMDY5MV0sIFs0LjcyNTc5NSwgNTIuNDMwODkxXSwgWzQuNzI2MzU5LCA1Mi40MzA5NjddLCBbNC43MjY5MDUsIDUyLjQzMDk5M10sIFs0LjcyNzQ3MiwgNTIuNDMwOTgxXSwgWzQuNzI3OTA5LCA1Mi40MzA5MzZdXSwgInR5cGUiOiAiTGluZVN0cmluZyJ9LCAiaWQiOiAiMCIsICJ0eXBlIjogIkZlYXR1cmUifV0sICJ0eXBlIjogIkZlYXR1cmVDb2xsZWN0aW9uIn0pOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfYzYxMmExYzc1YmExNDgzZGE2ODc0MGRiNmQxYWYxZTQgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs1Mi40NTY2MzcsIDQuNzYwNTEzXSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwXzAxMGZhYTA3NTQ5YzQwNjdhZTNiMzgzOWVmZWQ5NmM2KTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl8xYmQzYmNkODI0NWY0NmM2OTQ0NTAwY2E1NjI1Y2JhNyA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJncmVlbiIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyX2M2MTJhMWM3NWJhMTQ4M2RhNjg3NDBkYjZkMWFmMWU0LnNldEljb24oaWNvbl8xYmQzYmNkODI0NWY0NmM2OTQ0NTAwY2E1NjI1Y2JhNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfMjAxYjBiYzA4NzIzNGUxZDgzNjM0NGY1Mzc1ZTZlNjAgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sXzNkNGVjZDc3MDNhZjRmMjFiZWViYmYwMzNkMDE1MjgzID0gJChgPGRpdiBpZD0iaHRtbF8zZDRlY2Q3NzAzYWY0ZjIxYmVlYmJmMDMzZDAxNTI4MyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+c3RhcnQ8L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfMjAxYjBiYzA4NzIzNGUxZDgzNjM0NGY1Mzc1ZTZlNjAuc2V0Q29udGVudChodG1sXzNkNGVjZDc3MDNhZjRmMjFiZWViYmYwMzNkMDE1MjgzKTsKICAgICAgICAKCiAgICAgICAgbWFya2VyX2M2MTJhMWM3NWJhMTQ4M2RhNjg3NDBkYjZkMWFmMWU0LmJpbmRQb3B1cChwb3B1cF8yMDFiMGJjMDg3MjM0ZTFkODM2MzQ0ZjUzNzVlNmU2MCkKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl8wNTg0ZGI0OTIwNTQ0ZWQyOWZjZGRlNmFhYzZiZTM3NSA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzUyLjQzMDg5NywgNC43Mjc4OThdLAogICAgICAgICAgICAgICAge30KICAgICAgICAgICAgKS5hZGRUbyhtYXBfMDEwZmFhMDc1NDljNDA2N2FlM2IzODM5ZWZlZDk2YzYpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBpY29uX2Q1MzNmZGI3MjBhODRlZmM5M2U5NDVkZjVlZTM4MmUxID0gTC5Bd2Vzb21lTWFya2Vycy5pY29uKAogICAgICAgICAgICAgICAgeyJleHRyYUNsYXNzZXMiOiAiZmEtcm90YXRlLTAiLCAiaWNvbiI6ICJpbmZvLXNpZ24iLCAiaWNvbkNvbG9yIjogIndoaXRlIiwgIm1hcmtlckNvbG9yIjogInJlZCIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyXzA1ODRkYjQ5MjA1NDRlZDI5ZmNkZGU2YWFjNmJlMzc1LnNldEljb24oaWNvbl9kNTMzZmRiNzIwYTg0ZWZjOTNlOTQ1ZGY1ZWUzODJlMSk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfN2MxMTU2MjBjMzAyNGEzZjliMTliNGQyMGQyNDlmMGMgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sXzEwYzgwZTYxYjQ3OTRjNTk4ZGEyMzU3YzM3MzhlYWQ3ID0gJChgPGRpdiBpZD0iaHRtbF8xMGM4MGU2MWI0Nzk0YzU5OGRhMjM1N2MzNzM4ZWFkNyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+ZW5kPC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwXzdjMTE1NjIwYzMwMjRhM2Y5YjE5YjRkMjBkMjQ5ZjBjLnNldENvbnRlbnQoaHRtbF8xMGM4MGU2MWI0Nzk0YzU5OGRhMjM1N2MzNzM4ZWFkNyk7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl8wNTg0ZGI0OTIwNTQ0ZWQyOWZjZGRlNmFhYzZiZTM3NS5iaW5kUG9wdXAocG9wdXBfN2MxMTU2MjBjMzAyNGEzZjliMTliNGQyMGQyNDlmMGMpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgZnVuY3Rpb24gZ2VvX2pzb25fOWZiM2Q3MzU5Y2VhNDZjMzgxYzFlZDQ2NjM2MDg4MTZfc3R5bGVyKGZlYXR1cmUpIHsKICAgICAgICAgICAgc3dpdGNoKGZlYXR1cmUuaWQpIHsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsiY29sb3IiOiAicmVkIiwgIm9wYWNpdHkiOiAwLjUsICJ3ZWlnaHQiOiA1fTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBnZW9fanNvbl85ZmIzZDczNTljZWE0NmMzODFjMWVkNDY2MzYwODgxNl9vbkVhY2hGZWF0dXJlKGZlYXR1cmUsIGxheWVyKSB7CiAgICAgICAgICAgIGxheWVyLm9uKHsKICAgICAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICAgICAgbWFwXzAxMGZhYTA3NTQ5YzQwNjdhZTNiMzgzOWVmZWQ5NmM2LmZpdEJvdW5kcyhlLnRhcmdldC5nZXRCb3VuZHMoKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH07CiAgICAgICAgdmFyIGdlb19qc29uXzlmYjNkNzM1OWNlYTQ2YzM4MWMxZWQ0NjYzNjA4ODE2ID0gTC5nZW9Kc29uKG51bGwsIHsKICAgICAgICAgICAgICAgIG9uRWFjaEZlYXR1cmU6IGdlb19qc29uXzlmYjNkNzM1OWNlYTQ2YzM4MWMxZWQ0NjYzNjA4ODE2X29uRWFjaEZlYXR1cmUsCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgc3R5bGU6IGdlb19qc29uXzlmYjNkNzM1OWNlYTQ2YzM4MWMxZWQ0NjYzNjA4ODE2X3N0eWxlciwKICAgICAgICB9KS5hZGRUbyhtYXBfMDEwZmFhMDc1NDljNDA2N2FlM2IzODM5ZWZlZDk2YzYpOwoKICAgICAgICBmdW5jdGlvbiBnZW9fanNvbl85ZmIzZDczNTljZWE0NmMzODFjMWVkNDY2MzYwODgxNl9hZGQgKGRhdGEpIHsKICAgICAgICAgICAgZ2VvX2pzb25fOWZiM2Q3MzU5Y2VhNDZjMzgxYzFlZDQ2NjM2MDg4MTYuYWRkRGF0YShkYXRhKTsKICAgICAgICB9CiAgICAgICAgICAgIGdlb19qc29uXzlmYjNkNzM1OWNlYTQ2YzM4MWMxZWQ0NjYzNjA4ODE2X2FkZCh7ImZlYXR1cmVzIjogW3siZ2VvbWV0cnkiOiB7ImNvb3JkaW5hdGVzIjogW1s0Ljc2MDUyNCwgNTIuNDU2NjM1XSwgWzQuNzU5MjYsIDUyLjQ1NDI2XSwgWzQuNzU4NjYsIDUyLjQ1MzQ1XSwgWzQuNzU4MDcsIDUyLjQ1MjQyXSwgWzQuNzU3NzgsIDUyLjQ1MTc4XSwgWzQuNzU3NTUsIDUyLjQ1MTQxXSwgWzQuNzU3MTksIDUyLjQ1MDkyXSwgWzQuNzU3LCA1Mi40NTA1NF0sIFs0Ljc1NjczLCA1Mi40NDk2Nl0sIFs0Ljc1NjQzLCA1Mi40NDg0M10sIFs0Ljc1NTg4LCA1Mi40NDcwNV0sIFs0Ljc1NTY5LCA1Mi40NDY3MTddLCBbNC43NTU1MjUsIDUyLjQ0NjU2NV0sIFs0Ljc1NTE0NCwgNTIuNDQ2MzU0XSwgWzQuNzU0NzQzLCA1Mi40NDYyNDJdLCBbNC43NDM2OTksIDUyLjQ0NDRdLCBbNC43NDM2NTcsIDUyLjQ0NDQ1NV0sIFs0Ljc0MzU4MiwgNTIuNDQ0NDk0XSwgWzQuNzQzNDg2LCA1Mi40NDQ1MTJdLCBbNC43NDMzODgsIDUyLjQ0NDUwNF0sIFs0Ljc0MzMxMywgNTIuNDQ0NDc4XSwgWzQuNzQzMjU3LCA1Mi40NDQ0MzhdLCBbNC43NDMyMywgNTIuNDQ0Mzg4XSwgWzQuNzQzMjMzLCA1Mi40NDQzMzVdLCBbNC43NDI4MTMsIDUyLjQ0NDIzNF0sIFs0Ljc0MjU4NiwgNTIuNDQ0MTYxXSwgWzQuNzQwNSwgNTIuNDQzMzc3XSwgWzQuNzM4MzE3LCA1Mi40NDI1MjddLCBbNC43MzcxNzUsIDUyLjQ0MTk3OV0sIFs0LjczMTY5MywgNTIuNDM4ODE3XSwgWzQuNzMwMzc1LCA1Mi40MzgwMzZdLCBbNC43MjkzODgsIDUyLjQzNzU1Ml0sIFs0LjcyODQ1OSwgNTIuNDM2OTldLCBbNC43Mjc3MDgsIDUyLjQzNjQ4Nl0sIFs0LjcyNzUzLCA1Mi40MzYzODddLCBbNC43MjcwNTcsIDUyLjQzNjE3M10sIFs0LjcyNjU5NywgNTIuNDM2MDMzXSwgWzQuNzI2MzY5LCA1Mi40MzU5ODVdLCBbNC43MjYyMDQsIDUyLjQzNTk3N10sIFs0LjcyNjA3NiwgNTIuNDM2MDQyXSwgWzQuNzI1OTExLCA1Mi40MzYwNTVdLCBbNC43MjU3NTUsIDUyLjQzNjAxMV0sIFs0LjcyNTY2NiwgNTIuNDM1OTIyXSwgWzQuNzI1MDYxLCA1Mi40MzU5OV0sIFs0LjcyNDcyNSwgNTIuNDM1OTg3XSwgWzQuNzIzNjg3LCA1Mi40MzU5MjNdLCBbNC43MjMxNTgsIDUyLjQzNTk0MV0sIFs0LjcyMjY5MywgNTIuNDM1OTc2XSwgWzQuNzE0NTc4LCA1Mi40Mzc2ODRdLCBbNC43MTM0ODksIDUyLjQzNzk2MV0sIFs0LjcxMjc4NiwgNTIuNDM4MTcyXSwgWzQuNzEwNjE4LCA1Mi40Mzg4ODJdLCBbNC43MDkzMzQsIDUyLjQzOTQwNF0sIFs0LjcwODU0LCA1Mi40Mzk3NzFdLCBbNC43MDYyMDksIDUyLjQ0MDk3M10sIFs0LjcwNDEzNCwgNTIuNDQxOTg5XSwgWzQuNjkyMjI0LCA1Mi40NDc5NzZdLCBbNC42OTAzNDUsIDUyLjQ0ODk2NF0sIFs0LjY3NDEyOCwgNTIuNDU3NzU3XSwgWzQuNjczNzc3LCA1Mi40NTc5OTFdLCBbNC42NzM0NTksIDUyLjQ1ODI2NV0sIFs0LjY3MzI0LCA1Mi40NTg1MV0sIFs0LjY3MzEsIDUyLjQ1ODc3XSwgWzQuNjcyODU5LCA1Mi40NTkzODldLCBbNC42NzI2NzgsIDUyLjQ1OTY3Nl0sIFs0LjY3MjQ0NSwgNTIuNDU5OTM4XSwgWzQuNjcyMTc4LCA1Mi40NjAxNjZdLCBbNC42NzE5NTgsIDUyLjQ2MDMyOF0sIFs0LjY3MTY2MiwgNTIuNDYwNTA1XSwgWzQuNjY5NDc5LCA1Mi40NjE2NTNdLCBbNC42Njg4NDgsIDUyLjQ2MjAyNl0sIFs0LjY2ODYxOCwgNTIuNDYyMTc2XSwgWzQuNjY4NDA1LCA1Mi40NjIzODZdLCBbNC42NjgwNTEsIDUyLjQ2MjgwOV0sIFs0LjY2NzkyNiwgNTIuNDYzMTc2XSwgWzQuNjY3ODgyLCA1Mi40NjM0MV0sIFs0LjY2NzkxNywgNTIuNDYzOTA4XSwgWzQuNjY4Mjk4LCA1Mi40NjU0MzZdLCBbNC42Njg2MDYsIDUyLjQ2NjQ3OF0sIFs0LjY2ODg4MSwgNTIuNDY3MzJdLCBbNC42NjkwMTUsIDUyLjQ2NzMwN10sIFs0LjY2OTEwOSwgNTIuNDY3MzI0XSwgWzQuNjY5MTgzLCA1Mi40NjczNjJdLCBbNC42NjkyMjYsIDUyLjQ2NzQxNV0sIFs0LjY2OTIzMiwgNTIuNDY3NDcyXSwgWzQuNjY5MjAxLCA1Mi40Njc1MjZdLCBbNC42NjkxMzgsIDUyLjQ2NzU2OV0sIFs0LjY2OTA1MywgNTIuNDY3NTkzXSwgWzQuNjY5NDMsIDUyLjQ2ODQ1XSwgWzQuNjcwMSwgNTIuNDY5NzRdLCBbNC42NzE1OTYsIDUyLjQ3MjI0XSwgWzQuNjcxNzU1LCA1Mi40NzI0NzNdLCBbNC42NzE5MjcsIDUyLjQ3MjY2MV0sIFs0LjY3MjQ5NCwgNTIuNDczNDY1XSwgWzQuNjcyNTE0LCA1Mi40NzM1NDZdLCBbNC42NzI1OTMsIDUyLjQ3MzU3NV0sIFs0LjY3MjY1LCA1Mi40NzM2MTldLCBbNC42NzI2NzgsIDUyLjQ3MzY3M10sIFs0LjY3MjY1NiwgNTIuNDczNzU4XSwgWzQuNjcyNTY0LCA1Mi40NzM4MjNdLCBbNC42NzI0NzcsIDUyLjQ3Mzg0Nl0sIFs0LjY3MjM4NCwgNTIuNDczODQ3XSwgWzQuNjcyMjk1LCA1Mi40NzM4MjhdLCBbNC42NzE0ODgsIDUyLjQ3NDA3NV0sIFs0LjY3MTIyNiwgNTIuNDc0MTk4XSwgWzQuNjcwNDM2LCA1Mi40NzQ2MjddLCBbNC42Njg1NDYsIDUyLjQ3NTg0NF0sIFs0LjY2Nzc1NCwgNTIuNDc2Mzc3XSwgWzQuNjY1OTgxLCA1Mi40Nzc2NTJdLCBbNC42NjM0MDgsIDUyLjQ3OTQ1NF0sIFs0LjY2MjI1MSwgNTIuNDc5MjNdLCBbNC42NjE1OTksIDUyLjQ3OTA3NF0sIFs0LjY1OTQ0LCA1Mi40NzgzNF0sIFs0LjY1OTMxOSwgNTIuNDc4Mjg4XSwgWzQuNjU4OTU1LCA1Mi40NzgwMzVdLCBbNC42NTg0OTksIDUyLjQ3NzU3OV0sIFs0LjY1NzEyMSwgNTIuNDc2MDldLCBbNC42NTYzNTksIDUyLjQ3NTMxNV0sIFs0LjY1NjI2MSwgNTIuNDc1MTg2XSwgWzQuNjU2MTcxLCA1Mi40NzQ5OTVdLCBbNC42NTYwOSwgNTIuNDc0NzJdLCBbNC42NTYwNzksIDUyLjQ3NDQ2XSwgWzQuNjU2MTA0LCA1Mi40NzM5NjRdLCBbNC42NTYwMjQsIDUyLjQ3MzczOF0sIFs0LjY1NTg4OCwgNTIuNDczNjAzXSwgWzQuNjU1NjIsIDUyLjQ3MzQ2M10sIFs0LjY1NTQ4MywgNTIuNDczNDI1XSwgWzQuNjU1MzAyLCA1Mi40NzM0XSwgWzQuNjU1MDIxLCA1Mi40NzM0MTJdLCBbNC42NTQ4NjQsIDUyLjQ3MzQzNV0sIFs0LjY1NDU2MSwgNTIuNDczNTE3XSwgWzQuNjU0MDkzLCA1Mi40NzM2ODJdLCBbNC42NTI5NTYsIDUyLjQ3NDExN10sIFs0LjY1Mjc4LCA1Mi40NzM5Nl0sIFs0LjY1MjY1OCwgNTIuNDczNzk2XSwgWzQuNjUxODE3LCA1Mi40NzExN10sIFs0LjY1MTczOSwgNTIuNDcwNzc4XSwgWzQuNjUxNzA2LCA1Mi40NzAxNTNdLCBbNC42NTE3NDUsIDUyLjQ2OTY0Ml0sIFs0LjY1MTc5NywgNTIuNDY5MzU4XSwgWzQuNjUxODk5LCA1Mi40Njg5OF0sIFs0LjY1NTIzNywgNTIuNDU5NzU4XSwgWzQuNjU2OTc0LCA1Mi40NTUxNTJdLCBbNC42NTcwMDMsIDUyLjQ1NDY3NF0sIFs0LjY1NzE1NCwgNTIuNDU0MDk2XSwgWzQuNjU3Mzg0LCA1Mi40NTI4NDVdLCBbNC42NTc0NDgsIDUyLjQ1MjEzOV0sIFs0LjY1NzM0NCwgNTIuNDUxNDY0XSwgWzQuNjU3MjIyLCA1Mi40NTExODZdLCBbNC42NTcxNTQsIDUyLjQ1MTAzNF0sIFs0LjY1Njk4MiwgNTIuNDUwODA2XSwgWzQuNjU2Nzk2LCA1Mi40NTA2NTRdLCBbNC42NTY2NDMsIDUyLjQ1MDU3M10sIFs0LjY1NjQxNSwgNTIuNDUwNTAyXSwgWzQuNjU2MTgyLCA1Mi40NTA0NjddLCBbNC42NTUzMTksIDUyLjQ1MDM5OF0sIFs0LjY1NTI1NywgNTIuNDUwNzUyXSwgWzQuNjU1MTMsIDUyLjQ1MTA3XSwgWzQuNjU0ODksIDUyLjQ1MTM5Ml0sIFs0LjY1NDcyOSwgNTIuNDUxNTgzXSwgWzQuNjUzNDczLCA1Mi40NTI2MzJdLCBbNC42NTMxMTYsIDUyLjQ1Mjk1MV0sIFs0LjY1Mjg3OCwgNTIuNDUzMjE2XSwgWzQuNjUyMzQzLCA1Mi40NTM5NzJdLCBbNC42NTAwODQsIDUyLjQ1NzMwMV0sIFs0LjY0OTg3MywgNTIuNDU3NjM2XSwgWzQuNjQ5ODI2LCA1Mi40NTc3NjFdLCBbNC42NDk4MjcsIDUyLjQ1Nzg4Nl0sIFs0LjY1MDAzMywgNTIuNDU4MTAzXSwgWzQuNjUwMjUxLCA1Mi40NTgyODNdLCBbNC42NTA0MDYsIDUyLjQ1ODM0NF0sIFs0LjY1MDU5NywgNTIuNDU4MzY2XSwgWzQuNjUxMjE3LCA1Mi40NTgwNzddLCBbNC42NTE1ODksIDUyLjQ1Nzk1NF0sIFs0LjY1MTk0OSwgNTIuNDU3ODY5XSwgWzQuNjUyMzI5LCA1Mi40NTc4MDJdLCBbNC42NTI3MjUsIDUyLjQ1Nzc2Ml0sIFs0LjY1MzA0MywgNTIuNDU3NzQ3XSwgWzQuNjUzMzYzLCA1Mi40NTc3NV0sIFs0LjY1MzcwMiwgNTIuNDU3NzcyXSwgWzQuNjU0NDQ5LCA1Mi40NTc4NjhdLCBbNC42NTYxNjEsIDUyLjQ1ODExNF0sIFs0LjY2MDQzLCA1Mi40NTg2NjVdLCBbNC42NjEyNzQsIDUyLjQ1ODc1OF0sIFs0LjY2MjEzLCA1Mi40NTg4M10sIFs0LjY2MjUzLCA1Mi40NTg4OV0sIFs0LjY2MzM0LCA1Mi40NTg4M10sIFs0LjY2MzgyLCA1Mi40NTg3NF0sIFs0LjY2NDI4LCA1Mi40NTg2M10sIFs0LjY2NDgxNiwgNTIuNDU4NDE0XSwgWzQuNjY1MjQyLCA1Mi40NTgxOTZdLCBbNC42NjU2MjYsIDUyLjQ1Nzk1NF0sIFs0LjY2NjA0NCwgNTIuNDU3NjE2XSwgWzQuNjY3NTI4LCA1Mi40NTYwNDFdLCBbNC42Njc5MTMsIDUyLjQ1NTcwMl0sIFs0LjY2ODI0NCwgNTIuNDU1NTE4XSwgWzQuNjY4ODQ0LCA1Mi40NTUyNjFdLCBbNC42Njk0NTgsIDUyLjQ1NTA5NV0sIFs0LjY3MTUxLCA1Mi40NTQ3Ml0sIFs0LjY3MjAzLCA1Mi40NTQ1N10sIFs0LjY3MjQxLCA1Mi40NTQ0Ml0sIFs0LjY3NDM4LCA1Mi40NTMzOF0sIFs0LjY3OTMsIDUyLjQ1MDcyN10sIFs0LjY4MTY1LCA1Mi40NDk0OF0sIFs0LjY4MzM5LCA1Mi40NDg1M10sIFs0LjY4Mzg0LCA1Mi40NDgyNF0sIFs0LjY4NDI3LCA1Mi40NDc4OV0sIFs0LjY4NDY5LCA1Mi40NDc0NF0sIFs0LjY4NTgzLCA1Mi40NDU5NV0sIFs0LjY4NjA3LCA1Mi40NDU3XSwgWzQuNjg2MzUsIDUyLjQ0NTQ2XSwgWzQuNjg2ODksIDUyLjQ0NTFdLCBbNC42ODc4NCwgNTIuNDQ0NjZdLCBbNC42ODgzNTksIDUyLjQ0NDQ4OV0sIFs0LjY4OTcwMSwgNTIuNDQ0MTI0XSwgWzQuNjkwODI3LCA1Mi40NDM4NDldLCBbNC42OTE2NzUsIDUyLjQ0MzU4OF0sIFs0LjY5MjQ0MSwgNTIuNDQzMjg4XSwgWzQuNjkzMzA5LCA1Mi40NDI4NTJdLCBbNC43MDE1NDksIDUyLjQzODM4Nl0sIFs0LjcwMjA3OSwgNTIuNDM4MDczXSwgWzQuNzAzNzEsIDUyLjQzNzIzMl0sIFs0LjcwNjczNiwgNTIuNDM1NTgyXSwgWzQuNzA3Nzk2LCA1Mi40MzUwN10sIFs0LjcwODU4NSwgNTIuNDM0NzQ5XSwgWzQuNzA5MjY5LCA1Mi40MzQ1MTJdLCBbNC43MTAzNzQsIDUyLjQzNDE3OF0sIFs0LjcxMjQ1NCwgNTIuNDMzNjM4XSwgWzQuNzE0ODQxLCA1Mi40MzMxMjNdLCBbNC43MTUzNDEsIDUyLjQzMjk5MV0sIFs0LjcxNjMwOSwgNTIuNDMyNjY3XSwgWzQuNzE3MjA5LCA1Mi40MzIyNzddLCBbNC43MTg5NDIsIDUyLjQzMTQ0NV0sIFs0LjcxOTkyMSwgNTIuNDMwOTk5XSwgWzQuNzIwMzQ3LCA1Mi40MzA4MjldLCBbNC43MjA3OTgsIDUyLjQzMDY3MV0sIFs0LjcyMTE3NCwgNTIuNDMwNTY4XSwgWzQuNzIxNjQxLCA1Mi40MzA0OF0sIFs0LjcyMjExMywgNTIuNDMwNDE4XSwgWzQuNzIyODYsIDUyLjQzMDM5NV0sIFs0LjcyMzE0NiwgNTIuNDMwNDAzXSwgWzQuNzIzNzQ3LCA1Mi40MzA0NTFdLCBbNC43MjQyLCA1Mi40MzA1MzFdLCBbNC43MjU3OTUsIDUyLjQzMDg5MV0sIFs0LjcyNjM1OSwgNTIuNDMwOTY3XSwgWzQuNzI2OTA1LCA1Mi40MzA5OTNdLCBbNC43Mjc0NzIsIDUyLjQzMDk4MV0sIFs0LjcyNzkwOSwgNTIuNDMwOTM2XV0sICJ0eXBlIjogIkxpbmVTdHJpbmcifSwgImlkIjogIjAiLCAidHlwZSI6ICJGZWF0dXJlIn1dLCAidHlwZSI6ICJGZWF0dXJlQ29sbGVjdGlvbiJ9KTsKICAgICAgICAKPC9zY3JpcHQ+ onload=\"this.contentDocument.open();this.contentDocument.write(atob(this.getAttribute('data-html')));this.contentDocument.close();\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
],
"text/plain": [
"<folium.folium.Map at 0x7f677799ea20>"
]
},
"execution_count": 10,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"start=[4.760513,52.456637]\n",
"end=[4.727898,52.430897]\n",
"\n",
"m = folium.Map(location=latlon(start), zoom_start=13)\n",
"\n",
"route = requests.post(url=route_url, json={'profile':'car', 'points':[start,end], 'points_encoded':False}).json()\n",
"if 'message' in route: raise Exception(route[\"message\"])\n",
"plot_route(m, start, end, route[\"paths\"][0], \"route\", \"blue\")\n",
"\n",
"priorityJson = {'road_environment': {'ferry': 0.1}, 'road_class': {'residential':0.3, 'tertiary':0.3, 'track':0.0} }\n",
"route = requests.post(url=route_url, json={'profile':'car', 'points':[start,end], 'points_encoded':False, \n",
" 'priority': priorityJson}).json()\n",
"if 'message' in route: raise Exception(route[\"message\"])\n",
"plot_route(m, start, end, route[\"paths\"][0], \"other\", \"red\")\n",
"\n",
"m"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## avoid toll"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {
"scrolled": false
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"route: distance 132km and time 85min\n",
"other: distance 135km and time 131min\n"
]
},
{
"data": {
"text/html": [
"<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><span style=\"color:#565656\">Make this Notebook Trusted to load map: File -> Trust Notebook</span><iframe src=\"about:blank\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" data-html=PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgCiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgTF9OT19UT1VDSCA9IGZhbHNlOwogICAgICAgICAgICBMX0RJU0FCTEVfM0QgPSBmYWxzZTsKICAgICAgICA8L3NjcmlwdD4KICAgIAogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjYuMC9kaXN0L2xlYWZsZXQuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0xLjEyLjQubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjYuMC9kaXN0L2xlYWZsZXQuY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vYm9vdHN0cmFwLzMuMi4wL2Nzcy9ib290c3RyYXAubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLXRoZW1lLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9mb250LWF3ZXNvbWUvNC42LjMvY3NzL2ZvbnQtYXdlc29tZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL0xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLzIuMC4yL2xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3Jhd2Nkbi5naXRoYWNrLmNvbS9weXRob24tdmlzdWFsaXphdGlvbi9mb2xpdW0vbWFzdGVyL2ZvbGl1bS90ZW1wbGF0ZXMvbGVhZmxldC5hd2Vzb21lLnJvdGF0ZS5jc3MiLz4KICAgIDxzdHlsZT5odG1sLCBib2R5IHt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7bWFyZ2luOiAwO3BhZGRpbmc6IDA7fTwvc3R5bGU+CiAgICA8c3R5bGU+I21hcCB7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7cmlnaHQ6MDtsZWZ0OjA7fTwvc3R5bGU+CiAgICAKICAgICAgICAgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwKICAgICAgICAgICAgICAgIGluaXRpYWwtc2NhbGU9MS4wLCBtYXhpbXVtLXNjYWxlPTEuMCwgdXNlci1zY2FsYWJsZT1ubyIgLz4KICAgICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAgICAgI21hcF9mY2NiYzcyZDJkMDI0NTdlOWM4YjMzZjFlYjVhYjdmMiB7CiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgCjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvbGl1bS1tYXAiIGlkPSJtYXBfZmNjYmM3MmQyZDAyNDU3ZTljOGIzM2YxZWI1YWI3ZjIiID48L2Rpdj4KICAgICAgICAKPC9ib2R5Pgo8c2NyaXB0PiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFwX2ZjY2JjNzJkMmQwMjQ1N2U5YzhiMzNmMWViNWFiN2YyID0gTC5tYXAoCiAgICAgICAgICAgICAgICAibWFwX2ZjY2JjNzJkMmQwMjQ1N2U5YzhiMzNmMWViNWFiN2YyIiwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBjZW50ZXI6IFs0Ny43NDY3MTEsIDcuMzM0NzQ3XSwKICAgICAgICAgICAgICAgICAgICBjcnM6IEwuQ1JTLkVQU0czODU3LAogICAgICAgICAgICAgICAgICAgIHpvb206IDEwLAogICAgICAgICAgICAgICAgICAgIHpvb21Db250cm9sOiB0cnVlLAogICAgICAgICAgICAgICAgICAgIHByZWZlckNhbnZhczogZmFsc2UsCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICk7CgogICAgICAgICAgICAKCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHRpbGVfbGF5ZXJfZDRjYzAwYjkyY2U4NGM2OGFlNjZkMzdjZjE4MjczNGIgPSBMLnRpbGVMYXllcigKICAgICAgICAgICAgICAgICJodHRwczovL3tzfS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZyIsCiAgICAgICAgICAgICAgICB7ImF0dHJpYnV0aW9uIjogIkRhdGEgYnkgXHUwMDI2Y29weTsgXHUwMDNjYSBocmVmPVwiaHR0cDovL29wZW5zdHJlZXRtYXAub3JnXCJcdTAwM2VPcGVuU3RyZWV0TWFwXHUwMDNjL2FcdTAwM2UsIHVuZGVyIFx1MDAzY2EgaHJlZj1cImh0dHA6Ly93d3cub3BlbnN0cmVldG1hcC5vcmcvY29weXJpZ2h0XCJcdTAwM2VPRGJMXHUwMDNjL2FcdTAwM2UuIiwgImRldGVjdFJldGluYSI6IGZhbHNlLCAibWF4TmF0aXZlWm9vbSI6IDE4LCAibWF4Wm9vbSI6IDE4LCAibWluWm9vbSI6IDAsICJub1dyYXAiOiBmYWxzZSwgIm9wYWNpdHkiOiAxLCAic3ViZG9tYWlucyI6ICJhYmMiLCAidG1zIjogZmFsc2V9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2ZjY2JjNzJkMmQwMjQ1N2U5YzhiMzNmMWViNWFiN2YyKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyXzg3MTVmMjQ5YWFkNTQxOTE5MWEyNzc3NzMxN2Y0N2M0ID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNDcuNzQ2NzExLCA3LjMzNDc0N10sCiAgICAgICAgICAgICAgICB7fQogICAgICAgICAgICApLmFkZFRvKG1hcF9mY2NiYzcyZDJkMDI0NTdlOWM4YjMzZjFlYjVhYjdmMik7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGljb25fZGM1N2E5Mjk3N2Y3NGE3MmFhODljMDIwNjlhZTRjNmMgPSBMLkF3ZXNvbWVNYXJrZXJzLmljb24oCiAgICAgICAgICAgICAgICB7ImV4dHJhQ2xhc3NlcyI6ICJmYS1yb3RhdGUtMCIsICJpY29uIjogImluZm8tc2lnbiIsICJpY29uQ29sb3IiOiAid2hpdGUiLCAibWFya2VyQ29sb3IiOiAiZ3JlZW4iLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl84NzE1ZjI0OWFhZDU0MTkxOTFhMjc3NzczMTdmNDdjNC5zZXRJY29uKGljb25fZGM1N2E5Mjk3N2Y3NGE3MmFhODljMDIwNjlhZTRjNmMpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwX2RiM2JhNWE2YTZhZDQxMTM4N2YzYmJhNTIxNjZlMDY3ID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF84ZTMxOGQxNGUwZjY0MmJiYjVlNGI5MWQ0MmZhZjZkMSA9ICQoYDxkaXYgaWQ9Imh0bWxfOGUzMThkMTRlMGY2NDJiYmI1ZTRiOTFkNDJmYWY2ZDEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPnN0YXJ0PC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwX2RiM2JhNWE2YTZhZDQxMTM4N2YzYmJhNTIxNjZlMDY3LnNldENvbnRlbnQoaHRtbF84ZTMxOGQxNGUwZjY0MmJiYjVlNGI5MWQ0MmZhZjZkMSk7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl84NzE1ZjI0OWFhZDU0MTkxOTFhMjc3NzczMTdmNDdjNC5iaW5kUG9wdXAocG9wdXBfZGIzYmE1YTZhNmFkNDExMzg3ZjNiYmE1MjE2NmUwNjcpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfYWFkMGYwZmRhYTQxNGYxNTg5YTM2MGM4ZDhiODllMjAgPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs0Ny4yMzYzNTUsIDYuMDI3Mzc0XSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2ZjY2JjNzJkMmQwMjQ1N2U5YzhiMzNmMWViNWFiN2YyKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl83NmQyZTNhMjQ0ZmE0ZjBkYWVlNWU3NDdkMjc1NjcwYyA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJyZWQiLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl9hYWQwZjBmZGFhNDE0ZjE1ODlhMzYwYzhkOGI4OWUyMC5zZXRJY29uKGljb25fNzZkMmUzYTI0NGZhNGYwZGFlZTVlNzQ3ZDI3NTY3MGMpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwX2JiYzBhZDk5Zjg4MTRiOWFiNTEwNTNmNjg4YzdhY2Y1ID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF9hMWZjZDg0ZjFjNjQ0MGIwYTZlNTQzZjJlOTg5YjUxOCA9ICQoYDxkaXYgaWQ9Imh0bWxfYTFmY2Q4NGYxYzY0NDBiMGE2ZTU0M2YyZTk4OWI1MTgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPmVuZDwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF9iYmMwYWQ5OWY4ODE0YjlhYjUxMDUzZjY4OGM3YWNmNS5zZXRDb250ZW50KGh0bWxfYTFmY2Q4NGYxYzY0NDBiMGE2ZTU0M2YyZTk4OWI1MTgpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfYWFkMGYwZmRhYTQxNGYxNTg5YTM2MGM4ZDhiODllMjAuYmluZFBvcHVwKHBvcHVwX2JiYzBhZDk5Zjg4MTRiOWFiNTEwNTNmNjg4YzdhY2Y1KQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uXzM5MjQyNDM0MzI5ZDRlMjlhYmMxM2RiYjViMjU1N2YwX3N0eWxlcihmZWF0dXJlKSB7CiAgICAgICAgICAgIHN3aXRjaChmZWF0dXJlLmlkKSB7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIHJldHVybiB7ImNvbG9yIjogImJsdWUiLCAib3BhY2l0eSI6IDAuNSwgIndlaWdodCI6IDV9OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uXzM5MjQyNDM0MzI5ZDRlMjlhYmMxM2RiYjViMjU1N2YwX29uRWFjaEZlYXR1cmUoZmVhdHVyZSwgbGF5ZXIpIHsKICAgICAgICAgICAgbGF5ZXIub24oewogICAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAgICAgICBtYXBfZmNjYmM3MmQyZDAyNDU3ZTljOGIzM2YxZWI1YWI3ZjIuZml0Qm91bmRzKGUudGFyZ2V0LmdldEJvdW5kcygpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfTsKICAgICAgICB2YXIgZ2VvX2pzb25fMzkyNDI0MzQzMjlkNGUyOWFiYzEzZGJiNWIyNTU3ZjAgPSBMLmdlb0pzb24obnVsbCwgewogICAgICAgICAgICAgICAgb25FYWNoRmVhdHVyZTogZ2VvX2pzb25fMzkyNDI0MzQzMjlkNGUyOWFiYzEzZGJiNWIyNTU3ZjBfb25FYWNoRmVhdHVyZSwKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBzdHlsZTogZ2VvX2pzb25fMzkyNDI0MzQzMjlkNGUyOWFiYzEzZGJiNWIyNTU3ZjBfc3R5bGVyLAogICAgICAgIH0pLmFkZFRvKG1hcF9mY2NiYzcyZDJkMDI0NTdlOWM4YjMzZjFlYjVhYjdmMik7CgogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uXzM5MjQyNDM0MzI5ZDRlMjlhYmMxM2RiYjViMjU1N2YwX2FkZCAoZGF0YSkgewogICAgICAgICAgICBnZW9fanNvbl8zOTI0MjQzNDMyOWQ0ZTI5YWJjMTNkYmI1YjI1NTdmMC5hZGREYXRhKGRhdGEpOwogICAgICAgIH0KICAgICAgICAgICAgZ2VvX2pzb25fMzkyNDI0MzQzMjlkNGUyOWFiYzEzZGJiNWIyNTU3ZjBfYWRkKHsiZmVhdHVyZXMiOiBbeyJnZW9tZXRyeSI6IHsiY29vcmRpbmF0ZXMiOiBbWzcuMzM0NzEzLCA0Ny43NDY4MDRdLCBbNy4zMzUwNzksIDQ3Ljc0Njg2NV0sIFs3LjMzNTU2NiwgNDcuNzQ2ODQyXSwgWzcuMzM1OTk3LCA0Ny43NDY0NDVdLCBbNy4zMzU5MTcsIDQ3Ljc0NjQwNl0sIFs3LjMzNTYzMSwgNDcuNzQ2MTMzXSwgWzcuMzM1MDYxLCA0Ny43NDU0MTldLCBbNy4zMzQ0NiwgNDcuNzQ0NzMyXSwgWzcuMzMzNjM2LCA0Ny43NDQwNDFdLCBbNy4zMzM0OTUsIDQ3Ljc0Mzk0N10sIFs3LjMzMzI2NSwgNDcuNzQ0MDRdLCBbNy4zMzI3MTYsIDQ3Ljc0NDE0Ml0sIFs3LjMzMjQ4LCA0Ny43NDQyNTFdLCBbNy4zMzIyMjcsIDQ3Ljc0NDQxXSwgWzcuMzMxMjY1LCA0Ny43NDQ4NV0sIFs3LjMzMDYxNSwgNDcuNzQ1MTc3XSwgWzcuMzMwNTM1LCA0Ny43NDUyNzVdLCBbNy4zMzAwNTcsIDQ3Ljc0NTY1OF0sIFs3LjMyOTkzNywgNDcuNzQ1NzI2XSwgWzcuMzI5MTM0LCA0Ny43NDYzODNdLCBbNy4zMjg0OTYsIDQ3Ljc0Njc5XSwgWzcuMzI4MjY3LCA0Ny43NDY4OF0sIFs3LjMyNzY4OSwgNDcuNzQ3MDQ3XSwgWzcuMzI1NDM2LCA0Ny43NDc3NzldLCBbNy4zMjUzMzYsIDQ3Ljc0Nzg0Ml0sIFs3LjMyNDU5LCA0Ny43NDg2NDFdLCBbNy4zMjA2MDcsIDQ3Ljc0NzMyN10sIFs3LjMyMDQ1NSwgNDcuNzQ3Mjk3XSwgWzcuMzIwMDg2LCA0Ny43NDcyNjJdLCBbNy4zMTk5NDYsIDQ3Ljc0NzI4Ml0sIFs3LjMxOTI1NCwgNDcuNzQ3MTldLCBbNy4zMTkxMjIsIDQ3Ljc0NzE0MV0sIFs3LjMxODcyLCA0Ny43NDcwODFdLCBbNy4zMTg1NzQsIDQ3Ljc0NzA0MV0sIFs3LjMxODQ4NSwgNDcuNzQ3MDQ2XSwgWzcuMzE4MzE2LCA0Ny43NDY5ODRdLCBbNy4zMTgxMDgsIDQ3Ljc0Njg3NF0sIFs3LjMxODA1MSwgNDcuNzQ2ODEzXSwgWzcuMzE3MjUsIDQ3Ljc0NjRdLCBbNy4zMTcxMzMsIDQ3Ljc0NjM2XSwgWzcuMzE2NjM4LCA0Ny43NDYyOF0sIFs3LjMxNjQ4NiwgNDcuNzQ2MjM2XSwgWzcuMzE2NDA1LCA0Ny43NDYyMzddLCBbNy4zMTYyNjgsIDQ3Ljc0NjI0N10sIFs3LjMxNjE0OSwgNDcuNzQ2MjAxXSwgWzcuMzE1MjEzLCA0Ny43NDYyMTddLCBbNy4zMTUwNCwgNDcuNzQ2MjMzXSwgWzcuMzE0OTM1LCA0Ny43NDYyODZdLCBbNy4zMTQ1MTIsIDQ3Ljc0NjMwN10sIFs3LjMxMzY5OSwgNDcuNzQ2Mzk2XSwgWzcuMzEyOTEyLCA0Ny43NDY0MjZdLCBbNy4zMTIxMSwgNDcuNzQ2NDE1XSwgWzcuMzExNjY4LCA0Ny43NDYzNzhdLCBbNy4zMTE0MTEsIDQ3Ljc0NjQxM10sIFs3LjMxMTEzMSwgNDcuNzQ2NTE0XSwgWzcuMzEwODcsIDQ3Ljc0NjcxM10sIFs3LjMxMDc1OCwgNDcuNzQ2NzcyXSwgWzcuMzEwNjg4LCA0Ny43NDY4MjldLCBbNy4zMDk3OTEsIDQ3Ljc0NzYwNV0sIFs3LjMwODY0NiwgNDcuNzQ4MTYyXSwgWzcuMzA0ODc5LCA0Ny43NTA1N10sIFs3LjMwNDY3OCwgNDcuNzUwNzM1XSwgWzcuMzA0NTcxLCA0Ny43NTA4NTRdLCBbNy4zMDQxOTgsIDQ3Ljc1MTM2MV0sIFs3LjMwMzQyMiwgNDcuNzUyMDc5XSwgWzcuMzAzNDgzLCA0Ny43NTIxMTFdLCBbNy4zMDM1MTMsIDQ3Ljc1MjE1OV0sIFs3LjMwMzUwNSwgNDcuNzUyMjExXSwgWzcuMzAzNDYyLCA0Ny43NTIyNTRdLCBbNy4zMDMzNTUsIDQ3Ljc1MjI4MV0sIFs3LjMwMjkxMSwgNDcuNzUyOTQ5XSwgWzcuMzAxODMzLCA0Ny43NTQzMTldLCBbNy4zMDExMTcsIDQ3Ljc1NTE5Ml0sIFs3LjMwMDg4MiwgNDcuNzU1NDM3XSwgWzcuMzAwNzc3LCA0Ny43NTU1MTJdLCBbNy4zMDA3MjEsIDQ3Ljc1NTYwMV0sIFs3LjMwMDM5NCwgNDcuNzU1ODQ3XSwgWzcuMjk5ODY5LCA0Ny43NTYxM10sIFs3LjI5OTQyNywgNDcuNzU2MzA4XSwgWzcuMjk1NzUsIDQ3Ljc1NzQ5OV0sIFs3LjI5NTM1OCwgNDcuNzU3NTA1XSwgWzcuMjk1MiwgNDcuNzU3NDUxXSwgWzcuMjk1MDQ5LCA0Ny43NTczMjhdLCBbNy4yOTQ5NzksIDQ3Ljc1NzE5Ml0sIFs3LjI5NDk5OSwgNDcuNzU3MDUxXSwgWzcuMjk1MTE2LCA0Ny43NTY3NTVdLCBbNy4yOTU2MjUsIDQ3Ljc1NTc4MV0sIFs3LjI5NTY5NiwgNDcuNzU1NTYzXSwgWzcuMjk1NjgzLCA0Ny43NTU0MzddLCBbNy4yOTU1ODMsIDQ3Ljc1NTI4OV0sIFs3LjI5NTQ2MSwgNDcuNzU1MTk0XSwgWzcuMjk1MDY3LCA0Ny43NTUwMDJdLCBbNy4yOTQ4NTMsIDQ3Ljc1NDg3Nl0sIFs3LjI4ODk5MiwgNDcuNzUyMzE1XSwgWzcuMjg1MjM5LCA0Ny43NTA3MTJdLCBbNy4yODMxNDgsIDQ3Ljc0OTg3NV0sIFs3LjI4MTQsIDQ3Ljc0OTIyMV0sIFs3LjI3ODcyNywgNDcuNzQ4MjkyXSwgWzcuMjc1NTY1LCA0Ny43NDcyOTZdLCBbNy4yNzI5OTgsIDQ3Ljc0NjU2Nl0sIFs3LjI3MDQ2NCwgNDcuNzQ1OTJdLCBbNy4yNjkxMiwgNDcuNzQ1NjAyXSwgWzcuMjY3NDQxLCA0Ny43NDUyMjhdLCBbNy4yNjUwOTksIDQ3Ljc0NDc1NV0sIFs3LjI2MzExNywgNDcuNzQ0MzkzXSwgWzcuMjYwMzM3LCA0Ny43NDM5NV0sIFs3LjI1ODg5OSwgNDcuNzQzNzQ5XSwgWzcuMjU2MzI1LCA0Ny43NDM0MzRdLCBbNy4yMzkxMTgsIDQ3Ljc0MTU3Nl0sIFs3LjIzNTg5MywgNDcuNzQxMjExXSwgWzcuMjM0NjM3LCA0Ny43NDEwNDldLCBbNy4yMzIxMTgsIDQ3Ljc0MDY5NV0sIFs3LjIyODkyNCwgNDcuNzQwMTgyXSwgWzcuMjI2ODUxLCA0Ny43Mzk4MTNdLCBbNy4yMjM4OTEsIDQ3LjczOTIzNV0sIFs3LjIyMDEzLCA0Ny43Mzg0MDJdLCBbNy4yMTgyMzEsIDQ3LjczNzk0NF0sIFs3LjIxNjAxMywgNDcuNzM3MzcyXSwgWzcuMjEzODA4LCA0Ny43MzY3NjRdLCBbNy4yMDI5NTcsIDQ3LjczMzY3M10sIFs3LjIwMTI2NywgNDcuNzMzMjE2XSwgWzcuMTk5MDQ0LCA0Ny43MzI2NDddLCBbNy4xOTc0ODEsIDQ3LjczMjI3Ml0sIFs3LjE5NTA1NywgNDcuNzMxNzI4XSwgWzcuMTkzNjU1LCA0Ny43MzE0MzddLCBbNy4xOTAzODEsIDQ3LjczMDgyM10sIFs3LjE4NTQxLCA0Ny43MzAwMTNdLCBbNy4xODE5NDQsIDQ3LjcyOTRdLCBbNy4xNzg0NywgNDcuNzI4NzEzXSwgWzcuMTc1NzI2LCA0Ny43MjgxMjldLCBbNy4xNjgwMDMsIDQ3LjcyNjQ0NV0sIFs3LjE2NjUxMSwgNDcuNzI2MDldLCBbNy4xNjQ1MzQsIDQ3LjcyNTU4NV0sIFs3LjE2MjA3NCwgNDcuNzI0ODk1XSwgWzcuMTYwODgyLCA0Ny43MjQ1MzZdLCBbNy4xNTkxNTksIDQ3LjcyMzk4XSwgWzcuMTU2OTIyLCA0Ny43MjMyMDVdLCBbNy4xNTI0NTksIDQ3LjcyMTUyN10sIFs3LjE1MDE3MiwgNDcuNzIwNjk1XSwgWzcuMTQ3NDM0LCA0Ny43MTk3NjddLCBbNy4xMzg2MjgsIDQ3LjcxNjg4NV0sIFs3LjEzNTE1NCwgNDcuNzE1ODJdLCBbNy4xMzE4MzksIDQ3LjcxNDkwOF0sIFs3LjEyOTA1OCwgNDcuNzE0MjAyXSwgWzcuMTI2NDY2LCA0Ny43MTM1OThdLCBbNy4xMjQ3NzIsIDQ3LjcxMzIzXSwgWzcuMTIyMzI4LCA0Ny43MTI3MzddLCBbNy4xMjAxMDIsIDQ3LjcxMjMyNV0sIFs3LjExODM1OSwgNDcuNzEyMDI3XSwgWzcuMTE1NTEsIDQ3LjcxMTU4NF0sIFs3LjExMjY2MiwgNDcuNzExMTk3XSwgWzcuMTA4NTc2LCA0Ny43MTA3MjNdLCBbNy4xMDU0MzEsIDQ3LjcxMDQyMl0sIFs3LjEwMjM1NSwgNDcuNzEwMTk3XSwgWzcuMTAwMjYxLCA0Ny43MTAwODFdLCBbNy4wOTcyMjEsIDQ3LjcwOTk3XSwgWzcuMDkzOTA0LCA0Ny43MDk5MzNdLCBbNy4wOTIwMTEsIDQ3LjcwOTk0Nl0sIFs3LjA4ODY2NywgNDcuNzEwMDMzXSwgWzcuMDg3MDA0LCA0Ny43MTAxMDZdLCBbNy4wODQzMjgsIDQ3LjcxMDI1OV0sIFs3LjA4MjIxNCwgNDcuNzEwNDE3XSwgWzcuMDgwNzE2LCA0Ny43MTA1NTFdLCBbNy4wNjY4ODQsIDQ3LjcxMjA0M10sIFs3LjA2NDE4LCA0Ny43MTIzMjNdLCBbNy4wNjI2LCA0Ny43MTI0NzFdLCBbNy4wNTk5MzgsIDQ3LjcxMjYxN10sIFs3LjA1ODQ1NywgNDcuNzEyNjQxXSwgWzcuMDU2ODE4LCA0Ny43MTI2MTddLCBbNy4wNTUxNzgsIDQ3LjcxMjUyNl0sIFs3LjA1MzkzMiwgNDcuNzEyNDE0XSwgWzcuMDUyNDM0LCA0Ny43MTIyMzNdLCBbNy4wNTA5NzgsIDQ3LjcxMjAwMl0sIFs3LjA1MDA4NCwgNDcuNzExODM3XSwgWzcuMDQ4MTg4LCA0Ny43MTE0MDhdLCBbNy4wNDcyNjQsIDQ3LjcxMTE2XSwgWzcuMDQ2NDM0LCA0Ny43MTA5MTFdLCBbNy4wNDQ4MjMsIDQ3LjcxMDM4NV0sIFs3LjA0MzQxMSwgNDcuNzA5ODU1XSwgWzcuMDQyNjUyLCA0Ny43MDk1NDRdLCBbNy4wNDEwNDcsIDQ3LjcwODgzMl0sIFs3LjAzOTk0MiwgNDcuNzA4MzE3XSwgWzcuMDM1OTAzLCA0Ny43MDYzNzRdLCBbNy4wMzM4NzIsIDQ3LjcwNTMzM10sIFs3LjAzMzI5NywgNDcuNzA1MDI2XSwgWzcuMDMxODg0LCA0Ny43MDQyMjldLCBbNy4wMzA2NzUsIDQ3LjcwMzQ5NF0sIFs3LjAyOTAxMSwgNDcuNzAyNDIxXSwgWzcuMDI3NjM4LCA0Ny43MDE0Nl0sIFs3LjAyNjg4MiwgNDcuNzAwOV0sIFs3LjAyNTExLCA0Ny42OTk0NzRdLCBbNy4wMjM2ODMsIDQ3LjY5ODIxOF0sIFs3LjAyMzQwMiwgNDcuNjk3OTY3XSwgWzcuMDIxMTYsIDQ3LjY5NTgxNV0sIFs3LjAxNjI3NywgNDcuNjkxMDI2XSwgWzcuMDE0ODcsIDQ3LjY4OTc2OF0sIFs3LjAxMzM1MywgNDcuNjg4NTQ3XSwgWzcuMDEyNTY3LCA0Ny42ODc5NjNdLCBbNy4wMTE2NDcsIDQ3LjY4NzMzMV0sIFs3LjAxMDcyOCwgNDcuNjg2NzI3XSwgWzcuMDA5ODEyLCA0Ny42ODYxNzddLCBbNy4wMDg4MDEsIDQ3LjY4NTU5NV0sIFs3LjAwNzc3MSwgNDcuNjg1MDQ2XSwgWzcuMDA2Njg2LCA0Ny42ODQ0OTVdLCBbNy4wMDU3ODgsIDQ3LjY4NDA3OF0sIFs3LjAwNDY3OCwgNDcuNjgzNTkyXSwgWzcuMDAyNDg1LCA0Ny42ODI3MjFdLCBbNy4wMDA1NDcsIDQ3LjY4MjAyNV0sIFs2Ljk5MzUwNiwgNDcuNjc5NjEyXSwgWzYuOTkwMDgyLCA0Ny42Nzg1MDddLCBbNi45ODU0MTUsIDQ3LjY3NzA4M10sIFs2Ljk4MTY0NywgNDcuNjc2MTNdLCBbNi45ODExMTYsIDQ3LjY3NTk3Ml0sIFs2Ljk3Nzg0OSwgNDcuNjc0NzkxXSwgWzYuOTc1NjI1LCA0Ny42NzQwNTNdLCBbNi45NzE5NzQsIDQ3LjY3MjczN10sIFs2Ljk2NTY0NiwgNDcuNjcwMzQxXSwgWzYuOTYyODUsIDQ3LjY2OTI0OV0sIFs2Ljk2MTY5NiwgNDcuNjY4NzYzXSwgWzYuOTYwNjQyLCA0Ny42NjgyOThdLCBbNi45NTg0NzUsIDQ3LjY2NzI1XSwgWzYuOTU3Njg0LCA0Ny42NjY4NF0sIFs2Ljk1NTQ5NywgNDcuNjY1NTk4XSwgWzYuOTU0MTIsIDQ3LjY2NDc0MV0sIFs2Ljk0OTk5NSwgNDcuNjYyMDUxXSwgWzYuOTQ4NDQzLCA0Ny42NjEwNzFdLCBbNi45NDc1MDMsIDQ3LjY2MDQ5M10sIFs2Ljk0NjQ4NywgNDcuNjU5ODk1XSwgWzYuOTQ0NjYsIDQ3LjY1ODkwMV0sIFs2Ljk0MzQzNiwgNDcuNjU4Mjg1XSwgWzYuOTQyMDUxLCA0Ny42NTc2MjJdLCBbNi45Mzk2NDQsIDQ3LjY1NjU3N10sIFs2LjkzODQ4NCwgNDcuNjU2MTA1XSwgWzYuOTM1NDY4LCA0Ny42NTQ5NTRdLCBbNi45MzEzODgsIDQ3LjY1MzUwOF0sIFs2LjkxMDcwNSwgNDcuNjQ2MzA4XSwgWzYuOTA4NDI4LCA0Ny42NDU1OTVdLCBbNi45MDY4MDgsIDQ3LjY0NTEzMl0sIFs2LjkwNTQyNCwgNDcuNjQ0Nzc2XSwgWzYuOTAzOTYxLCA0Ny42NDQ0NzFdLCBbNi45MDI3NzcsIDQ3LjY0NDI0OF0sIFs2LjkwMTQ2NiwgNDcuNjQ0MDM5XSwgWzYuODk5Mjc2LCA0Ny42NDM3OF0sIFs2Ljg5NzY0MiwgNDcuNjQzNjM4XSwgWzYuODk0NDQ3LCA0Ny42NDM0MDldLCBbNi44OTI2OTksIDQ3LjY0MzI0Ml0sIFs2Ljg5MTc1OSwgNDcuNjQzMTA5XSwgWzYuODkxMDY2LCA0Ny42NDI5NzldLCBbNi44OTAzNzMsIDQ3LjY0MjgyMV0sIFs2Ljg4OTcwMiwgNDcuNjQyNjM2XSwgWzYuODg4OTE2LCA0Ny42NDIzODVdLCBbNi44ODc4NjYsIDQ3LjY0MTk4N10sIFs2Ljg4NzI2MSwgNDcuNjQxNzE5XSwgWzYuODg2NTU5LCA0Ny42NDEzNjFdLCBbNi44ODU5NzMsIDQ3LjY0MTAxOV0sIFs2Ljg4NTQ0OCwgNDcuNjQwNjc0XSwgWzYuODg1MDE5LCA0Ny42NDAzNTVdLCBbNi44ODQ2NjEsIDQ3LjY0MDA3Nl0sIFs2Ljg4NDIxMiwgNDcuNjM5Njg5XSwgWzYuODgzMDk4LCA0Ny42Mzg1ODJdLCBbNi44ODI1NzIsIDQ3LjYzNzk3OV0sIFs2Ljg4MTU0OSwgNDcuNjM2ODk1XSwgWzYuODgxMTg4LCA0Ny42MzY1M10sIFs2Ljg4MDQ3LCA0Ny42MzU4ODFdLCBbNi44Nzk4OTgsIDQ3LjYzNTQxM10sIFs2Ljg3OTA3NywgNDcuNjM0ODAxXSwgWzYuODc3MDUyLCA0Ny42MzM0MjddLCBbNi44NzU4OCwgNDcuNjMyNzE0XSwgWzYuODc0Njg2LCA0Ny42MzIxMTNdLCBbNi44NzQxNDksIDQ3LjYzMTg4OV0sIFs2Ljg3MzQ5OCwgNDcuNjMxNjRdLCBbNi44NzA2NTEsIDQ3LjYzMDY1XSwgWzYuODY5OTEsIDQ3LjYzMDM2XSwgWzYuODY5MDcsIDQ3LjYyOTk4Nl0sIFs2Ljg2ODM0MiwgNDcuNjI5NjIzXSwgWzYuODY3NjkzLCA0Ny42MjkyNjddLCBbNi44NjcxMDIsIDQ3LjYyODkxNF0sIFs2Ljg2NTk5OSwgNDcuNjI4MTQxXSwgWzYuODY1NDI0LCA0Ny42Mjc2NzRdLCBbNi44NjQ2MDIsIDQ3LjYyNjkxNV0sIFs2Ljg2MzQzNSwgNDcuNjI1NjMyXSwgWzYuODYwMjAzLCA0Ny42MjE3ODddLCBbNi44NTk0MzEsIDQ3LjYyMDc4MV0sIFs2Ljg1ODY2MiwgNDcuNjE5NjQyXSwgWzYuODU4MTM5LCA0Ny42MTg3NTJdLCBbNi44NTc4MzIsIDQ3LjYxODE3NV0sIFs2Ljg1NzQ2MiwgNDcuNjE3MzcyXSwgWzYuODU3MTI4LCA0Ny42MTY1N10sIFs2Ljg1NjkyNywgNDcuNjE2MDA4XSwgWzYuODU2NjE5LCA0Ny42MTQ4OTJdLCBbNi44NTY0MzMsIDQ3LjYxNDFdLCBbNi44NTYyMjksIDQ3LjYxMjk0N10sIFs2Ljg1NjE3OSwgNDcuNjEyMjU4XSwgWzYuODU2MTU3LCA0Ny42MTA5OTJdLCBbNi44NTYxODgsIDQ3LjYxMDI5NV0sIFs2Ljg1NjI0MSwgNDcuNjA5Njc4XSwgWzYuODU2MzcsIDQ3LjYwODYzOV0sIFs2Ljg1Njc0OCwgNDcuNjA2MTY5XSwgWzYuODU2ODAyLCA0Ny42MDU0NjhdLCBbNi44NTY4MDQsIDQ3LjYwNDgyM10sIFs2Ljg1Njc0NCwgNDcuNjA0MDc4XSwgWzYuODU2NjI1LCA0Ny42MDMzNzZdLCBbNi44NTY0OSwgNDcuNjAyNzddLCBbNi44NTU3OSwgNDcuNjAwMzk0XSwgWzYuODU1Njg0LCA0Ny41OTk5NF0sIFs2Ljg1NTYwNSwgNDcuNTk5NDldLCBbNi44NTU1NTksIDQ3LjU5ODk3Nl0sIFs2Ljg1NTU1NCwgNDcuNTk4NDI1XSwgWzYuODU1NjA4LCA0Ny41OTc4MTddLCBbNi44NTU2OTcsIDQ3LjU5NzMwNl0sIFs2Ljg1NTg0MSwgNDcuNTk2NzkzXSwgWzYuODU2MDMxLCA0Ny41OTYyNDRdLCBbNi44NTcwMDksIDQ3LjU5Mzg0OV0sIFs2Ljg1NzIwNSwgNDcuNTkzMTYxXSwgWzYuODU3MzY4LCA0Ny41OTIxMTZdLCBbNi44NTc0MDgsIDQ3LjU5MTQxM10sIFs2Ljg1NzM2OSwgNDcuNTkwNzQ4XSwgWzYuODU3MzEsIDQ3LjU5MDMwMV0sIFs2Ljg1NzA5MiwgNDcuNTg5MzczXSwgWzYuODU2OTU2LCA0Ny41ODg5MzddLCBbNi44NTYwOTUsIDQ3LjU4NjY4NV0sIFs2Ljg1NTkxNywgNDcuNTg1OTk0XSwgWzYuODU1ODEsIDQ3LjU4NTQ1OF0sIFs2Ljg1NTc1NywgNDcuNTg0NzE2XSwgWzYuODU1Nzc5LCA0Ny41ODM5MDddLCBbNi44NTU5MiwgNDcuNTgzMTM3XSwgWzYuODU2MDk3LCA0Ny41ODI1Nl0sIFs2Ljg1NjI2OCwgNDcuNTgyMTE1XSwgWzYuODU2NDEsIDQ3LjU4MTgwNl0sIFs2Ljg1NzIyMywgNDcuNTgwMzM4XSwgWzYuODU3NDU2LCA0Ny41Nzk4MzddLCBbNi44NTc2NjUsIDQ3LjU3OTMxNV0sIFs2Ljg1Nzg1NywgNDcuNTc4NjU1XSwgWzYuODU3OTcyLCA0Ny41NzgwNTldLCBbNi44NTgwMSwgNDcuNTc3NTg3XSwgWzYuODU4MDA3LCA0Ny41NzcwMjZdLCBbNi44NTc5NjcsIDQ3LjU3NjU0Ml0sIFs2Ljg1NzksIDQ3LjU3NjEyMl0sIFs2Ljg1Nzc2MywgNDcuNTc1NTM5XSwgWzYuODU3MjQ5LCA0Ny41NzM5NDFdLCBbNi44NTcxMTgsIDQ3LjU3MzQ4N10sIFs2Ljg1NzAxMywgNDcuNTczMDIzXSwgWzYuODU2OTI4LCA0Ny41NzI1MzFdLCBbNi44NTY4ODIsIDQ3LjU3MjA1MV0sIFs2Ljg1Njg3MSwgNDcuNTcxNTY2XSwgWzYuODU2ODk0LCA0Ny41NzEwMDNdLCBbNi44NTY5NzQsIDQ3LjU3MDM3NV0sIFs2Ljg1NzE0NCwgNDcuNTY5NjA4XSwgWzYuODU3MzY1LCA0Ny41Njg5MzJdLCBbNi44NTc2MTMsIDQ3LjU2ODMzM10sIFs2Ljg1Nzk2NSwgNDcuNTY3NjU5XSwgWzYuODU4Mzk0LCA0Ny41NjY5NzldLCBbNi44NTg4MzgsIDQ3LjU2NjM2XSwgWzYuODYwMjg3LCA0Ny41NjQ0NjJdLCBbNi44NjExNzMsIDQ3LjU2MzIzMl0sIFs2Ljg2MTU5NywgNDcuNTYyNTk0XSwgWzYuODYyMDU2LCA0Ny41NjE4MzVdLCBbNi44NjI1NzIsIDQ3LjU2MDg2M10sIFs2Ljg2Mjk4OCwgNDcuNTU5OTUzXSwgWzYuODYzMzY0LCA0Ny41NTkwMTldLCBbNi44NjM2NDUsIDQ3LjU1ODE2OV0sIFs2Ljg2Mzg1MywgNDcuNTU3Mzk3XSwgWzYuODY0MTQ0LCA0Ny41NTU5MzhdLCBbNi44NjQyNzEsIDQ3LjU1NDk5NF0sIFs2Ljg2NDM4NywgNDcuNTUzMzA4XSwgWzYuODY0Mzk5LCA0Ny41NTIzOTJdLCBbNi44NjQzNzIsIDQ3LjU1MTQ2NF0sIFs2Ljg2NDMyLCA0Ny41NTA1ODNdLCBbNi44NjQxNjksIDQ3LjU0ODk2Ml0sIFs2Ljg2Mzg1MiwgNDcuNTQ2NjU5XSwgWzYuODYzNjA1LCA0Ny41NDUyMDRdLCBbNi44NjMwMTIsIDQ3LjU0MjM0Nl0sIFs2Ljg2MjU2LCA0Ny41NDA0ODFdLCBbNi44NjE5NjUsIDQ3LjUzODM4OV0sIFs2Ljg2MTQ4LCA0Ny41MzY4NTFdLCBbNi44NjA5NTMsIDQ3LjUzNTMwNF0sIFs2Ljg2MDM5MywgNDcuNTMzNzddLCBbNi44NTk3MSwgNDcuNTMyMDQ4XSwgWzYuODU4OTczLCA0Ny41MzAzMTldLCBbNi44NTg1NTgsIDQ3LjUyOTQwN10sIFs2Ljg1ODE3OCwgNDcuNTI4NjY4XSwgWzYuODU3MDM4LCA0Ny41MjYzMzFdLCBbNi44NTU2MzUsIDQ3LjUyMzgxM10sIFs2Ljg1NDU0NiwgNDcuNTIxOTEyXSwgWzYuODUzODU3LCA0Ny41MjA3ODldLCBbNi44NTMzNDYsIDQ3LjUyMDAwNF0sIFs2Ljg1MjQzNSwgNDcuNTE4Njg1XSwgWzYuODUxNjk0LCA0Ny41MTc2OTZdLCBbNi44NTA0NiwgNDcuNTE2MjM0XSwgWzYuODQ5ODY3LCA0Ny41MTU1ODhdLCBbNi44NDkwMjcsIDQ3LjUxNDc1N10sIFs2Ljg0ODYyMywgNDcuNTE0Mzg4XSwgWzYuODQ4MDA5LCA0Ny41MTM4N10sIFs2Ljg0NzIyNywgNDcuNTEzMjM2XSwgWzYuODQ1OTM1LCA0Ny41MTIzNDJdLCBbNi44NDQ1NzUsIDQ3LjUxMTQ3N10sIFs2Ljg0Mzc5NSwgNDcuNTExMDQxXSwgWzYuODQzMjkxLCA0Ny41MTA3OF0sIFs2Ljg0MjczOCwgNDcuNTEwNTE1XSwgWzYuODQxMzYxLCA0Ny41MDk4OTZdLCBbNi44Mzk2MTYsIDQ3LjUwOTIwNV0sIFs2LjgyNzUyNSwgNDcuNTA0ODc3XSwgWzYuODI2Nzc1LCA0Ny41MDQ1ODNdLCBbNi44MjU2MjIsIDQ3LjUwNDA2Ml0sIFs2LjgyMzExMywgNDcuNTAyODAxXSwgWzYuODIyMDk3LCA0Ny41MDIyNDddLCBbNi44MjE3MywgNDcuNTAyMDA0XSwgWzYuODIxMDI0LCA0Ny41MDE1ODJdLCBbNi44MjAzODQsIDQ3LjUwMTE0Nl0sIFs2LjgxOTUxMSwgNDcuNTAwNDYyXSwgWzYuODE4NzYsIDQ3LjQ5OTgxMl0sIFs2LjgxODIyLCA0Ny40OTkzXSwgWzYuODE3NDY5LCA0Ny40OTg0MTVdLCBbNi44MTY3NSwgNDcuNDk3NDU1XSwgWzYuODE2MTM4LCA0Ny40OTY0NDRdLCBbNi44MTU4NTgsIDQ3LjQ5NTg1XSwgWzYuODE1NDIxLCA0Ny40OTQ3MTldLCBbNi44MTUwNTMsIDQ3LjQ5MzQ5XSwgWzYuODE0NjgzLCA0Ny40OTIxMTZdLCBbNi44MTQzNDgsIDQ3LjQ5MTIwOF0sIFs2LjgxNDAzMSwgNDcuNDkwNTE1XSwgWzYuODEzNzQ0LCA0Ny40OTAwMDldLCBbNi44MTM0ODcsIDQ3LjQ4OTYxNV0sIFs2LjgxMjc3MiwgNDcuNDg4NjYzXSwgWzYuODEyMzM5LCA0Ny40ODgxNTZdLCBbNi44MTE2NjgsIDQ3LjQ4NzU0N10sIFs2LjgxMDk3MSwgNDcuNDg3MDJdLCBbNi44MTA0NDUsIDQ3LjQ4NjY1N10sIFs2LjgwOTgyMywgNDcuNDg2MjkzXSwgWzYuODA5MTkyLCA0Ny40ODU5Nl0sIFs2LjgwODExNCwgNDcuNDg1NDY4XSwgWzYuODA3MTc1LCA0Ny40ODUxMDJdLCBbNi44MDQzMTksIDQ3LjQ4NDExNl0sIFs2LjgwMzYyMiwgNDcuNDgzODk1XSwgWzYuODAwOTAyLCA0Ny40ODI4NDldLCBbNi43OTc0MzYsIDQ3LjQ4MTYyNl0sIFs2Ljc4NzE3MywgNDcuNDc4MTAxXSwgWzYuNzg1NjQ1LCA0Ny40Nzc1MThdLCBbNi43ODQ4OTQsIDQ3LjQ3NzIxNV0sIFs2Ljc4MzU2NywgNDcuNDc2NTldLCBbNi43ODI3MjIsIDQ3LjQ3NjEyNF0sIFs2Ljc4MTM4MSwgNDcuNDc1MzAxXSwgWzYuNzgwMDgsIDQ3LjQ3NDM2M10sIFs2Ljc3ODc0NSwgNDcuNDczMjk0XSwgWzYuNzc2NjE3LCA0Ny40NzE0NTldLCBbNi43NzU4MjUsIDQ3LjQ3MDgxMl0sIFs2Ljc3NTI3LCA0Ny40NzAzOV0sIFs2Ljc3NDc3MywgNDcuNDcwMDUzXSwgWzYuNzc0MDY5LCA0Ny40Njk2NDhdLCBbNi43NzM0ODEsIDQ3LjQ2OTM3NF0sIFs2Ljc3MjcwMSwgNDcuNDY5MDU5XSwgWzYuNzcxNDk5LCA0Ny40Njg2MjNdLCBbNi43NzAzODYsIDQ3LjQ2ODE5OV0sIFs2Ljc2OTg3MiwgNDcuNDY3OTY5XSwgWzYuNzY5MzgsIDQ3LjQ2NzcyM10sIFs2Ljc2ODg1NCwgNDcuNDY3NDJdLCBbNi43NjgzODgsIDQ3LjQ2NzEwMl0sIFs2Ljc2ODAzNCwgNDcuNDY2ODNdLCBbNi43Njc3MTMsIDQ3LjQ2NjU0Nl0sIFs2Ljc2NzQxNiwgNDcuNDY2MjUyXSwgWzYuNzY2OTQ4LCA0Ny40NjU3MjVdLCBbNi43NjY0NzcsIDQ3LjQ2NTA5MV0sIFs2Ljc2NTQ5MywgNDcuNDYzNTE3XSwgWzYuNzY1MTY1LCA0Ny40NjMwNTRdLCBbNi43NjQ4ODgsIDQ3LjQ2MjcyMV0sIFs2Ljc2NDM1MSwgNDcuNDYyMTc0XSwgWzYuNzYzOTU5LCA0Ny40NjE4NjRdLCBbNi43NjMxMzIsIDQ3LjQ2MTI5OV0sIFs2Ljc2MjgxNCwgNDcuNDYxMTE4XSwgWzYuNzYxNDM5LCA0Ny40NjA0MDNdLCBbNi43NjAxNjQsIDQ3LjQ1OTc3M10sIFs2Ljc1OTYzMywgNDcuNDU5NDUzXSwgWzYuNzU4ODIxLCA0Ny40NTg5MDJdLCBbNi43NTgzOTYsIDQ3LjQ1ODU0M10sIFs2Ljc1Nzc4NCwgNDcuNDU3OTIyXSwgWzYuNzU3MTksIDQ3LjQ1NzIyXSwgWzYuNzU2MDc2LCA0Ny40NTU3NTRdLCBbNi43NTU0OCwgNDcuNDU1MDUxXSwgWzYuNzU0Nzg5LCA0Ny40NTQzODNdLCBbNi43NTQwNzgsIDQ3LjQ1Mzg1N10sIFs2Ljc1MzA5LCA0Ny40NTMyNzZdLCBbNi43NTIyNTksIDQ3LjQ1Mjg3N10sIFs2Ljc1MDU0MywgNDcuNDUyMTU4XSwgWzYuNzUwMDI3LCA0Ny40NTE5MjRdLCBbNi43NDkzMDcsIDQ3LjQ1MTU3MV0sIFs2Ljc0ODc2NywgNDcuNDUxMjc5XSwgWzYuNzQ4MDY1LCA0Ny40NTA4MzldLCBbNi43NDc0MzIsIDQ3LjQ1MDM4Nl0sIFs2Ljc0NjczLCA0Ny40NDk3OTJdLCBbNi43NDYyMTQsIDQ3LjQ0OTI5Nl0sIFs2Ljc0NTI5OSwgNDcuNDQ4MzU2XSwgWzYuNzQ0OTE3LCA0Ny40NDc5OTFdLCBbNi43NDQzODksIDQ3LjQ0NzU0NF0sIFs2Ljc0Mzc5NSwgNDcuNDQ3MTFdLCBbNi43NDMzNzQsIDQ3LjQ0NjgzMV0sIFs2Ljc0MjkxOSwgNDcuNDQ2NTU1XSwgWzYuNzQyMzc4LCA0Ny40NDYyNTVdLCBbNi43NDEzNjEsIDQ3LjQ0NTc4OV0sIFs2Ljc0MTA1NCwgNDcuNDQ1Njg5XSwgWzYuNzQwNTUyLCA0Ny40NDU0OTRdLCBbNi43Mzk4MjEsIDQ3LjQ0NTI1Ml0sIFs2LjczOTA2OSwgNDcuNDQ1MDM5XSwgWzYuNzM3Njc1LCA0Ny40NDQ3MzldLCBbNi43MzQyMTcsIDQ3LjQ0NDE1N10sIFs2LjczMzI0NiwgNDcuNDQzOTQzXSwgWzYuNzMyNTksIDQ3LjQ0Mzc2NV0sIFs2LjczMTU2NywgNDcuNDQzNDMyXSwgWzYuNzMwODA5LCA0Ny40NDMxNDJdLCBbNi43MzAwMzksIDQ3LjQ0MjgwNV0sIFs2LjcyOTE4NCwgNDcuNDQyMzU0XSwgWzYuNzI4ODE2LCA0Ny40NDIxMzldLCBbNi43Mjg0NzMsIDQ3LjQ0MTkxNF0sIFs2LjcyNzkwNCwgNDcuNDQxNTA2XSwgWzYuNzI3MDQ2LCA0Ny40NDA3OV0sIFs2LjcyNjA5OSwgNDcuNDM5ODU1XSwgWzYuNzI1MjEzLCA0Ny40Mzg5MDJdLCBbNi43MjQzMSwgNDcuNDM3OThdLCBbNi43MjM5NjcsIDQ3LjQzNzY2OF0sIFs2LjcyMzI4MiwgNDcuNDM3MTIxXSwgWzYuNzIyNTQsIDQ3LjQzNjYzMl0sIFs2LjcyMjAwOSwgNDcuNDM2MzI1XSwgWzYuNzIwOTY3LCA0Ny40MzU4MjVdLCBbNi43MjAwOTEsIDQ3LjQzNTQ3OV0sIFs2LjcxOTEwNCwgNDcuNDM1MTddLCBbNi43MTgwNiwgNDcuNDM0OTJdLCBbNi43MTcwNzYsIDQ3LjQzNDc1MV0sIFs2LjcxNjI0MywgNDcuNDM0NjUxXSwgWzYuNzE1MjI1LCA0Ny40MzQ1ODZdLCBbNi43MTQ2NTEsIDQ3LjQzNDU3NF0sIFs2LjcxMzU0NCwgNDcuNDM0NjA3XSwgWzYuNzEyNjU0LCA0Ny40MzQ2OF0sIFs2LjcxMTkwMiwgNDcuNDM0NzYxXSwgWzYuNzA4NjksIDQ3LjQzNTIwNl0sIFs2LjcwNzY4MiwgNDcuNDM1M10sIFs2LjcwNzMwNywgNDcuNDM1MzFdLCBbNi43MDY1ODMsIDQ3LjQzNTI5Ml0sIFs2LjcwNTg3NCwgNDcuNDM1MjNdLCBbNi43MDUyNzIsIDQ3LjQzNTEzOF0sIFs2LjcwNDQ5MiwgNDcuNDM0OTQ4XSwgWzYuNzAzOTAzLCA0Ny40MzQ3NTNdLCBbNi43MDMzNDcsIDQ3LjQzNDUyMl0sIFs2LjcwMjk0NywgNDcuNDM0MzJdLCBbNi43MDI1NjIsIDQ3LjQzNDA5Nl0sIFs2LjcwMTkyOSwgNDcuNDMzNjcxXSwgWzYuNzAwNjczLCA0Ny40MzI3M10sIFs2LjcwMDA5NiwgNDcuNDMyMzI1XSwgWzYuNjk5NDk1LCA0Ny40MzE5NjhdLCBbNi42OTg5OTQsIDQ3LjQzMTcyNF0sIFs2LjY5ODU3MSwgNDcuNDMxNTUzXSwgWzYuNjk4MTMzLCA0Ny40MzE0MDZdLCBbNi42OTczNjUsIDQ3LjQzMTE5OF0sIFs2LjY5NDk3OSwgNDcuNDMwNzAxXSwgWzYuNjk0MDk1LCA0Ny40MzA0NzVdLCBbNi42OTM1OTgsIDQ3LjQzMDMxMV0sIFs2LjY5MzEyOSwgNDcuNDMwMTI1XSwgWzYuNjkyNjg4LCA0Ny40Mjk5Ml0sIFs2LjY5MjI2MywgNDcuNDI5NjgzXSwgWzYuNjkxODIxLCA0Ny40MjkzOTFdLCBbNi42OTE0OSwgNDcuNDI5MTM1XSwgWzYuNjkxMDg2LCA0Ny40Mjg3NTRdLCBbNi42OTA3NiwgNDcuNDI4Mzc0XSwgWzYuNjkwMzA4LCA0Ny40Mjc2NzddLCBbNi42ODk2MzcsIDQ3LjQyNjQyNF0sIFs2LjY4OTMyMywgNDcuNDI1ODk4XSwgWzYuNjg5MTA2LCA0Ny40MjU1OTZdLCBbNi42ODg3NjYsIDQ3LjQyNTIwM10sIFs2LjY4ODM1OSwgNDcuNDI0ODI1XSwgWzYuNjg3ODc4LCA0Ny40MjQ0N10sIFs2LjY4NzIxOSwgNDcuNDI0MDgxXSwgWzYuNjg2NTAyLCA0Ny40MjM3NTRdLCBbNi42ODU5NzksIDQ3LjQyMzU2XSwgWzYuNjg1NTE1LCA0Ny40MjM0MTVdLCBbNi42ODQ5NjMsIDQ3LjQyMzI2Nl0sIFs2LjY4MzkzNSwgNDcuNDIzMDUyXSwgWzYuNjgzMDE2LCA0Ny40MjI5MjJdLCBbNi42ODIyNjYsIDQ3LjQyMjg0M10sIFs2LjY4MTU3MiwgNDcuNDIyNzk3XSwgWzYuNjgwODg2LCA0Ny40MjI3NzVdLCBbNi42ODAyNTEsIDQ3LjQyMjc4M10sIFs2LjY3OTYyMywgNDcuNDIyODA0XSwgWzYuNjc4NzQ4LCA0Ny40MjI4NzNdLCBbNi42Nzc2NTgsIDQ3LjQyMzAxMl0sIFs2LjY3NjkyNiwgNDcuNDIzMTQ2XSwgWzYuNjc2MTYzLCA0Ny40MjMzMTNdLCBbNi42NzU2MDYsIDQ3LjQyMzQ2MV0sIFs2LjY3NTA1NSwgNDcuNDIzNjI3XSwgWzYuNjc0NTUzLCA0Ny40MjM3OThdLCBbNi42NzQwNzUsIDQ3LjQyMzk4Ml0sIFs2LjY3MzU4NCwgNDcuNDI0MjA3XSwgWzYuNjczMDgzLCA0Ny40MjQ0NzhdLCBbNi42NzE5MDksIDQ3LjQyNTIxXSwgWzYuNjcwODY3LCA0Ny40MjU3MTJdLCBbNi42Njk5MzUsIDQ3LjQyNjA3XSwgWzYuNjY5MzQxLCA0Ny40MjYyN10sIFs2LjY2ODk5NSwgNDcuNDI2MzY5XSwgWzYuNjY4MzM1LCA0Ny40MjY2MDNdLCBbNi42NjY4NDgsIDQ3LjQyNzI4Nl0sIFs2LjY2NTYzNywgNDcuNDI3ODE1XSwgWzYuNjY0NzM0LCA0Ny40MjgxNDldLCBbNi42NjM5MzYsIDQ3LjQyODQxMV0sIFs2LjY2MzQwNiwgNDcuNDI4NTUyXSwgWzYuNjYyNDkxLCA0Ny40Mjg3MzldLCBbNi42NjEzNiwgNDcuNDI4ODc3XSwgWzYuNjYwNzQxLCA0Ny40Mjg5MDhdLCBbNi42NTk4MzEsIDQ3LjQyODkxMV0sIFs2LjY1OTA4LCA0Ny40Mjg4NzNdLCBbNi42NTgyODMsIDQ3LjQyODgwNV0sIFs2LjY1NzQxNywgNDcuNDI4NzA4XSwgWzYuNjU2NDE4LCA0Ny40Mjg1NzVdLCBbNi42NTU5MDcsIDQ3LjQyODQ5OV0sIFs2LjY1NDg2LCA0Ny40MjgzMV0sIFs2LjY1MzI4NSwgNDcuNDI3OTY4XSwgWzYuNjUyMTQ3LCA0Ny40Mjc2NzhdLCBbNi42NTE1NTEsIDQ3LjQyNzUwOV0sIFs2LjY1MDA1MSwgNDcuNDI3MDI2XSwgWzYuNjQ5Mzk5LCA0Ny40MjY3OTNdLCBbNi42NDgyNzMsIDQ3LjQyNjM1N10sIFs2LjY0NzUxNCwgNDcuNDI2MDQzXSwgWzYuNjQ2MTM0LCA0Ny40MjU0MjFdLCBbNi42NDQ3ODcsIDQ3LjQyNDc2XSwgWzYuNjQzODI0LCA0Ny40MjQyNDhdLCBbNi42NDIxMDYsIDQ3LjQyMzI4M10sIFs2LjYzODY3NiwgNDcuNDIxMzAzXSwgWzYuNjM3MjY3LCA0Ny40MjA1NDNdLCBbNi42MzY1MTEsIDQ3LjQyMDE2Nl0sIFs2LjYzNTg4MiwgNDcuNDE5ODc0XSwgWzYuNjM0ODAyLCA0Ny40MTk0MDhdLCBbNi42MzQxMiwgNDcuNDE5MTMzXSwgWzYuNjMzNDU3LCA0Ny40MTg4OTNdLCBbNi42MzIxMDEsIDQ3LjQxODQ0NF0sIFs2LjYzMDg4NCwgNDcuNDE4MDkzXSwgWzYuNjI5NTYyLCA0Ny40MTc3NzZdLCBbNi42Mjg0MTYsIDQ3LjQxNzUzXSwgWzYuNjI3NDgsIDQ3LjQxNzM2MV0sIFs2LjYyNjQ4MSwgNDcuNDE3MjA4XSwgWzYuNjI0OTcxLCA0Ny40MTcwMjldLCBbNi42MjMyMTEsIDQ3LjQxNjkwM10sIFs2LjYyMTY3NCwgNDcuNDE2ODUzXSwgWzYuNjIwNzQ4LCA0Ny40MTY4NTFdLCBbNi42MTk3NTUsIDQ3LjQxNjg3OV0sIFs2LjYxODczNywgNDcuNDE2OTI5XSwgWzYuNjE2NzM0LCA0Ny40MTcwODddLCBbNi42MTQyNTgsIDQ3LjQxNzM2OV0sIFs2LjU5NjEyMSwgNDcuNDE5NjEzXSwgWzYuNTk0OTIsIDQ3LjQxOTcxNl0sIFs2LjU5NDE3NSwgNDcuNDE5NzQ0XSwgWzYuNTkzNDg2LCA0Ny40MTk3NDZdLCBbNi41OTI1MjQsIDQ3LjQxOTcwOV0sIFs2LjU5MTIwOSwgNDcuNDE5NTc4XSwgWzYuNTkwMTYyLCA0Ny40MTk0MTJdLCBbNi41ODk1NzMsIDQ3LjQxOTI4OF0sIFs2LjU4ODY2MywgNDcuNDE5MDU2XSwgWzYuNTg3NzYyLCA0Ny40MTg3NzZdLCBbNi41ODY1NzMsIDQ3LjQxODMzOV0sIFs2LjU4NDM5NCwgNDcuNDE3NDc0XSwgWzYuNTc2OTY1LCA0Ny40MTQ0NDddLCBbNi41NzU0MDEsIDQ3LjQxMzgzM10sIFs2LjU3NDA0MiwgNDcuNDEzMzY2XSwgWzYuNTczMjIsIDQ3LjQxMzEyM10sIFs2LjU3MTcxMSwgNDcuNDEyNzUyXSwgWzYuNTcwNTUxLCA0Ny40MTI1MjRdLCBbNi41NjkzNTUsIDQ3LjQxMjM0OV0sIFs2LjU2ODU4MywgNDcuNDEyMjU2XSwgWzYuNTY3NTkyLCA0Ny40MTIxNzhdLCBbNi41NjY5OSwgNDcuNDEyMTQ3XSwgWzYuNTY1NTUyLCA0Ny40MTIxMTFdLCBbNi41NjQ0MDUsIDQ3LjQxMjEyMV0sIFs2LjU2MDY0NSwgNDcuNDEyMTk4XSwgWzYuNTU5MjMxLCA0Ny40MTIxOTJdLCBbNi41NTgxOTUsIDQ3LjQxMjE3Ml0sIFs2LjU1NzMxMiwgNDcuNDEyMTM5XSwgWzYuNTU2MzY3LCA0Ny40MTIwODRdLCBbNi41NTU0MDQsIDQ3LjQxMjAxXSwgWzYuNTU0MzAzLCA0Ny40MTE5MDZdLCBbNi41NTMwNjEsIDQ3LjQxMTc1XSwgWzYuNTUxNDQ3LCA0Ny40MTE1MTRdLCBbNi41NDcyNjIsIDQ3LjQxMDgwMV0sIFs2LjU0NTU3OCwgNDcuNDEwNTMzXSwgWzYuNTQ0MTg4LCA0Ny40MTAzMzldLCBbNi41NDI3NzUsIDQ3LjQxMDE3OF0sIFs2LjU0MDg3MywgNDcuNDEwMDE2XSwgWzYuNTM4NTg4LCA0Ny40MDk5MDhdLCBbNi41MzcyNzksIDQ3LjQwOTg4N10sIFs2LjUzNTQwMiwgNDcuNDA5OTA2XSwgWzYuNTMzMTY5LCA0Ny40MTAwMDNdLCBbNi41MzIyNzksIDQ3LjQxMDA3XSwgWzYuNTMwNTg0LCA0Ny40MTAyMzRdLCBbNi41Mjg0OTIsIDQ3LjQxMDQ5NF0sIFs2LjUyNjQzNiwgNDcuNDEwODA2XSwgWzYuNTIxNjczLCA0Ny40MTE1N10sIFs2LjUxOTI3OSwgNDcuNDExODk1XSwgWzYuNTE4MzY3LCA0Ny40MTIwMDJdLCBbNi41MTYyMTQsIDQ3LjQxMjE4OV0sIFs2LjUxNDMwOCwgNDcuNDEyMjhdLCBbNi41MTMwODYsIDQ3LjQxMjI5Nl0sIFs2LjUxMTQ4MywgNDcuNDEyMjY1XSwgWzYuNTA5NzQsIDQ3LjQxMjE2Nl0sIFs2LjUwOTI4MiwgNDcuNDEyMTJdLCBbNi41MDg1ODksIDQ3LjQxMjAyOF0sIFs2LjUwNzkwOSwgNDcuNDExOTA5XSwgWzYuNTA3MjkxLCA0Ny40MTE3ODFdLCBbNi41MDY2ODgsIDQ3LjQxMTYzMl0sIFs2LjUwNjA0NCwgNDcuNDExNDUyXSwgWzYuNTA1NDU3LCA0Ny40MTEyNjNdLCBbNi41MDQ3OTcsIDQ3LjQxMTAyXSwgWzYuNTA0MjQxLCA0Ny40MTA3ODddLCBbNi41MDMxODksIDQ3LjQxMDI3OV0sIFs2LjUwMDc1MiwgNDcuNDA5MDI0XSwgWzYuNDk3NDU4LCA0Ny40MDczXSwgWzYuNDk2Njg4LCA0Ny40MDY5MTZdLCBbNi40OTYyMjcsIDQ3LjQwNjcwOV0sIFs2LjQ5NTMwMywgNDcuNDA2MzZdLCBbNi40OTQ0NzMsIDQ3LjQwNjExMl0sIFs2LjQ5MzcyNywgNDcuNDA1OTQ5XSwgWzYuNDkzMTEzLCA0Ny40MDU4NDZdLCBbNi40OTIwNjIsIDQ3LjQwNTc0Nl0sIFs2LjQ5MTMxOCwgNDcuNDA1NzJdLCBbNi40OTA4NjIsIDQ3LjQwNTcyNl0sIFs2LjQ5MDI1LCA0Ny40MDU3NTldLCBbNi40ODkzMjMsIDQ3LjQwNTg1OF0sIFs2LjQ4ODMyOCwgNDcuNDA2MDVdLCBbNi40ODc0NzcsIDQ3LjQwNjI3MV0sIFs2LjQ4NjcyNSwgNDcuNDA2NTI4XSwgWzYuNDg0ODg1LCA0Ny40MDcyNV0sIFs2LjQ4NDQ5MywgNDcuNDA3Mzg3XSwgWzYuNDgzODU1LCA0Ny40MDc1OF0sIFs2LjQ4MzA5NiwgNDcuNDA3NzY4XSwgWzYuNDgyMzg5LCA0Ny40MDc4OTVdLCBbNi40ODE4MjMsIDQ3LjQwNzk3XSwgWzYuNDgxMjE2LCA0Ny40MDgwMjddLCBbNi40ODA1MTQsIDQ3LjQwODA1XSwgWzYuNDgwMDA0LCA0Ny40MDgwNDddLCBbNi40NzkzODIsIDQ3LjQwODAxOF0sIFs2LjQ3ODUyLCA0Ny40MDc5M10sIFs2LjQ3Nzg5OCwgNDcuNDA3ODMzXSwgWzYuNDc3Mjg3LCA0Ny40MDc3MDddLCBbNi40NzY3ODQsIDQ3LjQwNzU3OF0sIFs2LjQ3NjI4NSwgNDcuNDA3NDI5XSwgWzYuNDczOTg5LCA0Ny40MDY2NjJdLCBbNi40NzM0NDQsIDQ3LjQwNjQ5OF0sIFs2LjQ3MjE4OSwgNDcuNDA2MTg1XSwgWzYuNDcxMzkxLCA0Ny40MDYwNF0sIFs2LjQ3MDcxMywgNDcuNDA1OTQyXSwgWzYuNDY5ODA3LCA0Ny40MDU4NTVdLCBbNi40NjgzNDgsIDQ3LjQwNThdLCBbNi40Njc2NTUsIDQ3LjQwNTgxNF0sIFs2LjQ2Njg1NiwgNDcuNDA1ODU4XSwgWzYuNDY2MDcsIDQ3LjQwNTkzNl0sIFs2LjQ2NDkzNSwgNDcuNDA2MDk5XSwgWzYuNDYzMTUxLCA0Ny40MDY0NTJdLCBbNi40NjE1OTgsIDQ3LjQwNjgxMl0sIFs2LjQ1OTkyNCwgNDcuNDA3MThdLCBbNi40NTg2OTcsIDQ3LjQwNzQxM10sIFs2LjQ1ODE1NCwgNDcuNDA3NTA0XSwgWzYuNDU2OTg1LCA0Ny40MDc2NTJdLCBbNi40NTYzNTksIDQ3LjQwNzcxNV0sIFs2LjQ1NTQxMiwgNDcuNDA3Nzc1XSwgWzYuNDU0NDUxLCA0Ny40MDc3ODldLCBbNi40NTM1MSwgNDcuNDA3NzU5XSwgWzYuNDUyODY2LCA0Ny40MDc3MTRdLCBbNi40NTE4ODYsIDQ3LjQwNzYwNF0sIFs2LjQ1MTAxMywgNDcuNDA3NDU4XSwgWzYuNDUwMjUxLCA0Ny40MDcyOTZdLCBbNi40NDk1NTksIDQ3LjQwNzExOF0sIFs2LjQ0ODgyNSwgNDcuNDA2ODkzXSwgWzYuNDQ3NzcyLCA0Ny40MDY1MV0sIFs2LjQ0NzM1NCwgNDcuNDA2MzMxXSwgWzYuNDQ2MzM1LCA0Ny40MDU4NTZdLCBbNi40NDU1NTcsIDQ3LjQwNTQxXSwgWzYuNDQ0ODYyLCA0Ny40MDQ5NDVdLCBbNi40NDMwNzYsIDQ3LjQwMzUxM10sIFs2LjQ0MjUzNywgNDcuNDAzMTQyXSwgWzYuNDQxODE2LCA0Ny40MDI2OTVdLCBbNi40Mzk3ODgsIDQ3LjQwMTYyNV0sIFs2LjQzOTIzNywgNDcuNDAxMjhdLCBbNi40Mzg2OCwgNDcuNDAwODczXSwgWzYuNDM4MTQ2LCA0Ny40MDA0MDFdLCBbNi40Mzc4MSwgNDcuNDAwMDQ4XSwgWzYuNDM3NDAxLCA0Ny4zOTk1MzNdLCBbNi40MzY0MTYsIDQ3LjM5Nzk0NF0sIFs2LjQzNjE5MywgNDcuMzk3NjI1XSwgWzYuNDM1ODA3LCA0Ny4zOTcxNTZdLCBbNi40MzUyNCwgNDcuMzk2NTkzXSwgWzYuNDM0ODQ2LCA0Ny4zOTYyNzVdLCBbNi40MzQyMjYsIDQ3LjM5NTg0MV0sIFs2LjQzMjY4MiwgNDcuMzk0ODk5XSwgWzYuNDMyMTU4LCA0Ny4zOTQ1NDJdLCBbNi40MzE1MjEsIDQ3LjM5NDAyOF0sIFs2LjQzMTIxOSwgNDcuMzkzNzM5XSwgWzYuNDMwODgsIDQ3LjM5MzM2Nl0sIFs2LjQzMDUzOSwgNDcuMzkyOTIzXSwgWzYuNDMwMjg2LCA0Ny4zOTI1MzddLCBbNi40MzAwNDksIDQ3LjM5MjA3Ml0sIFs2LjQyOTkxMSwgNDcuMzkxNzQyXSwgWzYuNDI5NzAzLCA0Ny4zOTEwNDhdLCBbNi40Mjk0ODksIDQ3LjM4OTU5Nl0sIFs2LjQyOTM1NiwgNDcuMzg4OTkzXSwgWzYuNDI5MDk0LCA0Ny4zODgyODFdLCBbNi40Mjg4ODEsIDQ3LjM4Nzg0Ml0sIFs2LjQyODcwNiwgNDcuMzg3NTUzXSwgWzYuNDI4Mzk2LCA0Ny4zODcxMTNdLCBbNi40MjgwMzIsIDQ3LjM4NjY1NV0sIFs2LjQyNzU0NywgNDcuMzg2MTYyXSwgWzYuNDI3MjE4LCA0Ny4zODU4NTldLCBbNi40MjY3MDEsIDQ3LjM4NTQ2MV0sIFs2LjQyNjQyMiwgNDcuMzg1MjcxXSwgWzYuNDI1ODUyLCA0Ny4zODQ5MThdLCBbNi40MjUyNjIsIDQ3LjM4NDYwMl0sIFs2LjQyNDk0OSwgNDcuMzg0NDU1XSwgWzYuNDI0Mjk4LCA0Ny4zODQxODJdLCBbNi40MjM5NzQsIDQ3LjM4NDA1N10sIFs2LjQyMzMxNCwgNDcuMzgzODM3XSwgWzYuNDIyNjIyLCA0Ny4zODM2NDFdLCBbNi40MjIyNjUsIDQ3LjM4MzU2XSwgWzYuNDIxMzA3LCA0Ny4zODMzOF0sIFs2LjQyMDQ0LCA0Ny4zODMyNzhdLCBbNi40MTk2NzksIDQ3LjM4MzIyNF0sIFs2LjQxNTcyOSwgNDcuMzgzMTY3XSwgWzYuNDE0MDA1LCA0Ny4zODMwODhdLCBbNi40MTI3OTEsIDQ3LjM4Mjk4OF0sIFs2LjQxMTI2MywgNDcuMzgyNzk3XSwgWzYuNDEwMTIyLCA0Ny4zODI2MThdLCBbNi40MDg5MTgsIDQ3LjM4MjM5Ml0sIFs2LjQwNzc0NywgNDcuMzgyMTMzXSwgWzYuNDA2MTIxLCA0Ny4zODE2OV0sIFs2LjQwNDgyMiwgNDcuMzgxMjgxXSwgWzYuNDA0MTg4LCA0Ny4zODEwNjNdLCBbNi40MDM0NTQsIDQ3LjM4MDc4M10sIFs2LjQwMjAwNiwgNDcuMzgwMTc1XSwgWzYuNDAwNzIzLCA0Ny4zNzk1NjNdLCBbNi4zOTk5MDcsIDQ3LjM3OTEzXSwgWzYuMzk5MDg1LCA0Ny4zNzg2NjJdLCBbNi4zOTY4OTYsIDQ3LjM3NzM1M10sIFs2LjM5NTc2MywgNDcuMzc2NzI4XSwgWzYuMzk0NjUsIDQ3LjM3NjIxMV0sIFs2LjM5MzQ1MSwgNDcuMzc1NzQ5XSwgWzYuMzkyNjQ2LCA0Ny4zNzU0OV0sIFs2LjM5MTY0OSwgNDcuMzc1MjE4XSwgWzYuMzkwNjYyLCA0Ny4zNzQ5OTldLCBbNi4zODk5ODMsIDQ3LjM3NDg3Nl0sIFs2LjM4ODg5OSwgNDcuMzc0NzIxXSwgWzYuMzg3ODgzLCA0Ny4zNzQ2MjldLCBbNi4zODcxOTIsIDQ3LjM3NDU4Nl0sIFs2LjM4NjE0MiwgNDcuMzc0NTY3XSwgWzYuMzgyMjc5LCA0Ny4zNzQ1OV0sIFs2LjM4MDAxNCwgNDcuMzc0NTUzXSwgWzYuMzc3NDE3LCA0Ny4zNzQ0MDldLCBbNi4zNzQwMTYsIDQ3LjM3NDEzOF0sIFs2LjM3MTgzOCwgNDcuMzczOThdLCBbNi4zNzA3LCA0Ny4zNzM5MTddLCBbNi4zNjg4ODEsIDQ3LjM3Mzg2MV0sIFs2LjM2NjgwMiwgNDcuMzczODc0XSwgWzYuMzY0ODYsIDQ3LjM3Mzk0N10sIFs2LjM1OTc4OSwgNDcuMzc0Mjc0XSwgWzYuMzU3NzI1LCA0Ny4zNzQzNzhdLCBbNi4zNTU5ODMsIDQ3LjM3NDQyXSwgWzYuMzU0ODE4LCA0Ny4zNzQ0Ml0sIFs2LjM1MzY2OCwgNDcuMzc0Mzk3XSwgWzYuMzUxNzc3LCA0Ny4zNzQzMDJdLCBbNi4zNTA1NDUsIDQ3LjM3NDIwOF0sIFs2LjM0OTM1OSwgNDcuMzc0MDk2XSwgWzYuMzQ3NjA0LCA0Ny4zNzM4OF0sIFs2LjM0NjQ1LCA0Ny4zNzM3MDNdLCBbNi4zNDUyNjYsIDQ3LjM3MzQ5Nl0sIFs2LjM0MzE3NSwgNDcuMzczMDhdLCBbNi4zNDE0MjgsIDQ3LjM3MjY1NF0sIFs2LjM0MDU2NiwgNDcuMzcyNDA5XSwgWzYuMzM5NzcxLCA0Ny4zNzIxMzRdLCBbNi4zMzkwMDUsIDQ3LjM3MTgzNV0sIFs2LjMzNzg0OCwgNDcuMzcxMjc3XSwgWzYuMzM1NzUyLCA0Ny4zNzAxMzFdLCBbNi4zMzQ5NzcsIDQ3LjM2OTc0NV0sIFs2LjMzNDE0OSwgNDcuMzY5MzkyXSwgWzYuMzMxNjgxLCA0Ny4zNjg0NF0sIFs2LjMzMTAyMywgNDcuMzY4MTQ3XSwgWzYuMzMwMTczLCA0Ny4zNjc3MjddLCBbNi4zMjk0NzIsIDQ3LjM2NzMxNF0sIFs2LjMyODg5MSwgNDcuMzY2OTIxXSwgWzYuMzI4MzEsIDQ3LjM2NjQ4MV0sIFs2LjMyNTY3LCA0Ny4zNjQzNDZdLCBbNi4zMjQ0MzEsIDQ3LjM2MzQxOF0sIFs2LjMyMzYwMywgNDcuMzYyODQyXSwgWzYuMzIwOTQ2LCA0Ny4zNjEwODVdLCBbNi4zMjAzNDQsIDQ3LjM2MDY1NF0sIFs2LjMxOTY4NywgNDcuMzYwMTM2XSwgWzYuMzE5MTgsIDQ3LjM1OTY1M10sIFs2LjMxODY5OCwgNDcuMzU5MTQ5XSwgWzYuMzE4MjMyLCA0Ny4zNTg1NjRdLCBbNi4zMTc5NTQsIDQ3LjM1ODE2XSwgWzYuMzE3NjUxLCA0Ny4zNTc2NTFdLCBbNi4zMTczODcsIDQ3LjM1NzExOF0sIFs2LjMxNzI1LCA0Ny4zNTY3OTJdLCBbNi4zMTcxMDQsIDQ3LjM1NjM2NF0sIFs2LjMxNjU1NywgNDcuMzU0MjQ4XSwgWzYuMzE2MzA1LCA0Ny4zNTM1NjddLCBbNi4zMTYwNjIsIDQ3LjM1MzA4OF0sIFs2LjMxNTc4NCwgNDcuMzUyNjI3XSwgWzYuMzE1Mjc3LCA0Ny4zNTE5OTFdLCBbNi4zMTQ3NDYsIDQ3LjM1MTQ1Nl0sIFs2LjMxNDU3MSwgNDcuMzUxMjk2XSwgWzYuMzE0MTgsIDQ3LjM1MDk5MV0sIFs2LjMxMzc2MiwgNDcuMzUwNjg4XSwgWzYuMzEyOTg3LCA0Ny4zNTAyMjFdLCBbNi4zMTIxNTQsIDQ3LjM0OTgxM10sIFs2LjMxMTU1NCwgNDcuMzQ5NTc3XSwgWzYuMzEwODE5LCA0Ny4zNDkzM10sIFs2LjMxMDM2MywgNDcuMzQ5MTk4XSwgWzYuMzA4MDk3LCA0Ny4zNDg2MjVdLCBbNi4zMDY5ODcsIDQ3LjM0ODMxNV0sIFs2LjMwNjMzNywgNDcuMzQ4MTExXSwgWzYuMzA1OTgxLCA0Ny4zNDc5ODFdLCBbNi4zMDQ5MjksIDQ3LjM0NzU1XSwgWzYuMzA0MTkzLCA0Ny4zNDcxODZdLCBbNi4zMDMyNDYsIDQ3LjM0NjY0OV0sIFs2LjMwMTIyLCA0Ny4zNDUzNjZdLCBbNi4yOTkzNSwgNDcuMzQ0MjNdLCBbNi4yOTg4MDUsIDQ3LjM0MzkyNV0sIFs2LjI5NzYxOCwgNDcuMzQzMzAzXSwgWzYuMjk2NjM1LCA0Ny4zNDI4MzhdLCBbNi4yOTUwOTEsIDQ3LjM0MjE2XSwgWzYuMjk0MDcxLCA0Ny4zNDE3NjFdLCBbNi4yOTI3MDUsIDQ3LjM0MTI3XSwgWzYuMjkwODU5LCA0Ny4zNDA2OTddLCBbNi4yODk1NzcsIDQ3LjM0MDM1NF0sIFs2LjI4ODkxNywgNDcuMzQwMjA0XSwgWzYuMjg4MTU3LCA0Ny4zNDAwNTddLCBbNi4yODY4NjUsIDQ3LjMzOTg1N10sIFs2LjI4NjAxNSwgNDcuMzM5NzY5XSwgWzYuMjg1Mzk5LCA0Ny4zMzk3MjRdLCBbNi4yODQzMjEsIDQ3LjMzOTY5MV0sIFs2LjI4MzQxNSwgNDcuMzM5Njk4XSwgWzYuMjgyMTE2LCA0Ny4zMzk3NjldLCBbNi4yODA4NzksIDQ3LjMzOTkxMV0sIFs2LjI4MDAyNywgNDcuMzQwMDQ0XSwgWzYuMjc5MTI1LCA0Ny4zNDAyMjddLCBbNi4yNzgyLCA0Ny4zNDA0NTddLCBbNi4yNzc3MjcsIDQ3LjM0MDU5MV0sIFs2LjI3NjQ1MiwgNDcuMzQxMDE3XSwgWzYuMjc0Mzc0LCA0Ny4zNDE4MzZdLCBbNi4yNzI2ODEsIDQ3LjM0MjQ3N10sIFs2LjI3MTE3OCwgNDcuMzQzMDAzXSwgWzYuMjY5NzA3LCA0Ny4zNDM0MzhdLCBbNi4yNjgyMDUsIDQ3LjM0MzgxNl0sIFs2LjI2NjU5MSwgNDcuMzQ0MTQzXSwgWzYuMjY2MDU0LCA0Ny4zNDQyMzddLCBbNi4yNjQ4LCA0Ny4zNDQ0MjFdLCBbNi4yNjMyMzksIDQ3LjM0NDYwNl0sIFs2LjI2MTgwMSwgNDcuMzQ0NzM2XSwgWzYuMjYwMjEyLCA0Ny4zNDQ4MjZdLCBbNi4yNTkwOSwgNDcuMzQ0ODddLCBbNi4yNTgwMTYsIDQ3LjM0NDg4OF0sIFs2LjI1Njk0MSwgNDcuMzQ0ODg2XSwgWzYuMjU0OCwgNDcuMzQ0ODM0XSwgWzYuMjUzNTI5LCA0Ny4zNDQ3NjFdLCBbNi4yNTE4NTYsIDQ3LjM0NDYyNl0sIFs2LjI0OTc1MSwgNDcuMzQ0Mzc4XSwgWzYuMjQ4NjkyLCA0Ny4zNDQyMjhdLCBbNi4yNDcwNzksIDQ3LjM0Mzk1M10sIFs2LjI0NTkwOCwgNDcuMzQzNzIzXSwgWzYuMjQzOTc2LCA0Ny4zNDMyODddLCBbNi4yNDE1MjUsIDQ3LjM0MjYzOF0sIFs2LjIzMzgsIDQ3LjM0MDM1M10sIFs2LjIzMjQ3MSwgNDcuMzM5OTgyXSwgWzYuMjMxMDE1LCA0Ny4zMzk1OTldLCBbNi4yMjk0MzMsIDQ3LjMzOTIyN10sIFs2LjIyNzQ3OCwgNDcuMzM4ODMzXSwgWzYuMjI1MTY1LCA0Ny4zMzg0N10sIFs2LjIyNDExMiwgNDcuMzM4MzM0XSwgWzYuMjIyODIyLCA0Ny4zMzgyMDFdLCBbNi4yMjEwODYsIDQ3LjMzODA1OV0sIFs2LjIxOTM3NiwgNDcuMzM3OTc1XSwgWzYuMjE3NjYyLCA0Ny4zMzc5MzNdLCBbNi4yMTU5ODgsIDQ3LjMzNzk0OV0sIFs2LjIxNDMsIDQ3LjMzOF0sIFs2LjIwOTQzOCwgNDcuMzM4MjYzXSwgWzYuMjA2NjY1LCA0Ny4zMzgzOTRdLCBbNi4yMDQ5NjQsIDQ3LjMzODQzXSwgWzYuMjAzMjQxLCA0Ny4zMzg0MjJdLCBbNi4yMDE1MzYsIDQ3LjMzODM3NV0sIFs2LjE5OTEyMywgNDcuMzM4MjUxXSwgWzYuMTg4OTg5LCA0Ny4zMzc1NjNdLCBbNi4xODY0LCA0Ny4zMzc0MDNdLCBbNi4xODQ2MzMsIDQ3LjMzNzMyNV0sIFs2LjE4MzEwOSwgNDcuMzM3Mjk0XSwgWzYuMTgwOSwgNDcuMzM3MzE1XSwgWzYuMTc4OTQxLCA0Ny4zMzczODddLCBbNi4xNzc0MTksIDQ3LjMzNzQ3MV0sIFs2LjE3MjIxMiwgNDcuMzM3ODAzXSwgWzYuMTY5NjAxLCA0Ny4zMzc4OTRdLCBbNi4xNjc4NSwgNDcuMzM3OTA0XSwgWzYuMTY2NDUxLCA0Ny4zMzc4NzVdLCBbNi4xNjU1MTQsIDQ3LjMzNzgzNF0sIFs2LjE2NDA4NSwgNDcuMzM3NzQ2XSwgWzYuMTYyOTkxLCA0Ny4zMzc2NDddLCBbNi4xNjEyMTMsIDQ3LjMzNzQ1N10sIFs2LjE1OTE4NiwgNDcuMzM3MTZdLCBbNi4xNTc5NjMsIDQ3LjMzNjk1XSwgWzYuMTU2ODQzLCA0Ny4zMzY3NzRdLCBbNi4xNTYwMDMsIDQ3LjMzNjYyNV0sIFs2LjE1NTc3MywgNDcuMzM2NjAzXSwgWzYuMTU1NTQsIDQ3LjMzNjU5OV0sIFs2LjE1NTMsIDQ3LjMzNjYxNV0sIFs2LjE1NTA4NiwgNDcuMzM2NjU2XSwgWzYuMTU0ODExLCA0Ny4zMzY3NDFdLCBbNi4xNTQwNywgNDcuMzM3MDZdLCBbNi4xNTM4OTYsIDQ3LjMzNzEwMl0sIFs2LjE1MzcyMSwgNDcuMzM3MTJdLCBbNi4xNTM0NDksIDQ3LjMzNzEwNF0sIFs2LjE1MzMyNCwgNDcuMzM3MDcyXSwgWzYuMTUzMTI0LCA0Ny4zMzY5NzddLCBbNi4xNTI5OSwgNDcuMzM2ODQ5XSwgWzYuMTUyOTE0LCA0Ny4zMzY2OThdLCBbNi4xNTI4OTcsIDQ3LjMzNjUyN10sIFs2LjE1MjkxMiwgNDcuMzM2NDMzXSwgWzYuMTUzMDcxLCA0Ny4zMzU5NzVdLCBbNi4xNTMyNDgsIDQ3LjMzNTUyXSwgWzYuMTUzNzgxLCA0Ny4zMzQxNjhdLCBbNi4xNTM4NDUsIDQ3LjMzMzg3MV0sIFs2LjE1MzgzNywgNDcuMzMzNjRdLCBbNi4xNTM3NjQsIDQ3LjMzMzQ3OF0sIFs2LjE1MzYwOSwgNDcuMzMzMjg3XSwgWzYuMTUzNDE3LCA0Ny4zMzMxNjNdLCBbNi4xNTMwOTYsIDQ3LjMzMjk5OF0sIFs2LjE1MDM1NywgNDcuMzMyMDc3XSwgWzYuMTQ5NTQ2LCA0Ny4zMzE3MjFdLCBbNi4xNDg1NTcsIDQ3LjMzMTM2XSwgWzYuMTQ4MjY2LCA0Ny4zMzEyNzNdLCBbNi4xNDgwNjgsIDQ3LjMzMTI0MV0sIFs2LjE0NzkxOSwgNDcuMzMxMjM2XSwgWzYuMTQ3NzA4LCA0Ny4zMzEyODJdLCBbNi4xNDc0NiwgNDcuMzMxNDYyXSwgWzYuMTQ3MjksIDQ3LjMzMTYzMV0sIFs2LjE0NzMwNSwgNDcuMzMxNzU2XSwgWzYuMTQ3Mjc3LCA0Ny4zMzE4MjFdLCBbNi4xNDcyMDgsIDQ3LjMzMTg5M10sIFs2LjE0NzEwOCwgNDcuMzMxOTQ3XSwgWzYuMTQ2OTg5LCA0Ny4zMzE5NzddLCBbNi4xNDY4NzEsIDQ3LjMzMTk4XSwgWzYuMTQ2NzU2LCA0Ny4zMzE5NTldLCBbNi4xNDY2NTYsIDQ3LjMzMTkxNl0sIFs2LjE0NjU4LCA0Ny4zMzE4NTVdLCBbNi4xNDU5NDksIDQ3LjMzMTkyNl0sIFs2LjE0NTMzMywgNDcuMzMyMDIxXSwgWzYuMTQ0ODE5LCA0Ny4zMzIwMzVdLCBbNi4xNDQyMjMsIDQ3LjMzMTk4XSwgWzYuMTQzNDEzLCA0Ny4zMzE3ODRdLCBbNi4xMzc4NDUsIDQ3LjMzMDI1OF0sIFs2LjEzNTI4NCwgNDcuMzI5NDU0XSwgWzYuMTMzMTg3LCA0Ny4zMjg2NjhdLCBbNi4xMjkwMSwgNDcuMzI2ODYxXSwgWzYuMTI3OTg0LCA0Ny4zMjY0NTVdLCBbNi4xMjY4ODgsIDQ3LjMyNjA5N10sIFs2LjEyNjAwMSwgNDcuMzI1ODM3XSwgWzYuMTI1MTUxLCA0Ny4zMjU2MzldLCBbNi4xMjQzOTYsIDQ3LjMyNTQ4OF0sIFs2LjEyMTUyMywgNDcuMzI1MDU2XSwgWzYuMTE5NzI1LCA0Ny4zMjQ1NzddLCBbNi4xMTgzNDUsIDQ3LjMyNDA1XSwgWzYuMTE2OTE4LCA0Ny4zMjMzODJdLCBbNi4xMTM5NDksIDQ3LjMyMTM2N10sIFs2LjExMzQ0MSwgNDcuMzIxMDY4XSwgWzYuMTEyODY1LCA0Ny4zMjA3OTZdLCBbNi4xMTE2MjEsIDQ3LjMyMDI5MV0sIFs2LjEwNjk4NiwgNDcuMzE4NTUxXSwgWzYuMTA2MjEyLCA0Ny4zMTgyMTJdLCBbNi4xMDU3NDEsIDQ3LjMxNzk3OV0sIFs2LjEwNTAzLCA0Ny4zMTc1ODddLCBbNi4xMDQzMTksIDQ3LjMxNzA2NV0sIFs2LjEwMzcyMiwgNDcuMzE2NTQzXSwgWzYuMTAyODk1LCA0Ny4zMTU2MDNdLCBbNi4xMDIxMzYsIDQ3LjMxNDUzNF0sIFs2LjEwMTg5NSwgNDcuMzE0MjQyXSwgWzYuMTAwOCwgNDcuMzEzMTk4XSwgWzYuMTAwMTAyLCA0Ny4zMTI2MTRdLCBbNi4wOTgyMjksIDQ3LjMxMTQzMl0sIFs2LjA5NjU4MiwgNDcuMzEwMzY2XSwgWzYuMDk1NzU0LCA0Ny4zMTAwMjZdLCBbNi4wOTM1ODIsIDQ3LjMwOTIxNF0sIFs2LjA5MjgxNiwgNDcuMzA4OTYxXSwgWzYuMDkwODI2LCA0Ny4zMDgxNTVdLCBbNi4wOTA0NTYsIDQ3LjMwODAyOV0sIFs2LjA5MDMxMSwgNDcuMzA3OTQ3XSwgWzYuMDg5NzI4LCA0Ny4zMDc3MTJdLCBbNi4wODkzODUsIDQ3LjMwNzMzOV0sIFs2LjA4NzcxNywgNDcuMzA0OTM1XSwgWzYuMDg3NTI1LCA0Ny4zMDQ3NDNdLCBbNi4wODYyMTEsIDQ3LjMwMzY3OV0sIFs2LjA4NTU0LCA0Ny4zMDMwNl0sIFs2LjA4NTA1LCA0Ny4zMDIzOTVdLCBbNi4wODQ4MDksIDQ3LjMwMjEzNF0sIFs2LjA4NDU4MiwgNDcuMzAxOTY2XSwgWzYuMDc5NTQxLCA0Ny4yOTg5MzFdLCBbNi4wNzkxNTYsIDQ3LjI5ODczNV0sIFs2LjA3ODUwOCwgNDcuMjk4NTAxXSwgWzYuMDc3OTMzLCA0Ny4yOTgzMzFdLCBbNi4wNzYyMzUsIDQ3LjI5ODA4N10sIFs2LjA3NTgxOCwgNDcuMjk4MDAxXSwgWzYuMDc0ODczLCA0Ny4yOTc3MTldLCBbNi4wNzQzNzMsIDQ3LjI5NzUxOV0sIFs2LjA3NDAxOSwgNDcuMjk3MzMxXSwgWzYuMDczNzk2LCA0Ny4yOTcxNjNdLCBbNi4wNzM0NDIsIDQ3LjI5Njg1N10sIFs2LjA2ODA0NywgNDcuMjkwMjMzXSwgWzYuMDY3NjI4LCA0Ny4yODk4MThdLCBbNi4wNjcyNywgNDcuMjg5NTYyXSwgWzYuMDY2MjAzLCA0Ny4yODg5MDddLCBbNi4wNjU5NywgNDcuMjg4NzQ2XSwgWzYuMDY1NzMyLCA0Ny4yODg1MzZdLCBbNi4wNjU1MiwgNDcuMjg4MzA3XSwgWzYuMDY1MzQyLCA0Ny4yODgwNzJdLCBbNi4wNjQ5MzYsIDQ3LjI4NzM5MV0sIFs2LjA2NDc0MywgNDcuMjg2OTMzXSwgWzYuMDYzNzkyLCA0Ny4yODUxNjRdLCBbNi4wNjMxOTYsIDQ3LjI4NDE5M10sIFs2LjA2MzAwNywgNDcuMjgzOThdLCBbNi4wNjIwNSwgNDcuMjgzMTAzXSwgWzYuMDYxNjk5LCA0Ny4yODI2NDVdLCBbNi4wNjA2MTUsIDQ3LjI4MDY3NV0sIFs2LjA2MDIzNywgNDcuMjc5Njk0XSwgWzYuMDU5NDkxLCA0Ny4yNzc2MzNdLCBbNi4wNTg5NTIsIDQ3LjI3NTA5XSwgWzYuMDU3NTgxLCA0Ny4yNzIzNDFdLCBbNi4wNTY4NjUsIDQ3LjI3MTAzMl0sIFs2LjA1NDA0OCwgNDcuMjY1NzExXSwgWzYuMDUzNTMsIDQ3LjI2NDgxMl0sIFs2LjA1MzIyOCwgNDcuMjY0NTI2XSwgWzYuMDUyMDIyLCA0Ny4yNjM1NjFdLCBbNi4wNTE2NzEsIDQ3LjI2MzE2Nl0sIFs2LjA1MTU5NSwgNDcuMjYzMTU5XSwgWzYuMDUxNDY5LCA0Ny4yNjMxMDRdLCBbNi4wNTE0MDksIDQ3LjI2MzAxMV0sIFs2LjA1MTI1NywgNDcuMjYyOTE5XSwgWzYuMDUwNjQsIDQ3LjI2MjcwNV0sIFs2LjA1MDA1NywgNDcuMjYyNDUxXSwgWzYuMDQ5ODAzLCA0Ny4yNjIyNDRdLCBbNi4wNDk3NDQsIDQ3LjI2MjI2MV0sIFs2LjA0OTYxNywgNDcuMjYyMjYxXSwgWzYuMDQ5NDkzLCA0Ny4yNjIyMDFdLCBbNi4wNDk0NjUsIDQ3LjI2MjE2M10sIFs2LjA0OTQyNCwgNDcuMjYyMDIxXSwgWzYuMDQ4NTA0LCA0Ny4yNjEyOTZdLCBbNi4wNDg0MiwgNDcuMjYxMjAzXSwgWzYuMDQxMzQzLCA0Ny4yNTYxMTZdLCBbNi4wNDEwMzMsIDQ3LjI1NTk2XSwgWzYuMDQwOTE2LCA0Ny4yNTU5MjZdLCBbNi4wNDA4MjMsIDQ3LjI1NTkxNV0sIFs2LjA0MDc4NiwgNDcuMjU1ODgzXSwgWzYuMDQwNzksIDQ3LjI1NTgyXSwgWzYuMDQwODM1LCA0Ny4yNTU3ODldLCBbNi4wMzk0NjgsIDQ3LjI1NDc2M10sIFs2LjAzOTQ5NiwgNDcuMjU0Njg3XSwgWzYuMDM5NDk3LCA0Ny4yNTQ1NzldLCBbNi4wMzg3OSwgNDcuMjUzNDU2XSwgWzYuMDM4NDU2LCA0Ny4yNTI3NjldLCBbNi4wMzgzNzksIDQ3LjI1MTk3NF0sIFs2LjAzODMyNiwgNDcuMjUxODc1XSwgWzYuMDM3NzYyLCA0Ny4yNTEzMThdLCBbNi4wMzc1MzMsIDQ3LjI1MDk5XSwgWzYuMDM2OTY3LCA0Ny4yNTAxMDJdLCBbNi4wMzY1MDQsIDQ3LjI0ODk1OV0sIFs2LjAzNjQ4OSwgNDcuMjQ4ODE5XSwgWzYuMDM2NTE4LCA0Ny4yNDgwMTldLCBbNi4wMzY0NzQsIDQ3LjI0NzkzM10sIFs2LjAzNjU4MSwgNDcuMjQ3ODE3XSwgWzYuMDM2ODA3LCA0Ny4yNDczODldLCBbNi4wMzY5MDgsIDQ3LjI0NzI1N10sIFs2LjAzNjc1NywgNDcuMjQ3MjA1XSwgWzYuMDM2NDIyLCA0Ny4yNDY5NjZdLCBbNi4wMzU1MDEsIDQ3LjI0NjI0Nl0sIFs2LjAzNTM2LCA0Ny4yNDYwNjRdLCBbNi4wMzUyOTUsIDQ3LjI0NTkxOF0sIFs2LjAzNTA5OCwgNDcuMjQ1MTk4XSwgWzYuMDM0OTUxLCA0Ny4yNDQ3NzRdLCBbNi4wMzQ2NDcsIDQ3LjI0NDEzOV0sIFs2LjAzMzczOCwgNDcuMjQyNTYzXSwgWzYuMDMzMzk4LCA0Ny4yNDIxNjddLCBbNi4wMzMyNjUsIDQ3LjI0MjExNl0sIFs2LjAzMjkzLCA0Ny4yNDE3MzZdLCBbNi4wMzI2MTMsIDQ3LjI0MTUwNl0sIFs2LjAzMzE1NiwgNDcuMjQwOTc2XSwgWzYuMDMzNDEsIDQ3LjI0MDYwN10sIFs2LjAzMzc3NywgNDcuMjM5OTI2XSwgWzYuMDMzODIsIDQ3LjIzOTc1M10sIFs2LjAzMzc4OCwgNDcuMjM5MTU2XSwgWzYuMDMzODA5LCA0Ny4yMzkwNl0sIFs2LjAzMzkzOCwgNDcuMjM4ODI2XSwgWzYuMDM0MDMsIDQ3LjIzODUzOV0sIFs2LjAzMzk0MSwgNDcuMjM4NDgyXSwgWzYuMDMzOTUzLCA0Ny4yMzg0XSwgWzYuMDMyMTU0LCA0Ny4yMzc4MDZdLCBbNi4wMzIwODgsIDQ3LjIzNzczN10sIFs2LjAzMTkzOCwgNDcuMjM3NTkzXSwgWzYuMDMxNjMzLCA0Ny4yMzczNTZdLCBbNi4wMjk5NywgNDcuMjM2MTI1XSwgWzYuMDI5OTM0LCA0Ny4yMzYwNjVdLCBbNi4wMzA3MzUsIDQ3LjIzNTg4NF0sIFs2LjAzMDksIDQ3LjIzNTgyNF0sIFs2LjAzMTEzMSwgNDcuMjM1NjUzXSwgWzYuMDMxNTUzLCA0Ny4yMzUyODRdLCBbNi4wMzA4MzYsIDQ3LjIzNTA5OF0sIFs2LjAzMDE5OCwgNDcuMjM1MDA4XSwgWzYuMDMwMTEsIDQ3LjIzNTA2M10sIFs2LjAzMDEwMiwgNDcuMjM1MTU5XSwgWzYuMDI5OTUzLCA0Ny4yMzUzNDldLCBbNi4wMjkyOTQsIDQ3LjIzNTk3N10sIFs2LjAyOTA3NiwgNDcuMjM2MjNdLCBbNi4wMjg4NjQsIDQ3LjIzNjQwNl0sIFs2LjAyODY0MSwgNDcuMjM2NTU4XSwgWzYuMDI4NTA4LCA0Ny4yMzY2MjVdLCBbNi4wMjgxNjMsIDQ3LjIzNjM4M10sIFs2LjAyNzkzNiwgNDcuMjM2MjQ2XSwgWzYuMDI3NTg5LCA0Ny4yMzYwODhdXSwgInR5cGUiOiAiTGluZVN0cmluZyJ9LCAiaWQiOiAiMCIsICJ0eXBlIjogIkZlYXR1cmUifV0sICJ0eXBlIjogIkZlYXR1cmVDb2xsZWN0aW9uIn0pOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBtYXJrZXJfN2IyMGY4ZTUzMDk3NDc5ZmI2ZDQyMzUwM2RiZDQ5OTggPSBMLm1hcmtlcigKICAgICAgICAgICAgICAgIFs0Ny43NDY3MTEsIDcuMzM0NzQ3XSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2ZjY2JjNzJkMmQwMjQ1N2U5YzhiMzNmMWViNWFiN2YyKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl9hOWI5M2I4MDI0NTI0MTgwOWRhNmZjZTM1ZTJmMTQ2ZSA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJncmVlbiIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyXzdiMjBmOGU1MzA5NzQ3OWZiNmQ0MjM1MDNkYmQ0OTk4LnNldEljb24oaWNvbl9hOWI5M2I4MDI0NTI0MTgwOWRhNmZjZTM1ZTJmMTQ2ZSk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfMGI0Y2ZjMDM5MTBhNGYyM2JhMTYzMjBkYWQ4NTJjYmUgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sXzFjYWIxZDVmMDhiZDQyZDRhNjhhMDJjMTFmOWIxNTE0ID0gJChgPGRpdiBpZD0iaHRtbF8xY2FiMWQ1ZjA4YmQ0MmQ0YTY4YTAyYzExZjliMTUxNCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+c3RhcnQ8L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfMGI0Y2ZjMDM5MTBhNGYyM2JhMTYzMjBkYWQ4NTJjYmUuc2V0Q29udGVudChodG1sXzFjYWIxZDVmMDhiZDQyZDRhNjhhMDJjMTFmOWIxNTE0KTsKICAgICAgICAKCiAgICAgICAgbWFya2VyXzdiMjBmOGU1MzA5NzQ3OWZiNmQ0MjM1MDNkYmQ0OTk4LmJpbmRQb3B1cChwb3B1cF8wYjRjZmMwMzkxMGE0ZjIzYmExNjMyMGRhZDg1MmNiZSkKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl81ZjJmODRiYzViNjQ0NGE5OThlMDZiMDMzOTNiOGU5MSA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzQ3LjIzNjM1NSwgNi4wMjczNzRdLAogICAgICAgICAgICAgICAge30KICAgICAgICAgICAgKS5hZGRUbyhtYXBfZmNjYmM3MmQyZDAyNDU3ZTljOGIzM2YxZWI1YWI3ZjIpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBpY29uXzMzYTY0OTFiMjhkZjQ4ZWJiNzMxZGNhMjdiZDUzZjIwID0gTC5Bd2Vzb21lTWFya2Vycy5pY29uKAogICAgICAgICAgICAgICAgeyJleHRyYUNsYXNzZXMiOiAiZmEtcm90YXRlLTAiLCAiaWNvbiI6ICJpbmZvLXNpZ24iLCAiaWNvbkNvbG9yIjogIndoaXRlIiwgIm1hcmtlckNvbG9yIjogInJlZCIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyXzVmMmY4NGJjNWI2NDQ0YTk5OGUwNmIwMzM5M2I4ZTkxLnNldEljb24oaWNvbl8zM2E2NDkxYjI4ZGY0OGViYjczMWRjYTI3YmQ1M2YyMCk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfYzc1MjMwMTIyMzU5NDc2Y2E0M2IxNDg1MDMwMjkxOTEgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sX2Y3OTQzNGE0NTYzODRlNGNiNWQzMDA4YWVjMjJhZGM5ID0gJChgPGRpdiBpZD0iaHRtbF9mNzk0MzRhNDU2Mzg0ZTRjYjVkMzAwOGFlYzIyYWRjOSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+ZW5kPC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwX2M3NTIzMDEyMjM1OTQ3NmNhNDNiMTQ4NTAzMDI5MTkxLnNldENvbnRlbnQoaHRtbF9mNzk0MzRhNDU2Mzg0ZTRjYjVkMzAwOGFlYzIyYWRjOSk7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl81ZjJmODRiYzViNjQ0NGE5OThlMDZiMDMzOTNiOGU5MS5iaW5kUG9wdXAocG9wdXBfYzc1MjMwMTIyMzU5NDc2Y2E0M2IxNDg1MDMwMjkxOTEpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgZnVuY3Rpb24gZ2VvX2pzb25fMDFjZDdhNDg3MWRhNDJjYmE4NDRmMDQwNzQ2OGUwZjNfc3R5bGVyKGZlYXR1cmUpIHsKICAgICAgICAgICAgc3dpdGNoKGZlYXR1cmUuaWQpIHsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsiY29sb3IiOiAicmVkIiwgIm9wYWNpdHkiOiAwLjUsICJ3ZWlnaHQiOiA1fTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBnZW9fanNvbl8wMWNkN2E0ODcxZGE0MmNiYTg0NGYwNDA3NDY4ZTBmM19vbkVhY2hGZWF0dXJlKGZlYXR1cmUsIGxheWVyKSB7CiAgICAgICAgICAgIGxheWVyLm9uKHsKICAgICAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICAgICAgbWFwX2ZjY2JjNzJkMmQwMjQ1N2U5YzhiMzNmMWViNWFiN2YyLmZpdEJvdW5kcyhlLnRhcmdldC5nZXRCb3VuZHMoKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH07CiAgICAgICAgdmFyIGdlb19qc29uXzAxY2Q3YTQ4NzFkYTQyY2JhODQ0ZjA0MDc0NjhlMGYzID0gTC5nZW9Kc29uKG51bGwsIHsKICAgICAgICAgICAgICAgIG9uRWFjaEZlYXR1cmU6IGdlb19qc29uXzAxY2Q3YTQ4NzFkYTQyY2JhODQ0ZjA0MDc0NjhlMGYzX29uRWFjaEZlYXR1cmUsCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgc3R5bGU6IGdlb19qc29uXzAxY2Q3YTQ4NzFkYTQyY2JhODQ0ZjA0MDc0NjhlMGYzX3N0eWxlciwKICAgICAgICB9KS5hZGRUbyhtYXBfZmNjYmM3MmQyZDAyNDU3ZTljOGIzM2YxZWI1YWI3ZjIpOwoKICAgICAgICBmdW5jdGlvbiBnZW9fanNvbl8wMWNkN2E0ODcxZGE0MmNiYTg0NGYwNDA3NDY4ZTBmM19hZGQgKGRhdGEpIHsKICAgICAgICAgICAgZ2VvX2pzb25fMDFjZDdhNDg3MWRhNDJjYmE4NDRmMDQwNzQ2OGUwZjMuYWRkRGF0YShkYXRhKTsKICAgICAgICB9CiAgICAgICAgICAgIGdlb19qc29uXzAxY2Q3YTQ4NzFkYTQyY2JhODQ0ZjA0MDc0NjhlMGYzX2FkZCh7ImZlYXR1cmVzIjogW3siZ2VvbWV0cnkiOiB7ImNvb3JkaW5hdGVzIjogW1s3LjMzNDcxMywgNDcuNzQ2ODA0XSwgWzcuMzM1MDc5LCA0Ny43NDY4NjVdLCBbNy4zMzU1NjYsIDQ3Ljc0Njg0Ml0sIFs3LjMzNTk5NywgNDcuNzQ2NDQ1XSwgWzcuMzM1OTE3LCA0Ny43NDY0MDZdLCBbNy4zMzU2MzEsIDQ3Ljc0NjEzM10sIFs3LjMzNTA2MSwgNDcuNzQ1NDE5XSwgWzcuMzM0NDYsIDQ3Ljc0NDczMl0sIFs3LjMzMzYzNiwgNDcuNzQ0MDQxXSwgWzcuMzMzNDk1LCA0Ny43NDM5NDddLCBbNy4zMzMyNjUsIDQ3Ljc0NDA0XSwgWzcuMzMyNzE2LCA0Ny43NDQxNDJdLCBbNy4zMzI0OCwgNDcuNzQ0MjUxXSwgWzcuMzMyMjI3LCA0Ny43NDQ0MV0sIFs3LjMzMTI2NSwgNDcuNzQ0ODVdLCBbNy4zMzA2MTUsIDQ3Ljc0NTE3N10sIFs3LjMzMDUzNSwgNDcuNzQ1Mjc1XSwgWzcuMzMwMDU3LCA0Ny43NDU2NThdLCBbNy4zMjk5MzcsIDQ3Ljc0NTcyNl0sIFs3LjMyOTEzNCwgNDcuNzQ2MzgzXSwgWzcuMzI4NDk2LCA0Ny43NDY3OV0sIFs3LjMyODI2NywgNDcuNzQ2ODhdLCBbNy4zMjc2ODksIDQ3Ljc0NzA0N10sIFs3LjMyNTQzNiwgNDcuNzQ3Nzc5XSwgWzcuMzI1MzM2LCA0Ny43NDc4NDJdLCBbNy4zMjQ1OSwgNDcuNzQ4NjQxXSwgWzcuMzIwNjA3LCA0Ny43NDczMjddLCBbNy4zMjA0NTUsIDQ3Ljc0NzI5N10sIFs3LjMyMDA4NiwgNDcuNzQ3MjYyXSwgWzcuMzE5OTQ2LCA0Ny43NDcyODJdLCBbNy4zMTkyNTQsIDQ3Ljc0NzE5XSwgWzcuMzE5MTIyLCA0Ny43NDcxNDFdLCBbNy4zMTg3MiwgNDcuNzQ3MDgxXSwgWzcuMzE4NTc0LCA0Ny43NDcwNDFdLCBbNy4zMTg0ODUsIDQ3Ljc0NzA0Nl0sIFs3LjMxODMxNiwgNDcuNzQ2OTg0XSwgWzcuMzE4MTA4LCA0Ny43NDY4NzRdLCBbNy4zMTgwNTEsIDQ3Ljc0NjgxM10sIFs3LjMxNzI1LCA0Ny43NDY0XSwgWzcuMzE3MTMzLCA0Ny43NDYzNl0sIFs3LjMxNjYzOCwgNDcuNzQ2MjhdLCBbNy4zMTY0ODYsIDQ3Ljc0NjIzNl0sIFs3LjMxNjQwNSwgNDcuNzQ2MjM3XSwgWzcuMzE2MjY4LCA0Ny43NDYyNDddLCBbNy4zMTYxNDksIDQ3Ljc0NjIwMV0sIFs3LjMxNTIxMywgNDcuNzQ2MjE3XSwgWzcuMzE1MDQsIDQ3Ljc0NjIzM10sIFs3LjMxNDkzNSwgNDcuNzQ2Mjg2XSwgWzcuMzE0NTEyLCA0Ny43NDYzMDddLCBbNy4zMTM2OTksIDQ3Ljc0NjM5Nl0sIFs3LjMxMjkxMiwgNDcuNzQ2NDI2XSwgWzcuMzEyMTEsIDQ3Ljc0NjQxNV0sIFs3LjMxMTY2OCwgNDcuNzQ2Mzc4XSwgWzcuMzExNDExLCA0Ny43NDY0MTNdLCBbNy4zMTExMzEsIDQ3Ljc0NjUxNF0sIFs3LjMxMDg3LCA0Ny43NDY3MTNdLCBbNy4zMTA3NTgsIDQ3Ljc0Njc3Ml0sIFs3LjMxMDY4OCwgNDcuNzQ2ODI5XSwgWzcuMzA5NzkxLCA0Ny43NDc2MDVdLCBbNy4zMDg2NDYsIDQ3Ljc0ODE2Ml0sIFs3LjMwNDg3OSwgNDcuNzUwNTddLCBbNy4zMDQ2NzgsIDQ3Ljc1MDczNV0sIFs3LjMwNDU3MSwgNDcuNzUwODU0XSwgWzcuMzA0MTk4LCA0Ny43NTEzNjFdLCBbNy4zMDM0MjIsIDQ3Ljc1MjA3OV0sIFs3LjMwMzQ4MywgNDcuNzUyMTExXSwgWzcuMzAzNTEzLCA0Ny43NTIxNTldLCBbNy4zMDM1MDUsIDQ3Ljc1MjIxMV0sIFs3LjMwMzQ2MiwgNDcuNzUyMjU0XSwgWzcuMzAzMzU1LCA0Ny43NTIyODFdLCBbNy4zMDI5MTEsIDQ3Ljc1Mjk0OV0sIFs3LjMwMTgzMywgNDcuNzU0MzE5XSwgWzcuMzAxMTE3LCA0Ny43NTUxOTJdLCBbNy4zMDA4ODIsIDQ3Ljc1NTQzN10sIFs3LjMwMDc3NywgNDcuNzU1NTEyXSwgWzcuMzAwNzIxLCA0Ny43NTU2MDFdLCBbNy4zMDAzOTQsIDQ3Ljc1NTg0N10sIFs3LjI5OTg2OSwgNDcuNzU2MTNdLCBbNy4yOTk0MjcsIDQ3Ljc1NjMwOF0sIFs3LjI5NTc1LCA0Ny43NTc0OTldLCBbNy4yOTUzNTgsIDQ3Ljc1NzUwNV0sIFs3LjI5NTIsIDQ3Ljc1NzQ1MV0sIFs3LjI5NTA0OSwgNDcuNzU3MzI4XSwgWzcuMjk0OTc5LCA0Ny43NTcxOTJdLCBbNy4yOTQ5OTksIDQ3Ljc1NzA1MV0sIFs3LjI5NTExNiwgNDcuNzU2NzU1XSwgWzcuMjk1NjI1LCA0Ny43NTU3ODFdLCBbNy4yOTU2OTYsIDQ3Ljc1NTU2M10sIFs3LjI5NTY4MywgNDcuNzU1NDM3XSwgWzcuMjk1NTgzLCA0Ny43NTUyODldLCBbNy4yOTU0NjEsIDQ3Ljc1NTE5NF0sIFs3LjI5NTA2NywgNDcuNzU1MDAyXSwgWzcuMjk0ODUzLCA0Ny43NTQ4NzZdLCBbNy4yODg5OTIsIDQ3Ljc1MjMxNV0sIFs3LjI4NTIzOSwgNDcuNzUwNzEyXSwgWzcuMjgzMTQ4LCA0Ny43NDk4NzVdLCBbNy4yODE0LCA0Ny43NDkyMjFdLCBbNy4yNzg3MjcsIDQ3Ljc0ODI5Ml0sIFs3LjI3NTU2NSwgNDcuNzQ3Mjk2XSwgWzcuMjcyOTk4LCA0Ny43NDY1NjZdLCBbNy4yNzA0NjQsIDQ3Ljc0NTkyXSwgWzcuMjY5MTIsIDQ3Ljc0NTYwMl0sIFs3LjI2NzQ0MSwgNDcuNzQ1MjI4XSwgWzcuMjY1MDk5LCA0Ny43NDQ3NTVdLCBbNy4yNjMxMTcsIDQ3Ljc0NDM5M10sIFs3LjI2MDMzNywgNDcuNzQzOTVdLCBbNy4yNTg4OTksIDQ3Ljc0Mzc0OV0sIFs3LjI1NjMyNSwgNDcuNzQzNDM0XSwgWzcuMjM5MTE4LCA0Ny43NDE1NzZdLCBbNy4yMzU4OTMsIDQ3Ljc0MTIxMV0sIFs3LjIzNDYzNywgNDcuNzQxMDQ5XSwgWzcuMjMyMTE4LCA0Ny43NDA2OTVdLCBbNy4yMjg5MjQsIDQ3Ljc0MDE4Ml0sIFs3LjIyNjg1MSwgNDcuNzM5ODEzXSwgWzcuMjIzODkxLCA0Ny43MzkyMzVdLCBbNy4yMjAxMywgNDcuNzM4NDAyXSwgWzcuMjE4MjMxLCA0Ny43Mzc5NDRdLCBbNy4yMTYwMTMsIDQ3LjczNzM3Ml0sIFs3LjIxMzgwOCwgNDcuNzM2NzY0XSwgWzcuMjAyOTU3LCA0Ny43MzM2NzNdLCBbNy4yMDEyNjcsIDQ3LjczMzIxNl0sIFs3LjE5OTA0NCwgNDcuNzMyNjQ3XSwgWzcuMTk3NDgxLCA0Ny43MzIyNzJdLCBbNy4xOTUwNTcsIDQ3LjczMTcyOF0sIFs3LjE5MzY1NSwgNDcuNzMxNDM3XSwgWzcuMTkwMzgxLCA0Ny43MzA4MjNdLCBbNy4xODU0MSwgNDcuNzMwMDEzXSwgWzcuMTgxOTQ0LCA0Ny43Mjk0XSwgWzcuMTc4NDcsIDQ3LjcyODcxM10sIFs3LjE3NTcyNiwgNDcuNzI4MTI5XSwgWzcuMTczNzk0LCA0Ny43Mjc3NzNdLCBbNy4xNzMwODQsIDQ3LjcyNzY2OF0sIFs3LjE3MjU2NiwgNDcuNzI3NjI3XSwgWzcuMTcyMjYyLCA0Ny43Mjc2MTldLCBbNy4xNjc1NTMsIDQ3LjcyNzY5M10sIFs3LjE2NjYxNywgNDcuNzI3NzIyXSwgWzcuMTY2NDc2LCA0Ny43Mjc3MzNdLCBbNy4xNjYzMiwgNDcuNzI3NzczXSwgWzcuMTY2MTkyLCA0Ny43Mjc4MjddLCBbNy4xNjU1NywgNDcuNzI4MTYxXSwgWzcuMTY1MTQ3LCA0Ny43MjgzMjRdLCBbNy4xNjM2NzMsIDQ3LjcyOTA5M10sIFs3LjE2MzExNSwgNDcuNzI5NDMzXSwgWzcuMTYyNTAyLCA0Ny43Mjk4NzRdLCBbNy4xNjE4OTcsIDQ3LjczMDM1MV0sIFs3LjE1Njc4MiwgNDcuNzM0NTldLCBbNy4xNTYwMjYsIDQ3LjczNTI0Nl0sIFs3LjE1NTQ4OSwgNDcuNzM1NzQ3XSwgWzcuMTU0NjIxLCA0Ny43MzY2NjNdLCBbNy4xNTM4NTEsIDQ3LjczNzU5M10sIFs3LjE1MzEzNSwgNDcuNzM4NTU1XSwgWzcuMTUyNTYzLCA0Ny43Mzk0OTVdLCBbNy4xNTIxMTUsIDQ3Ljc0MDM0Ml0sIFs3LjE1MTczNiwgNDcuNzQxMTg4XSwgWzcuMTUxMzg1LCA0Ny43NDIxNjddLCBbNy4xNTEyNDIsIDQ3Ljc0Mjk5XSwgWzcuMTUxMjYyLCA0Ny43NDMxOF0sIFs3LjE1MTM0MiwgNDcuNzQzMzE5XSwgWzcuMTUxNSwgNDcuNzQzNDI5XSwgWzcuMTUxNzIsIDQ3Ljc0MzQ5Nl0sIFs3LjE1MTk5LCA0Ny43NDM0ODZdLCBbNy4xNTIxNzMsIDQ3Ljc0MzQzMV0sIFs3LjE1MjM3NCwgNDcuNzQzMzA2XSwgWzcuMTUyNDM3LCA0Ny43NDMxNzZdLCBbNy4xNTI0NDMsIDQ3Ljc0MzA0OF0sIFs3LjE1MjM4OSwgNDcuNzQyOTMyXSwgWzcuMTUyMzAzLCA0Ny43NDI4MzldLCBbNy4xNTIxOTgsIDQ3Ljc0Mjc3MV0sIFs3LjE1MTk2NSwgNDcuNzQyNjkyXSwgWzcuMTUxNDk4LCA0Ny43NDI2Ml0sIFs3LjE0OTYxOSwgNDcuNzQyMzkyXSwgWzcuMTQ4NzMzLCA0Ny43NDIzNzldLCBbNy4xNDc5NDksIDQ3Ljc0MjMyXSwgWzcuMTQ3NTMzLCA0Ny43NDIyMzVdLCBbNy4xNDczMjgsIDQ3Ljc0MjE2Nl0sIFs3LjE0NDAzMSwgNDcuNzQwNzU5XSwgWzcuMTQzNTczLCA0Ny43NDA2MTRdLCBbNy4xNDMzODMsIDQ3Ljc0MDYxM10sIFs3LjE0MzI2OCwgNDcuNzQwNjY4XSwgWzcuMTQzMTM0LCA0Ny43NDA3XSwgWzcuMTQyOTkzLCA0Ny43NDA3MDddLCBbNy4xNDI4NTcsIDQ3Ljc0MDY4OV0sIFs3LjE0MjczMywgNDcuNzQwNjQ4XSwgWzcuMTQyNjI5LCA0Ny43NDA1ODZdLCBbNy4xNDI1NTQsIDQ3Ljc0MDUxMV0sIFs3LjE0MjUxLCA0Ny43NDA0MjZdLCBbNy4xNDI1LCA0Ny43NDAzMzZdLCBbNy4xNDI1NDgsIDQ3Ljc0MDIwM10sIFs3LjE0MjQ4LCA0Ny43NDAwNThdLCBbNy4xNDIxMzUsIDQ3LjczOTcyM10sIFs3LjEzOTczNiwgNDcuNzM3OTc1XSwgWzcuMTM4MjUyLCA0Ny43MzY1ODhdLCBbNy4xMzczNjYsIDQ3LjczNTkyMl0sIFs3LjEzNDg0NSwgNDcuNzM0MjU0XSwgWzcuMTM0NjM3LCA0Ny43MzQxNDJdLCBbNy4xMzQwMDEsIDQ3LjczMzg1XSwgWzcuMTMwNTI5LCA0Ny43MzIzMzRdLCBbNy4xMjc2NywgNDcuNzMxMTI1XSwgWzcuMTI3MTY0LCA0Ny43MzA4MzVdLCBbNy4xMjY2NDMsIDQ3LjczMDQ3MV0sIFs3LjEyNjIzLCA0Ny43MzAxMl0sIFs3LjEyNTgwMiwgNDcuNzI5NjgzXSwgWzcuMTIyNzE2LCA0Ny43MjYzMzNdLCBbNy4xMjIxOTcsIDQ3LjcyNTg3Ml0sIFs3LjEyMTM1MSwgNDcuNzI1MjcyXSwgWzcuMTIwODI4LCA0Ny43MjQ5NTddLCBbNy4xMjAwMjYsIDQ3LjcyNDU2Ml0sIFs3LjExOTQ5MSwgNDcuNzI0MzM2XSwgWzcuMTE4MjU4LCA0Ny43MjM4OThdLCBbNy4xMDc5MjYsIDQ3LjcyMDM2NF0sIFs3LjEwNjEyNywgNDcuNzE5NTY1XSwgWzcuMTA1NTUxLCA0Ny43MTkyOTRdLCBbNy4xMDQyMDgsIDQ3LjcxODYwMl0sIFs3LjA5NDcwNSwgNDcuNzEyNzE2XSwgWzcuMDk0NTkyLCA0Ny43MTI3ODFdLCBbNy4wOTQ0NTMsIDQ3LjcxMjgxOV0sIFs3LjA5NDMwNCwgNDcuNzEyODI0XSwgWzcuMDk0MTYsIDQ3LjcxMjc5N10sIFs3LjA5NDAzNywgNDcuNzEyNzQxXSwgWzcuMDkzOTUzLCA0Ny43MTI2NjddLCBbNy4wOTM5MDUsIDQ3LjcxMjU4MV0sIFs3LjA5Mzg5OCwgNDcuNzEyNDg4XSwgWzcuMDkzOTMxLCA0Ny43MTIzOTldLCBbNy4wOTQwMDMsIDQ3LjcxMjMyXSwgWzcuMDkzNDgzLCA0Ny43MTIwOTZdLCBbNy4wOTIzMTIsIDQ3LjcxMTY0MV0sIFs3LjA5MDUwNCwgNDcuNzExMDQ5XSwgWzcuMDg5ODE3LCA0Ny43MTA4NjJdLCBbNy4wODkxMDYsIDQ3LjcxMDcxOV0sIFs3LjA4Njk5NiwgNDcuNzEwNTA0XSwgWzcuMDg1NjY3LCA0Ny43MTA0NjddLCBbNy4wODQ3NjIsIDQ3LjcxMDUxMl0sIFs3LjA4MzIyMiwgNDcuNzEwNjc4XSwgWzcuMDgxMzcyLCA0Ny43MTA5MTZdLCBbNy4wNzk1MDksIDQ3LjcxMTFdLCBbNy4wNzYyMjksIDQ3LjcxMTMzOF0sIFs3LjA3NTE3MywgNDcuNzExNDNdLCBbNy4wNzI5ODgsIDQ3LjcxMTY5NV0sIFs3LjA3MTgxNiwgNDcuNzExODM4XSwgWzcuMDcwNjA4LCA0Ny43MTIwMDldLCBbNy4wNjkyLCA0Ny43MTI0MV0sIFs3LjA2NjYxMywgNDcuNzEzMzEzXSwgWzcuMDY1MjY0LCA0Ny43MTM4MzFdLCBbNy4wNjE3NTIsIDQ3LjcxNTM2N10sIFs3LjA1NzA4NywgNDcuNzE3NDMzXSwgWzcuMDU1Mzg3LCA0Ny43MTgyNzZdLCBbNy4wNTQ3MjcsIDQ3LjcxODYyNV0sIFs3LjA1MzczMywgNDcuNzE5MDg4XSwgWzcuMDUxODkxLCA0Ny43MTk2ODVdLCBbNy4wNTEwNzgsIDQ3LjcxOTg4NV0sIFs3LjA0Njk2MSwgNDcuNzIxMDNdLCBbNy4wNDY0MjIsIDQ3LjcyMTE0M10sIFs3LjA0NTg0MiwgNDcuNzIxMjI2XSwgWzcuMDQ0OTEyLCA0Ny43MjEzMjNdLCBbNy4wNDE1MTcsIDQ3LjcyMTI3OV0sIFs3LjA0MDkzMSwgNDcuNzIxMjkxXSwgWzcuMDM5NDYxLCA0Ny43MjEzNzddLCBbNy4wMzkwODQsIDQ3LjcyMTM4Ml0sIFs3LjAzODUyMywgNDcuNzIxMzU0XSwgWzcuMDM3ODA3LCA0Ny43MjEyNTldLCBbNy4wMzc1MDUsIDQ3LjcyMTE5Nl0sIFs3LjAzNzEzLCA0Ny43MjEwOTRdLCBbNy4wMzQzOTcsIDQ3LjcyMDE3Nl0sIFs3LjAzNDIwMSwgNDcuNzIwMDkyXSwgWzcuMDMzMDU4LCA0Ny43MTk2OTZdLCBbNy4wMzEwMDUsIDQ3LjcxODk0OF0sIFs3LjAzMDY4LCA0Ny43MTg4MDZdLCBbNy4wMjk1MTYsIDQ3LjcxODE5OV0sIFs3LjAyOTA4LCA0Ny43MTgwMDZdLCBbNy4wMjgxMjYsIDQ3LjcxNzY5OF0sIFs3LjAyNjM4OCwgNDcuNzE3MTgzXSwgWzcuMDI1Mzc3LCA0Ny43MTY4MTldLCBbNy4wMjQyNTQsIDQ3LjcxNjM5Ml0sIFs3LjAyMzM0NywgNDcuNzE2MDI5XSwgWzcuMDIxNTgyLCA0Ny43MTUxNTNdLCBbNy4wMjA3MjQsIDQ3LjcxNDc2OV0sIFs3LjAyMDI2NSwgNDcuNzE0NjExXSwgWzcuMDE5MTMyLCA0Ny43MTQzMTRdLCBbNy4wMTg3ODQsIDQ3LjcxNDE5N10sIFs3LjAxODI3MywgNDcuNzEzOTQ0XSwgWzcuMDE3NzEsIDQ3LjcxMzUyOV0sIFs3LjAxNzU2NCwgNDcuNzEzNDAxXSwgWzcuMDE2NTkzLCA0Ny43MTIzNzFdLCBbNy4wMTYzMTcsIDQ3LjcxMjE3M10sIFs3LjAxNTkxNSwgNDcuNzExOTYzXSwgWzcuMDEzMzQ5LCA0Ny43MTA3NjZdLCBbNy4wMTI0NDUsIDQ3LjcxMDMyMV0sIFs3LjAxMTM2NywgNDcuNzA5NjY0XSwgWzcuMDEwNTgsIDQ3LjcwOTI1MV0sIFs3LjAwOTk3MiwgNDcuNzA5MDQ2XSwgWzcuMDA4MjEsIDQ3LjcwODUxN10sIFs3LjAwNzgyNCwgNDcuNzA4NDE3XSwgWzcuMDA2ODExLCA0Ny43MDgwNjhdLCBbNy4wMDY1NTIsIDQ3LjcwNzk3Ml0sIFs3LjAwNjE0NCwgNDcuNzA3NzYyXSwgWzcuMDA1ODg0LCA0Ny43MDc1NzNdLCBbNy4wMDU2NywgNDcuNzA3NDM3XSwgWzcuMDA0NTM0LCA0Ny43MDY1ODldLCBbNy4wMDQxODksIDQ3LjcwNjM1Nl0sIFs3LjAwMzQ1OSwgNDcuNzA1OTU0XSwgWzYuOTk5MTYzLCA0Ny43MDM5MzRdLCBbNi45OTA5NTgsIDQ3LjcwMDAzNF0sIFs2Ljk4OTcyNiwgNDcuNjk5NDY3XSwgWzYuOTg3OTQ5LCA0Ny42OTg2NzldLCBbNi45ODczOTIsIDQ3LjY5ODQ0Nl0sIFs2Ljk4NjQxMiwgNDcuNjk3OTk2XSwgWzYuOTg1NzMsIDQ3LjY5Nzc3NF0sIFs2Ljk4NDYzMiwgNDcuNjk3NDc0XSwgWzYuOTg0MDU1LCA0Ny42OTcyNzZdLCBbNi45ODM2MjIsIDQ3LjY5NzA3OF0sIFs2Ljk4MzA4NywgNDcuNjk2NzU0XSwgWzYuOTgyNTIyLCA0Ny42OTYzMjhdLCBbNi45ODEzNzQsIDQ3LjY5NTMyMV0sIFs2Ljk4MTAwNCwgNDcuNjk1MDY1XSwgWzYuOTgwNjIsIDQ3LjY5NDg0Nl0sIFs2Ljk3OTQ0NiwgNDcuNjk0MzQyXSwgWzYuOTc4NDc2LCA0Ny42OTM5NzNdLCBbNi45NzQ5MzIsIDQ3LjY5MjU2M10sIFs2Ljk3MjQyNywgNDcuNjkxNjkyXSwgWzYuOTcwMTc0LCA0Ny42OTA5MzldLCBbNi45Njg3NjUsIDQ3LjY5MDY1XSwgWzYuOTY3NTM0LCA0Ny42OTA0MzJdLCBbNi45NjU3MjIsIDQ3LjY5MDEzNF0sIFs2Ljk2NDk3NCwgNDcuNjkwMDY2XSwgWzYuOTYxMjk1LCA0Ny42OTAwMTddLCBbNi45NjA2OTYsIDQ3LjY5MDAyOF0sIFs2Ljk2MDMyOSwgNDcuNjkwMDc4XSwgWzYuOTYwMjI2LCA0Ny42OTAxNTZdLCBbNi45NjAxNDYsIDQ3LjY5MDE4Ml0sIFs2Ljk2MDA2LCA0Ny42OTAxODldLCBbNi45NTk5NzMsIDQ3LjY5MDE3OF0sIFs2Ljk1OTg5NywgNDcuNjkwMTQ5XSwgWzYuOTU5ODA3LCA0Ny42OTAwNjRdLCBbNi45NTk3OTIsIDQ3LjY5MDAxMl0sIFs2Ljk1OTYxOSwgNDcuNjg5ODgzXSwgWzYuOTU5NTA4LCA0Ny42ODk4MjFdLCBbNi45NTc1MTcsIDQ3LjY4OTA2XSwgWzYuOTU2NzQzLCA0Ny42ODg3M10sIFs2Ljk1NjA3OSwgNDcuNjg4Mzc2XSwgWzYuOTU1MDMzLCA0Ny42ODc2MTVdLCBbNi45NTQ0NjQsIDQ3LjY4NzEyNl0sIFs2Ljk1MzI3NSwgNDcuNjg1OTU3XSwgWzYuOTUzMDUyLCA0Ny42ODU4MTVdLCBbNi45NTI5NDEsIDQ3LjY4NTc4Nl0sIFs2Ljk1Mjc1NywgNDcuNjg1NzU2XSwgWzYuOTUyNjgzLCA0Ny42ODU3MjFdLCBbNi45NTI1OTIsIDQ3LjY4NTYxOV0sIFs2Ljk1MjU4MywgNDcuNjg1NTI4XSwgWzYuOTUyNDY1LCA0Ny42ODU0MTJdLCBbNi45NTIzMTIsIDQ3LjY4NTI5Nl0sIFs2Ljk1MTg2NCwgNDcuNjg1MDQzXSwgWzYuOTUwNjg3LCA0Ny42ODQ0NzVdLCBbNi45NTAzNjIsIDQ3LjY4NDM0M10sIFs2Ljk0OTkxLCA0Ny42ODQyMTNdLCBbNi45NDkzMzIsIDQ3LjY4NDExNV0sIFs2Ljk0NjIxOCwgNDcuNjgzNzQ3XSwgWzYuOTQ1NTQ0LCA0Ny42ODM2MDldLCBbNi45NDQ4NzcsIDQ3LjY4MzQwMl0sIFs2Ljk0NDM5OSwgNDcuNjgzMTk4XSwgWzYuOTQzOTc3LCA0Ny42ODI5OTJdLCBbNi45NDM0MzcsIDQ3LjY4MjYzN10sIFs2Ljk0MzMyOSwgNDcuNjgyNTkyXSwgWzYuOTQyMzE2LCA0Ny42ODE4OTFdLCBbNi45NDE4OTgsIDQ3LjY4MTY1NF0sIFs2Ljk0MTUzOSwgNDcuNjgxNDkxXSwgWzYuOTQxMTIsIDQ3LjY4MTM0NF0sIFs2LjkzOTcwNCwgNDcuNjgwOTYzXSwgWzYuOTM5MDg4LCA0Ny42ODA3MjZdLCBbNi45Mzg5MTgsIDQ3LjY4MDYyXSwgWzYuOTM2MDQ4LCA0Ny42NzkzXSwgWzYuOTM0ODk4LCA0Ny42Nzg3MDRdLCBbNi45MzQyNzgsIDQ3LjY3ODQwMV0sIFs2LjkzMTg0LCA0Ny42NzczMl0sIFs2LjkzMTMyNywgNDcuNjc3MDEyXSwgWzYuOTI5OTE3LCA0Ny42NzYwNzZdLCBbNi45MjgzMTIsIDQ3LjY3NTE3M10sIFs2LjkyOCwgNDcuNjc0OTM4XSwgWzYuOTI3MjU2LCA0Ny42NzQxM10sIFs2LjkyNzA0MywgNDcuNjczOTM1XSwgWzYuOTI2NzUsIDQ3LjY3Mzc0XSwgWzYuOTI2NDcsIDQ3LjY3MzYwNl0sIFs2LjkyNDg1NiwgNDcuNjczMDE1XSwgWzYuOTI0NjA5LCA0Ny42NzI5MDldLCBbNi45MjQ0MTgsIDQ3LjY3Mjc2NF0sIFs2LjkyNDE1NywgNDcuNjcyMzk5XSwgWzYuOTIzNzE5LCA0Ny42NzE2NzhdLCBbNi45MjM0MzksIDQ3LjY3MTI1NF0sIFs2LjkyMzMxOCwgNDcuNjcxMTAxXSwgWzYuOTIzMTkxLCA0Ny42NzA5ODldLCBbNi45MjMwMTksIDQ3LjY3MDg5XSwgWzYuOTIyNjg1LCA0Ny42NzA3NzZdLCBbNi45MjIzNywgNDcuNjcwNjgzXSwgWzYuOTIxOTcxLCA0Ny42NzA1OTVdLCBbNi45MjA3OTgsIDQ3LjY3MDUyXSwgWzYuOTIwNDIyLCA0Ny42NzA0NjhdLCBbNi45MjAyNTIsIDQ3LjY3MDQyOV0sIFs2LjkxOTQwMSwgNDcuNjcwMTNdLCBbNi45MTkxNTMsIDQ3LjY2OTk5Nl0sIFs2LjkxOTA1NywgNDcuNjY5OTAyXSwgWzYuOTE4OTYzLCA0Ny42Njk3MzFdLCBbNi45MTg4OTEsIDQ3LjY2OTI5MV0sIFs2LjkxODgxOCwgNDcuNjY5MTY2XSwgWzYuOTE4NjY2LCA0Ny42NjkwMzVdLCBbNi45MTg0NDQsIDQ3LjY2ODg4M10sIFs2LjkxNzcxOCwgNDcuNjY4NDYzXSwgWzYuOTE3NDgzLCA0Ny42NjgzNDZdLCBbNi45MTcwMjcsIDQ3LjY2ODE2OF0sIFs2LjkxNjQ2OCwgNDcuNjY3OTg3XSwgWzYuOTE1OTgsIDQ3LjY2Nzc3NF0sIFs2LjkxNTE5MSwgNDcuNjY3Mzc1XSwgWzYuOTE0ODQ0LCA0Ny42NjcxNjVdLCBbNi45MTQwNjMsIDQ3LjY2NjYxNl0sIFs2LjkxMjg2NCwgNDcuNjY1NjA1XSwgWzYuOTEyNTgsIDQ3LjY2NTMzOV0sIFs2LjkxMTkxOCwgNDcuNjY0NzcxXSwgWzYuOTEwNzU4LCA0Ny42NjM5XSwgWzYuOTEwMjEyLCA0Ny42NjM1MThdLCBbNi45MDgyNiwgNDcuNjYyMjk4XSwgWzYuOTA3ODg1LCA0Ny42NjIwNzZdLCBbNi45MDc0MTgsIDQ3LjY2MTgzMV0sIFs2LjkwNjczOCwgNDcuNjYxNTJdLCBbNi45MDY0NTgsIDQ3LjY2MTQ1MV0sIFs2LjkwNjA5NywgNDcuNjYxNDE5XSwgWzYuOTA1MjY1LCA0Ny42NjE0OTldLCBbNi45MDQ5OTMsIDQ3LjY2MTQ2OV0sIFs2LjkwNDc2LCA0Ny42NjE0MDhdLCBbNi45MDQ1NjgsIDQ3LjY2MTI3Nl0sIFs2LjkwNDQ4NSwgNDcuNjYxMTIzXSwgWzYuOTA0NDYxLCA0Ny42NjA5NjVdLCBbNi45MDQ1MDEsIDQ3LjY2MDc5N10sIFs2LjkwNDYwNywgNDcuNjYwNl0sIFs2LjkwNDc5NSwgNDcuNjYwNDEyXSwgWzYuOTA1MjI3LCA0Ny42NjAxMDNdLCBbNi45MDU2NCwgNDcuNjU5NzE0XSwgWzYuOTA3MzQsIDQ3LjY1NzgwOF0sIFs2LjkwOTAzNSwgNDcuNjU2MzI4XSwgWzYuOTExMzc3LCA0Ny42NTQzNjNdLCBbNi45MTE5ODEsIDQ3LjY1MzgxMl0sIFs2LjkxMjY5MSwgNDcuNjUzMDk4XSwgWzYuOTEzNDEyLCA0Ny42NTIyODZdLCBbNi45MTM2OTYsIDQ3LjY1MTg3MV0sIFs2LjkxNDg1MiwgNDcuNjUwMzkzXSwgWzYuOTE0ODkxLCA0Ny42NTAyMjldLCBbNi45MTUwMSwgNDcuNjUwMDQ5XSwgWzYuOTE1MDY3LCA0Ny42NDk4OTNdLCBbNi45MTUwNjQsIDQ3LjY0OTYzOV0sIFs2LjkxNDk4MywgNDcuNjQ5NDk3XSwgWzYuOTE0NzMxLCA0Ny42NDkyNDNdLCBbNi45MTMwODcsIDQ3LjY0ODM1M10sIFs2LjkxMTk0LCA0Ny42NDc3MDRdLCBbNi45MTA5MDksIDQ3LjY0NjgzM10sIFs2LjkxMDUsIDQ3LjY0NjU0Ml0sIFs2LjkxMDA2OSwgNDcuNjQ2Mjk4XSwgWzYuOTA5NTc2LCA0Ny42NDYwNjJdLCBbNi45MDkwNTksIDQ3LjY0NTg2Ml0sIFs2LjkwODU4MSwgNDcuNjQ1NzAzXSwgWzYuOTA4NDI4LCA0Ny42NDU1OTVdLCBbNi45MDY4MDgsIDQ3LjY0NTEzMl0sIFs2LjkwNTQyNCwgNDcuNjQ0Nzc2XSwgWzYuOTAzOTYxLCA0Ny42NDQ0NzFdLCBbNi45MDI3NzcsIDQ3LjY0NDI0OF0sIFs2LjkwMTQ2NiwgNDcuNjQ0MDM5XSwgWzYuODk5Mjc2LCA0Ny42NDM3OF0sIFs2Ljg5NzY0MiwgNDcuNjQzNjM4XSwgWzYuODk0NDQ3LCA0Ny42NDM0MDldLCBbNi44OTI2OTksIDQ3LjY0MzI0Ml0sIFs2Ljg5MTc1OSwgNDcuNjQzMTA5XSwgWzYuODkxMDY2LCA0Ny42NDI5NzldLCBbNi44OTAzNzMsIDQ3LjY0MjgyMV0sIFs2Ljg4OTcwMiwgNDcuNjQyNjM2XSwgWzYuODg4OTE2LCA0Ny42NDIzODVdLCBbNi44ODc4NjYsIDQ3LjY0MTk4N10sIFs2Ljg4NzI2MSwgNDcuNjQxNzE5XSwgWzYuODg2NTU5LCA0Ny42NDEzNjFdLCBbNi44ODU5NzMsIDQ3LjY0MTAxOV0sIFs2Ljg4NTQ0OCwgNDcuNjQwNjc0XSwgWzYuODg0NjYxLCA0Ny42NDAwNzZdLCBbNi44ODQyMTIsIDQ3LjYzOTY4OV0sIFs2Ljg4MzA5OCwgNDcuNjM4NTgyXSwgWzYuODgyNTcyLCA0Ny42Mzc5NzldLCBbNi44ODE1NDksIDQ3LjYzNjg5NV0sIFs2Ljg4MTE4OCwgNDcuNjM2NTNdLCBbNi44ODA0NywgNDcuNjM1ODgxXSwgWzYuODc5ODk4LCA0Ny42MzU0MTNdLCBbNi44NzkwNzcsIDQ3LjYzNDgwMV0sIFs2Ljg3NzA1MiwgNDcuNjMzNDI3XSwgWzYuODc1ODgsIDQ3LjYzMjcxNF0sIFs2Ljg3NDY4NiwgNDcuNjMyMTEzXSwgWzYuODc0MTQ5LCA0Ny42MzE4ODldLCBbNi44NzM0OTgsIDQ3LjYzMTY0XSwgWzYuODcwNjUxLCA0Ny42MzA2NV0sIFs2Ljg2OTkxLCA0Ny42MzAzNl0sIFs2Ljg2OTA3LCA0Ny42Mjk5ODZdLCBbNi44NjgzNDIsIDQ3LjYyOTYyM10sIFs2Ljg2NzY5MywgNDcuNjI5MjY3XSwgWzYuODY3MTAyLCA0Ny42Mjg5MTRdLCBbNi44NjU5OTksIDQ3LjYyODE0MV0sIFs2Ljg2NTQyNCwgNDcuNjI3Njc0XSwgWzYuODY0NjAyLCA0Ny42MjY5MTVdLCBbNi44NjM0MzUsIDQ3LjYyNTYzMl0sIFs2Ljg2MDIwMywgNDcuNjIxNzg3XSwgWzYuODU5OTg2LCA0Ny42MjE2ODRdLCBbNi44NTkzNTIsIDQ3LjYyMDk0MV0sIFs2Ljg1ODk2MSwgNDcuNjIwNDE1XSwgWzYuODU4Njg4LCA0Ny42MjAwODRdLCBbNi44NTg0MSwgNDcuNjE5ODE4XSwgWzYuODU3NjY2LCA0Ny42MTkyODZdLCBbNi44NTc0NzgsIDQ3LjYxOTEyOF0sIFs2Ljg1NzE2LCA0Ny42MTg4MTVdLCBbNi44NTcwNTYsIDQ3LjYxODc1M10sIFs2Ljg1Njg3MiwgNDcuNjE4NzE1XSwgWzYuODU2NzQ2LCA0Ny42MTg3NF0sIFs2Ljg1NjYxNywgNDcuNjE4NzIzXSwgWzYuODU2NTIzLCA0Ny42MTg2NzRdLCBbNi44NTY0NywgNDcuNjE4NjA0XSwgWzYuODU2NDY2LCA0Ny42MTg1MjRdLCBbNi44NTUzLCA0Ny42MTg0NDVdLCBbNi44NTMzODUsIDQ3LjYxODI4M10sIFs2Ljg1Mjk1OSwgNDcuNjE4MjddLCBbNi44NTI3MTcsIDQ3LjYxODI5N10sIFs2Ljg1MjM2OCwgNDcuNjE4MzddLCBbNi44NTIyNzksIDQ3LjYxODQ1XSwgWzYuODUyMTkxLCA0Ny42MTg0NzRdLCBbNi44NTIwNDQsIDQ3LjYxODQ1OF0sIFs2Ljg1MTkxLCA0Ny42MTg1XSwgWzYuODUxNzE3LCA0Ny42MTg1MzNdLCBbNi44NTA2NTksIDQ3LjYxODkzNF0sIFs2Ljg1MDE1MywgNDcuNjE5MTQ0XSwgWzYuODQ5ODc3LCA0Ny42MTkzMTNdLCBbNi44NDg2MywgNDcuNjE5MzMyXSwgWzYuODQ3NTE5LCA0Ny42MTkzODJdLCBbNi44NDcyMTUsIDQ3LjYxOTQzMl0sIFs2Ljg0NTI3OSwgNDcuNjE5OTEzXSwgWzYuODQ1MDY4LCA0Ny42MTk5NTFdLCBbNi44NDQ3NTcsIDQ3LjYxOTk2N10sIFs2Ljg0Mjg4OSwgNDcuNjE5OTE5XSwgWzYuODQyNjk5LCA0Ny42MTk5MjddLCBbNi44NDI3MDQsIDQ3LjYyMDAxNF0sIFs2Ljg0MjY2OSwgNDcuNjIwMDUyXSwgWzYuODQyNTQ5LCA0Ny42MjAwODZdLCBbNi44NDI0NjUsIDQ3LjYyMDA3XSwgWzYuODQyMzI3LCA0Ny42MjAyNTNdLCBbNi44NDIwODgsIDQ3LjYyMDQyOF0sIFs2Ljg0MTgsIDQ3LjYyMDU3NF0sIFs2Ljg0MTY5NiwgNDcuNjIwNTk5XSwgWzYuODQxNTAxLCA0Ny42MjA2MTNdLCBbNi44NDAzNTksIDQ3LjYyMDUyMV0sIFs2LjgzOTk0MywgNDcuNjIwNDE3XSwgWzYuODM4NTgyLCA0Ny42MTk4NzVdLCBbNi44Mzg0NSwgNDcuNjE5ODcyXSwgWzYuODM4MDg4LCA0Ny42MTk5MjddLCBbNi44Mzc0NSwgNDcuNjIwMDU1XSwgWzYuODM2OTIzLCA0Ny42MjAyMzVdLCBbNi44MzYxODQsIDQ3LjYyMDU3NV0sIFs2LjgzNTk4MywgNDcuNjIwNjIzXSwgWzYuODM1NTY1LCA0Ny42MjA2OTRdLCBbNi44MzU0MzMsIDQ3LjYyMDc2NF0sIFs2LjgzNTM2MiwgNDcuNjIwODQ0XSwgWzYuODM1Mjk2LCA0Ny42MjA5NjZdLCBbNi44MzQ0ODMsIDQ3LjYyMDc4Nl0sIFs2LjgzNDI3NiwgNDcuNjIwNzE0XSwgWzYuODMzMjg2LCA0Ny42MjAyNDVdLCBbNi44MzMwNTgsIDQ3LjYyMDE1NV0sIFs2LjgzMTM3OSwgNDcuNjE5MzI5XSwgWzYuODMxMTk5LCA0Ny42MTkxNTRdLCBbNi44MzExOTQsIDQ3LjYxODk2XSwgWzYuODMxMjc5LCA0Ny42MTg1MTddLCBbNi44MzEyNSwgNDcuNjE4MzE5XSwgWzYuODMwOTM3LCA0Ny42MTc4MjhdLCBbNi44MzA3NjMsIDQ3LjYxNzYxNV0sIFs2LjgzMDU1NCwgNDcuNjE3NDc0XSwgWzYuODI5Nzk4LCA0Ny42MTcwMjddLCBbNi44Mjk2NDgsIDQ3LjYxNjg4Nl0sIFs2LjgyOTU2NywgNDcuNjE2NzMxXSwgWzYuODI5MzM3LCA0Ny42MTU5NjRdLCBbNi44MjkyODEsIDQ3LjYxNTYyM10sIFs2LjgyOTE4MywgNDcuNjE1MjU4XSwgWzYuODI5MTA3LCA0Ny42MTUwNTldLCBbNi44MjkwMjgsIDQ3LjYxNDcyNl0sIFs2LjgyODk4OCwgNDcuNjE0NDUxXSwgWzYuODI4NTk4LCA0Ny42MTMwODRdLCBbNi44Mjg0OCwgNDcuNjEyODQ5XSwgWzYuODI4MjYxLCA0Ny42MTIyNTJdLCBbNi44MjgwOTUsIDQ3LjYxMTc2NF0sIFs2LjgyODAyLCA0Ny42MTE0MDVdLCBbNi44Mjc5NDQsIDQ3LjYxMTIxNV0sIFs2LjgyNzgyNywgNDcuNjExMDYzXSwgWzYuODI3NzI2LCA0Ny42MTEwMV0sIFs2LjgyNzY5LCA0Ny42MTA5NTldLCBbNi44Mjc2ODcsIDQ3LjYxMDg4MV0sIFs2LjgyNzc1OSwgNDcuNjEwNzk5XSwgWzYuODI3NzQ5LCA0Ny42MTA2MTZdLCBbNi44Mjc0NjQsIDQ3LjYwOTY0OV0sIFs2LjgyNzM3MiwgNDcuNjA5MTczXSwgWzYuODI2NjExLCA0Ny42MDY2MDddLCBbNi44MjY0OTYsIDQ3LjYwNjM2OV0sIFs2LjgyNjI1LCA0Ny42MDYwODddLCBbNi44MjU5NDksIDQ3LjYwNTgyM10sIFs2LjgyNTM4MywgNDcuNjA1NDA3XSwgWzYuODI0OTE3LCA0Ny42MDUwOTddLCBbNi44MjQxNSwgNDcuNjA0NjQxXSwgWzYuODIyNzcyLCA0Ny42MDQwMjRdLCBbNi44MjI0OTgsIDQ3LjYwMzg0OF0sIFs2LjgyMjQxOSwgNDcuNjAzNzkxXSwgWzYuODIyMjEzLCA0Ny42MDM1OV0sIFs2LjgyMTYzMiwgNDcuNjAyOTMxXSwgWzYuODIxMjc1LCA0Ny42MDI2NDZdLCBbNi44MjA4NDQsIDQ3LjYwMjM5OV0sIFs2LjgyMDUzMywgNDcuNjAyMjg4XSwgWzYuODIwMDI2LCA0Ny42MDIxOF0sIFs2LjgxODE1OCwgNDcuNjAxODg0XSwgWzYuODE4MDg4LCA0Ny42MDE4ODVdLCBbNi44MTgwNTgsIDQ3LjYwMTkyXSwgWzYuODE4MDA2LCA0Ny42MDE5NF0sIFs2LjgxNzkyMywgNDcuNjAxOTM2XSwgWzYuODE3ODU5LCA0Ny42MDE4OV0sIFs2LjgxNzg2NSwgNDcuNjAxODI2XSwgWzYuODE3Nzk1LCA0Ny42MDE4MTZdLCBbNi44MTYyNzksIDQ3LjYwMTM2OF0sIFs2LjgxNDM3MywgNDcuNjAwNzhdLCBbNi44MTM5NzUsIDQ3LjYwMDY2N10sIFs2LjgxMzU4NSwgNDcuNjAwNjE1XSwgWzYuODEzNDY5LCA0Ny42MDA2MTFdLCBbNi44MTMzNjYsIDQ3LjYwMDY0N10sIFs2LjgxMzI0OSwgNDcuNjAwNjUxXSwgWzYuODEzMTUsIDQ3LjYwMDYyOF0sIFs2LjgxMzA3LCA0Ny42MDA1ODFdLCBbNi44MTMwMjEsIDQ3LjYwMDUxOF0sIFs2LjgxMzAxLCA0Ny42MDA0NDddLCBbNi44MTI5MDYsIDQ3LjYwMDM4XSwgWzYuODEyNTc1LCA0Ny42MDAyMzNdLCBbNi44MTE2MywgNDcuNTk5OTgzXSwgWzYuODA4ODM1LCA0Ny41OTk0MThdLCBbNi44MDgzMTEsIDQ3LjU5OTMzNl0sIFs2LjgwNzY0NywgNDcuNTk5MzhdLCBbNi44MDc2MDQsIDQ3LjU5OTQ0Nl0sIFs2LjgwNzUzNywgNDcuNTk5NTAyXSwgWzYuODA3NDQ4LCA0Ny41OTk1NDRdLCBbNi44MDczNDcsIDQ3LjU5OTU2N10sIFs2LjgwNzI0LCA0Ny41OTk1NzFdLCBbNi44MDcxMzUsIDQ3LjU5OTU1NF0sIFs2LjgwNzAzNywgNDcuNTk5NTE2XSwgWzYuODA2OTYsIDQ3LjU5OTQ2MV0sIFs2LjgwNjkwOSwgNDcuNTk5Mzk0XSwgWzYuODA2ODg5LCA0Ny41OTkzMTldLCBbNi44MDY5MDMsIDQ3LjU5OTI0NF0sIFs2LjgwNjc1NSwgNDcuNTk4OTM2XSwgWzYuODA2MzQzLCA0Ny41OTgzMjhdLCBbNi44MDU4MzMsIDQ3LjU5NzY5OF0sIFs2LjgwNTUyNSwgNDcuNTk3MzcyXSwgWzYuODA1MDQsIDQ3LjU5NjkxOF0sIFs2LjgwMzUzMSwgNDcuNTk1NTg1XSwgWzYuODAxNTE0LCA0Ny41OTM4OV0sIFs2LjgwMDgzOSwgNDcuNTkzMzg4XSwgWzYuODAwMjM0LCA0Ny41OTI5OTldLCBbNi43OTg0NywgNDcuNTkyMDIxXSwgWzYuNzk3OTQ5LCA0Ny41OTE4MTJdLCBbNi43OTc3NTksIDQ3LjU5MTc2M10sIFs2Ljc5NzUzOSwgNDcuNTkxNzIzXSwgWzYuNzk2ODc1LCA0Ny41OTE3XSwgWzYuNzk2NzE2LCA0Ny41OTE2ODJdLCBbNi43OTYzNzEsIDQ3LjU5MTU5M10sIFs2Ljc5NjEwMSwgNDcuNTkxNDc1XSwgWzYuNzk1NzgzLCA0Ny41OTEyNDZdLCBbNi43OTU2NTcsIDQ3LjU5MTA5OF0sIFs2Ljc5NTUzNywgNDcuNTkwOTI4XSwgWzYuNzk1MzU0LCA0Ny41OTA1MDZdLCBbNi43OTUxNjksIDQ3LjU5MDIyMl0sIFs2Ljc5NDg1NiwgNDcuNTg5ODc0XSwgWzYuNzk0NiwgNDcuNTg5Njg2XSwgWzYuNzkwODY2LCA0Ny41ODc3NTFdLCBbNi43ODk0NDIsIDQ3LjU4Njk4MV0sIFs2Ljc4OTE4NCwgNDcuNTg2ODA4XSwgWzYuNzg4MzIsIDQ3LjU4NjAwM10sIFs2Ljc4ODAyMywgNDcuNTg1NzU4XSwgWzYuNzg3NjY3LCA0Ny41ODU1MzJdLCBbNi43ODcyNDgsIDQ3LjU4NTM1NV0sIFs2Ljc4NjUwOCwgNDcuNTg1MTQ1XSwgWzYuNzg2MjIyLCA0Ny41ODUwODldLCBbNi43ODU4NDQsIDQ3LjU4NTA0M10sIFs2Ljc4NTU2MywgNDcuNTg1MDU0XSwgWzYuNzg1NDQxLCA0Ny41ODUwNzRdLCBbNi43ODUzOTYsIDQ3LjU4NTEzNF0sIFs2Ljc4NTMxMiwgNDcuNTg1MTY5XSwgWzYuNzg1MjYzLCA0Ny41ODUxNzRdLCBbNi43ODUxNzcsIDQ3LjU4NTE2XSwgWzYuNzg1MTExLCA0Ny41ODUxMjFdLCBbNi43ODUwNzcsIDQ3LjU4NTA1OF0sIFs2Ljc4NDk3NCwgNDcuNTg1MDA1XSwgWzYuNzg0NzU0LCA0Ny41ODQ5NV0sIFs2Ljc4MzU0LCA0Ny41ODQ4NjVdLCBbNi43ODAyMywgNDcuNTg0Njk0XSwgWzYuNzc5MjQ1LCA0Ny41ODQ1NjRdLCBbNi43NzY3NzEsIDQ3LjU4NDE3XSwgWzYuNzc2MDk2LCA0Ny41ODQwMzddLCBbNi43NzU3ODcsIDQ3LjU4Mzk2MV0sIFs2Ljc3NTMxOCwgNDcuNTgzODJdLCBbNi43NzM4MzIsIDQ3LjU4MzMyNl0sIFs2Ljc3MzA0MywgNDcuNTgzMTEyXSwgWzYuNzcyODIyLCA0Ny41ODMwNjhdLCBbNi43NzI1OTEsIDQ3LjU4MzA0XSwgWzYuNzcyNDY3LCA0Ny41ODMwNDhdLCBbNi43NzIzNTUsIDQ3LjU4MzAxMV0sIFs2Ljc3MjI4LCA0Ny41ODI5MDhdLCBbNi43NzIxNTEsIDQ3LjU4Mjg0XSwgWzYuNzcxMzIsIDQ3LjU4MjUzN10sIFs2Ljc2OTU5OSwgNDcuNTgyMDEyXSwgWzYuNzY4NjkzLCA0Ny41ODE3MDRdLCBbNi43NjczNiwgNDcuNTgxMTk0XSwgWzYuNzY1OTk4LCA0Ny41ODA1NjhdLCBbNi43NjU1MzksIDQ3LjU4MDMxMl0sIFs2Ljc2NTIxMiwgNDcuNTgwMDU2XSwgWzYuNzYzNjYxLCA0Ny41NzgzODNdLCBbNi43NjMxNDYsIDQ3LjU3Nzg3Ml0sIFs2Ljc2Mjk0LCA0Ny41Nzc2OThdLCBbNi43NjI2OSwgNDcuNTc3NTE1XSwgWzYuNzYwNzg1LCA0Ny41NzYzMzRdLCBbNi43NjA0MjYsIDQ3LjU3NjEyNV0sIFs2Ljc1OTc4LCA0Ny41NzU4NjVdLCBbNi43NTkwMjQsIDQ3LjU3NTUwOV0sIFs2Ljc1ODc3MywgNDcuNTc1NDMyXSwgWzYuNzU4MzU0LCA0Ny41NzUzMjldLCBbNi43NTgyNTEsIDQ3LjU3NTMxOV0sIFs2Ljc1Nzg3MSwgNDcuNTc1MzI4XSwgWzYuNzU3NTIsIDQ3LjU3NTI3OV0sIFs2Ljc1NDU1MywgNDcuNTc0NzFdLCBbNi43NTM5NDMsIDQ3LjU3NDUyXSwgWzYuNzUyOTYzLCA0Ny41NzQxMTNdLCBbNi43NTE4OTgsIDQ3LjU3MzcyNl0sIFs2Ljc0OTc5LCA0Ny41NzI0NTJdLCBbNi43NDkwOTksIDQ3LjU3MjE2OV0sIFs2Ljc0ODU1MSwgNDcuNTcxOTE4XSwgWzYuNzQ4MjMsIDQ3LjU3MTc0NF0sIFs2Ljc0NzY4NiwgNDcuNTcxMzg0XSwgWzYuNzQ3MjQ1LCA0Ny41NzA5ODJdLCBbNi43NDY4NTYsIDQ3LjU3MDU3MV0sIFs2Ljc0NjIxMSwgNDcuNTY5NjYxXSwgWzYuNzQ2MDUyLCA0Ny41Njk1MzRdLCBbNi43NDU4NzksIDQ3LjU2OTQzOV0sIFs2Ljc0NTczMywgNDcuNTY5NDIxXSwgWzYuNzQ1NjIzLCA0Ny41NjkzNThdLCBbNi43NDU1NzUsIDQ3LjU2OTI2Nl0sIFs2Ljc0NTYsIDQ3LjU2OTE3M10sIFs2Ljc0NTM5MiwgNDcuNTY4ODQ1XSwgWzYuNzQzNDM2LCA0Ny41NjcxOTddLCBbNi43NDIyNDYsIDQ3LjU2NjIzM10sIFs2Ljc0MTAxOSwgNDcuNTY1MDMzXSwgWzYuNzQwNzk1LCA0Ny41NjQ4NDldLCBbNi43Mzk5MjMsIDQ3LjU2NDIxOF0sIFs2LjczOTY0LCA0Ny41NjM5NzZdLCBbNi43MzkzNDgsIDQ3LjU2Mzc1OF0sIFs2LjczOTIwNCwgNDcuNTYzNjddLCBbNi43Mzc5OTksIDQ3LjU2MzA0N10sIFs2LjczNjM1NiwgNDcuNTYxOTcxXSwgWzYuNzM1MjUsIDQ3LjU2MTMyOF0sIFs2LjczNDU3NiwgNDcuNTYxMDU0XSwgWzYuNzM0MjE5LCA0Ny41NjA5NTNdLCBbNi43MzM5NzUsIDQ3LjU2MDkyNV0sIFs2LjczMzY2MSwgNDcuNTYwOTExXSwgWzYuNzMzNDIsIDQ3LjU2MDkyNF0sIFs2LjczMzAxNywgNDcuNTYwOTk2XSwgWzYuNzMyNjkyLCA0Ny41NjExMDVdLCBbNi43MzIxMDIsIDQ3LjU2MTM2NF0sIFs2LjczMTUyMSwgNDcuNTYxNjUyXSwgWzYuNzMwMDQ5LCA0Ny41NjIzMjddLCBbNi43Mjk1NTYsIDQ3LjU2MjQ4XSwgWzYuNzI5MDUxLCA0Ny41NjI1NzZdLCBbNi43MjgzOTcsIDQ3LjU2MjYwMV0sIFs2LjcyNzY5NCwgNDcuNTYyNTVdLCBbNi43MjEwNDIsIDQ3LjU2MTJdLCBbNi43MTk1OTcsIDQ3LjU2MDkxOF0sIFs2LjcxODA4OCwgNDcuNTYwNjUxXSwgWzYuNzE1MTQ1LCA0Ny41NjAyNjFdLCBbNi43MTE3MjIsIDQ3LjU1OTgzM10sIFs2LjcwNTgzLCA0Ny41NTg5NDRdLCBbNi43MDUxNjMsIDQ3LjU1ODgzMl0sIFs2LjcwNDYwNCwgNDcuNTU4NjkyXSwgWzYuNzA0Mjk3LCA0Ny41NTg1NThdLCBbNi43MDM5OTYsIDQ3LjU1ODRdLCBbNi43MDIzMzksIDQ3LjU1NzI4MV0sIFs2LjcwMTMyMSwgNDcuNTU2MzQ2XSwgWzYuNjk5NjI2LCA0Ny41NTQxNjZdLCBbNi42OTgwNTIsIDQ3LjU1MTg2XSwgWzYuNjk3MjMyLCA0Ny41NTA3MjJdLCBbNi42OTY5NzksIDQ3LjU1MDA5M10sIFs2LjY5NjgyNCwgNDcuNTQ5ODU1XSwgWzYuNjk2MTA4LCA0Ny41NDkyMTJdLCBbNi42OTYwMzcsIDQ3LjU0OTA3NF0sIFs2LjY5NTgwOCwgNDcuNTQ4Nzc4XSwgWzYuNjk1NTczLCA0Ny41NDg1NjZdLCBbNi42OTQzNTEsIDQ3LjU0Nzc5MV0sIFs2LjY5MzAzMSwgNDcuNTQ3MDQ3XSwgWzYuNjkwNDMsIDQ3LjU0NTA1NF0sIFs2LjY4OTg5OCwgNDcuNTQ0NzEyXSwgWzYuNjg5MzgsIDQ3LjU0NDQ0XSwgWzYuNjg4NjM0LCA0Ny41NDQwODddLCBbNi42ODc4MjEsIDQ3LjU0MzczOF0sIFs2LjY4NzA3LCA0Ny41NDMxODFdLCBbNi42ODIxMywgNDcuNTM5ODVdLCBbNi42ODA1NzEsIDQ3LjUzODg3Ml0sIFs2LjY4MDA5NiwgNDcuNTM4NjI3XSwgWzYuNjc5NzE4LCA0Ny41MzgzODhdLCBbNi42Nzc1NTIsIDQ3LjUzNjYyXSwgWzYuNjc3MzQyLCA0Ny41MzY0MTRdLCBbNi42NzcyMjksIDQ3LjUzNjE1Nl0sIFs2LjY3NzIyOSwgNDcuNTM1NjA5XSwgWzYuNjc3MTE0LCA0Ny41MzQ4NTFdLCBbNi42NzcxMTMsIDQ3LjUzNDQ0NV0sIFs2LjY3NzAwOCwgNDcuNTMzOTEyXSwgWzYuNjc3MTQ4LCA0Ny41MzMyMTRdLCBbNi42NzcxNDMsIDQ3LjUzMjkxOF0sIFs2LjY3NzAwMiwgNDcuNTMyNjNdLCBbNi42NzY3MjIsIDQ3LjUzMjM1Nl0sIFs2LjY3NjAxOCwgNDcuNTMyMDhdLCBbNi42NzQ1NjgsIDQ3LjUzMTU4NV0sIFs2LjY3NDA5MiwgNDcuNTMxMzY3XSwgWzYuNjY5OTQ2LCA0Ny41Mjg0NzNdLCBbNi42Njg2MjYsIDQ3LjUyNzU3Ml0sIFs2LjY2NTA3OSwgNDcuNTI1MTg5XSwgWzYuNjYzMzY4LCA0Ny41MjQwODJdLCBbNi42NjIwMDIsIDQ3LjUyMzE1MV0sIFs2LjY2MTAzOSwgNDcuNTIyNTY5XSwgWzYuNjU5NzIyLCA0Ny41MjE4Nl0sIFs2LjY1ODI3NSwgNDcuNTIxMzc3XSwgWzYuNjU2MzE4LCA0Ny41MjA1OTRdLCBbNi42NTUxNDcsIDQ3LjUyMDA5NF0sIFs2LjY1MjUzLCA0Ny41MTkwMjJdLCBbNi42NDg2MzgsIDQ3LjUxNzg1MV0sIFs2LjY0ODA2MSwgNDcuNTE3Njk3XSwgWzYuNjQ3NDY1LCA0Ny41MTc2MDRdLCBbNi42NDYyNTYsIDQ3LjUxNzUzMV0sIFs2LjY0NDk3MSwgNDcuNTE3NTE1XSwgWzYuNjQzNDk1LCA0Ny41MTcyOTldLCBbNi42NDI0MDMsIDQ3LjUxNjkwMV0sIFs2LjYzNzA1MiwgNDcuNTE0MDYyXSwgWzYuNjM2MTY0LCA0Ny41MTM1NjJdLCBbNi42MzU0OTQsIDQ3LjUxMzEyMV0sIFs2LjYzNTA1NiwgNDcuNTEyNzM5XSwgWzYuNjM0NzU1LCA0Ny41MTI0MTddLCBbNi42MzQ0MDYsIDQ3LjUxMTk5OV0sIFs2LjYyNjU0NiwgNDcuNDk5MTM4XSwgWzYuNjI1MDgzLCA0Ny40OTM1NzZdLCBbNi42MjQ3MzIsIDQ3LjQ5MjgyOV0sIFs2LjYyNDU2MiwgNDcuNDkyNjMyXSwgWzYuNjI0MzQ3LCA0Ny40OTI0MzJdLCBbNi42MjM5MjUsIDQ3LjQ5MjE3Ml0sIFs2LjYyMjk3NSwgNDcuNDkxNzcyXSwgWzYuNjIyNjU4LCA0Ny40OTE1ODJdLCBbNi42MjIzOTIsIDQ3LjQ5MTM3NF0sIFs2LjYyMjE1OSwgNDcuNDkxMTM4XSwgWzYuNjE5OTIsIDQ3LjQ4NzUzMl0sIFs2LjYxOTE1MywgNDcuNDg1MDZdLCBbNi42MTkxMzMsIDQ3LjQ4NDkzM10sIFs2LjYxOTEyNiwgNDcuNDg0Mjk0XSwgWzYuNjE5MDg2LCA0Ny40ODQwOThdLCBbNi42MTg5OTEsIDQ3LjQ4MzkxNF0sIFs2LjYxNzEyMywgNDcuNDgwOTg3XSwgWzYuNjE2NDkxLCA0Ny40ODAwNzZdLCBbNi42MTYyNDYsIDQ3LjQ3OTc5XSwgWzYuNjE1Nzk3LCA0Ny40NzkxNDJdLCBbNi42MTU2MiwgNDcuNDc4NzZdLCBbNi42MTU1NDYsIDQ3LjQ3ODQ0M10sIFs2LjYxNTE4MSwgNDcuNDc1MzczXSwgWzYuNjE0ODc0LCA0Ny40NzQ1MzVdLCBbNi42MTM0MDIsIDQ3LjQ3MTMwM10sIFs2LjYxMjczLCA0Ny40NzAwMTldLCBbNi42MTIyODQsIDQ3LjQ2OTI0NF0sIFs2LjYxMTk2NywgNDcuNDY4ODg2XSwgWzYuNjExMTYxLCA0Ny40NjgzNjddLCBbNi42MTAwMzcsIDQ3LjQ2NzMxXSwgWzYuNjA5MDksIDQ3LjQ2NjAyNl0sIFs2LjYwODQ0OSwgNDcuNDY0OTUxXSwgWzYuNjA4MTQ4LCA0Ny40NjQzNjFdLCBbNi42MDgwNzMsIDQ3LjQ2Mzk5NF0sIFs2LjYwODAzOSwgNDcuNDYzMzY3XSwgWzYuNjA3Nzg2LCA0Ny40NjI2NzRdLCBbNi42MDczOTUsIDQ3LjQ2MjE4Nl0sIFs2LjYwNTQ4MywgNDcuNDYxMDQ2XSwgWzYuNjA1MDY0LCA0Ny40NjA3NDZdLCBbNi42MDQ5NTYsIDQ3LjQ2MDY1MV0sIFs2LjYwNDQwMSwgNDcuNDU5OTIxXSwgWzYuNjA0MjQ5LCA0Ny40NTk3ODVdLCBbNi42MDM4NTMsIDQ3LjQ1OTYyNF0sIFs2LjYwMjI0NSwgNDcuNDU5MzFdLCBbNi42MDE3MzgsIDQ3LjQ1OTA5Ml0sIFs2LjYwMTQwMiwgNDcuNDU4ODU2XSwgWzYuNjAxMTQ3LCA0Ny40NTg1MzZdLCBbNi42MDA2ODksIDQ3LjQ1Nzg0OF0sIFs2LjYwMDQ0OCwgNDcuNDU3NTc4XSwgWzYuNjAwMTQzLCA0Ny40NTczODddLCBbNi41OTk4MDUsIDQ3LjQ1NzI0OF0sIFs2LjU5OTQ1OSwgNDcuNDU3MTVdLCBbNi41OTg5MTgsIDQ3LjQ1NzA4XSwgWzYuNTk4MzQ2LCA0Ny40NTcwMzldLCBbNi41OTc2NjgsIDQ3LjQ1NzA3Ml0sIFs2LjU5NjgzMiwgNDcuNDU3MjFdLCBbNi41OTYxNjMsIDQ3LjQ1NzM4Nl0sIFs2LjU5NTI2MSwgNDcuNDU3NzAxXSwgWzYuNTk0NjU4LCA0Ny40NTc4NTFdLCBbNi41OTM5ODYsIDQ3LjQ1NzkyXSwgWzYuNTkyMTEyLCA0Ny40NTgwMTNdLCBbNi41OTE0MzYsIDQ3LjQ1Nzk4M10sIFs2LjU5MTE2LCA0Ny40NTc5NDldLCBbNi41OTA1MTksIDQ3LjQ1NzkyNF0sIFs2LjU4OTMzOCwgNDcuNDU3NzhdLCBbNi41ODg2MDQsIDQ3LjQ1NzYwN10sIFs2LjU4NjczLCA0Ny40NTcwNjddLCBbNi41ODYzNzYsIDQ3LjQ1NjkwNV0sIFs2LjU4NDA2MSwgNDcuNDU1NTM3XSwgWzYuNTgxMSwgNDcuNDUzOTZdLCBbNi41ODAzMDksIDQ3LjQ1MzU1NV0sIFs2LjU3ODE3MSwgNDcuNDUxNzMyXSwgWzYuNTc4MDQ0LCA0Ny40NTE1NDZdLCBbNi41Nzg1MywgNDcuNDUxMjddLCBbNi41ODAxODEsIDQ3LjQ1MDM5M10sIFs2LjU4MDI4MywgNDcuNDUwMzA3XSwgWzYuNTgwMzUsIDQ3LjQ1MDIwNV0sIFs2LjU4MDQ5MiwgNDcuNDUwMDYyXSwgWzYuNTgxMTc1LCA0Ny40NDk1OTZdLCBbNi41ODE0NzIsIDQ3LjQ0OTM2MV0sIFs2LjU4MTU1NCwgNDcuNDQ5MjczXSwgWzYuNTgxNDk4LCA0Ny40NDkyMDZdLCBbNi41ODE1MTUsIDQ3LjQ0OTEzNV0sIFs2LjU4MTU5LCA0Ny40NDkwODZdLCBbNi41ODE2OTIsIDQ3LjQ0OTA3N10sIFs2LjU4MTY4MSwgNDcuNDQ4ODY3XSwgWzYuNTgxNTgyLCA0Ny40NDg2OTVdLCBbNi41ODE0MTgsIDQ3LjQ0ODUyNl0sIFs2LjU4MDgzNCwgNDcuNDQ4MDA4XSwgWzYuNTgwNDYzLCA0Ny40NDc1NThdLCBbNi41Nzk2NjIsIDQ3LjQ0NjIxOV0sIFs2LjU3OTQ5NywgNDcuNDQ2MDM2XSwgWzYuNTc5Mjc2LCA0Ny40NDU4MzFdLCBbNi41Nzg3OTksIDQ3LjQ0NTQ2Nl0sIFs2LjU3ODU1MSwgNDcuNDQ1MjQzXSwgWzYuNTc4NDIxLCA0Ny40NDUwN10sIFs2LjU3ODMzMywgNDcuNDQ0OTA5XSwgWzYuNTc4MjY5LCA0Ny40NDQ2NjJdLCBbNi41NzgyNjEsIDQ3LjQ0NDQ5XSwgWzYuNTc4MjgzLCA0Ny40NDQzMzRdLCBbNi41Nzg0MDUsIDQ3LjQ0NDAxOF0sIFs2LjU3ODUxOCwgNDcuNDQzODVdLCBbNi41NzkwOTksIDQ3LjQ0MzI1NV0sIFs2LjU3OTQzLCA0Ny40NDI4NjhdLCBbNi41Nzk1MDksIDQ3LjQ0MjczMV0sIFs2LjU3OTYxOCwgNDcuNDQyNDMxXSwgWzYuNTc5NjM2LCA0Ny40NDIxNDFdLCBbNi41Nzk2MjYsIDQ3LjQ0MTQ1M10sIFs2LjU3OTY4NCwgNDcuNDQxMTg3XSwgWzYuNTc5ODIsIDQ3LjQ0MDg2XSwgWzYuNTgwMjYsIDQ3LjQzOTk5Nl0sIFs2LjU4MDQ1MywgNDcuNDM5NTQzXSwgWzYuNTgwNDk2LCA0Ny40MzkzNDRdLCBbNi41ODA0OTIsIDQ3LjQzOTIyOF0sIFs2LjU4MDQ1NCwgNDcuNDM5MDYzXSwgWzYuNTgwMzc0LCA0Ny40Mzg5MjFdLCBbNi41Nzk4MSwgNDcuNDM4MjM0XSwgWzYuNTc5NjEsIDQ3LjQzNzk0MV0sIFs2LjU3OTU3NiwgNDcuNDM3ODE4XSwgWzYuNTc5NTY3LCA0Ny40Mzc2ODRdLCBbNi41Nzk2NzIsIDQ3LjQzNzM1XSwgWzYuNTc5Njk5LCA0Ny40MzcwMjhdLCBbNi41Nzk2NTYsIDQ3LjQzNjk5MV0sIFs2LjU3OTYyNywgNDcuNDM2OTE5XSwgWzYuNTc5NjUxLCA0Ny40MzY4NDJdLCBbNi41Nzk3NDMsIDQ3LjQzNjc3Ml0sIFs2LjU3OTg2NCwgNDcuNDM2NzQ3XSwgWzYuNTgwMDEyLCA0Ny40MzY2NDldLCBbNi41ODE1MiwgNDcuNDM0OTMxXSwgWzYuNTgxNjc4LCA0Ny40MzQ2NV0sIFs2LjU4MTc5LCA0Ny40MzQzOTJdLCBbNi41ODE4NjUsIDQ3LjQzNDA5OV0sIFs2LjU4MTg5MywgNDcuNDMzNzU2XSwgWzYuNTgxODY3LCA0Ny40MzM0NjJdLCBbNi41ODE2NjUsIDQ3LjQzMjg4OF0sIFs2LjU4MTQ4NCwgNDcuNDMyNThdLCBbNi41ODExNzQsIDQ3LjQzMjIzMV0sIFs2LjU4MDg5LCA0Ny40MzE5ODFdLCBbNi41ODA0OTMsIDQ3LjQzMTczN10sIFs2LjU3ODAyMywgNDcuNDMwNTddLCBbNi41NzU5NCwgNDcuNDI5NjM0XSwgWzYuNTc0OTUsIDQ3LjQyOTQxNF0sIFs2LjU3Mzg2LCA0Ny40Mjk0MDNdLCBbNi41NzI5ODYsIDQ3LjQyOTY2XSwgWzYuNTcwODc5LCA0Ny40MzA2NzddLCBbNi41NzA0MTIsIDQ3LjQzMDgyMV0sIFs2LjU2OTg4LCA0Ny40MzA5MTNdLCBbNi41NjkzNzQsIDQ3LjQzMDkxOF0sIFs2LjU2ODc2MywgNDcuNDMwODY0XSwgWzYuNTY4MzgsIDQ3LjQzMDc1OF0sIFs2LjU2Nzk5OCwgNDcuNDMwNl0sIFs2LjU2NzU1OSwgNDcuNDMwMzQ1XSwgWzYuNTY1NTg1LCA0Ny40Mjg2NzNdLCBbNi41NjUwNTIsIDQ3LjQyODMxMV0sIFs2LjU2NDM3MiwgNDcuNDI3OTQ0XSwgWzYuNTY0MTU1LCA0Ny40Mjc4ODVdLCBbNi41NjMwNDksIDQ3LjQyNzQ3NV0sIFs2LjU2Mjg4OCwgNDcuNDI3Mzk4XSwgWzYuNTYyNzEzLCA0Ny40MjcyODZdLCBbNi41NjI2MTEsIDQ3LjQyNzE3M10sIFs2LjU2MjQxMiwgNDcuNDI3MDQ4XSwgWzYuNTYyMjM5LCA0Ny40MjY4MzNdLCBbNi41NjIxMjgsIDQ3LjQyNjYwM10sIFs2LjU2MjExNCwgNDcuNDI2MDc3XSwgWzYuNTYyMjIsIDQ3LjQyNTQ1XSwgWzYuNTYyMjAxLCA0Ny40MjUxNDldLCBbNi41NjIxMjUsIDQ3LjQyNDczM10sIFs2LjU2MjEyOCwgNDcuNDI0MzYyXSwgWzYuNTYyMTY5LCA0Ny40MjRdLCBbNi41NjIyMywgNDcuNDIzNjk5XSwgWzYuNTYyMzQ4LCA0Ny40MjMzNjFdLCBbNi41NjI1MjUsIDQ3LjQyMjk4NF0sIFs2LjU2MjY4OSwgNDcuNDIyNTE5XSwgWzYuNTYyNzg0LCA0Ny40MjIwMzFdLCBbNi41NjI4NDIsIDQ3LjQyMTQ3M10sIFs2LjU2Mjg3NSwgNDcuNDIwNDI4XSwgWzYuNTYyODEsIDQ3LjQxOTg4OF0sIFs2LjU2MjU2MSwgNDcuNDE4OTc3XSwgWzYuNTYyMjY4LCA0Ny40MTg0MDVdLCBbNi41NjE3ODcsIDQ3LjQxNzY1NF0sIFs2LjU2MDU1NywgNDcuNDE2MjIxXSwgWzYuNTU5MDgsIDQ3LjQxNTA0Ml0sIFs2LjU1NzUwMywgNDcuNDE0MTE0XSwgWzYuNTU1NzAxLCA0Ny40MTM1MzZdLCBbNi41NTI2MDIsIDQ3LjQxMjc1NV0sIFs2LjU0ODE0MiwgNDcuNDEyNTM2XSwgWzYuNTQ1MTE4LCA0Ny40MTI2NDZdLCBbNi41NDM5MzgsIDQ3LjQxMjU4N10sIFs2LjU0MjczNiwgNDcuNDEyNDE3XSwgWzYuNTQxNTgsIDQ3LjQxMjE0OF0sIFs2LjUzOTgxMSwgNDcuNDExNTIxXSwgWzYuNTM4OTI3LCA0Ny40MTEyNTldLCBbNi41MzgzMzIsIDQ3LjQxMTEyNF0sIFs2LjUzNTc1MywgNDcuNDEwNzkxXSwgWzYuNTMyODk1LCA0Ny40MTAxMzRdLCBbNi41MzE0MzYsIDQ3LjQwOTcwM10sIFs2LjUyOTU0NSwgNDcuNDA5MDIyXSwgWzYuNTI4NjA3LCA0Ny40MDg3NDFdLCBbNi41MjczMDMsIDQ3LjQwODQ2NF0sIFs2LjUyMzA5MywgNDcuNDA3Nzk2XSwgWzYuNTIyMDU5LCA0Ny40MDc1ODddLCBbNi41MjEzNjYsIDQ3LjQwNzM5OV0sIFs2LjUyMDMyOCwgNDcuNDA3MDU5XSwgWzYuNTE1NDk5LCA0Ny40MDUyMzFdLCBbNi41MTQ0MTUsIDQ3LjQwNDcyNl0sIFs2LjUxMzYxLCA0Ny40MDQzMDldLCBbNi41MTMwMjcsIDQ3LjQwMzkzNV0sIFs2LjUxMjQwNywgNDcuNDAzNDg2XSwgWzYuNTExOTExLCA0Ny40MDMxMDJdLCBbNi41MTEzMTQsIDQ3LjQwMjU0Ml0sIFs2LjUxMDg5MiwgNDcuNDAyMDQxXSwgWzYuNTEwNDksIDQ3LjQwMTQyN10sIFs2LjUwOTcyNiwgNDcuNDAwMDQ5XSwgWzYuNTA4ODA2LCA0Ny4zOTg4MTVdLCBbNi41MDg1MzIsIDQ3LjM5ODQ5Ml0sIFs2LjUwODA2MiwgNDcuMzk4MDI4XSwgWzYuNTA3NjY3LCA0Ny4zOTc2OTFdLCBbNi41MDY3NjcsIDQ3LjM5NzA5Nl0sIFs2LjUwNjE0NSwgNDcuMzk2NzYzXSwgWzYuNTA1MDI1LCA0Ny4zOTYzMTddLCBbNi41MDI3ODEsIDQ3LjM5NTY4M10sIFs2LjUwMTUzMSwgNDcuMzk1MjQ4XSwgWzYuNDk5Njg4LCA0Ny4zOTQ1MDVdLCBbNi40OTg1NzEsIDQ3LjM5NDA5XSwgWzYuNDk4MTA2LCA0Ny4zOTM5NDVdLCBbNi40OTc3NzEsIDQ3LjM5Mzc3XSwgWzYuNDk2ODU3LCA0Ny4zOTMwOTNdLCBbNi40OTYzOTYsIDQ3LjM5Mjg3NV0sIFs2LjQ5NjIxNywgNDcuMzkyNzcxXSwgWzYuNDk1OTc1LCA0Ny4zOTI1ODFdLCBbNi40OTU2MzIsIDQ3LjM5MjQxN10sIFs2LjQ5NDcxOSwgNDcuMzkxODU2XSwgWzYuNDk0NzMxLCA0Ny4zOTE2OTddLCBbNi40OTQ5NzYsIDQ3LjM5MTQ1OV0sIFs2LjQ5NTEsIDQ3LjM5MTM2N10sIFs2LjQ5NTM5MiwgNDcuMzkxMDE1XSwgWzYuNDk1NTE5LCA0Ny4zOTA3MzhdLCBbNi40OTU0OTgsIDQ3LjM5MDQ5NF0sIFs2LjQ5NTQzMSwgNDcuMzkwMjE5XSwgWzYuNDk1NDA3LCA0Ny4zOTAwMjNdLCBbNi40OTU0MzIsIDQ3LjM4OTkwOV0sIFs2LjQ5NTU5OSwgNDcuMzg5NjU5XSwgWzYuNDk1NzU5LCA0Ny4zODk0OTldLCBbNi40OTYxMDYsIDQ3LjM4OTIxNF0sIFs2LjQ5NzQ1NSwgNDcuMzg4MTc0XSwgWzYuNDk5MDk0LCA0Ny4zODcwNzJdLCBbNi40OTkzNDgsIDQ3LjM4Njg4XSwgWzYuNDk5NTEyLCA0Ny4zODY3MDNdLCBbNi40OTk2NzcsIDQ3LjM4NjQ1MV0sIFs2LjQ5OTc1OSwgNDcuMzg2MjA2XSwgWzYuNDk5NzcyLCA0Ny4zODYwOTFdLCBbNi40OTk3NjgsIDQ3LjM4NTkzMV0sIFs2LjQ5OTcxMSwgNDcuMzg1NjE2XSwgWzYuNDk5MjUzLCA0Ny4zODQxMjJdLCBbNi40OTkxNzcsIDQ3LjM4Mzk1NF0sIFs2LjQ5OTA4NiwgNDcuMzgzODE3XSwgWzYuNDk4ODQ5LCA0Ny4zODM1NDldLCBbNi40OTg1MjgsIDQ3LjM4MzMwNF0sIFs2LjQ5ODAzOSwgNDcuMzgzMDZdLCBbNi40OTc2NDksIDQ3LjM4MjkzN10sIFs2LjQ5NzE3NSwgNDcuMzgyODM4XSwgWzYuNDkwNjIxLCA0Ny4zODE2ODNdLCBbNi40ODU1MDMsIDQ3LjM4MDYyOV0sIFs2LjQ3NDc3OSwgNDcuMzc4MzUxXSwgWzYuNDcwMTE2LCA0Ny4zNzczODldLCBbNi40NjkxODcsIDQ3LjM3NzI1OV0sIFs2LjQ2NTM2MywgNDcuMzc2ODYyXSwgWzYuNDY0OTM5LCA0Ny4zNzY3ODldLCBbNi40NjQ0NDIsIDQ3LjM3NjY2Nl0sIFs2LjQ2MjI1NSwgNDcuMzc2MDE4XSwgWzYuNDYwMTgyLCA0Ny4zNzU1MTddLCBbNi40NTk4NzgsIDQ3LjM3NTQzNF0sIFs2LjQ1OTQzNCwgNDcuMzc1MjgxXSwgWzYuNDU5MTAzLCA0Ny4zNzUxMTNdLCBbNi40NTg5MywgNDcuMzc0OTg4XSwgWzYuNDU4ODcxLCA0Ny4zNzQ5MzNdLCBbNi40NTg2ODUsIDQ3LjM3NDY2N10sIFs2LjQ1ODU0MiwgNDcuMzc0NTU1XSwgWzYuNDU4Mzk0LCA0Ny4zNzQ0OTFdLCBbNi40NTc1OTUsIDQ3LjM3NDIzMV0sIFs2LjQ1Njk1NSwgNDcuMzczOTc1XSwgWzYuNDU2NTgsIDQ3LjM3Mzc5XSwgWzYuNDU2MTE3LCA0Ny4zNzM1MTRdLCBbNi40NTM2NzcsIDQ3LjM3MTgwNF0sIFs2LjQ1MzMwNCwgNDcuMzcxNTIyXSwgWzYuNDUyODU0LCA0Ny4zNzExMTFdLCBbNi40NTI2MTksIDQ3LjM3MDg0NF0sIFs2LjQ1MjQzNiwgNDcuMzcwNTddLCBbNi40NTIyOTYsIDQ3LjM3MDI4NF0sIFs2LjQ1MjE2NiwgNDcuMzY5OTE0XSwgWzYuNDUxOTgzLCA0Ny4zNjkxMTFdLCBbNi40NTE5MDcsIDQ3LjM2ODY1Ml0sIFs2LjQ1MTg3MywgNDcuMzY4MDg5XSwgWzYuNDUxODY5LCA0Ny4zNjc0XSwgWzYuNDUxODQ4LCA0Ny4zNjcwODddLCBbNi40NTE3OCwgNDcuMzY2Njg5XSwgWzYuNDUxMTc3LCA0Ny4zNjQ5NzZdLCBbNi40NTEwNDUsIDQ3LjM2NDc0OF0sIFs2LjQ1MDk1MSwgNDcuMzY0NjI5XSwgWzYuNDUwODU4LCA0Ny4zNjQ1MjddLCBbNi40NTA2ODIsIDQ3LjM2NDM4NV0sIFs2LjQ1MDQ4MSwgNDcuMzY0MjYzXSwgWzYuNDUwMjAyLCA0Ny4zNjQxMzldLCBbNi40NDk3NDMsIDQ3LjM2Mzk3NF0sIFs2LjQ0OTUwOSwgNDcuMzYzOTEyXSwgWzYuNDQ5MTIxLCA0Ny4zNjM4MzldLCBbNi40NDg1NzIsIDQ3LjM2Mzc4Nl0sIFs2LjQ0ODEwNCwgNDcuMzYzNzldLCBbNi40NDc4NzcsIDQ3LjM2MzgwNl0sIFs2LjQ0NzE2MiwgNDcuMzYzOTE0XSwgWzYuNDQ2NjYsIDQ3LjM2NDAyN10sIFs2LjQ0NjM1NywgNDcuMzY0MTNdLCBbNi40NDYxMDcsIDQ3LjM2NDI0XSwgWzYuNDQwNzAxLCA0Ny4zNjY5MzNdLCBbNi40NDAxODEsIDQ3LjM2NzE0XSwgWzYuNDM5OTQyLCA0Ny4zNjcyMTZdLCBbNi40Mzk2MiwgNDcuMzY3M10sIFs2LjQzOTEwOCwgNDcuMzY3Mzc5XSwgWzYuNDM4NjMyLCA0Ny4zNjc0MV0sIFs2LjQzNzM4NCwgNDcuMzY3NDQyXSwgWzYuNDM2ODc3LCA0Ny4zNjc0OTJdLCBbNi40MzU4NDUsIDQ3LjM2NzY3OV0sIFs2LjQzNDQ3NywgNDcuMzY3OTczXSwgWzYuNDMzNjMzLCA0Ny4zNjgxMzFdLCBbNi40MzI4OCwgNDcuMzY4Mjk2XSwgWzYuNDMyMzU2LCA0Ny4zNjg0NTNdLCBbNi40MzE1NzEsIDQ3LjM2ODc4M10sIFs2LjQzMTA5OCwgNDcuMzY5MDddLCBbNi40MzA3MTUsIDQ3LjM2OTM0N10sIFs2LjQzMDM0MSwgNDcuMzY5Njg2XSwgWzYuNDI5OTk4LCA0Ny4zNzAxMDhdLCBbNi40Mjk0ODYsIDQ3LjM3MDkzMV0sIFs2LjQyOTMyNiwgNDcuMzcxMTUyXSwgWzYuNDI5MDAxLCA0Ny4zNzE0ODZdLCBbNi40Mjg2MTksIDQ3LjM3MTc5M10sIFs2LjQyODI4OCwgNDcuMzcxOTkzXSwgWzYuNDI3OTAyLCA0Ny4zNzIxNzJdLCBbNi40Mjc2NjIsIDQ3LjM3MjI1OV0sIFs2LjQyNzI4LCA0Ny4zNzIzNzJdLCBbNi40MjY5MzQsIDQ3LjM3MjQ0N10sIFs2LjQyNjQ2MywgNDcuMzcyNTJdLCBbNi40MjU4NzcsIDQ3LjM3MjU0NF0sIFs2LjQyNTQyMywgNDcuMzcyNTI0XSwgWzYuNDI0OTg5LCA0Ny4zNzI0NzVdLCBbNi40MjQ1NCwgNDcuMzcyMzgyXSwgWzYuNDIzOTk2LCA0Ny4zNzIyMjldLCBbNi40MjI5MjIsIDQ3LjM3MTg1OF0sIFs2LjQyMjA3NCwgNDcuMzcxNTQzXSwgWzYuNDIxNzc2LCA0Ny4zNzEzOTddLCBbNi40MjE1NDIsIDQ3LjM3MTIzNV0sIFs2LjQyMTExMywgNDcuMzcwODQyXSwgWzYuNDIwMzcxLCA0Ny4zNzAwMzhdLCBbNi40MTkxMTEsIDQ3LjM2ODYwN10sIFs2LjQxODkwOCwgNDcuMzY4MzQ3XSwgWzYuNDE4NTQ5LCA0Ny4zNjc4Ml0sIFs2LjQxNzY4NCwgNDcuMzY2NDUxXSwgWzYuNDE3NTUyLCA0Ny4zNjYxODJdLCBbNi40MTcyOTEsIDQ3LjM2NTM1M10sIFs2LjQxNzE0NSwgNDcuMzY0NF0sIFs2LjQxNzE3NiwgNDcuMzY0MDkzXSwgWzYuNDE3MzI3LCA0Ny4zNjM3NjJdLCBbNi40MTc2ODUsIDQ3LjM2MzE4XSwgWzYuNDE3NzU2LCA0Ny4zNjI4OTZdLCBbNi40MTc3NzgsIDQ3LjM2MjQxN10sIFs2LjQxNzY2NiwgNDcuMzYxOTcxXSwgWzYuNDE3MDMzLCA0Ny4zNjA4NzZdLCBbNi40MTY4NDMsIDQ3LjM2MDY1M10sIFs2LjQxNjU2OSwgNDcuMzYwNDA1XSwgWzYuNDE2MjMsIDQ3LjM2MDE3MV0sIFs2LjQxNTg2NiwgNDcuMzU5OTY1XSwgWzYuNDE1NzE1LCA0Ny4zNTk4OTddLCBbNi40MTMyMTUsIDQ3LjM1OTA0Nl0sIFs2LjQxMjU2OSwgNDcuMzU4ODU2XSwgWzYuNDExODg4LCA0Ny4zNTg3MzVdLCBbNi40MTE1MjYsIDQ3LjM1ODY5MV0sIFs2LjQxMDg2OSwgNDcuMzU4NjYyXSwgWzYuNDEwMTYyLCA0Ny4zNTg2ODddLCBbNi40MDg2NjcsIDQ3LjM1ODg4OV0sIFs2LjQwODEwOSwgNDcuMzU4OTI3XSwgWzYuNDA3NjU0LCA0Ny4zNTg5MzRdLCBbNi40MDUzNjgsIDQ3LjM1ODg1Ml0sIFs2LjQwMzQyOSwgNDcuMzU4NzQxXSwgWzYuNDAyMDQxLCA0Ny4zNTg3MDJdLCBbNi40MDAxMjksIDQ3LjM1ODY4XSwgWzYuMzk5NTY2LCA0Ny4zNTg2NDhdLCBbNi4zOTY0MzcsIDQ3LjM1ODM4MV0sIFs2LjM5NTcwNywgNDcuMzU4Mjk0XSwgWzYuMzk0OTY3LCA0Ny4zNTgxNDNdLCBbNi4zOTQ0MywgNDcuMzU4MDAyXSwgWzYuMzk0MTQxLCA0Ny4zNTc5MDRdLCBbNi4zOTM3NDYsIDQ3LjM1Nzc0Ml0sIFs2LjM5MzI2MSwgNDcuMzU3NDg0XSwgWzYuMzkyOTc0LCA0Ny4zNTcyOTZdLCBbNi4zOTI4MjksIDQ3LjM1NzE4XSwgWzYuMzkyMTk2LCA0Ny4zNTY0NzZdLCBbNi4zOTE4NzIsIDQ3LjM1NjE5M10sIFs2LjM5MTQ4MSwgNDcuMzU1OTE4XSwgWzYuMzkwMDc1LCA0Ny4zNTUwNTRdLCBbNi4zODk3OTMsIDQ3LjM1NDkyM10sIFs2LjM4OTQzMiwgNDcuMzU0ODE0XSwgWzYuMzg3OTk1LCA0Ny4zNTQ0NDFdLCBbNi4zODc1NDQsIDQ3LjM1NDI5NF0sIFs2LjM4Njg4LCA0Ny4zNTQwMThdLCBbNi4zODY0ODIsIDQ3LjM1Mzg5XSwgWzYuMzg0NjA4LCA0Ny4zNTM0NjVdLCBbNi4zODQyOTgsIDQ3LjM1MzQxNV0sIFs2LjM4Mzc4MywgNDcuMzUzMzkzXSwgWzYuMzgzMzk3LCA0Ny4zNTM0MTVdLCBbNi4zODEwNzQsIDQ3LjM1MzY5NF0sIFs2LjM4MDU3MywgNDcuMzUzNzc3XSwgWzYuMzc5MzI2LCA0Ny4zNTQwMzhdLCBbNi4zNzgxOTQsIDQ3LjM1NDIwN10sIFs2LjM3Nzc0OSwgNDcuMzU0MzE4XSwgWzYuMzc2MTg2LCA0Ny4zNTQ4MjRdLCBbNi4zNzU3NjksIDQ3LjM1NDkxNl0sIFs2LjM3NDkzOSwgNDcuMzU1MDM0XSwgWzYuMzczMTE2LCA0Ny4zNTU1MThdLCBbNi4zNzI3NjEsIDQ3LjM1NTU5M10sIFs2LjM3MjQxMSwgNDcuMzU1NjIyXSwgWzYuMzcyMDU1LCA0Ny4zNTU2MDZdLCBbNi4zNzE3NDIsIDQ3LjM1NTU2M10sIFs2LjM3MTM4MSwgNDcuMzU1NDY3XSwgWzYuMzcxMDQsIDQ3LjM1NTMxOV0sIFs2LjM3MDgwOCwgNDcuMzU1MTc2XSwgWzYuMzcsIDQ3LjM1NDQ3Nl0sIFs2LjM2OTgzOCwgNDcuMzU0MTMxXSwgWzYuMzY5Nzc0LCA0Ny4zNTM3OTFdLCBbNi4zNjk4MDgsIDQ3LjM1MzQ3OV0sIFs2LjM3MDA3MiwgNDcuMzUyODQ0XSwgWzYuMzcwMjQ1LCA0Ny4zNTI2NTFdLCBbNi4zNzA1MzIsIDQ3LjM1MjQwNl0sIFs2LjM3MDYyMywgNDcuMzUyMjE5XSwgWzYuMzcwNjI3LCA0Ny4zNTE5OF0sIFs2LjM3MDU1OSwgNDcuMzUxODQzXSwgWzYuMzcwNDQ0LCA0Ny4zNTE3MThdLCBbNi4zNzAyOSwgNDcuMzUxNjA4XSwgWzYuMzcwMTA2LCA0Ny4zNTE1MjVdLCBbNi4zNjk4MTYsIDQ3LjM1MTQyOF0sIFs2LjM2Nzc2NCwgNDcuMzUxMDA0XSwgWzYuMzY1NjUzLCA0Ny4zNTA2NDRdLCBbNi4zNjQ0NzYsIDQ3LjM1MDUzMV0sIFs2LjM2MzgwNiwgNDcuMzUwNTE1XSwgWzYuMzYyNDI3LCA0Ny4zNTA1NF0sIFs2LjM2MTk4LCA0Ny4zNTA1ODVdLCBbNi4zNjEzMDksIDQ3LjM1MDY4N10sIFs2LjM2MDI5NSwgNDcuMzUwODc1XSwgWzYuMzU1OTQ0LCA0Ny4zNTIwMTNdLCBbNi4zNTQ4MzEsIDQ3LjM1MjI2XSwgWzYuMzU0NjExLCA0Ny4zNTIyNzddLCBbNi4zNTQ2MjcsIDQ3LjM1MjMxMl0sIFs2LjM1NDYxNCwgNDcuMzUyMzQ4XSwgWzYuMzU0NTc2LCA0Ny4zNTIzNzRdLCBbNi4zNTQ1MTcsIDQ3LjM1MjM4NF0sIFs2LjM1NDQ2LCA0Ny4zNTIzN10sIFs2LjM1NDQyNCwgNDcuMzUyMzM3XSwgWzYuMzU0MjYxLCA0Ny4zNTIzOTFdLCBbNi4zNTM2ODcsIDQ3LjM1MjQ2MV0sIFs2LjM1MzAwNSwgNDcuMzUyNDg2XSwgWzYuMzUyMTU0LCA0Ny4zNTI0MzFdLCBbNi4zNTE3OCwgNDcuMzUyMzY2XSwgWzYuMzUxNDYyLCA0Ny4zNTIyOTFdLCBbNi4zNDk1OTQsIDQ3LjM1MTc3NV0sIFs2LjM0OTM4LCA0Ny4zNTE2ODldLCBbNi4zNDg2OTEsIDQ3LjM1MTMxN10sIFs2LjM0NjE4MiwgNDcuMzQ5ODAzXSwgWzYuMzQ1ODIxLCA0Ny4zNDk2MjZdLCBbNi4zNDU3MDUsIDQ3LjM0OTU4Ml0sIFs2LjM0NTQ3NywgNDcuMzQ5NTI3XSwgWzYuMzQzODk4LCA0Ny4zNDk0NV0sIFs2LjM0MzcyOCwgNDcuMzQ5NDIyXSwgWzYuMzQzNDk2LCA0Ny4zNDkzNDJdLCBbNi4zNDMzOCwgNDcuMzQ5MjQyXSwgWzYuMzQzMzM3LCA0Ny4zNDkxNzRdLCBbNi4zNDMxNDUsIDQ3LjM0ODY3NV0sIFs2LjM0MzAyOCwgNDcuMzQ4NTE1XSwgWzYuMzQyODY2LCA0Ny4zNDgzOV0sIFs2LjM0MjY2NCwgNDcuMzQ4MzAzXSwgWzYuMzQyNDIxLCA0Ny4zNDgyNDRdLCBbNi4zNDIxOTUsIDQ3LjM0ODIzM10sIFs2LjM0MTk0OCwgNDcuMzQ4MjU5XSwgWzYuMzQxNzk3LCA0Ny4zNDgyOThdLCBbNi4zNDE2MjYsIDQ3LjM0ODM1OF0sIFs2LjM0MTQ2OSwgNDcuMzQ4NDM1XSwgWzYuMzQwOTM5LCA0Ny4zNDg3ODddLCBbNi4zNDA3NTQsIDQ3LjM0ODg1NF0sIFs2LjM0MDM5MiwgNDcuMzQ4OTI1XSwgWzYuMzM5NDcyLCA0Ny4zNDkwNDVdLCBbNi4zMzg1MjcsIDQ3LjM0OTEyMV0sIFs2LjMzODMwMiwgNDcuMzQ5MTM2XSwgWzYuMzM3Nzc3LCA0Ny4zNDkxMzhdLCBbNi4zMzczMzYsIDQ3LjM0OTEwOF0sIFs2LjMzNjk1OCwgNDcuMzQ5MTg2XSwgWzYuMzM2ODkxLCA0Ny4zNDkyMzhdLCBbNi4zMzY4LCA0Ny4zNDkyNjhdLCBbNi4zMzY2OTksIDQ3LjM0OTI3Ml0sIFs2LjMzNjYwMywgNDcuMzQ5MjQ5XSwgWzYuMzM2NTI3LCA0Ny4zNDkyMDRdLCBbNi4zMzY0ODMsIDQ3LjM0OTE0Ml0sIFs2LjMzNjEyNiwgNDcuMzQ5MDMxXSwgWzYuMzM1NTE1LCA0Ny4zNDg5NzVdLCBbNi4zMzQwODYsIDQ3LjM0OTAyXSwgWzYuMzMzMTQyLCA0Ny4zNDkwOTldLCBbNi4zMzI2MjYsIDQ3LjM0OTEyNF0sIFs2LjMzMjQ0LCA0Ny4zNDkxMTRdLCBbNi4zMzIwMjIsIDQ3LjM0OTA0NF0sIFs2LjMzMTU4NSwgNDcuMzQ4OTMzXSwgWzYuMzMxMjYxLCA0Ny4zNDg4MjRdLCBbNi4zMzA5ODksIDQ3LjM0ODcwOV0sIFs2LjMzMDg1NCwgNDcuMzQ4NjI4XSwgWzYuMzMwNjI1LCA0Ny4zNDg0MzRdLCBbNi4zMjkwNDcsIDQ3LjM0Njc1Ml0sIFs2LjMyODcyMiwgNDcuMzQ2NDY3XSwgWzYuMzI4MzE0LCA0Ny4zNDYyNDhdLCBbNi4zMjc3NzEsIDQ3LjM0NjA4Ml0sIFs2LjMyNzI0NiwgNDcuMzQ1OTkzXSwgWzYuMzI1OTc0LCA0Ny4zNDU5MzFdLCBbNi4zMjUyNjMsIDQ3LjM0NTg4MV0sIFs2LjMyNDM3MSwgNDcuMzQ1Njk1XSwgWzYuMzIyOTEyLCA0Ny4zNDUyNDZdLCBbNi4zMjEwNDEsIDQ3LjM0NDQzOF0sIFs2LjMxOTIzMywgNDcuMzQzNTU0XSwgWzYuMzE2NTEzLCA0Ny4zNDE5XSwgWzYuMzE0MzIzLCA0Ny4zNDA2NzFdLCBbNi4zMTM3OTEsIDQ3LjM0MDQ0OV0sIFs2LjMxMzE2OSwgNDcuMzQwMjYyXSwgWzYuMzEyNTI1LCA0Ny4zNDAxNDldLCBbNi4zMTE3NDIsIDQ3LjM0MDEyNF0sIFs2LjMxMDk3MiwgNDcuMzQwMjA1XSwgWzYuMzA5NzgyLCA0Ny4zNDA0N10sIFs2LjMwODQ5LCA0Ny4zNDA3MTRdLCBbNi4zMDc3OTYsIDQ3LjM0MDczN10sIFs2LjMwNzEwNSwgNDcuMzQwNzE3XSwgWzYuMzA1OTU0LCA0Ny4zNDA2XSwgWzYuMzA1Mjc2LCA0Ny4zNDA0OTRdLCBbNi4zMDQ3NjEsIDQ3LjM0MDM4Ml0sIFs2LjMwMzQ3MSwgNDcuMzQwMDU4XSwgWzYuMjk4Nzc4LCA0Ny4zMzkxNjNdLCBbNi4yOTcxNzMsIDQ3LjMzODkyOV0sIFs2LjI5Njc1MiwgNDcuMzM4ODc2XSwgWzYuMjk1ODYzLCA0Ny4zMzg4MDNdLCBbNi4yOTA4NzIsIDQ3LjMzODU0MV0sIFs2LjI4ODQ0NSwgNDcuMzM4Mzc1XSwgWzYuMjg3NzQ4LCA0Ny4zMzgzNTJdLCBbNi4yODY5NywgNDcuMzM4MjU3XSwgWzYuMjg2MjAyLCA0Ny4zMzgwNjldLCBbNi4yODUzMTgsIDQ3LjMzNzczXSwgWzYuMjg0NjM0LCA0Ny4zMzczNTZdLCBbNi4yODM5ODYsIDQ3LjMzNjk0Ml0sIFs2LjI4MzI0MiwgNDcuMzM2NTE5XSwgWzYuMjgyOTQxLCA0Ny4zMzY0MjVdLCBbNi4yODI1NTMsIDQ3LjMzNjMzMV0sIFs2LjI4MDYxMiwgNDcuMzM2MDc2XSwgWzYuMjgwMDMxLCA0Ny4zMzU5NTZdLCBbNi4yNzk1ODUsIDQ3LjMzNTg0M10sIFs2LjI3OTAyOSwgNDcuMzM1NTg4XSwgWzYuMjc3OTc0LCA0Ny4zMzQ5MzldLCBbNi4yNzcxODcsIDQ3LjMzNDM4Nl0sIFs2LjI3NjUzNywgNDcuMzM0MDQ5XSwgWzYuMjcyNjkxLCA0Ny4zMzI2NzZdLCBbNi4yNzIwNTQsIDQ3LjMzMjM4NF0sIFs2LjI3MTc2MiwgNDcuMzMyMjE0XSwgWzYuMjY5Mzc0LCA0Ny4zMzA2OTRdLCBbNi4yNjg1ODgsIDQ3LjMzMDMwMl0sIFs2LjI2NTYyMywgNDcuMzI5MTE3XSwgWzYuMjY0MTYsIDQ3LjMyODQ0OV0sIFs2LjI2MzQ5LCA0Ny4zMjgwNF0sIFs2LjI2MjcwNywgNDcuMzI3MzMxXSwgWzYuMjYxNjYyLCA0Ny4zMjYxMzJdLCBbNi4yNjAzNTQsIDQ3LjMyNDg1M10sIFs2LjI1OTcyOCwgNDcuMzI0MzM5XSwgWzYuMjU4ODQ0LCA0Ny4zMjM2OTRdLCBbNi4yNTczMDUsIDQ3LjMyMjc5M10sIFs2LjI1NjI2OSwgNDcuMzIyMzI4XSwgWzYuMjUzMTIyLCA0Ny4zMjEwMDldLCBbNi4yNDk4NDYsIDQ3LjMxOTc2OF0sIFs2LjI0ODk2NywgNDcuMzE5NTMzXSwgWzYuMjQ2MzM5LCA0Ny4zMTg5NDRdLCBbNi4yNDU1NzMsIDQ3LjMxODc5Nl0sIFs2LjI0Mjc0NiwgNDcuMzE4MTkyXSwgWzYuMjQxMjE0LCA0Ny4zMTc4OTFdLCBbNi4yNDA0NjIsIDQ3LjMxNzc0OV0sIFs2LjIzNzI1OSwgNDcuMzE3MjM1XSwgWzYuMjM0NTI3LCA0Ny4zMTY4MjldLCBbNi4yMzM2NDIsIDQ3LjMxNjY3MV0sIFs2LjIzMzI2NSwgNDcuMzE2NTY3XSwgWzYuMjMyNzg1LCA0Ny4zMTYzOTddLCBbNi4yMzI0MDIsIDQ3LjMxNjI0M10sIFs2LjIzMTM4MSwgNDcuMzE1NzQ4XSwgWzYuMjMwOTM2LCA0Ny4zMTU1NTRdLCBbNi4yMzAyNDMsIDQ3LjMxNTI4XSwgWzYuMjI5ODUyLCA0Ny4zMTUwMDhdLCBbNi4yMjk1MSwgNDcuMzE0MzIzXSwgWzYuMjI5MzgzLCA0Ny4zMTQxNDJdLCBbNi4yMjg5MDgsIDQ3LjMxMzcwNF0sIFs2LjIyODY5MSwgNDcuMzEzNTc5XSwgWzYuMjI4Mzk0LCA0Ny4zMTM0ODFdLCBbNi4yMjYzNDYsIDQ3LjMxMzA3XSwgWzYuMjI2MTA2LCA0Ny4zMTMwNThdLCBbNi4yMjUyNTIsIDQ3LjMxMzEzM10sIFs2LjIyNDg2MSwgNDcuMzEzMTQ3XSwgWzYuMjI0NTA4LCA0Ny4zMTMxMzldLCBbNi4yMjM1MTEsIDQ3LjMxMzA2Ml0sIFs2LjIxMjcwOCwgNDcuMzEyMTFdLCBbNi4yMTE0MTIsIDQ3LjMxMTk0OV0sIFs2LjIxMDA3LCA0Ny4zMTE2ODFdLCBbNi4yMDc1MTUsIDQ3LjMxMDk5Ml0sIFs2LjIwNjQyMSwgNDcuMzEwNzZdLCBbNi4yMDQ5MTEsIDQ3LjMxMDU2Nl0sIFs2LjIwMzc5MiwgNDcuMzEwNDldLCBbNi4yMDAwODgsIDQ3LjMxMDI5XSwgWzYuMTk4MDI2LCA0Ny4zMTAyMjddLCBbNi4xOTcwODQsIDQ3LjMxMDIyXSwgWzYuMTk2MTMzLCA0Ny4zMTAyNF0sIFs2LjE5NDg1NiwgNDcuMzEwMjEzXSwgWzYuMTkzNzU2LCA0Ny4zMTAxNTZdLCBbNi4xOTMxNjcsIDQ3LjMxMDA1N10sIFs2LjE5MjA1NiwgNDcuMzA5NzcxXSwgWzYuMTkxMDI4LCA0Ny4zMDk0NDldLCBbNi4xODk0LCA0Ny4zMDg3NThdLCBbNi4xODgwMjEsIDQ3LjMwODE0OF0sIFs2LjE4NjM5OCwgNDcuMzA3NjUzXSwgWzYuMTg1NSwgNDcuMzA3MjhdLCBbNi4xODQ1MSwgNDcuMzA2NzQ2XSwgWzYuMTgzMDEzLCA0Ny4zMDU4NjRdLCBbNi4xODIyMDcsIDQ3LjMwNTU3NF0sIFs2LjE4MTYwMSwgNDcuMzA1NDA0XSwgWzYuMTgwOTA0LCA0Ny4zMDUyNjddLCBbNi4xNzcyNDksIDQ3LjMwNDc3NV0sIFs2LjE3NjI0OCwgNDcuMzA0NzldLCBbNi4xNzQ5MzYsIDQ3LjMwNDg3NF0sIFs2LjE3MzcyNiwgNDcuMzA0ODM1XSwgWzYuMTY5OTIyLCA0Ny4zMDQxMTFdLCBbNi4xNjg4LCA0Ny4zMDM5NzNdLCBbNi4xNjc3NjIsIDQ3LjMwMzcxOF0sIFs2LjE2NzIwMSwgNDcuMzAzNDUxXSwgWzYuMTY2NzMxLCA0Ny4zMDMxMzZdLCBbNi4xNjUzNzMsIDQ3LjMwMjAyMV0sIFs2LjE2NDk1LCA0Ny4zMDE3MzVdLCBbNi4xNjQxOTgsIDQ3LjMwMTI2OV0sIFs2LjE2MzQxNiwgNDcuMzAwNjYyXSwgWzYuMTYyMzc5LCA0Ny4yOTk3MTFdLCBbNi4xNjAxMjUsIDQ3LjI5Nzg0XSwgWzYuMTU4OTU5LCA0Ny4yOTcwNjZdLCBbNi4xNTczOTIsIDQ3LjI5NjI1OF0sIFs2LjE1NjcyMywgNDcuMjk1ODddLCBbNi4xNTQ3MDEsIDQ3LjI5NDc2OF0sIFs2LjE1NDAxLCA0Ny4yOTQzNjNdLCBbNi4xNDc2NzcsIDQ3LjI5MDA5Ml0sIFs2LjE0NjQ5NywgNDcuMjg5NDU1XSwgWzYuMTQ1ODExLCA0Ny4yODkxNF0sIFs2LjE0NTU3NywgNDcuMjg5MDUyXSwgWzYuMTM5MDcyLCA0Ny4yODY3MzddLCBbNi4xMzY3OTEsIDQ3LjI4NTc3OV0sIFs2LjEzNTEzOSwgNDcuMjg1MDU4XSwgWzYuMTMzOTEsIDQ3LjI4NDY0OF0sIFs2LjEzMjMxNiwgNDcuMjg0MTU1XSwgWzYuMTMyMDQxLCA0Ny4yODQwNTRdLCBbNi4xMzExNDIsIDQ3LjI4Mzc4N10sIFs2LjEzMDU2MiwgNDcuMjgzNTY2XSwgWzYuMTMwMTk2LCA0Ny4yODMzNzJdLCBbNi4xMjk5MTgsIDQ3LjI4MzE2M10sIFs2LjEyOTcxLCA0Ny4yODI5NTddLCBbNi4xMjkyMDYsIDQ3LjI4MjMyN10sIFs2LjEyODk1MiwgNDcuMjgyMDgzXSwgWzYuMTI4Njc4LCA0Ny4yODE4NzhdLCBbNi4xMjgzMDQsIDQ3LjI4MTYzNV0sIFs2LjEyNzk4NCwgNDcuMjgxNDg3XSwgWzYuMTI1OTMzLCA0Ny4yODA3MzJdLCBbNi4xMjU3MDgsIDQ3LjI4MDY0MV0sIFs2LjEyNTE5NSwgNDcuMjgwMzk0XSwgWzYuMTI0NDM2LCA0Ny4yNzk5OV0sIFs2LjEyMjkxOSwgNDcuMjc5MDkxXSwgWzYuMTIxOTg0LCA0Ny4yNzg0ODhdLCBbNi4xMjE0NjUsIDQ3LjI3ODIyN10sIFs2LjEyMDMzNSwgNDcuMjc3ODExXSwgWzYuMTE5NjQ1LCA0Ny4yNzc1ODddLCBbNi4xMTUzNjEsIDQ3LjI3NjMwOV0sIFs2LjExNDI5LCA0Ny4yNzYwMDldLCBbNi4xMTM3ODcsIDQ3LjI3NTgzMV0sIFs2LjExMTA4MywgNDcuMjc1MTA0XSwgWzYuMTA5Mjc4LCA0Ny4yNzQ4MzhdLCBbNi4xMDQ3NDcsIDQ3LjI3NDIyOV0sIFs2LjEwMzk2MiwgNDcuMjc0MTA2XSwgWzYuMTAzNzQxLCA0Ny4yNzQwOTNdLCBbNi4xMDM2NTgsIDQ3LjI3NDEyMl0sIFs2LjEwMzU3NiwgNDcuMjc0MTNdLCBbNi4xMDM0NTYsIDQ3LjI3NDExNV0sIFs2LjEwMzMyMywgNDcuMjc0MDRdLCBbNi4xMDMxOTYsIDQ3LjI3Mzk5N10sIFs2LjEwMzA0MiwgNDcuMjczOTY5XSwgWzYuMDk2NTMyLCA0Ny4yNzI5OV0sIFs2LjA5MDAxNywgNDcuMjcyMjg5XSwgWzYuMDg2NTY3LCA0Ny4yNzE4NTJdLCBbNi4wODUyMTcsIDQ3LjI3MTczMV0sIFs2LjA4NDc0OSwgNDcuMjcxNzE0XSwgWzYuMDg0NjYxLCA0Ny4yNzE3NjldLCBbNi4wODQ1NjQsIDQ3LjI3MTc5OF0sIFs2LjA4NDQ1OCwgNDcuMjcxODA2XSwgWzYuMDg0MzU0LCA0Ny4yNzE3OTJdLCBbNi4wODQyNiwgNDcuMjcxNzU3XSwgWzYuMDg0MTg2LCA0Ny4yNzE3MDRdLCBbNi4wODQxMzksIDQ3LjI3MTYzOV0sIFs2LjA4NDAxMSwgNDcuMjcxNTldLCBbNi4wODM4NDEsIDQ3LjI3MTU1MV0sIFs2LjA4MTcxNiwgNDcuMjcxMjY0XSwgWzYuMDgxMjY1LCA0Ny4yNzExOTJdLCBbNi4wODA3MzgsIDQ3LjI3MTA3NF0sIFs2LjA4MDEyOSwgNDcuMjcwOTA1XSwgWzYuMDc5NjczLCA0Ny4yNzA3NjFdLCBbNi4wNzkyMjgsIDQ3LjI3MDU4N10sIFs2LjA3ODY2MywgNDcuMjcwMzQyXSwgWzYuMDc4MzA1LCA0Ny4yNzAxNjFdLCBbNi4wNzc5OTUsIDQ3LjI2OTk4Ml0sIFs2LjA3NzQ5NSwgNDcuMjY5NjYzXSwgWzYuMDc3MTg4LCA0Ny4yNjk0NDJdLCBbNi4wNzY2MjYsIDQ3LjI2ODk2N10sIFs2LjA3NTg0MywgNDcuMjY4MjFdLCBbNi4wNzUzOCwgNDcuMjY3Nzk3XSwgWzYuMDc0NywgNDcuMjY3MzU1XSwgWzYuMDc0NDA5LCA0Ny4yNjcyMDldLCBbNi4wNzM3NjYsIDQ3LjI2Njk1N10sIFs2LjA3MDIwMiwgNDcuMjY1ODIzXSwgWzYuMDY0MDI1LCA0Ny4yNjM4MjFdLCBbNi4wNjM1NTMsIDQ3LjI2Mzc1MV0sIFs2LjA1ODg1OSwgNDcuMjYzNjIzXSwgWzYuMDU4Njg3LCA0Ny4yNjM2MzFdLCBbNi4wNTU5MDUsIDQ3LjI2MzU2Nl0sIFs2LjA1NTAwNSwgNDcuMjYzNTA2XSwgWzYuMDU0MjE4LCA0Ny4yNjM0NzNdLCBbNi4wNTM3NTEsIDQ3LjI2MzQxNF0sIFs2LjA1MzQwNiwgNDcuMjYzMzQ3XSwgWzYuMDUyNzc4LCA0Ny4yNjMxNDNdLCBbNi4wNTI0MzksIDQ3LjI2MzAwM10sIFs2LjA1MjIyMiwgNDcuMjYyOTc2XSwgWzYuMDUxOTE4LCA0Ny4yNjMwMjJdLCBbNi4wNTE4ODQsIDQ3LjI2MzA4M10sIFs2LjA1MTgyOCwgNDcuMjYzMTI2XSwgWzYuMDUxNzU0LCA0Ny4yNjMxNTVdLCBbNi4wNTE1OTUsIDQ3LjI2MzE1OV0sIFs2LjA1MTQ2OSwgNDcuMjYzMTA0XSwgWzYuMDUxNDA5LCA0Ny4yNjMwMTFdLCBbNi4wNTEyNTcsIDQ3LjI2MjkxOV0sIFs2LjA1MDY0LCA0Ny4yNjI3MDVdLCBbNi4wNTAwNTcsIDQ3LjI2MjQ1MV0sIFs2LjA0OTgwMywgNDcuMjYyMjQ0XSwgWzYuMDQ5NzQ0LCA0Ny4yNjIyNjFdLCBbNi4wNDk2MTcsIDQ3LjI2MjI2MV0sIFs2LjA0OTQ5MywgNDcuMjYyMjAxXSwgWzYuMDQ5NDY1LCA0Ny4yNjIxNjNdLCBbNi4wNDk0MjQsIDQ3LjI2MjAyMV0sIFs2LjA0ODUwNCwgNDcuMjYxMjk2XSwgWzYuMDQ4NDIsIDQ3LjI2MTIwM10sIFs2LjA0MTM0MywgNDcuMjU2MTE2XSwgWzYuMDQxMDMzLCA0Ny4yNTU5Nl0sIFs2LjA0MDkxNiwgNDcuMjU1OTI2XSwgWzYuMDQwODIzLCA0Ny4yNTU5MTVdLCBbNi4wNDA3ODYsIDQ3LjI1NTg4M10sIFs2LjA0MDc5LCA0Ny4yNTU4Ml0sIFs2LjA0MDgzNSwgNDcuMjU1Nzg5XSwgWzYuMDM5NDY4LCA0Ny4yNTQ3NjNdLCBbNi4wMzk0OTYsIDQ3LjI1NDY4N10sIFs2LjAzOTQ5NywgNDcuMjU0NTc5XSwgWzYuMDM4NzksIDQ3LjI1MzQ1Nl0sIFs2LjAzODQ1NiwgNDcuMjUyNzY5XSwgWzYuMDM4Mzc5LCA0Ny4yNTE5NzRdLCBbNi4wMzgzMjYsIDQ3LjI1MTg3NV0sIFs2LjAzNzc2MiwgNDcuMjUxMzE4XSwgWzYuMDM3NTMzLCA0Ny4yNTA5OV0sIFs2LjAzNjk2NywgNDcuMjUwMTAyXSwgWzYuMDM2NTA0LCA0Ny4yNDg5NTldLCBbNi4wMzY0ODksIDQ3LjI0ODgxOV0sIFs2LjAzNjUxOCwgNDcuMjQ4MDE5XSwgWzYuMDM2NDc0LCA0Ny4yNDc5MzNdLCBbNi4wMzY1ODEsIDQ3LjI0NzgxN10sIFs2LjAzNjgwNywgNDcuMjQ3Mzg5XSwgWzYuMDM2OTA4LCA0Ny4yNDcyNTddLCBbNi4wMzY3NTcsIDQ3LjI0NzIwNV0sIFs2LjAzNjQyMiwgNDcuMjQ2OTY2XSwgWzYuMDM1NTAxLCA0Ny4yNDYyNDZdLCBbNi4wMzUzNiwgNDcuMjQ2MDY0XSwgWzYuMDM1Mjk1LCA0Ny4yNDU5MThdLCBbNi4wMzUwOTgsIDQ3LjI0NTE5OF0sIFs2LjAzNDk1MSwgNDcuMjQ0Nzc0XSwgWzYuMDM0NjQ3LCA0Ny4yNDQxMzldLCBbNi4wMzM3MzgsIDQ3LjI0MjU2M10sIFs2LjAzMzM5OCwgNDcuMjQyMTY3XSwgWzYuMDMzMjY1LCA0Ny4yNDIxMTZdLCBbNi4wMzI5MywgNDcuMjQxNzM2XSwgWzYuMDMyNjEzLCA0Ny4yNDE1MDZdLCBbNi4wMzMxNTYsIDQ3LjI0MDk3Nl0sIFs2LjAzMzQxLCA0Ny4yNDA2MDddLCBbNi4wMzM3NzcsIDQ3LjIzOTkyNl0sIFs2LjAzMzgyLCA0Ny4yMzk3NTNdLCBbNi4wMzM3ODgsIDQ3LjIzOTE1Nl0sIFs2LjAzMzgwOSwgNDcuMjM5MDZdLCBbNi4wMzM5MzgsIDQ3LjIzODgyNl0sIFs2LjAzNDAzLCA0Ny4yMzg1MzldLCBbNi4wMzM5NDEsIDQ3LjIzODQ4Ml0sIFs2LjAzMzk1MywgNDcuMjM4NF0sIFs2LjAzMjE1NCwgNDcuMjM3ODA2XSwgWzYuMDMyMDg4LCA0Ny4yMzc3MzddLCBbNi4wMzE5MzgsIDQ3LjIzNzU5M10sIFs2LjAzMTYzMywgNDcuMjM3MzU2XSwgWzYuMDI5OTcsIDQ3LjIzNjEyNV0sIFs2LjAyOTkzNCwgNDcuMjM2MDY1XSwgWzYuMDMwNzM1LCA0Ny4yMzU4ODRdLCBbNi4wMzA5LCA0Ny4yMzU4MjRdLCBbNi4wMzExMzEsIDQ3LjIzNTY1M10sIFs2LjAzMTU1MywgNDcuMjM1Mjg0XSwgWzYuMDMwODM2LCA0Ny4yMzUwOThdLCBbNi4wMzAxOTgsIDQ3LjIzNTAwOF0sIFs2LjAzMDExLCA0Ny4yMzUwNjNdLCBbNi4wMzAxMDIsIDQ3LjIzNTE1OV0sIFs2LjAyOTk1MywgNDcuMjM1MzQ5XSwgWzYuMDI5Mjk0LCA0Ny4yMzU5NzddLCBbNi4wMjkwNzYsIDQ3LjIzNjIzXSwgWzYuMDI4ODY0LCA0Ny4yMzY0MDZdLCBbNi4wMjg2NDEsIDQ3LjIzNjU1OF0sIFs2LjAyODUwOCwgNDcuMjM2NjI1XSwgWzYuMDI4MTYzLCA0Ny4yMzYzODNdLCBbNi4wMjc5MzYsIDQ3LjIzNjI0Nl0sIFs2LjAyNzU4OSwgNDcuMjM2MDg4XV0sICJ0eXBlIjogIkxpbmVTdHJpbmcifSwgImlkIjogIjAiLCAidHlwZSI6ICJGZWF0dXJlIn1dLCAidHlwZSI6ICJGZWF0dXJlQ29sbGVjdGlvbiJ9KTsKICAgICAgICAKPC9zY3JpcHQ+ onload=\"this.contentDocument.open();this.contentDocument.write(atob(this.getAttribute('data-html')));this.contentDocument.close();\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
],
"text/plain": [
"<folium.folium.Map at 0x7f67778c02e8>"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"start=[7.334747,47.746711]\n",
"end=[6.027374,47.236355]\n",
"\n",
"m = folium.Map(location=latlon(start), zoom_start=10)\n",
"\n",
"route = requests.post(url=route_url, json={'profile':'car', 'points':[start,end], 'points_encoded':False}).json()\n",
"if 'message' in route: raise Exception(route[\"message\"])\n",
"plot_route(m, start, end, route[\"paths\"][0], \"route\", \"blue\")\n",
"\n",
"priorityJson = {'toll': {'no': 1, '*': 0.01} }\n",
"route = requests.post(url=route_url, json={'profile':'car', 'points':[start,end], 'points_encoded':False, \n",
" 'priority': priorityJson}).json()\n",
"if 'message' in route: raise Exception(route[\"message\"])\n",
"plot_route(m, start, end, route[\"paths\"][0], \"other\", \"red\")\n",
"\n",
"m"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## width or height limitations"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"route: distance 15km and time 20min\n",
"other: distance 16km and time 24min\n"
]
},
{
"data": {
"text/html": [
"<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><span style=\"color:#565656\">Make this Notebook Trusted to load map: File -> Trust Notebook</span><iframe src=\"about:blank\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" data-html=PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgCiAgICAgICAgPHNjcmlwdD4KICAgICAgICAgICAgTF9OT19UT1VDSCA9IGZhbHNlOwogICAgICAgICAgICBMX0RJU0FCTEVfM0QgPSBmYWxzZTsKICAgICAgICA8L3NjcmlwdD4KICAgIAogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjYuMC9kaXN0L2xlYWZsZXQuanMiPjwvc2NyaXB0PgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY29kZS5qcXVlcnkuY29tL2pxdWVyeS0xLjEyLjQubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9qcy9ib290c3RyYXAubWluLmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5qcyI+PC9zY3JpcHQ+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuLmpzZGVsaXZyLm5ldC9ucG0vbGVhZmxldEAxLjYuMC9kaXN0L2xlYWZsZXQuY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vYm9vdHN0cmFwLzMuMi4wL2Nzcy9ib290c3RyYXAubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLXRoZW1lLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9mb250LWF3ZXNvbWUvNC42LjMvY3NzL2ZvbnQtYXdlc29tZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL0xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLzIuMC4yL2xlYWZsZXQuYXdlc29tZS1tYXJrZXJzLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL3Jhd2Nkbi5naXRoYWNrLmNvbS9weXRob24tdmlzdWFsaXphdGlvbi9mb2xpdW0vbWFzdGVyL2ZvbGl1bS90ZW1wbGF0ZXMvbGVhZmxldC5hd2Vzb21lLnJvdGF0ZS5jc3MiLz4KICAgIDxzdHlsZT5odG1sLCBib2R5IHt3aWR0aDogMTAwJTtoZWlnaHQ6IDEwMCU7bWFyZ2luOiAwO3BhZGRpbmc6IDA7fTwvc3R5bGU+CiAgICA8c3R5bGU+I21hcCB7cG9zaXRpb246YWJzb2x1dGU7dG9wOjA7Ym90dG9tOjA7cmlnaHQ6MDtsZWZ0OjA7fTwvc3R5bGU+CiAgICAKICAgICAgICAgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCwKICAgICAgICAgICAgICAgIGluaXRpYWwtc2NhbGU9MS4wLCBtYXhpbXVtLXNjYWxlPTEuMCwgdXNlci1zY2FsYWJsZT1ubyIgLz4KICAgICAgICAgICAgPHN0eWxlPgogICAgICAgICAgICAgICAgI21hcF9iYzhiNzQ2NjYzMjA0NThjOTY1MzZlYWNkOTY2NGRmNyB7CiAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IHJlbGF0aXZlOwogICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAuMCU7CiAgICAgICAgICAgICAgICAgICAgbGVmdDogMC4wJTsKICAgICAgICAgICAgICAgICAgICB0b3A6IDAuMCU7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIDwvc3R5bGU+CiAgICAgICAgCjwvaGVhZD4KPGJvZHk+ICAgIAogICAgCiAgICAgICAgICAgIDxkaXYgY2xhc3M9ImZvbGl1bS1tYXAiIGlkPSJtYXBfYmM4Yjc0NjY2MzIwNDU4Yzk2NTM2ZWFjZDk2NjRkZjciID48L2Rpdj4KICAgICAgICAKPC9ib2R5Pgo8c2NyaXB0PiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFwX2JjOGI3NDY2NjMyMDQ1OGM5NjUzNmVhY2Q5NjY0ZGY3ID0gTC5tYXAoCiAgICAgICAgICAgICAgICAibWFwX2JjOGI3NDY2NjMyMDQ1OGM5NjUzNmVhY2Q5NjY0ZGY3IiwKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBjZW50ZXI6IFs1Mi40MDYyOTQsIDEzLjU4MDgxOF0sCiAgICAgICAgICAgICAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NywKICAgICAgICAgICAgICAgICAgICB6b29tOiAxMSwKICAgICAgICAgICAgICAgICAgICB6b29tQ29udHJvbDogdHJ1ZSwKICAgICAgICAgICAgICAgICAgICBwcmVmZXJDYW52YXM6IGZhbHNlLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApOwoKICAgICAgICAgICAgCgogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciB0aWxlX2xheWVyXzA4NGUxYjcxYzM5ZjQzMTFiNjJlNzBhMWQ3NmYzNGExID0gTC50aWxlTGF5ZXIoCiAgICAgICAgICAgICAgICAiaHR0cHM6Ly97c30udGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmciLAogICAgICAgICAgICAgICAgeyJhdHRyaWJ1dGlvbiI6ICJEYXRhIGJ5IFx1MDAyNmNvcHk7IFx1MDAzY2EgaHJlZj1cImh0dHA6Ly9vcGVuc3RyZWV0bWFwLm9yZ1wiXHUwMDNlT3BlblN0cmVldE1hcFx1MDAzYy9hXHUwMDNlLCB1bmRlciBcdTAwM2NhIGhyZWY9XCJodHRwOi8vd3d3Lm9wZW5zdHJlZXRtYXAub3JnL2NvcHlyaWdodFwiXHUwMDNlT0RiTFx1MDAzYy9hXHUwMDNlLiIsICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwgIm1heE5hdGl2ZVpvb20iOiAxOCwgIm1heFpvb20iOiAxOCwgIm1pblpvb20iOiAwLCAibm9XcmFwIjogZmFsc2UsICJvcGFjaXR5IjogMSwgInN1YmRvbWFpbnMiOiAiYWJjIiwgInRtcyI6IGZhbHNlfQogICAgICAgICAgICApLmFkZFRvKG1hcF9iYzhiNzQ2NjYzMjA0NThjOTY1MzZlYWNkOTY2NGRmNyk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl9iOWFkMzFiMDY4ZjI0ZTRkYTY2MzZmZTFlN2QzZTE4YiA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzUyLjQwNjI5NCwgMTMuNTgwODE4XSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2JjOGI3NDY2NjMyMDQ1OGM5NjUzNmVhY2Q5NjY0ZGY3KTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl9hNmYwZWUwMDFlMzA0ZWZlOTJmZjIxYjZjYTUxMzZlZSA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJncmVlbiIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyX2I5YWQzMWIwNjhmMjRlNGRhNjYzNmZlMWU3ZDNlMThiLnNldEljb24oaWNvbl9hNmYwZWUwMDFlMzA0ZWZlOTJmZjIxYjZjYTUxMzZlZSk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfM2Q2Yjc5ZDdlODJkNGM2NDgxY2VhMDE4YzYwZjRkYTYgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sXzAxNWEwN2QyN2UwMzRiNmI5MjYxZWJkMDE1MzdmYzUxID0gJChgPGRpdiBpZD0iaHRtbF8wMTVhMDdkMjdlMDM0YjZiOTI2MWViZDAxNTM3ZmM1MSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+c3RhcnQ8L2Rpdj5gKVswXTsKICAgICAgICAgICAgcG9wdXBfM2Q2Yjc5ZDdlODJkNGM2NDgxY2VhMDE4YzYwZjRkYTYuc2V0Q29udGVudChodG1sXzAxNWEwN2QyN2UwMzRiNmI5MjYxZWJkMDE1MzdmYzUxKTsKICAgICAgICAKCiAgICAgICAgbWFya2VyX2I5YWQzMWIwNjhmMjRlNGRhNjYzNmZlMWU3ZDNlMThiLmJpbmRQb3B1cChwb3B1cF8zZDZiNzlkN2U4MmQ0YzY0ODFjZWEwMThjNjBmNGRhNikKICAgICAgICA7CgogICAgICAgIAogICAgCiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl9jNDEzNWJjODNmNTE0MzQ0ODFjODRjNmNlZjQ1N2JjOSA9IEwubWFya2VyKAogICAgICAgICAgICAgICAgWzUyLjQ3OTUzOSwgMTMuNDI5OTI4XSwKICAgICAgICAgICAgICAgIHt9CiAgICAgICAgICAgICkuYWRkVG8obWFwX2JjOGI3NDY2NjMyMDQ1OGM5NjUzNmVhY2Q5NjY0ZGY3KTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgaWNvbl85ODEzYzZhYWJhY2U0MmM0OWRmNTQ4ZTRhODkyMzgxOCA9IEwuQXdlc29tZU1hcmtlcnMuaWNvbigKICAgICAgICAgICAgICAgIHsiZXh0cmFDbGFzc2VzIjogImZhLXJvdGF0ZS0wIiwgImljb24iOiAiaW5mby1zaWduIiwgImljb25Db2xvciI6ICJ3aGl0ZSIsICJtYXJrZXJDb2xvciI6ICJyZWQiLCAicHJlZml4IjogImdseXBoaWNvbiJ9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG1hcmtlcl9jNDEzNWJjODNmNTE0MzQ0ODFjODRjNmNlZjQ1N2JjOS5zZXRJY29uKGljb25fOTgxM2M2YWFiYWNlNDJjNDlkZjU0OGU0YTg5MjM4MTgpOwogICAgICAgIAogICAgCiAgICAgICAgdmFyIHBvcHVwXzY1ZjgwMWIyMTM5MzRjYjM5MTUxNGE4NjY0M2NmMmI3ID0gTC5wb3B1cCh7Im1heFdpZHRoIjogIjEwMCUifSk7CgogICAgICAgIAogICAgICAgICAgICB2YXIgaHRtbF8xOTMyMmU1MTVkZmY0MTNiODEzNDliYzkzOGFlZjA4YSA9ICQoYDxkaXYgaWQ9Imh0bWxfMTkzMjJlNTE1ZGZmNDEzYjgxMzQ5YmM5MzhhZWYwOGEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPmVuZDwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF82NWY4MDFiMjEzOTM0Y2IzOTE1MTRhODY2NDNjZjJiNy5zZXRDb250ZW50KGh0bWxfMTkzMjJlNTE1ZGZmNDEzYjgxMzQ5YmM5MzhhZWYwOGEpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfYzQxMzViYzgzZjUxNDM0NDgxYzg0YzZjZWY0NTdiYzkuYmluZFBvcHVwKHBvcHVwXzY1ZjgwMWIyMTM5MzRjYjM5MTUxNGE4NjY0M2NmMmI3KQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uX2U1ZDFjNTAxMjNkNjQzMzFiNDc2MWRmYjZmOWY0YmUzX3N0eWxlcihmZWF0dXJlKSB7CiAgICAgICAgICAgIHN3aXRjaChmZWF0dXJlLmlkKSB7CiAgICAgICAgICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgICAgICAgIHJldHVybiB7ImNvbG9yIjogImJsdWUiLCAib3BhY2l0eSI6IDAuNSwgIndlaWdodCI6IDV9OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uX2U1ZDFjNTAxMjNkNjQzMzFiNDc2MWRmYjZmOWY0YmUzX29uRWFjaEZlYXR1cmUoZmVhdHVyZSwgbGF5ZXIpIHsKICAgICAgICAgICAgbGF5ZXIub24oewogICAgICAgICAgICAgICAgY2xpY2s6IGZ1bmN0aW9uKGUpIHsKICAgICAgICAgICAgICAgICAgICBtYXBfYmM4Yjc0NjY2MzIwNDU4Yzk2NTM2ZWFjZDk2NjRkZjcuZml0Qm91bmRzKGUudGFyZ2V0LmdldEJvdW5kcygpKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSk7CiAgICAgICAgfTsKICAgICAgICB2YXIgZ2VvX2pzb25fZTVkMWM1MDEyM2Q2NDMzMWI0NzYxZGZiNmY5ZjRiZTMgPSBMLmdlb0pzb24obnVsbCwgewogICAgICAgICAgICAgICAgb25FYWNoRmVhdHVyZTogZ2VvX2pzb25fZTVkMWM1MDEyM2Q2NDMzMWI0NzYxZGZiNmY5ZjRiZTNfb25FYWNoRmVhdHVyZSwKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICBzdHlsZTogZ2VvX2pzb25fZTVkMWM1MDEyM2Q2NDMzMWI0NzYxZGZiNmY5ZjRiZTNfc3R5bGVyLAogICAgICAgIH0pLmFkZFRvKG1hcF9iYzhiNzQ2NjYzMjA0NThjOTY1MzZlYWNkOTY2NGRmNyk7CgogICAgICAgIGZ1bmN0aW9uIGdlb19qc29uX2U1ZDFjNTAxMjNkNjQzMzFiNDc2MWRmYjZmOWY0YmUzX2FkZCAoZGF0YSkgewogICAgICAgICAgICBnZW9fanNvbl9lNWQxYzUwMTIzZDY0MzMxYjQ3NjFkZmI2ZjlmNGJlMy5hZGREYXRhKGRhdGEpOwogICAgICAgIH0KICAgICAgICAgICAgZ2VvX2pzb25fZTVkMWM1MDEyM2Q2NDMzMWI0NzYxZGZiNmY5ZjRiZTNfYWRkKHsiZmVhdHVyZXMiOiBbeyJnZW9tZXRyeSI6IHsiY29vcmRpbmF0ZXMiOiBbWzEzLjU4MDYxNywgNTIuNDA2MTk0XSwgWzEzLjU4MTIwOSwgNTIuNDA1NzUyXSwgWzEzLjU4MTM0MiwgNTIuNDA1NzIyXSwgWzEzLjU4MTQ2OSwgNTIuNDA1NjU2XSwgWzEzLjU4MzA4MywgNTIuNDA0MjQ0XSwgWzEzLjU3OTg0NCwgNTIuNDAzMTFdLCBbMTMuNTc3NjMxLCA1Mi40MDIzMTRdLCBbMTMuNTc3NDczLCA1Mi40MDIyOF0sIFsxMy41NzY2NzgsIDUyLjQwMzEzNF0sIFsxMy41NzYxMDgsIDUyLjQwMzc4M10sIFsxMy41NzUxMTQsIDUyLjQwNTAyN10sIFsxMy41NzQ2MjYsIDUyLjQwNTQ1XSwgWzEzLjU3NDQ3OCwgNTIuNDA1NTIyXSwgWzEzLjU3NDMsIDUyLjQwNTU3NV0sIFsxMy41NzM0ODEsIDUyLjQwNTczMV0sIFsxMy41NzM0MDEsIDUyLjQwNTgxM10sIFsxMy41NzMzNzgsIDUyLjQwNTkyM10sIFsxMy41NzM1MTcsIDUyLjQwNjI1NF0sIFsxMy41NzM1OTgsIDUyLjQwNjU4NV0sIFsxMy41NzM2MTYsIDUyLjQwNjgwMl0sIFsxMy41NzM2MDgsIDUyLjQwNzk4MV0sIFsxMy41NzM1MDEsIDUyLjQwODQ3XSwgWzEzLjU3MzExNiwgNTIuNDA5ODY3XSwgWzEzLjU3Mjk0MiwgNTIuNDEwMjU5XSwgWzEzLjU3MjE0NCwgNTIuNDEwOTRdLCBbMTMuNTcxNjQsIDUyLjQxMDU0NV0sIFsxMy41NzE0NDksIDUyLjQxMDQ5XSwgWzEzLjU3MTM1MywgNTIuNDEwNDgzXSwgWzEzLjU3MTE2NywgNTIuNDEwNTA0XSwgWzEzLjU2OTI0NywgNTIuNDExMjkzXSwgWzEzLjU2Nzg1NiwgNTIuNDExODQyXSwgWzEzLjU2NTM2OSwgNTIuNDEyNzU5XSwgWzEzLjU2MDA1LCA1Mi40MTUyNjhdLCBbMTMuNTU0MjIzLCA1Mi40MTc0MV0sIFsxMy41NDg2NzMsIDUyLjQxODU3OF0sIFsxMy41NDYyNzUsIDUyLjQxODgxXSwgWzEzLjU0NTU2MiwgNTIuNDE4OTAxXSwgWzEzLjU0NDE2MiwgNTIuNDE5MTE4XSwgWzEzLjU0MjU0MSwgNTIuNDE5MzMxXSwgWzEzLjU0MTQ4MSwgNTIuNDE5NDQ1XSwgWzEzLjU0MTE5MSwgNTIuNDE5NTA5XSwgWzEzLjU0MDQxOSwgNTIuNDE5Nzc0XSwgWzEzLjUzOTg4OCwgNTIuNDE5OTg4XSwgWzEzLjUzOTAxOCwgNTIuNDIwMzgzXSwgWzEzLjUzODc0LCA1Mi40MjA0OTNdLCBbMTMuNTM4NDMsIDUyLjQyMDU3OF0sIFsxMy41MzY4MjQsIDUyLjQyMDkzOF0sIFsxMy41MzM2MDEsIDUyLjQyMTU1MV0sIFsxMy41MzE0NzEsIDUyLjQyMjA4NF0sIFsxMy41Mjk5MDYsIDUyLjQyMjQ1MV0sIFsxMy41MzA0ODYsIDUyLjQyMzg4OF0sIFsxMy41Mjk3ODEsIDUyLjQyNDA0NF0sIFsxMy41Mjg4MzYsIDUyLjQyNDE2NV0sIFsxMy41Mjg0OTksIDUyLjQyNDIyMV0sIFsxMy41MjgxOTcsIDUyLjQyNDI5M10sIFsxMy41Mjc4NDcsIDUyLjQyNDQwNl0sIFsxMy41MjcyNTIsIDUyLjQyNDUzOV0sIFsxMy41MjY4MjUsIDUyLjQyNDYwNF0sIFsxMy41MjY0NTUsIDUyLjQyNDYwNF0sIFsxMy41MjY2NzIsIDUyLjQyNjUyOF0sIFsxMy41MjYzNjgsIDUyLjQyNjUzN10sIFsxMy41MjU4NDksIDUyLjQyNjUyNV0sIFsxMy41MjU0MTYsIDUyLjQyNjQ5OF0sIFsxMy41MjI2NDIsIDUyLjQyNjY1M10sIFsxMy41MjEyNzIsIDUyLjQyNjcwOV0sIFsxMy41MjA2OCwgNTIuNDI2Nzk5XSwgWzEzLjUyMDA2NiwgNTIuNDI2ODQ0XSwgWzEzLjUxODIyNywgNTIuNDI2OTA0XSwgWzEzLjUxNjkxNiwgNTIuNDI3MDE1XSwgWzEzLjUxNDQ2MywgNTIuNDI3Mjg3XSwgWzEzLjUxMzk3MywgNTIuNDI3Mzg1XSwgWzEzLjUxMzc1MSwgNTIuNDI3NDY1XSwgWzEzLjUxMzQ2NiwgNTIuNDI3NjQxXSwgWzEzLjUxMzM3NSwgNTIuNDI3NzY3XSwgWzEzLjUxMzI5NywgNTIuNDI3OTc5XSwgWzEzLjUxMzM1NywgNTIuNDI4MDg0XSwgWzEzLjUxMzQyNiwgNTIuNDI4Mzk4XSwgWzEzLjUxMzM5MiwgNTIuNDI4NDYxXSwgWzEzLjUxMTc2NSwgNTIuNDI4NjA5XSwgWzEzLjUwOTMzOSwgNTIuNDI4OTEzXSwgWzEzLjUwODczMSwgNTIuNDI5MDUyXSwgWzEzLjUwNzQ4NCwgNTIuNDI5Mzk3XSwgWzEzLjUwNjQwMywgNTIuNDI5NzkxXSwgWzEzLjUwNTUyOCwgNTIuNDMwMTU3XSwgWzEzLjUwMDk1NCwgNTIuNDMyNDQ5XSwgWzEzLjUwMDA5LCA1Mi40MzI4NjNdLCBbMTMuNDk0MzA3LCA1Mi40MzU3MzldLCBbMTMuNDc5MjQ5LCA1Mi40NDI5MzldLCBbMTMuNDc1NzE2LCA1Mi40NDQ2NzZdLCBbMTMuNDY3NzI0LCA1Mi40NDg1NTldLCBbMTMuNDY1ODQzLCA1Mi40NDk1XSwgWzEzLjQ2NTEwNSwgNTIuNDQ5OTQxXSwgWzEzLjQ2NDM3MSwgNTIuNDUwNDU5XSwgWzEzLjQ2MzY3OSwgNTIuNDUxMDRdLCBbMTMuNDYzMDM5LCA1Mi40NTE3MjJdLCBbMTMuNDYyNDE2LCA1Mi40NTI1MV0sIFsxMy40NjEzODQsIDUyLjQ1NDE3N10sIFsxMy40NjAzNzYsIDUyLjQ1NTg1N10sIFsxMy40NTk4NzEsIDUyLjQ1NjYxN10sIFsxMy40NTkxNTIsIDUyLjQ1NzYxNF0sIFsxMy40NTgwNDQsIDUyLjQ1ODkxN10sIFsxMy40NTU2MTcsIDUyLjQ2MTg2XSwgWzEzLjQ1NTQ3OSwgNTIuNDYxOTUxXSwgWzEzLjQ1NDg1OSwgNTIuNDYyNzM1XSwgWzEzLjQ1NDUyOCwgNTIuNDYzMTA0XSwgWzEzLjQ1NDUyMywgNTIuNDYzMThdLCBbMTMuNDU0MzY1LCA1Mi40NjMzNjRdLCBbMTMuNDU0MTg5LCA1Mi40NjM1Ml0sIFsxMy40NTM5MjIsIDUyLjQ2MzcxNV0sIFsxMy40NTM2MDQsIDUyLjQ2Mzg3OF0sIFsxMy40NTMyNDUsIDUyLjQ2NDAyOF0sIFsxMy40NTI4MywgNTIuNDY0MTQ0XSwgWzEzLjQ1MjIwOSwgNTIuNDY0MjRdLCBbMTMuNDUxODI3LCA1Mi40NjQyNjFdLCBbMTMuNDUxMzgyLCA1Mi40NjQyNDZdLCBbMTMuNDUwOTQ4LCA1Mi40NjQxOTFdLCBbMTMuNDUwNTA0LCA1Mi40NjQwOTldLCBbMTMuNDQ5MzE1LCA1Mi40NjM4MDJdLCBbMTMuNDQ3NjMsIDUyLjQ2MzQ5NF0sIFsxMy40NDU5MywgNTIuNDYzMjE5XSwgWzEzLjQ0NDc5NCwgNTIuNDYzMV0sIFsxMy40NDQyNzksIDUyLjQ2MzY5NF0sIFsxMy40NDM2NDksIDUyLjQ2NDI0MV0sIFsxMy40NDI4MzYsIDUyLjQ2NTA3Ml0sIFsxMy40NDI0ODgsIDUyLjQ2NTQ1NV0sIFsxMy40NDIzOTcsIDUyLjQ2NTc2OV0sIFsxMy40NDIwOTIsIDUyLjQ2NzE4M10sIFsxMy40NDE3NjIsIDUyLjQ2ODk4XSwgWzEzLjQ0MTgxNiwgNTIuNDY5MDldLCBbMTMuNDQxNzQzLCA1Mi40Njk2MDJdLCBbMTMuNDQxNjM1LCA1Mi40Njk3MTldLCBbMTMuNDQxMTU5LCA1Mi40NzIzOTVdLCBbMTMuNDQxMDk0LCA1Mi40NzI3MjJdLCBbMTMuNDQxMDM4LCA1Mi40NzI4NzNdLCBbMTMuNDQwNjA0LCA1Mi40NzM3MjFdLCBbMTMuNDQwMTMsIDUyLjQ3NDUxN10sIFsxMy40Mzk4OTMsIDUyLjQ3NV0sIFsxMy40Mzk2NjUsIDUyLjQ3NTYwOF0sIFsxMy40Mzk2NzMsIDUyLjQ3NTcyXSwgWzEzLjQzOTM4NCwgNTIuNDc2MzhdLCBbMTMuNDM5MTg0LCA1Mi40NzY3NzldLCBbMTMuNDM4ODc4LCA1Mi40NzcyMTZdLCBbMTMuNDM4ODE4LCA1Mi40NzcyODddLCBbMTMuNDM4NjUzLCA1Mi40Nzc0MTVdLCBbMTMuNDM3NTQ0LCA1Mi40Nzg5OV0sIFsxMy40MzY5MTMsIDUyLjQ3ODkxN10sIFsxMy40MzY2MTcsIDUyLjQ3ODg0XSwgWzEzLjQzNTQyNywgNTIuNDc4N10sIFsxMy40MzQ4NzUsIDUyLjQ3ODY2OF0sIFsxMy40MzQ3ODIsIDUyLjQ3ODY1XSwgWzEzLjQzNDcwOSwgNTIuNDc4NjE5XSwgWzEzLjQzNDQ1NiwgNTIuNDc4NTc3XSwgWzEzLjQzMzQ3LCA1Mi40Nzg0NTFdLCBbMTMuNDMyODk2LCA1Mi40Nzg0NTJdLCBbMTMuNDMyNzA1LCA1Mi40Nzg0MzldLCBbMTMuNDMyNTIzLCA1Mi40NzkwMDddLCBbMTMuNDMxNTc3LCA1Mi40Nzg4OV0sIFsxMy40MzE0NTEsIDUyLjQ3OTI5OV0sIFsxMy40MzA3MjYsIDUyLjQ3OTIwM10sIFsxMy40MzA2MjIsIDUyLjQ3OTI0OF0sIFsxMy40MzA0ODksIDUyLjQ3OTIzXSwgWzEzLjQzMDQwNCwgNTIuNDc5NDc2XSwgWzEzLjQzMDAwMywgNTIuNDc5NDI0XV0sICJ0eXBlIjogIkxpbmVTdHJpbmcifSwgImlkIjogIjAiLCAidHlwZSI6ICJGZWF0dXJlIn1dLCAidHlwZSI6ICJGZWF0dXJlQ29sbGVjdGlvbiJ9KTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyX2VjZDZlNjM2MDk1NDQ2MWFiODU2ZjVkYmYwYjA5ZjhhID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTIuNDA2Mjk0LCAxMy41ODA4MThdLAogICAgICAgICAgICAgICAge30KICAgICAgICAgICAgKS5hZGRUbyhtYXBfYmM4Yjc0NjY2MzIwNDU4Yzk2NTM2ZWFjZDk2NjRkZjcpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBpY29uX2UwZGI1MTYyOTA2ODQwZjFhN2M4ZWZhYWE5ODRlYzYzID0gTC5Bd2Vzb21lTWFya2Vycy5pY29uKAogICAgICAgICAgICAgICAgeyJleHRyYUNsYXNzZXMiOiAiZmEtcm90YXRlLTAiLCAiaWNvbiI6ICJpbmZvLXNpZ24iLCAiaWNvbkNvbG9yIjogIndoaXRlIiwgIm1hcmtlckNvbG9yIjogImdyZWVuIiwgInByZWZpeCI6ICJnbHlwaGljb24ifQogICAgICAgICAgICApOwogICAgICAgICAgICBtYXJrZXJfZWNkNmU2MzYwOTU0NDYxYWI4NTZmNWRiZjBiMDlmOGEuc2V0SWNvbihpY29uX2UwZGI1MTYyOTA2ODQwZjFhN2M4ZWZhYWE5ODRlYzYzKTsKICAgICAgICAKICAgIAogICAgICAgIHZhciBwb3B1cF82ZmUxZDk1N2FlMzk0YTAyYTdmNjM2ZjE2OWUxNWZjZiA9IEwucG9wdXAoeyJtYXhXaWR0aCI6ICIxMDAlIn0pOwoKICAgICAgICAKICAgICAgICAgICAgdmFyIGh0bWxfMDM4NGE5NmY4NjcyNDczYjljY2QxNjY0YzJlYmVhZTUgPSAkKGA8ZGl2IGlkPSJodG1sXzAzODRhOTZmODY3MjQ3M2I5Y2NkMTY2NGMyZWJlYWU1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5zdGFydDwvZGl2PmApWzBdOwogICAgICAgICAgICBwb3B1cF82ZmUxZDk1N2FlMzk0YTAyYTdmNjM2ZjE2OWUxNWZjZi5zZXRDb250ZW50KGh0bWxfMDM4NGE5NmY4NjcyNDczYjljY2QxNjY0YzJlYmVhZTUpOwogICAgICAgIAoKICAgICAgICBtYXJrZXJfZWNkNmU2MzYwOTU0NDYxYWI4NTZmNWRiZjBiMDlmOGEuYmluZFBvcHVwKHBvcHVwXzZmZTFkOTU3YWUzOTRhMDJhN2Y2MzZmMTY5ZTE1ZmNmKQogICAgICAgIDsKCiAgICAgICAgCiAgICAKICAgIAogICAgICAgICAgICB2YXIgbWFya2VyX2I2MjZmZmUwZmQ5MDQ4OWY4YzQxMTY2Nzc0NjRhYjUyID0gTC5tYXJrZXIoCiAgICAgICAgICAgICAgICBbNTIuNDc5NTM5LCAxMy40Mjk5MjhdLAogICAgICAgICAgICAgICAge30KICAgICAgICAgICAgKS5hZGRUbyhtYXBfYmM4Yjc0NjY2MzIwNDU4Yzk2NTM2ZWFjZDk2NjRkZjcpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBpY29uXzUzOWI4ZTQxNTk1YTQ4NWU5MjZlMGUxZGE1MGQ0M2Q3ID0gTC5Bd2Vzb21lTWFya2Vycy5pY29uKAogICAgICAgICAgICAgICAgeyJleHRyYUNsYXNzZXMiOiAiZmEtcm90YXRlLTAiLCAiaWNvbiI6ICJpbmZvLXNpZ24iLCAiaWNvbkNvbG9yIjogIndoaXRlIiwgIm1hcmtlckNvbG9yIjogInJlZCIsICJwcmVmaXgiOiAiZ2x5cGhpY29uIn0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbWFya2VyX2I2MjZmZmUwZmQ5MDQ4OWY4YzQxMTY2Nzc0NjRhYjUyLnNldEljb24oaWNvbl81MzliOGU0MTU5NWE0ODVlOTI2ZTBlMWRhNTBkNDNkNyk7CiAgICAgICAgCiAgICAKICAgICAgICB2YXIgcG9wdXBfYWEzMWY5YThjMTAyNDQwZGJkYmYzMzQzZTk0NDQ1YTkgPSBMLnBvcHVwKHsibWF4V2lkdGgiOiAiMTAwJSJ9KTsKCiAgICAgICAgCiAgICAgICAgICAgIHZhciBodG1sX2QwZTMzOWM2MjFiNDRhMTE5Mjc4MTA1YmY0OTcxMTc4ID0gJChgPGRpdiBpZD0iaHRtbF9kMGUzMzljNjIxYjQ0YTExOTI3ODEwNWJmNDk3MTE3OCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+ZW5kPC9kaXY+YClbMF07CiAgICAgICAgICAgIHBvcHVwX2FhMzFmOWE4YzEwMjQ0MGRiZGJmMzM0M2U5NDQ0NWE5LnNldENvbnRlbnQoaHRtbF9kMGUzMzljNjIxYjQ0YTExOTI3ODEwNWJmNDk3MTE3OCk7CiAgICAgICAgCgogICAgICAgIG1hcmtlcl9iNjI2ZmZlMGZkOTA0ODlmOGM0MTE2Njc3NDY0YWI1Mi5iaW5kUG9wdXAocG9wdXBfYWEzMWY5YThjMTAyNDQwZGJkYmYzMzQzZTk0NDQ1YTkpCiAgICAgICAgOwoKICAgICAgICAKICAgIAogICAgCiAgICAgICAgZnVuY3Rpb24gZ2VvX2pzb25fZTBmZWFkNjc5ODk5NGZiZWJhYTQ4MmRkN2IzYjIxYjhfc3R5bGVyKGZlYXR1cmUpIHsKICAgICAgICAgICAgc3dpdGNoKGZlYXR1cmUuaWQpIHsKICAgICAgICAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsiY29sb3IiOiAicmVkIiwgIm9wYWNpdHkiOiAwLjUsICJ3ZWlnaHQiOiA1fTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmdW5jdGlvbiBnZW9fanNvbl9lMGZlYWQ2Nzk4OTk0ZmJlYmFhNDgyZGQ3YjNiMjFiOF9vbkVhY2hGZWF0dXJlKGZlYXR1cmUsIGxheWVyKSB7CiAgICAgICAgICAgIGxheWVyLm9uKHsKICAgICAgICAgICAgICAgIGNsaWNrOiBmdW5jdGlvbihlKSB7CiAgICAgICAgICAgICAgICAgICAgbWFwX2JjOGI3NDY2NjMyMDQ1OGM5NjUzNmVhY2Q5NjY0ZGY3LmZpdEJvdW5kcyhlLnRhcmdldC5nZXRCb3VuZHMoKSk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0pOwogICAgICAgIH07CiAgICAgICAgdmFyIGdlb19qc29uX2UwZmVhZDY3OTg5OTRmYmViYWE0ODJkZDdiM2IyMWI4ID0gTC5nZW9Kc29uKG51bGwsIHsKICAgICAgICAgICAgICAgIG9uRWFjaEZlYXR1cmU6IGdlb19qc29uX2UwZmVhZDY3OTg5OTRmYmViYWE0ODJkZDdiM2IyMWI4X29uRWFjaEZlYXR1cmUsCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgc3R5bGU6IGdlb19qc29uX2UwZmVhZDY3OTg5OTRmYmViYWE0ODJkZDdiM2IyMWI4X3N0eWxlciwKICAgICAgICB9KS5hZGRUbyhtYXBfYmM4Yjc0NjY2MzIwNDU4Yzk2NTM2ZWFjZDk2NjRkZjcpOwoKICAgICAgICBmdW5jdGlvbiBnZW9fanNvbl9lMGZlYWQ2Nzk4OTk0ZmJlYmFhNDgyZGQ3YjNiMjFiOF9hZGQgKGRhdGEpIHsKICAgICAgICAgICAgZ2VvX2pzb25fZTBmZWFkNjc5ODk5NGZiZWJhYTQ4MmRkN2IzYjIxYjguYWRkRGF0YShkYXRhKTsKICAgICAgICB9CiAgICAgICAgICAgIGdlb19qc29uX2UwZmVhZDY3OTg5OTRmYmViYWE0ODJkZDdiM2IyMWI4X2FkZCh7ImZlYXR1cmVzIjogW3siZ2VvbWV0cnkiOiB7ImNvb3JkaW5hdGVzIjogW1sxMy41ODA2MTcsIDUyLjQwNjE5NF0sIFsxMy41ODEyMDksIDUyLjQwNTc1Ml0sIFsxMy41ODEzNDIsIDUyLjQwNTcyMl0sIFsxMy41ODE0NjksIDUyLjQwNTY1Nl0sIFsxMy41ODMwODMsIDUyLjQwNDI0NF0sIFsxMy41Nzk4NDQsIDUyLjQwMzExXSwgWzEzLjU3NzYzMSwgNTIuNDAyMzE0XSwgWzEzLjU3NzQ3MywgNTIuNDAyMjhdLCBbMTMuNTc2Njc4LCA1Mi40MDMxMzRdLCBbMTMuNTc2MTA4LCA1Mi40MDM3ODNdLCBbMTMuNTc1MTE0LCA1Mi40MDUwMjddLCBbMTMuNTc0NjI2LCA1Mi40MDU0NV0sIFsxMy41NzQ0NzgsIDUyLjQwNTUyMl0sIFsxMy41NzQzLCA1Mi40MDU1NzVdLCBbMTMuNTczNDgxLCA1Mi40MDU3MzFdLCBbMTMuNTczNDAxLCA1Mi40MDU4MTNdLCBbMTMuNTczMzc4LCA1Mi40MDU5MjNdLCBbMTMuNTczNTE3LCA1Mi40MDYyNTRdLCBbMTMuNTczNTk4LCA1Mi40MDY1ODVdLCBbMTMuNTczNjE2LCA1Mi40MDY4MDJdLCBbMTMuNTczNjA4LCA1Mi40MDc5ODFdLCBbMTMuNTczNTAxLCA1Mi40MDg0N10sIFsxMy41NzMxMTYsIDUyLjQwOTg2N10sIFsxMy41NzI5NDIsIDUyLjQxMDI1OV0sIFsxMy41NzIxNDQsIDUyLjQxMDk0XSwgWzEzLjU3MTY0LCA1Mi40MTA1NDVdLCBbMTMuNTcxNDQ5LCA1Mi40MTA0OV0sIFsxMy41NzEzNTMsIDUyLjQxMDQ4M10sIFsxMy41NzExNjcsIDUyLjQxMDUwNF0sIFsxMy41NjkyNDcsIDUyLjQxMTI5M10sIFsxMy41NzA4MzgsIDUyLjQxMjc1NV0sIFsxMy41NzA5NjcsIDUyLjQxMjc4OV0sIFsxMy41NzExNDksIDUyLjQxMjg3OV0sIFsxMy41NzEzNDIsIDUyLjQxMjkyN10sIFsxMy41NzE1MDQsIDUyLjQxMjk0Ml0sIFsxMy41NzI0MDQsIDUyLjQxMjkwMl0sIFsxMy41NzI1ODksIDUyLjQxMjk0M10sIFsxMy41NzI2NzgsIDUyLjQxMzAyM10sIFsxMy41NzM3NjUsIDUyLjQxMzYwOV0sIFsxMy41NzI3NzUsIDUyLjQxNDEzMV0sIFsxMy41NzI1MzcsIDUyLjQxNDMxNV0sIFsxMy41NzE5OCwgNTIuNDE0NjY2XSwgWzEzLjU3MTM1NiwgNTIuNDE1MTExXSwgWzEzLjU3MTAzNiwgNTIuNDE1NDA3XSwgWzEzLjU3MDcwNCwgNTIuNDE1ODA0XSwgWzEzLjU3MDU2LCA1Mi40MTYwMDddLCBbMTMuNTY5OTcyLCA1Mi40MTcwOTRdLCBbMTMuNTY5NDc0LCA1Mi40MTc4NDRdLCBbMTMuNTY5MjkxLCA1Mi40MTgwNTddLCBbMTMuNTY5MDc1LCA1Mi40MTgyNjVdLCBbMTMuNTY4NzEzLCA1Mi40MTg1MTZdLCBbMTMuNTY4MzU2LCA1Mi40MTg3MTldLCBbMTMuNTY3OTIyLCA1Mi40MTg5MDZdLCBbMTMuNTY3NCwgNTIuNDE5MDVdLCBbMTMuNTY2MzMyLCA1Mi40MTkyOV0sIFsxMy41NjU4MDEsIDUyLjQxOTQyOF0sIFsxMy41NjUzMTYsIDUyLjQxOTU4Nl0sIFsxMy41NjQ3NzksIDUyLjQxOTc5NF0sIFsxMy41NjQwNTUsIDUyLjQyMDE1OF0sIFsxMy41NjI5OSwgNTIuNDIwODUzXSwgWzEzLjU1MzQxOSwgNTIuNDI3MzE1XSwgWzEzLjU1MDg1NiwgNTIuNDI5MDc1XSwgWzEzLjU0OTI0NiwgNTIuNDMwMDk5XSwgWzEzLjU0Nzg1NCwgNTIuNDMwOTIzXSwgWzEzLjU0Njk3NiwgNTIuNDMxNDc1XSwgWzEzLjU0NjAxLCA1Mi40MzIxMTRdLCBbMTMuNTQ0MjM5LCA1Mi40MzMzMjddLCBbMTMuNTQzNTYzLCA1Mi40MzM3N10sIFsxMy41NDI4MzUsIDUyLjQzNDI5Ml0sIFsxMy41NDIwOTEsIDUyLjQzNDkxOV0sIFsxMy41NDEzODMsIDUyLjQzNTQ3M10sIFsxMy41MzY3MzksIDUyLjQzODU5Nl0sIFsxMy41MzUyNjgsIDUyLjQzOTYxOF0sIFsxMy41MjkzNzgsIDUyLjQ0MzU1XSwgWzEzLjUyNjY4NiwgNTIuNDQ1MzhdLCBbMTMuNTI0MjE0LCA1Mi40NDcwMjddLCBbMTMuNTE5OTc2LCA1Mi40NDk5MDldLCBbMTMuNTE4NTE2LCA1Mi40NTA4MjZdLCBbMTMuNTE2OTksIDUyLjQ1MTcxMl0sIFsxMy41MTMxOTcsIDUyLjQ1NDI0Nl0sIFsxMy41MTA1MjgsIDUyLjQ1NjA0N10sIFsxMy41MDM3MjUsIDUyLjQ2MDgyMl0sIFsxMy41MDAwNTEsIDUyLjQ2MzE3MV0sIFsxMy40OTc4NjMsIDUyLjQ2NDY2OV0sIFsxMy40OTc1NSwgNTIuNDY0ODk3XSwgWzEzLjQ5Njc2OSwgNTIuNDY1NTE5XSwgWzEzLjQ5NjA2MSwgNTIuNDY2MDM1XSwgWzEzLjQ5MTI1LCA1Mi40NjkyM10sIFsxMy40OTAyNDIsIDUyLjQ2OTkyNl0sIFsxMy40ODM4NywgNTIuNDc0MjAxXSwgWzEzLjQ3OTY1MywgNTIuNDc3MDU1XSwgWzEzLjQ3OTI5OCwgNTIuNDc3MjY4XSwgWzEzLjQ3ODc5MywgNTIuNDc3NjI0XSwgWzEzLjQ2ODgwMywgNTIuNDcyMzY5XSwgWzEzLjQ2ODQwNSwgNTIuNDcyMjc0XSwgWzEzLjQ2ODA0NywgNTIuNDcyMTM5XSwgWzEzLjQ2Njc1MSwgNTIuNDcxNDYzXSwgWzEzLjQ2NDY1OCwgNTIuNDcwMzRdLCBbMTMuNDY0MzMzLCA1Mi40NzA1MDddLCBbMTMuNDYzODI2LCA1Mi40NzA3MjJdLCBbMTMuNDYzMjg1LCA1Mi40NzA5XSwgWzEzLjQ2MjUzOSwgNTIuNDcxMDk3XSwgWzEzLjQ2MTI0OSwgNTIuNDcxNDg4XSwgWzEzLjQ2MDYzOCwgNTIuNDcxNjkyXSwgWzEzLjQ1OTkxNSwgNTIuNDcxOThdLCBbMTMuNDU4OTE2LCA1Mi40NzI0MzVdLCBbMTMuNDU4Mzc3LCA1Mi40NzI3MTddLCBbMTMuNDU2OTI0LCA1Mi40NzM0MjZdLCBbMTMuNDU2NTQ4LCA1Mi40NzM1OTFdLCBbMTMuNDU1OTQyLCA1Mi40NzM5MDJdLCBbMTMuNDU1ODY1LCA1Mi40NzM4MzhdLCBbMTMuNDU1MzIzLCA1Mi40NzMwNjZdLCBbMTMuNDU0OTc3LCA1Mi40NzI2NzVdLCBbMTMuNDU0NzQ2LCA1Mi40NzI0NTZdLCBbMTMuNDU0MDY3LCA1Mi40NzE5NTZdLCBbMTMuNDUzNDUxLCA1Mi40NzE1NzJdLCBbMTMuNDUyMzk1LCA1Mi40NzExMTVdLCBbMTMuNDUxODgzLCA1Mi40NzEwMzZdLCBbMTMuNDUwMDczLCA1Mi40NzA3MDRdLCBbMTMuNDQ1NjYzLCA1Mi40NzAxODJdLCBbMTMuNDQzMjg1LCA1Mi40Njk4ODFdLCBbMTMuNDQxODMxLCA1Mi40Njk3MThdLCBbMTMuNDQxNjM1LCA1Mi40Njk3MTldLCBbMTMuNDQxMTU5LCA1Mi40NzIzOTVdLCBbMTMuNDQxMDk0LCA1Mi40NzI3MjJdLCBbMTMuNDQxMDM4LCA1Mi40NzI4NzNdLCBbMTMuNDQwNjA0LCA1Mi40NzM3MjFdLCBbMTMuNDQwMTMsIDUyLjQ3NDUxN10sIFsxMy40Mzk4OTMsIDUyLjQ3NV0sIFsxMy40Mzk2NjUsIDUyLjQ3NTYwOF0sIFsxMy40Mzk2NzMsIDUyLjQ3NTcyXSwgWzEzLjQzOTM4NCwgNTIuNDc2MzhdLCBbMTMuNDM5MTg0LCA1Mi40NzY3NzldLCBbMTMuNDM4ODc4LCA1Mi40NzcyMTZdLCBbMTMuNDM4ODE4LCA1Mi40NzcyODddLCBbMTMuNDM4NjUzLCA1Mi40Nzc0MTVdLCBbMTMuNDM3NTQ0LCA1Mi40Nzg5OV0sIFsxMy40MzY5MTMsIDUyLjQ3ODkxN10sIFsxMy40MzY2MTcsIDUyLjQ3ODg0XSwgWzEzLjQzNTQyNywgNTIuNDc4N10sIFsxMy40MzQ4NzUsIDUyLjQ3ODY2OF0sIFsxMy40MzQ3ODIsIDUyLjQ3ODY1XSwgWzEzLjQzNDcwOSwgNTIuNDc4NjE5XSwgWzEzLjQzNDQ1NiwgNTIuNDc4NTc3XSwgWzEzLjQzMzQ3LCA1Mi40Nzg0NTFdLCBbMTMuNDMyODk2LCA1Mi40Nzg0NTJdLCBbMTMuNDMyNzA1LCA1Mi40Nzg0MzldLCBbMTMuNDMyNTIzLCA1Mi40NzkwMDddLCBbMTMuNDMxNTc3LCA1Mi40Nzg4OV0sIFsxMy40MzE0NTEsIDUyLjQ3OTI5OV0sIFsxMy40MzA3MjYsIDUyLjQ3OTIwM10sIFsxMy40MzA2MjIsIDUyLjQ3OTI0OF0sIFsxMy40MzA0ODksIDUyLjQ3OTIzXSwgWzEzLjQzMDQwNCwgNTIuNDc5NDc2XSwgWzEzLjQzMDAwMywgNTIuNDc5NDI0XV0sICJ0eXBlIjogIkxpbmVTdHJpbmcifSwgImlkIjogIjAiLCAidHlwZSI6ICJGZWF0dXJlIn1dLCAidHlwZSI6ICJGZWF0dXJlQ29sbGVjdGlvbiJ9KTsKICAgICAgICAKPC9zY3JpcHQ+ onload=\"this.contentDocument.open();this.contentDocument.write(atob(this.getAttribute('data-html')));this.contentDocument.close();\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
],
"text/plain": [
"<folium.folium.Map at 0x7f67778586d8>"
]
},
"execution_count": 12,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"start=[13.580818,52.406294]\n",
"end=[13.429928,52.479539]\n",
"\n",
"m = folium.Map(location=latlon(start), zoom_start=11)\n",
"\n",
"route = requests.post(url=route_url, json={'profile':'car', 'points':[start,end], 'points_encoded':False}).json()\n",
"if 'message' in route: raise Exception(route[\"message\"])\n",
"plot_route(m, start, end, route[\"paths\"][0], \"route\", \"blue\")\n",
"\n",
"priorityJson = {'hazmat': {'no': 0}, \n",
" 'hazmat_water':{'no': 0}, \n",
" 'hazmat_tunnel': {'D': 0, 'E': 0},\n",
" 'max_width': {'<3': 0}, # in meter\n",
" 'max_height': {'<4': 0}, # in meter\n",
" 'max_weight': {'<3.5': 0}}# in tons\n",
"route = requests.post(url=route_url, json={'profile':'car', 'points':[start,end], 'points_encoded':False, \n",
" 'priority': priorityJson}).json()\n",
"if 'message' in route: raise Exception(route[\"message\"])\n",
"plot_route(m, start, end, route[\"paths\"][0], \"other\", \"red\")\n",
"\n",
"m"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.7.1"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment