Skip to content

Instantly share code, notes, and snippets.

@egy1st
Created February 23, 2022 22:45
Show Gist options
  • Save egy1st/d3c3784221eb303cc544bcd0d98f63f1 to your computer and use it in GitHub Desktop.
Save egy1st/d3c3784221eb303cc544bcd0d98f63f1 to your computer and use it in GitHub Desktop.
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# The Business-Case Introduction"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## What is this business-case going to answer and where?\n",
"\n",
"### The place:\n",
"Brooklyn, a USA Borough, in NEW York City.\n",
"\n",
"### The problem:\n",
"A stakeholder has restaurant in Brooklyn, he wants to expand his business by opening a new branch in the same borough. Where would he be recommended to open? \n",
"The stakeholder asked me to help him in finding the best place to open his new branch.\n",
"\n",
"The stakeholder made an initial investigation and provide me with 5 places in Broklyn to state his business\n",
"![which place](https://alexmedia.co/brooklyn.jpg)\n",
"The current place appears in red, while the investigated places appear in blue\n",
"\n",
"### The Dataset:\n",
"As a data analyst I got New York data from NYU spatial data repository and find that it has 5 boroughs:\n",
"\n",
"* Manhattan with 40 neighbors\n",
"* Bronx with 52 neighbors\n",
"* Staten with Island 63 neighbors\n",
"* Brooklyn with 70 neighbors\n",
"* Queens with 81 neighbors\n",
"\n",
"\n",
"### The Methodology:\n",
"I planned my task as following by dividing it into two main methods:\n",
"1. Get the top 100 venues that are in each distinct within a radius of 500 meters\n",
"2. Group venues by neighborhood and by taking the mean of the frequency of occurrence of each category\n",
"3. Retrieve each neighborhood along with the top 10 most common venues\n",
"4. Run k-means to cluster the neighborhood into 5 clusters.\n",
"5. make our decision based on generated clusters"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## The Process:\n",
"We are going to work on \"New York\" state in USA\n",
"* First we will extract all Newyork neighbors usind data provided by NYU spatial data repository at https://geo.nyu.edu \n",
"* Second, We will use Foursquare API provided by https://developer.foursquare.com/ to retrieve all needed location, Borough, Categories, Rating, and Trending information\n",
"this is the main data we will use for cleaning, wrangling and put for further investigations\n",
"\n",
"* Thirdly, We will use skilearn library from python to analysis our data using proper machine learning algorithms. here we will use K-means, an algorithm best suits our case analysis and investigations.\n",
"\n",
"* Then we will use matplotlib library to visualize the investigated results on maps using Foluim library for python\n",
"\n",
"* Finally, we will put it all together in a simple way, such that stackholders can make their decision easily based on our data analysis investigation for this business case."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Data Insight and Prepration"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [],
"source": [
"# import pandas library to work with dataframe\n",
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib as mat"
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [],
"source": [
"# @hidden_cell\n",
"CLIENT_ID = '2UABPTQXVSFUWXVMSQYXON4FACFMLWPELLQFVBYK3S0TLBNV' # your Foursquare ID\n",
"CLIENT_SECRET = 'AFKQI22J5NIJ1JSMPU0ZJ2TGHMPAIT04BAPUUD1MOAOIYVLE' # your Foursquare Secret\n",
"VERSION = '20180604'"
]
},
{
"cell_type": "code",
"execution_count": 89,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: geopy in /home/jupyterlab/conda/lib/python3.6/site-packages (1.11.0)\n",
"Requirement already satisfied: folium in /home/jupyterlab/conda/lib/python3.6/site-packages (0.5.0)\n",
"Requirement already satisfied: branca in /home/jupyterlab/conda/lib/python3.6/site-packages (from folium) (0.3.1)\n",
"Requirement already satisfied: jinja2 in /home/jupyterlab/conda/lib/python3.6/site-packages (from folium) (2.10)\n",
"Requirement already satisfied: requests in /home/jupyterlab/conda/lib/python3.6/site-packages (from folium) (2.20.1)\n",
"Requirement already satisfied: six in /home/jupyterlab/conda/lib/python3.6/site-packages (from folium) (1.11.0)\n",
"Requirement already satisfied: MarkupSafe>=0.23 in /home/jupyterlab/conda/lib/python3.6/site-packages (from jinja2->folium) (1.1.0)\n",
"Requirement already satisfied: certifi>=2017.4.17 in /home/jupyterlab/conda/lib/python3.6/site-packages (from requests->folium) (2018.11.29)\n",
"Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /home/jupyterlab/conda/lib/python3.6/site-packages (from requests->folium) (3.0.4)\n",
"Requirement already satisfied: urllib3<1.25,>=1.21.1 in /home/jupyterlab/conda/lib/python3.6/site-packages (from requests->folium) (1.23)\n",
"Requirement already satisfied: idna<2.8,>=2.5 in /home/jupyterlab/conda/lib/python3.6/site-packages (from requests->folium) (2.7)\n",
"Folium installed\n",
"Libraries imported.\n"
]
}
],
"source": [
"#!conda install -c conda-forge geopy --yes \n",
"!pip install geopy \n",
"from geopy.geocoders import Nominatim # module to convert an address into latitude and longitude values\n",
"import requests # library to handle requests\n",
"\n",
"pd.set_option('display.max_columns', None)\n",
"pd.set_option('display.max_rows', None)\n",
"\n",
"import json # library to handle JSON files\n",
"\n",
"# libraries for displaying images\n",
"from IPython.display import Image \n",
"from IPython.core.display import HTML \n",
" \n",
"# tranforming json file into a pandas dataframe library\n",
"from pandas.io.json import json_normalize\n",
"\n",
"#!conda install -c conda-forge folium=0.5.0 --yes\n",
"!pip install folium\n",
"import folium # plotting library\n",
"\n",
"import matplotlib.pyplot as plt\n",
"import matplotlib.image as mpimg\n",
"\n",
"# Matplotlib and associated plotting modules\n",
"import matplotlib.cm as cm\n",
"import matplotlib.colors as colors\n",
"\n",
"# import k-means from clustering stage\n",
"from sklearn.cluster import KMeans\n",
"\n",
"\n",
"print('Folium installed')\n",
"print('Libraries imported.')"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [],
"source": [
"# Function for creating map of any borough using latitude and longitude values\n",
"def print_map (my_data, zoom=11):\n",
" my_map = folium.Map(location=[latitude, longitude], zoom_start=zoom)\n",
" for lat, lng, label in zip(my_data['Latitude'], my_data['Longitude'], my_data['Neighborhood']):\n",
" label = folium.Popup(label, parse_html=True)\n",
" folium.CircleMarker(\n",
" [lat, lng],\n",
" radius=5,\n",
" popup=label,\n",
" color='blue',\n",
" fill=True,\n",
" fill_color='#3186cc',\n",
" fill_opacity=0.7,\n",
" parse_html=False).add_to(my_map)\n",
" return my_map"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Data downloaded!\n"
]
}
],
"source": [
"!wget -q -O 'newyork_data.json' https://geo.nyu.edu/download/file/nyu-2451-34572-geojson.json\n",
"print('Data downloaded!')"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"with open('newyork_data.json') as json_data:\n",
" df_newyork = json.load(json_data)"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"df_newyork = df_newyork['features']"
]
},
{
"cell_type": "code",
"execution_count": 11,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"{'type': 'Feature',\n",
" 'id': 'nyu_2451_34572.1',\n",
" 'geometry': {'type': 'Point',\n",
" 'coordinates': [-73.84720052054902, 40.89470517661]},\n",
" 'geometry_name': 'geom',\n",
" 'properties': {'name': 'Wakefield',\n",
" 'stacked': 1,\n",
" 'annoline1': 'Wakefield',\n",
" 'annoline2': None,\n",
" 'annoline3': None,\n",
" 'annoangle': 0.0,\n",
" 'borough': 'Bronx',\n",
" 'bbox': [-73.84720052054902,\n",
" 40.89470517661,\n",
" -73.84720052054902,\n",
" 40.89470517661]}}"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"#let us have a look\n",
"df_newyork[0]"
]
},
{
"cell_type": "code",
"execution_count": 12,
"metadata": {},
"outputs": [],
"source": [
"# define the dataframe columns\n",
"column_names = ['Borough', 'Neighborhood', 'Latitude', 'Longitude'] \n",
"\n",
"# instantiate the dataframe\n",
"newyork_data = pd.DataFrame(columns=column_names)"
]
},
{
"cell_type": "code",
"execution_count": 13,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"306"
]
},
"execution_count": 13,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(df_newyork)"
]
},
{
"cell_type": "code",
"execution_count": 14,
"metadata": {},
"outputs": [],
"source": [
"# let us populate it\n",
"for data in df_newyork:\n",
" borough = neighborhood_name = data['properties']['borough'] \n",
" neighborhood_name = data['properties']['name']\n",
" \n",
" neighborhood_latlon = data['geometry']['coordinates']\n",
" neighborhood_lat = neighborhood_latlon[1]\n",
" neighborhood_lon = neighborhood_latlon[0]\n",
" \n",
" newyork_data = newyork_data.append({'Borough': borough,\n",
" 'Neighborhood': neighborhood_name,\n",
" 'Latitude': neighborhood_lat,\n",
" 'Longitude': neighborhood_lon}, ignore_index=True)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Borough</th>\n",
" <th>Neighborhood</th>\n",
" <th>Latitude</th>\n",
" <th>Longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Bronx</td>\n",
" <td>Wakefield</td>\n",
" <td>40.894705</td>\n",
" <td>-73.847201</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Bronx</td>\n",
" <td>Co-op City</td>\n",
" <td>40.874294</td>\n",
" <td>-73.829939</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Bronx</td>\n",
" <td>Eastchester</td>\n",
" <td>40.887556</td>\n",
" <td>-73.827806</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Bronx</td>\n",
" <td>Fieldston</td>\n",
" <td>40.895437</td>\n",
" <td>-73.905643</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Bronx</td>\n",
" <td>Riverdale</td>\n",
" <td>40.890834</td>\n",
" <td>-73.912585</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Borough Neighborhood Latitude Longitude\n",
"0 Bronx Wakefield 40.894705 -73.847201\n",
"1 Bronx Co-op City 40.874294 -73.829939\n",
"2 Bronx Eastchester 40.887556 -73.827806\n",
"3 Bronx Fieldston 40.895437 -73.905643\n",
"4 Bronx Riverdale 40.890834 -73.912585"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"newyork_data.head()"
]
},
{
"cell_type": "code",
"execution_count": 16,
"metadata": {
"slideshow": {
"slide_type": "-"
}
},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The dataframe has 5 boroughs and 306 neighborhoods.\n"
]
},
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Neighborhood</th>\n",
" <th>Latitude</th>\n",
" <th>Longitude</th>\n",
" </tr>\n",
" <tr>\n",
" <th>Borough</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>Bronx</th>\n",
" <td>52</td>\n",
" <td>52</td>\n",
" <td>52</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Brooklyn</th>\n",
" <td>70</td>\n",
" <td>70</td>\n",
" <td>70</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Manhattan</th>\n",
" <td>40</td>\n",
" <td>40</td>\n",
" <td>40</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Queens</th>\n",
" <td>81</td>\n",
" <td>81</td>\n",
" <td>81</td>\n",
" </tr>\n",
" <tr>\n",
" <th>Staten Island</th>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" <td>63</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Neighborhood Latitude Longitude\n",
"Borough \n",
"Bronx 52 52 52\n",
"Brooklyn 70 70 70\n",
"Manhattan 40 40 40\n",
"Queens 81 81 81\n",
"Staten Island 63 63 63"
]
},
"execution_count": 16,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"print('The dataframe has {} boroughs and {} neighborhoods.'.format(\n",
" len(newyork_data['Borough'].unique()),\n",
" newyork_data.shape[0]\n",
" )\n",
")\n",
"\n",
"#how many neighborhood each borough has\n",
"df_groups = newyork_data.groupby (['Borough']).count()\n",
"df_groups"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The geograpical coordinate of New York City are 40.7308619, -73.9871558.\n"
]
}
],
"source": [
"# Use geopy library to get the latitude and longitude values of New York City.\n",
"address = 'New York City, NY'\n",
"geolocator = Nominatim()\n",
"location = geolocator.geocode(address)\n",
"latitude = location.latitude\n",
"longitude = location.longitude\n",
"print('The geograpical coordinate of New York City are {}, {}.'.format(latitude, longitude))\n"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVMgPSBmYWxzZTsgTF9OT19UT1VDSCA9IGZhbHNlOyBMX0RJU0FCTEVfM0QgPSBmYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgICAgICAgICA8c3R5bGU+ICNtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogMTAwLjAlOwogICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAuMCU7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgIAo8L2hlYWQ+Cjxib2R5PiAgICAKICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkIiA+PC9kaXY+CiAgICAgICAgCjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGJvdW5kcyA9IG51bGw7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgdmFyIG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCA9IEwubWFwKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2VudGVyOiBbNDAuNzMwODYxOSwtNzMuOTg3MTU1OF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6b29tOiAxMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heEJvdW5kczogYm91bmRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXJzOiBbXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHRpbGVfbGF5ZXJfOThkNTVhY2JhYTg3NDkzNmEyZGVmN2RjMzMyMzEyMmIgPSBMLnRpbGVMYXllcigKICAgICAgICAgICAgICAgICdodHRwczovL3tzfS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgICAgICAgICB7CiAgImF0dHJpYnV0aW9uIjogbnVsbCwKICAiZGV0ZWN0UmV0aW5hIjogZmFsc2UsCiAgIm1heFpvb20iOiAxOCwKICAibWluWm9vbSI6IDEsCiAgIm5vV3JhcCI6IGZhbHNlLAogICJzdWJkb21haW5zIjogImFiYyIKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzcwN2VmMDRkZmQ1YzQ1NTNiZGRkOTRkYjYwNmMwMzQ1ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuODk0NzA1MTc2NjEsLTczLjg0NzIwMDUyMDU0OTAyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzA5YTUzZGEwNTEwNzRjZDViZmEwMDU1ZGUxMDczNjA5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzY4Y2ZkYzlkOTRkODQyMWRhODYxZjM4MTdkYjg2ODhjID0gJCgnPGRpdiBpZD0iaHRtbF82OGNmZGM5ZDk0ZDg0MjFkYTg2MWYzODE3ZGI4Njg4YyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+V2FrZWZpZWxkPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8wOWE1M2RhMDUxMDc0Y2Q1YmZhMDA1NWRlMTA3MzYwOS5zZXRDb250ZW50KGh0bWxfNjhjZmRjOWQ5NGQ4NDIxZGE4NjFmMzgxN2RiODY4OGMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNzA3ZWYwNGRmZDVjNDU1M2JkZGQ5NGRiNjA2YzAzNDUuYmluZFBvcHVwKHBvcHVwXzA5YTUzZGEwNTEwNzRjZDViZmEwMDU1ZGUxMDczNjA5KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2I2YzMyNTllMGYwMzQwOTRhMjZjNzUwZGRkYmE4NmQ2ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuODc0Mjk0MTkzMDMwMTIsLTczLjgyOTkzOTEwODEyMzk4XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2E0OGEyNzVhNTdmZjQxOWU4OGRiMTAyMjUxYTYxMWJiID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzE0Nzk3MTAwMjBmODQyOTE5MmI1M2I2NmU0ZjQ2NGVkID0gJCgnPGRpdiBpZD0iaHRtbF8xNDc5NzEwMDIwZjg0MjkxOTJiNTNiNjZlNGY0NjRlZCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Q28tb3AgQ2l0eTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYTQ4YTI3NWE1N2ZmNDE5ZTg4ZGIxMDIyNTFhNjExYmIuc2V0Q29udGVudChodG1sXzE0Nzk3MTAwMjBmODQyOTE5MmI1M2I2NmU0ZjQ2NGVkKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2I2YzMyNTllMGYwMzQwOTRhMjZjNzUwZGRkYmE4NmQ2LmJpbmRQb3B1cChwb3B1cF9hNDhhMjc1YTU3ZmY0MTllODhkYjEwMjI1MWE2MTFiYik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9lMjE4Y2MyZjE5YWU0Yzc3YmYyZGZkMDJkNzdmZWU2NyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg4NzU1NTY3NzM1MDc3NSwtNzMuODI3ODA2NDQ3MTY0MTJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYTA2ZmEyODI3YjFkNDcwZTgzYmY2OTE2MGY1M2YwYjMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfN2MwYzJiNDcxN2MxNDBkZDg3MDExNTJhM2Q1NTJiNWUgPSAkKCc8ZGl2IGlkPSJodG1sXzdjMGMyYjQ3MTdjMTQwZGQ4NzAxMTUyYTNkNTUyYjVlIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5FYXN0Y2hlc3RlcjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYTA2ZmEyODI3YjFkNDcwZTgzYmY2OTE2MGY1M2YwYjMuc2V0Q29udGVudChodG1sXzdjMGMyYjQ3MTdjMTQwZGQ4NzAxMTUyYTNkNTUyYjVlKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2UyMThjYzJmMTlhZTRjNzdiZjJkZmQwMmQ3N2ZlZTY3LmJpbmRQb3B1cChwb3B1cF9hMDZmYTI4MjdiMWQ0NzBlODNiZjY5MTYwZjUzZjBiMyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl85Y2NkNDM1M2ExYmE0Y2VmOTdlNTkwYzI1ZjRjMzZiNyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg5NTQzNzQyNjkwMzgzLC03My45MDU2NDI1OTU5MTY4Ml0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8wNDI1YTMyMDZkZmU0YTMyYjRjZWM1ZmU3ZTQ2MmZlNyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9kYjlhNWE4MmY5YzQ0ZmE1ODZjYmQ5OGIwMjMxNjRmNCA9ICQoJzxkaXYgaWQ9Imh0bWxfZGI5YTVhODJmOWM0NGZhNTg2Y2JkOThiMDIzMTY0ZjQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkZpZWxkc3RvbjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMDQyNWEzMjA2ZGZlNGEzMmI0Y2VjNWZlN2U0NjJmZTcuc2V0Q29udGVudChodG1sX2RiOWE1YTgyZjljNDRmYTU4NmNiZDk4YjAyMzE2NGY0KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzljY2Q0MzUzYTFiYTRjZWY5N2U1OTBjMjVmNGMzNmI3LmJpbmRQb3B1cChwb3B1cF8wNDI1YTMyMDZkZmU0YTMyYjRjZWM1ZmU3ZTQ2MmZlNyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8wZWRmN2JhZTM5N2I0ZjNmODRlZjkyZmMzMTVhYjIxOCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg5MDgzNDQ5Mzg5MTMwNSwtNzMuOTEyNTg1NDYxMDg1N10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81NGU0YmM3NjI3MGQ0MjViYWVlZWJkN2NkYTQxMTQ1MCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iZjY0N2U4ZDA2NTY0NGUyODA5ZGE2N2Q3NzAwMDU3MCA9ICQoJzxkaXYgaWQ9Imh0bWxfYmY2NDdlOGQwNjU2NDRlMjgwOWRhNjdkNzcwMDA1NzAiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlJpdmVyZGFsZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNTRlNGJjNzYyNzBkNDI1YmFlZWViZDdjZGE0MTE0NTAuc2V0Q29udGVudChodG1sX2JmNjQ3ZThkMDY1NjQ0ZTI4MDlkYTY3ZDc3MDAwNTcwKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzBlZGY3YmFlMzk3YjRmM2Y4NGVmOTJmYzMxNWFiMjE4LmJpbmRQb3B1cChwb3B1cF81NGU0YmM3NjI3MGQ0MjViYWVlZWJkN2NkYTQxMTQ1MCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9jNTM4YWM2MGU0MzQ0MTc5YjQwOGZkMzU5OTVkYjUwZSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg4MTY4NzM3MTIwNTIxLC03My45MDI4MTc5ODcyNDYwNF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9iMjJiYmM3M2ZkZGQ0MDA5ODBhNTNjMzFhMDg3YjZhMSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF83ODUzOWZlMzBmYzg0Yjg1YjkzNjdlMGFlNzA5MmZjYSA9ICQoJzxkaXYgaWQ9Imh0bWxfNzg1MzlmZTMwZmM4NGI4NWI5MzY3ZTBhZTcwOTJmY2EiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPktpbmdzYnJpZGdlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iMjJiYmM3M2ZkZGQ0MDA5ODBhNTNjMzFhMDg3YjZhMS5zZXRDb250ZW50KGh0bWxfNzg1MzlmZTMwZmM4NGI4NWI5MzY3ZTBhZTcwOTJmY2EpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYzUzOGFjNjBlNDM0NDE3OWI0MDhmZDM1OTk1ZGI1MGUuYmluZFBvcHVwKHBvcHVwX2IyMmJiYzczZmRkZDQwMDk4MGE1M2MzMWEwODdiNmExKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzQ4MTQ4NzY4Y2U4MDRhM2ZhN2ViM2QzOTU2OGU0ODY0ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuODc2NTUwNzc4Nzk5NjQsLTczLjkxMDY1OTY1ODYyOTgxXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzVhYWNmNGE3ZTdlNzRhMmZiMjI2NGY1NzRhZTZkMDRmID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2I4ZjJjZjk3NjUxMTQ3ZWE4NDBkNTc2Njg5N2VhMGU1ID0gJCgnPGRpdiBpZD0iaHRtbF9iOGYyY2Y5NzY1MTE0N2VhODQwZDU3NjY4OTdlYTBlNSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TWFyYmxlIEhpbGw8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzVhYWNmNGE3ZTdlNzRhMmZiMjI2NGY1NzRhZTZkMDRmLnNldENvbnRlbnQoaHRtbF9iOGYyY2Y5NzY1MTE0N2VhODQwZDU3NjY4OTdlYTBlNSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl80ODE0ODc2OGNlODA0YTNmYTdlYjNkMzk1NjhlNDg2NC5iaW5kUG9wdXAocG9wdXBfNWFhY2Y0YTdlN2U3NGEyZmIyMjY0ZjU3NGFlNmQwNGYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMWE3NTU4Y2Y5ZmJhNDc5M2IyMzIwYmJlZTQ5NTQwODUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC44OTgyNzI2MTIxMzgwNSwtNzMuODY3MzE0OTY4MTQxNzZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNDdmNGJlNzY3NDE4NGE5Y2JhNjZhNDczZDBmZWI2ZWYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNjIxZDc3ZDc3MmRlNDg1MGFhODM2OGYyZDUxOTFmMTUgPSAkKCc8ZGl2IGlkPSJodG1sXzYyMWQ3N2Q3NzJkZTQ4NTBhYTgzNjhmMmQ1MTkxZjE1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Xb29kbGF3bjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNDdmNGJlNzY3NDE4NGE5Y2JhNjZhNDczZDBmZWI2ZWYuc2V0Q29udGVudChodG1sXzYyMWQ3N2Q3NzJkZTQ4NTBhYTgzNjhmMmQ1MTkxZjE1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzFhNzU1OGNmOWZiYTQ3OTNiMjMyMGJiZWU0OTU0MDg1LmJpbmRQb3B1cChwb3B1cF80N2Y0YmU3Njc0MTg0YTljYmE2NmE0NzNkMGZlYjZlZik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9mYWUxMjU4M2ViYTU0OTIwYmMyOGI2YTkxZmZmN2Q2YSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg3NzIyNDE1NTk5NDQ2LC03My44NzkzOTA3Mzk1NjgxXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzgwYWZmMjMyMWRjMTRiOTNhYzc0ZGI4ZmRkMDQwZmY5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzY0ZWNiYWI2MDkzZjQ4ZjhhNzZlZjM0MzI3MDg4NTk1ID0gJCgnPGRpdiBpZD0iaHRtbF82NGVjYmFiNjA5M2Y0OGY4YTc2ZWYzNDMyNzA4ODU5NSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Tm9yd29vZDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfODBhZmYyMzIxZGMxNGI5M2FjNzRkYjhmZGQwNDBmZjkuc2V0Q29udGVudChodG1sXzY0ZWNiYWI2MDkzZjQ4ZjhhNzZlZjM0MzI3MDg4NTk1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2ZhZTEyNTgzZWJhNTQ5MjBiYzI4YjZhOTFmZmY3ZDZhLmJpbmRQb3B1cChwb3B1cF84MGFmZjIzMjFkYzE0YjkzYWM3NGRiOGZkZDA0MGZmOSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9lZTQwZTIwMGVkMTY0NDYxODM5ZWE4ZTY1ZWYzMmRlNCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg4MTAzODg3ODE5MjExLC03My44NTc0NDY0Mjk3NDIwN10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85MmMzYjAwMTdiYjM0M2I2OTNjY2IyMTYyY2NiNDAxZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8xZTNkNWY2YTUxMmY0NzUzODc5YmQ4YTBhZTVlZWI3MSA9ICQoJzxkaXYgaWQ9Imh0bWxfMWUzZDVmNmE1MTJmNDc1Mzg3OWJkOGEwYWU1ZWViNzEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPldpbGxpYW1zYnJpZGdlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF85MmMzYjAwMTdiYjM0M2I2OTNjY2IyMTYyY2NiNDAxZi5zZXRDb250ZW50KGh0bWxfMWUzZDVmNmE1MTJmNDc1Mzg3OWJkOGEwYWU1ZWViNzEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZWU0MGUyMDBlZDE2NDQ2MTgzOWVhOGU2NWVmMzJkZTQuYmluZFBvcHVwKHBvcHVwXzkyYzNiMDAxN2JiMzQzYjY5M2NjYjIxNjJjY2I0MDFmKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzU1MjExOTU5NDdlNjQxMjQ4YTA3OGIxMDNiNGIzOGRmID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuODY2ODU4MTA3MjUyNjk2LC03My44MzU3OTc1OTgwODExN10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9mMjRlZjVjYjE4NGU0ZmEzYjBiMmE2ZjkxNTFmNDZjMCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8yZTVjZTM4NmU0MTM0Y2Q4YWE2MzU1ZWZjMmRjODNmMiA9ICQoJzxkaXYgaWQ9Imh0bWxfMmU1Y2UzODZlNDEzNGNkOGFhNjM1NWVmYzJkYzgzZjIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJheWNoZXN0ZXI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2YyNGVmNWNiMTg0ZTRmYTNiMGIyYTZmOTE1MWY0NmMwLnNldENvbnRlbnQoaHRtbF8yZTVjZTM4NmU0MTM0Y2Q4YWE2MzU1ZWZjMmRjODNmMik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl81NTIxMTk1OTQ3ZTY0MTI0OGEwNzhiMTAzYjRiMzhkZi5iaW5kUG9wdXAocG9wdXBfZjI0ZWY1Y2IxODRlNGZhM2IwYjJhNmY5MTUxZjQ2YzApOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZjAwMjYwMGFjMmQ4NDg1NDhkYWNmMDE0ZGVkZTVmMDUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC44NTc0MTM0OTgwODg2NSwtNzMuODU0NzU1NjQwMTc5OTldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYTljOTgwNzk3MDJhNDVhYjliZWQxZjY3MGZkMjU3NTggPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZTMzMDZiNGU1NTNjNGM4ZDkxNjNkNmUzM2RmMmJkOGYgPSAkKCc8ZGl2IGlkPSJodG1sX2UzMzA2YjRlNTUzYzRjOGQ5MTYzZDZlMzNkZjJiZDhmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5QZWxoYW0gUGFya3dheTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYTljOTgwNzk3MDJhNDVhYjliZWQxZjY3MGZkMjU3NTguc2V0Q29udGVudChodG1sX2UzMzA2YjRlNTUzYzRjOGQ5MTYzZDZlMzNkZjJiZDhmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2YwMDI2MDBhYzJkODQ4NTQ4ZGFjZjAxNGRlZGU1ZjA1LmJpbmRQb3B1cChwb3B1cF9hOWM5ODA3OTcwMmE0NWFiOWJlZDFmNjcwZmQyNTc1OCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl85YjgxYTU1ZjUwZGU0OTljYjJkMWZiMzYwZWI0N2FmYiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg0NzI0NjcwNDkxODEzLC03My43ODY0ODg0NTI2NzQxM10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF80ZDhiODVmN2Y2Yzg0ZjY5OTZkZmZlNDZmYjFmMmVhZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9kMjM3YTQ2Y2E5YmY0MjMyYTYwNjI4YWJlN2ZkNzQzMSA9ICQoJzxkaXYgaWQ9Imh0bWxfZDIzN2E0NmNhOWJmNDIzMmE2MDYyOGFiZTdmZDc0MzEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNpdHkgSXNsYW5kPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80ZDhiODVmN2Y2Yzg0ZjY5OTZkZmZlNDZmYjFmMmVhZS5zZXRDb250ZW50KGh0bWxfZDIzN2E0NmNhOWJmNDIzMmE2MDYyOGFiZTdmZDc0MzEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfOWI4MWE1NWY1MGRlNDk5Y2IyZDFmYjM2MGViNDdhZmIuYmluZFBvcHVwKHBvcHVwXzRkOGI4NWY3ZjZjODRmNjk5NmRmZmU0NmZiMWYyZWFlKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzA5YjczMTM0ODUzMTQ1MGFhYjNkYzg1MjBlZmU4YWIzID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuODcwMTg1MTY0OTc1MzI1LC03My44ODU1MTIxODQxOTEzXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2I1MTQwNDY4MWU5ODQ5OGViMWU2ZmMwNjE4MzU5ZDgwID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2YxNmE1M2NlODMzYzRmYTM4OTJhZDg5MGU1OTJlODVkID0gJCgnPGRpdiBpZD0iaHRtbF9mMTZhNTNjZTgzM2M0ZmEzODkyYWQ4OTBlNTkyZTg1ZCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+QmVkZm9yZCBQYXJrPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iNTE0MDQ2ODFlOTg0OThlYjFlNmZjMDYxODM1OWQ4MC5zZXRDb250ZW50KGh0bWxfZjE2YTUzY2U4MzNjNGZhMzg5MmFkODkwZTU5MmU4NWQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMDliNzMxMzQ4NTMxNDUwYWFiM2RjODUyMGVmZThhYjMuYmluZFBvcHVwKHBvcHVwX2I1MTQwNDY4MWU5ODQ5OGViMWU2ZmMwNjE4MzU5ZDgwKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzExOGRhYmFlMmRjNTQ3ZTk4OGUxOWJhM2U4YjEyZTU3ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuODU1NzI3MDc3MTk2NjQsLTczLjkxMDQxNTk2MTkxMzFdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNDBlOTQ0MzQwNmNjNGVjYzlhYTE1ZTQyMzZmM2RlNjAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNzdmNDE1Y2Q2MjE1NGQ3YmI3YzYxYThmOGQ4MWIzZWEgPSAkKCc8ZGl2IGlkPSJodG1sXzc3ZjQxNWNkNjIxNTRkN2JiN2M2MWE4ZjhkODFiM2VhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Vbml2ZXJzaXR5IEhlaWdodHM8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzQwZTk0NDM0MDZjYzRlY2M5YWExNWU0MjM2ZjNkZTYwLnNldENvbnRlbnQoaHRtbF83N2Y0MTVjZDYyMTU0ZDdiYjdjNjFhOGY4ZDgxYjNlYSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8xMThkYWJhZTJkYzU0N2U5ODhlMTliYTNlOGIxMmU1Ny5iaW5kUG9wdXAocG9wdXBfNDBlOTQ0MzQwNmNjNGVjYzlhYTE1ZTQyMzZmM2RlNjApOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfOTlmY2UwYjBlNmI1NGM2ZDkwZTczMDQxYmUwOGQ1NjEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC44NDc4OTc5MjYwNjI3MSwtNzMuOTE5NjcxNTkxMTk1NjVdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMDcyOThlYTlhYmUyNDE1MjgyZGFhYzhlM2E0ZDlkYzUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYTBiOWU0YTRmYTk2NDNmMTk1NGQyMWQ4NjRmMzhiNDQgPSAkKCc8ZGl2IGlkPSJodG1sX2EwYjllNGE0ZmE5NjQzZjE5NTRkMjFkODY0ZjM4YjQ0IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Nb3JyaXMgSGVpZ2h0czwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMDcyOThlYTlhYmUyNDE1MjgyZGFhYzhlM2E0ZDlkYzUuc2V0Q29udGVudChodG1sX2EwYjllNGE0ZmE5NjQzZjE5NTRkMjFkODY0ZjM4YjQ0KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzk5ZmNlMGIwZTZiNTRjNmQ5MGU3MzA0MWJlMDhkNTYxLmJpbmRQb3B1cChwb3B1cF8wNzI5OGVhOWFiZTI0MTUyODJkYWFjOGUzYTRkOWRjNSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9mYmQ0NWNiMTc2MGY0ZGZiYWZjNTAxN2VjMjQyOWM0MCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg2MDk5Njc5NjM4NjU0LC03My44OTY0MjY1NTk4MTYyM10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81NGVmNTc5Njg2Y2M0NTAyYjIxN2YxNjQ0MGI3MmI2MiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84YzcwZGQ5Y2Y1OTA0MzkxODBjOGVlNjkzZmY1M2FlNCA9ICQoJzxkaXYgaWQ9Imh0bWxfOGM3MGRkOWNmNTkwNDM5MTgwYzhlZTY5M2ZmNTNhZTQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkZvcmRoYW08L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzU0ZWY1Nzk2ODZjYzQ1MDJiMjE3ZjE2NDQwYjcyYjYyLnNldENvbnRlbnQoaHRtbF84YzcwZGQ5Y2Y1OTA0MzkxODBjOGVlNjkzZmY1M2FlNCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9mYmQ0NWNiMTc2MGY0ZGZiYWZjNTAxN2VjMjQyOWM0MC5iaW5kUG9wdXAocG9wdXBfNTRlZjU3OTY4NmNjNDUwMmIyMTdmMTY0NDBiNzJiNjIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNjJmZTVmZmMxNjY2NDM5MTg0OWZlNTI3YzAyOTczZTIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC44NDI2OTYxNTc4NjA1MywtNzMuODg3MzU2MTc1MzIzMzhdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfN2Q0OWIwYzA0NGRjNDc0M2E3M2RkNTc4ZTUzMWQ0ZGIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOWM1ZTlmOWU5YmU0NDk2NDlkNzBhZjg5ZWEzN2VlYmEgPSAkKCc8ZGl2IGlkPSJodG1sXzljNWU5ZjllOWJlNDQ5NjQ5ZDcwYWY4OWVhMzdlZWJhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5FYXN0IFRyZW1vbnQ8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzdkNDliMGMwNDRkYzQ3NDNhNzNkZDU3OGU1MzFkNGRiLnNldENvbnRlbnQoaHRtbF85YzVlOWY5ZTliZTQ0OTY0OWQ3MGFmODllYTM3ZWViYSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl82MmZlNWZmYzE2NjY0MzkxODQ5ZmU1MjdjMDI5NzNlMi5iaW5kUG9wdXAocG9wdXBfN2Q0OWIwYzA0NGRjNDc0M2E3M2RkNTc4ZTUzMWQ0ZGIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYWQyMjU0MWU0NjNhNDYxZTg3NjcxODJhNzMxZTkwZGUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC44Mzk0NzUwNTY3MjY1MywtNzMuODc3NzQ0NzQ5MTA1NDVdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMzYxYmM0ODZhZDM4NDQzMTlkOWJhNmMyODYyNTdkZDMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNzNmZTA3ODQ5M2IzNGEyNWFiNzY5OWI0YjJjNGNmMmEgPSAkKCc8ZGl2IGlkPSJodG1sXzczZmUwNzg0OTNiMzRhMjVhYjc2OTliNGIyYzRjZjJhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5XZXN0IEZhcm1zPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8zNjFiYzQ4NmFkMzg0NDMxOWQ5YmE2YzI4NjI1N2RkMy5zZXRDb250ZW50KGh0bWxfNzNmZTA3ODQ5M2IzNGEyNWFiNzY5OWI0YjJjNGNmMmEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYWQyMjU0MWU0NjNhNDYxZTg3NjcxODJhNzMxZTkwZGUuYmluZFBvcHVwKHBvcHVwXzM2MWJjNDg2YWQzODQ0MzE5ZDliYTZjMjg2MjU3ZGQzKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzEwZWMzYTQxMmFjNjRmYjRhNDMyY2RhZTljM2IyZGIwID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuODM2NjIzMDEwNzA2MDU2LC03My45MjYxMDIwOTM1ODEzXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzIwNDNiYTVjYmZkYjQ1YTM5NWM2NjA1ZTZkZTExZTAxID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzMwMDJmOGU1NDllMzQxZDhiZDk1NzNlNWZkYjUwZDUwID0gJCgnPGRpdiBpZD0iaHRtbF8zMDAyZjhlNTQ5ZTM0MWQ4YmQ5NTczZTVmZGI1MGQ1MCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+SGlnaCAgQnJpZGdlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8yMDQzYmE1Y2JmZGI0NWEzOTVjNjYwNWU2ZGUxMWUwMS5zZXRDb250ZW50KGh0bWxfMzAwMmY4ZTU0OWUzNDFkOGJkOTU3M2U1ZmRiNTBkNTApOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMTBlYzNhNDEyYWM2NGZiNGE0MzJjZGFlOWMzYjJkYjAuYmluZFBvcHVwKHBvcHVwXzIwNDNiYTVjYmZkYjQ1YTM5NWM2NjA1ZTZkZTExZTAxKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzU2Nzk0YTRjYzNhZTRjMWQ4OTA5ZmNmYWI1ZGI1ZGZjID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuODE5NzU0MzcwNTk0OTM2LC03My45MDk0MjE2MDc1NzQzNl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8wYmMyOTc5ZDQ2ZDg0NjRjODhiNDRmMmQ3YmMyZjM0MiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9kYjE4ZDQ4MmJjMWY0YWNlODE0MjE3MTU4NWU5MDA1YyA9ICQoJzxkaXYgaWQ9Imh0bWxfZGIxOGQ0ODJiYzFmNGFjZTgxNDIxNzE1ODVlOTAwNWMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk1lbHJvc2U8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzBiYzI5NzlkNDZkODQ2NGM4OGI0NGYyZDdiYzJmMzQyLnNldENvbnRlbnQoaHRtbF9kYjE4ZDQ4MmJjMWY0YWNlODE0MjE3MTU4NWU5MDA1Yyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl81Njc5NGE0Y2MzYWU0YzFkODkwOWZjZmFiNWRiNWRmYy5iaW5kUG9wdXAocG9wdXBfMGJjMjk3OWQ0NmQ4NDY0Yzg4YjQ0ZjJkN2JjMmYzNDIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfN2UxMDBjMTQyMDljNDIxZDliYzk5OWQzNGQyZGFkYjQgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC44MDYyMzg3NDkzNTE3NywtNzMuOTE2MDk5ODc0ODc1NzVdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfY2NhNTcyYmQwNTg2NDliNjhhOTQ4MWNlY2FkMzIzZDggPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZGJiOTQyOThkMDNmNDAyZjk1ZmIwOGNlYzgwZTkyMmMgPSAkKCc8ZGl2IGlkPSJodG1sX2RiYjk0Mjk4ZDAzZjQwMmY5NWZiMDhjZWM4MGU5MjJjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Nb3R0IEhhdmVuPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jY2E1NzJiZDA1ODY0OWI2OGE5NDgxY2VjYWQzMjNkOC5zZXRDb250ZW50KGh0bWxfZGJiOTQyOThkMDNmNDAyZjk1ZmIwOGNlYzgwZTkyMmMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfN2UxMDBjMTQyMDljNDIxZDliYzk5OWQzNGQyZGFkYjQuYmluZFBvcHVwKHBvcHVwX2NjYTU3MmJkMDU4NjQ5YjY4YTk0ODFjZWNhZDMyM2Q4KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzdjMDRkMWFhOTA0MzQwZTc4MGRjYzFhMGM5ZTY1OTMwID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuODAxNjYzNjI3NzU2MjA2LC03My45MTMyMjEzOTM4NjEzNV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8zNjVmYTJhZWMwMGU0M2NlODMxZjNhMDE1ODU5NjA1YSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8zMzg4N2U1MzYzYTY0MmFmYTU1NjQ5Zjk2MmIxM2MwZSA9ICQoJzxkaXYgaWQ9Imh0bWxfMzM4ODdlNTM2M2E2NDJhZmE1NTY0OWY5NjJiMTNjMGUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlBvcnQgTW9ycmlzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8zNjVmYTJhZWMwMGU0M2NlODMxZjNhMDE1ODU5NjA1YS5zZXRDb250ZW50KGh0bWxfMzM4ODdlNTM2M2E2NDJhZmE1NTY0OWY5NjJiMTNjMGUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfN2MwNGQxYWE5MDQzNDBlNzgwZGNjMWEwYzllNjU5MzAuYmluZFBvcHVwKHBvcHVwXzM2NWZhMmFlYzAwZTQzY2U4MzFmM2EwMTU4NTk2MDVhKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2EyMmE3M2Y1ODk1MzQwYTU4YmFhZTI1MTJhYWE2YjI0ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuODE1MDk5MDQ1NDU4MjIsLTczLjg5NTc4ODIwMDk0NDZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYmIzMWI1NDA0YzBkNGFjNGE2YTU3NDk1MmY3NWU1NDAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNmU4ZjMyNTE2MThkNGEyZjg4Mzk1ZGIxNDU4ZWFkZmYgPSAkKCc8ZGl2IGlkPSJodG1sXzZlOGYzMjUxNjE4ZDRhMmY4ODM5NWRiMTQ1OGVhZGZmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Mb25nd29vZDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYmIzMWI1NDA0YzBkNGFjNGE2YTU3NDk1MmY3NWU1NDAuc2V0Q29udGVudChodG1sXzZlOGYzMjUxNjE4ZDRhMmY4ODM5NWRiMTQ1OGVhZGZmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2EyMmE3M2Y1ODk1MzQwYTU4YmFhZTI1MTJhYWE2YjI0LmJpbmRQb3B1cChwb3B1cF9iYjMxYjU0MDRjMGQ0YWM0YTZhNTc0OTUyZjc1ZTU0MCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl81YjAzMWMzYTU1MDc0MTE0YjM1MmFmZTZjZjZkOTVmNyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjgwOTcyOTg3OTM4NzA5LC03My44ODMzMTUwNTk1NTI5MV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kMzk2ZGFiNDIwNjQ0NDUxOTFkYWRkNzJmOTI1ODA4NiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9mYjllYWYzZTVmZjU0MjIwYjA4OGIxN2Q1NGU2ZDUxYyA9ICQoJzxkaXYgaWQ9Imh0bWxfZmI5ZWFmM2U1ZmY1NDIyMGIwODhiMTdkNTRlNmQ1MWMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkh1bnRzIFBvaW50PC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9kMzk2ZGFiNDIwNjQ0NDUxOTFkYWRkNzJmOTI1ODA4Ni5zZXRDb250ZW50KGh0bWxfZmI5ZWFmM2U1ZmY1NDIyMGIwODhiMTdkNTRlNmQ1MWMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNWIwMzFjM2E1NTA3NDExNGIzNTJhZmU2Y2Y2ZDk1ZjcuYmluZFBvcHVwKHBvcHVwX2QzOTZkYWI0MjA2NDQ0NTE5MWRhZGQ3MmY5MjU4MDg2KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzVjZGJlZjViODM3YzQ5MjRiZGQzYTdiOTE4MGQxYmM3ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuODIzNTkxOTg1ODU1MzQsLTczLjkwMTUwNjQ4OTQzMDU5XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2E1NDM4NGYwYTBkMDRiNmE5N2E5OTc5MzIwZWEzMjQ1ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2Q5NjA0ZWFiNjc1NzRlMzc4NzZlYmJiYjcxMmEyNTgzID0gJCgnPGRpdiBpZD0iaHRtbF9kOTYwNGVhYjY3NTc0ZTM3ODc2ZWJiYmI3MTJhMjU4MyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TW9ycmlzYW5pYTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYTU0Mzg0ZjBhMGQwNGI2YTk3YTk5NzkzMjBlYTMyNDUuc2V0Q29udGVudChodG1sX2Q5NjA0ZWFiNjc1NzRlMzc4NzZlYmJiYjcxMmEyNTgzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzVjZGJlZjViODM3YzQ5MjRiZGQzYTdiOTE4MGQxYmM3LmJpbmRQb3B1cChwb3B1cF9hNTQzODRmMGEwZDA0YjZhOTdhOTk3OTMyMGVhMzI0NSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl82ODQ2ZWJjOWRkN2U0OTQ0YjBiOGE5ZTA0OGVhYmRhOCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjgyMTAxMjE5NzkxNDAxNSwtNzMuODY1NzQ2MDk1NTQ5MjRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYmQ4ZTkxZDkyZDQ0NDQzZjhmZmQ2YjYzYjllZjgxOWMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNGUxMWFmZjk1NjA3NDFiYjgzM2M3ZDcyM2Q1NjYwMmYgPSAkKCc8ZGl2IGlkPSJodG1sXzRlMTFhZmY5NTYwNzQxYmI4MzNjN2Q3MjNkNTY2MDJmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Tb3VuZHZpZXc8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2JkOGU5MWQ5MmQ0NDQ0M2Y4ZmZkNmI2M2I5ZWY4MTljLnNldENvbnRlbnQoaHRtbF80ZTExYWZmOTU2MDc0MWJiODMzYzdkNzIzZDU2NjAyZik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl82ODQ2ZWJjOWRkN2U0OTQ0YjBiOGE5ZTA0OGVhYmRhOC5iaW5kUG9wdXAocG9wdXBfYmQ4ZTkxZDkyZDQ0NDQzZjhmZmQ2YjYzYjllZjgxOWMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZWI3NzQyZWQ0MzQyNDkxYmEzZjEyMWY2MDY4NmIwNTYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC44MDY1NTExMjAwMzU4OSwtNzMuODU0MTQ0MTYxODkyNjZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNDI1YTZkNGI1YzkzNGI0Yjk5NGY1ZDhiMzQ4M2FmZmIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfM2FmZmZkMzQ0YzE5NDNkYzllOTEwMGFhNTk3Y2VmY2IgPSAkKCc8ZGl2IGlkPSJodG1sXzNhZmZmZDM0NGMxOTQzZGM5ZTkxMDBhYTU5N2NlZmNiIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5DbGFzb24gUG9pbnQ8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzQyNWE2ZDRiNWM5MzRiNGI5OTRmNWQ4YjM0ODNhZmZiLnNldENvbnRlbnQoaHRtbF8zYWZmZmQzNDRjMTk0M2RjOWU5MTAwYWE1OTdjZWZjYik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9lYjc3NDJlZDQzNDI0OTFiYTNmMTIxZjYwNjg2YjA1Ni5iaW5kUG9wdXAocG9wdXBfNDI1YTZkNGI1YzkzNGI0Yjk5NGY1ZDhiMzQ4M2FmZmIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMTI3ZmFkODEzYTE3NDBhMzkzNDk5YWU3MjVhMDRkOTcgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC44MTUxMDkyNTgwNDAwNSwtNzMuODE2MzUwMDIxNTg0NDFdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZTUwMjM1NmY3NWEwNGUzNmIxNTNiMDVjZDk5NmM4MDEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYzFlZjRjZTFhYTBiNDZhOThjZDg4ZGExMzYxNDE2ZjUgPSAkKCc8ZGl2IGlkPSJodG1sX2MxZWY0Y2UxYWEwYjQ2YTk4Y2Q4OGRhMTM2MTQxNmY1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5UaHJvZ3MgTmVjazwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZTUwMjM1NmY3NWEwNGUzNmIxNTNiMDVjZDk5NmM4MDEuc2V0Q29udGVudChodG1sX2MxZWY0Y2UxYWEwYjQ2YTk4Y2Q4OGRhMTM2MTQxNmY1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzEyN2ZhZDgxM2ExNzQwYTM5MzQ5OWFlNzI1YTA0ZDk3LmJpbmRQb3B1cChwb3B1cF9lNTAyMzU2Zjc1YTA0ZTM2YjE1M2IwNWNkOTk2YzgwMSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl85YTI3YTg5MTE3MTc0ODU4YjQ4YTVhNWU1YWVhOThkZCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg0NDI0NTkzNjk0NzM3NCwtNzMuODI0MDk5MjY3NTM4NV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9lMTAxMTAzYzU4NzY0YTZhOTEyZjNiZjAzNzQ3NjY2YiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF83MDZkMzk5ODFiZTQ0YmRhYjAyOGVlNDM5MjViYWE5NCA9ICQoJzxkaXYgaWQ9Imh0bWxfNzA2ZDM5OTgxYmU0NGJkYWIwMjhlZTQzOTI1YmFhOTQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNvdW50cnkgQ2x1YjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZTEwMTEwM2M1ODc2NGE2YTkxMmYzYmYwMzc0NzY2NmIuc2V0Q29udGVudChodG1sXzcwNmQzOTk4MWJlNDRiZGFiMDI4ZWU0MzkyNWJhYTk0KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzlhMjdhODkxMTcxNzQ4NThiNDhhNWE1ZTVhZWE5OGRkLmJpbmRQb3B1cChwb3B1cF9lMTAxMTAzYzU4NzY0YTZhOTEyZjNiZjAzNzQ3NjY2Yik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl85M2Q5MmM2M2JhNDE0NjFiOWI4YThhNmU0ZjM0NzcyNCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjgzNzkzNzgyMjI2NzI4NiwtNzMuODU2MDAzMTA1MzU3ODNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMGMzZDA2YzMzOGVkNGIzNDhhZjIzNGRjZmIzODQ3NTkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOWNjNDAyYmY3MTI4NGQ1YWIxYmNjYWM2ODAxYzkyN2MgPSAkKCc8ZGl2IGlkPSJodG1sXzljYzQwMmJmNzEyODRkNWFiMWJjY2FjNjgwMWM5MjdjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5QYXJrY2hlc3RlcjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMGMzZDA2YzMzOGVkNGIzNDhhZjIzNGRjZmIzODQ3NTkuc2V0Q29udGVudChodG1sXzljYzQwMmJmNzEyODRkNWFiMWJjY2FjNjgwMWM5MjdjKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzkzZDkyYzYzYmE0MTQ2MWI5YjhhOGE2ZTRmMzQ3NzI0LmJpbmRQb3B1cChwb3B1cF8wYzNkMDZjMzM4ZWQ0YjM0OGFmMjM0ZGNmYjM4NDc1OSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl82ZWRiYTE5ZmZkZWE0ZjE0OTJiY2ZhYmU5MWRlYTE4ZSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg0MDYxOTQ5NjQzMjcsLTczLjg0MjE5NDA3NjA0NDQ0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzQ2NjZlYjhkYzc0NjRmNTJhZjZjMjY0NmYzNWUyM2I3ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzhkMTU5YjkxMmM5MjQ5NzViMjA2ZGZjYmRiM2JlZmJmID0gJCgnPGRpdiBpZD0iaHRtbF84ZDE1OWI5MTJjOTI0OTc1YjIwNmRmY2JkYjNiZWZiZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+V2VzdGNoZXN0ZXIgU3F1YXJlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80NjY2ZWI4ZGM3NDY0ZjUyYWY2YzI2NDZmMzVlMjNiNy5zZXRDb250ZW50KGh0bWxfOGQxNTliOTEyYzkyNDk3NWIyMDZkZmNiZGIzYmVmYmYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNmVkYmExOWZmZGVhNGYxNDkyYmNmYWJlOTFkZWExOGUuYmluZFBvcHVwKHBvcHVwXzQ2NjZlYjhkYzc0NjRmNTJhZjZjMjY0NmYzNWUyM2I3KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzU2MTA1ZDEzMmRlNzQ5NzJiMjZhYzg0Y2RhMzU4MWY2ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuODQzNjA4NDcxMjQ3MTgsLTczLjg2NjI5OTE4MDc1NjFdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNjYwNzE3MzNjNjdiNDg4YzhlOTBiNzE3MzdlMjcwZmMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMmQwZjNmYWMxZjk2NDliZmE1MTc3ZWE5YzlkZTkyYWMgPSAkKCc8ZGl2IGlkPSJodG1sXzJkMGYzZmFjMWY5NjQ5YmZhNTE3N2VhOWM5ZGU5MmFjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5WYW4gTmVzdDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNjYwNzE3MzNjNjdiNDg4YzhlOTBiNzE3MzdlMjcwZmMuc2V0Q29udGVudChodG1sXzJkMGYzZmFjMWY5NjQ5YmZhNTE3N2VhOWM5ZGU5MmFjKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzU2MTA1ZDEzMmRlNzQ5NzJiMjZhYzg0Y2RhMzU4MWY2LmJpbmRQb3B1cChwb3B1cF82NjA3MTczM2M2N2I0ODhjOGU5MGI3MTczN2UyNzBmYyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9hNTEyMjQzN2Y3NmI0M2IyYWU5OTczYjQ4Yzk0MTA3ZiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg0NzU0OTA2MzUzNjMzNCwtNzMuODUwNDAxNzgwMzA0MjFdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfM2JiZDE1NmJmMzE4NDdlY2I5NzIxOTNmNDQ0ZDk1ODIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfN2VmNjE4MzA5MjQyNGY3YmJkM2MyZDgwMmZmNTU2ZjIgPSAkKCc8ZGl2IGlkPSJodG1sXzdlZjYxODMwOTI0MjRmN2JiZDNjMmQ4MDJmZjU1NmYyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Nb3JyaXMgUGFyazwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfM2JiZDE1NmJmMzE4NDdlY2I5NzIxOTNmNDQ0ZDk1ODIuc2V0Q29udGVudChodG1sXzdlZjYxODMwOTI0MjRmN2JiZDNjMmQ4MDJmZjU1NmYyKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2E1MTIyNDM3Zjc2YjQzYjJhZTk5NzNiNDhjOTQxMDdmLmJpbmRQb3B1cChwb3B1cF8zYmJkMTU2YmYzMTg0N2VjYjk3MjE5M2Y0NDRkOTU4Mik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9hYzM2MWYxMjY4Y2E0YzdlYTE4MTA2NmJlYWMxMWJmNSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg1NzI3NzEwMDczODk1LC03My44ODg0NTE5NjEzNDgwNF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8xNTFiM2FlNTA1NDU0NTMwOGUyMWQwNGI4ZDZjNzNiNiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF83MDRhMzFlNzY5ZTE0MWE5Yjg2Yzg3ZWJlZDdiNDYwMiA9ICQoJzxkaXYgaWQ9Imh0bWxfNzA0YTMxZTc2OWUxNDFhOWI4NmM4N2ViZWQ3YjQ2MDIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJlbG1vbnQ8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzE1MWIzYWU1MDU0NTQ1MzA4ZTIxZDA0YjhkNmM3M2I2LnNldENvbnRlbnQoaHRtbF83MDRhMzFlNzY5ZTE0MWE5Yjg2Yzg3ZWJlZDdiNDYwMik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9hYzM2MWYxMjY4Y2E0YzdlYTE4MTA2NmJlYWMxMWJmNS5iaW5kUG9wdXAocG9wdXBfMTUxYjNhZTUwNTQ1NDUzMDhlMjFkMDRiOGQ2YzczYjYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfODZkMmQ1NmRiNWM2NGY5N2EzMDYyNGYyMmFjZjM1YjYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC44ODEzOTQ5NzcyNzA4NiwtNzMuOTE3MTkwNDgyMTAzOTNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNTM0MzMwOTJlZmRlNDNkMzg1YjE5NWIwYmNhOTg2MjEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOWRmODFmOGQ2MzFiNDE5OTg3MWJiNzkwYzY4ZmYyMzUgPSAkKCc8ZGl2IGlkPSJodG1sXzlkZjgxZjhkNjMxYjQxOTk4NzFiYjc5MGM2OGZmMjM1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5TcHV5dGVuIER1eXZpbDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNTM0MzMwOTJlZmRlNDNkMzg1YjE5NWIwYmNhOTg2MjEuc2V0Q29udGVudChodG1sXzlkZjgxZjhkNjMxYjQxOTk4NzFiYjc5MGM2OGZmMjM1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzg2ZDJkNTZkYjVjNjRmOTdhMzA2MjRmMjJhY2YzNWI2LmJpbmRQb3B1cChwb3B1cF81MzQzMzA5MmVmZGU0M2QzODViMTk1YjBiY2E5ODYyMSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8xNDViYmM0NTZiMWE0ZGE4YjNjNzk1MjZhMDFlMWM3ZCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjkwODU0MjgyOTUwNjY2LC03My45MDQ1MzA1NDkwODkyN10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kNWI0MjQ4OWE0OGQ0YjZlOWI5NjRhMDgwZTg4MTg5OCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8wYWY0NWVlZmU4Y2I0YzAzOTcwNzU3ZGYwMTgxZDdiNSA9ICQoJzxkaXYgaWQ9Imh0bWxfMGFmNDVlZWZlOGNiNGMwMzk3MDc1N2RmMDE4MWQ3YjUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk5vcnRoIFJpdmVyZGFsZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZDViNDI0ODlhNDhkNGI2ZTliOTY0YTA4MGU4ODE4OTguc2V0Q29udGVudChodG1sXzBhZjQ1ZWVmZThjYjRjMDM5NzA3NTdkZjAxODFkN2I1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzE0NWJiYzQ1NmIxYTRkYThiM2M3OTUyNmEwMWUxYzdkLmJpbmRQb3B1cChwb3B1cF9kNWI0MjQ4OWE0OGQ0YjZlOWI5NjRhMDgwZTg4MTg5OCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl81OGUwNzA4ODk0ODg0YmE5OGI2NzViZmZiMjExM2MwZiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg1MDY0MTQwOTQwMzM1LC03My44MzIwNzM3ODI0MDQ3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzJiODY0ZmFiYzU4NDQ5YWVhOGVlMDUyNjg0ZWUzMjFmID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzhiNDU5MmExOTBmYjQ0Mjk4NzJlNDdlZmVkZTg1ZGIwID0gJCgnPGRpdiBpZD0iaHRtbF84YjQ1OTJhMTkwZmI0NDI5ODcyZTQ3ZWZlZGU4NWRiMCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+UGVsaGFtIEJheTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMmI4NjRmYWJjNTg0NDlhZWE4ZWUwNTI2ODRlZTMyMWYuc2V0Q29udGVudChodG1sXzhiNDU5MmExOTBmYjQ0Mjk4NzJlNDdlZmVkZTg1ZGIwKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzU4ZTA3MDg4OTQ4ODRiYTk4YjY3NWJmZmIyMTEzYzBmLmJpbmRQb3B1cChwb3B1cF8yYjg2NGZhYmM1ODQ0OWFlYThlZTA1MjY4NGVlMzIxZik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9iY2EwZDg4MWUxMTY0YTAyODE3YmQ5NDdmZDU4ODFiYSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjgyNjU3OTUxNjg2OTIyLC03My44MjYyMDI3NTk5NDA3M10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85MmYxYTFlNjM4YjM0MmJhYTlhNDhkNzA5NTVjYWQ2MCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8wNjcwZGRmM2YzMjI0ZjljYjI2ODQ5YWNiM2M1ODhkNCA9ICQoJzxkaXYgaWQ9Imh0bWxfMDY3MGRkZjNmMzIyNGY5Y2IyNjg0OWFjYjNjNTg4ZDQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlNjaHV5bGVydmlsbGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzkyZjFhMWU2MzhiMzQyYmFhOWE0OGQ3MDk1NWNhZDYwLnNldENvbnRlbnQoaHRtbF8wNjcwZGRmM2YzMjI0ZjljYjI2ODQ5YWNiM2M1ODhkNCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9iY2EwZDg4MWUxMTY0YTAyODE3YmQ5NDdmZDU4ODFiYS5iaW5kUG9wdXAocG9wdXBfOTJmMWExZTYzOGIzNDJiYWE5YTQ4ZDcwOTU1Y2FkNjApOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZDU5ZWFkMzk3NDQzNGE4YWEzYjE4OTUxNDY3OWY4OWYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC44MjE5ODYxMTgxNjM0OTQsLTczLjgxMzg4NTE0NDI4NjE5XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzBjZDM3NjFhZjExZDRhYzk4MWY0MzVlZGNhNTk5ZGEwID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2U5YTViNzgyNTY3MTRjMWM5MzhiMTM5OGYwMzFiODBjID0gJCgnPGRpdiBpZD0iaHRtbF9lOWE1Yjc4MjU2NzE0YzFjOTM4YjEzOThmMDMxYjgwYyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+RWRnZXdhdGVyIFBhcms8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzBjZDM3NjFhZjExZDRhYzk4MWY0MzVlZGNhNTk5ZGEwLnNldENvbnRlbnQoaHRtbF9lOWE1Yjc4MjU2NzE0YzFjOTM4YjEzOThmMDMxYjgwYyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9kNTllYWQzOTc0NDM0YThhYTNiMTg5NTE0Njc5Zjg5Zi5iaW5kUG9wdXAocG9wdXBfMGNkMzc2MWFmMTFkNGFjOTgxZjQzNWVkY2E1OTlkYTApOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZWIyNjI2Nzc1ODk5NDFhMWFhYzk2NTE3ZjA2NjA0NmIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC44MTkwMTQzNzY5ODgzMTQsLTczLjg0ODAyNzI5NTgyNzM1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2MyMTcyY2I2YmY0ZDQ2MDA5NjA5ZDcxNDMxN2I0YTBkID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzE2ZTZmNTk2ZGE2NDQ4YjdhNjBhNGEwZWIzYmNkYWExID0gJCgnPGRpdiBpZD0iaHRtbF8xNmU2ZjU5NmRhNjQ0OGI3YTYwYTRhMGViM2JjZGFhMSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Q2FzdGxlIEhpbGw8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2MyMTcyY2I2YmY0ZDQ2MDA5NjA5ZDcxNDMxN2I0YTBkLnNldENvbnRlbnQoaHRtbF8xNmU2ZjU5NmRhNjQ0OGI3YTYwYTRhMGViM2JjZGFhMSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9lYjI2MjY3NzU4OTk0MWExYWFjOTY1MTdmMDY2MDQ2Yi5iaW5kUG9wdXAocG9wdXBfYzIxNzJjYjZiZjRkNDYwMDk2MDlkNzE0MzE3YjRhMGQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZDYyOWMxOTQ2ODIwNDQ4ZDhlZTRkNGNmOGUwM2U3YTEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC44NzEzNzA3ODE5MjM3MSwtNzMuODYzMzIzNjE2NTI3NzddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNzg4N2FlOWQxODU3NDc1ZGE1Y2Q0NGVlNTUxNWVjMGQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYzlhMDBiNjA0MDhjNDY3YmFiMWU1MzI1NzIwZDM0YTAgPSAkKCc8ZGl2IGlkPSJodG1sX2M5YTAwYjYwNDA4YzQ2N2JhYjFlNTMyNTcyMGQzNGEwIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5PbGludmlsbGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzc4ODdhZTlkMTg1NzQ3NWRhNWNkNDRlZTU1MTVlYzBkLnNldENvbnRlbnQoaHRtbF9jOWEwMGI2MDQwOGM0NjdiYWIxZTUzMjU3MjBkMzRhMCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9kNjI5YzE5NDY4MjA0NDhkOGVlNGQ0Y2Y4ZTAzZTdhMS5iaW5kUG9wdXAocG9wdXBfNzg4N2FlOWQxODU3NDc1ZGE1Y2Q0NGVlNTUxNWVjMGQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNDYwNmJjNzRmZDZjNGU1YjkzN2NlMGNlNTVkMGJjZDAgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC44NjI5NjU2MjQ3Nzk5OCwtNzMuODQxNjExOTQ4MzEyMjNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNzhmZDBlYjczYWIyNDVmYWFkNGI1MTFhOTViNzRkYTMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfN2VlNDFhMTIxMTExNDYyOWJlMjA1NWMzMjI2NzBlOGMgPSAkKCc8ZGl2IGlkPSJodG1sXzdlZTQxYTEyMTExMTQ2MjliZTIwNTVjMzIyNjcwZThjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5QZWxoYW0gR2FyZGVuczwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNzhmZDBlYjczYWIyNDVmYWFkNGI1MTFhOTViNzRkYTMuc2V0Q29udGVudChodG1sXzdlZTQxYTEyMTExMTQ2MjliZTIwNTVjMzIyNjcwZThjKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzQ2MDZiYzc0ZmQ2YzRlNWI5MzdjZTBjZTU1ZDBiY2QwLmJpbmRQb3B1cChwb3B1cF83OGZkMGViNzNhYjI0NWZhYWQ0YjUxMWE5NWI3NGRhMyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8wMWI0MzAxZTYzZTM0NzRlYjkzZmMwMDJlZTRkOWYyZiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjgzNDI4MzgwNzMzODUxLC03My45MTU1ODk0MTc3MzQ0NF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9iY2VhNmIyMDRiYTM0ZTU2YjU0ODk3YzRlNjdlOGY0MiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9lYmE1YjA4MTUxYWE0NmQ3YWZmNDZjNGEwMGEyOTk0MCA9ICQoJzxkaXYgaWQ9Imh0bWxfZWJhNWIwODE1MWFhNDZkN2FmZjQ2YzRhMDBhMjk5NDAiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNvbmNvdXJzZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYmNlYTZiMjA0YmEzNGU1NmI1NDg5N2M0ZTY3ZThmNDIuc2V0Q29udGVudChodG1sX2ViYTViMDgxNTFhYTQ2ZDdhZmY0NmM0YTAwYTI5OTQwKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzAxYjQzMDFlNjNlMzQ3NGViOTNmYzAwMmVlNGQ5ZjJmLmJpbmRQb3B1cChwb3B1cF9iY2VhNmIyMDRiYTM0ZTU2YjU0ODk3YzRlNjdlOGY0Mik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8wN2VkYTAyOWFkYTQ0Njg4YmJkMzc1ZDk1OWE1ZGJkMSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjgyOTc3NDI5Nzg3MTYxLC03My44NTA1MzUyNDQ1MTkzNV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84OTYxOWE5ZTc4ZGI0Mzg4YTM0ODZhMzFhNDQwYzIyNCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9jNzNmNWYyZTlmOGY0ODVmYmFmYzJiYjY4ZWIwNjIzZSA9ICQoJzxkaXYgaWQ9Imh0bWxfYzczZjVmMmU5ZjhmNDg1ZmJhZmMyYmI2OGViMDYyM2UiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlVuaW9ucG9ydDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfODk2MTlhOWU3OGRiNDM4OGEzNDg2YTMxYTQ0MGMyMjQuc2V0Q29udGVudChodG1sX2M3M2Y1ZjJlOWY4ZjQ4NWZiYWZjMmJiNjhlYjA2MjNlKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzA3ZWRhMDI5YWRhNDQ2ODhiYmQzNzVkOTU5YTVkYmQxLmJpbmRQb3B1cChwb3B1cF84OTYxOWE5ZTc4ZGI0Mzg4YTM0ODZhMzFhNDQwYzIyNCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9mMTM4OWFkNTliNjI0MGExYTcyYjA3MTU0MGMyMjM1MSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg4NDU2MTMwMzAzNzMyLC03My44NDgwODI3MTg3NzE2OF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9iZGU2ODE0OWIwNjQ0OTczOTQ3OTU5ZjBmNjBhOTMxYyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8wZGIzNTg4MzRhMTY0NWNmYWMwNDE5NTJkZTM4ZmY5ZiA9ICQoJzxkaXYgaWQ9Imh0bWxfMGRiMzU4ODM0YTE2NDVjZmFjMDQxOTUyZGUzOGZmOWYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkVkZW53YWxkPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iZGU2ODE0OWIwNjQ0OTczOTQ3OTU5ZjBmNjBhOTMxYy5zZXRDb250ZW50KGh0bWxfMGRiMzU4ODM0YTE2NDVjZmFjMDQxOTUyZGUzOGZmOWYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZjEzODlhZDU5YjYyNDBhMWE3MmIwNzE1NDBjMjIzNTEuYmluZFBvcHVwKHBvcHVwX2JkZTY4MTQ5YjA2NDQ5NzM5NDc5NTlmMGY2MGE5MzFjKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzU2OTk5Nzc4MDdkMzQ4NDA4YmQ0Y2ZhYjdiNjU4ZWQyID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjI1ODAxMDY1MDEwNjU2LC03NC4wMzA2MjA2OTM1MzgxM10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84ZjA2ZmU2YmU5ODc0YTg0YmM4MTI5MWE2MTRmMzk3NyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8zMmYzYTcwNzFhNDQ0ZjRjYmE4Y2JlMzY3Yjk1ZmIyMiA9ICQoJzxkaXYgaWQ9Imh0bWxfMzJmM2E3MDcxYTQ0NGY0Y2JhOGNiZTM2N2I5NWZiMjIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJheSBSaWRnZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOGYwNmZlNmJlOTg3NGE4NGJjODEyOTFhNjE0ZjM5Nzcuc2V0Q29udGVudChodG1sXzMyZjNhNzA3MWE0NDRmNGNiYThjYmUzNjdiOTVmYjIyKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzU2OTk5Nzc4MDdkMzQ4NDA4YmQ0Y2ZhYjdiNjU4ZWQyLmJpbmRQb3B1cChwb3B1cF84ZjA2ZmU2YmU5ODc0YTg0YmM4MTI5MWE2MTRmMzk3Nyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8xNWI3NmY2M2RiOGU0ZjQ4YTc3YWQzN2QyMDM3Nzc2MCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjYxMTAwODkwMjAyMDQ0LC03My45OTUxNzk5ODM4MDcyOV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kNjNjMzE4MWMzMzQ0ODgxOWE3ODg4YjgwZjE2NmIxNCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9hYzljNjhlMTEwNjA0MmIyYjI3ZmI1N2M1MzAzY2QzZCA9ICQoJzxkaXYgaWQ9Imh0bWxfYWM5YzY4ZTExMDYwNDJiMmIyN2ZiNTdjNTMwM2NkM2QiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJlbnNvbmh1cnN0PC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9kNjNjMzE4MWMzMzQ0ODgxOWE3ODg4YjgwZjE2NmIxNC5zZXRDb250ZW50KGh0bWxfYWM5YzY4ZTExMDYwNDJiMmIyN2ZiNTdjNTMwM2NkM2QpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMTViNzZmNjNkYjhlNGY0OGE3N2FkMzdkMjAzNzc3NjAuYmluZFBvcHVwKHBvcHVwX2Q2M2MzMTgxYzMzNDQ4ODE5YTc4ODhiODBmMTY2YjE0KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzg2YmM4ZmFmODZlNTQwODNiYjMyZWY3ZWJlYzNlMzg1ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjQ1MTAyOTQ5MjU0MjksLTc0LjAxMDMxNjE4NTI3Nzg0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzllMDZkZGY0ZDA1OTQ2NzM5OGY0NzM1N2U5ZDRjMDMxID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2Y1M2RhMDhjNTNmYjRkMDQ5MTU4NmQyZDM5NzU5NGNmID0gJCgnPGRpdiBpZD0iaHRtbF9mNTNkYTA4YzUzZmI0ZDA0OTE1ODZkMmQzOTc1OTRjZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+U3Vuc2V0IFBhcms8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzllMDZkZGY0ZDA1OTQ2NzM5OGY0NzM1N2U5ZDRjMDMxLnNldENvbnRlbnQoaHRtbF9mNTNkYTA4YzUzZmI0ZDA0OTE1ODZkMmQzOTc1OTRjZik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl84NmJjOGZhZjg2ZTU0MDgzYmIzMmVmN2ViZWMzZTM4NS5iaW5kUG9wdXAocG9wdXBfOWUwNmRkZjRkMDU5NDY3Mzk4ZjQ3MzU3ZTlkNGMwMzEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZTU2ODM2NWZkNjMyNDBlNGE0Y2JkMzMwZWNjODlkZTAgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MzAyMDA5ODQ4NjQ3LC03My45NTQyNDA5MzEyNzM5M10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kZDZjZGZlN2RmNWE0YWIyOTE0NTBjMGNmMDQzMTQ2MyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9hOWExYzdhMGZlNGI0NmJjYjExOGZmOTM5MzQ1MGZjMCA9ICQoJzxkaXYgaWQ9Imh0bWxfYTlhMWM3YTBmZTRiNDZiY2IxMThmZjkzOTM0NTBmYzAiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkdyZWVucG9pbnQ8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2RkNmNkZmU3ZGY1YTRhYjI5MTQ1MGMwY2YwNDMxNDYzLnNldENvbnRlbnQoaHRtbF9hOWExYzdhMGZlNGI0NmJjYjExOGZmOTM5MzQ1MGZjMCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9lNTY4MzY1ZmQ2MzI0MGU0YTRjYmQzMzBlY2M4OWRlMC5iaW5kUG9wdXAocG9wdXBfZGQ2Y2RmZTdkZjVhNGFiMjkxNDUwYzBjZjA0MzE0NjMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMzhkYjNkNDgwMmMyNGQwNTgyYTE5OGI3N2U4ZThmMjYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41OTUyNjAwMTMwNjU5MywtNzMuOTczNDcwODc3MDg0NDVdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNjMxMzNjNGVlZGIzNGRmYWFhZDZmZDFkNjllNDA4ZDEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYWFlODgzMmU5ZDRiNDVkMzhjNjJlY2YxNzQwZDIxYjQgPSAkKCc8ZGl2IGlkPSJodG1sX2FhZTg4MzJlOWQ0YjQ1ZDM4YzYyZWNmMTc0MGQyMWI0IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5HcmF2ZXNlbmQ8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzYzMTMzYzRlZWRiMzRkZmFhYWQ2ZmQxZDY5ZTQwOGQxLnNldENvbnRlbnQoaHRtbF9hYWU4ODMyZTlkNGI0NWQzOGM2MmVjZjE3NDBkMjFiNCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8zOGRiM2Q0ODAyYzI0ZDA1ODJhMTk4Yjc3ZThlOGYyNi5iaW5kUG9wdXAocG9wdXBfNjMxMzNjNGVlZGIzNGRmYWFhZDZmZDFkNjllNDA4ZDEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfM2IyZTg4OGNiMzE2NDg4ZjllM2E2YjJmYWE4YzBiYjEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41NzY4MjUwNjU2NjYwNCwtNzMuOTY1MDk0NDg3ODUzMzZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNTNhM2FjMzZhMWNlNDIwMjg1ZDUxNzhhMTg4OGNhZGQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfODE4ZWYxNzgwMWNhNDUxMjhhZWFjNWI4YjE1MGEyZDAgPSAkKCc8ZGl2IGlkPSJodG1sXzgxOGVmMTc4MDFjYTQ1MTI4YWVhYzViOGIxNTBhMmQwIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5CcmlnaHRvbiBCZWFjaDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNTNhM2FjMzZhMWNlNDIwMjg1ZDUxNzhhMTg4OGNhZGQuc2V0Q29udGVudChodG1sXzgxOGVmMTc4MDFjYTQ1MTI4YWVhYzViOGIxNTBhMmQwKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzNiMmU4ODhjYjMxNjQ4OGY5ZTNhNmIyZmFhOGMwYmIxLmJpbmRQb3B1cChwb3B1cF81M2EzYWMzNmExY2U0MjAyODVkNTE3OGExODg4Y2FkZCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl85OWJhNzc3ODJmYWM0NDUwOGM3NDM3YTM2YzkzY2UzNCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU4Njg5MDEyNjc4Mzg0LC03My45NDMxODY0MDQ4Mjk3OV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jMzljMGU4ZDNmYjg0NjNlYTZlMTY1YTUyYmEyOTUyOCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8zNTZjMzg5ZDgzN2E0NGQ0OWU3MzA5ZmMzOTMwYmQ0MiA9ICQoJzxkaXYgaWQ9Imh0bWxfMzU2YzM4OWQ4MzdhNDRkNDllNzMwOWZjMzkzMGJkNDIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlNoZWVwc2hlYWQgQmF5PC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jMzljMGU4ZDNmYjg0NjNlYTZlMTY1YTUyYmEyOTUyOC5zZXRDb250ZW50KGh0bWxfMzU2YzM4OWQ4MzdhNDRkNDllNzMwOWZjMzkzMGJkNDIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfOTliYTc3NzgyZmFjNDQ1MDhjNzQzN2EzNmM5M2NlMzQuYmluZFBvcHVwKHBvcHVwX2MzOWMwZThkM2ZiODQ2M2VhNmUxNjVhNTJiYTI5NTI4KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzFjNGQ5ZTRlNTkxMDQ5YzFhOTUzNzc0Yzc2ZDU4OTZlID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjE0NDMyNTEzMzUwOTgsLTczLjk1NzQzODQwNTU5OTM5XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzlkOGYwNjNmMWU1NDRmMzE4NGJhOTNhMmNiMDQzZTU3ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2MxNTk0ZjcyMGUwZTRiOThiMTUxMjRmZWQ5ZGYxN2ZjID0gJCgnPGRpdiBpZD0iaHRtbF9jMTU5NGY3MjBlMGU0Yjk4YjE1MTI0ZmVkOWRmMTdmYyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TWFuaGF0dGFuIFRlcnJhY2U8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzlkOGYwNjNmMWU1NDRmMzE4NGJhOTNhMmNiMDQzZTU3LnNldENvbnRlbnQoaHRtbF9jMTU5NGY3MjBlMGU0Yjk4YjE1MTI0ZmVkOWRmMTdmYyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8xYzRkOWU0ZTU5MTA0OWMxYTk1Mzc3NGM3NmQ1ODk2ZS5iaW5kUG9wdXAocG9wdXBfOWQ4ZjA2M2YxZTU0NGYzMTg0YmE5M2EyY2IwNDNlNTcpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfOWE5Mjc4YTgxMGUxNGEzNzgyNjk0ZTI2MGYxNmIyNjYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MzYzMjU4OTAyNjY3NywtNzMuOTU4NDAxMDY1MzM5MDNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYzM1NjNhNTZjYjBlNGE4MThhYjgyZjkwN2QyODc0YjUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMTUyZmRkMzU3ZTI1NDY5MWE2NjdlZjk5OTIxMTgzZmQgPSAkKCc8ZGl2IGlkPSJodG1sXzE1MmZkZDM1N2UyNTQ2OTFhNjY3ZWY5OTkyMTE4M2ZkIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5GbGF0YnVzaDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYzM1NjNhNTZjYjBlNGE4MThhYjgyZjkwN2QyODc0YjUuc2V0Q29udGVudChodG1sXzE1MmZkZDM1N2UyNTQ2OTFhNjY3ZWY5OTkyMTE4M2ZkKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzlhOTI3OGE4MTBlMTRhMzc4MjY5NGUyNjBmMTZiMjY2LmJpbmRQb3B1cChwb3B1cF9jMzU2M2E1NmNiMGU0YTgxOGFiODJmOTA3ZDI4NzRiNSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9iMTYzNTNhNmUyMGY0YmNjOTU2ODM5MmU4MzlmNzFlZSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY3MDgyOTE3Njk1Mjk0LC03My45NDMyOTExOTA3MzU4Ml0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8zMTBiMWZiMTM2ODM0ZTFmYWQ1OGI1M2U1MGIyY2IzZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85NTc5MmMyYTRiZjQ0OWIyYmQ4MTQzNzZhMWE2YmQ2MSA9ICQoJzxkaXYgaWQ9Imh0bWxfOTU3OTJjMmE0YmY0NDliMmJkODE0Mzc2YTFhNmJkNjEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNyb3duIEhlaWdodHM8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzMxMGIxZmIxMzY4MzRlMWZhZDU4YjUzZTUwYjJjYjNmLnNldENvbnRlbnQoaHRtbF85NTc5MmMyYTRiZjQ0OWIyYmQ4MTQzNzZhMWE2YmQ2MSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9iMTYzNTNhNmUyMGY0YmNjOTU2ODM5MmU4MzlmNzFlZS5iaW5kUG9wdXAocG9wdXBfMzEwYjFmYjEzNjgzNGUxZmFkNThiNTNlNTBiMmNiM2YpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZjMxYzBhMTQwMTY1NDU5NGFhNDQ0ODE5YTc1NzY4ZDEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42NDE3MTc3NjY2ODk2MSwtNzMuOTM2MTAyNTYxODU4MzZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNjNiMTVmNGQ1NDFlNDJiZjhhMTFhMTdjMmI5YTFjMjAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNjRjYjE1NTIzMjU4NGYzZmI1ODgzMGY5ODY4MzI4NDcgPSAkKCc8ZGl2IGlkPSJodG1sXzY0Y2IxNTUyMzI1ODRmM2ZiNTg4MzBmOTg2ODMyODQ3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5FYXN0IEZsYXRidXNoPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82M2IxNWY0ZDU0MWU0MmJmOGExMWExN2MyYjlhMWMyMC5zZXRDb250ZW50KGh0bWxfNjRjYjE1NTIzMjU4NGYzZmI1ODgzMGY5ODY4MzI4NDcpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZjMxYzBhMTQwMTY1NDU5NGFhNDQ0ODE5YTc1NzY4ZDEuYmluZFBvcHVwKHBvcHVwXzYzYjE1ZjRkNTQxZTQyYmY4YTExYTE3YzJiOWExYzIwKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2JiY2JhODE4OTRkMzQ4ZjQ5MzYxYTJhNzFlNDAzM2Y1ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjQyMzgxOTU4MDAzNTI2LC03My45ODA0MjExMDU1OTQ3NF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8zMTcyMTI0YTk0YjI0NGNkYjA3OGQ3NTA5NDI3NmVkOCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9jYzUwYTdlNDUyNjE0NGQwODNhM2JiMWY4MzM4ODVhOCA9ICQoJzxkaXYgaWQ9Imh0bWxfY2M1MGE3ZTQ1MjYxNDRkMDgzYTNiYjFmODMzODg1YTgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPktlbnNpbmd0b248L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzMxNzIxMjRhOTRiMjQ0Y2RiMDc4ZDc1MDk0Mjc2ZWQ4LnNldENvbnRlbnQoaHRtbF9jYzUwYTdlNDUyNjE0NGQwODNhM2JiMWY4MzM4ODVhOCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9iYmNiYTgxODk0ZDM0OGY0OTM2MWEyYTcxZTQwMzNmNS5iaW5kUG9wdXAocG9wdXBfMzE3MjEyNGE5NGIyNDRjZGIwNzhkNzUwOTQyNzZlZDgpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNGEwZGI4YjBhOWVjNDU3YWIxNWRkMjk5MmQ4NWY5ZWMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42NTY5NDU4MzU3NTEwNCwtNzMuOTgwMDczNDA0MzAxNzJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMTVmMjViMWFlNmI4NDFlZjk1ODJiM2MwYjMxMDA2OWEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZWIwYmEwZjU2ZjUwNGIxMDlhMTBiNDJmMjM0MmI4NDYgPSAkKCc8ZGl2IGlkPSJodG1sX2ViMGJhMGY1NmY1MDRiMTA5YTEwYjQyZjIzNDJiODQ2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5XaW5kc29yIFRlcnJhY2U8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzE1ZjI1YjFhZTZiODQxZWY5NTgyYjNjMGIzMTAwNjlhLnNldENvbnRlbnQoaHRtbF9lYjBiYTBmNTZmNTA0YjEwOWExMGI0MmYyMzQyYjg0Nik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl80YTBkYjhiMGE5ZWM0NTdhYjE1ZGQyOTkyZDg1ZjllYy5iaW5kUG9wdXAocG9wdXBfMTVmMjViMWFlNmI4NDFlZjk1ODJiM2MwYjMxMDA2OWEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNTg4MDQ2M2Q4M2U3NDViMmEzMTk3NTRlNjViY2VhYTEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42NzY4MjIyNjIyNTQ3MjQsLTczLjk2NDg1OTI0MjYyNjldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfODE5ZGMwYjU5Y2M4NGE0NGIzNDJkMjcwODAzYTAxYjUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNzFkODNjYzc4YWJjNDhhMzlkMzA1YTc3NzFhNjE2YWMgPSAkKCc8ZGl2IGlkPSJodG1sXzcxZDgzY2M3OGFiYzQ4YTM5ZDMwNWE3NzcxYTYxNmFjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Qcm9zcGVjdCBIZWlnaHRzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF84MTlkYzBiNTljYzg0YTQ0YjM0MmQyNzA4MDNhMDFiNS5zZXRDb250ZW50KGh0bWxfNzFkODNjYzc4YWJjNDhhMzlkMzA1YTc3NzFhNjE2YWMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNTg4MDQ2M2Q4M2U3NDViMmEzMTk3NTRlNjViY2VhYTEuYmluZFBvcHVwKHBvcHVwXzgxOWRjMGI1OWNjODRhNDRiMzQyZDI3MDgwM2EwMWI1KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2UyYWYwYmEzMjA1YjQ3MGI5OTdlM2Q1ZDM3NTNkZmViID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjYzOTQ5OTQzMzk3NTUsLTczLjkxMDIzNTM2MTc2NjA3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzlmZDY1MTRiZTE4ZjQ3NzNiZWYxYTVlMTI1MzliZjEwID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzI3MDU4YWE1NTBiYTRhZTdiODNjMjgxZjk2M2NlODM2ID0gJCgnPGRpdiBpZD0iaHRtbF8yNzA1OGFhNTUwYmE0YWU3YjgzYzI4MWY5NjNjZTgzNiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+QnJvd25zdmlsbGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzlmZDY1MTRiZTE4ZjQ3NzNiZWYxYTVlMTI1MzliZjEwLnNldENvbnRlbnQoaHRtbF8yNzA1OGFhNTUwYmE0YWU3YjgzYzI4MWY5NjNjZTgzNik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9lMmFmMGJhMzIwNWI0NzBiOTk3ZTNkNWQzNzUzZGZlYi5iaW5kUG9wdXAocG9wdXBfOWZkNjUxNGJlMThmNDc3M2JlZjFhNWUxMjUzOWJmMTApOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNGIyODRlNmY2YjEyNDFkYmI4OGEyNDQ5YTEwODBkOTMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MDcxNDQzOTM0NDI1MSwtNzMuOTU4MTE1MjkyMjA5MjddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOWJiNGRiM2Y2MmEyNGI5YzgzODE2ZGJmOWVlMzhlNDYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMDc5OWQzN2E0ZTU4NGQ3MGI4NTI4ZmExMmQ1Nzc5NGQgPSAkKCc8ZGl2IGlkPSJodG1sXzA3OTlkMzdhNGU1ODRkNzBiODUyOGZhMTJkNTc3OTRkIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5XaWxsaWFtc2J1cmc8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzliYjRkYjNmNjJhMjRiOWM4MzgxNmRiZjllZTM4ZTQ2LnNldENvbnRlbnQoaHRtbF8wNzk5ZDM3YTRlNTg0ZDcwYjg1MjhmYTEyZDU3Nzk0ZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl80YjI4NGU2ZjZiMTI0MWRiYjg4YTI0NDlhMTA4MGQ5My5iaW5kUG9wdXAocG9wdXBfOWJiNGRiM2Y2MmEyNGI5YzgzODE2ZGJmOWVlMzhlNDYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYTRmMjBlMDkzZjdkNDBiMGJmMWYwM2FjY2IwZmZmMjcgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42OTgxMTYxMTAxNzkwMSwtNzMuOTI1MjU3OTc0ODcwNDVdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYzJjZjNmZDkzNWNiNDg0YzllMTQ5MGYzZGE3MDQ4MDUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNGRlYTMyOGFlYThiNDVmMjhiN2VkNTJiMzI2YjFmZjQgPSAkKCc8ZGl2IGlkPSJodG1sXzRkZWEzMjhhZWE4YjQ1ZjI4YjdlZDUyYjMyNmIxZmY0IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5CdXNod2ljazwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYzJjZjNmZDkzNWNiNDg0YzllMTQ5MGYzZGE3MDQ4MDUuc2V0Q29udGVudChodG1sXzRkZWEzMjhhZWE4YjQ1ZjI4YjdlZDUyYjMyNmIxZmY0KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2E0ZjIwZTA5M2Y3ZDQwYjBiZjFmMDNhY2NiMGZmZjI3LmJpbmRQb3B1cChwb3B1cF9jMmNmM2ZkOTM1Y2I0ODRjOWUxNDkwZjNkYTcwNDgwNSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9hY2IyMWI0ZGIzZGI0M2M3YTRmMGY3MGQ1OTYxOWU4NyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY4NzIzMTYwNzcyMDQ1NiwtNzMuOTQxNzg0ODg2OTAyOTddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZGY4OTQ1YmQ2NTI3NDUyN2E1NTEzOWRjYzlkZDg3NTIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMjVmMTg0YTZlMzI5NDM5M2ExMjg4OGJlYzA0MmJlNDcgPSAkKCc8ZGl2IGlkPSJodG1sXzI1ZjE4NGE2ZTMyOTQzOTNhMTI4ODhiZWMwNDJiZTQ3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5CZWRmb3JkIFN0dXl2ZXNhbnQ8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2RmODk0NWJkNjUyNzQ1MjdhNTUxMzlkY2M5ZGQ4NzUyLnNldENvbnRlbnQoaHRtbF8yNWYxODRhNmUzMjk0MzkzYTEyODg4YmVjMDQyYmU0Nyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9hY2IyMWI0ZGIzZGI0M2M3YTRmMGY3MGQ1OTYxOWU4Ny5iaW5kUG9wdXAocG9wdXBfZGY4OTQ1YmQ2NTI3NDUyN2E1NTEzOWRjYzlkZDg3NTIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMGE0Y2FmMjRjMzgzNDRjOTljNzNhYjFlNTBjZjIyNmEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42OTU4NjM3MjI3MjQwODQsLTczLjk5Mzc4MjI1NDk2NDI0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzk4MGU0YTA1NWNiOTRmNWFhYmUzNDgxMjVmYWQ4NDQxID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzcxN2Y3ZjlmYTAyMDQzM2FhNzIzZWQxMmNjZGNhNjliID0gJCgnPGRpdiBpZD0iaHRtbF83MTdmN2Y5ZmEwMjA0MzNhYTcyM2VkMTJjY2RjYTY5YiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+QnJvb2tseW4gSGVpZ2h0czwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOTgwZTRhMDU1Y2I5NGY1YWFiZTM0ODEyNWZhZDg0NDEuc2V0Q29udGVudChodG1sXzcxN2Y3ZjlmYTAyMDQzM2FhNzIzZWQxMmNjZGNhNjliKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzBhNGNhZjI0YzM4MzQ0Yzk5YzczYWIxZTUwY2YyMjZhLmJpbmRQb3B1cChwb3B1cF85ODBlNGEwNTVjYjk0ZjVhYWJlMzQ4MTI1ZmFkODQ0MSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl82ODk4ZDJmNDBlZTI0YTcwYmM4NTY3MWM0ZGM5ZGE2MSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY4NzkxOTcyMjQ4NTU3NCwtNzMuOTk4NTYxMzkyMTg0NjNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfODVlZjE5OTQ4NjJlNGRlZmJlYTAxYTI0YTY5M2Y1OWIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfODAzYmJlOWJmZGYwNGVjNmI2OWE0YmQ1MWRjYTY5MWUgPSAkKCc8ZGl2IGlkPSJodG1sXzgwM2JiZTliZmRmMDRlYzZiNjlhNGJkNTFkY2E2OTFlIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Db2JibGUgSGlsbDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfODVlZjE5OTQ4NjJlNGRlZmJlYTAxYTI0YTY5M2Y1OWIuc2V0Q29udGVudChodG1sXzgwM2JiZTliZmRmMDRlYzZiNjlhNGJkNTFkY2E2OTFlKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzY4OThkMmY0MGVlMjRhNzBiYzg1NjcxYzRkYzlkYTYxLmJpbmRQb3B1cChwb3B1cF84NWVmMTk5NDg2MmU0ZGVmYmVhMDFhMjRhNjkzZjU5Yik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9jMzJhMzk5ZGQ0MmE0MDMxYjkxYzczMThhZjJmYjJlZiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY4MDU0MDIzMTA3NjQ4NSwtNzMuOTk0NjUzNzI4MjgwMDZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMWFmMzY3Y2U2MDJmNDczMGFmN2I1NWY4NzRiYzA1ZDkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZDIyNzdjMDllMGMxNDE0NmEyY2Y0NjgwMDMxYjUzZTQgPSAkKCc8ZGl2IGlkPSJodG1sX2QyMjc3YzA5ZTBjMTQxNDZhMmNmNDY4MDAzMWI1M2U0IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5DYXJyb2xsIEdhcmRlbnM8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzFhZjM2N2NlNjAyZjQ3MzBhZjdiNTVmODc0YmMwNWQ5LnNldENvbnRlbnQoaHRtbF9kMjI3N2MwOWUwYzE0MTQ2YTJjZjQ2ODAwMzFiNTNlNCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9jMzJhMzk5ZGQ0MmE0MDMxYjkxYzczMThhZjJmYjJlZi5iaW5kUG9wdXAocG9wdXBfMWFmMzY3Y2U2MDJmNDczMGFmN2I1NWY4NzRiYzA1ZDkpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYzkyZjI2ZjBhNGYyNDkwYWE2NTJhMmUzNDI0OGMxMWEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42NzYyNTMyMzAyNTA4ODYsLTc0LjAxMjc1ODk3NDczNTZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZjVmMTlmNTM1YjY4NDA4NzhkOGUzMTA0ZTlmY2MxMjIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfN2Y1M2U2MDNiMDI5NDdiNjlkMTc2ZGM2NTk2Y2U5MDcgPSAkKCc8ZGl2IGlkPSJodG1sXzdmNTNlNjAzYjAyOTQ3YjY5ZDE3NmRjNjU5NmNlOTA3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5SZWQgSG9vazwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZjVmMTlmNTM1YjY4NDA4NzhkOGUzMTA0ZTlmY2MxMjIuc2V0Q29udGVudChodG1sXzdmNTNlNjAzYjAyOTQ3YjY5ZDE3NmRjNjU5NmNlOTA3KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2M5MmYyNmYwYTRmMjQ5MGFhNjUyYTJlMzQyNDhjMTFhLmJpbmRQb3B1cChwb3B1cF9mNWYxOWY1MzViNjg0MDg3OGQ4ZTMxMDRlOWZjYzEyMik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8wYWIxZWY0YzlhYTQ0MTg4YWQwNzBiZTE4ZDI2NWZkZCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY3MzkzMTE0MzE4NzE1NCwtNzMuOTk0NDQwODcxNDUzMzldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNTlhN2MzMzgxNDZjNDU2YTg1ZTk3ZTFiZDdlZmQxYTcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfY2VjMTNiOTEwNzU0NGE2OTg3ZjUxZTY5ZGUzOTcxOGUgPSAkKCc8ZGl2IGlkPSJodG1sX2NlYzEzYjkxMDc1NDRhNjk4N2Y1MWU2OWRlMzk3MThlIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Hb3dhbnVzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF81OWE3YzMzODE0NmM0NTZhODVlOTdlMWJkN2VmZDFhNy5zZXRDb250ZW50KGh0bWxfY2VjMTNiOTEwNzU0NGE2OTg3ZjUxZTY5ZGUzOTcxOGUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMGFiMWVmNGM5YWE0NDE4OGFkMDcwYmUxOGQyNjVmZGQuYmluZFBvcHVwKHBvcHVwXzU5YTdjMzM4MTQ2YzQ1NmE4NWU5N2UxYmQ3ZWZkMWE3KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzMwOTcwN2NmNjFlYTRkMDI4OWM5OGFmZGFiMzIxYTNlID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjg4NTI3MjYwMTg5NzcsLTczLjk3MjkwNTc0MzY5MDkyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2M0OGU0MDExYzU3MjRkZmVhZjlhYzJkNzUyZmJjNWNmID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzBmNmFlYzFiNGFkNDQzN2RhYmIxY2U0MGE2YTI2MjEzID0gJCgnPGRpdiBpZD0iaHRtbF8wZjZhZWMxYjRhZDQ0MzdkYWJiMWNlNDBhNmEyNjIxMyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Rm9ydCBHcmVlbmU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2M0OGU0MDExYzU3MjRkZmVhZjlhYzJkNzUyZmJjNWNmLnNldENvbnRlbnQoaHRtbF8wZjZhZWMxYjRhZDQ0MzdkYWJiMWNlNDBhNmEyNjIxMyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8zMDk3MDdjZjYxZWE0ZDAyODljOThhZmRhYjMyMWEzZS5iaW5kUG9wdXAocG9wdXBfYzQ4ZTQwMTFjNTcyNGRmZWFmOWFjMmQ3NTJmYmM1Y2YpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYWYyYzAxMGJmNmFhNDMxY2IyYTgwMDkxZWU1OGJjZGYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42NzIzMjA1MjI2ODE5NywtNzMuOTc3MDUwMzAxODM5MjRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNDNhZDk5ODA5MDJkNGQ0NThkMGZiY2YyMjExNTQyYWQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMTg3MDExMGRjMGI3NGI5MmIzMmI5MTA0MWU2NGFiMDIgPSAkKCc8ZGl2IGlkPSJodG1sXzE4NzAxMTBkYzBiNzRiOTJiMzJiOTEwNDFlNjRhYjAyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5QYXJrIFNsb3BlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80M2FkOTk4MDkwMmQ0ZDQ1OGQwZmJjZjIyMTE1NDJhZC5zZXRDb250ZW50KGh0bWxfMTg3MDExMGRjMGI3NGI5MmIzMmI5MTA0MWU2NGFiMDIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYWYyYzAxMGJmNmFhNDMxY2IyYTgwMDkxZWU1OGJjZGYuYmluZFBvcHVwKHBvcHVwXzQzYWQ5OTgwOTAyZDRkNDU4ZDBmYmNmMjIxMTU0MmFkKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2JlYzZmN2U0YTg1YzQ3OWQ4YTA3NDdlNzFlNTQwYTU5ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjgyMzkxMDExNDQyMTEsLTczLjg3NjYxNTk2NDU3Mjk2XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzNhYjViYmU4OGVlODQ0OGFhYThlNGNjOTY0NTM3ZjEwID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzU0MjkwZTcxZDk0YjQ1ZmE5OTFlMGExYWJiOTU4NWEzID0gJCgnPGRpdiBpZD0iaHRtbF81NDI5MGU3MWQ5NGI0NWZhOTkxZTBhMWFiYjk1ODVhMyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Q3lwcmVzcyBIaWxsczwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfM2FiNWJiZTg4ZWU4NDQ4YWFhOGU0Y2M5NjQ1MzdmMTAuc2V0Q29udGVudChodG1sXzU0MjkwZTcxZDk0YjQ1ZmE5OTFlMGExYWJiOTU4NWEzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2JlYzZmN2U0YTg1YzQ3OWQ4YTA3NDdlNzFlNTQwYTU5LmJpbmRQb3B1cChwb3B1cF8zYWI1YmJlODhlZTg0NDhhYWE4ZTRjYzk2NDUzN2YxMCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl80N2M4YTUxODU3OGI0YzdkYmQ1YTI1OTNhYmIwNzJkZiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY2OTkyNTcwMDg0NzA0NSwtNzMuODgwNjk4NjM5MTczNjZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNzhlYWVhN2FkYmQ1NDk5YTg1NjZmNjA2YjcwODI5Y2QgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZmUwMWNiNjI3ZWQ5NDQwZWFlZGZiZjk3Mzg5YTVjYjMgPSAkKCc8ZGl2IGlkPSJodG1sX2ZlMDFjYjYyN2VkOTQ0MGVhZWRmYmY5NzM4OWE1Y2IzIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5FYXN0IE5ldyBZb3JrPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF83OGVhZWE3YWRiZDU0OTlhODU2NmY2MDZiNzA4MjljZC5zZXRDb250ZW50KGh0bWxfZmUwMWNiNjI3ZWQ5NDQwZWFlZGZiZjk3Mzg5YTVjYjMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNDdjOGE1MTg1NzhiNGM3ZGJkNWEyNTkzYWJiMDcyZGYuYmluZFBvcHVwKHBvcHVwXzc4ZWFlYTdhZGJkNTQ5OWE4NTY2ZjYwNmI3MDgyOWNkKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2YzMmZhM2JmODdhNDQxZDA5MTc5ZGMyMGJlMTZmYjgyID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjQ3NTg5MDUyMzA4NzQsLTczLjg3OTM2OTcwMDQ1ODc1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2FlYzE3YjEzZGVkZjRmMDJiNTUxZWE5YzQ0ZTdmMmEzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzhjMWUyNmQyMDI0NjQ3YjE4YWFmNGQ5ZmQ1YjYwMDcwID0gJCgnPGRpdiBpZD0iaHRtbF84YzFlMjZkMjAyNDY0N2IxOGFhZjRkOWZkNWI2MDA3MCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+U3RhcnJldHQgQ2l0eTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYWVjMTdiMTNkZWRmNGYwMmI1NTFlYTljNDRlN2YyYTMuc2V0Q29udGVudChodG1sXzhjMWUyNmQyMDI0NjQ3YjE4YWFmNGQ5ZmQ1YjYwMDcwKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2YzMmZhM2JmODdhNDQxZDA5MTc5ZGMyMGJlMTZmYjgyLmJpbmRQb3B1cChwb3B1cF9hZWMxN2IxM2RlZGY0ZjAyYjU1MWVhOWM0NGU3ZjJhMyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9hZDE3M2ExYjFmZmQ0YWE1YWE4YzJmNmI4OTkzNTBiNyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjYzNTU2NDMyNzk3NDI4LC03My45MDIwOTI2OTc3ODk2Nl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9lMDNlZWJhMjdkODM0ODk1OTZiYzhjZGM5NzcyM2NiZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF81MmI5ZDYzYTFmYTQ0MzkxOTg1NGU4YTQ3ZGU2MDAzNiA9ICQoJzxkaXYgaWQ9Imh0bWxfNTJiOWQ2M2ExZmE0NDM5MTk4NTRlOGE0N2RlNjAwMzYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNhbmFyc2llPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9lMDNlZWJhMjdkODM0ODk1OTZiYzhjZGM5NzcyM2NiZS5zZXRDb250ZW50KGh0bWxfNTJiOWQ2M2ExZmE0NDM5MTk4NTRlOGE0N2RlNjAwMzYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYWQxNzNhMWIxZmZkNGFhNWFhOGMyZjZiODk5MzUwYjcuYmluZFBvcHVwKHBvcHVwX2UwM2VlYmEyN2Q4MzQ4OTU5NmJjOGNkYzk3NzIzY2JlKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzVlZTIxYjQ2YTI5ZDRjZjhhNzE0Nzk2YzAyOGU1YWZiID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjMwNDQ2MDQzNzU3NDY2LC03My45MjkxMTMwMjY0NDY3NF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kMGYwYzA4YmQ4ZGQ0ZWJhYmRhNmIwOTcxN2RkMWQxMyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9lNDY0N2QzYzY1YjM0ZGMxODNiYzhmNzcwYTRlZTVjNSA9ICQoJzxkaXYgaWQ9Imh0bWxfZTQ2NDdkM2M2NWIzNGRjMTgzYmM4Zjc3MGE0ZWU1YzUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkZsYXRsYW5kczwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZDBmMGMwOGJkOGRkNGViYWJkYTZiMDk3MTdkZDFkMTMuc2V0Q29udGVudChodG1sX2U0NjQ3ZDNjNjViMzRkYzE4M2JjOGY3NzBhNGVlNWM1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzVlZTIxYjQ2YTI5ZDRjZjhhNzE0Nzk2YzAyOGU1YWZiLmJpbmRQb3B1cChwb3B1cF9kMGYwYzA4YmQ4ZGQ0ZWJhYmRhNmIwOTcxN2RkMWQxMyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl85ZDU0MmY4NGVlYzY0ZDQ4YTE5ZmI4NTIyMmY5MzgxMyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjYwNjMzNjQyMTY4NTYyNiwtNzMuOTA4MTg1NzE3Nzc0MjNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNTUzMDljYWU0MjhmNDc0MmJkZmIxOGVhMzY2Y2JhZDcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMWZhNDU4NGZlOGM4NGJkY2I5ZThiYjMyY2Q0NGMwYjMgPSAkKCc8ZGl2IGlkPSJodG1sXzFmYTQ1ODRmZThjODRiZGNiOWU4YmIzMmNkNDRjMGIzIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5NaWxsIElzbGFuZDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNTUzMDljYWU0MjhmNDc0MmJkZmIxOGVhMzY2Y2JhZDcuc2V0Q29udGVudChodG1sXzFmYTQ1ODRmZThjODRiZGNiOWU4YmIzMmNkNDRjMGIzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzlkNTQyZjg0ZWVjNjRkNDhhMTlmYjg1MjIyZjkzODEzLmJpbmRQb3B1cChwb3B1cF81NTMwOWNhZTQyOGY0NzQyYmRmYjE4ZWEzNjZjYmFkNyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9lNzVlMWY0YmQ2ODk0YjUyODM3YTYzN2Y1Y2I2ZjY5NyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU3NzkxMzUwMzA4NjU3LC03My45NDM1MzcyMjg5MTg4Nl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8xOGVjMWYzNjg1NjA0ZDlmYWQxYzMxMWQwNTE5ZGU1MyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9hNjg4M2U4MTQ3N2M0OWVhYTYzMzRmZWYxMmY5MGVhNyA9ICQoJzxkaXYgaWQ9Imh0bWxfYTY4ODNlODE0NzdjNDllYWE2MzM0ZmVmMTJmOTBlYTciIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk1hbmhhdHRhbiBCZWFjaDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMThlYzFmMzY4NTYwNGQ5ZmFkMWMzMTFkMDUxOWRlNTMuc2V0Q29udGVudChodG1sX2E2ODgzZTgxNDc3YzQ5ZWFhNjMzNGZlZjEyZjkwZWE3KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2U3NWUxZjRiZDY4OTRiNTI4MzdhNjM3ZjVjYjZmNjk3LmJpbmRQb3B1cChwb3B1cF8xOGVjMWYzNjg1NjA0ZDlmYWQxYzMxMWQwNTE5ZGU1Myk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9lNTM0NGJiYmQ4Mzg0OWUyODU2M2E5M2JkZGExNmYwOCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU3NDI5MjU2NDcxNjAxLC03My45ODg2ODI5NTgyMTYzN10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF80MmY4MTQ3ZGEzYjM0NDc1OTU3ODA1Mjc4OGUwODkwNCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9kMjMwY2Y1NDRjNzA0OTRmYmFjMjcxNDNkMzMwMDc5MCA9ICQoJzxkaXYgaWQ9Imh0bWxfZDIzMGNmNTQ0YzcwNDk0ZmJhYzI3MTQzZDMzMDA3OTAiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNvbmV5IElzbGFuZDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNDJmODE0N2RhM2IzNDQ3NTk1NzgwNTI3ODhlMDg5MDQuc2V0Q29udGVudChodG1sX2QyMzBjZjU0NGM3MDQ5NGZiYWMyNzE0M2QzMzAwNzkwKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2U1MzQ0YmJiZDgzODQ5ZTI4NTYzYTkzYmRkYTE2ZjA4LmJpbmRQb3B1cChwb3B1cF80MmY4MTQ3ZGEzYjM0NDc1OTU3ODA1Mjc4OGUwODkwNCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9iYTIzOGNiNjU1MDY0YjAyOTU2YTM0ZmRkNzM1MTI5ZSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU5OTUxODcwMjgyMjM4LC03My45OTg3NTIyMTQ0MzUxOV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kMzMyMWQ1MTRkMDE0NTY1YWZjY2M0YzcxNDFhOGY3NiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85OTQwYmFiYjM1NWM0MjQxOTkyM2MwODFhMDA4YjQyYSA9ICQoJzxkaXYgaWQ9Imh0bWxfOTk0MGJhYmIzNTVjNDI0MTk5MjNjMDgxYTAwOGI0MmEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJhdGggQmVhY2g8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2QzMzIxZDUxNGQwMTQ1NjVhZmNjYzRjNzE0MWE4Zjc2LnNldENvbnRlbnQoaHRtbF85OTQwYmFiYjM1NWM0MjQxOTkyM2MwODFhMDA4YjQyYSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9iYTIzOGNiNjU1MDY0YjAyOTU2YTM0ZmRkNzM1MTI5ZS5iaW5kUG9wdXAocG9wdXBfZDMzMjFkNTE0ZDAxNDU2NWFmY2NjNGM3MTQxYThmNzYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZWM2YjdkZWE0MjUyNGM1YTk0NTE2ZGMxYzJiNTcwNGYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MzMxMzA1MTI3NTgwMTUsLTczLjk5MDQ5ODIzMDQ0ODExXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzk3ODgwOTQwOWU2OTQxNDA5NzZmOGQ5MjVlZWY1ZjZjID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzZlOWE3N2RjNmY0MzQ4NjFhZTc5ZmFmOGNjOTdiNDliID0gJCgnPGRpdiBpZD0iaHRtbF82ZTlhNzdkYzZmNDM0ODYxYWU3OWZhZjhjYzk3YjQ5YiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Qm9yb3VnaCBQYXJrPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF85Nzg4MDk0MDllNjk0MTQwOTc2ZjhkOTI1ZWVmNWY2Yy5zZXRDb250ZW50KGh0bWxfNmU5YTc3ZGM2ZjQzNDg2MWFlNzlmYWY4Y2M5N2I0OWIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZWM2YjdkZWE0MjUyNGM1YTk0NTE2ZGMxYzJiNTcwNGYuYmluZFBvcHVwKHBvcHVwXzk3ODgwOTQwOWU2OTQxNDA5NzZmOGQ5MjVlZWY1ZjZjKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzEyMDUxY2ZmYmY4OTQzZmE4MmQyMWFjYmM4MzJlYWNlID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjE5MjE5NDU3NzIyNjM2LC03NC4wMTkzMTM3NTYzNjAyMl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85NDE1ZjY1ZTcxODE0M2MxOTc2ZDVmMmRhYTcwY2I0OSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF80NzBhYTFlNDhjNGU0ZDA4ODI3ZGUyZTkxMDUxNzJlZiA9ICQoJzxkaXYgaWQ9Imh0bWxfNDcwYWExZTQ4YzRlNGQwODgyN2RlMmU5MTA1MTcyZWYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkR5a2VyIEhlaWdodHM8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzk0MTVmNjVlNzE4MTQzYzE5NzZkNWYyZGFhNzBjYjQ5LnNldENvbnRlbnQoaHRtbF80NzBhYTFlNDhjNGU0ZDA4ODI3ZGUyZTkxMDUxNzJlZik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8xMjA1MWNmZmJmODk0M2ZhODJkMjFhY2JjODMyZWFjZS5iaW5kUG9wdXAocG9wdXBfOTQxNWY2NWU3MTgxNDNjMTk3NmQ1ZjJkYWE3MGNiNDkpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZDdmYjU1NjZmOWQ5NDBlNTlhODdlMzAzYzMyNDE1ZDQgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41OTA4NDg0MzM5MDIwNDYsLTczLjkzMDEwMTcwNjkxMTk2XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzk0ODhhNzM1ZWY3NTRmZmNiODRkN2Q0MzcxY2ViY2EzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzlkMTU1MjIzNDkzNDQ4ZDk5MjM2YzU5NmFhMzhiMTEwID0gJCgnPGRpdiBpZD0iaHRtbF85ZDE1NTIyMzQ5MzQ0OGQ5OTIzNmM1OTZhYTM4YjExMCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+R2Vycml0c2VuIEJlYWNoPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF85NDg4YTczNWVmNzU0ZmZjYjg0ZDdkNDM3MWNlYmNhMy5zZXRDb250ZW50KGh0bWxfOWQxNTUyMjM0OTM0NDhkOTkyMzZjNTk2YWEzOGIxMTApOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZDdmYjU1NjZmOWQ5NDBlNTlhODdlMzAzYzMyNDE1ZDQuYmluZFBvcHVwKHBvcHVwXzk0ODhhNzM1ZWY3NTRmZmNiODRkN2Q0MzcxY2ViY2EzKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzU1MmJlYjVkNmFkMzRiMjQ4MjgxZmI2NzIzNjllYjlhID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjA5NzQ3Nzc5ODk0NjA0LC03My45MzEzNDQwNDEwODQ5N10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8zYTNkZjZkNmFjMjg0NGQxYWVhNzEzZDg0YTMxN2UwNCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iMWMyODUwOGJkM2Y0OTY4YTRjYjBhY2U2ZTYxMTNhMyA9ICQoJzxkaXYgaWQ9Imh0bWxfYjFjMjg1MDhiZDNmNDk2OGE0Y2IwYWNlNmU2MTEzYTMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk1hcmluZSBQYXJrPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8zYTNkZjZkNmFjMjg0NGQxYWVhNzEzZDg0YTMxN2UwNC5zZXRDb250ZW50KGh0bWxfYjFjMjg1MDhiZDNmNDk2OGE0Y2IwYWNlNmU2MTEzYTMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNTUyYmViNWQ2YWQzNGIyNDgyODFmYjY3MjM2OWViOWEuYmluZFBvcHVwKHBvcHVwXzNhM2RmNmQ2YWMyODQ0ZDFhZWE3MTNkODRhMzE3ZTA0KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2ZjNTBlNmE5MzlkNjRlNjI5ZDMzYzQ0ZDg5ZTU2ZTc3ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjkzMjI5NDIxODgxNTA0LC03My45Njc4NDMwNjIxNjM2N10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81OTZjMjdjNzYwZTU0NGZhOTRiNjdkNTcyYmVmMzY1NiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85ZDUyZDBjZjRkZDk0MTNmODQ3ZmFiN2JkNjFhMmNkNiA9ICQoJzxkaXYgaWQ9Imh0bWxfOWQ1MmQwY2Y0ZGQ5NDEzZjg0N2ZhYjdiZDYxYTJjZDYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNsaW50b24gSGlsbDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNTk2YzI3Yzc2MGU1NDRmYTk0YjY3ZDU3MmJlZjM2NTYuc2V0Q29udGVudChodG1sXzlkNTJkMGNmNGRkOTQxM2Y4NDdmYWI3YmQ2MWEyY2Q2KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2ZjNTBlNmE5MzlkNjRlNjI5ZDMzYzQ0ZDg5ZTU2ZTc3LmJpbmRQb3B1cChwb3B1cF81OTZjMjdjNzYwZTU0NGZhOTRiNjdkNTcyYmVmMzY1Nik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl85ZGM3Yzc4ZmI0MzY0YjI3ODMyNmMyOTg1YjI2OWJkOSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU3NjM3NTM3ODkwMjI0LC03NC4wMDc4NzMxMTIwMDI0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2JkZjgyNTcyNmI0MDRhNzk5MDRlNGExMTY0ZTlmYjEzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzIzNmNlYzI2ZjUxMzQzODI4MmJjYTRhZjhjOThjNTRhID0gJCgnPGRpdiBpZD0iaHRtbF8yMzZjZWMyNmY1MTM0MzgyODJiY2E0YWY4Yzk4YzU0YSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+U2VhIEdhdGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2JkZjgyNTcyNmI0MDRhNzk5MDRlNGExMTY0ZTlmYjEzLnNldENvbnRlbnQoaHRtbF8yMzZjZWMyNmY1MTM0MzgyODJiY2E0YWY4Yzk4YzU0YSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl85ZGM3Yzc4ZmI0MzY0YjI3ODMyNmMyOTg1YjI2OWJkOS5iaW5kUG9wdXAocG9wdXBfYmRmODI1NzI2YjQwNGE3OTkwNGU0YTExNjRlOWZiMTMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZTgwZDVmYWRlY2YwNDkxM2E1ZGU4NzZmYTBiN2NlY2EgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42OTA4NDQwMjEwOTgwMiwtNzMuOTgzNDYzMzc0MzEwOTldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYTM3MzAzNGE0Y2Y5NDAxYzlhNmFmNWE4NDU2NjQwZDIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZWM0OTM0N2Q0ZDMxNDNhZTllN2Q3Njc4YzFjZjIzMTYgPSAkKCc8ZGl2IGlkPSJodG1sX2VjNDkzNDdkNGQzMTQzYWU5ZTdkNzY3OGMxY2YyMzE2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Eb3dudG93bjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYTM3MzAzNGE0Y2Y5NDAxYzlhNmFmNWE4NDU2NjQwZDIuc2V0Q29udGVudChodG1sX2VjNDkzNDdkNGQzMTQzYWU5ZTdkNzY3OGMxY2YyMzE2KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2U4MGQ1ZmFkZWNmMDQ5MTNhNWRlODc2ZmEwYjdjZWNhLmJpbmRQb3B1cChwb3B1cF9hMzczMDM0YTRjZjk0MDFjOWE2YWY1YTg0NTY2NDBkMik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9kYjljNjQ1NThhMzM0YjI1ODc1NjhhM2UxM2YwNDRjYSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY4NTY4MjkxMjA5MTQ0NCwtNzMuOTgzNzQ4MjQxMTU3OThdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNjQxM2MzYzg0OGY1NDBmZWE2ZmNhNmEwYjY2MzgwMzMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfM2JkYzY3MTllODVmNDFiM2I5OGM2ZDE1YTQxZTg4YWIgPSAkKCc8ZGl2IGlkPSJodG1sXzNiZGM2NzE5ZTg1ZjQxYjNiOThjNmQxNWE0MWU4OGFiIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Cb2VydW0gSGlsbDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNjQxM2MzYzg0OGY1NDBmZWE2ZmNhNmEwYjY2MzgwMzMuc2V0Q29udGVudChodG1sXzNiZGM2NzE5ZTg1ZjQxYjNiOThjNmQxNWE0MWU4OGFiKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2RiOWM2NDU1OGEzMzRiMjU4NzU2OGEzZTEzZjA0NGNhLmJpbmRQb3B1cChwb3B1cF82NDEzYzNjODQ4ZjU0MGZlYTZmY2E2YTBiNjYzODAzMyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl83MDU1ZGM1Njg0YjI0ZGQxOTk3NGM1MTM1N2MyMzZkOCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY1ODQyMDAxNzQ2OTgxNSwtNzMuOTU0ODk4NjcwNzc3MTNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfODBkZjhkYzE4OTI2NDc3YThiZGU3YjRkMzJhY2FiN2MgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfY2M1MjQxZjUwMDUyNGU2OWE0NmFkMzZmNjU2MjY3NzUgPSAkKCc8ZGl2IGlkPSJodG1sX2NjNTI0MWY1MDA1MjRlNjlhNDZhZDM2ZjY1NjI2Nzc1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Qcm9zcGVjdCBMZWZmZXJ0cyBHYXJkZW5zPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF84MGRmOGRjMTg5MjY0NzdhOGJkZTdiNGQzMmFjYWI3Yy5zZXRDb250ZW50KGh0bWxfY2M1MjQxZjUwMDUyNGU2OWE0NmFkMzZmNjU2MjY3NzUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNzA1NWRjNTY4NGIyNGRkMTk5NzRjNTEzNTdjMjM2ZDguYmluZFBvcHVwKHBvcHVwXzgwZGY4ZGMxODkyNjQ3N2E4YmRlN2I0ZDMyYWNhYjdjKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzg0Y2M5MWYwMmI3NDRkNjdiNThmY2QwNmFlZmVhYzA5ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjc4NDAyNTU0Nzk1MzU1LC03My45MTMwNjgzMTc4NzM5NV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF80OTBjZTI3NTQ0M2I0OWI0YTU1NWFhMThmMWVjMjJmZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9kM2Q4Mjk2NzNlODU0MzM2ODYwM2VlNzBiNGIxYTYyNyA9ICQoJzxkaXYgaWQ9Imh0bWxfZDNkODI5NjczZTg1NDMzNjg2MDNlZTcwYjRiMWE2MjciIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk9jZWFuIEhpbGw8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzQ5MGNlMjc1NDQzYjQ5YjRhNTU1YWExOGYxZWMyMmZlLnNldENvbnRlbnQoaHRtbF9kM2Q4Mjk2NzNlODU0MzM2ODYwM2VlNzBiNGIxYTYyNyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl84NGNjOTFmMDJiNzQ0ZDY3YjU4ZmNkMDZhZWZlYWMwOS5iaW5kUG9wdXAocG9wdXBfNDkwY2UyNzU0NDNiNDliNGE1NTVhYTE4ZjFlYzIyZmUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYjBjM2YwNzMxOTliNDQ1ODk3ZjFlOGY1ZGM2OTFlNDUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42Nzg1Njk5NTcyNzQ3OSwtNzMuODY3OTc1OTgwODEzMzRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMmJhNDQ5ZDk0YTc0NGNlZTgyNDNlZTZhMzU3NTY5ZTMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfY2UyOWEzNDViMzMwNGRiOGExOTI1ZDA1NGFjY2U0MzIgPSAkKCc8ZGl2IGlkPSJodG1sX2NlMjlhMzQ1YjMzMDRkYjhhMTkyNWQwNTRhY2NlNDMyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5DaXR5IExpbmU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzJiYTQ0OWQ5NGE3NDRjZWU4MjQzZWU2YTM1NzU2OWUzLnNldENvbnRlbnQoaHRtbF9jZTI5YTM0NWIzMzA0ZGI4YTE5MjVkMDU0YWNjZTQzMik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9iMGMzZjA3MzE5OWI0NDU4OTdmMWU4ZjVkYzY5MWU0NS5iaW5kUG9wdXAocG9wdXBfMmJhNDQ5ZDk0YTc0NGNlZTgyNDNlZTZhMzU3NTY5ZTMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZTk1MjkxOGU3YzUzNGVmZDhhOWVkNTM5NzgzMzZmYjUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MTUxNDk1NTA0NTMwOCwtNzMuODk4NTU2MzM2MzAzMTddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNmRiYzQyNDJhZmVjNDEyZGFlNTI2NTcyYjVkN2MwMmQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYTA2ZThkNTMxNjhmNDEwZDkxNzU3MWRmZTdlNzI5ZTAgPSAkKCc8ZGl2IGlkPSJodG1sX2EwNmU4ZDUzMTY4ZjQxMGQ5MTc1NzFkZmU3ZTcyOWUwIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5CZXJnZW4gQmVhY2g8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzZkYmM0MjQyYWZlYzQxMmRhZTUyNjU3MmI1ZDdjMDJkLnNldENvbnRlbnQoaHRtbF9hMDZlOGQ1MzE2OGY0MTBkOTE3NTcxZGZlN2U3MjllMCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9lOTUyOTE4ZTdjNTM0ZWZkOGE5ZWQ1Mzk3ODMzNmZiNS5iaW5kUG9wdXAocG9wdXBfNmRiYzQyNDJhZmVjNDEyZGFlNTI2NTcyYjVkN2MwMmQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMGEyN2Y4Y2Y0MjQ3NDM1NjgwNTE3NzdiYmU2MzNhMDcgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MjU1OTU4OTg2OTg0MywtNzMuOTU3NTk1MjM0ODk4MzhdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOTI2MWNlMTBmNDYzNDM4ZmJmYjk0Y2IzYTk4YWZiMDAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYWRkYmQ5YWM2MmY2NDEyZTk1NmVjNmI4YTRiNGIwMWYgPSAkKCc8ZGl2IGlkPSJodG1sX2FkZGJkOWFjNjJmNjQxMmU5NTZlYzZiOGE0YjRiMDFmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5NaWR3b29kPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF85MjYxY2UxMGY0NjM0MzhmYmZiOTRjYjNhOThhZmIwMC5zZXRDb250ZW50KGh0bWxfYWRkYmQ5YWM2MmY2NDEyZTk1NmVjNmI4YTRiNGIwMWYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMGEyN2Y4Y2Y0MjQ3NDM1NjgwNTE3NzdiYmU2MzNhMDcuYmluZFBvcHVwKHBvcHVwXzkyNjFjZTEwZjQ2MzQzOGZiZmI5NGNiM2E5OGFmYjAwKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzA5YmJiZWIxMjRiNDQ1NmE5Njc2ZGNhYjRlZmVkNzZkID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjQ3MDA4NjAzMTg1MTg1LC03My45NjI2MTMxNjcxNjA0OF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9iMzBkYTEwYTU4YjU0Mjg0ODUzZWM0MjFhOWMwMWQ4NyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84NWRjMjRlMzYyZmU0NTNjYTczNmFlN2FiYmI0MjA2MyA9ICQoJzxkaXYgaWQ9Imh0bWxfODVkYzI0ZTM2MmZlNDUzY2E3MzZhZTdhYmJiNDIwNjMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlByb3NwZWN0IFBhcmsgU291dGg8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2IzMGRhMTBhNThiNTQyODQ4NTNlYzQyMWE5YzAxZDg3LnNldENvbnRlbnQoaHRtbF84NWRjMjRlMzYyZmU0NTNjYTczNmFlN2FiYmI0MjA2Myk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8wOWJiYmViMTI0YjQ0NTZhOTY3NmRjYWI0ZWZlZDc2ZC5iaW5kUG9wdXAocG9wdXBfYjMwZGExMGE1OGI1NDI4NDg1M2VjNDIxYTljMDFkODcpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNDIzMDhlMWM3NWIwNGRlM2I3MWJhZjlhYTMwNGNhMTMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MjM4NDUyNDQ3ODQxOSwtNzMuOTE2MDc0ODM5NTEzMjRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOTkyODg1YjI1MDE5NDViZTk2YTczODQ1ZmRlNTJkZDcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOTQwOWNmY2NkMGM1NDEzYTkzMTlhNzcwOWU1MjE4MmUgPSAkKCc8ZGl2IGlkPSJodG1sXzk0MDljZmNjZDBjNTQxM2E5MzE5YTc3MDllNTIxODJlIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5HZW9yZ2V0b3duPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF85OTI4ODViMjUwMTk0NWJlOTZhNzM4NDVmZGU1MmRkNy5zZXRDb250ZW50KGh0bWxfOTQwOWNmY2NkMGM1NDEzYTkzMTlhNzcwOWU1MjE4MmUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNDIzMDhlMWM3NWIwNGRlM2I3MWJhZjlhYTMwNGNhMTMuYmluZFBvcHVwKHBvcHVwXzk5Mjg4NWIyNTAxOTQ1YmU5NmE3Mzg0NWZkZTUyZGQ3KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2E5NWFlZWYwNDJjNDQwYzZhNjJmMWFhYTY2NmE0Y2ZhID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzA4NDkyNDEwNDE1NDgsLTczLjkzODg1ODE1MjY5MTk1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2JhMGY5YjE3MDhlMzQyNTdiNzgyOWYxYjVkYzkyMDY5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2RkNzcwYjQ3NTI4OTQ0M2FhOTJkN2M0NzM0ZTg0OWJmID0gJCgnPGRpdiBpZD0iaHRtbF9kZDc3MGI0NzUyODk0NDNhYTkyZDdjNDczNGU4NDliZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+RWFzdCBXaWxsaWFtc2J1cmc8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2JhMGY5YjE3MDhlMzQyNTdiNzgyOWYxYjVkYzkyMDY5LnNldENvbnRlbnQoaHRtbF9kZDc3MGI0NzUyODk0NDNhYTkyZDdjNDczNGU4NDliZik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9hOTVhZWVmMDQyYzQ0MGM2YTYyZjFhYWE2NjZhNGNmYS5iaW5kUG9wdXAocG9wdXBfYmEwZjliMTcwOGUzNDI1N2I3ODI5ZjFiNWRjOTIwNjkpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZWFhMDgyMjdmYTEwNDBiMGEzZjgzZjUzOTc1YjcwYzkgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MTQ4MjI5MDY1MzIwMTQsLTczLjk1ODgwODU3NTg3NTgyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzRlYWQ0NzExMjQ1MDRmNDQ5ZjBhYmI3ODFmZWQyMzA4ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzc5M2ZkMmI0ZWRhODQ0YWNiNmRhNGRhMmFlMDMwNTI3ID0gJCgnPGRpdiBpZD0iaHRtbF83OTNmZDJiNGVkYTg0NGFjYjZkYTRkYTJhZTAzMDUyNyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Tm9ydGggU2lkZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNGVhZDQ3MTEyNDUwNGY0NDlmMGFiYjc4MWZlZDIzMDguc2V0Q29udGVudChodG1sXzc5M2ZkMmI0ZWRhODQ0YWNiNmRhNGRhMmFlMDMwNTI3KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2VhYTA4MjI3ZmExMDQwYjBhM2Y4M2Y1Mzk3NWI3MGM5LmJpbmRQb3B1cChwb3B1cF80ZWFkNDcxMTI0NTA0ZjQ0OWYwYWJiNzgxZmVkMjMwOCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl81YzI1MmY5M2QwMjU0NzhlOTlmMjIxNTRkMjg2MGEyYiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjcxMDg2MTQ3MjY1MDY0LC03My45NTgwMDA5NTE1MzMzMV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9hNmJlMjMyNGNkMzI0ZGEzYjJkNjExN2JjMzI1MWU5ZCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9kNzA0YWUyMDI4MDU0NDNiYWMzNThiZGM4NzFmN2ZkMyA9ICQoJzxkaXYgaWQ9Imh0bWxfZDcwNGFlMjAyODA1NDQzYmFjMzU4YmRjODcxZjdmZDMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlNvdXRoIFNpZGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2E2YmUyMzI0Y2QzMjRkYTNiMmQ2MTE3YmMzMjUxZTlkLnNldENvbnRlbnQoaHRtbF9kNzA0YWUyMDI4MDU0NDNiYWMzNThiZGM4NzFmN2ZkMyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl81YzI1MmY5M2QwMjU0NzhlOTlmMjIxNTRkMjg2MGEyYi5iaW5kUG9wdXAocG9wdXBfYTZiZTIzMjRjZDMyNGRhM2IyZDYxMTdiYzMyNTFlOWQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYzM4ZDY0YmE2ZmI3NDJmYjg4MDRkNDk3NTBiNzA4N2MgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MTMwNTk3NjY2Nzk0MiwtNzMuOTY4MzY2NzgwMzU1NDFdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYzdhYTEwMzZjOWY1NDc0Mzg2MWFlOTI3MzY5MjAyY2IgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMmFiMGEzOTE2MmYzNGUzMjgwMTQ1NzlmMDcyZGM0OWEgPSAkKCc8ZGl2IGlkPSJodG1sXzJhYjBhMzkxNjJmMzRlMzI4MDE0NTc5ZjA3MmRjNDlhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5PY2VhbiBQYXJrd2F5PC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jN2FhMTAzNmM5ZjU0NzQzODYxYWU5MjczNjkyMDJjYi5zZXRDb250ZW50KGh0bWxfMmFiMGEzOTE2MmYzNGUzMjgwMTQ1NzlmMDcyZGM0OWEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYzM4ZDY0YmE2ZmI3NDJmYjg4MDRkNDk3NTBiNzA4N2MuYmluZFBvcHVwKHBvcHVwX2M3YWExMDM2YzlmNTQ3NDM4NjFhZTkyNzM2OTIwMmNiKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzgwYjVjOGFmM2E5YTQ0YzBiN2Q4ZmZlN2ZkNDNiNDFkID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjE0NzY4MTI2OTQyMjYsLTc0LjAzMTk3OTE0NTM3OTg0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzBhNzQ1YjdhYzlkZjRjZjU4N2M3ZTE3NGE0ZWIxZThkID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzNkZWYzOGVjMmMxMTQ0OGNiYTdiNTY4MmEzMWE2NWEzID0gJCgnPGRpdiBpZD0iaHRtbF8zZGVmMzhlYzJjMTE0NDhjYmE3YjU2ODJhMzFhNjVhMyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Rm9ydCBIYW1pbHRvbjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMGE3NDViN2FjOWRmNGNmNTg3YzdlMTc0YTRlYjFlOGQuc2V0Q29udGVudChodG1sXzNkZWYzOGVjMmMxMTQ0OGNiYTdiNTY4MmEzMWE2NWEzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzgwYjVjOGFmM2E5YTQ0YzBiN2Q4ZmZlN2ZkNDNiNDFkLmJpbmRQb3B1cChwb3B1cF8wYTc0NWI3YWM5ZGY0Y2Y1ODdjN2UxNzRhNGViMWU4ZCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl82YjNiODU4MDg2NjE0YWRhODlhM2EyNWM0Y2M1ZjE3ZSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjcxNTYxODQyMjMxNDMyLC03My45OTQyNzkzNjI1NTk3OF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85MGEyNTJlNGM3NTU0NTZlODlmOWYzZjkxMzdlYWMwNiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF81Nzc1YWIxNzc1YTU0ZTUwYWEyNGVmYzhkZTg4Yjg1YyA9ICQoJzxkaXYgaWQ9Imh0bWxfNTc3NWFiMTc3NWE1NGU1MGFhMjRlZmM4ZGU4OGI4NWMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNoaW5hdG93bjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOTBhMjUyZTRjNzU1NDU2ZTg5ZjlmM2Y5MTM3ZWFjMDYuc2V0Q29udGVudChodG1sXzU3NzVhYjE3NzVhNTRlNTBhYTI0ZWZjOGRlODhiODVjKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzZiM2I4NTgwODY2MTRhZGE4OWEzYTI1YzRjYzVmMTdlLmJpbmRQb3B1cChwb3B1cF85MGEyNTJlNGM3NTU0NTZlODlmOWYzZjkxMzdlYWMwNik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl81MTcyNWY4MDAwOGE0NmY1ODgzNTZkNjc0Mzc3ZDY3YiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg1MTkwMjUyNTU1MzA1LC03My45MzY5MDAyNzk4NTIzNF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85NDg3OWZiN2U1MGE0ZjMyOGEzYzY3Y2Q0ZDcxNzA2YyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8zYWYyYzAwNjFkOWQ0ODdiYTI1M2FmYWEzYzUwY2NkOSA9ICQoJzxkaXYgaWQ9Imh0bWxfM2FmMmMwMDYxZDlkNDg3YmEyNTNhZmFhM2M1MGNjZDkiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPldhc2hpbmd0b24gSGVpZ2h0czwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOTQ4NzlmYjdlNTBhNGYzMjhhM2M2N2NkNGQ3MTcwNmMuc2V0Q29udGVudChodG1sXzNhZjJjMDA2MWQ5ZDQ4N2JhMjUzYWZhYTNjNTBjY2Q5KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzUxNzI1ZjgwMDA4YTQ2ZjU4ODM1NmQ2NzQzNzdkNjdiLmJpbmRQb3B1cChwb3B1cF85NDg3OWZiN2U1MGE0ZjMyOGEzYzY3Y2Q0ZDcxNzA2Yyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9hYzQxMGU1ZjRiNjc0ZDJiYWQyMTJlY2ExNWYzNzhiNyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg2NzY4Mzk2NDQ5OTE1LC03My45MjEyMTA0MjIwMzg5N10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8wMjJkNTY0Y2YyNGM0YmZlYjkyZjA0NWJhZjgxNjJmYiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9mODYzZmViODIxOGI0NmIxOTQyOGZiYmJlZmM0Zjk2MiA9ICQoJzxkaXYgaWQ9Imh0bWxfZjg2M2ZlYjgyMThiNDZiMTk0MjhmYmJiZWZjNGY5NjIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPklud29vZDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMDIyZDU2NGNmMjRjNGJmZWI5MmYwNDViYWY4MTYyZmIuc2V0Q29udGVudChodG1sX2Y4NjNmZWI4MjE4YjQ2YjE5NDI4ZmJiYmVmYzRmOTYyKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2FjNDEwZTVmNGI2NzRkMmJhZDIxMmVjYTE1ZjM3OGI3LmJpbmRQb3B1cChwb3B1cF8wMjJkNTY0Y2YyNGM0YmZlYjkyZjA0NWJhZjgxNjJmYik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8wNGU2NTQzODhhZjI0YTRjYTk5N2I0ZDc4OGJmNGZjNyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjgyMzYwNDI4NDgxMTkzNSwtNzMuOTQ5Njg3OTE4ODMzNjZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYjk1OWIzNGE3MGQ5NGU1NzkxYjQwZDk0ZmM1ZjZkNTMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMTcyYWUxZWQ4ODEwNDdkZWEwNmY5ZjkxZmQ2N2NmZDEgPSAkKCc8ZGl2IGlkPSJodG1sXzE3MmFlMWVkODgxMDQ3ZGVhMDZmOWY5MWZkNjdjZmQxIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5IYW1pbHRvbiBIZWlnaHRzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iOTU5YjM0YTcwZDk0ZTU3OTFiNDBkOTRmYzVmNmQ1My5zZXRDb250ZW50KGh0bWxfMTcyYWUxZWQ4ODEwNDdkZWEwNmY5ZjkxZmQ2N2NmZDEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMDRlNjU0Mzg4YWYyNGE0Y2E5OTdiNGQ3ODhiZjRmYzcuYmluZFBvcHVwKHBvcHVwX2I5NTliMzRhNzBkOTRlNTc5MWI0MGQ5NGZjNWY2ZDUzKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2EyMDEwZGRhNDQxYzQzMGU5OGNhMzFmYTliYzk4NjE5ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuODE2OTM0NDI5NDk3OCwtNzMuOTU3Mzg1MzkzNTE4OF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83NjY5NDg3NzFlNjI0NTdhODM0NTVmM2NlZTI1Mjc0NyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8wYjQyYjc3ZTNjY2M0OWEyOWJkMTMzMWQ5MDY5YjU2MyA9ICQoJzxkaXYgaWQ9Imh0bWxfMGI0MmI3N2UzY2NjNDlhMjliZDEzMzFkOTA2OWI1NjMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk1hbmhhdHRhbnZpbGxlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF83NjY5NDg3NzFlNjI0NTdhODM0NTVmM2NlZTI1Mjc0Ny5zZXRDb250ZW50KGh0bWxfMGI0MmI3N2UzY2NjNDlhMjliZDEzMzFkOTA2OWI1NjMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYTIwMTBkZGE0NDFjNDMwZTk4Y2EzMWZhOWJjOTg2MTkuYmluZFBvcHVwKHBvcHVwXzc2Njk0ODc3MWU2MjQ1N2E4MzQ1NWYzY2VlMjUyNzQ3KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2UzY2FjMThmY2MwMzRlYTRiYzgwNTgxZWU1MDBkODAwID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuODE1OTc2MDY3NDI0MTQsLTczLjk0MzIxMTEyNjAzOTA1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzY0Y2YxYzY5Yzc1NzQyYzViMzFlYjc4MTg3Zjg1ZGY0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzMzNzY4YWQ5ODU5YTQ4Yzc5YTBiYTQ2NzJiNWFlMGFhID0gJCgnPGRpdiBpZD0iaHRtbF8zMzc2OGFkOTg1OWE0OGM3OWEwYmE0NjcyYjVhZTBhYSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Q2VudHJhbCBIYXJsZW08L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzY0Y2YxYzY5Yzc1NzQyYzViMzFlYjc4MTg3Zjg1ZGY0LnNldENvbnRlbnQoaHRtbF8zMzc2OGFkOTg1OWE0OGM3OWEwYmE0NjcyYjVhZTBhYSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9lM2NhYzE4ZmNjMDM0ZWE0YmM4MDU4MWVlNTAwZDgwMC5iaW5kUG9wdXAocG9wdXBfNjRjZjFjNjljNzU3NDJjNWIzMWViNzgxODdmODVkZjQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMjUxNjkwMGY0OTRmNGY4MzhhNDJmOTQzOGM3ZjYzMzcgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43OTIyNDk0NjY2MzAzMywtNzMuOTQ0MTgyMjMxNDg1MjRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNjU5ZTZmYWQ4NzMxNDVmMzhlMjU5NTM5OGQyNTE0M2QgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZTNhN2Y1MThjZWUxNDIwMzkyZGQ2MjRiYTMyMTY5MTkgPSAkKCc8ZGl2IGlkPSJodG1sX2UzYTdmNTE4Y2VlMTQyMDM5MmRkNjI0YmEzMjE2OTE5IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5FYXN0IEhhcmxlbTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNjU5ZTZmYWQ4NzMxNDVmMzhlMjU5NTM5OGQyNTE0M2Quc2V0Q29udGVudChodG1sX2UzYTdmNTE4Y2VlMTQyMDM5MmRkNjI0YmEzMjE2OTE5KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzI1MTY5MDBmNDk0ZjRmODM4YTQyZjk0MzhjN2Y2MzM3LmJpbmRQb3B1cChwb3B1cF82NTllNmZhZDg3MzE0NWYzOGUyNTk1Mzk4ZDI1MTQzZCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl82MTA3OGYzMjkzNTE0ZGJiOGVjMzVlNjU5Nzg0NDU0MSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjc3NTYzODU3MzMwMTgwNSwtNzMuOTYwNTA3NjMxMzVdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYWUwNjk5M2E5MjQ3NDg5Y2E5MDVlZjJjMmViOWU5ZDEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfODhhOTM4OTRjNWU1NDA0MmE2YjAwMDhmNGI4ZWY0NzIgPSAkKCc8ZGl2IGlkPSJodG1sXzg4YTkzODk0YzVlNTQwNDJhNmIwMDA4ZjRiOGVmNDcyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5VcHBlciBFYXN0IFNpZGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2FlMDY5OTNhOTI0NzQ4OWNhOTA1ZWYyYzJlYjllOWQxLnNldENvbnRlbnQoaHRtbF84OGE5Mzg5NGM1ZTU0MDQyYTZiMDAwOGY0YjhlZjQ3Mik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl82MTA3OGYzMjkzNTE0ZGJiOGVjMzVlNjU5Nzg0NDU0MS5iaW5kUG9wdXAocG9wdXBfYWUwNjk5M2E5MjQ3NDg5Y2E5MDVlZjJjMmViOWU5ZDEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNTVlNmY3ZjdiNzdmNDdmY2JhODYzYTYwZDVlMmNhYWQgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43NzU5Mjk4NDk4ODQ4NzUsLTczLjk0NzExNzg0NDcxODI2XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzQyZTNhNzUxZGM4NTRlM2M5MDU3MzRiNzFjMzNmNjQxID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2E4ZDIzZGY4Y2ZjZTQzMmRiOTQ3ZDYzOTg3OTE4MTM5ID0gJCgnPGRpdiBpZD0iaHRtbF9hOGQyM2RmOGNmY2U0MzJkYjk0N2Q2Mzk4NzkxODEzOSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+WW9ya3ZpbGxlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80MmUzYTc1MWRjODU0ZTNjOTA1NzM0YjcxYzMzZjY0MS5zZXRDb250ZW50KGh0bWxfYThkMjNkZjhjZmNlNDMyZGI5NDdkNjM5ODc5MTgxMzkpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNTVlNmY3ZjdiNzdmNDdmY2JhODYzYTYwZDVlMmNhYWQuYmluZFBvcHVwKHBvcHVwXzQyZTNhNzUxZGM4NTRlM2M5MDU3MzRiNzFjMzNmNjQxKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2I4MjU3ODFhZWNkZTQ4MWFhMzdhYTI1ZmMzYmI5OWVlID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzY4MTEyNjU4Mjg3MzMsLTczLjk1ODg1OTY4ODEzNzZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNDEzMjJjN2RjOGVhNDg0NDgzYzQ4OWNlN2MwOTVhZmYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMjdhMjMzMTY3YTBmNDEzMGIzOTI2YzY1NDliODA3MzkgPSAkKCc8ZGl2IGlkPSJodG1sXzI3YTIzMzE2N2EwZjQxMzBiMzkyNmM2NTQ5YjgwNzM5IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5MZW5veCBIaWxsPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80MTMyMmM3ZGM4ZWE0ODQ0ODNjNDg5Y2U3YzA5NWFmZi5zZXRDb250ZW50KGh0bWxfMjdhMjMzMTY3YTBmNDEzMGIzOTI2YzY1NDliODA3MzkpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYjgyNTc4MWFlY2RlNDgxYWEzN2FhMjVmYzNiYjk5ZWUuYmluZFBvcHVwKHBvcHVwXzQxMzIyYzdkYzhlYTQ4NDQ4M2M0ODljZTdjMDk1YWZmKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzhkMGIzODMzMmVmMDRmZDk5YzJiZmYwNTczNDdjMTllID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzYyMTU5NjA1NzYyODMsLTczLjk0OTE2NzY5MjI3OTUzXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzVlMzc2YWViYjU3NzQ0ZTZiYWEzN2NiYjllNGY4ZjVjID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzg5MGRhNWExYmMyYzQ5OWQ5MzMyYzJjNmU5NmJjOTk4ID0gJCgnPGRpdiBpZD0iaHRtbF84OTBkYTVhMWJjMmM0OTlkOTMzMmMyYzZlOTZiYzk5OCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Um9vc2V2ZWx0IElzbGFuZDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNWUzNzZhZWJiNTc3NDRlNmJhYTM3Y2JiOWU0ZjhmNWMuc2V0Q29udGVudChodG1sXzg5MGRhNWExYmMyYzQ5OWQ5MzMyYzJjNmU5NmJjOTk4KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzhkMGIzODMzMmVmMDRmZDk5YzJiZmYwNTczNDdjMTllLmJpbmRQb3B1cChwb3B1cF81ZTM3NmFlYmI1Nzc0NGU2YmFhMzdjYmI5ZTRmOGY1Yyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8wMWRjZjUxNjNjYTg0NmIzYThhNGFkMTcxMjRmYjMzYyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjc4NzY1Nzk5ODUzNDg1NCwtNzMuOTc3MDU5MjM2MzA2MDNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZmY5YzgwMWEyYzZlNDNjNDkwYWY5YjgyNDE0MWJmZTcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfODM1M2E1NjdkNzBhNGE2MGE5ODMxMDQ3MDhiNzZkN2MgPSAkKCc8ZGl2IGlkPSJodG1sXzgzNTNhNTY3ZDcwYTRhNjBhOTgzMTA0NzA4Yjc2ZDdjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5VcHBlciBXZXN0IFNpZGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2ZmOWM4MDFhMmM2ZTQzYzQ5MGFmOWI4MjQxNDFiZmU3LnNldENvbnRlbnQoaHRtbF84MzUzYTU2N2Q3MGE0YTYwYTk4MzEwNDcwOGI3NmQ3Yyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8wMWRjZjUxNjNjYTg0NmIzYThhNGFkMTcxMjRmYjMzYy5iaW5kUG9wdXAocG9wdXBfZmY5YzgwMWEyYzZlNDNjNDkwYWY5YjgyNDE0MWJmZTcpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfM2I2ZjYxZjE3NzBiNDdkOGEzYWZiOTVmMzdkZjkwOWIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43NzM1Mjg4ODk0MjE2NiwtNzMuOTg1MzM3NzcwMDEyNjJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOTI0NTJlMDkwMDQwNGY1NjlmMjA5NDJiMTFhMzEyNTAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYzBjNThlOTRiN2M5NGM1Yzg4NzI2YzBjZjNiYWM3MTggPSAkKCc8ZGl2IGlkPSJodG1sX2MwYzU4ZTk0YjdjOTRjNWM4ODcyNmMwY2YzYmFjNzE4IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5MaW5jb2xuIFNxdWFyZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOTI0NTJlMDkwMDQwNGY1NjlmMjA5NDJiMTFhMzEyNTAuc2V0Q29udGVudChodG1sX2MwYzU4ZTk0YjdjOTRjNWM4ODcyNmMwY2YzYmFjNzE4KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzNiNmY2MWYxNzcwYjQ3ZDhhM2FmYjk1ZjM3ZGY5MDliLmJpbmRQb3B1cChwb3B1cF85MjQ1MmUwOTAwNDA0ZjU2OWYyMDk0MmIxMWEzMTI1MCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9mNzYwOWMwMjFhNGQ0NzQxYmRiNGFkZDk0Y2M4NjU2NiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjc1OTEwMDg5MTQ2MjEyLC03My45OTYxMTkzNjMwOTQ3OV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jNTE3MDNhNTRmOTQ0ZWFiYTk3NGFmZTRjMjU5MTVmMCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9hNTczN2M0YWQyNjM0ZDM3Yjc0N2E3NGM2ZDFiNGRjNCA9ICQoJzxkaXYgaWQ9Imh0bWxfYTU3MzdjNGFkMjYzNGQzN2I3NDdhNzRjNmQxYjRkYzQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNsaW50b248L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2M1MTcwM2E1NGY5NDRlYWJhOTc0YWZlNGMyNTkxNWYwLnNldENvbnRlbnQoaHRtbF9hNTczN2M0YWQyNjM0ZDM3Yjc0N2E3NGM2ZDFiNGRjNCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9mNzYwOWMwMjFhNGQ0NzQxYmRiNGFkZDk0Y2M4NjU2Ni5iaW5kUG9wdXAocG9wdXBfYzUxNzAzYTU0Zjk0NGVhYmE5NzRhZmU0YzI1OTE1ZjApOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNDIxZThjZDJkMGY4NDJmZmE4Yjg4MzA2Yzk0NmRmMTAgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43NTQ2OTExMDI3MDYyMywtNzMuOTgxNjY4ODI3MzAzMDRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfM2UxZTcwN2FmZDQ4NGEwZThhODI1YWNkNTk1ZjFhNTIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYTkxNWJkOGJmMTJiNGVhNmFiNTU4Y2E0NjU0OTk5NDMgPSAkKCc8ZGl2IGlkPSJodG1sX2E5MTViZDhiZjEyYjRlYTZhYjU1OGNhNDY1NDk5OTQzIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5NaWR0b3duPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8zZTFlNzA3YWZkNDg0YTBlOGE4MjVhY2Q1OTVmMWE1Mi5zZXRDb250ZW50KGh0bWxfYTkxNWJkOGJmMTJiNGVhNmFiNTU4Y2E0NjU0OTk5NDMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNDIxZThjZDJkMGY4NDJmZmE4Yjg4MzA2Yzk0NmRmMTAuYmluZFBvcHVwKHBvcHVwXzNlMWU3MDdhZmQ0ODRhMGU4YTgyNWFjZDU5NWYxYTUyKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2U2NmVhY2ViMzIxMDRiYjg4NThkY2NhMmIwOWRkNjVjID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzQ4MzAzMDc3MjUyMTc0LC03My45NzgzMzIwNzkyNDEyN10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8yYmY5NDliNWNiMTU0NWU2YjE3YzI1NGQ1NWJiN2QyNCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF82YWY3NjBiMGIxZGU0NmZmYWY0Mzc1YmE5Y2RhZmY5ZiA9ICQoJzxkaXYgaWQ9Imh0bWxfNmFmNzYwYjBiMWRlNDZmZmFmNDM3NWJhOWNkYWZmOWYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk11cnJheSBIaWxsPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8yYmY5NDliNWNiMTU0NWU2YjE3YzI1NGQ1NWJiN2QyNC5zZXRDb250ZW50KGh0bWxfNmFmNzYwYjBiMWRlNDZmZmFmNDM3NWJhOWNkYWZmOWYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZTY2ZWFjZWIzMjEwNGJiODg1OGRjY2EyYjA5ZGQ2NWMuYmluZFBvcHVwKHBvcHVwXzJiZjk0OWI1Y2IxNTQ1ZTZiMTdjMjU0ZDU1YmI3ZDI0KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzBlODdiMWNmM2IzYTQ0NGNhZWFmYThiODI1ZTA2Y2Q3ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzQ0MDM0NzA2NzQ3OTc1LC03NC4wMDMxMTYzMzQ3MjgxM10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9hN2EwNmE4MzY2YjQ0OTQ5YmE4NmY1MGFjMmY0NGZjNyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8yMjNhZjRmZjc5YWE0NmVhYmQwMjI4NTYzODlkZTZlYSA9ICQoJzxkaXYgaWQ9Imh0bWxfMjIzYWY0ZmY3OWFhNDZlYWJkMDIyODU2Mzg5ZGU2ZWEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNoZWxzZWE8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2E3YTA2YTgzNjZiNDQ5NDliYTg2ZjUwYWMyZjQ0ZmM3LnNldENvbnRlbnQoaHRtbF8yMjNhZjRmZjc5YWE0NmVhYmQwMjI4NTYzODlkZTZlYSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8wZTg3YjFjZjNiM2E0NDRjYWVhZmE4YjgyNWUwNmNkNy5iaW5kUG9wdXAocG9wdXBfYTdhMDZhODM2NmI0NDk0OWJhODZmNTBhYzJmNDRmYzcpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfM2MyYWQyYzQwYWQ5NGYwZWE3ZjEyZDc5ZWZlNWYwYzcgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MjY5MzI4ODUzNjEyOCwtNzMuOTk5OTE0MDI5NDU5MDJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNzg3YzhmOWNkMmY4NDdmOGI1YWQ3YTViMjI1YTZhNzkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYTIzNDZiODcyY2VjNDNmZGE3YzAyMWY3M2NjNGI5NzUgPSAkKCc8ZGl2IGlkPSJodG1sX2EyMzQ2Yjg3MmNlYzQzZmRhN2MwMjFmNzNjYzRiOTc1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5HcmVlbndpY2ggVmlsbGFnZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNzg3YzhmOWNkMmY4NDdmOGI1YWQ3YTViMjI1YTZhNzkuc2V0Q29udGVudChodG1sX2EyMzQ2Yjg3MmNlYzQzZmRhN2MwMjFmNzNjYzRiOTc1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzNjMmFkMmM0MGFkOTRmMGVhN2YxMmQ3OWVmZTVmMGM3LmJpbmRQb3B1cChwb3B1cF83ODdjOGY5Y2QyZjg0N2Y4YjVhZDdhNWIyMjVhNmE3OSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9mOGNkZjZjY2Q1ZWI0OTQzOGNmNTk4NDM0NjA4M2QyZiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjcyNzg0Njc3NzI3MDI0NCwtNzMuOTgyMjI2MTY1MDY0MTZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZDIwMGJiZTI1MDMwNGI1OGEwMDFhNjRlNjQxZmNhMDQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYjIwNTI4YzM3NmU5NDI2ZWI0NzdjNmYzMTRlZjBiMjkgPSAkKCc8ZGl2IGlkPSJodG1sX2IyMDUyOGMzNzZlOTQyNmViNDc3YzZmMzE0ZWYwYjI5IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5FYXN0IFZpbGxhZ2U8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2QyMDBiYmUyNTAzMDRiNThhMDAxYTY0ZTY0MWZjYTA0LnNldENvbnRlbnQoaHRtbF9iMjA1MjhjMzc2ZTk0MjZlYjQ3N2M2ZjMxNGVmMGIyOSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9mOGNkZjZjY2Q1ZWI0OTQzOGNmNTk4NDM0NjA4M2QyZi5iaW5kUG9wdXAocG9wdXBfZDIwMGJiZTI1MDMwNGI1OGEwMDFhNjRlNjQxZmNhMDQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMDkxZjJlYzViMGI3NDhjZmEzMjEzOTAzNTc2MjdhMDMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MTc4MDY3NDg5Mjc2NSwtNzMuOTgwODkwMzE5OTkyOTFdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMDZlY2IzMDM2ODVmNDY5MGE2ZjIzOGI1MTUxZGFlMjkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZjIzNGY3MjhhZTljNDM5NGExOGFmMTAxNDFjMDA0MGQgPSAkKCc8ZGl2IGlkPSJodG1sX2YyMzRmNzI4YWU5YzQzOTRhMThhZjEwMTQxYzAwNDBkIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Mb3dlciBFYXN0IFNpZGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzA2ZWNiMzAzNjg1ZjQ2OTBhNmYyMzhiNTE1MWRhZTI5LnNldENvbnRlbnQoaHRtbF9mMjM0ZjcyOGFlOWM0Mzk0YTE4YWYxMDE0MWMwMDQwZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8wOTFmMmVjNWIwYjc0OGNmYTMyMTM5MDM1NzYyN2EwMy5iaW5kUG9wdXAocG9wdXBfMDZlY2IzMDM2ODVmNDY5MGE2ZjIzOGI1MTUxZGFlMjkpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMjMzYjdmNjFhMWVlNDhjMmEyYWIyYjRlOWI1Y2ZhZjEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MjE1MjE5Njc0NDMyMTYsLTc0LjAxMDY4MzI4NTU5MDg3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzBmNTk5NGYzZDgwOTRmNjNiNTA5YWI3OTFlY2E2YTA1ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzdmOTYxY2EwZDIzNjQ3ODA5ZjQ0NzE0ZjFhYzM2Y2YzID0gJCgnPGRpdiBpZD0iaHRtbF83Zjk2MWNhMGQyMzY0NzgwOWY0NDcxNGYxYWMzNmNmMyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+VHJpYmVjYTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMGY1OTk0ZjNkODA5NGY2M2I1MDlhYjc5MWVjYTZhMDUuc2V0Q29udGVudChodG1sXzdmOTYxY2EwZDIzNjQ3ODA5ZjQ0NzE0ZjFhYzM2Y2YzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzIzM2I3ZjYxYTFlZTQ4YzJhMmFiMmI0ZTliNWNmYWYxLmJpbmRQb3B1cChwb3B1cF8wZjU5OTRmM2Q4MDk0ZjYzYjUwOWFiNzkxZWNhNmEwNSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8yOTVhOTcxYWE1ZGQ0MTY5OWJkZmQ2MjRkY2NmZWFiZiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjcxOTMyMzc5Mzk1OTA3LC03My45OTczMDQ2NzIwODA3M10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83NDgwN2VkNjNjNTA0MDQxOWZhY2NiZjVhN2Q2ZGQwYiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF82OTE4MmFmNjc0Nzk0NjgxYjcwYzRmMzM4MWMyYzdmYSA9ICQoJzxkaXYgaWQ9Imh0bWxfNjkxODJhZjY3NDc5NDY4MWI3MGM0ZjMzODFjMmM3ZmEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkxpdHRsZSBJdGFseTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNzQ4MDdlZDYzYzUwNDA0MTlmYWNjYmY1YTdkNmRkMGIuc2V0Q29udGVudChodG1sXzY5MTgyYWY2NzQ3OTQ2ODFiNzBjNGYzMzgxYzJjN2ZhKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzI5NWE5NzFhYTVkZDQxNjk5YmRmZDYyNGRjY2ZlYWJmLmJpbmRQb3B1cChwb3B1cF83NDgwN2VkNjNjNTA0MDQxOWZhY2NiZjVhN2Q2ZGQwYik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9jNjRiZTZiNmI0MDk0NjEwYjc4ZTE1MDE4MDI2MmU5YSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjcyMjE4Mzg0MTMxNzk0LC03NC4wMDA2NTY2Njk1OTc1OV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kYmMyN2FlM2E5MzY0NGNhYjRhZWJjMWMwMGY0MThjMSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF81ZDY3MDJhNzE0NWY0ZGM2ODI3NzZlYWRhNDQ0YjM2NiA9ICQoJzxkaXYgaWQ9Imh0bWxfNWQ2NzAyYTcxNDVmNGRjNjgyNzc2ZWFkYTQ0NGIzNjYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlNvaG88L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2RiYzI3YWUzYTkzNjQ0Y2FiNGFlYmMxYzAwZjQxOGMxLnNldENvbnRlbnQoaHRtbF81ZDY3MDJhNzE0NWY0ZGM2ODI3NzZlYWRhNDQ0YjM2Nik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9jNjRiZTZiNmI0MDk0NjEwYjc4ZTE1MDE4MDI2MmU5YS5iaW5kUG9wdXAocG9wdXBfZGJjMjdhZTNhOTM2NDRjYWI0YWViYzFjMDBmNDE4YzEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMjUxOTBmZDM5MTAyNDU0YTlhZGRhMzRlZTFiNjg2M2EgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MzQ0MzM5MzU3MjQzNCwtNzQuMDA2MTc5OTgxMjY4MTJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZTZhOTE0MTVhZGJhNDJjNGJjMDBmYjgyZjc5ZTRiZjggPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZDM0NDYzYzE2NzRjNDUwMTgwYmI3ODg0NWMyYmYzMWIgPSAkKCc8ZGl2IGlkPSJodG1sX2QzNDQ2M2MxNjc0YzQ1MDE4MGJiNzg4NDVjMmJmMzFiIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5XZXN0IFZpbGxhZ2U8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2U2YTkxNDE1YWRiYTQyYzRiYzAwZmI4MmY3OWU0YmY4LnNldENvbnRlbnQoaHRtbF9kMzQ0NjNjMTY3NGM0NTAxODBiYjc4ODQ1YzJiZjMxYik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8yNTE5MGZkMzkxMDI0NTRhOWFkZGEzNGVlMWI2ODYzYS5iaW5kUG9wdXAocG9wdXBfZTZhOTE0MTVhZGJhNDJjNGJjMDBmYjgyZjc5ZTRiZjgpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYzliZDA4MTBmNzk3NGZiNmE4ZmRjOWExMTk4OGM0OTYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43OTczMDcwNDE3MDI4NjUsLTczLjk2NDI4NjE3NzQwNjU1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2RiN2JhNDQ1NGQ4MTQ0MDBhZmEyYjYwM2NlYTRhZjc4ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2JhYTUyN2U1NGIxYTRiZGNhN2RlNGJjMWMyZjkyYzJmID0gJCgnPGRpdiBpZD0iaHRtbF9iYWE1MjdlNTRiMWE0YmRjYTdkZTRiYzFjMmY5MmMyZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TWFuaGF0dGFuIFZhbGxleTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZGI3YmE0NDU0ZDgxNDQwMGFmYTJiNjAzY2VhNGFmNzguc2V0Q29udGVudChodG1sX2JhYTUyN2U1NGIxYTRiZGNhN2RlNGJjMWMyZjkyYzJmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2M5YmQwODEwZjc5NzRmYjZhOGZkYzlhMTE5ODhjNDk2LmJpbmRQb3B1cChwb3B1cF9kYjdiYTQ0NTRkODE0NDAwYWZhMmI2MDNjZWE0YWY3OCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8zODExYWE2YzIxOGY0NTU5OWNkMDhjMzYzMWE3YTFmNSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjgwNzk5OTczODE2NTgyNiwtNzMuOTYzODk2Mjc5MDUzMzJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZjA0ZjE2ZDI4YzI1NDFkNzkzM2U2ZmExNTc4MDUxOWUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZGI2MDc0ZjFkNmFjNDc3NjlhYzA4Yjk4YThlOWY5NDUgPSAkKCc8ZGl2IGlkPSJodG1sX2RiNjA3NGYxZDZhYzQ3NzY5YWMwOGI5OGE4ZTlmOTQ1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Nb3JuaW5nc2lkZSBIZWlnaHRzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9mMDRmMTZkMjhjMjU0MWQ3OTMzZTZmYTE1NzgwNTE5ZS5zZXRDb250ZW50KGh0bWxfZGI2MDc0ZjFkNmFjNDc3NjlhYzA4Yjk4YThlOWY5NDUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMzgxMWFhNmMyMThmNDU1OTljZDA4YzM2MzFhN2ExZjUuYmluZFBvcHVwKHBvcHVwX2YwNGYxNmQyOGMyNTQxZDc5MzNlNmZhMTU3ODA1MTllKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzdiYzFhYzRjODRiNTQyODViNzBiMjI0NGNlZDhmYmM1ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzM3MjA5ODMyNzE1LC03My45ODEzNzU5NDgzMzU0MV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9iOTg3YmYxMjZmYzk0MmE5Yjk1Y2NjZTgwOWNjNTJmYyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9hNmI1Zjc5NjExOGM0ZjIwYTUzMWE5NzhiOTQ0M2UzYiA9ICQoJzxkaXYgaWQ9Imh0bWxfYTZiNWY3OTYxMThjNGYyMGE1MzFhOTc4Yjk0NDNlM2IiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkdyYW1lcmN5PC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iOTg3YmYxMjZmYzk0MmE5Yjk1Y2NjZTgwOWNjNTJmYy5zZXRDb250ZW50KGh0bWxfYTZiNWY3OTYxMThjNGYyMGE1MzFhOTc4Yjk0NDNlM2IpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfN2JjMWFjNGM4NGI1NDI4NWI3MGIyMjQ0Y2VkOGZiYzUuYmluZFBvcHVwKHBvcHVwX2I5ODdiZjEyNmZjOTQyYTliOTVjY2NlODA5Y2M1MmZjKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2NhZjA5ZTU1MDQ2NTQzMjRhYTg1OTdjMDQzMDZkMzhkID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzExOTMxOTgzOTQ1NjUsLTc0LjAxNjg2OTMwNTA4NjE3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzAxZTZlNTFkZmRmZTQ3NzU4Nzk2ODFjMzUyZmE5MTIyID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzJmZTkyMWVjZWMwYjQwMTJhZDJhM2I1YjY5MjY4NTg0ID0gJCgnPGRpdiBpZD0iaHRtbF8yZmU5MjFlY2VjMGI0MDEyYWQyYTNiNWI2OTI2ODU4NCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+QmF0dGVyeSBQYXJrIENpdHk8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzAxZTZlNTFkZmRmZTQ3NzU4Nzk2ODFjMzUyZmE5MTIyLnNldENvbnRlbnQoaHRtbF8yZmU5MjFlY2VjMGI0MDEyYWQyYTNiNWI2OTI2ODU4NCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9jYWYwOWU1NTA0NjU0MzI0YWE4NTk3YzA0MzA2ZDM4ZC5iaW5kUG9wdXAocG9wdXBfMDFlNmU1MWRmZGZlNDc3NTg3OTY4MWMzNTJmYTkxMjIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYTFkNTBhNmUxMDAwNDZmM2JjMWRlNTYzNGNlMzg2ZjcgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MDcxMDcxMDcyNzA0OCwtNzQuMDEwNjY1NDQ1MjEyN10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9mMDUxNDI1NmRjMGM0OTgwYTJhNWY3OTAxODM3YWUxYiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF82M2U3NzllMzQzODY0Mzc4OGE0NTIzZjhjZTYyZGNmZiA9ICQoJzxkaXYgaWQ9Imh0bWxfNjNlNzc5ZTM0Mzg2NDM3ODhhNDUyM2Y4Y2U2MmRjZmYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkZpbmFuY2lhbCBEaXN0cmljdDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZjA1MTQyNTZkYzBjNDk4MGEyYTVmNzkwMTgzN2FlMWIuc2V0Q29udGVudChodG1sXzYzZTc3OWUzNDM4NjQzNzg4YTQ1MjNmOGNlNjJkY2ZmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2ExZDUwYTZlMTAwMDQ2ZjNiYzFkZTU2MzRjZTM4NmY3LmJpbmRQb3B1cChwb3B1cF9mMDUxNDI1NmRjMGM0OTgwYTJhNWY3OTAxODM3YWUxYik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl85ZTIyYTM3N2FkMDI0NDI2ODdlNGI4NWI3YzBhNGE4OSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjc2ODUwODU5MzM1NDkyLC03My45MTU2NTM3NDMwNDIzNF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kZTNkZmMyYTRjZDQ0NjBmYWZkYTA4YjUyZjY1ZDcwNyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9mNmYxYWZkM2VkNGI0Mzg1YTgwNjk5ODY0NzcyMTFjMSA9ICQoJzxkaXYgaWQ9Imh0bWxfZjZmMWFmZDNlZDRiNDM4NWE4MDY5OTg2NDc3MjExYzEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkFzdG9yaWE8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2RlM2RmYzJhNGNkNDQ2MGZhZmRhMDhiNTJmNjVkNzA3LnNldENvbnRlbnQoaHRtbF9mNmYxYWZkM2VkNGI0Mzg1YTgwNjk5ODY0NzcyMTFjMSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl85ZTIyYTM3N2FkMDI0NDI2ODdlNGI4NWI3YzBhNGE4OS5iaW5kUG9wdXAocG9wdXBfZGUzZGZjMmE0Y2Q0NDYwZmFmZGEwOGI1MmY2NWQ3MDcpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZTE3MDE4NWM1ODA3NDZhYWJhZjE0OGY5YTgyNTU5MjUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43NDYzNDkwODg2MDIyMiwtNzMuOTAxODQxNjY4MzgyODRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNzg1ZThiMjMzY2VkNDI4ZjgzNjUzZWIxNTg1ZDJjOGIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMTI4MmI5NTQ1NTQwNDZlNWFmZGQ2NTA3OGZkNmE2M2UgPSAkKCc8ZGl2IGlkPSJodG1sXzEyODJiOTU0NTU0MDQ2ZTVhZmRkNjUwNzhmZDZhNjNlIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Xb29kc2lkZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNzg1ZThiMjMzY2VkNDI4ZjgzNjUzZWIxNTg1ZDJjOGIuc2V0Q29udGVudChodG1sXzEyODJiOTU0NTU0MDQ2ZTVhZmRkNjUwNzhmZDZhNjNlKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2UxNzAxODVjNTgwNzQ2YWFiYWYxNDhmOWE4MjU1OTI1LmJpbmRQb3B1cChwb3B1cF83ODVlOGIyMzNjZWQ0MjhmODM2NTNlYjE1ODVkMmM4Yik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl81ZWU1ZGE5YTQ3NGU0Mzg0YWEzMWU1ZjE1OWNkODU0YiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjc1MTk4MTM4MDA3MzY3LC03My44ODI4MjEwOTE2NDM2NV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9iYjYxMmRhMmQ2NDg0OTAyODYzNGUwMGRjYWRlYzY5OSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85Y2NjNDQ1YTIyYWE0NTcxYmViZDE2NzgyNTIxYmFkNyA9ICQoJzxkaXYgaWQ9Imh0bWxfOWNjYzQ0NWEyMmFhNDU3MWJlYmQxNjc4MjUyMWJhZDciIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkphY2tzb24gSGVpZ2h0czwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYmI2MTJkYTJkNjQ4NDkwMjg2MzRlMDBkY2FkZWM2OTkuc2V0Q29udGVudChodG1sXzljY2M0NDVhMjJhYTQ1NzFiZWJkMTY3ODI1MjFiYWQ3KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzVlZTVkYTlhNDc0ZTQzODRhYTMxZTVmMTU5Y2Q4NTRiLmJpbmRQb3B1cChwb3B1cF9iYjYxMmRhMmQ2NDg0OTAyODYzNGUwMGRjYWRlYzY5OSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8xYTYyNTUwM2I1YWI0N2ZkOGIyNzZmYjQ2ZTNkOTk0MSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjc0NDA0ODUwNTEyMjAyNCwtNzMuODgxNjU2MjIyODgzODhdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfY2UwZjBhNzNjNjdiNGFjMWIzYTg3NDQ4MmM0OTkzM2UgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYzdkZDM0MzFjZDdhNDdlYTlmMTkzNjEwZWRmM2IwNDQgPSAkKCc8ZGl2IGlkPSJodG1sX2M3ZGQzNDMxY2Q3YTQ3ZWE5ZjE5MzYxMGVkZjNiMDQ0IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5FbG1odXJzdDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfY2UwZjBhNzNjNjdiNGFjMWIzYTg3NDQ4MmM0OTkzM2Uuc2V0Q29udGVudChodG1sX2M3ZGQzNDMxY2Q3YTQ3ZWE5ZjE5MzYxMGVkZjNiMDQ0KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzFhNjI1NTAzYjVhYjQ3ZmQ4YjI3NmZiNDZlM2Q5OTQxLmJpbmRQb3B1cChwb3B1cF9jZTBmMGE3M2M2N2I0YWMxYjNhODc0NDgyYzQ5OTMzZSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl82ZTdlMmY2NTg2YzM0MjAxYTUyYjA5YTJhYjJlYTZiYiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY1NDIyNTI3NzM4NDg3LC03My44MzgxMzc2NDYwMDI4XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzM1MmRkYmYzMDAyMTQ2OWM5ODg4MGNiMTI0ZGExNWMzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzViODQzNjAxMmMyYTQ2OGRhYjdiZWNiYjY2NmRiMWI3ID0gJCgnPGRpdiBpZD0iaHRtbF81Yjg0MzYwMTJjMmE0NjhkYWI3YmVjYmI2NjZkYjFiNyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+SG93YXJkIEJlYWNoPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8zNTJkZGJmMzAwMjE0NjljOTg4ODBjYjEyNGRhMTVjMy5zZXRDb250ZW50KGh0bWxfNWI4NDM2MDEyYzJhNDY4ZGFiN2JlY2JiNjY2ZGIxYjcpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNmU3ZTJmNjU4NmMzNDIwMWE1MmIwOWEyYWIyZWE2YmIuYmluZFBvcHVwKHBvcHVwXzM1MmRkYmYzMDAyMTQ2OWM5ODg4MGNiMTI0ZGExNWMzKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2U3MjhlODdmOWQ0ZjQ3OWRiZDZkZDZkZGZhYTc4ZmM4ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzQyMzgxNzUwMTU2NjcsLTczLjg1NjgyNDk3MzQ1MjU4XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2YxNDRkMWFlYzFjNTRkYThhMDZjNmFjN2VlYWI2YTNkID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzMzMWNjYmRmNjQ5MzQ2MjY5YzNkNjMxOTQxNGRhZTlkID0gJCgnPGRpdiBpZD0iaHRtbF8zMzFjY2JkZjY0OTM0NjI2OWMzZDYzMTk0MTRkYWU5ZCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Q29yb25hPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9mMTQ0ZDFhZWMxYzU0ZGE4YTA2YzZhYzdlZWFiNmEzZC5zZXRDb250ZW50KGh0bWxfMzMxY2NiZGY2NDkzNDYyNjljM2Q2MzE5NDE0ZGFlOWQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZTcyOGU4N2Y5ZDRmNDc5ZGJkNmRkNmRkZmFhNzhmYzguYmluZFBvcHVwKHBvcHVwX2YxNDRkMWFlYzFjNTRkYThhMDZjNmFjN2VlYWI2YTNkKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzU3YzUyZTc4MzYyNDQ5YWY4ZTU2MzA4ZmRiNjMyMWYwID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzI1MjYzNzgyMTY1MDMsLTczLjg0NDQ3NTAwNzg4OTgzXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzNmNjUxNDVjODA0MzQ5MGQ4MWZiNjRlYjA0OWU0NDcyID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2EzZWRlZmM4MWZkMTRhMjViM2VkMDZkNzU5ZDg5ZjlkID0gJCgnPGRpdiBpZD0iaHRtbF9hM2VkZWZjODFmZDE0YTI1YjNlZDA2ZDc1OWQ4OWY5ZCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Rm9yZXN0IEhpbGxzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8zZjY1MTQ1YzgwNDM0OTBkODFmYjY0ZWIwNDllNDQ3Mi5zZXRDb250ZW50KGh0bWxfYTNlZGVmYzgxZmQxNGEyNWIzZWQwNmQ3NTlkODlmOWQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNTdjNTJlNzgzNjI0NDlhZjhlNTYzMDhmZGI2MzIxZjAuYmluZFBvcHVwKHBvcHVwXzNmNjUxNDVjODA0MzQ5MGQ4MWZiNjRlYjA0OWU0NDcyKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzkxNjEzM2VjYmM1NDQ3MGM4NDJiNDdiN2NmZDlmMDg1ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzA1MTc5MDM1NDE0OCwtNzMuODI5ODE5MDU4MjU3MDNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMzJkYzBhZjZhNzY5NGU2OWIzYjkwMDU5MDFhZDdlODIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNTVkZDhlYWE1NWY3NGQzYjlmMzJiZGE4NjBlZDM2MjggPSAkKCc8ZGl2IGlkPSJodG1sXzU1ZGQ4ZWFhNTVmNzRkM2I5ZjMyYmRhODYwZWQzNjI4IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5LZXcgR2FyZGVuczwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMzJkYzBhZjZhNzY5NGU2OWIzYjkwMDU5MDFhZDdlODIuc2V0Q29udGVudChodG1sXzU1ZGQ4ZWFhNTVmNzRkM2I5ZjMyYmRhODYwZWQzNjI4KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzkxNjEzM2VjYmM1NDQ3MGM4NDJiNDdiN2NmZDlmMDg1LmJpbmRQb3B1cChwb3B1cF8zMmRjMGFmNmE3Njk0ZTY5YjNiOTAwNTkwMWFkN2U4Mik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9hOTg3YmI3MmZmOTE0MGMzYjcxOWJmNDZiYzQxYzJiMiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY5Nzk0NzMxNDcxNzYzLC03My44MzE4MzMyMTQ0Njg4N10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82NjZjZmYzOWEzNDA0ZDgxOTZkYWI0NjBjM2JiMDcxMSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8yNjkxZTc4ZDhkMWI0YmIyYjE4YzQzNzEzZTMxZmZkNCA9ICQoJzxkaXYgaWQ9Imh0bWxfMjY5MWU3OGQ4ZDFiNGJiMmIxOGM0MzcxM2UzMWZmZDQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlJpY2htb25kIEhpbGw8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzY2NmNmZjM5YTM0MDRkODE5NmRhYjQ2MGMzYmIwNzExLnNldENvbnRlbnQoaHRtbF8yNjkxZTc4ZDhkMWI0YmIyYjE4YzQzNzEzZTMxZmZkNCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9hOTg3YmI3MmZmOTE0MGMzYjcxOWJmNDZiYzQxYzJiMi5iaW5kUG9wdXAocG9wdXBfNjY2Y2ZmMzlhMzQwNGQ4MTk2ZGFiNDYwYzNiYjA3MTEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMmVjZmRlNTUxYTEwNGI5ZDhkNjYzNzU1MzRlMWYzN2YgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43NjQ0NTQxOTY5Nzg0NiwtNzMuODMxNzczMDAzMjk1ODJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfN2IyOTFhZDI3YmQ4NDNlNGEyNmRlZWJjNmMzODc0MjggPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNzQ4NjgyYmEzYzRlNDQ0YWEzMjYwOGUwNDViYzM1MTYgPSAkKCc8ZGl2IGlkPSJodG1sXzc0ODY4MmJhM2M0ZTQ0NGFhMzI2MDhlMDQ1YmMzNTE2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5GbHVzaGluZzwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfN2IyOTFhZDI3YmQ4NDNlNGEyNmRlZWJjNmMzODc0Mjguc2V0Q29udGVudChodG1sXzc0ODY4MmJhM2M0ZTQ0NGFhMzI2MDhlMDQ1YmMzNTE2KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzJlY2ZkZTU1MWExMDRiOWQ4ZDY2Mzc1NTM0ZTFmMzdmLmJpbmRQb3B1cChwb3B1cF83YjI5MWFkMjdiZDg0M2U0YTI2ZGVlYmM2YzM4NzQyOCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8xZjVmMWQ5Nzc1YjE0ZTEwYTdlMDliMDU3N2I4NGMyYSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjc1MDIxNzM0NjEwNTI4LC03My45MzkyMDIyMzkxNTUwNV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82ZDdjMWY5ZWVkNTU0ZGExOWI1MWUxY2RlNTYxMjMzMCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8yMTg2ZWFlZTk5MWI0ZjFmYjQwZmI5OWNjM2Y0Y2QzOCA9ICQoJzxkaXYgaWQ9Imh0bWxfMjE4NmVhZWU5OTFiNGYxZmI0MGZiOTljYzNmNGNkMzgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkxvbmcgSXNsYW5kIENpdHk8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzZkN2MxZjllZWQ1NTRkYTE5YjUxZTFjZGU1NjEyMzMwLnNldENvbnRlbnQoaHRtbF8yMTg2ZWFlZTk5MWI0ZjFmYjQwZmI5OWNjM2Y0Y2QzOCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8xZjVmMWQ5Nzc1YjE0ZTEwYTdlMDliMDU3N2I4NGMyYS5iaW5kUG9wdXAocG9wdXBfNmQ3YzFmOWVlZDU1NGRhMTliNTFlMWNkZTU2MTIzMzApOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNDk1NTUwMmIzOTUxNDI2MTlkOWU2MzY5MjRmN2MwMmIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43NDAxNzYyODM1MTkyNCwtNzMuOTI2OTE2MTc1NjE1NzddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfN2FhYWQyNDBmZDQ4NGYwYzk4NWExZGY1NmU4ODEwM2YgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYjI0Y2Y3NTFkNWQyNGYwN2IxM2E4YjJmYWE0NjI3MWQgPSAkKCc8ZGl2IGlkPSJodG1sX2IyNGNmNzUxZDVkMjRmMDdiMTNhOGIyZmFhNDYyNzFkIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5TdW5ueXNpZGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzdhYWFkMjQwZmQ0ODRmMGM5ODVhMWRmNTZlODgxMDNmLnNldENvbnRlbnQoaHRtbF9iMjRjZjc1MWQ1ZDI0ZjA3YjEzYThiMmZhYTQ2MjcxZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl80OTU1NTAyYjM5NTE0MjYxOWQ5ZTYzNjkyNGY3YzAyYi5iaW5kUG9wdXAocG9wdXBfN2FhYWQyNDBmZDQ4NGYwYzk4NWExZGY1NmU4ODEwM2YpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYjlkMjM1Y2M4YzY1NGMyZGJkNjgyOGRkOTAzMmViZjkgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43NjQwNzMyMzg4MzA5MSwtNzMuODY3MDQxNDc2NTg3NzJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZjc2ZDcxYzNhMjJiNDgxYjlmYzIzOGVjY2NlN2NjZDggPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZDhjNDRjOTkxYjk4NDk3NWJiZGI2YWYyMWU4MTVkMmYgPSAkKCc8ZGl2IGlkPSJodG1sX2Q4YzQ0Yzk5MWI5ODQ5NzViYmRiNmFmMjFlODE1ZDJmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5FYXN0IEVsbWh1cnN0PC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9mNzZkNzFjM2EyMmI0ODFiOWZjMjM4ZWNjY2U3Y2NkOC5zZXRDb250ZW50KGh0bWxfZDhjNDRjOTkxYjk4NDk3NWJiZGI2YWYyMWU4MTVkMmYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYjlkMjM1Y2M4YzY1NGMyZGJkNjgyOGRkOTAzMmViZjkuYmluZFBvcHVwKHBvcHVwX2Y3NmQ3MWMzYTIyYjQ4MWI5ZmMyMzhlY2NjZTdjY2Q4KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzI3ODM4NGNkYTMyZjQyNjk4NzRkNjU4NzI2MzkzYWFhID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzI1NDI3Mzc0MDkzNjA2LC03My44OTYyMTcxMzYyNjg1OV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85YjQxZTE3ZjZhMzg0OTg3YTg1NzJmNzE0NjUzOWUwYSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF81ZjAxMWUyMDU3ZDI0YTdmODk4OGNkNTBlNzI5OTExOSA9ICQoJzxkaXYgaWQ9Imh0bWxfNWYwMTFlMjA1N2QyNGE3Zjg5ODhjZDUwZTcyOTkxMTkiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk1hc3BldGg8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzliNDFlMTdmNmEzODQ5ODdhODU3MmY3MTQ2NTM5ZTBhLnNldENvbnRlbnQoaHRtbF81ZjAxMWUyMDU3ZDI0YTdmODk4OGNkNTBlNzI5OTExOSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8yNzgzODRjZGEzMmY0MjY5ODc0ZDY1ODcyNjM5M2FhYS5iaW5kUG9wdXAocG9wdXBfOWI0MWUxN2Y2YTM4NDk4N2E4NTcyZjcxNDY1MzllMGEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMjYwNzhmYmM1MTUyNDE3MzliYjY3NmYzNzk2MDgxNDYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MDgzMjMxNTYxMzg1OCwtNzMuOTAxNDM1MTc1NTk1ODldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNzViYzhjYmIxMGQ5NDhmMWE5NDZlNTNhNjQ5NzU0N2YgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNWNiMzcyZjc3ZTU3NDUxNjgyZWM1ZThlYmU5NzBlMjkgPSAkKCc8ZGl2IGlkPSJodG1sXzVjYjM3MmY3N2U1NzQ1MTY4MmVjNWU4ZWJlOTcwZTI5IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5SaWRnZXdvb2Q8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzc1YmM4Y2JiMTBkOTQ4ZjFhOTQ2ZTUzYTY0OTc1NDdmLnNldENvbnRlbnQoaHRtbF81Y2IzNzJmNzdlNTc0NTE2ODJlYzVlOGViZTk3MGUyOSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8yNjA3OGZiYzUxNTI0MTczOWJiNjc2ZjM3OTYwODE0Ni5iaW5kUG9wdXAocG9wdXBfNzViYzhjYmIxMGQ5NDhmMWE5NDZlNTNhNjQ5NzU0N2YpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNzVlOTYwM2NmNzEwNDdiNGIyN2E0MjZiOGMwMTZjNDMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MDI3NjI0Mjk2NzgzOCwtNzMuODcwNzQxNjc0MzU2MDVdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNzM5MDMxMDc0MDM5NDAwMzlmMTk5YTg3YTc5YmMyMzQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZDY4ZWJmNTgyYmQ1NGNkNDkyMWYzYzc0M2E3YzliZGMgPSAkKCc8ZGl2IGlkPSJodG1sX2Q2OGViZjU4MmJkNTRjZDQ5MjFmM2M3NDNhN2M5YmRjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5HbGVuZGFsZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNzM5MDMxMDc0MDM5NDAwMzlmMTk5YTg3YTc5YmMyMzQuc2V0Q29udGVudChodG1sX2Q2OGViZjU4MmJkNTRjZDQ5MjFmM2M3NDNhN2M5YmRjKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzc1ZTk2MDNjZjcxMDQ3YjRiMjdhNDI2YjhjMDE2YzQzLmJpbmRQb3B1cChwb3B1cF83MzkwMzEwNzQwMzk0MDAzOWYxOTlhODdhNzliYzIzNCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9iMzBkYjRmMDZjZWY0NjY3ODBmZjk3NDA1MDY0N2ZiNCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjcyODk3NDA5NDgwNzM1LC03My44NTc4MjY4NjkwNTM3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2I1N2JmNDBjNDMzMzQwODY5M2NmNDljNzAwMjI4NDRmID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2JiZTQ2ZWRkODU4NTRjOTk5NjZkOTE3ZTdlMTI4MGY4ID0gJCgnPGRpdiBpZD0iaHRtbF9iYmU0NmVkZDg1ODU0Yzk5OTY2ZDkxN2U3ZTEyODBmOCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+UmVnbyBQYXJrPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iNTdiZjQwYzQzMzM0MDg2OTNjZjQ5YzcwMDIyODQ0Zi5zZXRDb250ZW50KGh0bWxfYmJlNDZlZGQ4NTg1NGM5OTk2NmQ5MTdlN2UxMjgwZjgpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYjMwZGI0ZjA2Y2VmNDY2NzgwZmY5NzQwNTA2NDdmYjQuYmluZFBvcHVwKHBvcHVwX2I1N2JmNDBjNDMzMzQwODY5M2NmNDljNzAwMjI4NDRmKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzc0N2U0YWYxNjljMjRhYWViNDliNGJmMGYwYjBmOWMxID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjg5ODg2ODc5MTU3ODksLTczLjg1ODExMDQ2NTU0MzJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMzkzMTQyZDg5NWIxNDc2ZTgwMmE4ZmIwZjI5YzdlMGEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNjRmODk0NDBlMjNiNGNiODllNzc2NzZmNjZiYTI0MDAgPSAkKCc8ZGl2IGlkPSJodG1sXzY0Zjg5NDQwZTIzYjRjYjg5ZTc3Njc2ZjY2YmEyNDAwIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Xb29kaGF2ZW48L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzM5MzE0MmQ4OTViMTQ3NmU4MDJhOGZiMGYyOWM3ZTBhLnNldENvbnRlbnQoaHRtbF82NGY4OTQ0MGUyM2I0Y2I4OWU3NzY3NmY2NmJhMjQwMCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl83NDdlNGFmMTY5YzI0YWFlYjQ5YjRiZjBmMGIwZjljMS5iaW5kUG9wdXAocG9wdXBfMzkzMTQyZDg5NWIxNDc2ZTgwMmE4ZmIwZjI5YzdlMGEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNzhhMTk0NWYxZmVmNDk4OWFjOTJjYzdlZDE0ODRiMzMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42ODA3MDg0NjgyNjU0MTUsLTczLjg0MzIwMjY2MTczNDQ3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzEyMDJkMmY0ZTEzOTQ3ZTY4NzU2NWFjMzc5MzYwZDE4ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzMyMzBlOTE3MTMyNjQwYjA5MWIxYWEyYTA4ZTFiZmJiID0gJCgnPGRpdiBpZD0iaHRtbF8zMjMwZTkxNzEzMjY0MGIwOTFiMWFhMmEwOGUxYmZiYiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+T3pvbmUgUGFyazwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMTIwMmQyZjRlMTM5NDdlNjg3NTY1YWMzNzkzNjBkMTguc2V0Q29udGVudChodG1sXzMyMzBlOTE3MTMyNjQwYjA5MWIxYWEyYTA4ZTFiZmJiKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzc4YTE5NDVmMWZlZjQ5ODlhYzkyY2M3ZWQxNDg0YjMzLmJpbmRQb3B1cChwb3B1cF8xMjAyZDJmNGUxMzk0N2U2ODc1NjVhYzM3OTM2MGQxOCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9iNDdlY2JmNjgyMTY0ZjllODY1NjNjNTM1NWFhN2JlNiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY2ODU0OTU3NzY3MTk1LC03My44MDk4NjQ3ODY0OTA0MV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9hOTQ3ZGFmMjI1ZjE0MzQwODE5ZDA5ZmExNTQwOTg3YyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9lNzRjOTBiNGI2MDc0Y2M2YWJjNTAzMmUyNzc1MTg0YSA9ICQoJzxkaXYgaWQ9Imh0bWxfZTc0YzkwYjRiNjA3NGNjNmFiYzUwMzJlMjc3NTE4NGEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlNvdXRoIE96b25lIFBhcms8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2E5NDdkYWYyMjVmMTQzNDA4MTlkMDlmYTE1NDA5ODdjLnNldENvbnRlbnQoaHRtbF9lNzRjOTBiNGI2MDc0Y2M2YWJjNTAzMmUyNzc1MTg0YSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9iNDdlY2JmNjgyMTY0ZjllODY1NjNjNTM1NWFhN2JlNi5iaW5kUG9wdXAocG9wdXBfYTk0N2RhZjIyNWYxNDM0MDgxOWQwOWZhMTU0MDk4N2MpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNWJlMTAxODIyMTkxNDVkN2FlZjk0MTk2N2E2YWVjY2UgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43ODQ5MDI3NDkyNjAyMDUsLTczLjg0MzA0NTI4ODk2MTI1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2U2NGFkY2Q2ZjhlNTRiZGRiZTk3MGY0ZDQxYWQ2Mzc4ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2Q0NmRmYTNlMDQ4NDQ3YzBhMjkwNmFlYzQxMDYxZjczID0gJCgnPGRpdiBpZD0iaHRtbF9kNDZkZmEzZTA0ODQ0N2MwYTI5MDZhZWM0MTA2MWY3MyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Q29sbGVnZSBQb2ludDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZTY0YWRjZDZmOGU1NGJkZGJlOTcwZjRkNDFhZDYzNzguc2V0Q29udGVudChodG1sX2Q0NmRmYTNlMDQ4NDQ3YzBhMjkwNmFlYzQxMDYxZjczKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzViZTEwMTgyMjE5MTQ1ZDdhZWY5NDE5NjdhNmFlY2NlLmJpbmRQb3B1cChwb3B1cF9lNjRhZGNkNmY4ZTU0YmRkYmU5NzBmNGQ0MWFkNjM3OCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl82ZGU4ZGE4ODI2NjY0NjgxOWYxYTVjZjE0NjhjZDMxMSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjc4MTI5MDc2NjAyNjk0LC03My44MTQyMDIxNjYxMDg2M10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84YzU3MzMyMTM2ZjM0OTEyOGJjMWRlOTA1ODNkYjYyYSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9kMDY2OGFkZjRhZDM0YjNjYjc1NWMzY2M5ZDVhOGFiNiA9ICQoJzxkaXYgaWQ9Imh0bWxfZDA2NjhhZGY0YWQzNGIzY2I3NTVjM2NjOWQ1YThhYjYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPldoaXRlc3RvbmU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzhjNTczMzIxMzZmMzQ5MTI4YmMxZGU5MDU4M2RiNjJhLnNldENvbnRlbnQoaHRtbF9kMDY2OGFkZjRhZDM0YjNjYjc1NWMzY2M5ZDVhOGFiNik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl82ZGU4ZGE4ODI2NjY0NjgxOWYxYTVjZjE0NjhjZDMxMS5iaW5kUG9wdXAocG9wdXBfOGM1NzMzMjEzNmYzNDkxMjhiYzFkZTkwNTgzZGI2MmEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfOTZkNzE2ZGQ1ZjA1NGI3NTg5OWQ2MjdjYmEyNDk2NTkgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43NjYwNDA2MzI4MTA2NCwtNzMuNzc0MjczNjMwNjg2N10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8zNDA1OGQ5MzJjMjE0NzU5OGE0ZGJmYmMyNjM0MDJlZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF80MTExZDk3ZDk0MDQ0MDExOGUzNGZkNWVlZDZkMzEyMiA9ICQoJzxkaXYgaWQ9Imh0bWxfNDExMWQ5N2Q5NDA0NDAxMThlMzRmZDVlZWQ2ZDMxMjIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJheXNpZGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzM0MDU4ZDkzMmMyMTQ3NTk4YTRkYmZiYzI2MzQwMmVmLnNldENvbnRlbnQoaHRtbF80MTExZDk3ZDk0MDQ0MDExOGUzNGZkNWVlZDZkMzEyMik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl85NmQ3MTZkZDVmMDU0Yjc1ODk5ZDYyN2NiYTI0OTY1OS5iaW5kUG9wdXAocG9wdXBfMzQwNThkOTMyYzIxNDc1OThhNGRiZmJjMjYzNDAyZWYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfY2QyNTRkZjM3YzBkNDNkMzgyMGUwYjQ2NTZjNGZkMzMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43NjE3Mjk1NDkwMzI2MiwtNzMuNzkxNzYyNDM3MjgwNjFdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNDA2M2Y1ZTQzMWE5NGY0NWFjMDQ1MDYzYTQwMGE1ZTQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYmVhZjc4NTRkZWY3NGQ4YTg0YzM0MDc4MDZhOWE0OGMgPSAkKCc8ZGl2IGlkPSJodG1sX2JlYWY3ODU0ZGVmNzRkOGE4NGMzNDA3ODA2YTlhNDhjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5BdWJ1cm5kYWxlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80MDYzZjVlNDMxYTk0ZjQ1YWMwNDUwNjNhNDAwYTVlNC5zZXRDb250ZW50KGh0bWxfYmVhZjc4NTRkZWY3NGQ4YTg0YzM0MDc4MDZhOWE0OGMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfY2QyNTRkZjM3YzBkNDNkMzgyMGUwYjQ2NTZjNGZkMzMuYmluZFBvcHVwKHBvcHVwXzQwNjNmNWU0MzFhOTRmNDVhYzA0NTA2M2E0MDBhNWU0KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2RkZThhZmM4NWUwMTQ3MTRiNDAzNWMxNjE5NWNlYWU3ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzcwODI2MTkyODI2NywtNzMuNzM4ODk3NzU1ODA3NF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83ZGE5OTk5NDkwOTQ0NDc1YjdkZTZhOGZiMmU4NTY3MiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF81NmY4NmI3ZjBmZmY0MjE4ODdkNjFmZjlmYTYxZjZkNiA9ICQoJzxkaXYgaWQ9Imh0bWxfNTZmODZiN2YwZmZmNDIxODg3ZDYxZmY5ZmE2MWY2ZDYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkxpdHRsZSBOZWNrPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF83ZGE5OTk5NDkwOTQ0NDc1YjdkZTZhOGZiMmU4NTY3Mi5zZXRDb250ZW50KGh0bWxfNTZmODZiN2YwZmZmNDIxODg3ZDYxZmY5ZmE2MWY2ZDYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZGRlOGFmYzg1ZTAxNDcxNGI0MDM1YzE2MTk1Y2VhZTcuYmluZFBvcHVwKHBvcHVwXzdkYTk5OTk0OTA5NDQ0NzViN2RlNmE4ZmIyZTg1NjcyKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2U4NTA0ZTZjNGEzMDQ1OTg4MWFiYjNjYmM4ZDNiYTU2ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzY2ODQ2MDk3OTA3NjMsLTczLjc0MjQ5ODIwNzI3MzNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZmI2YjBiMTBhZTc0NDhmMjg1M2YzNTJiNmM4NjFkNDUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfN2Q0N2Q1MzAwNDNmNDJlMzk5MjE2ODA3ZmE0OGI3MjIgPSAkKCc8ZGl2IGlkPSJodG1sXzdkNDdkNTMwMDQzZjQyZTM5OTIxNjgwN2ZhNDhiNzIyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Eb3VnbGFzdG9uPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9mYjZiMGIxMGFlNzQ0OGYyODUzZjM1MmI2Yzg2MWQ0NS5zZXRDb250ZW50KGh0bWxfN2Q0N2Q1MzAwNDNmNDJlMzk5MjE2ODA3ZmE0OGI3MjIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZTg1MDRlNmM0YTMwNDU5ODgxYWJiM2NiYzhkM2JhNTYuYmluZFBvcHVwKHBvcHVwX2ZiNmIwYjEwYWU3NDQ4ZjI4NTNmMzUyYjZjODYxZDQ1KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2M0YzI0MTkzNzViYjQyNTRhZGRmZmEyYjkwMmM4MDg4ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzQ5NDQwNzk5NzQzMzIsLTczLjcxNTQ4MTE4OTk5MTQ1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzViODhlZWJjZjIwOTRmNzViYzAxMmM2MWZlODkwMDg4ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2EzZmRkNmVjMTIwYzQzY2Q4ZWE5Y2YwZjEyYWZkMzk5ID0gJCgnPGRpdiBpZD0iaHRtbF9hM2ZkZDZlYzEyMGM0M2NkOGVhOWNmMGYxMmFmZDM5OSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+R2xlbiBPYWtzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF81Yjg4ZWViY2YyMDk0Zjc1YmMwMTJjNjFmZTg5MDA4OC5zZXRDb250ZW50KGh0bWxfYTNmZGQ2ZWMxMjBjNDNjZDhlYTljZjBmMTJhZmQzOTkpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYzRjMjQxOTM3NWJiNDI1NGFkZGZmYTJiOTAyYzgwODguYmluZFBvcHVwKHBvcHVwXzViODhlZWJjZjIwOTRmNzViYzAxMmM2MWZlODkwMDg4KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzZlMWI2YmQxYjhlNjQ2YjdhYzMwMzYxZTJiYTE3Yzc1ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzI4NTczMTgxNzY2NzUsLTczLjcyMDEyODE0ODI2OTAzXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2ZiMDQwNmMzYzY2NzQyZjA5M2I5MWQ5YTU4ZDk3ZTFmID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzMzNjdjOTIzOGE3NjQzODk5MTA2Zjk3NDE5Y2MzY2Y0ID0gJCgnPGRpdiBpZD0iaHRtbF8zMzY3YzkyMzhhNzY0Mzg5OTEwNmY5NzQxOWNjM2NmNCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+QmVsbGVyb3NlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9mYjA0MDZjM2M2Njc0MmYwOTNiOTFkOWE1OGQ5N2UxZi5zZXRDb250ZW50KGh0bWxfMzM2N2M5MjM4YTc2NDM4OTkxMDZmOTc0MTljYzNjZjQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNmUxYjZiZDFiOGU2NDZiN2FjMzAzNjFlMmJhMTdjNzUuYmluZFBvcHVwKHBvcHVwX2ZiMDQwNmMzYzY2NzQyZjA5M2I5MWQ5YTU4ZDk3ZTFmKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzA1MTI5MWJjYzQ1NjRhYjU5ODBiYTMzZmRmNzcyOTc0ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzIyNTc4MjQ0MjI4MDQ2LC03My44MjA4Nzc2NDkzMzU2Nl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84ZGMxYmE3MDJhMzg0MmUwODU1NDljMjRjNWM2NzlkZCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84NzRlNzg1N2RlN2E0ODIyYmQ1MjgxYzEyMGQ3NTc3ZiA9ICQoJzxkaXYgaWQ9Imh0bWxfODc0ZTc4NTdkZTdhNDgyMmJkNTI4MWMxMjBkNzU3N2YiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPktldyBHYXJkZW5zIEhpbGxzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF84ZGMxYmE3MDJhMzg0MmUwODU1NDljMjRjNWM2NzlkZC5zZXRDb250ZW50KGh0bWxfODc0ZTc4NTdkZTdhNDgyMmJkNTI4MWMxMjBkNzU3N2YpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMDUxMjkxYmNjNDU2NGFiNTk4MGJhMzNmZGY3NzI5NzQuYmluZFBvcHVwKHBvcHVwXzhkYzFiYTcwMmEzODQyZTA4NTU0OWMyNGM1YzY3OWRkKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2YwNTliZDA3N2MyMjRiYWVhYTBiM2U5MTliNWVmMTc3ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzM0Mzk0NDY1MzMxMywtNzMuNzgyNzEzMzcwMDMyNjRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYjFjMTg5NDQxYjNhNGM2Y2IzZTkwYTgwZjNjNjFmZjkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfM2E1NDA5ZDhhNTc3NGYzZDk1NmM3MDBmOGMzNjE2YTYgPSAkKCc8ZGl2IGlkPSJodG1sXzNhNTQwOWQ4YTU3NzRmM2Q5NTZjNzAwZjhjMzYxNmE2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5GcmVzaCBNZWFkb3dzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iMWMxODk0NDFiM2E0YzZjYjNlOTBhODBmM2M2MWZmOS5zZXRDb250ZW50KGh0bWxfM2E1NDA5ZDhhNTc3NGYzZDk1NmM3MDBmOGMzNjE2YTYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZjA1OWJkMDc3YzIyNGJhZWFhMGIzZTkxOWI1ZWYxNzcuYmluZFBvcHVwKHBvcHVwX2IxYzE4OTQ0MWIzYTRjNmNiM2U5MGE4MGYzYzYxZmY5KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzEwZmI1NGMxNjk0YTQxOWViYWM4YmFhM2QwNjI1YzMzID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzEwOTM1NDcyNTIyNzEsLTczLjgxMTc0ODIyNDU4NjM0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzc3MzkxODZjZTM5ZDQ1NTNiNmU0Nzk4MjMxYjM2MDBjID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzY1MzllM2QxZGVhNjQzODNhYjA3YTY2NmNiMjNmODBiID0gJCgnPGRpdiBpZD0iaHRtbF82NTM5ZTNkMWRlYTY0MzgzYWIwN2E2NjZjYjIzZjgwYiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+QnJpYXJ3b29kPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF83NzM5MTg2Y2UzOWQ0NTUzYjZlNDc5ODIzMWIzNjAwYy5zZXRDb250ZW50KGh0bWxfNjUzOWUzZDFkZWE2NDM4M2FiMDdhNjY2Y2IyM2Y4MGIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMTBmYjU0YzE2OTRhNDE5ZWJhYzhiYWEzZDA2MjVjMzMuYmluZFBvcHVwKHBvcHVwXzc3MzkxODZjZTM5ZDQ1NTNiNmU0Nzk4MjMxYjM2MDBjKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2IxODkwZjY5YjRjMjQwNDQ5NzMyMzU3MTgxNTYwN2VhID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzA0NjU3MzYwNjg3MTcsLTczLjc5NjkwMTY1ODg4Mjg5XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2RmMThmMGQwZDMwMzQxMWQ5YzNiYzZmZWEyNGNkZjM3ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzdjYTNlYzQ1YTc3YTQwZjY5NWY3NzYxN2MwODYwYjE5ID0gJCgnPGRpdiBpZD0iaHRtbF83Y2EzZWM0NWE3N2E0MGY2OTVmNzc2MTdjMDg2MGIxOSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+SmFtYWljYSBDZW50ZXI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2RmMThmMGQwZDMwMzQxMWQ5YzNiYzZmZWEyNGNkZjM3LnNldENvbnRlbnQoaHRtbF83Y2EzZWM0NWE3N2E0MGY2OTVmNzc2MTdjMDg2MGIxOSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9iMTg5MGY2OWI0YzI0MDQ0OTczMjM1NzE4MTU2MDdlYS5iaW5kUG9wdXAocG9wdXBfZGYxOGYwZDBkMzAzNDExZDljM2JjNmZlYTI0Y2RmMzcpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNzEzOTA5NzE5YWNjNGQzZjkyYzBiODZiMTc3M2ZiZmQgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43NDU2MTg1NzE0MTg1NSwtNzMuNzU0OTQ5NzYyMzQzMzJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYTg4MTA3NGZlYzg2NDc3NWI1OTkzZmY4MjAyOGI0NDggPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMDliYTVkNzAwMzNhNDJjYmI5NDMyZDc2MjUzYmZjZDIgPSAkKCc8ZGl2IGlkPSJodG1sXzA5YmE1ZDcwMDMzYTQyY2JiOTQzMmQ3NjI1M2JmY2QyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5PYWtsYW5kIEdhcmRlbnM8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2E4ODEwNzRmZWM4NjQ3NzViNTk5M2ZmODIwMjhiNDQ4LnNldENvbnRlbnQoaHRtbF8wOWJhNWQ3MDAzM2E0MmNiYjk0MzJkNzYyNTNiZmNkMik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl83MTM5MDk3MTlhY2M0ZDNmOTJjMGI4NmIxNzczZmJmZC5iaW5kUG9wdXAocG9wdXBfYTg4MTA3NGZlYzg2NDc3NWI1OTkzZmY4MjAyOGI0NDgpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNzM5NThjOWM4Zjk0NGI2NmFjZWRkODlmNzI5NWVlMjAgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MTg4OTMwOTIxNjczNTYsLTczLjczODcxNDg0NTc4NDI0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzhiMTgyZjM5MWVjMzQzZmY5NzAxNzBlMDY0MjQ0M2YwID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzQ1NmM1YjJkZWUxOTQyOGM4M2MxNWEwYTRjNGM3NjBkID0gJCgnPGRpdiBpZD0iaHRtbF80NTZjNWIyZGVlMTk0MjhjODNjMTVhMGE0YzRjNzYwZCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+UXVlZW5zIFZpbGxhZ2U8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzhiMTgyZjM5MWVjMzQzZmY5NzAxNzBlMDY0MjQ0M2YwLnNldENvbnRlbnQoaHRtbF80NTZjNWIyZGVlMTk0MjhjODNjMTVhMGE0YzRjNzYwZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl83Mzk1OGM5YzhmOTQ0YjY2YWNlZGQ4OWY3Mjk1ZWUyMC5iaW5kUG9wdXAocG9wdXBfOGIxODJmMzkxZWMzNDNmZjk3MDE3MGUwNjQyNDQzZjApOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMWM1MzNiMmJlYzQxNGMwMWIyYzdiZGVmNjJhNDRhYTMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MTEyNDM0NDE5MTkwNCwtNzMuNzU5MjUwMDkzMzU1OTRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfODk0OWZkZDFhNjVkNGY0MjkwYzFhZjJiNmUxMWI5OTkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOWI4OGIyN2YwMDI3NDA5N2IxZDkyOGM5ODE5YWQxNjggPSAkKCc8ZGl2IGlkPSJodG1sXzliODhiMjdmMDAyNzQwOTdiMWQ5MjhjOTgxOWFkMTY4IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Ib2xsaXM8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzg5NDlmZGQxYTY1ZDRmNDI5MGMxYWYyYjZlMTFiOTk5LnNldENvbnRlbnQoaHRtbF85Yjg4YjI3ZjAwMjc0MDk3YjFkOTI4Yzk4MTlhZDE2OCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8xYzUzM2IyYmVjNDE0YzAxYjJjN2JkZWY2MmE0NGFhMy5iaW5kUG9wdXAocG9wdXBfODk0OWZkZDFhNjVkNGY0MjkwYzFhZjJiNmUxMWI5OTkpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZWM0MjlhOWQ1ODkzNGNkYWFmY2YwMGZmMjM2MzA1NTkgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42OTY5MTEyNTM3ODk4ODUsLTczLjc5MDQyNjEzMTM1NTRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfODEyMjkyYjllNTQ0NGNiMmJhYmU2NGIyN2M1NTM0OTYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYjJhYTdmYjU2NTE3NGU5ZjlmMGYyZTgyYjc4YTYzZGUgPSAkKCc8ZGl2IGlkPSJodG1sX2IyYWE3ZmI1NjUxNzRlOWY5ZjBmMmU4MmI3OGE2M2RlIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Tb3V0aCBKYW1haWNhPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF84MTIyOTJiOWU1NDQ0Y2IyYmFiZTY0YjI3YzU1MzQ5Ni5zZXRDb250ZW50KGh0bWxfYjJhYTdmYjU2NTE3NGU5ZjlmMGYyZTgyYjc4YTYzZGUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZWM0MjlhOWQ1ODkzNGNkYWFmY2YwMGZmMjM2MzA1NTkuYmluZFBvcHVwKHBvcHVwXzgxMjI5MmI5ZTU0NDRjYjJiYWJlNjRiMjdjNTUzNDk2KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzg1YTFhMzkyMDVhMjRlMGY4MmJlNzhhNWVjYzJmODY2ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjk0NDQ1Mzg1MjIzNTksLTczLjc1ODY3NjAzNzI3NzE3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2RhZWQ1ZTEzOGNmNDQ5MmQ5YjIwMGEwMWI4YzhhYjAyID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzc1NGI0NmI3MzkyYzQzOWNiMDFmMTQyY2RkYzI1NWMxID0gJCgnPGRpdiBpZD0iaHRtbF83NTRiNDZiNzM5MmM0MzljYjAxZjE0MmNkZGMyNTVjMSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+U3QuIEFsYmFuczwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZGFlZDVlMTM4Y2Y0NDkyZDliMjAwYTAxYjhjOGFiMDIuc2V0Q29udGVudChodG1sXzc1NGI0NmI3MzkyYzQzOWNiMDFmMTQyY2RkYzI1NWMxKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzg1YTFhMzkyMDVhMjRlMGY4MmJlNzhhNWVjYzJmODY2LmJpbmRQb3B1cChwb3B1cF9kYWVkNWUxMzhjZjQ0OTJkOWIyMDBhMDFiOGM4YWIwMik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8xYmIzOTU2MmQ0ODM0ZDBkOGU1NDE5Yjg0ODVjNWY5YSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY3NTIxMTM5NTkxNzMzLC03My43NzI1ODc4NzYyMDkwNl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9hMDJiNWFjNDUzMjY0YjAwOGRkZWQ5ODE2YzNiMzBjNCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF82MzYxMGVmNGU5MGE0ZGQwYTgyMjk4ZDM4ZWYwZTJlNCA9ICQoJzxkaXYgaWQ9Imh0bWxfNjM2MTBlZjRlOTBhNGRkMGE4MjI5OGQzOGVmMGUyZTQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlJvY2hkYWxlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hMDJiNWFjNDUzMjY0YjAwOGRkZWQ5ODE2YzNiMzBjNC5zZXRDb250ZW50KGh0bWxfNjM2MTBlZjRlOTBhNGRkMGE4MjI5OGQzOGVmMGUyZTQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMWJiMzk1NjJkNDgzNGQwZDhlNTQxOWI4NDg1YzVmOWEuYmluZFBvcHVwKHBvcHVwX2EwMmI1YWM0NTMyNjRiMDA4ZGRlZDk4MTZjM2IzMGM0KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2U3NTViMTBhNzg5OTQzYjFhYWNhZDQwYmVhZTFkZjE4ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjY2MjMwNDkwMzY4NTg0LC03My43NjA0MjA5MjY4MjI4N10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8xYjg2MGVjZTM4NDk0MTI4YWZmNTM5ZDQ1ZjIyNzU5YyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8zYTI0MzhkODdkZGU0NDFmYjQ0ZGVkZjgxYzg1MTE4OSA9ICQoJzxkaXYgaWQ9Imh0bWxfM2EyNDM4ZDg3ZGRlNDQxZmI0NGRlZGY4MWM4NTExODkiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlNwcmluZ2ZpZWxkIEdhcmRlbnM8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzFiODYwZWNlMzg0OTQxMjhhZmY1MzlkNDVmMjI3NTljLnNldENvbnRlbnQoaHRtbF8zYTI0MzhkODdkZGU0NDFmYjQ0ZGVkZjgxYzg1MTE4OSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9lNzU1YjEwYTc4OTk0M2IxYWFjYWQ0MGJlYWUxZGYxOC5iaW5kUG9wdXAocG9wdXBfMWI4NjBlY2UzODQ5NDEyOGFmZjUzOWQ0NWYyMjc1OWMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYzE2YzJkZjc5Y2Y0NDRjNTg2NWJhZTk2ODc3N2M5ZTcgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42OTI3NzQ2MzkxNjA4NDUsLTczLjczNTI2ODczNzA4MDI2XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzYwNzU1ZmI3MmI3NTQwNjFhZGNiN2ZiM2NhNTBjMWViID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzNmNjQ3ODVkYTczYjQzMWFhZDA1NTVlMzJiNTc4ZTAyID0gJCgnPGRpdiBpZD0iaHRtbF8zZjY0Nzg1ZGE3M2I0MzFhYWQwNTU1ZTMyYjU3OGUwMiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Q2FtYnJpYSBIZWlnaHRzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82MDc1NWZiNzJiNzU0MDYxYWRjYjdmYjNjYTUwYzFlYi5zZXRDb250ZW50KGh0bWxfM2Y2NDc4NWRhNzNiNDMxYWFkMDU1NWUzMmI1NzhlMDIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYzE2YzJkZjc5Y2Y0NDRjNTg2NWJhZTk2ODc3N2M5ZTcuYmluZFBvcHVwKHBvcHVwXzYwNzU1ZmI3MmI3NTQwNjFhZGNiN2ZiM2NhNTBjMWViKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzBlYTM0ZDc4MWE1ZjQ1ZjlhNzE4ZjJjZDdiOTQ5Y2I0ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjU5ODE2NDMzNDI4MDg0LC03My43MzUyNjA3OTQyODI3OF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82OWUxOTlhZjA3MWQ0MjRjOTIzZDRkNmVkOTdhMTdlNyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8xNzFlYjNkYWE3NDI0OGViODY1ZGI1MjllMzJhNmI1YyA9ICQoJzxkaXYgaWQ9Imh0bWxfMTcxZWIzZGFhNzQyNDhlYjg2NWRiNTI5ZTMyYTZiNWMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlJvc2VkYWxlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82OWUxOTlhZjA3MWQ0MjRjOTIzZDRkNmVkOTdhMTdlNy5zZXRDb250ZW50KGh0bWxfMTcxZWIzZGFhNzQyNDhlYjg2NWRiNTI5ZTMyYTZiNWMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMGVhMzRkNzgxYTVmNDVmOWE3MThmMmNkN2I5NDljYjQuYmluZFBvcHVwKHBvcHVwXzY5ZTE5OWFmMDcxZDQyNGM5MjNkNGQ2ZWQ5N2ExN2U3KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzVjY2M5NWVlZjQ4OTRiODVhNmExZWUzYTlhNDhhZDgyID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjAzMTM0NDMyNTAwODk0LC03My43NTQ5Nzk2ODA0Mzg3Ml0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8yZTVmYjEwNDM1ODQ0NmIwOGIxNTUzZTA2NzBiNDM2ZCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9mNDg0MjI3NTRlZDU0ZDVhOTBlYzAzYjAxMzI0ZDM0MyA9ICQoJzxkaXYgaWQ9Imh0bWxfZjQ4NDIyNzU0ZWQ1NGQ1YTkwZWMwM2IwMTMyNGQzNDMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkZhciBSb2NrYXdheTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMmU1ZmIxMDQzNTg0NDZiMDhiMTU1M2UwNjcwYjQzNmQuc2V0Q29udGVudChodG1sX2Y0ODQyMjc1NGVkNTRkNWE5MGVjMDNiMDEzMjRkMzQzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzVjY2M5NWVlZjQ4OTRiODVhNmExZWUzYTlhNDhhZDgyLmJpbmRQb3B1cChwb3B1cF8yZTVmYjEwNDM1ODQ0NmIwOGIxNTUzZTA2NzBiNDM2ZCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl80NGYyNGVkZmUzN2Q0OGY5ODM0Y2I0MmQzZGIwMDExNCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjYwMzAyNjU4MzUxMjM4LC03My44MjAwNTQ4OTExMDMyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzQ3MWM3ODRlOWM4NjRiYTg5NDVhNWQwYjJiM2E4YTI2ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2Y0ZWYwNmEyYzg3ZjRmMmQ5NjUyYzA3Y2JhYjM0ZmE2ID0gJCgnPGRpdiBpZD0iaHRtbF9mNGVmMDZhMmM4N2Y0ZjJkOTY1MmMwN2NiYWIzNGZhNiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+QnJvYWQgQ2hhbm5lbDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNDcxYzc4NGU5Yzg2NGJhODk0NWE1ZDBiMmIzYThhMjYuc2V0Q29udGVudChodG1sX2Y0ZWYwNmEyYzg3ZjRmMmQ5NjUyYzA3Y2JhYjM0ZmE2KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzQ0ZjI0ZWRmZTM3ZDQ4Zjk4MzRjYjQyZDNkYjAwMTE0LmJpbmRQb3B1cChwb3B1cF80NzFjNzg0ZTljODY0YmE4OTQ1YTVkMGIyYjNhOGEyNik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl81MzY5NGM0YmUyMjE0N2JiYTI3NGY2OTVhZDc2MGVmZiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU1NzQwMTI4ODQ1NDUyLC03My45MjU1MTE5Njk5NDE2OF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83Y2UxM2JlYjdlNDc0ZDIyYTY4MzI5ZGJiZmQ5N2EyYyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9jOTNkNjNlMzMxMmY0ODc5OWM4NTYyMGNmM2ZjNjA1MiA9ICQoJzxkaXYgaWQ9Imh0bWxfYzkzZDYzZTMzMTJmNDg3OTljODU2MjBjZjNmYzYwNTIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJyZWV6eSBQb2ludDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfN2NlMTNiZWI3ZTQ3NGQyMmE2ODMyOWRiYmZkOTdhMmMuc2V0Q29udGVudChodG1sX2M5M2Q2M2UzMzEyZjQ4Nzk5Yzg1NjIwY2YzZmM2MDUyKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzUzNjk0YzRiZTIyMTQ3YmJhMjc0ZjY5NWFkNzYwZWZmLmJpbmRQb3B1cChwb3B1cF83Y2UxM2JlYjdlNDc0ZDIyYTY4MzI5ZGJiZmQ5N2EyYyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl81ZDg0OWFhMmU2MGM0NjIyOTQ0ZjQxMjc1ZmJmOWNkOSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjc3NTkyMzAxNTY0Mjg5NiwtNzMuOTAyMjg5NjAzOTE2NzNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZThkNTA5NjAwMDg0NDk5NWJmMjhkNDRjMWM4NThkZDQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZGQ5NmE3YTRmYmZlNDE2Y2I5NWY3NjdmM2Y2NWRjMzYgPSAkKCc8ZGl2IGlkPSJodG1sX2RkOTZhN2E0ZmJmZTQxNmNiOTVmNzY3ZjNmNjVkYzM2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5TdGVpbndheTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZThkNTA5NjAwMDg0NDk5NWJmMjhkNDRjMWM4NThkZDQuc2V0Q29udGVudChodG1sX2RkOTZhN2E0ZmJmZTQxNmNiOTVmNzY3ZjNmNjVkYzM2KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzVkODQ5YWEyZTYwYzQ2MjI5NDRmNDEyNzVmYmY5Y2Q5LmJpbmRQb3B1cChwb3B1cF9lOGQ1MDk2MDAwODQ0OTk1YmYyOGQ0NGMxYzg1OGRkNCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8wZWNhM2I3ZjJiMTc0NzM4OTZlNzNkZmE0ODJiY2ZiMSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjc5Mjc4MTQwMzYwMDQ4LC03My44MDQzNjQ1MTcyMDk4OF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF80OTMzMWJlZjM3Yzc0NWQwOGM0MmIzOTZiZDVmMzEwNyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8xOTAwYTg5OTU1Mzk0OGExODlhMGQwZjk0OTVmNmZmYyA9ICQoJzxkaXYgaWQ9Imh0bWxfMTkwMGE4OTk1NTM5NDhhMTg5YTBkMGY5NDk1ZjZmZmMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJlZWNoaHVyc3Q8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzQ5MzMxYmVmMzdjNzQ1ZDA4YzQyYjM5NmJkNWYzMTA3LnNldENvbnRlbnQoaHRtbF8xOTAwYTg5OTU1Mzk0OGExODlhMGQwZjk0OTVmNmZmYyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8wZWNhM2I3ZjJiMTc0NzM4OTZlNzNkZmE0ODJiY2ZiMS5iaW5kUG9wdXAocG9wdXBfNDkzMzFiZWYzN2M3NDVkMDhjNDJiMzk2YmQ1ZjMxMDcpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZjYwYjBiMjhiMjA0NDcxYjljYTUxY2ZjMTVkNDQ1N2YgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43ODI4NDI4MDYyNDU1NTQsLTczLjc3NjgwMjIyNjIxNThdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYmU0YzAzMjc3NzI0NDlmNThlMzQ0OTNkYTU2YzFlYTkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMGVkM2IxNTZjZjEwNDM0ZGFiYTg5MDgyNzk4ZWY2YjMgPSAkKCc8ZGl2IGlkPSJodG1sXzBlZDNiMTU2Y2YxMDQzNGRhYmE4OTA4Mjc5OGVmNmIzIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5CYXkgVGVycmFjZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYmU0YzAzMjc3NzI0NDlmNThlMzQ0OTNkYTU2YzFlYTkuc2V0Q29udGVudChodG1sXzBlZDNiMTU2Y2YxMDQzNGRhYmE4OTA4Mjc5OGVmNmIzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2Y2MGIwYjI4YjIwNDQ3MWI5Y2E1MWNmYzE1ZDQ0NTdmLmJpbmRQb3B1cChwb3B1cF9iZTRjMDMyNzc3MjQ0OWY1OGUzNDQ5M2RhNTZjMWVhOSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9hY2IxYWNiODkxOGI0YWFiYjgwNzRmMTQ0MzA3YjRiZCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU5NTY0MTgwNzM2ODQ5NCwtNzMuNzc2MTMyODIzOTE3MDVdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNzEzNWUwNWE2NzM3NDg4M2JhOWI2MmRkNTI5NTQ4ZDUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMTY1MGQzOWE4YzIyNDA2MDhlY2E5ODNlMjhiMDdlZTggPSAkKCc8ZGl2IGlkPSJodG1sXzE2NTBkMzlhOGMyMjQwNjA4ZWNhOTgzZTI4YjA3ZWU4IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5FZGdlbWVyZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNzEzNWUwNWE2NzM3NDg4M2JhOWI2MmRkNTI5NTQ4ZDUuc2V0Q29udGVudChodG1sXzE2NTBkMzlhOGMyMjQwNjA4ZWNhOTgzZTI4YjA3ZWU4KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2FjYjFhY2I4OTE4YjRhYWJiODA3NGYxNDQzMDdiNGJkLmJpbmRQb3B1cChwb3B1cF83MTM1ZTA1YTY3Mzc0ODgzYmE5YjYyZGQ1Mjk1NDhkNSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8wZjFkNzBjODExNjY0NWJjOThhZjU3NGFmZDZkOTRhNiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU4OTE0Mzk0MzcyOTcxLC03My43OTE5OTIzMzEzNjk0M10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8yZWFhYzQzNTY2Y2M0ZDliYTQ2ZmFmZDQ1NmU0NDkzNyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9lNjdhZjI0MDIxYWQ0YTVlOGFkOTkyZDE3NjJmNmFkMyA9ICQoJzxkaXYgaWQ9Imh0bWxfZTY3YWYyNDAyMWFkNGE1ZThhZDk5MmQxNzYyZjZhZDMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkFydmVybmU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzJlYWFjNDM1NjZjYzRkOWJhNDZmYWZkNDU2ZTQ0OTM3LnNldENvbnRlbnQoaHRtbF9lNjdhZjI0MDIxYWQ0YTVlOGFkOTkyZDE3NjJmNmFkMyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8wZjFkNzBjODExNjY0NWJjOThhZjU3NGFmZDZkOTRhNi5iaW5kUG9wdXAocG9wdXBfMmVhYWM0MzU2NmNjNGQ5YmE0NmZhZmQ0NTZlNDQ5MzcpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNThjODkyNzc5YjhiNDA0Nzg0NzVlMTAwNzVjODFmZDEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41ODI4MDE2OTY4NDU1ODYsLTczLjgyMjM2MTIxMDg4NzUxXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzlhMjNhY2NmZjQ4ODRjNmNiN2FmZTQyMzFjOWZmMjBjID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2EyMTI4ZTE3NDE1MTQ0ZmZhODJkNTgxNmE1MjZkOTRlID0gJCgnPGRpdiBpZD0iaHRtbF9hMjEyOGUxNzQxNTE0NGZmYTgyZDU4MTZhNTI2ZDk0ZSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Um9ja2F3YXkgQmVhY2g8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzlhMjNhY2NmZjQ4ODRjNmNiN2FmZTQyMzFjOWZmMjBjLnNldENvbnRlbnQoaHRtbF9hMjEyOGUxNzQxNTE0NGZmYTgyZDU4MTZhNTI2ZDk0ZSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl81OGM4OTI3NzliOGI0MDQ3ODQ3NWUxMDA3NWM4MWZkMS5iaW5kUG9wdXAocG9wdXBfOWEyM2FjY2ZmNDg4NGM2Y2I3YWZlNDIzMWM5ZmYyMGMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYThiYTZhNmFjMzI0NGRiZWIxYjdhMzJjNWEyOWQzMjggPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41NzIwMzY3MzAyMTcwMTUsLTczLjg1NzU0NjcyNDEwODI3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzU5NjZiZWNjMjFlMjRhMWY5MTM0MjczMzQ1Y2Q5MzIzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzNjMWM1YTlhZTI4YTQwZDM4MDFkNWI1YWFiYzRlYzUyID0gJCgnPGRpdiBpZD0iaHRtbF8zYzFjNWE5YWUyOGE0MGQzODAxZDViNWFhYmM0ZWM1MiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TmVwb25zaXQ8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzU5NjZiZWNjMjFlMjRhMWY5MTM0MjczMzQ1Y2Q5MzIzLnNldENvbnRlbnQoaHRtbF8zYzFjNWE5YWUyOGE0MGQzODAxZDViNWFhYmM0ZWM1Mik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9hOGJhNmE2YWMzMjQ0ZGJlYjFiN2EzMmM1YTI5ZDMyOC5iaW5kUG9wdXAocG9wdXBfNTk2NmJlY2MyMWUyNGExZjkxMzQyNzMzNDVjZDkzMjMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZjQ1MTNlNjE1OWM4NDY3Y2I5OTg4YzMyMzI4ODg0NDcgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43NjQxMjYxMjI2MTQwNjYsLTczLjgxMjc2MjY5MTM1ODY2XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2EyOTIzZTRkMTY0NjQ3YzQ5YzIwZGQ1YjdjMzBhMGY4ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzNjYmI3MWM1OTZiZDQzYmVhZmJlNDdmMGUzMjk3NTEyID0gJCgnPGRpdiBpZD0iaHRtbF8zY2JiNzFjNTk2YmQ0M2JlYWZiZTQ3ZjBlMzI5NzUxMiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TXVycmF5IEhpbGw8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2EyOTIzZTRkMTY0NjQ3YzQ5YzIwZGQ1YjdjMzBhMGY4LnNldENvbnRlbnQoaHRtbF8zY2JiNzFjNTk2YmQ0M2JlYWZiZTQ3ZjBlMzI5NzUxMik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9mNDUxM2U2MTU5Yzg0NjdjYjk5ODhjMzIzMjg4ODQ0Ny5iaW5kUG9wdXAocG9wdXBfYTI5MjNlNGQxNjQ2NDdjNDljMjBkZDViN2MzMGEwZjgpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMjc2YjRjNjBlMGQxNGFkM2IwYjdmZjFhODczNTJiZDcgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43NDEzNzg0MjE5NDU0MzQsLTczLjcwODg0NzA1ODg5MjQ2XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2E4OGUxNzQ5MzFkZDQyOTY5ZDRlZDFkOGY1YzdjNTA4ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzMwZTEyYjE4M2VlMzQ1NWE4N2I3MmI3ZGNkYmVhZjI2ID0gJCgnPGRpdiBpZD0iaHRtbF8zMGUxMmIxODNlZTM0NTVhODdiNzJiN2RjZGJlYWYyNiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+RmxvcmFsIFBhcms8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2E4OGUxNzQ5MzFkZDQyOTY5ZDRlZDFkOGY1YzdjNTA4LnNldENvbnRlbnQoaHRtbF8zMGUxMmIxODNlZTM0NTVhODdiNzJiN2RjZGJlYWYyNik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8yNzZiNGM2MGUwZDE0YWQzYjBiN2ZmMWE4NzM1MmJkNy5iaW5kUG9wdXAocG9wdXBfYTg4ZTE3NDkzMWRkNDI5NjlkNGVkMWQ4ZjVjN2M1MDgpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYTgyNmE0NmI0ZDMwNDUyNmFmZDA3ZTQyOTI1ZWU2YjggPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MjA5NTcyMDc2NDQ0LC03My43NjcxNDE2NjcxNDcyOV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9iMDEyY2IwOTk5MmI0MjRhYjVjYTJkOWYxZjU0YmQ5NSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF83NmY5ZDQ1MTY3MDk0YmZlYjkyMjgzNjE3YmU3NmY0OCA9ICQoJzxkaXYgaWQ9Imh0bWxfNzZmOWQ0NTE2NzA5NGJmZWI5MjI4MzYxN2JlNzZmNDgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkhvbGxpc3dvb2Q8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2IwMTJjYjA5OTkyYjQyNGFiNWNhMmQ5ZjFmNTRiZDk1LnNldENvbnRlbnQoaHRtbF83NmY5ZDQ1MTY3MDk0YmZlYjkyMjgzNjE3YmU3NmY0OCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9hODI2YTQ2YjRkMzA0NTI2YWZkMDdlNDI5MjVlZTZiOC5iaW5kUG9wdXAocG9wdXBfYjAxMmNiMDk5OTJiNDI0YWI1Y2EyZDlmMWY1NGJkOTUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNTc5ZmQ0YjAwZmM0NDE4MzhhODA3NWFiYmZlZjQwZTYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MTY4MDQ4MzAxNDYxMywtNzMuNzg3MjI2OTY5MzY2Nl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85NDNhNzUxYTg1YWE0NTY0YWRlYzRlY2IzN2VmMWZlZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8zYTJjMmQxM2MwMmQ0MzBkODVkODVlNWM0ODMyMzMxZSA9ICQoJzxkaXYgaWQ9Imh0bWxfM2EyYzJkMTNjMDJkNDMwZDg1ZDg1ZTVjNDgzMjMzMWUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkphbWFpY2EgRXN0YXRlczwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOTQzYTc1MWE4NWFhNDU2NGFkZWM0ZWNiMzdlZjFmZWUuc2V0Q29udGVudChodG1sXzNhMmMyZDEzYzAyZDQzMGQ4NWQ4NWU1YzQ4MzIzMzFlKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzU3OWZkNGIwMGZjNDQxODM4YTgwNzVhYmJmZWY0MGU2LmJpbmRQb3B1cChwb3B1cF85NDNhNzUxYTg1YWE0NTY0YWRlYzRlY2IzN2VmMWZlZSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl80MGNiYTE3MzQ1Y2M0OGM3ODRlYTMyY2EzN2VhMzliMiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjc0NDU3MjMwOTI4NjcsLTczLjgyNTgwOTE1MTEwNTU5XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2E0NjMyNzkyY2E4ZTQ0ZTZhN2EzY2ZmOWZhNjFjNDgxID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2Q1MzAyOWZiOGQyYjQwOGRhZjM3YjA0MWI4NTZmMGUzID0gJCgnPGRpdiBpZD0iaHRtbF9kNTMwMjlmYjhkMmI0MDhkYWYzN2IwNDFiODU2ZjBlMyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+UXVlZW5zYm9ybyBIaWxsPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hNDYzMjc5MmNhOGU0NGU2YTdhM2NmZjlmYTYxYzQ4MS5zZXRDb250ZW50KGh0bWxfZDUzMDI5ZmI4ZDJiNDA4ZGFmMzdiMDQxYjg1NmYwZTMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNDBjYmExNzM0NWNjNDhjNzg0ZWEzMmNhMzdlYTM5YjIuYmluZFBvcHVwKHBvcHVwX2E0NjMyNzkyY2E4ZTQ0ZTZhN2EzY2ZmOWZhNjFjNDgxKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzEzYzFiYmJlMGYzODQwYzBhYTVmNDUyZTdjN2M0Mzk2ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzIzODI0OTAxODI5MjA0LC03My43OTc2MDMwMDkxMjY3Ml0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83YWI1MjRjZmY2Mjk0N2NhYjBiNTdmNTAyNjE1M2MwZCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF83OTJhNWMwMGI0YzU0YTgzYWZkNjFkM2QxY2ExODdmMiA9ICQoJzxkaXYgaWQ9Imh0bWxfNzkyYTVjMDBiNGM1NGE4M2FmZDYxZDNkMWNhMTg3ZjIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkhpbGxjcmVzdDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfN2FiNTI0Y2ZmNjI5NDdjYWIwYjU3ZjUwMjYxNTNjMGQuc2V0Q29udGVudChodG1sXzc5MmE1YzAwYjRjNTRhODNhZmQ2MWQzZDFjYTE4N2YyKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzEzYzFiYmJlMGYzODQwYzBhYTVmNDUyZTdjN2M0Mzk2LmJpbmRQb3B1cChwb3B1cF83YWI1MjRjZmY2Mjk0N2NhYjBiNTdmNTAyNjE1M2MwZCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9mY2Y1MmM4NzM4MTA0YzkzOGMxNzQwYTY0NGYwMGI1NSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjc2MTcwNDUyNjA1NDE0NiwtNzMuOTMxNTc1MDYwNzI4NzhdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOTAyNmQ0YWQ3N2NlNGMxOGI1N2UwNzE4ZDkzMmI5NmYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOGE3YWVmYjU2YzQ1NDU5YWE4Y2JiZTRmNjRlNWEwMDUgPSAkKCc8ZGl2IGlkPSJodG1sXzhhN2FlZmI1NmM0NTQ1OWFhOGNiYmU0ZjY0ZTVhMDA1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5SYXZlbnN3b29kPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF85MDI2ZDRhZDc3Y2U0YzE4YjU3ZTA3MThkOTMyYjk2Zi5zZXRDb250ZW50KGh0bWxfOGE3YWVmYjU2YzQ1NDU5YWE4Y2JiZTRmNjRlNWEwMDUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZmNmNTJjODczODEwNGM5MzhjMTc0MGE2NDRmMDBiNTUuYmluZFBvcHVwKHBvcHVwXzkwMjZkNGFkNzdjZTRjMThiNTdlMDcxOGQ5MzJiOTZmKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzc3NmQxNTBlNjE2NjQyOWRiNDk2MmY0YTk4ZDhkOGUyID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjYzOTE4NDE5MjUxMzksLTczLjg0OTYzNzgyNDAyNDQxXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzkzOGY0OTA4ZjEzMTRhZWE4MDY3NTFmN2MyZDVmMWZkID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzVhOWFlYmY0Y2E2NjQ1MTBiZGRmMmJmMjgwZDFiZDNmID0gJCgnPGRpdiBpZD0iaHRtbF81YTlhZWJmNGNhNjY0NTEwYmRkZjJiZjI4MGQxYmQzZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TGluZGVud29vZDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOTM4ZjQ5MDhmMTMxNGFlYTgwNjc1MWY3YzJkNWYxZmQuc2V0Q29udGVudChodG1sXzVhOWFlYmY0Y2E2NjQ1MTBiZGRmMmJmMjgwZDFiZDNmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzc3NmQxNTBlNjE2NjQyOWRiNDk2MmY0YTk4ZDhkOGUyLmJpbmRQb3B1cChwb3B1cF85MzhmNDkwOGYxMzE0YWVhODA2NzUxZjdjMmQ1ZjFmZCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8zZTYyMTllNzE0MmQ0NGI0ODA3N2JmOTMyNmNhYWFjYSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY2Nzg4Mzg5NjYwMjQ3LC03My43NDAyNTYwNzk4OTgyMl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jMmQ5NzYwN2JiNzk0ZWYyYjEyMzZhMWZhNzViZmJmZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9kYmIyNmIzNGVhMjk0ZTQxODI2N2E1NTA3MjIxNTNiMiA9ICQoJzxkaXYgaWQ9Imh0bWxfZGJiMjZiMzRlYTI5NGU0MTgyNjdhNTUwNzIyMTUzYjIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkxhdXJlbHRvbjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYzJkOTc2MDdiYjc5NGVmMmIxMjM2YTFmYTc1YmZiZmYuc2V0Q29udGVudChodG1sX2RiYjI2YjM0ZWEyOTRlNDE4MjY3YTU1MDcyMjE1M2IyKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzNlNjIxOWU3MTQyZDQ0YjQ4MDc3YmY5MzI2Y2FhYWNhLmJpbmRQb3B1cChwb3B1cF9jMmQ5NzYwN2JiNzk0ZWYyYjEyMzZhMWZhNzViZmJmZik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl85Y2Q2MDc1YmUzZGE0ZWIyYTNmMzVlMzE2Y2ZlYzYzMCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjczNjA3NDU3MDgzMDc5NSwtNzMuODYyNTI0NzE0MTM3NF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8yMDUzZjZiZjU1MjE0NzM3ODQ5ZTJjNTkyYWRjNzI2MiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8zOGQ2ZjY5ZDQxMmE0ZTQwOGZmYTgyZDZlN2JlZGMxOSA9ICQoJzxkaXYgaWQ9Imh0bWxfMzhkNmY2OWQ0MTJhNGU0MDhmZmE4MmQ2ZTdiZWRjMTkiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkxlZnJhayBDaXR5PC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8yMDUzZjZiZjU1MjE0NzM3ODQ5ZTJjNTkyYWRjNzI2Mi5zZXRDb250ZW50KGh0bWxfMzhkNmY2OWQ0MTJhNGU0MDhmZmE4MmQ2ZTdiZWRjMTkpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfOWNkNjA3NWJlM2RhNGViMmEzZjM1ZTMxNmNmZWM2MzAuYmluZFBvcHVwKHBvcHVwXzIwNTNmNmJmNTUyMTQ3Mzc4NDllMmM1OTJhZGM3MjYyKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzViOTM2M2NhZjUxNTQyNjNiMjk5ZmQ1YmYzNDE0OWUzID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNTc2MTU1NTY1NDMxMDksLTczLjg1NDAxNzUwMzkyNTJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZTUxNzg5NmIwMWFiNDMzMWJjYjlkMGYwOGRhMGIyOTQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfODJjZjlmOWE5M2YwNDNmNWI3Mjc3ZDJjZGJkMThmZWQgPSAkKCc8ZGl2IGlkPSJodG1sXzgyY2Y5ZjlhOTNmMDQzZjViNzI3N2QyY2RiZDE4ZmVkIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5CZWxsZSBIYXJib3I8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2U1MTc4OTZiMDFhYjQzMzFiY2I5ZDBmMDhkYTBiMjk0LnNldENvbnRlbnQoaHRtbF84MmNmOWY5YTkzZjA0M2Y1YjcyNzdkMmNkYmQxOGZlZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl81YjkzNjNjYWY1MTU0MjYzYjI5OWZkNWJmMzQxNDllMy5iaW5kUG9wdXAocG9wdXBfZTUxNzg5NmIwMWFiNDMzMWJjYjlkMGYwOGRhMGIyOTQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNDQwYzk3YjkyZWQ4NDViNWJlYmUzMDljODQ5MDVmMGQgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41ODAzNDI5NTY0NjEzMSwtNzMuODQxNTMzNzAyMjYxODZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZmE2NDhhYjI2OWI1NDk1YTlhMTllNjRmNmRmYzJiMzYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZDk0MzhjMTFjNjAxNDVmZTgwOWIzNjU4NjJmNWUzMTYgPSAkKCc8ZGl2IGlkPSJodG1sX2Q5NDM4YzExYzYwMTQ1ZmU4MDliMzY1ODYyZjVlMzE2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Sb2NrYXdheSBQYXJrPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9mYTY0OGFiMjY5YjU0OTVhOWExOWU2NGY2ZGZjMmIzNi5zZXRDb250ZW50KGh0bWxfZDk0MzhjMTFjNjAxNDVmZTgwOWIzNjU4NjJmNWUzMTYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNDQwYzk3YjkyZWQ4NDViNWJlYmUzMDljODQ5MDVmMGQuYmluZFBvcHVwKHBvcHVwX2ZhNjQ4YWIyNjliNTQ5NWE5YTE5ZTY0ZjZkZmMyYjM2KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzIxMzU0MTc2MjNiMzQyMDFiMTQ4OWVkOWQ2NjhiN2U0ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNTk3NzEwNjE1NjU3NjgsLTczLjc5NjY0NzUwODQ0MDQ3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzc3NWJjNWQ4YjdhMTQxMmU5ZjdmOTU5MDA4ZmI0OWJhID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2I4ZjZkNWJlYjhkMjQ3NGFiN2Q0MTE4ZTRjNzgwZjg2ID0gJCgnPGRpdiBpZD0iaHRtbF9iOGY2ZDViZWI4ZDI0NzRhYjdkNDExOGU0Yzc4MGY4NiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+U29tZXJ2aWxsZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNzc1YmM1ZDhiN2ExNDEyZTlmN2Y5NTkwMDhmYjQ5YmEuc2V0Q29udGVudChodG1sX2I4ZjZkNWJlYjhkMjQ3NGFiN2Q0MTE4ZTRjNzgwZjg2KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzIxMzU0MTc2MjNiMzQyMDFiMTQ4OWVkOWQ2NjhiN2U0LmJpbmRQb3B1cChwb3B1cF83NzViYzVkOGI3YTE0MTJlOWY3Zjk1OTAwOGZiNDliYSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9hODRkZmQ2NGQ5NmM0MjdjODRmMWJlMWY0MzgxYTE5YiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY2MDAwMzIyNzMzNjEzLC03My43NTE3NTMxMDczMTE1M10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83NjIwZDA4MTE3MjU0YmQzYjQwYzZhZDlkZjdhMTk4MSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9kNDYyZTEzYzU3MWY0MzRlODUyZjhmZjgxMjc2NDNiYiA9ICQoJzxkaXYgaWQ9Imh0bWxfZDQ2MmUxM2M1NzFmNDM0ZTg1MmY4ZmY4MTI3NjQzYmIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJyb29rdmlsbGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzc2MjBkMDgxMTcyNTRiZDNiNDBjNmFkOWRmN2ExOTgxLnNldENvbnRlbnQoaHRtbF9kNDYyZTEzYzU3MWY0MzRlODUyZjhmZjgxMjc2NDNiYik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9hODRkZmQ2NGQ5NmM0MjdjODRmMWJlMWY0MzgxYTE5Yi5iaW5kUG9wdXAocG9wdXBfNzYyMGQwODExNzI1NGJkM2I0MGM2YWQ5ZGY3YTE5ODEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMTAyYjJiOGY5YWNkNGZhOGFiODAxNTVjY2FiMjE2M2YgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MzMwMTQwNDAyNzgzNCwtNzMuNzM4ODkxOTg5MTI0ODFdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfY2JhNGY0YTk2MTI4NDY5MmIyYWRlZTNkOWIwOTE4MjEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMzFmZmMzMTc3ZjNmNDI2OGJjMzhiOTQxZjI0YjY3OTQgPSAkKCc8ZGl2IGlkPSJodG1sXzMxZmZjMzE3N2YzZjQyNjhiYzM4Yjk0MWYyNGI2Nzk0IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5CZWxsYWlyZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfY2JhNGY0YTk2MTI4NDY5MmIyYWRlZTNkOWIwOTE4MjEuc2V0Q29udGVudChodG1sXzMxZmZjMzE3N2YzZjQyNjhiYzM4Yjk0MWYyNGI2Nzk0KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzEwMmIyYjhmOWFjZDRmYThhYjgwMTU1Y2NhYjIxNjNmLmJpbmRQb3B1cChwb3B1cF9jYmE0ZjRhOTYxMjg0NjkyYjJhZGVlM2Q5YjA5MTgyMSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9lMmI1ODQ3N2RmM2I0OTVhODM2MjYyMGFmYzBiNDczNCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjc1NDA3MDk5OTA0ODksLTczLjg1NzUxNzkwNjc2NDQ3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzdiMTIzMjA2ODY2MjQyMGNiNzZhODEwYjU5MGIzOTI2ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzkzYWEzYWFiODcwYTQ2Zjg5NDE2ODBkMjEzNDEyZTcwID0gJCgnPGRpdiBpZD0iaHRtbF85M2FhM2FhYjg3MGE0NmY4OTQxNjgwZDIxMzQxMmU3MCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Tm9ydGggQ29yb25hPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF83YjEyMzIwNjg2NjI0MjBjYjc2YTgxMGI1OTBiMzkyNi5zZXRDb250ZW50KGh0bWxfOTNhYTNhYWI4NzBhNDZmODk0MTY4MGQyMTM0MTJlNzApOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZTJiNTg0NzdkZjNiNDk1YTgzNjI2MjBhZmMwYjQ3MzQuYmluZFBvcHVwKHBvcHVwXzdiMTIzMjA2ODY2MjQyMGNiNzZhODEwYjU5MGIzOTI2KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2ZlZTFlNmIxYmFhOTRkNTZiYzdjNzVjM2ZlODdmZGY1ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzE0NjExMDgxNTExNywtNzMuODQxMDIyMTEyMzQwMV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9hMmI3MTUyZDUxZjY0Njc4ODFiNGVjNDgxZTBlYTBiNyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85YzhiMjMzY2ZlNTM0ZGQ2OWFmMWJmOTUzYThiNGM4ZSA9ICQoJzxkaXYgaWQ9Imh0bWxfOWM4YjIzM2NmZTUzNGRkNjlhZjFiZjk1M2E4YjRjOGUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkZvcmVzdCBIaWxscyBHYXJkZW5zPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hMmI3MTUyZDUxZjY0Njc4ODFiNGVjNDgxZTBlYTBiNy5zZXRDb250ZW50KGh0bWxfOWM4YjIzM2NmZTUzNGRkNjlhZjFiZjk1M2E4YjRjOGUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZmVlMWU2YjFiYWE5NGQ1NmJjN2M3NWMzZmU4N2ZkZjUuYmluZFBvcHVwKHBvcHVwX2EyYjcxNTJkNTFmNjQ2Nzg4MWI0ZWM0ODFlMGVhMGI3KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzNkMmUzZjk2Y2JjNDQwYWI5ZTQ0YzI5MmI4ZmVkYzMyID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjQ0OTgxNTcxMDA0NCwtNzQuMDc5MzUzMTI1MTI3OTddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZWFjNmU0NTI3NjNkNDUyMjkzODlmZTlhYTNmNDcxZmMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYmNkOWJkYzA3NjIxNDQ4MDk4ZjljMzUxYTFhNzFmOGMgPSAkKCc8ZGl2IGlkPSJodG1sX2JjZDliZGMwNzYyMTQ0ODA5OGY5YzM1MWExYTcxZjhjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5TdC4gR2VvcmdlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9lYWM2ZTQ1Mjc2M2Q0NTIyOTM4OWZlOWFhM2Y0NzFmYy5zZXRDb250ZW50KGh0bWxfYmNkOWJkYzA3NjIxNDQ4MDk4ZjljMzUxYTFhNzFmOGMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfM2QyZTNmOTZjYmM0NDBhYjllNDRjMjkyYjhmZWRjMzIuYmluZFBvcHVwKHBvcHVwX2VhYzZlNDUyNzYzZDQ1MjI5Mzg5ZmU5YWEzZjQ3MWZjKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2NhMzUyYWE2NjJkOTQyMjU4ZGQ4MTg2YTcyM2M4ZTgwID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjQwNjE0NTU5MTM1MTEsLTc0LjA4NzAxNjUwNTE2NjI1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzQzMjA4ZDczZGZiNTRmNWVhNGJlZmM5NjJhMDE3ZmU4ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzBhMjRmN2JlNjIzYjQ5ZjRhNWVhZDhlYTQ5ZGViZDdhID0gJCgnPGRpdiBpZD0iaHRtbF8wYTI0ZjdiZTYyM2I0OWY0YTVlYWQ4ZWE0OWRlYmQ3YSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TmV3IEJyaWdodG9uPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80MzIwOGQ3M2RmYjU0ZjVlYTRiZWZjOTYyYTAxN2ZlOC5zZXRDb250ZW50KGh0bWxfMGEyNGY3YmU2MjNiNDlmNGE1ZWFkOGVhNDlkZWJkN2EpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfY2EzNTJhYTY2MmQ5NDIyNThkZDgxODZhNzIzYzhlODAuYmluZFBvcHVwKHBvcHVwXzQzMjA4ZDczZGZiNTRmNWVhNGJlZmM5NjJhMDE3ZmU4KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2MwYTk3ZTlhODA2ODQ4ZmU4NTgzZWVmYzU5OGYwY2Q0ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjI2OTI3NjI1MzgxNzYsLTc0LjA3NzkwMTkyNjYwMDY2XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2M3NzY2ZmU3OWFiMDQ4MzRiOTljNTlmNjc3ZmRmMmE0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzk0Njk3N2NiMTJhYTRjOWQ5NGY4ZmJlMWUxNmY4M2RkID0gJCgnPGRpdiBpZD0iaHRtbF85NDY5NzdjYjEyYWE0YzlkOTRmOGZiZTFlMTZmODNkZCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+U3RhcGxldG9uPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jNzc2NmZlNzlhYjA0ODM0Yjk5YzU5ZjY3N2ZkZjJhNC5zZXRDb250ZW50KGh0bWxfOTQ2OTc3Y2IxMmFhNGM5ZDk0ZjhmYmUxZTE2ZjgzZGQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYzBhOTdlOWE4MDY4NDhmZTg1ODNlZWZjNTk4ZjBjZDQuYmluZFBvcHVwKHBvcHVwX2M3NzY2ZmU3OWFiMDQ4MzRiOTljNTlmNjc3ZmRmMmE0KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2E5ZjM4ZGU0YjJkZDQ4MDg4MDkyOTkyZTljNTdlOTIzID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjE1MzA0OTQ2NTI3NjEsLTc0LjA2OTgwNTI2NzE2MTQxXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzNhNmFlZDlhY2UwNjQyNjg4ZWNmMTMxODY3ODkyODRjID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzQxYjExMjJkYmQ0MTRmZTVhOGVkN2Q3Yzc5NzBhYmFiID0gJCgnPGRpdiBpZD0iaHRtbF80MWIxMTIyZGJkNDE0ZmU1YThlZDdkN2M3OTcwYWJhYiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Um9zZWJhbms8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzNhNmFlZDlhY2UwNjQyNjg4ZWNmMTMxODY3ODkyODRjLnNldENvbnRlbnQoaHRtbF80MWIxMTIyZGJkNDE0ZmU1YThlZDdkN2M3OTcwYWJhYik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9hOWYzOGRlNGIyZGQ0ODA4ODA5Mjk5MmU5YzU3ZTkyMy5iaW5kUG9wdXAocG9wdXBfM2E2YWVkOWFjZTA2NDI2ODhlY2YxMzE4Njc4OTI4NGMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMTU5ZGY5NjQ2YzhjNDMxNTg5YWMwOWUzZjJkYzUzOTcgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MzE4Nzg5MjY1NDYwNywtNzQuMTA3MTgxNzgyNjU2MV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kMDk1NWI0MmQ5NmM0YjU5OTBlNzJiMWYyZjg2NjgzNyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9jNmQxNWNmYmNhZDc0NTBhOTFhZjQ3NGMxOWQ0ODYyZiA9ICQoJzxkaXYgaWQ9Imh0bWxfYzZkMTVjZmJjYWQ3NDUwYTkxYWY0NzRjMTlkNDg2MmYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPldlc3QgQnJpZ2h0b248L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2QwOTU1YjQyZDk2YzRiNTk5MGU3MmIxZjJmODY2ODM3LnNldENvbnRlbnQoaHRtbF9jNmQxNWNmYmNhZDc0NTBhOTFhZjQ3NGMxOWQ0ODYyZik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8xNTlkZjk2NDZjOGM0MzE1ODlhYzA5ZTNmMmRjNTM5Ny5iaW5kUG9wdXAocG9wdXBfZDA5NTViNDJkOTZjNGI1OTkwZTcyYjFmMmY4NjY4MzcpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfN2I2ZDcyOWZlNjA4NGY5ZGEzN2FhZDM0NTc2NGE5OTkgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MjQxODQ3OTEzMTMwMDYsLTc0LjA4NzI0ODE5OTgzNzI5XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzUxNjBhMDAyOGRkMTRiNTdiMTA1MzI0ODBhMDYwMmNkID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzA4MjNjMDY0OGJmYjQxNzE4ZDhmOGFmZGYwOTU5NzliID0gJCgnPGRpdiBpZD0iaHRtbF8wODIzYzA2NDhiZmI0MTcxOGQ4ZjhhZmRmMDk1OTc5YiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+R3J5bWVzIEhpbGw8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzUxNjBhMDAyOGRkMTRiNTdiMTA1MzI0ODBhMDYwMmNkLnNldENvbnRlbnQoaHRtbF8wODIzYzA2NDhiZmI0MTcxOGQ4ZjhhZmRmMDk1OTc5Yik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl83YjZkNzI5ZmU2MDg0ZjlkYTM3YWFkMzQ1NzY0YTk5OS5iaW5kUG9wdXAocG9wdXBfNTE2MGEwMDI4ZGQxNGI1N2IxMDUzMjQ4MGEwNjAyY2QpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfODYzMGM3Zjk2Njk1NGNkYWFmMGU1NDlkNDY1ZTAwZTcgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41OTcwNjg1MTgxNDY3MywtNzQuMTExMzI4ODE4MDA4OF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jMjg4NGE2ODMwNDI0YTdhOGM2ODQ4ZGU2NWZmYjhhNiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8wMmYwYzY1YWU4YTU0NGYyODA1YjE2MTIyY2E3ODE3MSA9ICQoJzxkaXYgaWQ9Imh0bWxfMDJmMGM2NWFlOGE1NDRmMjgwNWIxNjEyMmNhNzgxNzEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlRvZHQgSGlsbDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYzI4ODRhNjgzMDQyNGE3YThjNjg0OGRlNjVmZmI4YTYuc2V0Q29udGVudChodG1sXzAyZjBjNjVhZThhNTQ0ZjI4MDViMTYxMjJjYTc4MTcxKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzg2MzBjN2Y5NjY5NTRjZGFhZjBlNTQ5ZDQ2NWUwMGU3LmJpbmRQb3B1cChwb3B1cF9jMjg4NGE2ODMwNDI0YTdhOGM2ODQ4ZGU2NWZmYjhhNik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8zNDA2YWMxOTE4ZDU0NjI0OTQyYzFhZmE5ZWM3NDBhYyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU4MDI0NzQxMzUwOTU2LC03NC4wNzk1NTI5MjUzOTgyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzVkNzJmMjYwOWVhOTRlMjY4N2YwYTVkNDg0NjViNWJlID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzFjMDU5Y2IzMTk1ZTQwMWRhNzAyNjI5NzdhNzc0Y2Q2ID0gJCgnPGRpdiBpZD0iaHRtbF8xYzA1OWNiMzE5NWU0MDFkYTcwMjYyOTc3YTc3NGNkNiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+U291dGggQmVhY2g8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzVkNzJmMjYwOWVhOTRlMjY4N2YwYTVkNDg0NjViNWJlLnNldENvbnRlbnQoaHRtbF8xYzA1OWNiMzE5NWU0MDFkYTcwMjYyOTc3YTc3NGNkNik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8zNDA2YWMxOTE4ZDU0NjI0OTQyYzFhZmE5ZWM3NDBhYy5iaW5kUG9wdXAocG9wdXBfNWQ3MmYyNjA5ZWE5NGUyNjg3ZjBhNWQ0ODQ2NWI1YmUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfM2I5YjI3ZjVlMzRmNDM1YWEzYzJlZGIyNjA4OTkxNzggPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MzM2NjkzMDU1NDM2NSwtNzQuMTI5NDM0MjY3OTcwMDhdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOTllZjIwMjVmNjlmNDBlMzhkMzg5NzQ3N2Y1M2ExZjkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfODYwYWNhNzEwZWFiNDg0ODlkN2E5OGU4NTczMWEyMjggPSAkKCc8ZGl2IGlkPSJodG1sXzg2MGFjYTcxMGVhYjQ4NDg5ZDdhOThlODU3MzFhMjI4IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Qb3J0IFJpY2htb25kPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF85OWVmMjAyNWY2OWY0MGUzOGQzODk3NDc3ZjUzYTFmOS5zZXRDb250ZW50KGh0bWxfODYwYWNhNzEwZWFiNDg0ODlkN2E5OGU4NTczMWEyMjgpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfM2I5YjI3ZjVlMzRmNDM1YWEzYzJlZGIyNjA4OTkxNzguYmluZFBvcHVwKHBvcHVwXzk5ZWYyMDI1ZjY5ZjQwZTM4ZDM4OTc0NzdmNTNhMWY5KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2M1ZDljOTEzYzI3MDRlZTA4NzgzMDVkNDdmOWIzZWYwID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjMyNTQ2MzkwNDgxMTI0LC03NC4xNTAwODUzNzA0Njk4MV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9lYTFiMWQ2ZjQ0MGI0MjBlYWYxNWZhN2Y5OTdjNTZjMSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8wZjg3N2FjODZiYjA0MTNhOWQwMTZmMzAxMGFlY2EwOSA9ICQoJzxkaXYgaWQ9Imh0bWxfMGY4NzdhYzg2YmIwNDEzYTlkMDE2ZjMwMTBhZWNhMDkiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk1hcmluZXImIzM5O3MgSGFyYm9yPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9lYTFiMWQ2ZjQ0MGI0MjBlYWYxNWZhN2Y5OTdjNTZjMS5zZXRDb250ZW50KGh0bWxfMGY4NzdhYzg2YmIwNDEzYTlkMDE2ZjMwMTBhZWNhMDkpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYzVkOWM5MTNjMjcwNGVlMDg3ODMwNWQ0N2Y5YjNlZjAuYmluZFBvcHVwKHBvcHVwX2VhMWIxZDZmNDQwYjQyMGVhZjE1ZmE3Zjk5N2M1NmMxKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzYxNmQwOTk4ZjAyODRjNDM5MmNlODU5ZWI4NWI0NjY3ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjM5NjgyOTc4NDU1NDIsLTc0LjE3NDY0NTMyOTkzNTQyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2VjOTkzNWI2MDhkZTQ2MGU4YWJhYzQ4OGZmMWViZDM5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzE0MjY2YjFmYTc5NTQ5NzhhOGIzMTczNzE2MmFmZDcwID0gJCgnPGRpdiBpZD0iaHRtbF8xNDI2NmIxZmE3OTU0OTc4YThiMzE3MzcxNjJhZmQ3MCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+UG9ydCBJdm9yeTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZWM5OTM1YjYwOGRlNDYwZThhYmFjNDg4ZmYxZWJkMzkuc2V0Q29udGVudChodG1sXzE0MjY2YjFmYTc5NTQ5NzhhOGIzMTczNzE2MmFmZDcwKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzYxNmQwOTk4ZjAyODRjNDM5MmNlODU5ZWI4NWI0NjY3LmJpbmRQb3B1cChwb3B1cF9lYzk5MzViNjA4ZGU0NjBlOGFiYWM0ODhmZjFlYmQzOSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9iNmQ2YjVlZTQ5Y2I0MzYxYTM0YjIyNDBjMzk2ZTFjMyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjYxMzMzNTkzNzY2NzQyLC03NC4xMTkxODA1ODUzNDg0Ml0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9mNGRlYTBlNjg1Yjg0OGQwYTliYTFjMDJkYWYzMjgzNCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9mODFkMWUzOTgxNWM0YmQ4ODkwZThjMzM5YWEyNDFmZiA9ICQoJzxkaXYgaWQ9Imh0bWxfZjgxZDFlMzk4MTVjNGJkODg5MGU4YzMzOWFhMjQxZmYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNhc3RsZXRvbiBDb3JuZXJzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9mNGRlYTBlNjg1Yjg0OGQwYTliYTFjMDJkYWYzMjgzNC5zZXRDb250ZW50KGh0bWxfZjgxZDFlMzk4MTVjNGJkODg5MGU4YzMzOWFhMjQxZmYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYjZkNmI1ZWU0OWNiNDM2MWEzNGIyMjQwYzM5NmUxYzMuYmluZFBvcHVwKHBvcHVwX2Y0ZGVhMGU2ODViODQ4ZDBhOWJhMWMwMmRhZjMyODM0KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzIxZDU1YjA1NGVhMDRmMTNiZTBhYjBiYzYwMWEzNzBjID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNTk0MjUyMzc5MTYxNjk1LC03NC4xNjQ5NjAzMTMyOTgyN10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85ZDY3OWM1Nzc5MTE0YzE0YmVhZTcyY2I4NTQwMjdjNiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8xMWZiZmJjMjZhMmY0ODdhODFmNjAyMjNlNDVhYjgxMCA9ICQoJzxkaXYgaWQ9Imh0bWxfMTFmYmZiYzI2YTJmNDg3YTgxZjYwMjIzZTQ1YWI4MTAiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk5ldyBTcHJpbmd2aWxsZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOWQ2NzljNTc3OTExNGMxNGJlYWU3MmNiODU0MDI3YzYuc2V0Q29udGVudChodG1sXzExZmJmYmMyNmEyZjQ4N2E4MWY2MDIyM2U0NWFiODEwKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzIxZDU1YjA1NGVhMDRmMTNiZTBhYjBiYzYwMWEzNzBjLmJpbmRQb3B1cChwb3B1cF85ZDY3OWM1Nzc5MTE0YzE0YmVhZTcyY2I4NTQwMjdjNik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9iYjlmNzNkNWY2MDU0YzEzYTMxODVhZGViMTU3M2RlMSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU4NjMxMzc1MTAzMjgxLC03NC4xOTA3MzcxNzUzODExNl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85MmRjZGI0NmI2NjA0Mzc5OTcxZWRkYTVjZDY4OTY0OSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9mZDkyMTU0YWFiNWU0YzkzYmRhYjQ5ZWUxNTViNTEyNCA9ICQoJzxkaXYgaWQ9Imh0bWxfZmQ5MjE1NGFhYjVlNGM5M2JkYWI0OWVlMTU1YjUxMjQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlRyYXZpczwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOTJkY2RiNDZiNjYwNDM3OTk3MWVkZGE1Y2Q2ODk2NDkuc2V0Q29udGVudChodG1sX2ZkOTIxNTRhYWI1ZTRjOTNiZGFiNDllZTE1NWI1MTI0KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2JiOWY3M2Q1ZjYwNTRjMTNhMzE4NWFkZWIxNTczZGUxLmJpbmRQb3B1cChwb3B1cF85MmRjZGI0NmI2NjA0Mzc5OTcxZWRkYTVjZDY4OTY0OSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9hZTdlZjdkZDBlMjA0MzdlODNkNzUzNjFkOWQzMmVhZiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU3MjU3MjMxODIwNjMyLC03NC4xMTY0Nzk0MzYwNjM4XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2FlNGY2MTM2N2EwMjQ2MzQ5N2MzMjE1OGNlOTE0ZDExID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2FkM2M5MDczOTQ4MjQ4NmZhZWMxYzgxZmExN2RhNTc1ID0gJCgnPGRpdiBpZD0iaHRtbF9hZDNjOTA3Mzk0ODI0ODZmYWVjMWM4MWZhMTdkYTU3NSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TmV3IERvcnA8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2FlNGY2MTM2N2EwMjQ2MzQ5N2MzMjE1OGNlOTE0ZDExLnNldENvbnRlbnQoaHRtbF9hZDNjOTA3Mzk0ODI0ODZmYWVjMWM4MWZhMTdkYTU3NSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9hZTdlZjdkZDBlMjA0MzdlODNkNzUzNjFkOWQzMmVhZi5iaW5kUG9wdXAocG9wdXBfYWU0ZjYxMzY3YTAyNDYzNDk3YzMyMTU4Y2U5MTRkMTEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNzZiZTQxZTdmOGMyNGJlYWI2NGZjYjE5Nzg3ODJkMTMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41NTg0NjIyNDMyODg4LC03NC4xMjE1NjU5Mzc3MTg5Nl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8yMWYyZDdiMjBkOGQ0OTJjYTYwYTNkMmQ5NTNlOTFmMiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iZjBmNDRmZTU4Zjg0YWZmODY5OTY4ZDQ4YTk4YjJlYyA9ICQoJzxkaXYgaWQ9Imh0bWxfYmYwZjQ0ZmU1OGY4NGFmZjg2OTk2OGQ0OGE5OGIyZWMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk9ha3dvb2Q8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzIxZjJkN2IyMGQ4ZDQ5MmNhNjBhM2QyZDk1M2U5MWYyLnNldENvbnRlbnQoaHRtbF9iZjBmNDRmZTU4Zjg0YWZmODY5OTY4ZDQ4YTk4YjJlYyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl83NmJlNDFlN2Y4YzI0YmVhYjY0ZmNiMTk3ODc4MmQxMy5iaW5kUG9wdXAocG9wdXBfMjFmMmQ3YjIwZDhkNDkyY2E2MGEzZDJkOTUzZTkxZjIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNzk0YmRhNThjOWNhNGQ0YmE2YWVkMzg0N2Q2NWY2NjUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41NDk0ODAyMjg3MTM2MDUsLTc0LjE0OTMyMzgxNDkwOTkyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzI2NGEzMDYzMDdjMTQ1ZmJhYzM5ZWVkYWYwZjQzZjQ3ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzQyNmMwY2U4YWM2NzRjYjc4NmFiMjQ1NWJlOTYzMDAxID0gJCgnPGRpdiBpZD0iaHRtbF80MjZjMGNlOGFjNjc0Y2I3ODZhYjI0NTViZTk2MzAwMSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+R3JlYXQgS2lsbHM8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzI2NGEzMDYzMDdjMTQ1ZmJhYzM5ZWVkYWYwZjQzZjQ3LnNldENvbnRlbnQoaHRtbF80MjZjMGNlOGFjNjc0Y2I3ODZhYjI0NTViZTk2MzAwMSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl83OTRiZGE1OGM5Y2E0ZDRiYTZhZWQzODQ3ZDY1ZjY2NS5iaW5kUG9wdXAocG9wdXBfMjY0YTMwNjMwN2MxNDVmYmFjMzllZWRhZjBmNDNmNDcpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYTAyZjc2MjkyNmU1NGFjN2IwNjc0YzIyZTg2NWFkYmEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41NDIyMzA3NDc0NTA3NDUsLTc0LjE2NDMzMDgwNDE5MzZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfODNjOWU5YTZjZTJjNDExMWFjM2UxMDZkZTA3MmQxODQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZDM4Mzc2YzFkMzkzNDFkYmFhZTBjOGNmMDk0OTFkZjggPSAkKCc8ZGl2IGlkPSJodG1sX2QzODM3NmMxZDM5MzQxZGJhYWUwYzhjZjA5NDkxZGY4IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5FbHRpbmd2aWxsZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfODNjOWU5YTZjZTJjNDExMWFjM2UxMDZkZTA3MmQxODQuc2V0Q29udGVudChodG1sX2QzODM3NmMxZDM5MzQxZGJhYWUwYzhjZjA5NDkxZGY4KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2EwMmY3NjI5MjZlNTRhYzdiMDY3NGMyMmU4NjVhZGJhLmJpbmRQb3B1cChwb3B1cF84M2M5ZTlhNmNlMmM0MTExYWMzZTEwNmRlMDcyZDE4NCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9kMWFhMmI3ZjQ1NzM0NWRhYWY5OWJlN2E2Njk3YWQ1ZCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjUzODExNDE3NDc0NTA3LC03NC4xNzg1NDg2NjE2NTg3OF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82YTExYTFkMTc2NzU0MGM1ODJiZDVkZGRjMWNhNmM1ZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF80MmZiNjVhODYwZjQ0OWQzYWNmYzhlOThmZWUwNzczNSA9ICQoJzxkaXYgaWQ9Imh0bWxfNDJmYjY1YTg2MGY0NDlkM2FjZmM4ZTk4ZmVlMDc3MzUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkFubmFkYWxlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82YTExYTFkMTc2NzU0MGM1ODJiZDVkZGRjMWNhNmM1ZS5zZXRDb250ZW50KGh0bWxfNDJmYjY1YTg2MGY0NDlkM2FjZmM4ZTk4ZmVlMDc3MzUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZDFhYTJiN2Y0NTczNDVkYWFmOTliZTdhNjY5N2FkNWQuYmluZFBvcHVwKHBvcHVwXzZhMTFhMWQxNzY3NTQwYzU4MmJkNWRkZGMxY2E2YzVlKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2FkMjc0ZWNjY2VhZDQ2MzE5OTUwNGQzMGFiM2FmMzBhID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNTQxOTY3NjIyODg4NzU1LC03NC4yMDUyNDU4MjQ4MDMyNl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85YzQ5M2FmNzFmOTQ0NjUzYTc1MDdhZTY2YjgyMjU3NSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9hOTZkNDY4YWZkNjY0NGNiOGJlNTEyYzIyMjYzMmExZiA9ICQoJzxkaXYgaWQ9Imh0bWxfYTk2ZDQ2OGFmZDY2NDRjYjhiZTUxMmMyMjI2MzJhMWYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPldvb2Ryb3c8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzljNDkzYWY3MWY5NDQ2NTNhNzUwN2FlNjZiODIyNTc1LnNldENvbnRlbnQoaHRtbF9hOTZkNDY4YWZkNjY0NGNiOGJlNTEyYzIyMjYzMmExZik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9hZDI3NGVjY2NlYWQ0NjMxOTk1MDRkMzBhYjNhZjMwYS5iaW5kUG9wdXAocG9wdXBfOWM0OTNhZjcxZjk0NDY1M2E3NTA3YWU2NmI4MjI1NzUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMmVmOGNmZmU5NjFhNGQ1ZWExNjAxOWQ2M2I2ZGFlZjUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41MDUzMzM3NjExNTY0MiwtNzQuMjQ2NTY5MzQyMzUyODNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNmVmM2Q3MmQ5OTBjNDIzMjkzZjc4ZTA2ODRlZDE3ZWEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNDA4MTZkYWRiZjcwNDM1ZGEzOTA4ZmFmMTFmNGFiM2IgPSAkKCc8ZGl2IGlkPSJodG1sXzQwODE2ZGFkYmY3MDQzNWRhMzkwOGZhZjExZjRhYjNiIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Ub3R0ZW52aWxsZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNmVmM2Q3MmQ5OTBjNDIzMjkzZjc4ZTA2ODRlZDE3ZWEuc2V0Q29udGVudChodG1sXzQwODE2ZGFkYmY3MDQzNWRhMzkwOGZhZjExZjRhYjNiKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzJlZjhjZmZlOTYxYTRkNWVhMTYwMTlkNjNiNmRhZWY1LmJpbmRQb3B1cChwb3B1cF82ZWYzZDcyZDk5MGM0MjMyOTNmNzhlMDY4NGVkMTdlYSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl82NTZiMDgzNjE5Njk0OGUzYTJiMjJmYTk0ODVkMmE2NCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjYzNzMxNjA2NzExMDMyNiwtNzQuMDgwNTUzNTE3OTAxMTVdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYmJjZTJhMTFhMzM5NDM0Y2IxNjZkOTFhNzk1NzI3ZWYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMjc5NTM1NjZhZjI1NDZlYTk3NjdjNDcyY2M2NWNhZGEgPSAkKCc8ZGl2IGlkPSJodG1sXzI3OTUzNTY2YWYyNTQ2ZWE5NzY3YzQ3MmNjNjVjYWRhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Ub21wa2luc3ZpbGxlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iYmNlMmExMWEzMzk0MzRjYjE2NmQ5MWE3OTU3MjdlZi5zZXRDb250ZW50KGh0bWxfMjc5NTM1NjZhZjI1NDZlYTk3NjdjNDcyY2M2NWNhZGEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNjU2YjA4MzYxOTY5NDhlM2EyYjIyZmE5NDg1ZDJhNjQuYmluZFBvcHVwKHBvcHVwX2JiY2UyYTExYTMzOTQzNGNiMTY2ZDkxYTc5NTcyN2VmKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzViYTZiN2IxYmUyYTQ5ODhiMTI4Yzg0MGM3NTk2Zjg2ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjE5MTkzMTA3OTI2NzYsLTc0LjA5NjI5MDI5MjM1NDU4XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzNiMzZkMGNiMjBhMjRkMTJiZWM2NGU0MGExMGUwOTgzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2EyMjE0MjYyZTIzNTQ1MzM4OTgzNDY1NTE3Njg4YzVkID0gJCgnPGRpdiBpZD0iaHRtbF9hMjIxNDI2MmUyMzU0NTMzODk4MzQ2NTUxNzY4OGM1ZCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+U2lsdmVyIExha2U8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzNiMzZkMGNiMjBhMjRkMTJiZWM2NGU0MGExMGUwOTgzLnNldENvbnRlbnQoaHRtbF9hMjIxNDI2MmUyMzU0NTMzODk4MzQ2NTUxNzY4OGM1ZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl81YmE2YjdiMWJlMmE0OTg4YjEyOGM4NDBjNzU5NmY4Ni5iaW5kUG9wdXAocG9wdXBfM2IzNmQwY2IyMGEyNGQxMmJlYzY0ZTQwYTEwZTA5ODMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNzZkZjkyNTllMzRkNGQ2YWE5NjZmMzY1MDI4NjE0YTcgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MTI3NjAxNTc1NjQ4OSwtNzQuMDk3MTI1NTIxNzg1M10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kMTI2ZWM3MGMzZTQ0NmYyYTBhNjY4Njc1NWJlOTJkZCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iYWQ3N2YxYzlhMzU0MDZmODFiMjhkNmQ1ODBkOTM2NCA9ICQoJzxkaXYgaWQ9Imh0bWxfYmFkNzdmMWM5YTM1NDA2ZjgxYjI4ZDZkNTgwZDkzNjQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlN1bm55c2lkZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZDEyNmVjNzBjM2U0NDZmMmEwYTY2ODY3NTViZTkyZGQuc2V0Q29udGVudChodG1sX2JhZDc3ZjFjOWEzNTQwNmY4MWIyOGQ2ZDU4MGQ5MzY0KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzc2ZGY5MjU5ZTM0ZDRkNmFhOTY2ZjM2NTAyODYxNGE3LmJpbmRQb3B1cChwb3B1cF9kMTI2ZWM3MGMzZTQ0NmYyYTBhNjY4Njc1NWJlOTJkZCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl83YmViNDkwMjU1MzE0NjI3YjY3OTM2MmI3MTU3MDFjYyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY0MzY3NTE4MzM0MDk3NCwtNzMuOTYxMDEzMTI0NjY3NzldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZTJiNjk0NmUwZGZlNDYxNmIzNjVlZDA5YWVmOGZiY2QgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMGI0MDE0NzI4NDJlNGUxM2EyNGQzODcyM2ExNjU5ZTEgPSAkKCc8ZGl2IGlkPSJodG1sXzBiNDAxNDcyODQyZTRlMTNhMjRkMzg3MjNhMTY1OWUxIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5EaXRtYXMgUGFyazwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZTJiNjk0NmUwZGZlNDYxNmIzNjVlZDA5YWVmOGZiY2Quc2V0Q29udGVudChodG1sXzBiNDAxNDcyODQyZTRlMTNhMjRkMzg3MjNhMTY1OWUxKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzdiZWI0OTAyNTUzMTQ2MjdiNjc5MzYyYjcxNTcwMWNjLmJpbmRQb3B1cChwb3B1cF9lMmI2OTQ2ZTBkZmU0NjE2YjM2NWVkMDlhZWY4ZmJjZCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9jYTY4OTI3OGZjY2E0YzBhYmVkZTQ0YzdjZjBmYmI4YiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY2MDk0NjU2MTg4MTExLC03My45MzcxODY4MDU1OTMxNF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9mMGMzNTA5MDEzZmY0MTJiODM2NGVlNTJkMjQ2MDlkZCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF83ZTQ1YTczODRlMzE0NjRmYTliNWMxYTQwNzcyMTQ5ZCA9ICQoJzxkaXYgaWQ9Imh0bWxfN2U0NWE3Mzg0ZTMxNDY0ZmE5YjVjMWE0MDc3MjE0OWQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPldpbmdhdGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2YwYzM1MDkwMTNmZjQxMmI4MzY0ZWU1MmQyNDYwOWRkLnNldENvbnRlbnQoaHRtbF83ZTQ1YTczODRlMzE0NjRmYTliNWMxYTQwNzcyMTQ5ZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9jYTY4OTI3OGZjY2E0YzBhYmVkZTQ0YzdjZjBmYmI4Yi5iaW5kUG9wdXAocG9wdXBfZjBjMzUwOTAxM2ZmNDEyYjgzNjRlZTUyZDI0NjA5ZGQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYTliN2YyZGUxNTYxNGUwNjlhYzY3MGNjNWY5MjU3MmYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42NTU1NzIzMTMyODA3NjQsLTczLjkyNjg4MjEyNjE2OTU1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzA0ZGQ3ZDc4NWZiZDQ0YjNhYWNmOTRmODQ3MjJmMjA3ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2M1Njg2ODA2ZGQ4MjQ0NmY5YmU0NWEwM2YyN2M1MDEzID0gJCgnPGRpdiBpZD0iaHRtbF9jNTY4NjgwNmRkODI0NDZmOWJlNDVhMDNmMjdjNTAxMyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+UnVnYnk8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzA0ZGQ3ZDc4NWZiZDQ0YjNhYWNmOTRmODQ3MjJmMjA3LnNldENvbnRlbnQoaHRtbF9jNTY4NjgwNmRkODI0NDZmOWJlNDVhMDNmMjdjNTAxMyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9hOWI3ZjJkZTE1NjE0ZTA2OWFjNjcwY2M1ZjkyNTcyZi5iaW5kUG9wdXAocG9wdXBfMDRkZDdkNzg1ZmJkNDRiM2FhY2Y5NGY4NDcyMmYyMDcpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZmM1NWRhMDUyNTY3NDQ1ZjgzYjAzMDk0NzIwYzQ0M2IgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MDkxOTA0NDQzNDU1OCwtNzQuMDgwMTU3MzQ5MzYyOTZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMGYwMDg3YmQzNGJhNDEyMDhiZGZhNDVmYjM1ZmYzODEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYmFmNjg2Mzk1MzEwNDM1NWFkOWQ5ZGZjMjg4YzA0NTYgPSAkKCc8ZGl2IGlkPSJodG1sX2JhZjY4NjM5NTMxMDQzNTVhZDlkOWRmYzI4OGMwNDU2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5QYXJrIEhpbGw8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzBmMDA4N2JkMzRiYTQxMjA4YmRmYTQ1ZmIzNWZmMzgxLnNldENvbnRlbnQoaHRtbF9iYWY2ODYzOTUzMTA0MzU1YWQ5ZDlkZmMyODhjMDQ1Nik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9mYzU1ZGEwNTI1Njc0NDVmODNiMDMwOTQ3MjBjNDQzYi5iaW5kUG9wdXAocG9wdXBfMGYwMDg3YmQzNGJhNDEyMDhiZGZhNDVmYjM1ZmYzODEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZWMwMDk0YTlmMDBjNGJlMzg2MTg4ZTM1MTVlYTU4NGUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MjEwOTA0NzI3NTQwOSwtNzQuMTMzMDQxNDM5NTE3MDRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZmE4OGVkODMxYzJhNGE4NTgxMWJlYjRiMWIxNDMzNDYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYzUyZDAzNWIwYzFkNDEzMmEwN2MyN2RiZTcyYjAxMWMgPSAkKCc8ZGl2IGlkPSJodG1sX2M1MmQwMzViMGMxZDQxMzJhMDdjMjdkYmU3MmIwMTFjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5XZXN0ZXJsZWlnaDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZmE4OGVkODMxYzJhNGE4NTgxMWJlYjRiMWIxNDMzNDYuc2V0Q29udGVudChodG1sX2M1MmQwMzViMGMxZDQxMzJhMDdjMjdkYmU3MmIwMTFjKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2VjMDA5NGE5ZjAwYzRiZTM4NjE4OGUzNTE1ZWE1ODRlLmJpbmRQb3B1cChwb3B1cF9mYTg4ZWQ4MzFjMmE0YTg1ODExYmViNGIxYjE0MzM0Nik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8wMDE0YTFhMzQzMzU0ZjliYTAwYTJkNjNlZTliMzdhMiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjYyMDE3MTUxMjIzMTg4NCwtNzQuMTUzMTUyNDYzODc3NjJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOGMxYjc4MzdjNTQwNDg2ZTkwODVmYjczN2M2ZjQ0ZWEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYjU0MmE1YzZlZGZlNDZlYzgzMDcyYTBjZmYxOWY1NmIgPSAkKCc8ZGl2IGlkPSJodG1sX2I1NDJhNWM2ZWRmZTQ2ZWM4MzA3MmEwY2ZmMTlmNTZiIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5HcmFuaXRldmlsbGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzhjMWI3ODM3YzU0MDQ4NmU5MDg1ZmI3MzdjNmY0NGVhLnNldENvbnRlbnQoaHRtbF9iNTQyYTVjNmVkZmU0NmVjODMwNzJhMGNmZjE5ZjU2Yik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8wMDE0YTFhMzQzMzU0ZjliYTAwYTJkNjNlZTliMzdhMi5iaW5kUG9wdXAocG9wdXBfOGMxYjc4MzdjNTQwNDg2ZTkwODVmYjczN2M2ZjQ0ZWEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYmNiNDI1MWVmYmY3NGZhYTk5YzZhZGNlNzVmODIwMGYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MzUzMjUwOTkxMTQ5MiwtNzQuMTY1MTA0MjAyNDExMjRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMTkwMzc4ODU4ZTE0NGIwYmE5N2NiMDRhZmI3MjFiODIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYjAwNTZiZDQwNDVhNGNkZjk5OGUwMjZkMTk2NGYwMDIgPSAkKCc8ZGl2IGlkPSJodG1sX2IwMDU2YmQ0MDQ1YTRjZGY5OThlMDI2ZDE5NjRmMDAyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Bcmxpbmd0b248L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzE5MDM3ODg1OGUxNDRiMGJhOTdjYjA0YWZiNzIxYjgyLnNldENvbnRlbnQoaHRtbF9iMDA1NmJkNDA0NWE0Y2RmOTk4ZTAyNmQxOTY0ZjAwMik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9iY2I0MjUxZWZiZjc0ZmFhOTljNmFkY2U3NWY4MjAwZi5iaW5kUG9wdXAocG9wdXBfMTkwMzc4ODU4ZTE0NGIwYmE5N2NiMDRhZmI3MjFiODIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZDFhNzdjOTE5NGYyNGI3OGJlMTQ3YTIxMzYzN2Q4YmEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41OTYzMTI1NzEyNzY3MzQsLTc0LjA2NzEyMzYzMjI1NTc0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzJiNGQyM2ZiMGJjNzQxYzBhNDM5OWFlYmEwZjhiZTkwID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzU4MDc1Y2VjYTE1NDRmY2RiMDY0OWVlOWZkZDViZTdlID0gJCgnPGRpdiBpZD0iaHRtbF81ODA3NWNlY2ExNTQ0ZmNkYjA2NDllZTlmZGQ1YmU3ZSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+QXJyb2NoYXI8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzJiNGQyM2ZiMGJjNzQxYzBhNDM5OWFlYmEwZjhiZTkwLnNldENvbnRlbnQoaHRtbF81ODA3NWNlY2ExNTQ0ZmNkYjA2NDllZTlmZGQ1YmU3ZSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9kMWE3N2M5MTk0ZjI0Yjc4YmUxNDdhMjEzNjM3ZDhiYS5iaW5kUG9wdXAocG9wdXBfMmI0ZDIzZmIwYmM3NDFjMGE0Mzk5YWViYTBmOGJlOTApOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfM2I3YWRiOWU0Y2IxNGRhZjlhMTk5MTY4YjRkNjhlZDMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41OTgyNjgzNTk1OTk5MSwtNzQuMDc2Njc0MzYyNzkwNV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8yODczYTZkODZjYjc0MmExODdkYjI3M2NmZWVmYTMxYyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84YTQ2YjM4MzlmNTE0MTg0YTg2ZTM2MDAyOGZiNTRjOSA9ICQoJzxkaXYgaWQ9Imh0bWxfOGE0NmIzODM5ZjUxNDE4NGE4NmUzNjAwMjhmYjU0YzkiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkdyYXNtZXJlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8yODczYTZkODZjYjc0MmExODdkYjI3M2NmZWVmYTMxYy5zZXRDb250ZW50KGh0bWxfOGE0NmIzODM5ZjUxNDE4NGE4NmUzNjAwMjhmYjU0YzkpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfM2I3YWRiOWU0Y2IxNGRhZjlhMTk5MTY4YjRkNjhlZDMuYmluZFBvcHVwKHBvcHVwXzI4NzNhNmQ4NmNiNzQyYTE4N2RiMjczY2ZlZWZhMzFjKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2RlOWZmMGVlODQyNTRkZTU4ZTMwMmMyZTM1MjkzYzM1ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNTk2MzI4OTEzNzk1MTMsLTc0LjA4NzUxMTE4MDA1NTc4XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2EzOGNkNmVjODc4YzQ4ZGM5Zjg5YTUxYTRlNmEwMmUyID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzJjMTkwMGYwY2EyMTQ3MDNiNGI1YjJlNWE2YzNmYTE3ID0gJCgnPGRpdiBpZD0iaHRtbF8yYzE5MDBmMGNhMjE0NzAzYjRiNWIyZTVhNmMzZmExNyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+T2xkIFRvd248L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2EzOGNkNmVjODc4YzQ4ZGM5Zjg5YTUxYTRlNmEwMmUyLnNldENvbnRlbnQoaHRtbF8yYzE5MDBmMGNhMjE0NzAzYjRiNWIyZTVhNmMzZmExNyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9kZTlmZjBlZTg0MjU0ZGU1OGUzMDJjMmUzNTI5M2MzNS5iaW5kUG9wdXAocG9wdXBfYTM4Y2Q2ZWM4NzhjNDhkYzlmODlhNTFhNGU2YTAyZTIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfM2FiNWYwMDVhZjQ0NDJjMjljZDJjNGY3Y2JmZGM1ZTcgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41ODg2NzI5NDgxOTkyNzUsLTc0LjA5NjM5OTA1MzEyNTIxXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzhkOWQ5NmNkNDQ0YTQyYmE5OTliZTU3MGY0ZWRiYWRjID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2ExMzI5ZTA5OWQ3NzQxNjQ5OTAzM2Y5N2FiMjQ4Y2YyID0gJCgnPGRpdiBpZD0iaHRtbF9hMTMyOWUwOTlkNzc0MTY0OTkwMzNmOTdhYjI0OGNmMiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+RG9uZ2FuIEhpbGxzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF84ZDlkOTZjZDQ0NGE0MmJhOTk5YmU1NzBmNGVkYmFkYy5zZXRDb250ZW50KGh0bWxfYTEzMjllMDk5ZDc3NDE2NDk5MDMzZjk3YWIyNDhjZjIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfM2FiNWYwMDVhZjQ0NDJjMjljZDJjNGY3Y2JmZGM1ZTcuYmluZFBvcHVwKHBvcHVwXzhkOWQ5NmNkNDQ0YTQyYmE5OTliZTU3MGY0ZWRiYWRjKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzk3OGFmNDQxMjI5MzQwNTdiYzc4NWM1OWQ2Mjc2NTUyID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNTczNTI2OTA1NzQyODMsLTc0LjA5MzQ4MjY2MzAzNTkxXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2U5M2VhMGQ2M2NkZDRlNGU5YWVkN2EyZWJjNmY3OTQ2ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzdjNTNiMDVhYTEzZTQ1YWZhMDZkMzgzNDdkM2Y1NGI4ID0gJCgnPGRpdiBpZD0iaHRtbF83YzUzYjA1YWExM2U0NWFmYTA2ZDM4MzQ3ZDNmNTRiOCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TWlkbGFuZCBCZWFjaDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZTkzZWEwZDYzY2RkNGU0ZTlhZWQ3YTJlYmM2Zjc5NDYuc2V0Q29udGVudChodG1sXzdjNTNiMDVhYTEzZTQ1YWZhMDZkMzgzNDdkM2Y1NGI4KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzk3OGFmNDQxMjI5MzQwNTdiYzc4NWM1OWQ2Mjc2NTUyLmJpbmRQb3B1cChwb3B1cF9lOTNlYTBkNjNjZGQ0ZTRlOWFlZDdhMmViYzZmNzk0Nik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl80YmE3MTFmYWI1NjA0ZTI1OTBjZGIxZDlmMTM0ZTFhZiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU3NjIxNTU4NzExNzg4LC03NC4xMDU4NTU5ODU0NTQzNF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83OGYwMGU5YmY3MTc0OWFlOTA4NTQ1NDg1MzBjOTM1NSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF81MDA3OGI4YjZmZTE0ZDNlOGJmZmU0ZmEzYjY5NWU5OCA9ICQoJzxkaXYgaWQ9Imh0bWxfNTAwNzhiOGI2ZmUxNGQzZThiZmZlNGZhM2I2OTVlOTgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkdyYW50IENpdHk8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzc4ZjAwZTliZjcxNzQ5YWU5MDg1NDU0ODUzMGM5MzU1LnNldENvbnRlbnQoaHRtbF81MDA3OGI4YjZmZTE0ZDNlOGJmZmU0ZmEzYjY5NWU5OCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl80YmE3MTFmYWI1NjA0ZTI1OTBjZGIxZDlmMTM0ZTFhZi5iaW5kUG9wdXAocG9wdXBfNzhmMDBlOWJmNzE3NDlhZTkwODU0NTQ4NTMwYzkzNTUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZTI2YzIxODBjZWRiNDBiNDhlMDU1NzhjMTMyOTEyNmUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41NjQyNTU0OTMwNzMzNSwtNzQuMTA0MzI3MDc0NjkxMjRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMTI1MmRhYWFjZWE3NDUyY2EyN2E5N2Y4YjRlYWFkMjcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYjMxNWM1MDc0MTY2NGFjYjlkYTcyMGFmZDQ2MGI1ODYgPSAkKCc8ZGl2IGlkPSJodG1sX2IzMTVjNTA3NDE2NjRhY2I5ZGE3MjBhZmQ0NjBiNTg2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5OZXcgRG9ycCBCZWFjaDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMTI1MmRhYWFjZWE3NDUyY2EyN2E5N2Y4YjRlYWFkMjcuc2V0Q29udGVudChodG1sX2IzMTVjNTA3NDE2NjRhY2I5ZGE3MjBhZmQ0NjBiNTg2KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2UyNmMyMTgwY2VkYjQwYjQ4ZTA1NTc4YzEzMjkxMjZlLmJpbmRQb3B1cChwb3B1cF8xMjUyZGFhYWNlYTc0NTJjYTI3YTk3ZjhiNGVhYWQyNyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9mYzI1NTZkMmQ1NTQ0YWE0OGIzNDFlMWQxNzg3NzM0ZiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU1Mzk4ODAwODU4NDYyLC03NC4xMzkxNjYyMjE3NTc2OF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9mM2UwYzBlNGU5ZDQ0NTVmOTU2NzNjMTFjNTBjYTAyZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9hZDA0N2FhYTJmNmM0OTEyOTA4ZjMxZDNhMjYwNTdhNiA9ICQoJzxkaXYgaWQ9Imh0bWxfYWQwNDdhYWEyZjZjNDkxMjkwOGYzMWQzYTI2MDU3YTYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJheSBUZXJyYWNlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9mM2UwYzBlNGU5ZDQ0NTVmOTU2NzNjMTFjNTBjYTAyZS5zZXRDb250ZW50KGh0bWxfYWQwNDdhYWEyZjZjNDkxMjkwOGYzMWQzYTI2MDU3YTYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZmMyNTU2ZDJkNTU0NGFhNDhiMzQxZTFkMTc4NzczNGYuYmluZFBvcHVwKHBvcHVwX2YzZTBjMGU0ZTlkNDQ1NWY5NTY3M2MxMWM1MGNhMDJlKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzg2YWJlZWQxM2JhNjRhNGU4ZmM5MzU2ODRjMDNjMGQ5ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNTMxOTExOTIwNDg5NjA1LC03NC4xOTE3NDEwNTc0NzgxNF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF80OGE1MzkwZWU5ZTI0ZGYwYWQyMTkxZDZiNTFkMTU0OSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9jZWU2ZTlmYzZmODM0MTgzOGJhOGI3MTNlOGRlZjdjNSA9ICQoJzxkaXYgaWQ9Imh0bWxfY2VlNmU5ZmM2ZjgzNDE4MzhiYThiNzEzZThkZWY3YzUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkh1Z3Vlbm90PC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80OGE1MzkwZWU5ZTI0ZGYwYWQyMTkxZDZiNTFkMTU0OS5zZXRDb250ZW50KGh0bWxfY2VlNmU5ZmM2ZjgzNDE4MzhiYThiNzEzZThkZWY3YzUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfODZhYmVlZDEzYmE2NGE0ZThmYzkzNTY4NGMwM2MwZDkuYmluZFBvcHVwKHBvcHVwXzQ4YTUzOTBlZTllMjRkZjBhZDIxOTFkNmI1MWQxNTQ5KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2QwNWViNzBiZTIzMjQzODliZjJjZDUyNDY4MWExZjBkID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNTI0Njk5Mzc2MTE4MTM2LC03NC4yMTk4MzEwNjYxNjc3N10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81ODQ5YjZkNWRjZWQ0OTc1YWRlYzU5ZTJhODk5MzFjZCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8xMWMwNGIxMjQ4MDM0Y2I2OTQwY2JhNGI4MjZhYzYyYiA9ICQoJzxkaXYgaWQ9Imh0bWxfMTFjMDRiMTI0ODAzNGNiNjk0MGNiYTRiODI2YWM2MmIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlBsZWFzYW50IFBsYWluczwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNTg0OWI2ZDVkY2VkNDk3NWFkZWM1OWUyYTg5OTMxY2Quc2V0Q29udGVudChodG1sXzExYzA0YjEyNDgwMzRjYjY5NDBjYmE0YjgyNmFjNjJiKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2QwNWViNzBiZTIzMjQzODliZjJjZDUyNDY4MWExZjBkLmJpbmRQb3B1cChwb3B1cF81ODQ5YjZkNWRjZWQ0OTc1YWRlYzU5ZTJhODk5MzFjZCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl85YjBmODQ4N2MyNjc0NTg2OWFjYTIxZWI3Mzc4NDAzYyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjUwNjA4MTY1MzQ2MzA1LC03NC4yMjk1MDM1MDI2MDAyN10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8zM2M2OGJhNGU4MDU0ZDEyYmFlMGI2YTkwMzBiMmI0MCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8xNGJmMDAxODNlZWI0MDhkOWEyODY4MWE3ZDlkZWQ4NCA9ICQoJzxkaXYgaWQ9Imh0bWxfMTRiZjAwMTgzZWViNDA4ZDlhMjg2ODFhN2Q5ZGVkODQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJ1dGxlciBNYW5vcjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMzNjNjhiYTRlODA1NGQxMmJhZTBiNmE5MDMwYjJiNDAuc2V0Q29udGVudChodG1sXzE0YmYwMDE4M2VlYjQwOGQ5YTI4NjgxYTdkOWRlZDg0KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzliMGY4NDg3YzI2NzQ1ODY5YWNhMjFlYjczNzg0MDNjLmJpbmRQb3B1cChwb3B1cF8zM2M2OGJhNGU4MDU0ZDEyYmFlMGI2YTkwMzBiMmI0MCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9mMDM5ZTA5MmRmYTg0Y2VhYWQyOTBlMjA4ODQ3MzEwMiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjUzMDUzMTQ4MjgzMzE0LC03NC4yMzIxNTc3NTg5NjUyNl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9mNzgzMzNmZDBhZWI0M2YwYTUxOWJhODVmYzRhNWRjOCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF80ZGEwMTIwMjhjMTQ0NDdhYjQyYzg4ZDMzMmU0MThiNSA9ICQoJzxkaXYgaWQ9Imh0bWxfNGRhMDEyMDI4YzE0NDQ3YWI0MmM4OGQzMzJlNDE4YjUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNoYXJsZXN0b248L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2Y3ODMzM2ZkMGFlYjQzZjBhNTE5YmE4NWZjNGE1ZGM4LnNldENvbnRlbnQoaHRtbF80ZGEwMTIwMjhjMTQ0NDdhYjQyYzg4ZDMzMmU0MThiNSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9mMDM5ZTA5MmRmYTg0Y2VhYWQyOTBlMjA4ODQ3MzEwMi5iaW5kUG9wdXAocG9wdXBfZjc4MzMzZmQwYWViNDNmMGE1MTliYTg1ZmM0YTVkYzgpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZTE5NTA0ODA3ZDQ2NDEzMGE2NDNkOGQ1NWQzNGRkOGMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41NDk0MDQwMDY1MDA3MiwtNzQuMjE1NzI4NTExMTM5NTJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNDY0YzI2MWMzZDgzNDNlOGJjY2RlOTkwYzdjMDZkODQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYzJiNzE1M2RiZDczNDdlYjk3OWM3NDY4NDc2YjRhNzggPSAkKCc8ZGl2IGlkPSJodG1sX2MyYjcxNTNkYmQ3MzQ3ZWI5NzljNzQ2ODQ3NmI0YTc4IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Sb3NzdmlsbGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzQ2NGMyNjFjM2Q4MzQzZThiY2NkZTk5MGM3YzA2ZDg0LnNldENvbnRlbnQoaHRtbF9jMmI3MTUzZGJkNzM0N2ViOTc5Yzc0Njg0NzZiNGE3OCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9lMTk1MDQ4MDdkNDY0MTMwYTY0M2Q4ZDU1ZDM0ZGQ4Yy5iaW5kUG9wdXAocG9wdXBfNDY0YzI2MWMzZDgzNDNlOGJjY2RlOTkwYzdjMDZkODQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfODUzMDUwZGRmZjIyNDFlNDgyNWUzMDk2YTg1NzAzMWEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41NDkyODU4MjI3ODMyMSwtNzQuMTg1ODg2NzQ1ODM4OTNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYzFiNDQxOWU1MzQ5NDE1Njg5YzZiOGJkOTgzOTE4ODQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMjg3NmE2ZTlmZTQyNDg1ZjljODk5YjQ0NzE3ODFhNjggPSAkKCc8ZGl2IGlkPSJodG1sXzI4NzZhNmU5ZmU0MjQ4NWY5Yzg5OWI0NDcxNzgxYTY4IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5BcmRlbiBIZWlnaHRzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jMWI0NDE5ZTUzNDk0MTU2ODljNmI4YmQ5ODM5MTg4NC5zZXRDb250ZW50KGh0bWxfMjg3NmE2ZTlmZTQyNDg1ZjljODk5YjQ0NzE3ODFhNjgpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfODUzMDUwZGRmZjIyNDFlNDgyNWUzMDk2YTg1NzAzMWEuYmluZFBvcHVwKHBvcHVwX2MxYjQ0MTllNTM0OTQxNTY4OWM2YjhiZDk4MzkxODg0KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzhhNDM0YjU0OTAzMzQxMWViNDRlYmI0NTFiMTRlNTlkID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNTU1Mjk1MjM2MTczMTk0LC03NC4xNzA3OTQxNDc4NjA5Ml0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8xYjNkYzc3NTkyNDM0NjQxOTA0NzEwMTM5OTk1ZWJkNSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9lZTU2YmZmZDgwM2I0ZmRiODMzZGFiODUzMzY1MGU5MCA9ICQoJzxkaXYgaWQ9Imh0bWxfZWU1NmJmZmQ4MDNiNGZkYjgzM2RhYjg1MzM2NTBlOTAiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkdyZWVucmlkZ2U8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzFiM2RjNzc1OTI0MzQ2NDE5MDQ3MTAxMzk5OTVlYmQ1LnNldENvbnRlbnQoaHRtbF9lZTU2YmZmZDgwM2I0ZmRiODMzZGFiODUzMzY1MGU5MCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl84YTQzNGI1NDkwMzM0MTFlYjQ0ZWJiNDUxYjE0ZTU5ZC5iaW5kUG9wdXAocG9wdXBfMWIzZGM3NzU5MjQzNDY0MTkwNDcxMDEzOTk5NWViZDUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfODdhMjAzNDQzYmQ2NDM2ODk2MTFhYWQzOGJjYzFkZGYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41ODkxMzg5NDg3NTI4MSwtNzQuMTU5MDIyMDgxNTY2MDFdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfN2M5OTEwMmQzNDQ2NDhlN2I1ZDcxM2Y4NDk0NTk4NDMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZWY1YmYwZjllYWJhNDBkYmI2MDUzNWEzNWI4MDk4N2QgPSAkKCc8ZGl2IGlkPSJodG1sX2VmNWJmMGY5ZWFiYTQwZGJiNjA1MzVhMzViODA5ODdkIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5IZWFydGxhbmQgVmlsbGFnZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfN2M5OTEwMmQzNDQ2NDhlN2I1ZDcxM2Y4NDk0NTk4NDMuc2V0Q29udGVudChodG1sX2VmNWJmMGY5ZWFiYTQwZGJiNjA1MzVhMzViODA5ODdkKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzg3YTIwMzQ0M2JkNjQzNjg5NjExYWFkMzhiY2MxZGRmLmJpbmRQb3B1cChwb3B1cF83Yzk5MTAyZDM0NDY0OGU3YjVkNzEzZjg0OTQ1OTg0Myk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9hMGUyNGQyOGQ3ODU0MGIzYTZiYTA0OWVmODBkNWMyZCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU5NDcyNjAyNzQ2Mjk1LC03NC4xODk1NjA0NTUxOTY5XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2ZlZDc1NDE1NDhmMzRlOWNhOWUyY2EyN2M4NzdiMWNhID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2MzNjBhNTIyMzU4YzRmOWJiZTRhYTVhY2Y0MWEwZjlhID0gJCgnPGRpdiBpZD0iaHRtbF9jMzYwYTUyMjM1OGM0ZjliYmU0YWE1YWNmNDFhMGY5YSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Q2hlbHNlYTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZmVkNzU0MTU0OGYzNGU5Y2E5ZTJjYTI3Yzg3N2IxY2Euc2V0Q29udGVudChodG1sX2MzNjBhNTIyMzU4YzRmOWJiZTRhYTVhY2Y0MWEwZjlhKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2EwZTI0ZDI4ZDc4NTQwYjNhNmJhMDQ5ZWY4MGQ1YzJkLmJpbmRQb3B1cChwb3B1cF9mZWQ3NTQxNTQ4ZjM0ZTljYTllMmNhMjdjODc3YjFjYSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl85M2NmMjE2N2I2NmQ0ZGE2ODg4NDkxODE0NDM3NjQxNCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjYwNTc3ODY4NDUyMzU4LC03NC4xODcyNTYzODM4MTU2N10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8xOTIzMmJmM2U2OTQ0MjIzOTEyODY5ZjljZmFlMzMxMCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9kNGJkNjc5YThkYTE0NzJjODU0NmNlYmVlZTU2MzNiNCA9ICQoJzxkaXYgaWQ9Imh0bWxfZDRiZDY3OWE4ZGExNDcyYzg1NDZjZWJlZWU1NjMzYjQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJsb29tZmllbGQ8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzE5MjMyYmYzZTY5NDQyMjM5MTI4NjlmOWNmYWUzMzEwLnNldENvbnRlbnQoaHRtbF9kNGJkNjc5YThkYTE0NzJjODU0NmNlYmVlZTU2MzNiNCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl85M2NmMjE2N2I2NmQ0ZGE2ODg4NDkxODE0NDM3NjQxNC5iaW5kUG9wdXAocG9wdXBfMTkyMzJiZjNlNjk0NDIyMzkxMjg2OWY5Y2ZhZTMzMTApOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNWY5ZDgzODZiMTkyNDU3MmI5Y2RlMWJkNmU1MWYyNjUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MDk1OTE4MDA0MjAzLC03NC4xNTk0MDk0ODY1NzEyMl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84MGQxZmQ2Nzg1MjA0NDc2ODliYTU5YTRkYzE5ZDE5NiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9mNGRlY2Y1MjFiZWM0YTJjOTYzMzFiOWJjMTAxNDVmNiA9ICQoJzxkaXYgaWQ9Imh0bWxfZjRkZWNmNTIxYmVjNGEyYzk2MzMxYjliYzEwMTQ1ZjYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJ1bGxzIEhlYWQ8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzgwZDFmZDY3ODUyMDQ0NzY4OWJhNTlhNGRjMTlkMTk2LnNldENvbnRlbnQoaHRtbF9mNGRlY2Y1MjFiZWM0YTJjOTYzMzFiOWJjMTAxNDVmNik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl81ZjlkODM4NmIxOTI0NTcyYjljZGUxYmQ2ZTUxZjI2NS5iaW5kUG9wdXAocG9wdXBfODBkMWZkNjc4NTIwNDQ3Njg5YmE1OWE0ZGMxOWQxOTYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNjZhOTQzY2UyMzJhNGFjMjhmNjUwNGNkZWZmMzZkNTEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43ODI2ODI1NjcxMjU3LC03My45NTMyNTY0NjgzNzExMl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83ZjZkN2JhYTI0MmE0NjIwYjQzZTY3ZDc2ZWMwNGFjYiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF80ZjI2YTU4MjQ0ZmU0NGY4OTI1NjZlNGJmZGM0NWExZiA9ICQoJzxkaXYgaWQ9Imh0bWxfNGYyNmE1ODI0NGZlNDRmODkyNTY2ZTRiZmRjNDVhMWYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNhcm5lZ2llIEhpbGw8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzdmNmQ3YmFhMjQyYTQ2MjBiNDNlNjdkNzZlYzA0YWNiLnNldENvbnRlbnQoaHRtbF80ZjI2YTU4MjQ0ZmU0NGY4OTI1NjZlNGJmZGM0NWExZik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl82NmE5NDNjZTIzMmE0YWMyOGY2NTA0Y2RlZmYzNmQ1MS5iaW5kUG9wdXAocG9wdXBfN2Y2ZDdiYWEyNDJhNDYyMGI0M2U2N2Q3NmVjMDRhY2IpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfY2U1ODdjNDM0Mzg3NGY4NGI4YjRkZWU3YTY2OWNmMWQgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MjMyNTkwMTg4NTc2OCwtNzMuOTg4NDMzNjgwMjM1OTddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZGE0YjZjYjgzNmQwNDE1OThiOWNhYzkzNWE2NDY2OGQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNzM0NTk5OTBiNmUzNDYyMTkwNWEzMzg1MTdjYjFmNzMgPSAkKCc8ZGl2IGlkPSJodG1sXzczNDU5OTkwYjZlMzQ2MjE5MDVhMzM4NTE3Y2IxZjczIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Ob2hvPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9kYTRiNmNiODM2ZDA0MTU5OGI5Y2FjOTM1YTY0NjY4ZC5zZXRDb250ZW50KGh0bWxfNzM0NTk5OTBiNmUzNDYyMTkwNWEzMzg1MTdjYjFmNzMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfY2U1ODdjNDM0Mzg3NGY4NGI4YjRkZWU3YTY2OWNmMWQuYmluZFBvcHVwKHBvcHVwX2RhNGI2Y2I4MzZkMDQxNTk4YjljYWM5MzVhNjQ2NjhkKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2U1M2RkZWMzZWZhYTRiZGU5MTIxZjhkYzA2Y2U4ZDcyID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzE1MjI4OTIwNDYyODIsLTc0LjAwNTQxNTI5ODczMzU1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2JiYmZiMGQyNDFkYTQxNTY4YTFjYWQ0MWExYTc5YmY5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzMxMWE2Zjc3MDhmZTQzNDU5NGZmNmU1ZTc3YTgzYWNhID0gJCgnPGRpdiBpZD0iaHRtbF8zMTFhNmY3NzA4ZmU0MzQ1OTRmZjZlNWU3N2E4M2FjYSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Q2l2aWMgQ2VudGVyPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iYmJmYjBkMjQxZGE0MTU2OGExY2FkNDFhMWE3OWJmOS5zZXRDb250ZW50KGh0bWxfMzExYTZmNzcwOGZlNDM0NTk0ZmY2ZTVlNzdhODNhY2EpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZTUzZGRlYzNlZmFhNGJkZTkxMjFmOGRjMDZjZThkNzIuYmluZFBvcHVwKHBvcHVwX2JiYmZiMGQyNDFkYTQxNTY4YTFjYWQ0MWExYTc5YmY5KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzE4MTFiOGM1OGU0ZjQ3Y2FhNzc2MzU3NTc5MmQxNGQxID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzQ4NTA5NjY0MzEyMiwtNzMuOTg4NzEzMTMyODUyNDddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMjgzZDZlMWY1NTM3NDkwOGFhNjcwMjUzMzUyMjIwNTYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMmM4NjNjYzZlNTRhNDNhMDg4M2Y5MmU3NTQyNDhlMjQgPSAkKCc8ZGl2IGlkPSJodG1sXzJjODYzY2M2ZTU0YTQzYTA4ODNmOTJlNzU0MjQ4ZTI0IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5NaWR0b3duIFNvdXRoPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8yODNkNmUxZjU1Mzc0OTA4YWE2NzAyNTMzNTIyMjA1Ni5zZXRDb250ZW50KGh0bWxfMmM4NjNjYzZlNTRhNDNhMDg4M2Y5MmU3NTQyNDhlMjQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMTgxMWI4YzU4ZTRmNDdjYWE3NzYzNTc1NzkyZDE0ZDEuYmluZFBvcHVwKHBvcHVwXzI4M2Q2ZTFmNTUzNzQ5MDhhYTY3MDI1MzM1MjIyMDU2KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzBmZjc4MGNjYTU5ODRjNjk4MWZlODZiNmM0NjFkYmE1ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNTY5NjA1OTQyNzU1MDUsLTc0LjEzNDA1NzI5ODYyNTddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfODM5MWM4OTZhMTliNDBiOTlkNjU4NGI0MWYyYmEyZjcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYmRiZjQ5ODhiZTAzNDVhYTlkZWNiNDllMzRmOTgzODMgPSAkKCc8ZGl2IGlkPSJodG1sX2JkYmY0OTg4YmUwMzQ1YWE5ZGVjYjQ5ZTM0Zjk4MzgzIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5SaWNobW9uZCBUb3duPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF84MzkxYzg5NmExOWI0MGI5OWQ2NTg0YjQxZjJiYTJmNy5zZXRDb250ZW50KGh0bWxfYmRiZjQ5ODhiZTAzNDVhYTlkZWNiNDllMzRmOTgzODMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMGZmNzgwY2NhNTk4NGM2OTgxZmU4NmI2YzQ2MWRiYTUuYmluZFBvcHVwKHBvcHVwXzgzOTFjODk2YTE5YjQwYjk5ZDY1ODRiNDFmMmJhMmY3KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2I0NTU1OTM3ZDMxYTRiNjI4NGZmMzJmZWQ5Y2MzYjU3ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjA5NzE5MzQwNzkyODQsLTc0LjA2NjY3NzY2MDYxNzcxXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2MxOGE1ZTQ1ZmUyYzRiMTU4MjZjOTU2OTU1NjIyYWUyID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2Y2NjI3YmQ5NzQyMjQ2MWU4MjhmMmIxNTZiNTcwNjg1ID0gJCgnPGRpdiBpZD0iaHRtbF9mNjYyN2JkOTc0MjI0NjFlODI4ZjJiMTU2YjU3MDY4NSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+U2hvcmUgQWNyZXM8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2MxOGE1ZTQ1ZmUyYzRiMTU4MjZjOTU2OTU1NjIyYWUyLnNldENvbnRlbnQoaHRtbF9mNjYyN2JkOTc0MjI0NjFlODI4ZjJiMTU2YjU3MDY4NSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9iNDU1NTkzN2QzMWE0YjYyODRmZjMyZmVkOWNjM2I1Ny5iaW5kUG9wdXAocG9wdXBfYzE4YTVlNDVmZTJjNGIxNTgyNmM5NTY5NTU2MjJhZTIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMTdjNDY3M2JlOTdkNDk5MWI1NzYzODA3MzA0MmJiZDAgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MTkxNzg0NTIwMjg0MywtNzQuMDcyNjQyNDQ1NDg0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzVhYTJhNTkxYzNlNjQ3ZjQ4MGMxMzQ0NmI2YTg1ODZlID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2I4MzI4NjhkNTk2NjQ0N2U4ZmUxMzA0NmZlMTM4MzAwID0gJCgnPGRpdiBpZD0iaHRtbF9iODMyODY4ZDU5NjY0NDdlOGZlMTMwNDZmZTEzODMwMCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Q2xpZnRvbjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNWFhMmE1OTFjM2U2NDdmNDgwYzEzNDQ2YjZhODU4NmUuc2V0Q29udGVudChodG1sX2I4MzI4NjhkNTk2NjQ0N2U4ZmUxMzA0NmZlMTM4MzAwKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzE3YzQ2NzNiZTk3ZDQ5OTFiNTc2MzgwNzMwNDJiYmQwLmJpbmRQb3B1cChwb3B1cF81YWEyYTU5MWMzZTY0N2Y0ODBjMTM0NDZiNmE4NTg2ZSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl85YjdlZDNmM2JiMTE0NjVlOTEwZWYyMjhmMjEyZWNhNSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjYwNDQ3MzE4OTY4NzksLTc0LjA4NDAyMzY0NzQwMzU4XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2JmMGEwOGY5OWFjZTQ2MWE4NmNhN2JjOTg0NWE4OGE0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2JiODkzMzhlNjQxNTQ2YTM5NzNkODM3NDMyMWZmMmNmID0gJCgnPGRpdiBpZD0iaHRtbF9iYjg5MzM4ZTY0MTU0NmEzOTczZDgzNzQzMjFmZjJjZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Q29uY29yZDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYmYwYTA4Zjk5YWNlNDYxYTg2Y2E3YmM5ODQ1YTg4YTQuc2V0Q29udGVudChodG1sX2JiODkzMzhlNjQxNTQ2YTM5NzNkODM3NDMyMWZmMmNmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzliN2VkM2YzYmIxMTQ2NWU5MTBlZjIyOGYyMTJlY2E1LmJpbmRQb3B1cChwb3B1cF9iZjBhMDhmOTlhY2U0NjFhODZjYTdiYzk4NDVhODhhNCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl85YTI3ZjIwNzBkYzY0NzljODhhOGQ3MDA0MGU4ZDM5NCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjYwNjc5NDM5NDgwMSwtNzQuMDk3NzYyMDY5NzI1MjJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYTJkOTU2YzNjZDVmNGM5N2IzMThlN2UxN2QzNjVhODYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMjE2M2MzY2Y0NmEwNDI3NmI4N2U3MDE5ZmNiYTk1NTEgPSAkKCc8ZGl2IGlkPSJodG1sXzIxNjNjM2NmNDZhMDQyNzZiODdlNzAxOWZjYmE5NTUxIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5FbWVyc29uIEhpbGw8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2EyZDk1NmMzY2Q1ZjRjOTdiMzE4ZTdlMTdkMzY1YTg2LnNldENvbnRlbnQoaHRtbF8yMTYzYzNjZjQ2YTA0Mjc2Yjg3ZTcwMTlmY2JhOTU1MSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl85YTI3ZjIwNzBkYzY0NzljODhhOGQ3MDA0MGU4ZDM5NC5iaW5kUG9wdXAocG9wdXBfYTJkOTU2YzNjZDVmNGM5N2IzMThlN2UxN2QzNjVhODYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZmYxYWFhNGI1ZjhiNDIxNmIwZDZlYzQ4OTE5OGQzYmQgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MzU2MzAwMDY4MTE1MSwtNzQuMDk4MDUwNjIzNzM4ODddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNDU0MTE1ODFmMTk4NDZiMGFhOWU1MzhlMThjZGRjZDIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZDRjMjY0ZGM5MmY5NDE1NjllMmM4ZGQzYjJhMTUxNjMgPSAkKCc8ZGl2IGlkPSJodG1sX2Q0YzI2NGRjOTJmOTQxNTY5ZTJjOGRkM2IyYTE1MTYzIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5SYW5kYWxsIE1hbm9yPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80NTQxMTU4MWYxOTg0NmIwYWE5ZTUzOGUxOGNkZGNkMi5zZXRDb250ZW50KGh0bWxfZDRjMjY0ZGM5MmY5NDE1NjllMmM4ZGQzYjJhMTUxNjMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZmYxYWFhNGI1ZjhiNDIxNmIwZDZlYzQ4OTE5OGQzYmQuYmluZFBvcHVwKHBvcHVwXzQ1NDExNTgxZjE5ODQ2YjBhYTllNTM4ZTE4Y2RkY2QyKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2RiNmVmYzA0MWE0NzRlMjJhNWY3MDM0ZTFiYTJkNGYyID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjM4NDMyODM3OTQ3OTUsLTc0LjE4NjIyMzMxNzQ5ODIzXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzFiNTVjMjY1MmFiNDQ3ZmE4NjA1YmI1NWM3YmQ2NjJjID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2E5ZGNjM2FhNGZkNzQ1OTJhOWY0YzAxYmFmZTAxMmFmID0gJCgnPGRpdiBpZD0iaHRtbF9hOWRjYzNhYTRmZDc0NTkyYTlmNGMwMWJhZmUwMTJhZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+SG93bGFuZCBIb29rPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8xYjU1YzI2NTJhYjQ0N2ZhODYwNWJiNTVjN2JkNjYyYy5zZXRDb250ZW50KGh0bWxfYTlkY2MzYWE0ZmQ3NDU5MmE5ZjRjMDFiYWZlMDEyYWYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZGI2ZWZjMDQxYTQ3NGUyMmE1ZjcwMzRlMWJhMmQ0ZjIuYmluZFBvcHVwKHBvcHVwXzFiNTVjMjY1MmFiNDQ3ZmE4NjA1YmI1NWM3YmQ2NjJjKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzQ5MmM4NjQ2YjZkYTRlNTY5NDlhNzI3Mzk2YTc0ZTlkID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjMwMTQ2NzQxMTkzODI2LC03NC4xNDE4MTY3ODk2ODg5XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzBkMTY4MTVhYTc1YzRmZWJhOTNjNGQxYzNiZWI2ODg0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzA0MWIzYjg4YmM1NDQyY2FiMDYyYjA1ZTY1ZmEyMjA1ID0gJCgnPGRpdiBpZD0iaHRtbF8wNDFiM2I4OGJjNTQ0MmNhYjA2MmIwNWU2NWZhMjIwNSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+RWxtIFBhcms8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzBkMTY4MTVhYTc1YzRmZWJhOTNjNGQxYzNiZWI2ODg0LnNldENvbnRlbnQoaHRtbF8wNDFiM2I4OGJjNTQ0MmNhYjA2MmIwNWU2NWZhMjIwNSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl80OTJjODY0NmI2ZGE0ZTU2OTQ5YTcyNzM5NmE3NGU5ZC5iaW5kUG9wdXAocG9wdXBfMGQxNjgxNWFhNzVjNGZlYmE5M2M0ZDFjM2JlYjY4ODQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZmQ2NGYyNjNiM2NiNDlkNmFiZDRlZWI3ZWY0N2Q4NzQgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42NTIxMTc0NTE3OTM0OTQsLTczLjkxNjY1MzMxOTc4MDQ4XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzBkYjgxMzNiNWY4ZDQ3NGQ4OTM2OTBmZGI0N2QxYjExID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzBlNTNkMGMyMTEyNjRiMDhiNzgyN2EyMjU5NmNjM2ZlID0gJCgnPGRpdiBpZD0iaHRtbF8wZTUzZDBjMjExMjY0YjA4Yjc4MjdhMjI1OTZjYzNmZSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+UmVtc2VuIFZpbGxhZ2U8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzBkYjgxMzNiNWY4ZDQ3NGQ4OTM2OTBmZGI0N2QxYjExLnNldENvbnRlbnQoaHRtbF8wZTUzZDBjMjExMjY0YjA4Yjc4MjdhMjI1OTZjYzNmZSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9mZDY0ZjI2M2IzY2I0OWQ2YWJkNGVlYjdlZjQ3ZDg3NC5iaW5kUG9wdXAocG9wdXBfMGRiODEzM2I1ZjhkNDc0ZDg5MzY5MGZkYjQ3ZDFiMTEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYzRhYWExMzliZWZhNGY0OGExMGJkNjBlMmFjOTliM2MgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42NjI3NDQyNzk2OTY2LC03My44ODUxMTc3NjM3OTI5Ml0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8zYmRlNjY1YWVhMjk0MjIxYjYyODIwMzMzOTk1Njg2YyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8zZjI0MjdiYWVkNDE0YjgzYmEyZDFjNTA1M2RhMjA4NSA9ICQoJzxkaXYgaWQ9Imh0bWxfM2YyNDI3YmFlZDQxNGI4M2JhMmQxYzUwNTNkYTIwODUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk5ldyBMb3RzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8zYmRlNjY1YWVhMjk0MjIxYjYyODIwMzMzOTk1Njg2Yy5zZXRDb250ZW50KGh0bWxfM2YyNDI3YmFlZDQxNGI4M2JhMmQxYzUwNTNkYTIwODUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYzRhYWExMzliZWZhNGY0OGExMGJkNjBlMmFjOTliM2MuYmluZFBvcHVwKHBvcHVwXzNiZGU2NjVhZWEyOTQyMjFiNjI4MjAzMzM5OTU2ODZjKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzQyOWFlMmZmZGY0ZDQ2YzhiMjY5ZTI0M2YwOWU4Mjg5ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjMxMzE3NTUwMzk2NjcsLTczLjkwMjMzNDc0Mjk1ODM2XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2U2OWU0ZWEwOTYyYzQzZTE5NTM4OWZjZWE2MzZmZTc5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzI0OTVlYmM0NmI4ZjQ0NTNhMmE2YzAxYjBhYzIwN2ZiID0gJCgnPGRpdiBpZD0iaHRtbF8yNDk1ZWJjNDZiOGY0NDUzYTJhNmMwMWIwYWMyMDdmYiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+UGFlcmRlZ2F0IEJhc2luPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9lNjllNGVhMDk2MmM0M2UxOTUzODlmY2VhNjM2ZmU3OS5zZXRDb250ZW50KGh0bWxfMjQ5NWViYzQ2YjhmNDQ1M2EyYTZjMDFiMGFjMjA3ZmIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNDI5YWUyZmZkZjRkNDZjOGIyNjllMjQzZjA5ZTgyODkuYmluZFBvcHVwKHBvcHVwX2U2OWU0ZWEwOTYyYzQzZTE5NTM4OWZjZWE2MzZmZTc5KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzZkNzE2NjJkMmNjNjQ1ZmM4NzQzOTBlNGJkZTg1ZDYwID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjE1OTc0MjM5NjIzMzYsLTczLjkxNTE1MzkxNTUwNDA0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2I3Nzk5Yzk4NDdhNDRjMjE5NDkxMzhlYTExMjFjYmI1ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2E4NmVjYzhjNTljNzQyYjBiNzI2ODQ2YjEzMzM2NjJkID0gJCgnPGRpdiBpZD0iaHRtbF9hODZlY2M4YzU5Yzc0MmIwYjcyNjg0NmIxMzMzNjYyZCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TWlsbCBCYXNpbjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYjc3OTljOTg0N2E0NGMyMTk0OTEzOGVhMTEyMWNiYjUuc2V0Q29udGVudChodG1sX2E4NmVjYzhjNTljNzQyYjBiNzI2ODQ2YjEzMzM2NjJkKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzZkNzE2NjJkMmNjNjQ1ZmM4NzQzOTBlNGJkZTg1ZDYwLmJpbmRQb3B1cChwb3B1cF9iNzc5OWM5ODQ3YTQ0YzIxOTQ5MTM4ZWExMTIxY2JiNSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9mZGUxM2NiMzJjOTQ0MWY2OGMwYWQ2OGExNmE1MTE2OCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjcxMTQ1OTY0MzcwNDgyLC03My43OTY0NjQ2MjA4MTU5M10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9lYjEyYTUxNWY5YzI0ZTA5YWVjMDQ1YTkwYzMyYzNlZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iNmRmN2U1ZTk0NTM0NGYwOWI4OWIzZmZlZDk3OGUxMiA9ICQoJzxkaXYgaWQ9Imh0bWxfYjZkZjdlNWU5NDUzNDRmMDliODliM2ZmZWQ5NzhlMTIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkphbWFpY2EgSGlsbHM8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2ViMTJhNTE1ZjljMjRlMDlhZWMwNDVhOTBjMzJjM2VmLnNldENvbnRlbnQoaHRtbF9iNmRmN2U1ZTk0NTM0NGYwOWI4OWIzZmZlZDk3OGUxMik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9mZGUxM2NiMzJjOTQ0MWY2OGMwYWQ2OGExNmE1MTE2OC5iaW5kUG9wdXAocG9wdXBfZWIxMmE1MTVmOWMyNGUwOWFlYzA0NWE5MGMzMmMzZWYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfY2I0MzBkZGUxNTg1NDI5ZGI1ZjJhZGNmN2FlN2IxM2MgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MzM1MDAyNTQyOTc1NywtNzMuNzk2NzE2NzgwMjgzNDldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZThjODI3MGJiNjllNDI5OTg1MjNmOGZkZGEwMjI1YzggPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMmYyOWYzN2ZmYTVjNGE2NWI3OTE4YjYyMDBlMzBmZGYgPSAkKCc8ZGl2IGlkPSJodG1sXzJmMjlmMzdmZmE1YzRhNjViNzkxOGI2MjAwZTMwZmRmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5VdG9waWE8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2U4YzgyNzBiYjY5ZTQyOTk4NTIzZjhmZGRhMDIyNWM4LnNldENvbnRlbnQoaHRtbF8yZjI5ZjM3ZmZhNWM0YTY1Yjc5MThiNjIwMGUzMGZkZik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9jYjQzMGRkZTE1ODU0MjlkYjVmMmFkY2Y3YWU3YjEzYy5iaW5kUG9wdXAocG9wdXBfZThjODI3MGJiNjllNDI5OTg1MjNmOGZkZGEwMjI1YzgpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNzgzZjBkZTI0ZTJkNDE0ZDhiNDhjYjFmMGVjNzU3MWIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MzQ5MzYxODA3NTQ3OCwtNzMuODA0ODYxMjAwNDA1MzddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYmI1MDg3YThlNzRlNDA3M2JjMzNmZWM0ZDVmOTNjMzkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZjQ5ZTQyZjg4ZmQwNGNjMmE1M2UyNzIxNTc4ODNmMTEgPSAkKCc8ZGl2IGlkPSJodG1sX2Y0OWU0MmY4OGZkMDRjYzJhNTNlMjcyMTU3ODgzZjExIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Qb21vbm9rPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iYjUwODdhOGU3NGU0MDczYmMzM2ZlYzRkNWY5M2MzOS5zZXRDb250ZW50KGh0bWxfZjQ5ZTQyZjg4ZmQwNGNjMmE1M2UyNzIxNTc4ODNmMTEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNzgzZjBkZTI0ZTJkNDE0ZDhiNDhjYjFmMGVjNzU3MWIuYmluZFBvcHVwKHBvcHVwX2JiNTA4N2E4ZTc0ZTQwNzNiYzMzZmVjNGQ1ZjkzYzM5KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2IzNGI0ZDkzMWIzYjQ4MThiMzY1MzllMjNmOGMyZWY2ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzcwMzE3MzkyOTk4MiwtNzMuODk0Njc5OTYyNzA1NzRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNjU0ZjcyM2QxZmE0NGU4ZmEwNWM1MzkzNjk0NmZkZWQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOTU2NTY0YTUxZDI1NDNhY2I1NGNiYjk1MjdjYTY2ODUgPSAkKCc8ZGl2IGlkPSJodG1sXzk1NjU2NGE1MWQyNTQzYWNiNTRjYmI5NTI3Y2E2Njg1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Bc3RvcmlhIEhlaWdodHM8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzY1NGY3MjNkMWZhNDRlOGZhMDVjNTM5MzY5NDZmZGVkLnNldENvbnRlbnQoaHRtbF85NTY1NjRhNTFkMjU0M2FjYjU0Y2JiOTUyN2NhNjY4NSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9iMzRiNGQ5MzFiM2I0ODE4YjM2NTM5ZTIzZjhjMmVmNi5iaW5kUG9wdXAocG9wdXBfNjU0ZjcyM2QxZmE0NGU4ZmEwNWM1MzkzNjk0NmZkZWQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNTVkNjA0M2IxMTkzNGQ2NWJkMGYxZDA5M2U2M2UzNTIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC44MzE0MjgzNDE2MTU0OCwtNzMuOTAxMTk5MDMzODc2NjddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMzlkMzI3NzdhNTQxNDUwMjlkN2Y5NDNmMWY3OGNhY2MgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNzBhZDFiZTk1MmJjNDM2YThiNDIwZTY4ZmQ3ZGJhNjkgPSAkKCc8ZGl2IGlkPSJodG1sXzcwYWQxYmU5NTJiYzQzNmE4YjQyMGU2OGZkN2RiYTY5IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5DbGFyZW1vbnQgVmlsbGFnZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMzlkMzI3NzdhNTQxNDUwMjlkN2Y5NDNmMWY3OGNhY2Muc2V0Q29udGVudChodG1sXzcwYWQxYmU5NTJiYzQzNmE4YjQyMGU2OGZkN2RiYTY5KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzU1ZDYwNDNiMTE5MzRkNjViZDBmMWQwOTNlNjNlMzUyLmJpbmRQb3B1cChwb3B1cF8zOWQzMjc3N2E1NDE0NTAyOWQ3Zjk0M2YxZjc4Y2FjYyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9lMzdlNjM4YTI2MmE0YjVlODkxNzY5MTE3MzBiOTdkMiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjgyNDc4MDQ5MDg0MjkwNSwtNzMuOTE1ODQ2NTI3NTkwMDldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZmJkZjkzNGY4MzEwNDk1YWJlYTQ4MmJlMjcyZjA4ZTQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNjU0YzQwMzcyODA3NDdhYzkzMzNiN2YzYjQ3ZmE1NTEgPSAkKCc8ZGl2IGlkPSJodG1sXzY1NGM0MDM3MjgwNzQ3YWM5MzMzYjdmM2I0N2ZhNTUxIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Db25jb3Vyc2UgVmlsbGFnZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZmJkZjkzNGY4MzEwNDk1YWJlYTQ4MmJlMjcyZjA4ZTQuc2V0Q29udGVudChodG1sXzY1NGM0MDM3MjgwNzQ3YWM5MzMzYjdmM2I0N2ZhNTUxKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2UzN2U2MzhhMjYyYTRiNWU4OTE3NjkxMTczMGI5N2QyLmJpbmRQb3B1cChwb3B1cF9mYmRmOTM0ZjgzMTA0OTVhYmVhNDgyYmUyNzJmMDhlNCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl81MjMxZjQwNzYwMmQ0NjIyYWM2YjhjYjg2M2FjMDNhNSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg0MzgyNjE3NjcxNjU0LC03My45MTY1NTU1MTk2NDQxOV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF80MGNlNzNhMGEwNzE0ZGYxYTBiNzFlNjEwOWI0ZDI3NSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9mOTRjMmEwY2QwOGE0MTU3YWU4ODEzNDhiMjExODNjZCA9ICQoJzxkaXYgaWQ9Imh0bWxfZjk0YzJhMGNkMDhhNDE1N2FlODgxMzQ4YjIxMTgzY2QiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk1vdW50IEVkZW48L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzQwY2U3M2EwYTA3MTRkZjFhMGI3MWU2MTA5YjRkMjc1LnNldENvbnRlbnQoaHRtbF9mOTRjMmEwY2QwOGE0MTU3YWU4ODEzNDhiMjExODNjZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl81MjMxZjQwNzYwMmQ0NjIyYWM2YjhjYjg2M2FjMDNhNS5iaW5kUG9wdXAocG9wdXBfNDBjZTczYTBhMDcxNGRmMWEwYjcxZTYxMDliNGQyNzUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMjYxYWI1ZGM5NmZjNDBkMTgzNTE3MmIxNWRkYTRhNjQgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC44NDg4NDE2MDcyNDY2NSwtNzMuOTA4Mjk5MzA4ODE5ODhdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMzJlNDZlOTM1ZGViNDE4MWEwMmIxYWE5OWQ5ZTlkZmEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfN2MzZDc3OGRkMmNlNDU0MWI5ODdkMjI1NTEwOWFkMmMgPSAkKCc8ZGl2IGlkPSJodG1sXzdjM2Q3NzhkZDJjZTQ1NDFiOTg3ZDIyNTUxMDlhZDJjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Nb3VudCBIb3BlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8zMmU0NmU5MzVkZWI0MTgxYTAyYjFhYTk5ZDllOWRmYS5zZXRDb250ZW50KGh0bWxfN2MzZDc3OGRkMmNlNDU0MWI5ODdkMjI1NTEwOWFkMmMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMjYxYWI1ZGM5NmZjNDBkMTgzNTE3MmIxNWRkYTRhNjQuYmluZFBvcHVwKHBvcHVwXzMyZTQ2ZTkzNWRlYjQxODFhMDJiMWFhOTlkOWU5ZGZhKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzViYWY4MTljZGJkNDQ5YTFiMjVlNDQ4ZmIzNGRlNGEzID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzYwMjgwMzMxMzEzNzQsLTczLjk2MzU1NjE0MDk0MzAzXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzEzYTM5YTY2OTE2YzQyZTNiOWY1ZTcxN2JjMWU0Y2VhID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzQxM2RmZTRiNDhmZjQwYWVhMmZkNDlkNTZlYmY0OTdhID0gJCgnPGRpdiBpZD0iaHRtbF80MTNkZmU0YjQ4ZmY0MGFlYTJmZDQ5ZDU2ZWJmNDk3YSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+U3V0dG9uIFBsYWNlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8xM2EzOWE2NjkxNmM0MmUzYjlmNWU3MTdiYzFlNGNlYS5zZXRDb250ZW50KGh0bWxfNDEzZGZlNGI0OGZmNDBhZWEyZmQ0OWQ1NmViZjQ5N2EpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNWJhZjgxOWNkYmQ0NDlhMWIyNWU0NDhmYjM0ZGU0YTMuYmluZFBvcHVwKHBvcHVwXzEzYTM5YTY2OTE2YzQyZTNiOWY1ZTcxN2JjMWU0Y2VhKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzdjOWM3NTE4ZDk3ZDQ5OTU4MmQ0ZTcxYTlhMzkzMTQ2ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzQzNDE0MDkwMDczNTM2LC03My45NTM4Njc4MjEzMDc0NV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82MDQ0ZGIwNzNkMGI0ZDkyODY0ZGQ0ZjZiZmNiOGMwNSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9kNGZiYTdiZjY3MWY0OGUyYjAxMTc4MjBjZDIyYjUwNiA9ICQoJzxkaXYgaWQ9Imh0bWxfZDRmYmE3YmY2NzFmNDhlMmIwMTE3ODIwY2QyMmI1MDYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkh1bnRlcnMgUG9pbnQ8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzYwNDRkYjA3M2QwYjRkOTI4NjRkZDRmNmJmY2I4YzA1LnNldENvbnRlbnQoaHRtbF9kNGZiYTdiZjY3MWY0OGUyYjAxMTc4MjBjZDIyYjUwNik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl83YzljNzUxOGQ5N2Q0OTk1ODJkNGU3MWE5YTM5MzE0Ni5iaW5kUG9wdXAocG9wdXBfNjA0NGRiMDczZDBiNGQ5Mjg2NGRkNGY2YmZjYjhjMDUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMzA2ZWFjOTM4MmRmNDMzZmIyZGEwMjRiNTdmMWRkYTggPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43NTIwNDIzNjk1MDcyMiwtNzMuOTY3NzA4MjQ1ODE4MzRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfODk2ODNkMTRkMjg2NDdkNzhhMDcwZWEyNjg5YTcyYmIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZGRlZWY5Mzg1NDU1NDVlZWI0MWI4NTA1MTIxMmM0YjEgPSAkKCc8ZGl2IGlkPSJodG1sX2RkZWVmOTM4NTQ1NTQ1ZWViNDFiODUwNTEyMTJjNGIxIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5UdXJ0bGUgQmF5PC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF84OTY4M2QxNGQyODY0N2Q3OGEwNzBlYTI2ODlhNzJiYi5zZXRDb250ZW50KGh0bWxfZGRlZWY5Mzg1NDU1NDVlZWI0MWI4NTA1MTIxMmM0YjEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMzA2ZWFjOTM4MmRmNDMzZmIyZGEwMjRiNTdmMWRkYTguYmluZFBvcHVwKHBvcHVwXzg5NjgzZDE0ZDI4NjQ3ZDc4YTA3MGVhMjY4OWE3MmJiKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzkyODYwM2IwYzY2NzRjNGQ5MWUwOTA1YmY0OTAxNGQwID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzQ2OTE3NDEwNzQwMTk1LC03My45NzEyMTkyODcyMjI2NV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82NDQ0ZGMyMTYwZDY0ZWM2OGFhYjVkMGZlZGVjYTc5YyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF80MGVjMjBkZTU3MTE0Yjg5OWQ0MzdlYzdjYzQxOTc4MiA9ICQoJzxkaXYgaWQ9Imh0bWxfNDBlYzIwZGU1NzExNGI4OTlkNDM3ZWM3Y2M0MTk3ODIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlR1ZG9yIENpdHk8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzY0NDRkYzIxNjBkNjRlYzY4YWFiNWQwZmVkZWNhNzljLnNldENvbnRlbnQoaHRtbF80MGVjMjBkZTU3MTE0Yjg5OWQ0MzdlYzdjYzQxOTc4Mik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl85Mjg2MDNiMGM2Njc0YzRkOTFlMDkwNWJmNDkwMTRkMC5iaW5kUG9wdXAocG9wdXBfNjQ0NGRjMjE2MGQ2NGVjNjhhYWI1ZDBmZWRlY2E3OWMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNWZlNDE3ODJmYTNiNDJkOWE1MDcwYmVlYmY2YzBjYmMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MzA5OTk1NTQ3NzA2MSwtNzMuOTc0MDUxNzA0NjkyMDNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMDA2MTkzMWI3NjY3NDVhMmJiYzE4NzZjNGY3OTYzZDAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOTI3OWEyYzFjODJkNDdlNjliZDMwODZiMWJjM2I4ZmYgPSAkKCc8ZGl2IGlkPSJodG1sXzkyNzlhMmMxYzgyZDQ3ZTY5YmQzMDg2YjFiYzNiOGZmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5TdHV5dmVzYW50IFRvd248L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzAwNjE5MzFiNzY2NzQ1YTJiYmMxODc2YzRmNzk2M2QwLnNldENvbnRlbnQoaHRtbF85Mjc5YTJjMWM4MmQ0N2U2OWJkMzA4NmIxYmMzYjhmZik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl81ZmU0MTc4MmZhM2I0MmQ5YTUwNzBiZWViZjZjMGNiYy5iaW5kUG9wdXAocG9wdXBfMDA2MTkzMWI3NjY3NDVhMmJiYzE4NzZjNGY3OTYzZDApOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZWRlOWRlZjQxMzFhNDM5NjkzNTIyYmJhZjRjM2I3ZjggPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43Mzk2NzMwNDc2Mzg0MjYsLTczLjk5MDk0NzEwNTI4MjZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMjZiNTcxY2E3MjY3NDY2OGEyOTA0ZTAzMTI5MTQ2NjMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYTQ5NmE4ZjllODc4NDlmNWJjZTFkN2Q1NWZjMDJjZTMgPSAkKCc8ZGl2IGlkPSJodG1sX2E0OTZhOGY5ZTg3ODQ5ZjViY2UxZDdkNTVmYzAyY2UzIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5GbGF0aXJvbjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMjZiNTcxY2E3MjY3NDY2OGEyOTA0ZTAzMTI5MTQ2NjMuc2V0Q29udGVudChodG1sX2E0OTZhOGY5ZTg3ODQ5ZjViY2UxZDdkNTVmYzAyY2UzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2VkZTlkZWY0MTMxYTQzOTY5MzUyMmJiYWY0YzNiN2Y4LmJpbmRQb3B1cChwb3B1cF8yNmI1NzFjYTcyNjc0NjY4YTI5MDRlMDMxMjkxNDY2Myk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl80ODc1Y2MyNDAwZjY0MWYwYTZkMDQ3OTJkZDhmY2U0NCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjc0NTY1MTgwNjA4MDc2LC03My45MTgxOTI4NjQzMTY4Ml0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF80MzVlM2NkZjdkZWY0ZDhmOTA0ZWI0M2NmMzE2YTY4MCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9mNDQ5YWVmYzRiNTQ0MTM1ODVhYzU2MWQzNjY5YTA3OSA9ICQoJzxkaXYgaWQ9Imh0bWxfZjQ0OWFlZmM0YjU0NDEzNTg1YWM1NjFkMzY2OWEwNzkiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlN1bm55c2lkZSBHYXJkZW5zPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80MzVlM2NkZjdkZWY0ZDhmOTA0ZWI0M2NmMzE2YTY4MC5zZXRDb250ZW50KGh0bWxfZjQ0OWFlZmM0YjU0NDEzNTg1YWM1NjFkMzY2OWEwNzkpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNDg3NWNjMjQwMGY2NDFmMGE2ZDA0NzkyZGQ4ZmNlNDQuYmluZFBvcHVwKHBvcHVwXzQzNWUzY2RmN2RlZjRkOGY5MDRlYjQzY2YzMTZhNjgwKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2U2NTBmMDZlODViYjQxYTk5NmZmZmE4YWI2NmRkMGY0ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzM3MjUwNzE2OTQ0OTcsLTczLjkzMjQ0MjM1MjYwMTc4XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2RjMGEzMWFiODdjZDQxNjNiZjgwOTg5OWJlZTdjOWI1ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzhhOTdiNjE5ZDBhYjQwYzY4NDA3M2U0YmI0MzJhN2E0ID0gJCgnPGRpdiBpZD0iaHRtbF84YTk3YjYxOWQwYWI0MGM2ODQwNzNlNGJiNDMyYTdhNCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Qmxpc3N2aWxsZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZGMwYTMxYWI4N2NkNDE2M2JmODA5ODk5YmVlN2M5YjUuc2V0Q29udGVudChodG1sXzhhOTdiNjE5ZDBhYjQwYzY4NDA3M2U0YmI0MzJhN2E0KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2U2NTBmMDZlODViYjQxYTk5NmZmZmE4YWI2NmRkMGY0LmJpbmRQb3B1cChwb3B1cF9kYzBhMzFhYjg3Y2Q0MTYzYmY4MDk4OTliZWU3YzliNSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9iOWY1MzViNmRmNmE0Nzc1YTIxZmZhMzY5MDZhZGEyNyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjcwMzI4MTA5MDkzMDE0LC03My45OTU1MDc1MTg4ODQxNV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9lODI0YzFhMmM1Y2I0MjA0OWViNTI2ZDlkMzRmMTY5NCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF82MDQwMDExZGZlOTE0ZTU5OWQyZmZmNTczY2RiZjE1MiA9ICQoJzxkaXYgaWQ9Imh0bWxfNjA0MDAxMWRmZTkxNGU1OTlkMmZmZjU3M2NkYmYxNTIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkZ1bHRvbiBGZXJyeTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZTgyNGMxYTJjNWNiNDIwNDllYjUyNmQ5ZDM0ZjE2OTQuc2V0Q29udGVudChodG1sXzYwNDAwMTFkZmU5MTRlNTk5ZDJmZmY1NzNjZGJmMTUyKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2I5ZjUzNWI2ZGY2YTQ3NzVhMjFmZmEzNjkwNmFkYTI3LmJpbmRQb3B1cChwb3B1cF9lODI0YzFhMmM1Y2I0MjA0OWViNTI2ZDlkMzRmMTY5NCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9jM2E3MDU1YjgxY2E0ZWNiYWMyYzk1NGE2YmZlYjQ0MCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjcwMzMyMTQ5ODgyODc0LC03My45ODExMTYwMzU5MjM5M10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jOWMxOTRkNWNiN2Y0OGMyOWFmYzE1MmQwNTJhMzU3YSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8yYzJhNjY2ZmU1YjU0OTQ1YWIzZjg4N2VmMTE2OWM0NSA9ICQoJzxkaXYgaWQ9Imh0bWxfMmMyYTY2NmZlNWI1NDk0NWFiM2Y4ODdlZjExNjljNDUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlZpbmVnYXIgSGlsbDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYzljMTk0ZDVjYjdmNDhjMjlhZmMxNTJkMDUyYTM1N2Euc2V0Q29udGVudChodG1sXzJjMmE2NjZmZTViNTQ5NDVhYjNmODg3ZWYxMTY5YzQ1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2MzYTcwNTViODFjYTRlY2JhYzJjOTU0YTZiZmViNDQwLmJpbmRQb3B1cChwb3B1cF9jOWMxOTRkNWNiN2Y0OGMyOWFmYzE1MmQwNTJhMzU3YSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9hNjNkY2YxMGYyYzc0MGQyYjFjOWYxNDRhMDgzNThmMyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY3NTAzOTg2NTAzMjM3LC03My45MzA1MzEwODgxNzMzOF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9iODhjNTFmZGVhYmU0MDZjYWNiMjAwZmI0ZjhmNWJkNSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iNGE3YmExYWJjMDQ0YjgzOWI2NGU1NjNhYjlhODg5ZiA9ICQoJzxkaXYgaWQ9Imh0bWxfYjRhN2JhMWFiYzA0NGI4MzliNjRlNTYzYWI5YTg4OWYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPldlZWtzdmlsbGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2I4OGM1MWZkZWFiZTQwNmNhY2IyMDBmYjRmOGY1YmQ1LnNldENvbnRlbnQoaHRtbF9iNGE3YmExYWJjMDQ0YjgzOWI2NGU1NjNhYjlhODg5Zik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9hNjNkY2YxMGYyYzc0MGQyYjFjOWYxNDRhMDgzNThmMy5iaW5kUG9wdXAocG9wdXBfYjg4YzUxZmRlYWJlNDA2Y2FjYjIwMGZiNGY4ZjViZDUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMjhkY2Q5MTEyZDU3NDg2ODhmZTM3MzdhZTQwNDY3MDIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42Nzc4NjEwNDc2OTUzMSwtNzMuOTAzMzE2ODQ4NTI1OTldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYWU4OTMxNzNlZWM0NGRhMmIzNGE5MDdlZjE3ZGZhMjcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOGQxZjU5NGU0NjdlNGJiOWI1ZjFhYjNmMjU2MWI2OTEgPSAkKCc8ZGl2IGlkPSJodG1sXzhkMWY1OTRlNDY3ZTRiYjliNWYxYWIzZjI1NjFiNjkxIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Ccm9hZHdheSBKdW5jdGlvbjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYWU4OTMxNzNlZWM0NGRhMmIzNGE5MDdlZjE3ZGZhMjcuc2V0Q29udGVudChodG1sXzhkMWY1OTRlNDY3ZTRiYjliNWYxYWIzZjI1NjFiNjkxKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzI4ZGNkOTExMmQ1NzQ4Njg4ZmUzNzM3YWU0MDQ2NzAyLmJpbmRQb3B1cChwb3B1cF9hZTg5MzE3M2VlYzQ0ZGEyYjM0YTkwN2VmMTdkZmEyNyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8xZWZhZjFjMjg5NTk0MDc0OGMyZTAxZDIxYTJkNzY0YiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjcwMzE3NjMyODIyNjkyLC03My45ODg3NTI4MDc0NTA0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzViM2I2MDUxOTYxODQ4Y2I5MTZkNmQ1YzFlNzgzMjdkID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2U2NDQ2YmIxOTcyNTRkMTM4YTk4NDBjMTUwNTk4MDNjID0gJCgnPGRpdiBpZD0iaHRtbF9lNjQ0NmJiMTk3MjU0ZDEzOGE5ODQwYzE1MDU5ODAzYyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+RHVtYm88L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzViM2I2MDUxOTYxODQ4Y2I5MTZkNmQ1YzFlNzgzMjdkLnNldENvbnRlbnQoaHRtbF9lNjQ0NmJiMTk3MjU0ZDEzOGE5ODQwYzE1MDU5ODAzYyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8xZWZhZjFjMjg5NTk0MDc0OGMyZTAxZDIxYTJkNzY0Yi5iaW5kUG9wdXAocG9wdXBfNWIzYjYwNTE5NjE4NDhjYjkxNmQ2ZDVjMWU3ODMyN2QpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNTU2ZmJhNGM2ZWFjNGYwN2IzODVhMDBjNDgyZjdlZWIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MDE4MDk1NzYzMTQ0NCwtNzQuMTIwNTkzOTk3MTgwMDFdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMWNlODcxOTU5NmVhNGM5NGJhOWU0YzcxN2RlZjdmMDMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfODc4ZjhhMzk1OGI3NDU3MmExYzUwZTdjMzFmZjllMDAgPSAkKCc8ZGl2IGlkPSJodG1sXzg3OGY4YTM5NThiNzQ1NzJhMWM1MGU3YzMxZmY5ZTAwIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5NYW5vciBIZWlnaHRzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8xY2U4NzE5NTk2ZWE0Yzk0YmE5ZTRjNzE3ZGVmN2YwMy5zZXRDb250ZW50KGh0bWxfODc4ZjhhMzk1OGI3NDU3MmExYzUwZTdjMzFmZjllMDApOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNTU2ZmJhNGM2ZWFjNGYwN2IzODVhMDBjNDgyZjdlZWIuYmluZFBvcHVwKHBvcHVwXzFjZTg3MTk1OTZlYTRjOTRiYTllNGM3MTdkZWY3ZjAzKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2NkMjgzN2JkMzBiZDRiOGE5YjA4NDBhOTdjZGNhN2ZlID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjAzNzA2OTI2MjczNzEsLTc0LjEzMjA4NDQ3NDg0Mjk4XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2ZiZmYxODIzMGMwMjQxOGFiY2Y5ODVhY2VlYzQ3NzYzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzFkNjgzNTk1Mzk5OTRkOWRhNDk4Mjg5YjRkZGNhMTgxID0gJCgnPGRpdiBpZD0iaHRtbF8xZDY4MzU5NTM5OTk0ZDlkYTQ5ODI4OWI0ZGRjYTE4MSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+V2lsbG93YnJvb2s8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2ZiZmYxODIzMGMwMjQxOGFiY2Y5ODVhY2VlYzQ3NzYzLnNldENvbnRlbnQoaHRtbF8xZDY4MzU5NTM5OTk0ZDlkYTQ5ODI4OWI0ZGRjYTE4MSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9jZDI4MzdiZDMwYmQ0YjhhOWIwODQwYTk3Y2RjYTdmZS5iaW5kUG9wdXAocG9wdXBfZmJmZjE4MjMwYzAyNDE4YWJjZjk4NWFjZWVjNDc3NjMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNjVhNjRlMjU5MjZmNGM1N2I3N2I3NTJhNmZkZWU3ODMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41NDExMzk5MjIwOTE3NjYsLTc0LjIxNzc2NjM2MDY4NTY3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2IzZGI0YTFiZWIyODQ3YTM5MGQxN2Q3NDg4ZWNkNWQxID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2M1YThkZmNiZWZjMzQxZjJiZTQ0MTdiOTBlYWE1ZDVhID0gJCgnPGRpdiBpZD0iaHRtbF9jNWE4ZGZjYmVmYzM0MWYyYmU0NDE3YjkwZWFhNWQ1YSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+U2FuZHkgR3JvdW5kPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iM2RiNGExYmViMjg0N2EzOTBkMTdkNzQ4OGVjZDVkMS5zZXRDb250ZW50KGh0bWxfYzVhOGRmY2JlZmMzNDFmMmJlNDQxN2I5MGVhYTVkNWEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNjVhNjRlMjU5MjZmNGM1N2I3N2I3NTJhNmZkZWU3ODMuYmluZFBvcHVwKHBvcHVwX2IzZGI0YTFiZWIyODQ3YTM5MGQxN2Q3NDg4ZWNkNWQxKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2Q2M2I0MDcxMDJkZDRmNDhhNzIxZTViMDNlNTMyYjIxID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNTc5MTE4NzQyOTYxMjE0LC03NC4xMjcyNzI0MDYwNDk0Nl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82ZGMyNjMzNWY0ZmM0NzZmOWU3YTA2MzI5Y2E5NDIxNyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF82YThkZGM3OGJlZDU0Yzk4YWJmYzRiNDRjNzM1ZjMzNCA9ICQoJzxkaXYgaWQ9Imh0bWxfNmE4ZGRjNzhiZWQ1NGM5OGFiZmM0YjQ0YzczNWYzMzQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkVnYmVydHZpbGxlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82ZGMyNjMzNWY0ZmM0NzZmOWU3YTA2MzI5Y2E5NDIxNy5zZXRDb250ZW50KGh0bWxfNmE4ZGRjNzhiZWQ1NGM5OGFiZmM0YjQ0YzczNWYzMzQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZDYzYjQwNzEwMmRkNGY0OGE3MjFlNWIwM2U1MzJiMjEuYmluZFBvcHVwKHBvcHVwXzZkYzI2MzM1ZjRmYzQ3NmY5ZTdhMDYzMjljYTk0MjE3KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzZiMTUzNDVkZDdlNTQwOTJhMDhiNmM4NzkzOWVkMmM2ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNTY3Mzc1ODg5NTcwMzIsLTczLjg5MjEzNzYwMjMyODIyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzNiNGVmOGU3OTIzZDQ5ODNiZDg2ZjQ0MTI4N2ZiZDE2ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzY3OWRkNzYwOTMxYTQ1YWI5NzI1NWIyNzgyMzFiZDRkID0gJCgnPGRpdiBpZD0iaHRtbF82NzlkZDc2MDkzMWE0NWFiOTcyNTViMjc4MjMxYmQ0ZCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Um94YnVyeTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfM2I0ZWY4ZTc5MjNkNDk4M2JkODZmNDQxMjg3ZmJkMTYuc2V0Q29udGVudChodG1sXzY3OWRkNzYwOTMxYTQ1YWI5NzI1NWIyNzgyMzFiZDRkKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzZiMTUzNDVkZDdlNTQwOTJhMDhiNmM4NzkzOWVkMmM2LmJpbmRQb3B1cChwb3B1cF8zYjRlZjhlNzkyM2Q0OTgzYmQ4NmY0NDEyODdmYmQxNik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl85NmU4ZDdlZGJhMTY0MjBjYjk0NmYwNjU5MjY3ODg4NyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU5ODUyNTA5NTEzNzI1NSwtNzMuOTU5MTg0NTk0Mjg3MDJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNTJhY2MxOWI1YzA2NGU0OWE5NzUxMjQ0NDE5MTU5MzUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMDhkNGVlOWU2ZWUzNDBiNWJjZGQ2Njg2ZWI4MmIyY2YgPSAkKCc8ZGl2IGlkPSJodG1sXzA4ZDRlZTllNmVlMzQwYjViY2RkNjY4NmViODJiMmNmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Ib21lY3Jlc3Q8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzUyYWNjMTliNWMwNjRlNDlhOTc1MTI0NDQxOTE1OTM1LnNldENvbnRlbnQoaHRtbF8wOGQ0ZWU5ZTZlZTM0MGI1YmNkZDY2ODZlYjgyYjJjZik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl85NmU4ZDdlZGJhMTY0MjBjYjk0NmYwNjU5MjY3ODg4Ny5iaW5kUG9wdXAocG9wdXBfNTJhY2MxOWI1YzA2NGU0OWE5NzUxMjQ0NDE5MTU5MzUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMGE2NDdkNTVmOTI5NDkxZTgyODhlZjk1MzU1MGMxNDUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MTY0MTQ1MTExNTgxODUsLTczLjg4MTE0MzE5MjAwNjA0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2RiZWJjNDlkYWM3ZDQ0YThhZjlmY2NmZDdkMGZmN2VhID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2E0OTQ1MDYxNmE3MjQ0MDQ5ODNlODEyZjIzMmZmOTNkID0gJCgnPGRpdiBpZD0iaHRtbF9hNDk0NTA2MTZhNzI0NDA0OTgzZTgxMmYyMzJmZjkzZCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TWlkZGxlIFZpbGxhZ2U8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2RiZWJjNDlkYWM3ZDQ0YThhZjlmY2NmZDdkMGZmN2VhLnNldENvbnRlbnQoaHRtbF9hNDk0NTA2MTZhNzI0NDA0OTgzZTgxMmYyMzJmZjkzZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8wYTY0N2Q1NWY5Mjk0OTFlODI4OGVmOTUzNTUwYzE0NS5iaW5kUG9wdXAocG9wdXBfZGJlYmM0OWRhYzdkNDRhOGFmOWZjY2ZkN2QwZmY3ZWEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZWQzZDE3NTI0ZTU1NGRkYjhjOTg4MGRmZTI3ZDI3M2YgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41MjYyNjQwNjczNDgxMiwtNzQuMjAxNTI1NTY0NTc2NThdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNWNjZDJhYmRjMmZhNDk0OGFjNDA1NThlMDc4N2M3ZjcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfODUyNDkxM2IwYTZhNGFkZmEyMjhjYWVjNjk4MDgyMTUgPSAkKCc8ZGl2IGlkPSJodG1sXzg1MjQ5MTNiMGE2YTRhZGZhMjI4Y2FlYzY5ODA4MjE1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5QcmluY2UmIzM5O3MgQmF5PC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF81Y2NkMmFiZGMyZmE0OTQ4YWM0MDU1OGUwNzg3YzdmNy5zZXRDb250ZW50KGh0bWxfODUyNDkxM2IwYTZhNGFkZmEyMjhjYWVjNjk4MDgyMTUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZWQzZDE3NTI0ZTU1NGRkYjhjOTg4MGRmZTI3ZDI3M2YuYmluZFBvcHVwKHBvcHVwXzVjY2QyYWJkYzJmYTQ5NDhhYzQwNTU4ZTA3ODdjN2Y3KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzJkMGFlZmQ4YjRhODQxMTY4ZWE3M2NjNDgwYzU2MWU0ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNTc2NTA2MjkzNzk0ODksLTc0LjEzNzkyNjYzNzcxNTY4XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzZjNzc3ODZiOTQ0NTQ5ZGY4N2RiMjFmNDczZTZlMmY2ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzk0OGQyNmY0MjFjYzRiZmRiMzM4NGFmYWNmZjVhN2FjID0gJCgnPGRpdiBpZD0iaHRtbF85NDhkMjZmNDIxY2M0YmZkYjMzODRhZmFjZmY1YTdhYyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TGlnaHRob3VzZSBIaWxsPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82Yzc3Nzg2Yjk0NDU0OWRmODdkYjIxZjQ3M2U2ZTJmNi5zZXRDb250ZW50KGh0bWxfOTQ4ZDI2ZjQyMWNjNGJmZGIzMzg0YWZhY2ZmNWE3YWMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMmQwYWVmZDhiNGE4NDExNjhlYTczY2M0ODBjNTYxZTQuYmluZFBvcHVwKHBvcHVwXzZjNzc3ODZiOTQ0NTQ5ZGY4N2RiMjFmNDczZTZlMmY2KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzdkMWVkZTAzZGIxYzQxN2M4YmE3ZGUxZDcwMjkxY2MwID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNTE5NTQxNDU3NDg5MDksLTc0LjIyOTU3MDgwNjI2OTQxXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2E5ZmRjMGQ0NDUyMTQyZTRiNmMzNmU1ZGMyYjU3ZTU3ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzEzMjA0ZWJlNzgyNjQyNmQ5MTRhZWQ1YmFhNWUwZTJlID0gJCgnPGRpdiBpZD0iaHRtbF8xMzIwNGViZTc4MjY0MjZkOTE0YWVkNWJhYTVlMGUyZSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+UmljaG1vbmQgVmFsbGV5PC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hOWZkYzBkNDQ1MjE0MmU0YjZjMzZlNWRjMmI1N2U1Ny5zZXRDb250ZW50KGh0bWxfMTMyMDRlYmU3ODI2NDI2ZDkxNGFlZDViYWE1ZTBlMmUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfN2QxZWRlMDNkYjFjNDE3YzhiYTdkZTFkNzAyOTFjYzAuYmluZFBvcHVwKHBvcHVwX2E5ZmRjMGQ0NDUyMTQyZTRiNmMzNmU1ZGMyYjU3ZTU3KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2YzYTdjZjY0NWI3ODQxMWNhYjk2OGM4OWU1YTY5OTNhID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzkwNjAxNTU2NzAxNDgsLTczLjgyNjY3NzU3MTM4NjQxXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2EzY2M5MmYxMTFiMDRiMWJhZTQ1N2JlYjg0MDQ5MTBkID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2VjODRiNGE5Nzk1ODQ5MDhiZDU0YzBkNjIzYTg0M2M4ID0gJCgnPGRpdiBpZD0iaHRtbF9lYzg0YjRhOTc5NTg0OTA4YmQ1NGMwZDYyM2E4NDNjOCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TWFsYmE8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2EzY2M5MmYxMTFiMDRiMWJhZTQ1N2JlYjg0MDQ5MTBkLnNldENvbnRlbnQoaHRtbF9lYzg0YjRhOTc5NTg0OTA4YmQ1NGMwZDYyM2E4NDNjOCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9mM2E3Y2Y2NDViNzg0MTFjYWI5NjhjODllNWE2OTkzYS5iaW5kUG9wdXAocG9wdXBfYTNjYzkyZjExMWIwNGIxYmFlNDU3YmViODQwNDkxMGQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZmQ3ODVlMTljZDFjNGVlNmI1ODFhY2M0YWQwZDEzNTcgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42ODE5OTg5MzQ1MTczLC03My44OTAzNDU3MDk4NzJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMTFjNzhiZDQwZmY2NDQzZDg2NWVhOTBlOGMyYmRmNjUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfY2Q4MDdkMDEwMGNkNDVkM2FlMTNjNWI3YjFhMDY3ODcgPSAkKCc8ZGl2IGlkPSJodG1sX2NkODA3ZDAxMDBjZDQ1ZDNhZTEzYzViN2IxYTA2Nzg3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5IaWdobGFuZCBQYXJrPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8xMWM3OGJkNDBmZjY0NDNkODY1ZWE5MGU4YzJiZGY2NS5zZXRDb250ZW50KGh0bWxfY2Q4MDdkMDEwMGNkNDVkM2FlMTNjNWI3YjFhMDY3ODcpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZmQ3ODVlMTljZDFjNGVlNmI1ODFhY2M0YWQwZDEzNTcuYmluZFBvcHVwKHBvcHVwXzExYzc4YmQ0MGZmNjQ0M2Q4NjVlYTkwZThjMmJkZjY1KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzNiNDNkNWNmMzJiYjQ3YTdhZWQxNTI4YmQyOTRiOTY5ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjA5Mzc3NzAxMTM3NjYsLTczLjk0ODQxNTE1MzI4ODkzXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzViOGE2YzJlNDAyYjQ3NTc5ODZhODBhZDhmY2E3ZTIwID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2NlNjA2YWYyYWU2YTQ1YmU4NzhkODYwOGEzOTM2NGNjID0gJCgnPGRpdiBpZD0iaHRtbF9jZTYwNmFmMmFlNmE0NWJlODc4ZDg2MDhhMzkzNjRjYyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TWFkaXNvbjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNWI4YTZjMmU0MDJiNDc1Nzk4NmE4MGFkOGZjYTdlMjAuc2V0Q29udGVudChodG1sX2NlNjA2YWYyYWU2YTQ1YmU4NzhkODYwOGEzOTM2NGNjKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzNiNDNkNWNmMzJiYjQ3YTdhZWQxNTI4YmQyOTRiOTY5LmJpbmRQb3B1cChwb3B1cF81YjhhNmMyZTQwMmI0NzU3OTg2YTgwYWQ4ZmNhN2UyMCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9hYzFmODg0NGQ3OWU0NmI2YWFhNTZlOTk4NDM4ZTBhZCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg1MjcyMjk3NjMzMDE3LC03My44NjE3MjU3NzU1NTExNV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8zOWM3MWI1NmIxMTk0ZTMzYjE3YTY4NjJiMGQ3NWYwMSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8wNDRkZjAxZTg4ZWY0NjNiOGZjNDU0ZjM4Yzc0M2E3YyA9ICQoJzxkaXYgaWQ9Imh0bWxfMDQ0ZGYwMWU4OGVmNDYzYjhmYzQ1NGYzOGM3NDNhN2MiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJyb254ZGFsZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMzljNzFiNTZiMTE5NGUzM2IxN2E2ODYyYjBkNzVmMDEuc2V0Q29udGVudChodG1sXzA0NGRmMDFlODhlZjQ2M2I4ZmM0NTRmMzhjNzQzYTdjKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2FjMWY4ODQ0ZDc5ZTQ2YjZhYWE1NmU5OTg0MzhlMGFkLmJpbmRQb3B1cChwb3B1cF8zOWM3MWI1NmIxMTk0ZTMzYjE3YTY4NjJiMGQ3NWYwMSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9hYTMyNDM5YTJjYzU0NGU3YTYwZTMwMTZlN2M4NTZhYiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjg2NTc4Nzg3ODAyOTgyLC03My44NTkzMTg2MzIyMTY0N10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jZTBhZjQ3YzJjMWM0NTlhYjdkZGRmNWFmODZmZDliMyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9kMWQ5YTlmNmVjNzE0MjBiYjBjMWFmZDExMGZhNDRkMSA9ICQoJzxkaXYgaWQ9Imh0bWxfZDFkOWE5ZjZlYzcxNDIwYmIwYzFhZmQxMTBmYTQ0ZDEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkFsbGVydG9uPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jZTBhZjQ3YzJjMWM0NTlhYjdkZGRmNWFmODZmZDliMy5zZXRDb250ZW50KGh0bWxfZDFkOWE5ZjZlYzcxNDIwYmIwYzFhZmQxMTBmYTQ0ZDEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYWEzMjQzOWEyY2M1NDRlN2E2MGUzMDE2ZTdjODU2YWIuYmluZFBvcHVwKHBvcHVwX2NlMGFmNDdjMmMxYzQ1OWFiN2RkZGY1YWY4NmZkOWIzKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2Y2Y2JlYzg0MjQ2YTQ2NzRhMDI5OGNkZGVhMjBiODc0ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuODcwMzkyMzkxNDE0NywtNzMuOTAxNTIyNjQ1MTMxNDRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfNjgzODA3Y2QyMDhiNGM2MTk3N2U0NDIyOWE2OWYxMGQpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZDVhODUxMTg2ZmRiNGY2NmJlM2ZmMjgxYmQzNWZhNWIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOWFkNzA3ZDNiOTRlNDUyMGI3ZDc5MDZjOWQ0MjkwMmIgPSAkKCc8ZGl2IGlkPSJodG1sXzlhZDcwN2QzYjk0ZTQ1MjBiN2Q3OTA2YzlkNDI5MDJiIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5LaW5nc2JyaWRnZSBIZWlnaHRzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9kNWE4NTExODZmZGI0ZjY2YmUzZmYyODFiZDM1ZmE1Yi5zZXRDb250ZW50KGh0bWxfOWFkNzA3ZDNiOTRlNDUyMGI3ZDc5MDZjOWQ0MjkwMmIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZjZjYmVjODQyNDZhNDY3NGEwMjk4Y2RkZWEyMGI4NzQuYmluZFBvcHVwKHBvcHVwX2Q1YTg1MTE4NmZkYjRmNjZiZTNmZjI4MWJkMzVmYTViKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzUxNDA3Y2VmMzA4OTQ1YTQ5YWQxODc0NTU0ZWYxZGFjID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjQ2OTI2MDY2NTg1NzksLTczLjk0ODE3NzA5OTIwMTg0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzgxMjU5MDgxNDE3ODRkYjg4ZGNkMTcxNWRkNDdmYWRiID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzgxMjA2NDEyMTgwMzQ1YzFhZTNjOWNmNzVlODBmYjdlID0gJCgnPGRpdiBpZD0iaHRtbF84MTIwNjQxMjE4MDM0NWMxYWUzYzljZjc1ZTgwZmI3ZSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+RXJhc211czwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfODEyNTkwODE0MTc4NGRiODhkY2QxNzE1ZGQ0N2ZhZGIuc2V0Q29udGVudChodG1sXzgxMjA2NDEyMTgwMzQ1YzFhZTNjOWNmNzVlODBmYjdlKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzUxNDA3Y2VmMzA4OTQ1YTQ5YWQxODc0NTU0ZWYxZGFjLmJpbmRQb3B1cChwb3B1cF84MTI1OTA4MTQxNzg0ZGI4OGRjZDE3MTVkZDQ3ZmFkYik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9iNjJmMTI4ZjE3NGU0MzMyYTlmYmZjZDgzYmE2NDMwMSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjc1NjY1ODA4MjI3NTE5LC03NC4wMDAxMTEzNjIwMjYzN10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82ZmFjMmJmNjc0MzE0YmE5YTE1ZGYxNTE5NWFjZGVlMSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8yZDE4OTJmZTA0NzI0ZjU1ODFhNWFkYzYyNTBmZTI5ZiA9ICQoJzxkaXYgaWQ9Imh0bWxfMmQxODkyZmUwNDcyNGY1NTgxYTVhZGM2MjUwZmUyOWYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkh1ZHNvbiBZYXJkczwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNmZhYzJiZjY3NDMxNGJhOWExNWRmMTUxOTVhY2RlZTEuc2V0Q29udGVudChodG1sXzJkMTg5MmZlMDQ3MjRmNTU4MWE1YWRjNjI1MGZlMjlmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2I2MmYxMjhmMTc0ZTQzMzJhOWZiZmNkODNiYTY0MzAxLmJpbmRQb3B1cChwb3B1cF82ZmFjMmJmNjc0MzE0YmE5YTE1ZGYxNTE5NWFjZGVlMSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9mOWM0ZDhlYTNmMWI0OTU4OTVhY2MzNDNlZmM4YWYwYiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU4NzMzNzc0MDE4NzQxLC03My44MDU1MzAwMjk2ODcxOF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83NjVmYjM2YmNjMTQ0ODMyODhjZTNkODMwM2Q0OThlYSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8yOTdlMzBhZGEwNzQ0YzZiYWJlNWU3OTNjMTU1MTYzOSA9ICQoJzxkaXYgaWQ9Imh0bWxfMjk3ZTMwYWRhMDc0NGM2YmFiZTVlNzkzYzE1NTE2MzkiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkhhbW1lbHM8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzc2NWZiMzZiY2MxNDQ4MzI4OGNlM2Q4MzAzZDQ5OGVhLnNldENvbnRlbnQoaHRtbF8yOTdlMzBhZGEwNzQ0YzZiYWJlNWU3OTNjMTU1MTYzOSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9mOWM0ZDhlYTNmMWI0OTU4OTVhY2MzNDNlZmM4YWYwYi5iaW5kUG9wdXAocG9wdXBfNzY1ZmIzNmJjYzE0NDgzMjg4Y2UzZDgzMDNkNDk4ZWEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNTQ2NjgxYjAwNDNjNDQ2NTlkMGY5NWMyMWJkNmFhMGIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MTEzMjE2OTEyODM4MzQsLTczLjc2NTk2NzgxNDQ1NjI3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwXzY4MzgwN2NkMjA4YjRjNjE5NzdlNDQyMjlhNjlmMTBkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzhkNzg1MTNjZDU1YTQzMWQ4MDI3M2NjMTI3NDRlMTNlID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzhhNGUzZjQ2YTc2NzQ1NzA5NzQwODI4M2IwOTVlMTRlID0gJCgnPGRpdiBpZD0iaHRtbF84YTRlM2Y0NmE3Njc0NTcwOTc0MDgyODNiMDk1ZTE0ZSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+QmF5c3dhdGVyPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF84ZDc4NTEzY2Q1NWE0MzFkODAyNzNjYzEyNzQ0ZTEzZS5zZXRDb250ZW50KGh0bWxfOGE0ZTNmNDZhNzY3NDU3MDk3NDA4MjgzYjA5NWUxNGUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNTQ2NjgxYjAwNDNjNDQ2NTlkMGY5NWMyMWJkNmFhMGIuYmluZFBvcHVwKHBvcHVwXzhkNzg1MTNjZDU1YTQzMWQ4MDI3M2NjMTI3NDRlMTNlKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzM1ZWQyY2M1OTgyOTRmNTVhNzk5YWVhNjE2NjEyMDQxID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzU2MDkxMjk3MDk0NzA2LC03My45NDU2MzA3MDMzNDA5MV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85MjllOTlhNDk2N2Q0NjExYmFjNDg0NjcyMzQzMWFjMSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8xNDMxMmVmODA5OTA0OTY5OWZmNTg4YWI2ZTJkZjBhYSA9ICQoJzxkaXYgaWQ9Imh0bWxfMTQzMTJlZjgwOTkwNDk2OTlmZjU4OGFiNmUyZGYwYWEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlF1ZWVuc2JyaWRnZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOTI5ZTk5YTQ5NjdkNDYxMWJhYzQ4NDY3MjM0MzFhYzEuc2V0Q29udGVudChodG1sXzE0MzEyZWY4MDk5MDQ5Njk5ZmY1ODhhYjZlMmRmMGFhKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzM1ZWQyY2M1OTgyOTRmNTVhNzk5YWVhNjE2NjEyMDQxLmJpbmRQb3B1cChwb3B1cF85MjllOTlhNDk2N2Q0NjExYmFjNDg0NjcyMzQzMWFjMSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9mZWI1NDIyZmM5N2M0OTkxYjhiMGJkYTFkOTcxZjM5YSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjYxNzMxMDc5MjUyOTgzLC03NC4wODE3Mzk5MjIxMTk2Ml0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF82ODM4MDdjZDIwOGI0YzYxOTc3ZTQ0MjI5YTY5ZjEwZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8xMjA0ZmFmOTIxZGY0YWIyYTJkMWYxOGQ5MTM4ZmI2ZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9jNmZhM2ViOGI2ZjI0ZGIyYTJjMWM5YjljYjgyMGY3OCA9ICQoJzxkaXYgaWQ9Imh0bWxfYzZmYTNlYjhiNmYyNGRiMmEyYzFjOWI5Y2I4MjBmNzgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkZveCBIaWxsczwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMTIwNGZhZjkyMWRmNGFiMmEyZDFmMThkOTEzOGZiNmUuc2V0Q29udGVudChodG1sX2M2ZmEzZWI4YjZmMjRkYjJhMmMxYzliOWNiODIwZjc4KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2ZlYjU0MjJmYzk3YzQ5OTFiOGIwYmRhMWQ5NzFmMzlhLmJpbmRQb3B1cChwb3B1cF8xMjA0ZmFmOTIxZGY0YWIyYTJkMWYxOGQ5MTM4ZmI2ZSk7CgogICAgICAgICAgICAKICAgICAgICAKPC9zY3JpcHQ+\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
],
"text/plain": [
"<folium.folium.Map at 0x7ff1959ec0f0>"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# create map of New York using latitude and longitude values\n",
"print_map (newyork_data, zoom=10)"
]
},
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7ff1588edc50>"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# a little tweak to show maps as images in github\n",
"plt.imshow(mpimg.imread('newyork.jpg'))"
]
},
{
"cell_type": "code",
"execution_count": 24,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Borough</th>\n",
" <th>Neighborhood</th>\n",
" <th>Latitude</th>\n",
" <th>Longitude</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>Brooklyn</td>\n",
" <td>Bay Ridge</td>\n",
" <td>40.625801</td>\n",
" <td>-74.030621</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Brooklyn</td>\n",
" <td>Bensonhurst</td>\n",
" <td>40.611009</td>\n",
" <td>-73.995180</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>Brooklyn</td>\n",
" <td>Sunset Park</td>\n",
" <td>40.645103</td>\n",
" <td>-74.010316</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Brooklyn</td>\n",
" <td>Greenpoint</td>\n",
" <td>40.730201</td>\n",
" <td>-73.954241</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>Brooklyn</td>\n",
" <td>Gravesend</td>\n",
" <td>40.595260</td>\n",
" <td>-73.973471</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Borough Neighborhood Latitude Longitude\n",
"0 Brooklyn Bay Ridge 40.625801 -74.030621\n",
"1 Brooklyn Bensonhurst 40.611009 -73.995180\n",
"2 Brooklyn Sunset Park 40.645103 -74.010316\n",
"3 Brooklyn Greenpoint 40.730201 -73.954241\n",
"4 Brooklyn Gravesend 40.595260 -73.973471"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"brooklyn_data = newyork_data[newyork_data['Borough'] == 'Brooklyn'].reset_index(drop=True)\n",
"brooklyn_data.head()\n"
]
},
{
"cell_type": "code",
"execution_count": 25,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div style=\"width:100%;\"><div style=\"position:relative;width:100%;height:0;padding-bottom:60%;\"><iframe src=\"data:text/html;charset=utf-8;base64,PCFET0NUWVBFIGh0bWw+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVMgPSBmYWxzZTsgTF9OT19UT1VDSCA9IGZhbHNlOyBMX0RJU0FCTEVfM0QgPSBmYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2FqYXguZ29vZ2xlYXBpcy5jb20vYWpheC9saWJzL2pxdWVyeS8xLjExLjEvanF1ZXJ5Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS4yLjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdnaXQuY29tL3B5dGhvbi12aXN1YWxpemF0aW9uL2ZvbGl1bS9tYXN0ZXIvZm9saXVtL3RlbXBsYXRlcy9sZWFmbGV0LmF3ZXNvbWUucm90YXRlLmNzcyIvPgogICAgPHN0eWxlPmh0bWwsIGJvZHkge3dpZHRoOiAxMDAlO2hlaWdodDogMTAwJTttYXJnaW46IDA7cGFkZGluZzogMDt9PC9zdHlsZT4KICAgIDxzdHlsZT4jbWFwIHtwb3NpdGlvbjphYnNvbHV0ZTt0b3A6MDtib3R0b206MDtyaWdodDowO2xlZnQ6MDt9PC9zdHlsZT4KICAgIAogICAgICAgICAgICA8c3R5bGU+ICNtYXBfZGVlYWYzMmMxN2UyNDA4Yzg3MWMwOGI1OWFkNDJlZTAgewogICAgICAgICAgICAgICAgcG9zaXRpb24gOiByZWxhdGl2ZTsKICAgICAgICAgICAgICAgIHdpZHRoIDogMTAwLjAlOwogICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAuMCU7CiAgICAgICAgICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgICAgICAgICAgdG9wOiAwLjAlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICA8L3N0eWxlPgogICAgICAgIAo8L2hlYWQ+Cjxib2R5PiAgICAKICAgIAogICAgICAgICAgICA8ZGl2IGNsYXNzPSJmb2xpdW0tbWFwIiBpZD0ibWFwX2RlZWFmMzJjMTdlMjQwOGM4NzFjMDhiNTlhZDQyZWUwIiA+PC9kaXY+CiAgICAgICAgCjwvYm9keT4KPHNjcmlwdD4gICAgCiAgICAKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGJvdW5kcyA9IG51bGw7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgdmFyIG1hcF9kZWVhZjMyYzE3ZTI0MDhjODcxYzA4YjU5YWQ0MmVlMCA9IEwubWFwKAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21hcF9kZWVhZjMyYzE3ZTI0MDhjODcxYzA4YjU5YWQ0MmVlMCcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y2VudGVyOiBbNDAuNzMwODYxOSwtNzMuOTg3MTU1OF0sCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6b29tOiAxMCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heEJvdW5kczogYm91bmRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGF5ZXJzOiBbXSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JzOiBMLkNSUy5FUFNHMzg1NwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHRpbGVfbGF5ZXJfMWY2ZWRlNmMwMTdiNGQ5MWEyYjI5MzMwYTgzOTkyMGYgPSBMLnRpbGVMYXllcigKICAgICAgICAgICAgICAgICdodHRwczovL3tzfS50aWxlLm9wZW5zdHJlZXRtYXAub3JnL3t6fS97eH0ve3l9LnBuZycsCiAgICAgICAgICAgICAgICB7CiAgImF0dHJpYnV0aW9uIjogbnVsbCwKICAiZGV0ZWN0UmV0aW5hIjogZmFsc2UsCiAgIm1heFpvb20iOiAxOCwKICAibWluWm9vbSI6IDEsCiAgIm5vV3JhcCI6IGZhbHNlLAogICJzdWJkb21haW5zIjogImFiYyIKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZGVlYWYzMmMxN2UyNDA4Yzg3MWMwOGI1OWFkNDJlZTApOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2FjMzE3OTU1NGZjNjQzZGJiNzA3M2YxM2RmMDlhZDYwID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjI1ODAxMDY1MDEwNjU2LC03NC4wMzA2MjA2OTM1MzgxM10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kZWVhZjMyYzE3ZTI0MDhjODcxYzA4YjU5YWQ0MmVlMCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85M2NhZTA3MTRhZjk0Y2QyOTI5ZTFmMDdjZTFiMGRmYiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8zZWU4NGNjNDU3ZGQ0NTA3YWRiNzVmMzAxYzhkNjlkYyA9ICQoJzxkaXYgaWQ9Imh0bWxfM2VlODRjYzQ1N2RkNDUwN2FkYjc1ZjMwMWM4ZDY5ZGMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJheSBSaWRnZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOTNjYWUwNzE0YWY5NGNkMjkyOWUxZjA3Y2UxYjBkZmIuc2V0Q29udGVudChodG1sXzNlZTg0Y2M0NTdkZDQ1MDdhZGI3NWYzMDFjOGQ2OWRjKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2FjMzE3OTU1NGZjNjQzZGJiNzA3M2YxM2RmMDlhZDYwLmJpbmRQb3B1cChwb3B1cF85M2NhZTA3MTRhZjk0Y2QyOTI5ZTFmMDdjZTFiMGRmYik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9jZDE2YTAxNjU0NDc0NGRmOTRiYjEzYjE3YmNiNWQ5MSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjYxMTAwODkwMjAyMDQ0LC03My45OTUxNzk5ODM4MDcyOV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kZWVhZjMyYzE3ZTI0MDhjODcxYzA4YjU5YWQ0MmVlMCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82N2U2NTk0ZjhiYmI0MjI0OTJmY2E5ZGIxNzZhYTE4YyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF80NWQzOTBhMTQ0YzU0ZDhiYTQ4YzEwNjEzNDc0YzFiOSA9ICQoJzxkaXYgaWQ9Imh0bWxfNDVkMzkwYTE0NGM1NGQ4YmE0OGMxMDYxMzQ3NGMxYjkiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJlbnNvbmh1cnN0PC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82N2U2NTk0ZjhiYmI0MjI0OTJmY2E5ZGIxNzZhYTE4Yy5zZXRDb250ZW50KGh0bWxfNDVkMzkwYTE0NGM1NGQ4YmE0OGMxMDYxMzQ3NGMxYjkpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfY2QxNmEwMTY1NDQ3NDRkZjk0YmIxM2IxN2JjYjVkOTEuYmluZFBvcHVwKHBvcHVwXzY3ZTY1OTRmOGJiYjQyMjQ5MmZjYTlkYjE3NmFhMThjKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzdmNDdmYTBkZDQ2ZjRmMDRhZGIyZWE2NDU2ZWQ1MGFmID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjQ1MTAyOTQ5MjU0MjksLTc0LjAxMDMxNjE4NTI3Nzg0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2RlZWFmMzJjMTdlMjQwOGM4NzFjMDhiNTlhZDQyZWUwKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzY1NmFmZDMxZGFhNzQzMjhhYmRmZDJjZThkOGE0YmRiID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzQwMGIyODI3Nzk5MDQ0OTJiM2IxZTU3MWMzNDg4YjEwID0gJCgnPGRpdiBpZD0iaHRtbF80MDBiMjgyNzc5OTA0NDkyYjNiMWU1NzFjMzQ4OGIxMCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+U3Vuc2V0IFBhcms8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzY1NmFmZDMxZGFhNzQzMjhhYmRmZDJjZThkOGE0YmRiLnNldENvbnRlbnQoaHRtbF80MDBiMjgyNzc5OTA0NDkyYjNiMWU1NzFjMzQ4OGIxMCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl83ZjQ3ZmEwZGQ0NmY0ZjA0YWRiMmVhNjQ1NmVkNTBhZi5iaW5kUG9wdXAocG9wdXBfNjU2YWZkMzFkYWE3NDMyOGFiZGZkMmNlOGQ4YTRiZGIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYTI4NDhlZDcwZWQxNGJkMzliNmYxMjEwMTlkMGRiYjUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MzAyMDA5ODQ4NjQ3LC03My45NTQyNDA5MzEyNzM5M10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kZWVhZjMyYzE3ZTI0MDhjODcxYzA4YjU5YWQ0MmVlMCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jYjZiMmI4MWNiOWU0NGNmYmQyMDAwZGU5MTQwZDcwMiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9kYWQ0ZWM1NDJhNGE0ZmNmYWNiNmQzZjZhOGMwM2ZlYSA9ICQoJzxkaXYgaWQ9Imh0bWxfZGFkNGVjNTQyYTRhNGZjZmFjYjZkM2Y2YThjMDNmZWEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkdyZWVucG9pbnQ8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2NiNmIyYjgxY2I5ZTQ0Y2ZiZDIwMDBkZTkxNDBkNzAyLnNldENvbnRlbnQoaHRtbF9kYWQ0ZWM1NDJhNGE0ZmNmYWNiNmQzZjZhOGMwM2ZlYSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9hMjg0OGVkNzBlZDE0YmQzOWI2ZjEyMTAxOWQwZGJiNS5iaW5kUG9wdXAocG9wdXBfY2I2YjJiODFjYjllNDRjZmJkMjAwMGRlOTE0MGQ3MDIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNWY2ZTljZTRlMDVmNDAwYzk1ODQ1ODYwMWYyMTFhYzAgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41OTUyNjAwMTMwNjU5MywtNzMuOTczNDcwODc3MDg0NDVdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZGVlYWYzMmMxN2UyNDA4Yzg3MWMwOGI1OWFkNDJlZTApOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNGM0MDhmOTc1MjY0NGI2NThlNDMyMzdlYzlkNWUzMGQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNDIxNjUxNWUwZmZhNGI0ZmJhNDYzMTMzMWY5NmE2MjEgPSAkKCc8ZGl2IGlkPSJodG1sXzQyMTY1MTVlMGZmYTRiNGZiYTQ2MzEzMzFmOTZhNjIxIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5HcmF2ZXNlbmQ8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzRjNDA4Zjk3NTI2NDRiNjU4ZTQzMjM3ZWM5ZDVlMzBkLnNldENvbnRlbnQoaHRtbF80MjE2NTE1ZTBmZmE0YjRmYmE0NjMxMzMxZjk2YTYyMSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl81ZjZlOWNlNGUwNWY0MDBjOTU4NDU4NjAxZjIxMWFjMC5iaW5kUG9wdXAocG9wdXBfNGM0MDhmOTc1MjY0NGI2NThlNDMyMzdlYzlkNWUzMGQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMDQ0NzlmODZkZjcyNGQ5OTk3OTM1NTRjZjAwOTMxMDYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41NzY4MjUwNjU2NjYwNCwtNzMuOTY1MDk0NDg3ODUzMzZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZGVlYWYzMmMxN2UyNDA4Yzg3MWMwOGI1OWFkNDJlZTApOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYmQ5ZGNiZDJjNTE3NDU4Y2IwNjg0NjhkZDVjN2NhYjUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZGVjMmJhZmZjMTE2NDEyYjlhYjFmOTYyYTlkNzEyNzMgPSAkKCc8ZGl2IGlkPSJodG1sX2RlYzJiYWZmYzExNjQxMmI5YWIxZjk2MmE5ZDcxMjczIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5CcmlnaHRvbiBCZWFjaDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYmQ5ZGNiZDJjNTE3NDU4Y2IwNjg0NjhkZDVjN2NhYjUuc2V0Q29udGVudChodG1sX2RlYzJiYWZmYzExNjQxMmI5YWIxZjk2MmE5ZDcxMjczKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzA0NDc5Zjg2ZGY3MjRkOTk5NzkzNTU0Y2YwMDkzMTA2LmJpbmRQb3B1cChwb3B1cF9iZDlkY2JkMmM1MTc0NThjYjA2ODQ2OGRkNWM3Y2FiNSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8xN2ExMDI5NDkxMjk0ODZhYmYwZjg1M2FmOTg1MTE5NyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU4Njg5MDEyNjc4Mzg0LC03My45NDMxODY0MDQ4Mjk3OV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kZWVhZjMyYzE3ZTI0MDhjODcxYzA4YjU5YWQ0MmVlMCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9lNDRjYzczOTBjY2I0OWUwYWUyMzgwMTNmNDQ4MjIxMyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85ZjE3YzdjNmM4MTc0YzQxYTVlMjhhZDRlMjY3ZDZmMiA9ICQoJzxkaXYgaWQ9Imh0bWxfOWYxN2M3YzZjODE3NGM0MWE1ZTI4YWQ0ZTI2N2Q2ZjIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlNoZWVwc2hlYWQgQmF5PC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9lNDRjYzczOTBjY2I0OWUwYWUyMzgwMTNmNDQ4MjIxMy5zZXRDb250ZW50KGh0bWxfOWYxN2M3YzZjODE3NGM0MWE1ZTI4YWQ0ZTI2N2Q2ZjIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMTdhMTAyOTQ5MTI5NDg2YWJmMGY4NTNhZjk4NTExOTcuYmluZFBvcHVwKHBvcHVwX2U0NGNjNzM5MGNjYjQ5ZTBhZTIzODAxM2Y0NDgyMjEzKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2MyNzEzYjUzYWIxNTRlZDI5NmYzYjJmNTlmYjJlNTkyID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjE0NDMyNTEzMzUwOTgsLTczLjk1NzQzODQwNTU5OTM5XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2RlZWFmMzJjMTdlMjQwOGM4NzFjMDhiNTlhZDQyZWUwKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzJkMmQzODI1ODU0ODQzYmU4YzYyNGExNTdiODI2YzBiID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzEyMzhkNjljMWYwMDQzNTk5ZDQwN2VlNmUwYTk0ZTA2ID0gJCgnPGRpdiBpZD0iaHRtbF8xMjM4ZDY5YzFmMDA0MzU5OWQ0MDdlZTZlMGE5NGUwNiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TWFuaGF0dGFuIFRlcnJhY2U8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzJkMmQzODI1ODU0ODQzYmU4YzYyNGExNTdiODI2YzBiLnNldENvbnRlbnQoaHRtbF8xMjM4ZDY5YzFmMDA0MzU5OWQ0MDdlZTZlMGE5NGUwNik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9jMjcxM2I1M2FiMTU0ZWQyOTZmM2IyZjU5ZmIyZTU5Mi5iaW5kUG9wdXAocG9wdXBfMmQyZDM4MjU4NTQ4NDNiZThjNjI0YTE1N2I4MjZjMGIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMjAxMTZiODJjNDJhNDc2MThmNmY1ODcxMjBlZmZiYmYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MzYzMjU4OTAyNjY3NywtNzMuOTU4NDAxMDY1MzM5MDNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZGVlYWYzMmMxN2UyNDA4Yzg3MWMwOGI1OWFkNDJlZTApOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOWExNDU5M2U2MmIyNDY1MjkwOGYyYTAyYzQ4Njg1NzEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMjRlNGI5NTJmNmUxNDE0ZDhjYWU0YzI4OTAwOTFjZjUgPSAkKCc8ZGl2IGlkPSJodG1sXzI0ZTRiOTUyZjZlMTQxNGQ4Y2FlNGMyODkwMDkxY2Y1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5GbGF0YnVzaDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOWExNDU5M2U2MmIyNDY1MjkwOGYyYTAyYzQ4Njg1NzEuc2V0Q29udGVudChodG1sXzI0ZTRiOTUyZjZlMTQxNGQ4Y2FlNGMyODkwMDkxY2Y1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzIwMTE2YjgyYzQyYTQ3NjE4ZjZmNTg3MTIwZWZmYmJmLmJpbmRQb3B1cChwb3B1cF85YTE0NTkzZTYyYjI0NjUyOTA4ZjJhMDJjNDg2ODU3MSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8wNWY1YWE0M2RiYTk0MjBhYjViNzEzZDcyNmU1NzU5NCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY3MDgyOTE3Njk1Mjk0LC03My45NDMyOTExOTA3MzU4Ml0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kZWVhZjMyYzE3ZTI0MDhjODcxYzA4YjU5YWQ0MmVlMCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9mYjVkYWYyMTk1MTQ0NDE5YmNlM2E2NGIxYzEzM2Y5ZCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85YTA2MzQzOTI4MTY0ZDYxOTgxMTFhMjdjYzMxN2M5NiA9ICQoJzxkaXYgaWQ9Imh0bWxfOWEwNjM0MzkyODE2NGQ2MTk4MTExYTI3Y2MzMTdjOTYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNyb3duIEhlaWdodHM8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2ZiNWRhZjIxOTUxNDQ0MTliY2UzYTY0YjFjMTMzZjlkLnNldENvbnRlbnQoaHRtbF85YTA2MzQzOTI4MTY0ZDYxOTgxMTFhMjdjYzMxN2M5Nik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8wNWY1YWE0M2RiYTk0MjBhYjViNzEzZDcyNmU1NzU5NC5iaW5kUG9wdXAocG9wdXBfZmI1ZGFmMjE5NTE0NDQxOWJjZTNhNjRiMWMxMzNmOWQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZDgxMWQzNTg5YzM0NDRhOWJhNmU2YjIyZjViNGRiN2YgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42NDE3MTc3NjY2ODk2MSwtNzMuOTM2MTAyNTYxODU4MzZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZGVlYWYzMmMxN2UyNDA4Yzg3MWMwOGI1OWFkNDJlZTApOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMjFkMGJiZWVjNjAyNDcyZDllMTQ1ZGQzNjQwZmI1NTYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYmNlYzUwMWJjZGVmNGMwM2JiYWQ4YzY5NWE1NjBlODggPSAkKCc8ZGl2IGlkPSJodG1sX2JjZWM1MDFiY2RlZjRjMDNiYmFkOGM2OTVhNTYwZTg4IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5FYXN0IEZsYXRidXNoPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8yMWQwYmJlZWM2MDI0NzJkOWUxNDVkZDM2NDBmYjU1Ni5zZXRDb250ZW50KGh0bWxfYmNlYzUwMWJjZGVmNGMwM2JiYWQ4YzY5NWE1NjBlODgpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZDgxMWQzNTg5YzM0NDRhOWJhNmU2YjIyZjViNGRiN2YuYmluZFBvcHVwKHBvcHVwXzIxZDBiYmVlYzYwMjQ3MmQ5ZTE0NWRkMzY0MGZiNTU2KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzc0ZjA5ODIxMGM3ODQwNzY4ZjVhMzU3YzI4NTA0ZGM0ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjQyMzgxOTU4MDAzNTI2LC03My45ODA0MjExMDU1OTQ3NF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kZWVhZjMyYzE3ZTI0MDhjODcxYzA4YjU5YWQ0MmVlMCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83N2NmMDcxZjcxOWM0MjdlOGY1OGI4NTU4M2RmMWY0YSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9mOGEyYzIyNjY3YWI0OTQ5YmQ1M2NjZDc0YWRhMmQ4OSA9ICQoJzxkaXYgaWQ9Imh0bWxfZjhhMmMyMjY2N2FiNDk0OWJkNTNjY2Q3NGFkYTJkODkiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPktlbnNpbmd0b248L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzc3Y2YwNzFmNzE5YzQyN2U4ZjU4Yjg1NTgzZGYxZjRhLnNldENvbnRlbnQoaHRtbF9mOGEyYzIyNjY3YWI0OTQ5YmQ1M2NjZDc0YWRhMmQ4OSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl83NGYwOTgyMTBjNzg0MDc2OGY1YTM1N2MyODUwNGRjNC5iaW5kUG9wdXAocG9wdXBfNzdjZjA3MWY3MTljNDI3ZThmNThiODU1ODNkZjFmNGEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZGVlMzNhNjEwZWU0NDAzNTg3OTMxNTkxOTU0MTY4NTMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42NTY5NDU4MzU3NTEwNCwtNzMuOTgwMDczNDA0MzAxNzJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZGVlYWYzMmMxN2UyNDA4Yzg3MWMwOGI1OWFkNDJlZTApOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYzNkMTIyMGE2MTA0NDAzZDkyMzZiMDZmOWQ0MWYxM2QgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNDM0ZmJiNzlmNzQ5NDg5NWI2NTNjNzFjZDZkNjNlNGMgPSAkKCc8ZGl2IGlkPSJodG1sXzQzNGZiYjc5Zjc0OTQ4OTViNjUzYzcxY2Q2ZDYzZTRjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5XaW5kc29yIFRlcnJhY2U8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2MzZDEyMjBhNjEwNDQwM2Q5MjM2YjA2ZjlkNDFmMTNkLnNldENvbnRlbnQoaHRtbF80MzRmYmI3OWY3NDk0ODk1YjY1M2M3MWNkNmQ2M2U0Yyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9kZWUzM2E2MTBlZTQ0MDM1ODc5MzE1OTE5NTQxNjg1My5iaW5kUG9wdXAocG9wdXBfYzNkMTIyMGE2MTA0NDAzZDkyMzZiMDZmOWQ0MWYxM2QpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMWIxZDJkZmFjMTljNDZkZmIwYWMyZjIwYzdlMzhjNTEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42NzY4MjIyNjIyNTQ3MjQsLTczLjk2NDg1OTI0MjYyNjldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZGVlYWYzMmMxN2UyNDA4Yzg3MWMwOGI1OWFkNDJlZTApOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMjNiOTgzMmFhYzgxNGYyYWFmZDkzZWZkNzEzNGQyMTQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYzcwMmIyZGNlMzE0NDNkMTgzOWQ2YzZkMmUyM2FhMjIgPSAkKCc8ZGl2IGlkPSJodG1sX2M3MDJiMmRjZTMxNDQzZDE4MzlkNmM2ZDJlMjNhYTIyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Qcm9zcGVjdCBIZWlnaHRzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8yM2I5ODMyYWFjODE0ZjJhYWZkOTNlZmQ3MTM0ZDIxNC5zZXRDb250ZW50KGh0bWxfYzcwMmIyZGNlMzE0NDNkMTgzOWQ2YzZkMmUyM2FhMjIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMWIxZDJkZmFjMTljNDZkZmIwYWMyZjIwYzdlMzhjNTEuYmluZFBvcHVwKHBvcHVwXzIzYjk4MzJhYWM4MTRmMmFhZmQ5M2VmZDcxMzRkMjE0KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzNkOGU0NjhjMDg1OTQ0ZDY4NjVhZjA0MTJkODZhMjQ1ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjYzOTQ5OTQzMzk3NTUsLTczLjkxMDIzNTM2MTc2NjA3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2RlZWFmMzJjMTdlMjQwOGM4NzFjMDhiNTlhZDQyZWUwKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2Q0MWE2YjRhZmFlMTQyYTA4YWUxNGMwYTk5NWY2MDNiID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2VkMDdjNTUxODBkODQ2ZGU5Y2VkZWFmMjUzMmY4NmZhID0gJCgnPGRpdiBpZD0iaHRtbF9lZDA3YzU1MTgwZDg0NmRlOWNlZGVhZjI1MzJmODZmYSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+QnJvd25zdmlsbGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2Q0MWE2YjRhZmFlMTQyYTA4YWUxNGMwYTk5NWY2MDNiLnNldENvbnRlbnQoaHRtbF9lZDA3YzU1MTgwZDg0NmRlOWNlZGVhZjI1MzJmODZmYSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8zZDhlNDY4YzA4NTk0NGQ2ODY1YWYwNDEyZDg2YTI0NS5iaW5kUG9wdXAocG9wdXBfZDQxYTZiNGFmYWUxNDJhMDhhZTE0YzBhOTk1ZjYwM2IpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfM2VkNmYyOWNkOGYzNGQ1YTliM2NkMThlNmIzYjI1NGMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MDcxNDQzOTM0NDI1MSwtNzMuOTU4MTE1MjkyMjA5MjddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZGVlYWYzMmMxN2UyNDA4Yzg3MWMwOGI1OWFkNDJlZTApOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNDRjMDc2NGUyOTNkNDY0ZGFmYjhlMWU0Njg0ODJkY2IgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMmYwM2Q3ZmJmNzIxNDdjYmI4MjMxMzI0MjM5MzRiMzcgPSAkKCc8ZGl2IGlkPSJodG1sXzJmMDNkN2ZiZjcyMTQ3Y2JiODIzMTMyNDIzOTM0YjM3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5XaWxsaWFtc2J1cmc8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzQ0YzA3NjRlMjkzZDQ2NGRhZmI4ZTFlNDY4NDgyZGNiLnNldENvbnRlbnQoaHRtbF8yZjAzZDdmYmY3MjE0N2NiYjgyMzEzMjQyMzkzNGIzNyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8zZWQ2ZjI5Y2Q4ZjM0ZDVhOWIzY2QxOGU2YjNiMjU0Yy5iaW5kUG9wdXAocG9wdXBfNDRjMDc2NGUyOTNkNDY0ZGFmYjhlMWU0Njg0ODJkY2IpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMzRiMzI3Y2E3MzRiNDc5OGExOTM4MjUxNTRjOTlkOGYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42OTgxMTYxMTAxNzkwMSwtNzMuOTI1MjU3OTc0ODcwNDVdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZGVlYWYzMmMxN2UyNDA4Yzg3MWMwOGI1OWFkNDJlZTApOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMTAzNjc4ZDAzNDhiNDM2OTk2NzUyOGI4YjQ4Y2FiMDAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZjJmNGJiMTk1MzNmNDY2Y2FhY2I3OThhMGI2OGZmNGMgPSAkKCc8ZGl2IGlkPSJodG1sX2YyZjRiYjE5NTMzZjQ2NmNhYWNiNzk4YTBiNjhmZjRjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5CdXNod2ljazwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMTAzNjc4ZDAzNDhiNDM2OTk2NzUyOGI4YjQ4Y2FiMDAuc2V0Q29udGVudChodG1sX2YyZjRiYjE5NTMzZjQ2NmNhYWNiNzk4YTBiNjhmZjRjKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzM0YjMyN2NhNzM0YjQ3OThhMTkzODI1MTU0Yzk5ZDhmLmJpbmRQb3B1cChwb3B1cF8xMDM2NzhkMDM0OGI0MzY5OTY3NTI4YjhiNDhjYWIwMCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9hODNkNmQ0NTNlYTI0NzAwYmQzZWVjNmVjY2ZhM2U5MSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY4NzIzMTYwNzcyMDQ1NiwtNzMuOTQxNzg0ODg2OTAyOTddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZGVlYWYzMmMxN2UyNDA4Yzg3MWMwOGI1OWFkNDJlZTApOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMmQ4NzlkMWZjYzM5NGI3MTk3ZmE5NGEwZTI5ZjliMjggPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNDUyZDc4MzQxYjdhNGYzY2IxZDFkM2VlYmZhNjEzMjYgPSAkKCc8ZGl2IGlkPSJodG1sXzQ1MmQ3ODM0MWI3YTRmM2NiMWQxZDNlZWJmYTYxMzI2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5CZWRmb3JkIFN0dXl2ZXNhbnQ8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzJkODc5ZDFmY2MzOTRiNzE5N2ZhOTRhMGUyOWY5YjI4LnNldENvbnRlbnQoaHRtbF80NTJkNzgzNDFiN2E0ZjNjYjFkMWQzZWViZmE2MTMyNik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9hODNkNmQ0NTNlYTI0NzAwYmQzZWVjNmVjY2ZhM2U5MS5iaW5kUG9wdXAocG9wdXBfMmQ4NzlkMWZjYzM5NGI3MTk3ZmE5NGEwZTI5ZjliMjgpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNjUwY2M3ZTM3ZDRiNDgxZDg5OWMwMTQ1YjdiMDM0MTMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42OTU4NjM3MjI3MjQwODQsLTczLjk5Mzc4MjI1NDk2NDI0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2RlZWFmMzJjMTdlMjQwOGM4NzFjMDhiNTlhZDQyZWUwKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2I3ODMwMjMxMmJjZjQ2NGZiMWFlNzFkMGQ3N2I4OGNmID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzhhZTRhMTM3YjliYzRiODI4OGJlYmM0ZDM5ZmI0OTViID0gJCgnPGRpdiBpZD0iaHRtbF84YWU0YTEzN2I5YmM0YjgyODhiZWJjNGQzOWZiNDk1YiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+QnJvb2tseW4gSGVpZ2h0czwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYjc4MzAyMzEyYmNmNDY0ZmIxYWU3MWQwZDc3Yjg4Y2Yuc2V0Q29udGVudChodG1sXzhhZTRhMTM3YjliYzRiODI4OGJlYmM0ZDM5ZmI0OTViKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzY1MGNjN2UzN2Q0YjQ4MWQ4OTljMDE0NWI3YjAzNDEzLmJpbmRQb3B1cChwb3B1cF9iNzgzMDIzMTJiY2Y0NjRmYjFhZTcxZDBkNzdiODhjZik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9hODBhNDhiY2QxMTE0ZWUwYjg1MDQwNDkzMDg4NjA2MCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY4NzkxOTcyMjQ4NTU3NCwtNzMuOTk4NTYxMzkyMTg0NjNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZGVlYWYzMmMxN2UyNDA4Yzg3MWMwOGI1OWFkNDJlZTApOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMTgwZmQxYTEyYjU3NGI2OWFmZDdlNDIwNDdhMzViZDQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOWUyNWRkMGVmYTEyNDM5NWE0MmM2YzY5YmVhZmJkOGIgPSAkKCc8ZGl2IGlkPSJodG1sXzllMjVkZDBlZmExMjQzOTVhNDJjNmM2OWJlYWZiZDhiIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Db2JibGUgSGlsbDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMTgwZmQxYTEyYjU3NGI2OWFmZDdlNDIwNDdhMzViZDQuc2V0Q29udGVudChodG1sXzllMjVkZDBlZmExMjQzOTVhNDJjNmM2OWJlYWZiZDhiKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2E4MGE0OGJjZDExMTRlZTBiODUwNDA0OTMwODg2MDYwLmJpbmRQb3B1cChwb3B1cF8xODBmZDFhMTJiNTc0YjY5YWZkN2U0MjA0N2EzNWJkNCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8yODJjODM4NjMyZWY0ODY5OTg5Mjc4MWM2ZDcwNzFkZCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY4MDU0MDIzMTA3NjQ4NSwtNzMuOTk0NjUzNzI4MjgwMDZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZGVlYWYzMmMxN2UyNDA4Yzg3MWMwOGI1OWFkNDJlZTApOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNDM0OTE1YzIyZWI4NDVlZWFhNzM3OWVmYTVhZWZjNmIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMDVjOTYxODM3NjA0NGY1ZTk0ODZlNmQ4NjYyZmRkYjcgPSAkKCc8ZGl2IGlkPSJodG1sXzA1Yzk2MTgzNzYwNDRmNWU5NDg2ZTZkODY2MmZkZGI3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5DYXJyb2xsIEdhcmRlbnM8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzQzNDkxNWMyMmViODQ1ZWVhYTczNzllZmE1YWVmYzZiLnNldENvbnRlbnQoaHRtbF8wNWM5NjE4Mzc2MDQ0ZjVlOTQ4NmU2ZDg2NjJmZGRiNyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8yODJjODM4NjMyZWY0ODY5OTg5Mjc4MWM2ZDcwNzFkZC5iaW5kUG9wdXAocG9wdXBfNDM0OTE1YzIyZWI4NDVlZWFhNzM3OWVmYTVhZWZjNmIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZWE0ZmMxODk3YTcwNDUyYmIxMzk4ZWJkMDc3MzA0MmQgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42NzYyNTMyMzAyNTA4ODYsLTc0LjAxMjc1ODk3NDczNTZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZGVlYWYzMmMxN2UyNDA4Yzg3MWMwOGI1OWFkNDJlZTApOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNmJmZWYxNDJkNjM1NDBiNThjYmZiM2MzMWIxMDAyZmYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfODYwYTlkMDE4OTg0NDdiMGEzMDk1ZjI1ZjUzZDM3ODIgPSAkKCc8ZGl2IGlkPSJodG1sXzg2MGE5ZDAxODk4NDQ3YjBhMzA5NWYyNWY1M2QzNzgyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5SZWQgSG9vazwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNmJmZWYxNDJkNjM1NDBiNThjYmZiM2MzMWIxMDAyZmYuc2V0Q29udGVudChodG1sXzg2MGE5ZDAxODk4NDQ3YjBhMzA5NWYyNWY1M2QzNzgyKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2VhNGZjMTg5N2E3MDQ1MmJiMTM5OGViZDA3NzMwNDJkLmJpbmRQb3B1cChwb3B1cF82YmZlZjE0MmQ2MzU0MGI1OGNiZmIzYzMxYjEwMDJmZik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl82ODBkODAxNzRiN2E0YTcyYmU2ZWZiZTA2ZTI5YzljMiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY3MzkzMTE0MzE4NzE1NCwtNzMuOTk0NDQwODcxNDUzMzldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZGVlYWYzMmMxN2UyNDA4Yzg3MWMwOGI1OWFkNDJlZTApOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZDkzODVmYjY3NTZlNDliMzkwNjAzODM0NTAyODRiZWYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMGM3NDBiMTZiM2Y1NGExNzhmOGY2ZTZmM2E3NWNhMzIgPSAkKCc8ZGl2IGlkPSJodG1sXzBjNzQwYjE2YjNmNTRhMTc4ZjhmNmU2ZjNhNzVjYTMyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Hb3dhbnVzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9kOTM4NWZiNjc1NmU0OWIzOTA2MDM4MzQ1MDI4NGJlZi5zZXRDb250ZW50KGh0bWxfMGM3NDBiMTZiM2Y1NGExNzhmOGY2ZTZmM2E3NWNhMzIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNjgwZDgwMTc0YjdhNGE3MmJlNmVmYmUwNmUyOWM5YzIuYmluZFBvcHVwKHBvcHVwX2Q5Mzg1ZmI2NzU2ZTQ5YjM5MDYwMzgzNDUwMjg0YmVmKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzkzYmZmOTQ2NTllYjRlZmFhNzFhMGYwOTI3ZGQwZjJlID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjg4NTI3MjYwMTg5NzcsLTczLjk3MjkwNTc0MzY5MDkyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2RlZWFmMzJjMTdlMjQwOGM4NzFjMDhiNTlhZDQyZWUwKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzFlN2M0MzEzNTJiNTQwNWFiNmY0YzRiZjIzZjA3ZjgwID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzcxN2E0ZjhkMjkzYjQxYjc5YWVmNDBiYWYxYThkZmZhID0gJCgnPGRpdiBpZD0iaHRtbF83MTdhNGY4ZDI5M2I0MWI3OWFlZjQwYmFmMWE4ZGZmYSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Rm9ydCBHcmVlbmU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzFlN2M0MzEzNTJiNTQwNWFiNmY0YzRiZjIzZjA3ZjgwLnNldENvbnRlbnQoaHRtbF83MTdhNGY4ZDI5M2I0MWI3OWFlZjQwYmFmMWE4ZGZmYSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl85M2JmZjk0NjU5ZWI0ZWZhYTcxYTBmMDkyN2RkMGYyZS5iaW5kUG9wdXAocG9wdXBfMWU3YzQzMTM1MmI1NDA1YWI2ZjRjNGJmMjNmMDdmODApOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfODBjZTQxMjBhNWQ5NDVmYWJmODI1MThhYjBlNDA0NzMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42NzIzMjA1MjI2ODE5NywtNzMuOTc3MDUwMzAxODM5MjRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZGVlYWYzMmMxN2UyNDA4Yzg3MWMwOGI1OWFkNDJlZTApOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfM2M0OGRmYjIxNTNlNGU3Y2EwZGFkZDk4ZGJjMjMyOTcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZDFlNjcwZDkzYTQyNDZmMDg1NDRkYmQ4MGQ3NzY5MDMgPSAkKCc8ZGl2IGlkPSJodG1sX2QxZTY3MGQ5M2E0MjQ2ZjA4NTQ0ZGJkODBkNzc2OTAzIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5QYXJrIFNsb3BlPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8zYzQ4ZGZiMjE1M2U0ZTdjYTBkYWRkOThkYmMyMzI5Ny5zZXRDb250ZW50KGh0bWxfZDFlNjcwZDkzYTQyNDZmMDg1NDRkYmQ4MGQ3NzY5MDMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfODBjZTQxMjBhNWQ5NDVmYWJmODI1MThhYjBlNDA0NzMuYmluZFBvcHVwKHBvcHVwXzNjNDhkZmIyMTUzZTRlN2NhMGRhZGQ5OGRiYzIzMjk3KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzE0NDhkY2FjZTJiNjRkY2ViNDJiNzU4ZmI2NDQxYTlmID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjgyMzkxMDExNDQyMTEsLTczLjg3NjYxNTk2NDU3Mjk2XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2RlZWFmMzJjMTdlMjQwOGM4NzFjMDhiNTlhZDQyZWUwKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzFlZGIyZGI2OTNjMTQ1MzA5NzYwOWQ2MDM2ZjNjMzk2ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzE4NzVmZTM1OGEyNzQ2NjM5MmNhM2Y5OGU4N2VmMDNkID0gJCgnPGRpdiBpZD0iaHRtbF8xODc1ZmUzNThhMjc0NjYzOTJjYTNmOThlODdlZjAzZCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Q3lwcmVzcyBIaWxsczwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMWVkYjJkYjY5M2MxNDUzMDk3NjA5ZDYwMzZmM2MzOTYuc2V0Q29udGVudChodG1sXzE4NzVmZTM1OGEyNzQ2NjM5MmNhM2Y5OGU4N2VmMDNkKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzE0NDhkY2FjZTJiNjRkY2ViNDJiNzU4ZmI2NDQxYTlmLmJpbmRQb3B1cChwb3B1cF8xZWRiMmRiNjkzYzE0NTMwOTc2MDlkNjAzNmYzYzM5Nik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl84NGY0ZTgzYzYzMjY0NjE0OWRhOGNiMWI1YTY4NTI1NiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY2OTkyNTcwMDg0NzA0NSwtNzMuODgwNjk4NjM5MTczNjZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZGVlYWYzMmMxN2UyNDA4Yzg3MWMwOGI1OWFkNDJlZTApOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZWQ3OTRhNGU3YzllNDkzYzhlOTFlMjk5ODkxOGE1YWEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYmY2ODdlZTM1ZDljNDk2Zjg0ZTc1YjFkYjJmOTc2NmEgPSAkKCc8ZGl2IGlkPSJodG1sX2JmNjg3ZWUzNWQ5YzQ5NmY4NGU3NWIxZGIyZjk3NjZhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5FYXN0IE5ldyBZb3JrPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9lZDc5NGE0ZTdjOWU0OTNjOGU5MWUyOTk4OTE4YTVhYS5zZXRDb250ZW50KGh0bWxfYmY2ODdlZTM1ZDljNDk2Zjg0ZTc1YjFkYjJmOTc2NmEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfODRmNGU4M2M2MzI2NDYxNDlkYThjYjFiNWE2ODUyNTYuYmluZFBvcHVwKHBvcHVwX2VkNzk0YTRlN2M5ZTQ5M2M4ZTkxZTI5OTg5MThhNWFhKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzdlYzY2MzIwMzY1YTRjZjVhNmMwNDhjOTRhMmNiOWQ0ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjQ3NTg5MDUyMzA4NzQsLTczLjg3OTM2OTcwMDQ1ODc1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2RlZWFmMzJjMTdlMjQwOGM4NzFjMDhiNTlhZDQyZWUwKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzY2MGE2MGE1OTc3MDQzNzRiMWY2MjYyM2E0OThjYzE3ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzFlZjc4NmFkZGY5OTRmZmZiZjg0ODk4ZGI4YWI4MjM0ID0gJCgnPGRpdiBpZD0iaHRtbF8xZWY3ODZhZGRmOTk0ZmZmYmY4NDg5OGRiOGFiODIzNCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+U3RhcnJldHQgQ2l0eTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNjYwYTYwYTU5NzcwNDM3NGIxZjYyNjIzYTQ5OGNjMTcuc2V0Q29udGVudChodG1sXzFlZjc4NmFkZGY5OTRmZmZiZjg0ODk4ZGI4YWI4MjM0KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzdlYzY2MzIwMzY1YTRjZjVhNmMwNDhjOTRhMmNiOWQ0LmJpbmRQb3B1cChwb3B1cF82NjBhNjBhNTk3NzA0Mzc0YjFmNjI2MjNhNDk4Y2MxNyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9kY2E2OGRkNGJiZGI0NzNlYTUyM2VjMzJlMGM0NDY4NCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjYzNTU2NDMyNzk3NDI4LC03My45MDIwOTI2OTc3ODk2Nl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kZWVhZjMyYzE3ZTI0MDhjODcxYzA4YjU5YWQ0MmVlMCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83OWEzODYxOTczYWM0MmExOTZmM2VlZDFmNzNhMTIzYSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8wYjc5OWQ2ZTI1YjM0NWQwOTUxZWE5MmQ1ZjE1ZGY1NyA9ICQoJzxkaXYgaWQ9Imh0bWxfMGI3OTlkNmUyNWIzNDVkMDk1MWVhOTJkNWYxNWRmNTciIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNhbmFyc2llPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF83OWEzODYxOTczYWM0MmExOTZmM2VlZDFmNzNhMTIzYS5zZXRDb250ZW50KGh0bWxfMGI3OTlkNmUyNWIzNDVkMDk1MWVhOTJkNWYxNWRmNTcpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZGNhNjhkZDRiYmRiNDczZWE1MjNlYzMyZTBjNDQ2ODQuYmluZFBvcHVwKHBvcHVwXzc5YTM4NjE5NzNhYzQyYTE5NmYzZWVkMWY3M2ExMjNhKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzBmNzQ1YjZlZjU3YzQzZDBhMzUxZjE4M2M5NGE2ZjRkID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjMwNDQ2MDQzNzU3NDY2LC03My45MjkxMTMwMjY0NDY3NF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kZWVhZjMyYzE3ZTI0MDhjODcxYzA4YjU5YWQ0MmVlMCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8wZDFlMzNlMTIwOTY0ZWNjOWUxM2VhZDkyNmExNDE5ZCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85NWY4ZmEyZmZkMDg0ZTNkOTBiMzI4Yzc2ZDM4YWQxZiA9ICQoJzxkaXYgaWQ9Imh0bWxfOTVmOGZhMmZmZDA4NGUzZDkwYjMyOGM3NmQzOGFkMWYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkZsYXRsYW5kczwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMGQxZTMzZTEyMDk2NGVjYzllMTNlYWQ5MjZhMTQxOWQuc2V0Q29udGVudChodG1sXzk1ZjhmYTJmZmQwODRlM2Q5MGIzMjhjNzZkMzhhZDFmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzBmNzQ1YjZlZjU3YzQzZDBhMzUxZjE4M2M5NGE2ZjRkLmJpbmRQb3B1cChwb3B1cF8wZDFlMzNlMTIwOTY0ZWNjOWUxM2VhZDkyNmExNDE5ZCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl80NDRkYTk2OTlmZWE0YWZjODJjYmM3MjY5NDBiZmQ4MyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjYwNjMzNjQyMTY4NTYyNiwtNzMuOTA4MTg1NzE3Nzc0MjNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZGVlYWYzMmMxN2UyNDA4Yzg3MWMwOGI1OWFkNDJlZTApOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNGI0MjcwNGEzOWQ0NDZhZWEyZTJjOGYxMWViMmVjZmYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNWU1YjFkNDUzMWI2NDQ1ZTg1NWNiYjE1YWE5MDRkNGYgPSAkKCc8ZGl2IGlkPSJodG1sXzVlNWIxZDQ1MzFiNjQ0NWU4NTVjYmIxNWFhOTA0ZDRmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5NaWxsIElzbGFuZDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNGI0MjcwNGEzOWQ0NDZhZWEyZTJjOGYxMWViMmVjZmYuc2V0Q29udGVudChodG1sXzVlNWIxZDQ1MzFiNjQ0NWU4NTVjYmIxNWFhOTA0ZDRmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzQ0NGRhOTY5OWZlYTRhZmM4MmNiYzcyNjk0MGJmZDgzLmJpbmRQb3B1cChwb3B1cF80YjQyNzA0YTM5ZDQ0NmFlYTJlMmM4ZjExZWIyZWNmZik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8wNWUyY2JhMjA5OWM0NGE1YjQ5NjczMGNjOTIwZDdhMiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU3NzkxMzUwMzA4NjU3LC03My45NDM1MzcyMjg5MTg4Nl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kZWVhZjMyYzE3ZTI0MDhjODcxYzA4YjU5YWQ0MmVlMCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8zZGM3YmFlOTkzYWQ0MTk1OTM0ODUyNDQyNGZiMjg2ZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9kMWI1YmY1YmMwMDQ0ZGU4YTU0N2FmYjkzY2NlNzQxNCA9ICQoJzxkaXYgaWQ9Imh0bWxfZDFiNWJmNWJjMDA0NGRlOGE1NDdhZmI5M2NjZTc0MTQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk1hbmhhdHRhbiBCZWFjaDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfM2RjN2JhZTk5M2FkNDE5NTkzNDg1MjQ0MjRmYjI4NmUuc2V0Q29udGVudChodG1sX2QxYjViZjViYzAwNDRkZThhNTQ3YWZiOTNjY2U3NDE0KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzA1ZTJjYmEyMDk5YzQ0YTViNDk2NzMwY2M5MjBkN2EyLmJpbmRQb3B1cChwb3B1cF8zZGM3YmFlOTkzYWQ0MTk1OTM0ODUyNDQyNGZiMjg2ZSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8yZDAwYjYzYTBiNTg0ZDk2OWQ0YzFiY2MzOTE0YWUwMSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU3NDI5MjU2NDcxNjAxLC03My45ODg2ODI5NTgyMTYzN10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kZWVhZjMyYzE3ZTI0MDhjODcxYzA4YjU5YWQ0MmVlMCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8yNjk5MzczODZkYWU0NjdkODY0OWU4MjIzODNlMjg1NCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84ODE5OTUxNDkxZmU0YzdjOGY1YzFlMTljODQ1NzI1NiA9ICQoJzxkaXYgaWQ9Imh0bWxfODgxOTk1MTQ5MWZlNGM3YzhmNWMxZTE5Yzg0NTcyNTYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNvbmV5IElzbGFuZDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMjY5OTM3Mzg2ZGFlNDY3ZDg2NDllODIyMzgzZTI4NTQuc2V0Q29udGVudChodG1sXzg4MTk5NTE0OTFmZTRjN2M4ZjVjMWUxOWM4NDU3MjU2KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzJkMDBiNjNhMGI1ODRkOTY5ZDRjMWJjYzM5MTRhZTAxLmJpbmRQb3B1cChwb3B1cF8yNjk5MzczODZkYWU0NjdkODY0OWU4MjIzODNlMjg1NCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9hYzYwYWMyZWQwZWI0NWMzYmU1MjJkMWMwYmExOTg4OCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU5OTUxODcwMjgyMjM4LC03My45OTg3NTIyMTQ0MzUxOV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kZWVhZjMyYzE3ZTI0MDhjODcxYzA4YjU5YWQ0MmVlMCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8yY2M3NDg4NjM3OWU0ZWQ1OGEyZDNmMmUxNzUxOWVlYiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF83OTEyNjM5NDNmM2Q0MmVlYjJmNDg2NGEyZTczYmM2ZiA9ICQoJzxkaXYgaWQ9Imh0bWxfNzkxMjYzOTQzZjNkNDJlZWIyZjQ4NjRhMmU3M2JjNmYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkJhdGggQmVhY2g8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzJjYzc0ODg2Mzc5ZTRlZDU4YTJkM2YyZTE3NTE5ZWViLnNldENvbnRlbnQoaHRtbF83OTEyNjM5NDNmM2Q0MmVlYjJmNDg2NGEyZTczYmM2Zik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9hYzYwYWMyZWQwZWI0NWMzYmU1MjJkMWMwYmExOTg4OC5iaW5kUG9wdXAocG9wdXBfMmNjNzQ4ODYzNzllNGVkNThhMmQzZjJlMTc1MTllZWIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfODcyNTU4ZDJmMGRiNDI2MmI3NThiZDdmYTYxMzk2NzYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MzMxMzA1MTI3NTgwMTUsLTczLjk5MDQ5ODIzMDQ0ODExXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2RlZWFmMzJjMTdlMjQwOGM4NzFjMDhiNTlhZDQyZWUwKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2RkNTMwMzc4OWY3ZDRiODI4NDUzOWRmMzMxMzQ1YWI2ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzY1NDkxMjA3OGQ1ZTQzZTJiMWYyMjkzNTVmYWU2Yjc1ID0gJCgnPGRpdiBpZD0iaHRtbF82NTQ5MTIwNzhkNWU0M2UyYjFmMjI5MzU1ZmFlNmI3NSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Qm9yb3VnaCBQYXJrPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9kZDUzMDM3ODlmN2Q0YjgyODQ1MzlkZjMzMTM0NWFiNi5zZXRDb250ZW50KGh0bWxfNjU0OTEyMDc4ZDVlNDNlMmIxZjIyOTM1NWZhZTZiNzUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfODcyNTU4ZDJmMGRiNDI2MmI3NThiZDdmYTYxMzk2NzYuYmluZFBvcHVwKHBvcHVwX2RkNTMwMzc4OWY3ZDRiODI4NDUzOWRmMzMxMzQ1YWI2KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzcxMTcxMGE5NjUwNDQzMzRhMGRhYmE3OTg3OTNmZjYxID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjE5MjE5NDU3NzIyNjM2LC03NC4wMTkzMTM3NTYzNjAyMl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kZWVhZjMyYzE3ZTI0MDhjODcxYzA4YjU5YWQ0MmVlMCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8wYmJhYWRiMGNlODM0YjViOTkxYTFmMmFjODM2ZDFiMSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF83ZmFmMmNmMGMyODg0YTU5OTE5ZWY3Zjg5YmIxZGM4YiA9ICQoJzxkaXYgaWQ9Imh0bWxfN2ZhZjJjZjBjMjg4NGE1OTkxOWVmN2Y4OWJiMWRjOGIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkR5a2VyIEhlaWdodHM8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzBiYmFhZGIwY2U4MzRiNWI5OTFhMWYyYWM4MzZkMWIxLnNldENvbnRlbnQoaHRtbF83ZmFmMmNmMGMyODg0YTU5OTE5ZWY3Zjg5YmIxZGM4Yik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl83MTE3MTBhOTY1MDQ0MzM0YTBkYWJhNzk4NzkzZmY2MS5iaW5kUG9wdXAocG9wdXBfMGJiYWFkYjBjZTgzNGI1Yjk5MWExZjJhYzgzNmQxYjEpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfODgwYzcxZjZiMDU0NGRmNWE0OWI1NGE0MTkwYjdmNjcgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41OTA4NDg0MzM5MDIwNDYsLTczLjkzMDEwMTcwNjkxMTk2XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2RlZWFmMzJjMTdlMjQwOGM4NzFjMDhiNTlhZDQyZWUwKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzZmYWM5MDU5YTRkZTRhNWE5NmFmNWUzNDkzZWZmZWFiID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2VmOGNkYzViMTkzNDRlNGE5Mjg0ODIxN2JmYzk0YmY2ID0gJCgnPGRpdiBpZD0iaHRtbF9lZjhjZGM1YjE5MzQ0ZTRhOTI4NDgyMTdiZmM5NGJmNiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+R2Vycml0c2VuIEJlYWNoPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82ZmFjOTA1OWE0ZGU0YTVhOTZhZjVlMzQ5M2VmZmVhYi5zZXRDb250ZW50KGh0bWxfZWY4Y2RjNWIxOTM0NGU0YTkyODQ4MjE3YmZjOTRiZjYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfODgwYzcxZjZiMDU0NGRmNWE0OWI1NGE0MTkwYjdmNjcuYmluZFBvcHVwKHBvcHVwXzZmYWM5MDU5YTRkZTRhNWE5NmFmNWUzNDkzZWZmZWFiKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzhlNDZiM2MxZjFkYjQyNjU4ZjlkYzQyODJiNzVlNzViID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjA5NzQ3Nzc5ODk0NjA0LC03My45MzEzNDQwNDEwODQ5N10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kZWVhZjMyYzE3ZTI0MDhjODcxYzA4YjU5YWQ0MmVlMCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8wMTYwZDBlN2ZkZjQ0YzBiODRhN2JlOWU5ODhjODZjZCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF83MGZkMjY1YTg4MTg0NTRhYWIwMTFiYzliZTJhZjhmOCA9ICQoJzxkaXYgaWQ9Imh0bWxfNzBmZDI2NWE4ODE4NDU0YWFiMDExYmM5YmUyYWY4ZjgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk1hcmluZSBQYXJrPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8wMTYwZDBlN2ZkZjQ0YzBiODRhN2JlOWU5ODhjODZjZC5zZXRDb250ZW50KGh0bWxfNzBmZDI2NWE4ODE4NDU0YWFiMDExYmM5YmUyYWY4ZjgpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfOGU0NmIzYzFmMWRiNDI2NThmOWRjNDI4MmI3NWU3NWIuYmluZFBvcHVwKHBvcHVwXzAxNjBkMGU3ZmRmNDRjMGI4NGE3YmU5ZTk4OGM4NmNkKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzc3MWE5Y2NlMjVmMjQ3Y2M5ZWY0NWE1ODJmZWY3Nzk4ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjkzMjI5NDIxODgxNTA0LC03My45Njc4NDMwNjIxNjM2N10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kZWVhZjMyYzE3ZTI0MDhjODcxYzA4YjU5YWQ0MmVlMCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84ZmZhYjJmODQwMzU0Y2M3YjM2NDY3NjI1MDZkMDM5OCA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8wMGFjNmFkNzBlMDk0OWI0YTY5NzIxNjk3ZDAxOGVhZSA9ICQoJzxkaXYgaWQ9Imh0bWxfMDBhYzZhZDcwZTA5NDliNGE2OTcyMTY5N2QwMThlYWUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkNsaW50b24gSGlsbDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOGZmYWIyZjg0MDM1NGNjN2IzNjQ2NzYyNTA2ZDAzOTguc2V0Q29udGVudChodG1sXzAwYWM2YWQ3MGUwOTQ5YjRhNjk3MjE2OTdkMDE4ZWFlKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzc3MWE5Y2NlMjVmMjQ3Y2M5ZWY0NWE1ODJmZWY3Nzk4LmJpbmRQb3B1cChwb3B1cF84ZmZhYjJmODQwMzU0Y2M3YjM2NDY3NjI1MDZkMDM5OCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl81YjFiNjllZGExMDI0NjQ0YWNiZmZjNmNhYmU0NWNmNCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjU3NjM3NTM3ODkwMjI0LC03NC4wMDc4NzMxMTIwMDI0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2RlZWFmMzJjMTdlMjQwOGM4NzFjMDhiNTlhZDQyZWUwKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2IwZmE3MjFlZTMxNzQ3ZWZhNDUyNTNhNmJlMGE2Yjk5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2U5OGRkY2YzNWFlMzQ3ZjhiNzgyZWUwNDVjZjJiYmY0ID0gJCgnPGRpdiBpZD0iaHRtbF9lOThkZGNmMzVhZTM0N2Y4Yjc4MmVlMDQ1Y2YyYmJmNCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+U2VhIEdhdGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2IwZmE3MjFlZTMxNzQ3ZWZhNDUyNTNhNmJlMGE2Yjk5LnNldENvbnRlbnQoaHRtbF9lOThkZGNmMzVhZTM0N2Y4Yjc4MmVlMDQ1Y2YyYmJmNCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl81YjFiNjllZGExMDI0NjQ0YWNiZmZjNmNhYmU0NWNmNC5iaW5kUG9wdXAocG9wdXBfYjBmYTcyMWVlMzE3NDdlZmE0NTI1M2E2YmUwYTZiOTkpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZTdjODViNDBhNzVlNGI1ZWEwNTE2YjJmNWE2MTdhOTUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42OTA4NDQwMjEwOTgwMiwtNzMuOTgzNDYzMzc0MzEwOTldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZGVlYWYzMmMxN2UyNDA4Yzg3MWMwOGI1OWFkNDJlZTApOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOTY5ZWY5NzUyZjg4NDA5MTg2ZTRmMWMyZWMyZGRkMDkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMDc5OGE5MTViZTkzNDJiMjg3NTY5MzI1MjZhODg1MWYgPSAkKCc8ZGl2IGlkPSJodG1sXzA3OThhOTE1YmU5MzQyYjI4NzU2OTMyNTI2YTg4NTFmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Eb3dudG93bjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOTY5ZWY5NzUyZjg4NDA5MTg2ZTRmMWMyZWMyZGRkMDkuc2V0Q29udGVudChodG1sXzA3OThhOTE1YmU5MzQyYjI4NzU2OTMyNTI2YTg4NTFmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2U3Yzg1YjQwYTc1ZTRiNWVhMDUxNmIyZjVhNjE3YTk1LmJpbmRQb3B1cChwb3B1cF85NjllZjk3NTJmODg0MDkxODZlNGYxYzJlYzJkZGQwOSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8zZWM4MDYxYjEyZTc0NTFhOTVmOTZhOTg3MzBhZWVmMSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY4NTY4MjkxMjA5MTQ0NCwtNzMuOTgzNzQ4MjQxMTU3OThdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZGVlYWYzMmMxN2UyNDA4Yzg3MWMwOGI1OWFkNDJlZTApOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNWQ5MmE1YzYyYTFhNGEwNGE5MjljZjAyODg3MjlkZGMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMmI0YTI1MjhiYWQ2NGJkM2E0MjFlOTA3NjRhN2Y4ODggPSAkKCc8ZGl2IGlkPSJodG1sXzJiNGEyNTI4YmFkNjRiZDNhNDIxZTkwNzY0YTdmODg4IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Cb2VydW0gSGlsbDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNWQ5MmE1YzYyYTFhNGEwNGE5MjljZjAyODg3MjlkZGMuc2V0Q29udGVudChodG1sXzJiNGEyNTI4YmFkNjRiZDNhNDIxZTkwNzY0YTdmODg4KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzNlYzgwNjFiMTJlNzQ1MWE5NWY5NmE5ODczMGFlZWYxLmJpbmRQb3B1cChwb3B1cF81ZDkyYTVjNjJhMWE0YTA0YTkyOWNmMDI4ODcyOWRkYyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9hNjk2MjI0M2NlMDE0M2E2ODdhYWNhNzQ5MDY5NGY3OSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY1ODQyMDAxNzQ2OTgxNSwtNzMuOTU0ODk4NjcwNzc3MTNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZGVlYWYzMmMxN2UyNDA4Yzg3MWMwOGI1OWFkNDJlZTApOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfODI1MjBkOTJjNmU1NDQ5NGE2ZjI0YWEyMzg0NzQ3OWMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMzg5NDY0ZTU2ZjdmNGQxMDllYzhkMjJjNWU0NjMzMGQgPSAkKCc8ZGl2IGlkPSJodG1sXzM4OTQ2NGU1NmY3ZjRkMTA5ZWM4ZDIyYzVlNDYzMzBkIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Qcm9zcGVjdCBMZWZmZXJ0cyBHYXJkZW5zPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF84MjUyMGQ5MmM2ZTU0NDk0YTZmMjRhYTIzODQ3NDc5Yy5zZXRDb250ZW50KGh0bWxfMzg5NDY0ZTU2ZjdmNGQxMDllYzhkMjJjNWU0NjMzMGQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYTY5NjIyNDNjZTAxNDNhNjg3YWFjYTc0OTA2OTRmNzkuYmluZFBvcHVwKHBvcHVwXzgyNTIwZDkyYzZlNTQ0OTRhNmYyNGFhMjM4NDc0NzljKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzMwZjdjYmMyMjI2MDRlMDU4OWUzMGJkZjcyMTIzZTc1ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjc4NDAyNTU0Nzk1MzU1LC03My45MTMwNjgzMTc4NzM5NV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kZWVhZjMyYzE3ZTI0MDhjODcxYzA4YjU5YWQ0MmVlMCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9iZDFhYWI5YzJhYzk0ZWVkOTA0NTZjZmZlNTc0OWUyZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iZDI1MDc2YjBiODg0NTMxYTU2MGI3ZjViMWQxMGE1MSA9ICQoJzxkaXYgaWQ9Imh0bWxfYmQyNTA3NmIwYjg4NDUzMWE1NjBiN2Y1YjFkMTBhNTEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk9jZWFuIEhpbGw8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2JkMWFhYjljMmFjOTRlZWQ5MDQ1NmNmZmU1NzQ5ZTJlLnNldENvbnRlbnQoaHRtbF9iZDI1MDc2YjBiODg0NTMxYTU2MGI3ZjViMWQxMGE1MSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8zMGY3Y2JjMjIyNjA0ZTA1ODllMzBiZGY3MjEyM2U3NS5iaW5kUG9wdXAocG9wdXBfYmQxYWFiOWMyYWM5NGVlZDkwNDU2Y2ZmZTU3NDllMmUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfM2QzOTJiN2ZjN2RkNGFkZTk2ZDlkMDVhYjUzZjI4ODggPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42Nzg1Njk5NTcyNzQ3OSwtNzMuODY3OTc1OTgwODEzMzRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZGVlYWYzMmMxN2UyNDA4Yzg3MWMwOGI1OWFkNDJlZTApOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNjE0NWExMmM3OTM3NDhjOWEyMGMxYzQ5ODE3NGZjZWYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMDJiNWRjMDYyNTU4NGM4MThhZjE2MzBmNDUxNDRhMzIgPSAkKCc8ZGl2IGlkPSJodG1sXzAyYjVkYzA2MjU1ODRjODE4YWYxNjMwZjQ1MTQ0YTMyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5DaXR5IExpbmU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzYxNDVhMTJjNzkzNzQ4YzlhMjBjMWM0OTgxNzRmY2VmLnNldENvbnRlbnQoaHRtbF8wMmI1ZGMwNjI1NTg0YzgxOGFmMTYzMGY0NTE0NGEzMik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8zZDM5MmI3ZmM3ZGQ0YWRlOTZkOWQwNWFiNTNmMjg4OC5iaW5kUG9wdXAocG9wdXBfNjE0NWExMmM3OTM3NDhjOWEyMGMxYzQ5ODE3NGZjZWYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMGFkMmU2YzZjZTY0NDg3M2FlNTE0MTNhZGYxODY1NjcgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MTUxNDk1NTA0NTMwOCwtNzMuODk4NTU2MzM2MzAzMTddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZGVlYWYzMmMxN2UyNDA4Yzg3MWMwOGI1OWFkNDJlZTApOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfY2VlYmRkMGFhNWM5NDBmMTk1OGU1MzNjZDdlY2YxMWYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMTZlYTEyMjFiMGY2NDZjMzgzNTZiOGVkNWQzNDk2OWEgPSAkKCc8ZGl2IGlkPSJodG1sXzE2ZWExMjIxYjBmNjQ2YzM4MzU2YjhlZDVkMzQ5NjlhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5CZXJnZW4gQmVhY2g8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2NlZWJkZDBhYTVjOTQwZjE5NThlNTMzY2Q3ZWNmMTFmLnNldENvbnRlbnQoaHRtbF8xNmVhMTIyMWIwZjY0NmMzODM1NmI4ZWQ1ZDM0OTY5YSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8wYWQyZTZjNmNlNjQ0ODczYWU1MTQxM2FkZjE4NjU2Ny5iaW5kUG9wdXAocG9wdXBfY2VlYmRkMGFhNWM5NDBmMTk1OGU1MzNjZDdlY2YxMWYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZWJiMDc0N2EzMTRmNGQ3ZDg3Yjc2NzQxOTBhNWQ0M2MgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MjU1OTU4OTg2OTg0MywtNzMuOTU3NTk1MjM0ODk4MzhdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZGVlYWYzMmMxN2UyNDA4Yzg3MWMwOGI1OWFkNDJlZTApOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOThkNjNlNGZjMTFjNDQwZmFhMzExNWIzMDA3MjBiMGEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNDU2MjllMWI0Y2Y5NDZkMGE3YTFjNmEzMzY0M2ZjYmEgPSAkKCc8ZGl2IGlkPSJodG1sXzQ1NjI5ZTFiNGNmOTQ2ZDBhN2ExYzZhMzM2NDNmY2JhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5NaWR3b29kPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF85OGQ2M2U0ZmMxMWM0NDBmYWEzMTE1YjMwMDcyMGIwYS5zZXRDb250ZW50KGh0bWxfNDU2MjllMWI0Y2Y5NDZkMGE3YTFjNmEzMzY0M2ZjYmEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZWJiMDc0N2EzMTRmNGQ3ZDg3Yjc2NzQxOTBhNWQ0M2MuYmluZFBvcHVwKHBvcHVwXzk4ZDYzZTRmYzExYzQ0MGZhYTMxMTViMzAwNzIwYjBhKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2QzMTFiNTlkMmRjMDQ2MGE4Yzk5NTZmODlmMzFjMWUwID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjQ3MDA4NjAzMTg1MTg1LC03My45NjI2MTMxNjcxNjA0OF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kZWVhZjMyYzE3ZTI0MDhjODcxYzA4YjU5YWQ0MmVlMCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9mZmMzYzJhMDU5OTY0ZWIzOGViYjI1MzA1ZWRkNjlkMyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85M2ViZDFlNDFlNmU0ZjNjYjc2MGUxMjM5OTE1NTcxOSA9ICQoJzxkaXYgaWQ9Imh0bWxfOTNlYmQxZTQxZTZlNGYzY2I3NjBlMTIzOTkxNTU3MTkiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlByb3NwZWN0IFBhcmsgU291dGg8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2ZmYzNjMmEwNTk5NjRlYjM4ZWJiMjUzMDVlZGQ2OWQzLnNldENvbnRlbnQoaHRtbF85M2ViZDFlNDFlNmU0ZjNjYjc2MGUxMjM5OTE1NTcxOSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9kMzExYjU5ZDJkYzA0NjBhOGM5OTU2Zjg5ZjMxYzFlMC5iaW5kUG9wdXAocG9wdXBfZmZjM2MyYTA1OTk2NGViMzhlYmIyNTMwNWVkZDY5ZDMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfOTNmNGU5OWVlZjkyNGY1MTk4MDZmYWE0ZDlmYjUwOWUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MjM4NDUyNDQ3ODQxOSwtNzMuOTE2MDc0ODM5NTEzMjRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZGVlYWYzMmMxN2UyNDA4Yzg3MWMwOGI1OWFkNDJlZTApOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYjg3OWY4ZjA5MjkzNDhlYWFjNjJmNWRmZWUxMjY4ZjEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOTFjNTQzMzJiNjg0NDY4YWExZDM0ZTdhZmFmNjgxMmYgPSAkKCc8ZGl2IGlkPSJodG1sXzkxYzU0MzMyYjY4NDQ2OGFhMWQzNGU3YWZhZjY4MTJmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5HZW9yZ2V0b3duPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iODc5ZjhmMDkyOTM0OGVhYWM2MmY1ZGZlZTEyNjhmMS5zZXRDb250ZW50KGh0bWxfOTFjNTQzMzJiNjg0NDY4YWExZDM0ZTdhZmFmNjgxMmYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfOTNmNGU5OWVlZjkyNGY1MTk4MDZmYWE0ZDlmYjUwOWUuYmluZFBvcHVwKHBvcHVwX2I4NzlmOGYwOTI5MzQ4ZWFhYzYyZjVkZmVlMTI2OGYxKTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2Q1MTY3YzE5MmE3NDQxNGZhNmU0Mjk0Njk3ODE1ZmI3ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNzA4NDkyNDEwNDE1NDgsLTczLjkzODg1ODE1MjY5MTk1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2RlZWFmMzJjMTdlMjQwOGM4NzFjMDhiNTlhZDQyZWUwKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzk5N2I2OTg1NmVlZDQ2ZmU5N2I1NWE0ZWE4ZTBkYTE0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2ZkNTJhNThlNzIxZTRmMDM4ZTc3YjBhNWNhYjYwMTY0ID0gJCgnPGRpdiBpZD0iaHRtbF9mZDUyYTU4ZTcyMWU0ZjAzOGU3N2IwYTVjYWI2MDE2NCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+RWFzdCBXaWxsaWFtc2J1cmc8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzk5N2I2OTg1NmVlZDQ2ZmU5N2I1NWE0ZWE4ZTBkYTE0LnNldENvbnRlbnQoaHRtbF9mZDUyYTU4ZTcyMWU0ZjAzOGU3N2IwYTVjYWI2MDE2NCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9kNTE2N2MxOTJhNzQ0MTRmYTZlNDI5NDY5NzgxNWZiNy5iaW5kUG9wdXAocG9wdXBfOTk3YjY5ODU2ZWVkNDZmZTk3YjU1YTRlYThlMGRhMTQpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNzM0OWU3MDFlMmMwNGMxNTgxNzBjYTUzNDE5ZjI1MGYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC43MTQ4MjI5MDY1MzIwMTQsLTczLjk1ODgwODU3NTg3NTgyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2RlZWFmMzJjMTdlMjQwOGM4NzFjMDhiNTlhZDQyZWUwKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2Y4NzczYzYyMzUyNDQ5OTI4Y2FjMjIzN2NmMjk0MWFmID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzAyM2JlNzk2Mjg3MDQ2ODZhYjJhNDUwMDVmZmJiNjE1ID0gJCgnPGRpdiBpZD0iaHRtbF8wMjNiZTc5NjI4NzA0Njg2YWIyYTQ1MDA1ZmZiYjYxNSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Tm9ydGggU2lkZTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZjg3NzNjNjIzNTI0NDk5MjhjYWMyMjM3Y2YyOTQxYWYuc2V0Q29udGVudChodG1sXzAyM2JlNzk2Mjg3MDQ2ODZhYjJhNDUwMDVmZmJiNjE1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzczNDllNzAxZTJjMDRjMTU4MTcwY2E1MzQxOWYyNTBmLmJpbmRQb3B1cChwb3B1cF9mODc3M2M2MjM1MjQ0OTkyOGNhYzIyMzdjZjI5NDFhZik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8xNzdlMGNhMzQ4Yjg0MzU3OTY0Y2YzYzE3NmZhNjYxZCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjcxMDg2MTQ3MjY1MDY0LC03My45NTgwMDA5NTE1MzMzMV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kZWVhZjMyYzE3ZTI0MDhjODcxYzA4YjU5YWQ0MmVlMCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9hYTAxZTI0ZmY5NjQ0YzI5YmM5MGE3OWI5NmZlMmI1NSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8yMzdhNzYxYTkyMzU0ZmMwODA4YTYxOWVmZDQxMTA2NCA9ICQoJzxkaXYgaWQ9Imh0bWxfMjM3YTc2MWE5MjM1NGZjMDgwOGE2MTllZmQ0MTEwNjQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlNvdXRoIFNpZGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2FhMDFlMjRmZjk2NDRjMjliYzkwYTc5Yjk2ZmUyYjU1LnNldENvbnRlbnQoaHRtbF8yMzdhNzYxYTkyMzU0ZmMwODA4YTYxOWVmZDQxMTA2NCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8xNzdlMGNhMzQ4Yjg0MzU3OTY0Y2YzYzE3NmZhNjYxZC5iaW5kUG9wdXAocG9wdXBfYWEwMWUyNGZmOTY0NGMyOWJjOTBhNzliOTZmZTJiNTUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZWEzZDNhZGZmYjhlNDQxY2IzOWFlMzc4NmQzYzM0ZmIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42MTMwNTk3NjY2Nzk0MiwtNzMuOTY4MzY2NzgwMzU1NDFdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZGVlYWYzMmMxN2UyNDA4Yzg3MWMwOGI1OWFkNDJlZTApOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNmRmOWU5N2IyNjE2NGUwYmI2M2RjNGY4ZjM0YmE5OTggPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZWNkNTU0MDEwYTM4NGQ1MTlmMDEzM2Y2NDU0ODgwYmUgPSAkKCc8ZGl2IGlkPSJodG1sX2VjZDU1NDAxMGEzODRkNTE5ZjAxMzNmNjQ1NDg4MGJlIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5PY2VhbiBQYXJrd2F5PC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82ZGY5ZTk3YjI2MTY0ZTBiYjYzZGM0ZjhmMzRiYTk5OC5zZXRDb250ZW50KGh0bWxfZWNkNTU0MDEwYTM4NGQ1MTlmMDEzM2Y2NDU0ODgwYmUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZWEzZDNhZGZmYjhlNDQxY2IzOWFlMzc4NmQzYzM0ZmIuYmluZFBvcHVwKHBvcHVwXzZkZjllOTdiMjYxNjRlMGJiNjNkYzRmOGYzNGJhOTk4KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzIwYjQ3NTZlMGNkOTRlMTA5OWE0ODA1MzFiMjk4OWI3ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjE0NzY4MTI2OTQyMjYsLTc0LjAzMTk3OTE0NTM3OTg0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2RlZWFmMzJjMTdlMjQwOGM4NzFjMDhiNTlhZDQyZWUwKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzMzMWNiZDgwZjIzMTQyOTY5N2RmZjNiYWRhZDEyNmE2ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzNhMmYyZThlNGRhZjQwODZhYTM0OWE2MjdjOWNiNGRiID0gJCgnPGRpdiBpZD0iaHRtbF8zYTJmMmU4ZTRkYWY0MDg2YWEzNDlhNjI3YzljYjRkYiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+Rm9ydCBIYW1pbHRvbjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMzMxY2JkODBmMjMxNDI5Njk3ZGZmM2JhZGFkMTI2YTYuc2V0Q29udGVudChodG1sXzNhMmYyZThlNGRhZjQwODZhYTM0OWE2MjdjOWNiNGRiKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzIwYjQ3NTZlMGNkOTRlMTA5OWE0ODA1MzFiMjk4OWI3LmJpbmRQb3B1cChwb3B1cF8zMzFjYmQ4MGYyMzE0Mjk2OTdkZmYzYmFkYWQxMjZhNik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8xYWJlZTg0OGYwOGY0OWIyOTZhYzRiMDA3YTYyNDg0NSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY0MzY3NTE4MzM0MDk3NCwtNzMuOTYxMDEzMTI0NjY3NzldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZGVlYWYzMmMxN2UyNDA4Yzg3MWMwOGI1OWFkNDJlZTApOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfY2U5YWNjMWM3OWZlNGQyYjgyZTUyNGQ0NmUzMDI3NzEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMjk0NWE0MTgyY2I4NDhjYWFjNzFjM2M4YjMwNmIxMGMgPSAkKCc8ZGl2IGlkPSJodG1sXzI5NDVhNDE4MmNiODQ4Y2FhYzcxYzNjOGIzMDZiMTBjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5EaXRtYXMgUGFyazwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfY2U5YWNjMWM3OWZlNGQyYjgyZTUyNGQ0NmUzMDI3NzEuc2V0Q29udGVudChodG1sXzI5NDVhNDE4MmNiODQ4Y2FhYzcxYzNjOGIzMDZiMTBjKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzFhYmVlODQ4ZjA4ZjQ5YjI5NmFjNGIwMDdhNjI0ODQ1LmJpbmRQb3B1cChwb3B1cF9jZTlhY2MxYzc5ZmU0ZDJiODJlNTI0ZDQ2ZTMwMjc3MSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl82OTc2OWZmMWYxNjg0N2FlYmQ3MDcyZmZiOTJhZDMzNyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY2MDk0NjU2MTg4MTExLC03My45MzcxODY4MDU1OTMxNF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kZWVhZjMyYzE3ZTI0MDhjODcxYzA4YjU5YWQ0MmVlMCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85YzQ0ZmU4YmVkMDQ0NGExOGNiNTEyZTBjMDZkNTcwYyA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84NjE2ZmI2YTEzNzU0MjY2OWM2YTQyOWU4NTNhMTc1NyA9ICQoJzxkaXYgaWQ9Imh0bWxfODYxNmZiNmExMzc1NDI2NjljNmE0MjllODUzYTE3NTciIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPldpbmdhdGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzljNDRmZThiZWQwNDQ0YTE4Y2I1MTJlMGMwNmQ1NzBjLnNldENvbnRlbnQoaHRtbF84NjE2ZmI2YTEzNzU0MjY2OWM2YTQyOWU4NTNhMTc1Nyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl82OTc2OWZmMWYxNjg0N2FlYmQ3MDcyZmZiOTJhZDMzNy5iaW5kUG9wdXAocG9wdXBfOWM0NGZlOGJlZDA0NDRhMThjYjUxMmUwYzA2ZDU3MGMpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfY2EyNTA2MDM3NDBmNDRmNGJlOGUyZmUzYTNjODc3MDkgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42NTU1NzIzMTMyODA3NjQsLTczLjkyNjg4MjEyNjE2OTU1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2RlZWFmMzJjMTdlMjQwOGM4NzFjMDhiNTlhZDQyZWUwKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2RmMTRhMjdiM2ZkMDQ4YjM4YTMyYzVkOGYyZWE2OTEwID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzMzM2M2ZTQ4MzIzZTQ3MzE4M2RlZGIyMWU2MzIwMDA1ID0gJCgnPGRpdiBpZD0iaHRtbF8zMzNjNmU0ODMyM2U0NzMxODNkZWRiMjFlNjMyMDAwNSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+UnVnYnk8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2RmMTRhMjdiM2ZkMDQ4YjM4YTMyYzVkOGYyZWE2OTEwLnNldENvbnRlbnQoaHRtbF8zMzNjNmU0ODMyM2U0NzMxODNkZWRiMjFlNjMyMDAwNSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9jYTI1MDYwMzc0MGY0NGY0YmU4ZTJmZTNhM2M4NzcwOS5iaW5kUG9wdXAocG9wdXBfZGYxNGEyN2IzZmQwNDhiMzhhMzJjNWQ4ZjJlYTY5MTApOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMGU0YzRlYjAyZThlNDdlYTk3ZDY4NjQ4NjQzOWZmMmYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42NTIxMTc0NTE3OTM0OTQsLTczLjkxNjY1MzMxOTc4MDQ4XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2RlZWFmMzJjMTdlMjQwOGM4NzFjMDhiNTlhZDQyZWUwKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2JkYWUzMTI5MDlkNDQ2ZmJhMjY5NzNiZTc1M2U1MzM2ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzEzMjA5OTEwNzIwNTRiNjc5OGFjMWVmZTQxYzkxYjE5ID0gJCgnPGRpdiBpZD0iaHRtbF8xMzIwOTkxMDcyMDU0YjY3OThhYzFlZmU0MWM5MWIxOSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+UmVtc2VuIFZpbGxhZ2U8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2JkYWUzMTI5MDlkNDQ2ZmJhMjY5NzNiZTc1M2U1MzM2LnNldENvbnRlbnQoaHRtbF8xMzIwOTkxMDcyMDU0YjY3OThhYzFlZmU0MWM5MWIxOSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8wZTRjNGViMDJlOGU0N2VhOTdkNjg2NDg2NDM5ZmYyZi5iaW5kUG9wdXAocG9wdXBfYmRhZTMxMjkwOWQ0NDZmYmEyNjk3M2JlNzUzZTUzMzYpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNmQ1Y2EwNWFiMzhjNGVlNWEyNDI5NTg0NjJiODE4YmQgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42NjI3NDQyNzk2OTY2LC03My44ODUxMTc3NjM3OTI5Ml0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kZWVhZjMyYzE3ZTI0MDhjODcxYzA4YjU5YWQ0MmVlMCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9hNjFjMGRmZDkxNmU0MmUxYmE0MDFiYzA3ZjJjZmViNiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8yYmViNWJjZDViYzM0NzAxOTkyNjlkM2RlYjdiZjI0OSA9ICQoJzxkaXYgaWQ9Imh0bWxfMmJlYjViY2Q1YmMzNDcwMTk5MjY5ZDNkZWI3YmYyNDkiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk5ldyBMb3RzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hNjFjMGRmZDkxNmU0MmUxYmE0MDFiYzA3ZjJjZmViNi5zZXRDb250ZW50KGh0bWxfMmJlYjViY2Q1YmMzNDcwMTk5MjY5ZDNkZWI3YmYyNDkpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNmQ1Y2EwNWFiMzhjNGVlNWEyNDI5NTg0NjJiODE4YmQuYmluZFBvcHVwKHBvcHVwX2E2MWMwZGZkOTE2ZTQyZTFiYTQwMWJjMDdmMmNmZWI2KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzEwMzMyYjBmOTAyZDQ3ZmZiYjEzYTFmMGFkOWU3NzA4ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjMxMzE3NTUwMzk2NjcsLTczLjkwMjMzNDc0Mjk1ODM2XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2RlZWFmMzJjMTdlMjQwOGM4NzFjMDhiNTlhZDQyZWUwKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2FhMDc5OTMxNjFiNDRhZWZiZTYxOWY3NmJiODAyMGY3ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzU1MjdjOWQxOTA2ZDQ0MzFhOGM2YTRlYjMwZjAyMTY1ID0gJCgnPGRpdiBpZD0iaHRtbF81NTI3YzlkMTkwNmQ0NDMxYThjNmE0ZWIzMGYwMjE2NSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+UGFlcmRlZ2F0IEJhc2luPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hYTA3OTkzMTYxYjQ0YWVmYmU2MTlmNzZiYjgwMjBmNy5zZXRDb250ZW50KGh0bWxfNTUyN2M5ZDE5MDZkNDQzMWE4YzZhNGViMzBmMDIxNjUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMTAzMzJiMGY5MDJkNDdmZmJiMTNhMWYwYWQ5ZTc3MDguYmluZFBvcHVwKHBvcHVwX2FhMDc5OTMxNjFiNDRhZWZiZTYxOWY3NmJiODAyMGY3KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzA2MWI3YzczNjdiYjQ4NTk4YTBhNTQzNDFhNTA1ZWEyID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjE1OTc0MjM5NjIzMzYsLTczLjkxNTE1MzkxNTUwNDA0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2RlZWFmMzJjMTdlMjQwOGM4NzFjMDhiNTlhZDQyZWUwKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2IyN2YyMWFhNjZiNTQyOTg4YTM2MTgyODkxNDVhYjkwID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2UwYzhmZjJmMDg5NDQ0ZmY5MTJkOWJjNDY5Nzk4YjZjID0gJCgnPGRpdiBpZD0iaHRtbF9lMGM4ZmYyZjA4OTQ0NGZmOTEyZDliYzQ2OTc5OGI2YyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+TWlsbCBCYXNpbjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYjI3ZjIxYWE2NmI1NDI5ODhhMzYxODI4OTE0NWFiOTAuc2V0Q29udGVudChodG1sX2UwYzhmZjJmMDg5NDQ0ZmY5MTJkOWJjNDY5Nzk4YjZjKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzA2MWI3YzczNjdiYjQ4NTk4YTBhNTQzNDFhNTA1ZWEyLmJpbmRQb3B1cChwb3B1cF9iMjdmMjFhYTY2YjU0Mjk4OGEzNjE4Mjg5MTQ1YWI5MCk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl82MWQyMmVkMWRhZmI0NmNiOTc1MTk4ZTJjOThjNDA5NCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjcwMzI4MTA5MDkzMDE0LC03My45OTU1MDc1MTg4ODQxNV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kZWVhZjMyYzE3ZTI0MDhjODcxYzA4YjU5YWQ0MmVlMCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8xNzE0ZTNiMDQzZTc0MzhmYWIzYTI5Y2ZjNjg4MzFhMiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9kMmE4YmRkYWZmZWY0NTU4YWNhODA4YWI4NjBhYzlkNCA9ICQoJzxkaXYgaWQ9Imh0bWxfZDJhOGJkZGFmZmVmNDU1OGFjYTgwOGFiODYwYWM5ZDQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPkZ1bHRvbiBGZXJyeTwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMTcxNGUzYjA0M2U3NDM4ZmFiM2EyOWNmYzY4ODMxYTIuc2V0Q29udGVudChodG1sX2QyYThiZGRhZmZlZjQ1NThhY2E4MDhhYjg2MGFjOWQ0KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzYxZDIyZWQxZGFmYjQ2Y2I5NzUxOThlMmM5OGM0MDk0LmJpbmRQb3B1cChwb3B1cF8xNzE0ZTNiMDQzZTc0MzhmYWIzYTI5Y2ZjNjg4MzFhMik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9kMmEzMWRkMDgwOGM0ZjA5OTI1OGYyNjk0ZjBlOTNjNSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjcwMzMyMTQ5ODgyODc0LC03My45ODExMTYwMzU5MjM5M10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kZWVhZjMyYzE3ZTI0MDhjODcxYzA4YjU5YWQ0MmVlMCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81YzIwZjVmNzlhYjA0ZTEzODdlNGViZDU0ZWU0MmVmYSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF80MTJkOWFlN2M4Zjg0OWQxYTczNzlhN2U3NTZkMTNhMiA9ICQoJzxkaXYgaWQ9Imh0bWxfNDEyZDlhZTdjOGY4NDlkMWE3Mzc5YTdlNzU2ZDEzYTIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPlZpbmVnYXIgSGlsbDwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNWMyMGY1Zjc5YWIwNGUxMzg3ZTRlYmQ1NGVlNDJlZmEuc2V0Q29udGVudChodG1sXzQxMmQ5YWU3YzhmODQ5ZDFhNzM3OWE3ZTc1NmQxM2EyKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2QyYTMxZGQwODA4YzRmMDk5MjU4ZjI2OTRmMGU5M2M1LmJpbmRQb3B1cChwb3B1cF81YzIwZjVmNzlhYjA0ZTEzODdlNGViZDU0ZWU0MmVmYSk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl80YTk3MjQ3ZjJiOTA0YTNkYTcxZmE1MWY2MjNlNzlkNiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjY3NTAzOTg2NTAzMjM3LC03My45MzA1MzEwODgxNzMzOF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kZWVhZjMyYzE3ZTI0MDhjODcxYzA4YjU5YWQ0MmVlMCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kNTE5NGJhYzEwZDA0OTExYWRmNTBjYTcyM2JhY2E4MiA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8xYzc3ZDFmM2Y4YWY0ZjY2OWNlODQ2MWZmNDAyNTE4MiA9ICQoJzxkaXYgaWQ9Imh0bWxfMWM3N2QxZjNmOGFmNGY2NjljZTg0NjFmZjQwMjUxODIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPldlZWtzdmlsbGU8L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2Q1MTk0YmFjMTBkMDQ5MTFhZGY1MGNhNzIzYmFjYTgyLnNldENvbnRlbnQoaHRtbF8xYzc3ZDFmM2Y4YWY0ZjY2OWNlODQ2MWZmNDAyNTE4Mik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl80YTk3MjQ3ZjJiOTA0YTNkYTcxZmE1MWY2MjNlNzlkNi5iaW5kUG9wdXAocG9wdXBfZDUxOTRiYWMxMGQwNDkxMWFkZjUwY2E3MjNiYWNhODIpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZmZlZDgxY2MyNzAyNDFmYjlmNDU5YzNkZTA5M2EwNTcgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42Nzc4NjEwNDc2OTUzMSwtNzMuOTAzMzE2ODQ4NTI1OTldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZGVlYWYzMmMxN2UyNDA4Yzg3MWMwOGI1OWFkNDJlZTApOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMTQ2NjliNDk4ZTViNDRmODkzZTIxNGFlMTc4ZjIwODIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfODMyNmY5ZTJhZWExNDViZDllZjVhMTkzNjI5ZmUxMGMgPSAkKCc8ZGl2IGlkPSJodG1sXzgzMjZmOWUyYWVhMTQ1YmQ5ZWY1YTE5MzYyOWZlMTBjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5Ccm9hZHdheSBKdW5jdGlvbjwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMTQ2NjliNDk4ZTViNDRmODkzZTIxNGFlMTc4ZjIwODIuc2V0Q29udGVudChodG1sXzgzMjZmOWUyYWVhMTQ1YmQ5ZWY1YTE5MzYyOWZlMTBjKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2ZmZWQ4MWNjMjcwMjQxZmI5ZjQ1OWMzZGUwOTNhMDU3LmJpbmRQb3B1cChwb3B1cF8xNDY2OWI0OThlNWI0NGY4OTNlMjE0YWUxNzhmMjA4Mik7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9lZDljYjdlY2YxZTc0NWYwYjU4Yjg5ZTc2ZjRlODA1YyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjcwMzE3NjMyODIyNjkyLC03My45ODg3NTI4MDc0NTA0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2RlZWFmMzJjMTdlMjQwOGM4NzFjMDhiNTlhZDQyZWUwKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzIxNTExMmExNjIzMzRiODQ5NTI1ZTIxZmQ1MjZiYmY5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzE0ODVkNGYwN2E0ODQwNzFiMTVjMGVmZThlNDUyNjM0ID0gJCgnPGRpdiBpZD0iaHRtbF8xNDg1ZDRmMDdhNDg0MDcxYjE1YzBlZmU4ZTQ1MjYzNCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+RHVtYm88L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzIxNTExMmExNjIzMzRiODQ5NTI1ZTIxZmQ1MjZiYmY5LnNldENvbnRlbnQoaHRtbF8xNDg1ZDRmMDdhNDg0MDcxYjE1YzBlZmU4ZTQ1MjYzNCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9lZDljYjdlY2YxZTc0NWYwYjU4Yjg5ZTc2ZjRlODA1Yy5iaW5kUG9wdXAocG9wdXBfMjE1MTEyYTE2MjMzNGI4NDk1MjVlMjFmZDUyNmJiZjkpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZGU0NDUxYmI2YzQwNDkxMTk3OGVjOGFkYjk2NmQxYTAgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC41OTg1MjUwOTUxMzcyNTUsLTczLjk1OTE4NDU5NDI4NzAyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2RlZWFmMzJjMTdlMjQwOGM4NzFjMDhiNTlhZDQyZWUwKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzgwNjQ4YWE3MWU5ZTQ2YmJhOTk1N2I4NjBmMzViYTE2ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzUxZDQ5MWFlMDE3NDQ0OTRhZDU2ZmZkZjNhY2I4YmY0ID0gJCgnPGRpdiBpZD0iaHRtbF81MWQ0OTFhZTAxNzQ0NDk0YWQ1NmZmZGYzYWNiOGJmNCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+SG9tZWNyZXN0PC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF84MDY0OGFhNzFlOWU0NmJiYTk5NTdiODYwZjM1YmExNi5zZXRDb250ZW50KGh0bWxfNTFkNDkxYWUwMTc0NDQ5NGFkNTZmZmRmM2FjYjhiZjQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZGU0NDUxYmI2YzQwNDkxMTk3OGVjOGFkYjk2NmQxYTAuYmluZFBvcHVwKHBvcHVwXzgwNjQ4YWE3MWU5ZTQ2YmJhOTk1N2I4NjBmMzViYTE2KTsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzY4MTNlZDhjYTMyNTQ2MDQ4OWQxMTdhMGEwZmY1NjE1ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDAuNjgxOTk4OTM0NTE3MywtNzMuODkwMzQ1NzA5ODcyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogImJsdWUiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICIjMzE4NmNjIiwKICAiZmlsbE9wYWNpdHkiOiAwLjcsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiA1LAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkuYWRkVG8obWFwX2RlZWFmMzJjMTdlMjQwOGM4NzFjMDhiNTlhZDQyZWUwKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzA5MjgxOGM5NmZlYzQ1OTJhZWM0OTZmOGYyMjdmYTk3ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICczMDAnfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2NjMjE1NGJiN2I4ODQ4M2FhZGJlODg2NDJmZGNiNzUzID0gJCgnPGRpdiBpZD0iaHRtbF9jYzIxNTRiYjdiODg0ODNhYWRiZTg4NjQyZmRjYjc1MyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+SGlnaGxhbmQgUGFyazwvZGl2PicpWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMDkyODE4Yzk2ZmVjNDU5MmFlYzQ5NmY4ZjIyN2ZhOTcuc2V0Q29udGVudChodG1sX2NjMjE1NGJiN2I4ODQ4M2FhZGJlODg2NDJmZGNiNzUzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzY4MTNlZDhjYTMyNTQ2MDQ4OWQxMTdhMGEwZmY1NjE1LmJpbmRQb3B1cChwb3B1cF8wOTI4MThjOTZmZWM0NTkyYWVjNDk2ZjhmMjI3ZmE5Nyk7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8wYWNmMTA3MjkzMjk0N2M1YjhkODFjMTdlMjEwYWExMCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQwLjYwOTM3NzcwMTEzNzY2LC03My45NDg0MTUxNTMyODg5M10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJibHVlIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiIzMxODZjYyIsCiAgImZpbGxPcGFjaXR5IjogMC43LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogNSwKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApLmFkZFRvKG1hcF9kZWVhZjMyYzE3ZTI0MDhjODcxYzA4YjU5YWQ0MmVlMCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8wYzIxYTg0NjdhZTA0Y2I5YjE2NzRkNTc4OWFlZjFhNSA9IEwucG9wdXAoe21heFdpZHRoOiAnMzAwJ30pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8zN2UwYTRjNGZiYTQ0ODJhYmU2MjMwNTM4NDZkYjY3MyA9ICQoJzxkaXYgaWQ9Imh0bWxfMzdlMGE0YzRmYmE0NDgyYWJlNjIzMDUzODQ2ZGI2NzMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPk1hZGlzb248L2Rpdj4nKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzBjMjFhODQ2N2FlMDRjYjliMTY3NGQ1Nzg5YWVmMWE1LnNldENvbnRlbnQoaHRtbF8zN2UwYTRjNGZiYTQ0ODJhYmU2MjMwNTM4NDZkYjY3Myk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8wYWNmMTA3MjkzMjk0N2M1YjhkODFjMTdlMjEwYWExMC5iaW5kUG9wdXAocG9wdXBfMGMyMWE4NDY3YWUwNGNiOWIxNjc0ZDU3ODlhZWYxYTUpOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfN2MyMmQwZTM4YTg1NGQ1Njk1MzQ2OWNkOTg2YWU5OTQgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MC42NDY5MjYwNjY1ODU3OSwtNzMuOTQ4MTc3MDk5MjAxODRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAiYmx1ZSIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogIiMzMTg2Y2MiLAogICJmaWxsT3BhY2l0eSI6IDAuNywKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDUsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKS5hZGRUbyhtYXBfZGVlYWYzMmMxN2UyNDA4Yzg3MWMwOGI1OWFkNDJlZTApOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOGZlMjMyOThjNWM5NDY5ZDg2YTQ3NTRkZmMzZDlmYWEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzMwMCd9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfODBkNWNlMWE1ZjYzNGIwNmFiMjRhNGVmMTBkMmM1ZjEgPSAkKCc8ZGl2IGlkPSJodG1sXzgwZDVjZTFhNWY2MzRiMDZhYjI0YTRlZjEwZDJjNWYxIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij5FcmFzbXVzPC9kaXY+JylbMF07CiAgICAgICAgICAgICAgICBwb3B1cF84ZmUyMzI5OGM1Yzk0NjlkODZhNDc1NGRmYzNkOWZhYS5zZXRDb250ZW50KGh0bWxfODBkNWNlMWE1ZjYzNGIwNmFiMjRhNGVmMTBkMmM1ZjEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfN2MyMmQwZTM4YTg1NGQ1Njk1MzQ2OWNkOTg2YWU5OTQuYmluZFBvcHVwKHBvcHVwXzhmZTIzMjk4YzVjOTQ2OWQ4NmE0NzU0ZGZjM2Q5ZmFhKTsKCiAgICAgICAgICAgIAogICAgICAgIAo8L3NjcmlwdD4=\" style=\"position:absolute;width:100%;height:100%;left:0;top:0;border:none !important;\" allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe></div></div>"
],
"text/plain": [
"<folium.folium.Map at 0x7ff1586bac88>"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# create map of Manhattan using latitude and longitude values \n",
"print_map (brooklyn_data, zoom=10) \n"
]
},
{
"cell_type": "code",
"execution_count": 26,
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"<matplotlib.image.AxesImage at 0x7ff158547ba8>"
]
},
"execution_count": 26,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment