Created
September 6, 2019 08:50
-
-
Save vedraiyani/b3c650133810d00cb0f52ffe126d4259 to your computer and use it in GitHub Desktop.
Folium_example.ipynb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"nbformat": 4, | |
"nbformat_minor": 0, | |
"metadata": { | |
"colab": { | |
"name": "Folium_example.ipynb", | |
"version": "0.3.2", | |
"provenance": [], | |
"include_colab_link": true | |
}, | |
"kernelspec": { | |
"name": "python3", | |
"display_name": "Python 3" | |
} | |
}, | |
"cells": [ | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "view-in-github", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"<a href=\"https://colab.research.google.com/gist/vedraiyani/b3c650133810d00cb0f52ffe126d4259/folium_example.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "NLjw5_YCMdSZ", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"[Tutorial can be found here](https://towardsdatascience.com/analysis-of-car-accidents-in-barcelona-using-pandas-matplotlib-and-folium-73384240106b)" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "u4ZX7x01Gr20", | |
"colab_type": "code", | |
"outputId": "e8290299-e7ee-453d-d9c0-8e8cebad6522", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 34 | |
} | |
}, | |
"source": [ | |
"from google.colab import drive\n", | |
"drive.mount('/content/gdrive')" | |
], | |
"execution_count": 3, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"Drive already mounted at /content/gdrive; to attempt to forcibly remount, call drive.mount(\"/content/gdrive\", force_remount=True).\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "KFtBXpi5GrQK", | |
"colab_type": "code", | |
"outputId": "f71f9002-abb1-45b3-e28f-70532f19e7c7", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 306 | |
} | |
}, | |
"source": [ | |
"!ls './gdrive/My Drive/data/barcelona'" | |
], | |
"execution_count": 4, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"accidents_2017.csv\n", | |
"air_quality_Nov2017.csv\n", | |
"air_stations_Nov2017.csv\n", | |
"births.csv\n", | |
"bus_stops.csv\n", | |
"deaths.csv\n", | |
"immigrants_by_nationality.csv\n", | |
"immigrants_emigrants_by_age.csv\n", | |
"immigrants_emigrants_by_destination2.csv\n", | |
"immigrants_emigrants_by_destination.csv\n", | |
"immigrants_emigrants_by_sex.csv\n", | |
"life_expectancy.csv\n", | |
"most_frequent_baby_names.csv\n", | |
"most_frequent_names.csv\n", | |
"population.csv\n", | |
"transports.csv\n", | |
"unemployment.csv\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "i5WIfgJ1GmhD", | |
"colab_type": "code", | |
"colab": {} | |
}, | |
"source": [ | |
"import pandas as pd\n", | |
"\n", | |
"df = pd.read_csv('./gdrive/My Drive/data/barcelona/accidents_2017.csv')" | |
], | |
"execution_count": 0, | |
"outputs": [] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "toJm6Qi2L7iq", | |
"colab_type": "code", | |
"outputId": "02607839-37a2-48ec-e765-95028a973f79", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 255 | |
} | |
}, | |
"source": [ | |
"df.head()" | |
], | |
"execution_count": 0, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"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>Id</th>\n", | |
" <th>District Name</th>\n", | |
" <th>Neighborhood Name</th>\n", | |
" <th>Street</th>\n", | |
" <th>Weekday</th>\n", | |
" <th>Month</th>\n", | |
" <th>Day</th>\n", | |
" <th>Hour</th>\n", | |
" <th>Part of the day</th>\n", | |
" <th>Mild injuries</th>\n", | |
" <th>Serious injuries</th>\n", | |
" <th>Victims</th>\n", | |
" <th>Vehicles involved</th>\n", | |
" <th>Longitude</th>\n", | |
" <th>Latitude</th>\n", | |
" <th>Year</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>2017S008429</td>\n", | |
" <td>Unknown</td>\n", | |
" <td>Unknown</td>\n", | |
" <td>Número 27 ...</td>\n", | |
" <td>Friday</td>\n", | |
" <td>October</td>\n", | |
" <td>13</td>\n", | |
" <td>8</td>\n", | |
" <td>Morning</td>\n", | |
" <td>2</td>\n", | |
" <td>0</td>\n", | |
" <td>2</td>\n", | |
" <td>2</td>\n", | |
" <td>2.125624</td>\n", | |
" <td>41.340045</td>\n", | |
" <td>2017</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>2017S007316</td>\n", | |
" <td>Unknown</td>\n", | |
" <td>Unknown</td>\n", | |
" <td>Número 3 Zona Franca / Número 50 Zona Franca ...</td>\n", | |
" <td>Friday</td>\n", | |
" <td>September</td>\n", | |
" <td>1</td>\n", | |
" <td>13</td>\n", | |
" <td>Morning</td>\n", | |
" <td>2</td>\n", | |
" <td>0</td>\n", | |
" <td>2</td>\n", | |
" <td>2</td>\n", | |
" <td>2.120452</td>\n", | |
" <td>41.339426</td>\n", | |
" <td>2017</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>2017S010210</td>\n", | |
" <td>Unknown</td>\n", | |
" <td>Unknown</td>\n", | |
" <td>Litoral (Besòs) ...</td>\n", | |
" <td>Friday</td>\n", | |
" <td>December</td>\n", | |
" <td>8</td>\n", | |
" <td>21</td>\n", | |
" <td>Afternoon</td>\n", | |
" <td>5</td>\n", | |
" <td>0</td>\n", | |
" <td>5</td>\n", | |
" <td>2</td>\n", | |
" <td>2.167356</td>\n", | |
" <td>41.360885</td>\n", | |
" <td>2017</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>2017S006364</td>\n", | |
" <td>Unknown</td>\n", | |
" <td>Unknown</td>\n", | |
" <td>Número 3 Zona Franca ...</td>\n", | |
" <td>Friday</td>\n", | |
" <td>July</td>\n", | |
" <td>21</td>\n", | |
" <td>2</td>\n", | |
" <td>Night</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>2</td>\n", | |
" <td>2.124529</td>\n", | |
" <td>41.337668</td>\n", | |
" <td>2017</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>2017S004615</td>\n", | |
" <td>Sant Martí</td>\n", | |
" <td>el Camp de l'Arpa del Clot</td>\n", | |
" <td>Las Navas de Tolosa ...</td>\n", | |
" <td>Thursday</td>\n", | |
" <td>May</td>\n", | |
" <td>25</td>\n", | |
" <td>14</td>\n", | |
" <td>Afternoon</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>3</td>\n", | |
" <td>2.185272</td>\n", | |
" <td>41.416365</td>\n", | |
" <td>2017</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" Id District Name ... Latitude Year\n", | |
"0 2017S008429 Unknown ... 41.340045 2017\n", | |
"1 2017S007316 Unknown ... 41.339426 2017\n", | |
"2 2017S010210 Unknown ... 41.360885 2017\n", | |
"3 2017S006364 Unknown ... 41.337668 2017\n", | |
"4 2017S004615 Sant Martí ... 41.416365 2017\n", | |
"\n", | |
"[5 rows x 16 columns]" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 19 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "LgCXWEUFWuCN", | |
"colab_type": "code", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 357 | |
}, | |
"outputId": "b5aaac3b-f1c0-4545-f0cd-46db7bd5569d" | |
}, | |
"source": [ | |
"# List of columns names\n", | |
"list(df.columns)\n", | |
"# ['Id','District Name','Neighborhood Name','Street','Weekday','Month','Day','Hour','Part of the day','Mild injuries','Serious injuries','Victims','Vehicles involved','Longitude','Latitude']\n", | |
"\n", | |
"# Dataframe info : column name and types, null values, and memory usage.\n", | |
"df.info()" | |
], | |
"execution_count": 7, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"<class 'pandas.core.frame.DataFrame'>\n", | |
"RangeIndex: 10339 entries, 0 to 10338\n", | |
"Data columns (total 15 columns):\n", | |
"Id 10339 non-null object\n", | |
"District Name 10339 non-null object\n", | |
"Neighborhood Name 10339 non-null object\n", | |
"Street 10339 non-null object\n", | |
"Weekday 10339 non-null object\n", | |
"Month 10339 non-null object\n", | |
"Day 10339 non-null int64\n", | |
"Hour 10339 non-null int64\n", | |
"Part of the day 10339 non-null object\n", | |
"Mild injuries 10339 non-null int64\n", | |
"Serious injuries 10339 non-null int64\n", | |
"Victims 10339 non-null int64\n", | |
"Vehicles involved 10339 non-null int64\n", | |
"Longitude 10339 non-null float64\n", | |
"Latitude 10339 non-null float64\n", | |
"dtypes: float64(2), int64(6), object(7)\n", | |
"memory usage: 1.2+ MB\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "I_GOAU7BWuyZ", | |
"colab_type": "code", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 357 | |
}, | |
"outputId": "4ca721e8-a2b4-4f4c-c2ab-5fde83eada24" | |
}, | |
"source": [ | |
"import numpy as np\n", | |
"\n", | |
"# Apparently, there are not null values.\n", | |
"df.isnull().sum().any()\n", | |
"# False\n", | |
"# meaning there are not null values.\n", | |
"\n", | |
"# replace Unknown with n.a\n", | |
"df.replace('Unknown',np.nan, inplace=True)\n", | |
"\n", | |
"# Now, There are null values\n", | |
"df.isnull().sum().any()\n", | |
"# True\n", | |
"\n", | |
"# Access number of null values using the .info() method.\n", | |
"df.info()" | |
], | |
"execution_count": 8, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"<class 'pandas.core.frame.DataFrame'>\n", | |
"RangeIndex: 10339 entries, 0 to 10338\n", | |
"Data columns (total 15 columns):\n", | |
"Id 10339 non-null object\n", | |
"District Name 10312 non-null object\n", | |
"Neighborhood Name 10312 non-null object\n", | |
"Street 10339 non-null object\n", | |
"Weekday 10339 non-null object\n", | |
"Month 10339 non-null object\n", | |
"Day 10339 non-null int64\n", | |
"Hour 10339 non-null int64\n", | |
"Part of the day 10339 non-null object\n", | |
"Mild injuries 10339 non-null int64\n", | |
"Serious injuries 10339 non-null int64\n", | |
"Victims 10339 non-null int64\n", | |
"Vehicles involved 10339 non-null int64\n", | |
"Longitude 10339 non-null float64\n", | |
"Latitude 10339 non-null float64\n", | |
"dtypes: float64(2), int64(6), object(7)\n", | |
"memory usage: 1.2+ MB\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "VzwbpOm0W7yN", | |
"colab_type": "code", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 85 | |
}, | |
"outputId": "7d369620-742c-4c7f-9ec7-02d11bd2f314" | |
}, | |
"source": [ | |
"# Drop unnecessary columns.\n", | |
"df.drop(['District Name','Neighborhood Name','Part of the day'],axis=1 ,inplace=True)\n", | |
"\n", | |
"# Columns after dropping.\n", | |
"df.columns\n", | |
"# 'Id', 'Street', 'Weekday', 'Month', 'Day', 'Hour', 'Mild injuries','Serious injuries', 'Victims', 'Vehicles involved', 'Longitude','Latitude'" | |
], | |
"execution_count": 9, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"Index(['Id', 'Street', 'Weekday', 'Month', 'Day', 'Hour', 'Mild injuries',\n", | |
" 'Serious injuries', 'Victims', 'Vehicles involved', 'Longitude',\n", | |
" 'Latitude'],\n", | |
" dtype='object')" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 9 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "TScJxxtfXKW9", | |
"colab_type": "code", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 204 | |
}, | |
"outputId": "39b3aa3b-8708-40d6-e1be-2d6984c9150b" | |
}, | |
"source": [ | |
"# Change columns names. Replace spaces by underscores and upper case letters by lower case letters.\n", | |
"df.rename(columns=lambda x:x.replace(' ','_').lower(), inplace=True)\n", | |
"\n", | |
"# New column names\n", | |
"df.columns\n", | |
"# Index(['id', 'street', 'weekday', 'month', 'day', 'hour', 'mild_injuries','serious_injuries', 'victims', 'vehicles_involved', 'longitude','latitude'],dtype='object')\n", | |
"\n", | |
"# Add a column with the year in this case 2017\n", | |
"df['year'] = np.repeat(2017,df.shape[0])\n", | |
"\n", | |
"# first rows after adding the year\n", | |
"df.head()" | |
], | |
"execution_count": 10, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"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>id</th>\n", | |
" <th>street</th>\n", | |
" <th>weekday</th>\n", | |
" <th>month</th>\n", | |
" <th>day</th>\n", | |
" <th>hour</th>\n", | |
" <th>mild_injuries</th>\n", | |
" <th>serious_injuries</th>\n", | |
" <th>victims</th>\n", | |
" <th>vehicles_involved</th>\n", | |
" <th>longitude</th>\n", | |
" <th>latitude</th>\n", | |
" <th>year</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>2017S008429</td>\n", | |
" <td>Número 27 ...</td>\n", | |
" <td>Friday</td>\n", | |
" <td>October</td>\n", | |
" <td>13</td>\n", | |
" <td>8</td>\n", | |
" <td>2</td>\n", | |
" <td>0</td>\n", | |
" <td>2</td>\n", | |
" <td>2</td>\n", | |
" <td>2.125624</td>\n", | |
" <td>41.340045</td>\n", | |
" <td>2017</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>2017S007316</td>\n", | |
" <td>Número 3 Zona Franca / Número 50 Zona Franca ...</td>\n", | |
" <td>Friday</td>\n", | |
" <td>September</td>\n", | |
" <td>1</td>\n", | |
" <td>13</td>\n", | |
" <td>2</td>\n", | |
" <td>0</td>\n", | |
" <td>2</td>\n", | |
" <td>2</td>\n", | |
" <td>2.120452</td>\n", | |
" <td>41.339426</td>\n", | |
" <td>2017</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>2017S010210</td>\n", | |
" <td>Litoral (Besòs) ...</td>\n", | |
" <td>Friday</td>\n", | |
" <td>December</td>\n", | |
" <td>8</td>\n", | |
" <td>21</td>\n", | |
" <td>5</td>\n", | |
" <td>0</td>\n", | |
" <td>5</td>\n", | |
" <td>2</td>\n", | |
" <td>2.167356</td>\n", | |
" <td>41.360885</td>\n", | |
" <td>2017</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>2017S006364</td>\n", | |
" <td>Número 3 Zona Franca ...</td>\n", | |
" <td>Friday</td>\n", | |
" <td>July</td>\n", | |
" <td>21</td>\n", | |
" <td>2</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>2</td>\n", | |
" <td>2.124529</td>\n", | |
" <td>41.337668</td>\n", | |
" <td>2017</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>2017S004615</td>\n", | |
" <td>Las Navas de Tolosa ...</td>\n", | |
" <td>Thursday</td>\n", | |
" <td>May</td>\n", | |
" <td>25</td>\n", | |
" <td>14</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>3</td>\n", | |
" <td>2.185272</td>\n", | |
" <td>41.416365</td>\n", | |
" <td>2017</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" id ... year\n", | |
"0 2017S008429 ... 2017\n", | |
"1 2017S007316 ... 2017\n", | |
"2 2017S010210 ... 2017\n", | |
"3 2017S006364 ... 2017\n", | |
"4 2017S004615 ... 2017\n", | |
"\n", | |
"[5 rows x 13 columns]" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 10 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "BScVddipXRr9", | |
"colab_type": "code", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 34 | |
}, | |
"outputId": "c9fc1e4e-43c1-4776-d67c-1f3922c3fe41" | |
}, | |
"source": [ | |
"# Obtain month names \n", | |
"list(df.month.unique())\n", | |
"# ['October','September','December','July','May','June','January','April','March','November','February','August']\n", | |
"\n", | |
"# Month names to int\n", | |
"month_to_int = {'January':1,'February':2,'March':3,'April':4,'May':5,'June':6,'July':7,'August':8,'September':9,'October':10,'November':11,'December':12}\n", | |
"# Convert month names into numbers\n", | |
"df['month'].replace(month_to_int,inplace=True)\n", | |
"\n", | |
"# Obtain new month names\n", | |
"list(df.month.unique())\n", | |
"# [10, 9, 12, 7, 5, 6, 1, 4, 3, 11, 2, 8]" | |
], | |
"execution_count": 11, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"[10, 9, 12, 7, 5, 6, 1, 4, 3, 11, 2, 8]" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 11 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "4wjszkytXT6y", | |
"colab_type": "code", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 289 | |
}, | |
"outputId": "aa24261c-bb1f-412b-e971-36c736eb97e5" | |
}, | |
"source": [ | |
"# Combine columns month day hour and year to create a single datetime column.\n", | |
"df['date']=pd.to_datetime(df[['year', 'month', 'day','hour']])\n", | |
"\n", | |
"# Observe the first 5 columns.\n", | |
"df.head()" | |
], | |
"execution_count": 14, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"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>id</th>\n", | |
" <th>street</th>\n", | |
" <th>weekday</th>\n", | |
" <th>month</th>\n", | |
" <th>day</th>\n", | |
" <th>hour</th>\n", | |
" <th>mild_injuries</th>\n", | |
" <th>serious_injuries</th>\n", | |
" <th>victims</th>\n", | |
" <th>vehicles_involved</th>\n", | |
" <th>longitude</th>\n", | |
" <th>latitude</th>\n", | |
" <th>year</th>\n", | |
" <th>date</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>2017S008429</td>\n", | |
" <td>Número 27 ...</td>\n", | |
" <td>Friday</td>\n", | |
" <td>10</td>\n", | |
" <td>13</td>\n", | |
" <td>8</td>\n", | |
" <td>2</td>\n", | |
" <td>0</td>\n", | |
" <td>2</td>\n", | |
" <td>2</td>\n", | |
" <td>2.125624</td>\n", | |
" <td>41.340045</td>\n", | |
" <td>2017</td>\n", | |
" <td>2017-10-13 08:00:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>2017S007316</td>\n", | |
" <td>Número 3 Zona Franca / Número 50 Zona Franca ...</td>\n", | |
" <td>Friday</td>\n", | |
" <td>9</td>\n", | |
" <td>1</td>\n", | |
" <td>13</td>\n", | |
" <td>2</td>\n", | |
" <td>0</td>\n", | |
" <td>2</td>\n", | |
" <td>2</td>\n", | |
" <td>2.120452</td>\n", | |
" <td>41.339426</td>\n", | |
" <td>2017</td>\n", | |
" <td>2017-09-01 13:00:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>2017S010210</td>\n", | |
" <td>Litoral (Besòs) ...</td>\n", | |
" <td>Friday</td>\n", | |
" <td>12</td>\n", | |
" <td>8</td>\n", | |
" <td>21</td>\n", | |
" <td>5</td>\n", | |
" <td>0</td>\n", | |
" <td>5</td>\n", | |
" <td>2</td>\n", | |
" <td>2.167356</td>\n", | |
" <td>41.360885</td>\n", | |
" <td>2017</td>\n", | |
" <td>2017-12-08 21:00:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>2017S006364</td>\n", | |
" <td>Número 3 Zona Franca ...</td>\n", | |
" <td>Friday</td>\n", | |
" <td>7</td>\n", | |
" <td>21</td>\n", | |
" <td>2</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>2</td>\n", | |
" <td>2.124529</td>\n", | |
" <td>41.337668</td>\n", | |
" <td>2017</td>\n", | |
" <td>2017-07-21 02:00:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>2017S004615</td>\n", | |
" <td>Las Navas de Tolosa ...</td>\n", | |
" <td>Thursday</td>\n", | |
" <td>5</td>\n", | |
" <td>25</td>\n", | |
" <td>14</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>3</td>\n", | |
" <td>2.185272</td>\n", | |
" <td>41.416365</td>\n", | |
" <td>2017</td>\n", | |
" <td>2017-05-25 14:00:00</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" id ... date\n", | |
"0 2017S008429 ... 2017-10-13 08:00:00\n", | |
"1 2017S007316 ... 2017-09-01 13:00:00\n", | |
"2 2017S010210 ... 2017-12-08 21:00:00\n", | |
"3 2017S006364 ... 2017-07-21 02:00:00\n", | |
"4 2017S004615 ... 2017-05-25 14:00:00\n", | |
"\n", | |
"[5 rows x 14 columns]" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 14 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "tfiftpLCXaQV", | |
"colab_type": "code", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 34 | |
}, | |
"outputId": "33bdf03a-9b9d-49f7-c9b2-497d37e5635a" | |
}, | |
"source": [ | |
"# Check the datatype of the date column\n", | |
"df.date.dtypes\n", | |
"# dtype('<M8[ns]')" | |
], | |
"execution_count": 15, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"dtype('<M8[ns]')" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 15 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "Ea0AYESZXbzB", | |
"colab_type": "code", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 119 | |
}, | |
"outputId": "9d396230-98bc-47c2-ca32-02425874623a" | |
}, | |
"source": [ | |
"# Extract the year\n", | |
"df['date'].dt.year\n", | |
"\n", | |
"# Extract the month\n", | |
"df['date'].dt.month\n", | |
"\n", | |
"# Extract the day\n", | |
"df['date'].dt.day\n", | |
"\n", | |
"# Extract the hour\n", | |
"df['date'].dt.hour\n", | |
"\n", | |
"# Extract the day of the week\n", | |
"df['date'].dt.dayofweek\n", | |
"\n", | |
"# Day of the week - first five elements of the returned serie.\n", | |
"df['date'].dt.dayofweek.head()" | |
], | |
"execution_count": 17, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"0 4\n", | |
"1 4\n", | |
"2 4\n", | |
"3 4\n", | |
"4 3\n", | |
"Name: date, dtype: int64" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 17 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "0eXIpxtNXrio", | |
"colab_type": "code", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 170 | |
}, | |
"outputId": "a27db045-7fca-4089-d3ac-3e2f5d3e29ca" | |
}, | |
"source": [ | |
"# Drop columns hour, day, month, year, weekday\n", | |
"df.drop(['hour','day','month','year','weekday'], axis=1, inplace=True)\n", | |
"\n", | |
"# Dataframe columns\n", | |
"list(df.columns)\n", | |
"# ['id','street','mild_injuries','serious_injuries','victims','vehicles_involved','longitude','latitude','date']" | |
], | |
"execution_count": 18, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"['id',\n", | |
" 'street',\n", | |
" 'mild_injuries',\n", | |
" 'serious_injuries',\n", | |
" 'victims',\n", | |
" 'vehicles_involved',\n", | |
" 'longitude',\n", | |
" 'latitude',\n", | |
" 'date']" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 18 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "PezZd7mkXvvH", | |
"colab_type": "code", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 204 | |
}, | |
"outputId": "502aced8-3d63-44e1-9e72-1bc3863aa961" | |
}, | |
"source": [ | |
"# Drop the street column\n", | |
"df.drop(['street'], axis=1, inplace=True)\n", | |
"\n", | |
"# First 5 rows of the dataframe\n", | |
"df.head()" | |
], | |
"execution_count": 19, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"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>id</th>\n", | |
" <th>mild_injuries</th>\n", | |
" <th>serious_injuries</th>\n", | |
" <th>victims</th>\n", | |
" <th>vehicles_involved</th>\n", | |
" <th>longitude</th>\n", | |
" <th>latitude</th>\n", | |
" <th>date</th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>0</th>\n", | |
" <td>2017S008429</td>\n", | |
" <td>2</td>\n", | |
" <td>0</td>\n", | |
" <td>2</td>\n", | |
" <td>2</td>\n", | |
" <td>2.125624</td>\n", | |
" <td>41.340045</td>\n", | |
" <td>2017-10-13 08:00:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>1</th>\n", | |
" <td>2017S007316</td>\n", | |
" <td>2</td>\n", | |
" <td>0</td>\n", | |
" <td>2</td>\n", | |
" <td>2</td>\n", | |
" <td>2.120452</td>\n", | |
" <td>41.339426</td>\n", | |
" <td>2017-09-01 13:00:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2</th>\n", | |
" <td>2017S010210</td>\n", | |
" <td>5</td>\n", | |
" <td>0</td>\n", | |
" <td>5</td>\n", | |
" <td>2</td>\n", | |
" <td>2.167356</td>\n", | |
" <td>41.360885</td>\n", | |
" <td>2017-12-08 21:00:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>3</th>\n", | |
" <td>2017S006364</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>2</td>\n", | |
" <td>2.124529</td>\n", | |
" <td>41.337668</td>\n", | |
" <td>2017-07-21 02:00:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>4</th>\n", | |
" <td>2017S004615</td>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>3</td>\n", | |
" <td>2.185272</td>\n", | |
" <td>41.416365</td>\n", | |
" <td>2017-05-25 14:00:00</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" id mild_injuries ... latitude date\n", | |
"0 2017S008429 2 ... 41.340045 2017-10-13 08:00:00\n", | |
"1 2017S007316 2 ... 41.339426 2017-09-01 13:00:00\n", | |
"2 2017S010210 5 ... 41.360885 2017-12-08 21:00:00\n", | |
"3 2017S006364 1 ... 41.337668 2017-07-21 02:00:00\n", | |
"4 2017S004615 1 ... 41.416365 2017-05-25 14:00:00\n", | |
"\n", | |
"[5 rows x 8 columns]" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 19 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "EndSrGg-XxmE", | |
"colab_type": "code", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 153 | |
}, | |
"outputId": "db2a4778-ed1d-4672-aa9e-f5b967cb05ed" | |
}, | |
"source": [ | |
"# We have noticed that id has spaces at the end of the string\n", | |
"df.id.loc[0]\n", | |
"# '2017S008429 '\n", | |
"\n", | |
"# We remove the spaces in the entries of id \n", | |
"df.id = df.id.apply(lambda x: x.strip())\n", | |
"\n", | |
"# We have removed the spaces successfully\n", | |
"df.id.loc[0]\n", | |
"# '2017S008429'\n", | |
"\n", | |
"# We can set id as the index of the dataframe\n", | |
"df.set_index('id', inplace=True)\n", | |
"\n", | |
"# Now we can easily access information about an accident using its id.\n", | |
"df.loc['2017S008429']" | |
], | |
"execution_count": 20, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"mild_injuries 2\n", | |
"serious_injuries 0\n", | |
"victims 2\n", | |
"vehicles_involved 2\n", | |
"longitude 2.12562\n", | |
"latitude 41.34\n", | |
"date 2017-10-13 08:00:00\n", | |
"Name: 2017S008429, dtype: object" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 20 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "FOQeBNqVXzia", | |
"colab_type": "code", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 359 | |
}, | |
"outputId": "88b04f7f-5bde-4d0b-dc62-fccd31e8d7b0" | |
}, | |
"source": [ | |
"# Assess whether or not the dataframe contains duplicated rows.\n", | |
"df.duplicated().sum()\n", | |
"# 9\n", | |
"\n", | |
"# Print duplicated rows.\n", | |
"df[df.duplicated()]" | |
], | |
"execution_count": 22, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"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>mild_injuries</th>\n", | |
" <th>serious_injuries</th>\n", | |
" <th>victims</th>\n", | |
" <th>vehicles_involved</th>\n", | |
" <th>longitude</th>\n", | |
" <th>latitude</th>\n", | |
" <th>date</th>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>id</th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" <th></th>\n", | |
" </tr>\n", | |
" </thead>\n", | |
" <tbody>\n", | |
" <tr>\n", | |
" <th>2017S006811</th>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>2</td>\n", | |
" <td>2.147915</td>\n", | |
" <td>41.393601</td>\n", | |
" <td>2017-08-07 10:00:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2017S003575</th>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>2</td>\n", | |
" <td>2.194670</td>\n", | |
" <td>41.412827</td>\n", | |
" <td>2017-04-21 10:00:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2017S003286</th>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>2.136744</td>\n", | |
" <td>41.357598</td>\n", | |
" <td>2017-04-10 13:00:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2017S008856</th>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>2.203962</td>\n", | |
" <td>41.407568</td>\n", | |
" <td>2017-10-26 08:00:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2017S003750</th>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>2.168836</td>\n", | |
" <td>41.386306</td>\n", | |
" <td>2017-04-27 16:00:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2017S001504</th>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>2</td>\n", | |
" <td>2.139400</td>\n", | |
" <td>41.418656</td>\n", | |
" <td>2017-02-23 14:00:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2017S004447</th>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>2.209813</td>\n", | |
" <td>41.402218</td>\n", | |
" <td>2017-05-19 20:00:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2017S005606</th>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>3</td>\n", | |
" <td>2.189016</td>\n", | |
" <td>41.383396</td>\n", | |
" <td>2017-06-27 17:00:00</td>\n", | |
" </tr>\n", | |
" <tr>\n", | |
" <th>2017S003201</th>\n", | |
" <td>1</td>\n", | |
" <td>0</td>\n", | |
" <td>1</td>\n", | |
" <td>1</td>\n", | |
" <td>2.168349</td>\n", | |
" <td>41.430413</td>\n", | |
" <td>2017-04-06 19:00:00</td>\n", | |
" </tr>\n", | |
" </tbody>\n", | |
"</table>\n", | |
"</div>" | |
], | |
"text/plain": [ | |
" mild_injuries serious_injuries ... latitude date\n", | |
"id ... \n", | |
"2017S006811 1 0 ... 41.393601 2017-08-07 10:00:00\n", | |
"2017S003575 1 0 ... 41.412827 2017-04-21 10:00:00\n", | |
"2017S003286 1 0 ... 41.357598 2017-04-10 13:00:00\n", | |
"2017S008856 1 0 ... 41.407568 2017-10-26 08:00:00\n", | |
"2017S003750 1 0 ... 41.386306 2017-04-27 16:00:00\n", | |
"2017S001504 1 0 ... 41.418656 2017-02-23 14:00:00\n", | |
"2017S004447 1 0 ... 41.402218 2017-05-19 20:00:00\n", | |
"2017S005606 1 0 ... 41.383396 2017-06-27 17:00:00\n", | |
"2017S003201 1 0 ... 41.430413 2017-04-06 19:00:00\n", | |
"\n", | |
"[9 rows x 7 columns]" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 22 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "K7B5h-XNX15T", | |
"colab_type": "code", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 34 | |
}, | |
"outputId": "5bbb8cf9-0533-4198-dbc6-145b966c5046" | |
}, | |
"source": [ | |
"# Shape of the dataframe before removing duplicated columns\n", | |
"df.shape\n", | |
"# (10339, 7)\n", | |
"\n", | |
"# Drop duplicates.\n", | |
"df.drop_duplicates(inplace=True)\n", | |
"\n", | |
"# Shape after dropping duplicates.\n", | |
"df.shape\n", | |
"#(10330, 7)" | |
], | |
"execution_count": 23, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"(10330, 7)" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 23 | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "5E9Ycd_9X5t_", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"#**Answering questions and drawing conclusions**" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "Z-lYg8lsX3hm", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"##Time analysis" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "lSNzPpQoYgvN", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"###How many accidents were registered by the police in Barcelona in 2017?" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "UUG6IBgXX1Ct", | |
"colab_type": "code", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 34 | |
}, | |
"outputId": "2fb7efa9-2a63-49a2-d0d8-1cbcff6dc1e0" | |
}, | |
"source": [ | |
"print('Total number of accidents in 2017 :{}'.format(df.shape[0]))\n", | |
"# Total number of accidents in 2017 :10330" | |
], | |
"execution_count": 24, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"Total number of accidents in 2017 :10330\n" | |
], | |
"name": "stdout" | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "QJWuN9pFZmo0", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"###Distribution of car accidents per month" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "mrLXG5oAZkxM", | |
"colab_type": "code", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 238 | |
}, | |
"outputId": "d083975f-559f-4eab-8c6e-d8ec6a52951b" | |
}, | |
"source": [ | |
"import calendar\n", | |
"# Number of accident per month\n", | |
"accidents_month = df.groupby(df['date'].dt.month).count().date\n", | |
"\n", | |
"# Replace the month integers by month names.\n", | |
"accidents_month.index=[calendar.month_name[x] for x in range(1,13)]\n", | |
"\n", | |
"accidents_month" | |
], | |
"execution_count": 45, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"January 844\n", | |
"February 823\n", | |
"March 935\n", | |
"April 841\n", | |
"May 962\n", | |
"June 907\n", | |
"July 918\n", | |
"August 651\n", | |
"September 769\n", | |
"October 927\n", | |
"November 991\n", | |
"December 762\n", | |
"Name: date, dtype: int64" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 45 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "LMhXaGeyZpvm", | |
"colab_type": "code", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 513 | |
}, | |
"outputId": "8322175a-e0c4-4f97-d1ac-5fec6d89e23a" | |
}, | |
"source": [ | |
"import matplotlib.pyplot as plt\n", | |
"% matplotlib inline\n", | |
"plt.style.use('ggplot')\n", | |
"\n", | |
"# plot accidents per month\n", | |
"accidents_month.plot(kind='bar',figsize=(12,7), color='blue', alpha=0.5)\n", | |
"\n", | |
"# title and x,y labels\n", | |
"plt.title('Accidents in Barcelona in 2017', fontsize=20)\n", | |
"plt.xlabel('Month',fontsize=16)\n", | |
"plt.ylabel('Number of accidents',fontsize=16);" | |
], | |
"execution_count": 26, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "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\nf3jNE7p3766tW7fq66+/drw/Xn75ZaWnpysxMbHcBdx7772nxYsXV3g8Z0+GrMz7pPT90LlzZ8dv\nS6qi9DjO3j+SdPz48TLbVUVRUZFmzpyphg0baufOneVC/1dffVXlY3va3LlzNW3aNLVr107r1q1z\nfKj291q3bq2UlBR999136tKlS5l1RUVFOnz4sKxWq6Kjo91W2+7du5WSkqLmzZvzIU1APFkTqLUW\nL16sgoICdenSRRMmTHD6FRERoaSkJB0+fFiS9Ic//EFhYWH65ptvLjp9YGW2rcg111wjSdq0aVO5\ndT/++KN++eWXcst79OihzMxM7du3r0rndIWvr68k1+48N2jQQLfddps++OADxcbG6ocfftDevXs9\nVps7lQ5r+O1TFb///ntJ52dA+T1nP6eLqVu3rtq1a6eTJ086HQryW0FBQWrbtq327dtXrQut1q1b\ny2azac+ePU7vem/YsEHS/73/qiItLU1ZWVnq1atXuRCem5tbrQsJT3rhhRc0bdo0derUSRs2bKgw\nhEvnh/BI0po1a8qt27x5s/Lz89WrVy+3XnS+8cYbkqSJEyc6vbADLjcEcaCWKp07/LXXXtPChQud\nfv3lL39xPHVTOh9Ap0yZol9//VX33HNPuV+rl46/ruy2FRkzZozq1KmjhIQEHTlyxLG8pKRE06dP\nd/rY7WnTpkk6Pye6swuAvLw8bd++/SKvzoXVq1dPFotFP//8c7l1586d09atW8stLywsdIRHm81W\nrfPXhCNHjujDDz+UJMf4cUmOJ3D+fk7ptWvXOt4nlfXAAw9IOj8f9O+HOZSUlDjuUEvSQw89pIKC\nAo0fP95piM7MzLxoyPXz89OYMWOUk5Ojf/zjH2XW/fDDD5o3b57q1KmjsWPHVqkf6fwFmM1m044d\nO5Sbm+tYXlhYqAcffFBpaWlVPranPPPMM5oxY4a6dOmidevWKTw8/ILbDx8+XOHh4VqyZEmZud7P\nnj2rv//975LOT3XpLnl5efrPf/4jq9Wq8ePHu+24QG3G0BSgFtq4caO+++47tW/f3ukH6EpNmDBB\nzz33nBITE/XUU0/JarXqySef1H//+1+tXLlSrVq10uDBgxUcHKxffvlFn3/+uV588UXHkIXKbOtM\nVFSU4uPj9fDDD6tz584aOXKkQkNDtXbtWmVlZalDhw765ptvyuzTr18/xcfH67HHHlPLli01cOBA\n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\nAAAAADNcEkE8PDxchw4d0rlz52QYhr799ls1adJEbdu21fbt2yVJGzduVNeuXSVJXbp00caNGyVJ\n27dvV9u2bWWxWMwqHwAAAKi0S2JoSsuWLdWjRw89+uij8vX1VVRUlOLi4nTNNddo7ty5WrJkiZo3\nb67Y2FhJUmxsrObPn6/7779fQUFBmjp1qskdAAAAAJVzSQRxSRoxYoRGjBhRZllkZKRmzZpVbls/\nPz899NBDNVUaAAAA4HaXxNAUAAAA4HJDEAcAAABMQBAHAAAATEAQBwAAAExAEAcAAABMQBAHAAAA\nTHDJTF8IAAAuDbNnV/Ux6b5VesT6ww/XjsekA+7GHXEAAADABNwRBwAAQK3gbb+t4Y44AAAAYAKC\nOAAAAGACgjgAAABgAoI4AAAAYAKCOAAAAGACgjgAAABgApemLywpKZFhGPL19XUs2717t3755Re1\na9dOzZs391iBAAAAgDdyKYi/8sorqlOnju677z5J0ueff6633npLkuTr66sZM2aoQ4cOnqsSAAAA\n8DIuDU05dOiQOnfu7Ph+5cqVio2N1aJFi3Tttdfqo48+8liBAAAAgDdyKYhnZ2fLbrdLkk6cOKFT\np05pwIABCgwMVN++ffXzzz97tEgAAADA27gUxG02m3Jyzj/ic9++fQoODtaVV155/gA+PiooKPBc\nhQAAAIAXcmmMeKtWrfTxxx/L19dXq1evLjNM5cSJE6pfv77HCgQAAAC8kUt3xO+8807l5OTon//8\npwoKCnT77bc71m3btk2tWrXyWIEAAACAN3LpjvgVV1yhefPmKScnR8HBwWXW3X333QoLC/NIcQAA\nAIC3cumO+GuvvaZTp06VC+GSFBgYqHfeecfthQEAAADezKUgvmnTJp05c8bpupycHG3atMmtRQEA\nAADertqPuM/KypKfn587agEAAAAuGxWOEf/666/19ddfO75funRpuaEpBQUFOnDggKKjoz1XIQAA\nAOCFKgziaWlpOnDggOP7I0eOyGotu3mdOnXUunVrjR492nMVAgAAAF6owiA+cOBADRw4UJJ07733\navr06YqKiqqpugAAAACv5tL0ha+++qqn6wAAAAAuKy4FcUkqKSnR999/r7S0NBUWFpZb36dPH7cW\nBgAAAHgzl4L40aNH9eKLL+rEiRMVbkMQBwAAAFznUhBfuHChiouLNW3aNDVr1kx16tTxdF0AAACA\n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\nnZk9ezY4jkNUVBTc3NxYx+k2P/dhSt+L8IqKCpw+fRrV1dVoaWnhj+v7+7btKs2AAQM6XZrRxcVF\n74twAPj+++8REBCAwsJC3Lp1CxMnTkRSUhK+/PJL1tEEkZycjJiYGMTHxwNo7cm9c+cO41TCSUhI\nwLRp05CYmAig9f26YzrQoXsAABnDSURBVMcOnSrkuoLGxx4V4gKQSqVwdHSEQqGAjY0N6zjdQiqV\nQiKRiGKG6lWOHDmCSZMmwcLCAkDriiNnzpzBlClTGCfrGqlUiv379/O/KMWosrISR44cQXl5OdRq\nNX9cDDejbtu2DWPHjsWYMWNEcxMxABw+fPhnz+v7B402ba/Z9evXER4ejhEjRuBf//oX41TCevn3\nnpjepyqVSqtdCqDx6RN9GB8V4gJpaGjAokWLMHjwYK0+uaVLlzJMJSxTU1NER0fD09NTa4wzZsxg\nmEo4N2/exKeffso/t7S0xI0bN/S+EAcADw8PZGdnw9/fX1QrbrTZs2cPIiMjcfDgQaxYsQKpqamd\nrhSjj6RSKT788EPWMQQnlkL7dXr37o3ExETk5eVh0qRJUKvVonlvAkCfPn1QVFQEiUSC5uZmnDt3\nTlRL21pZWaGqqor/uZmdnY1evXoxTiUcGh97VIgLJCoqinWEbufn5wc/Pz/WMboNx3FQq9UwMjIC\n0PpJuv3sqj5rW8FBKpXC2NiYXyP94MGDrKMJQqVSYdiwYdBoNLC1tUVkZCSWLl0qin+XPj4+SElJ\ngZ+fH//eBMSzBvyVK1c6PR4aGvqOk3SPhQsX4ubNm/j4449hYWGB2tpa0ayiBQCff/45kpOTUVNT\ng9mzZ8PLywszZ85kHUswM2fORGJiIh4+fIjZs2fDzs4O8+fPZx1LMDQ+9uhmTUL+36lTp3Dt2jWE\nhYUBaL2JzNfXF5MmTWKcjLzOypUrsW7dOmzduhUeHh7o3bs3vvnmG71fcQMA5s6d2+GYmNaA379/\nP/9YpVIhPz8fgwYNQnR0NMNUwlEoFJ0eF2sbo1g1NjZCo9GIYs+MztD42KFCXCByuRwHDhxAeXk5\nmpubwXEcTE1NRTPjCIi7D7fNzZs3kZeXBwDw9PSEt7c340TCycnJQWFhISQSCdzc3ER1dePevXtw\ndnZGQ0MDjh07BqVSiYkTJ4puve33QUNDA7766ivExMSwjiKI6OhoflMttVqNx48fw9HREVu3bmUd\n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\nQhj4P5whgnlXZnFFAAAAAElFTkSuQmCC\n", | |
"text/plain": [ | |
"<Figure size 864x504 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "Kg4B6C8HZyUK", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"###Distribution of car accidents per day of the week" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "ediynUE7ZsHI", | |
"colab_type": "code", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 517 | |
}, | |
"outputId": "c4114ea8-c794-44b4-ce68-c81739282544" | |
}, | |
"source": [ | |
"# Number of accident per day of the week\n", | |
"accidents_day = df.groupby(df['date'].dt.dayofweek).count().date\n", | |
"\n", | |
"# Replace the day integers by day names.\n", | |
"accidents_day.index=[calendar.day_name[x] for x in range(0,7)]\n", | |
"\n", | |
"# plot accidents per day\n", | |
"accidents_day.plot(kind='bar',figsize=(12,7), color='magenta', alpha=0.5)\n", | |
"\n", | |
"# title and x,y labels\n", | |
"plt.title('Accidents in Barcelona in 2017', fontsize=20)\n", | |
"plt.xlabel('Day of the week',fontsize=16)\n", | |
"plt.ylabel('Number of accidents',fontsize=16);" | |
], | |
"execution_count": 27, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAuIAAAH0CAYAAAB4hEgkAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3XtclGX+//H3DCAwchwGIQojPK1a\niqaVWh5JTc01JY+dPGRqfUsrW/u2m7Z2oDXzlFabrdrW5lmrr5WFx9LaUFM3dVNLtwwVOQqiInL/\n/vDHbMSAgzLcMryej4ePZa77muv+zMW0vuf2muu2GIZhCAAAAEC1sppdAAAAAFAbEcQBAAAAExDE\nAQAAABMQxAEAAAATEMQBAAAAExDEAQAAABMQxAFUiSlTpshisWjjxo1uP6dz586yWCyeK8pElzIf\ncM1isahz585ml3FZvPm9DuDSEcQBL/HCCy/IYrHIYrHo+++/N7ucK9rhw4dlsVj0wAMPmF3KZSkJ\nd7/+4+vrq6ioKPXu3VuffPKJ2SWimmRmZmr+/Pm666671LBhQwUGBio0NFS33nqr3n77bRUXF5f7\n3K1bt6pXr16y2+0KDAxUixYtNHPmTJ0/f75M35ycHE2bNk3Dhg1Ts2bN5OvrK4vFopSUlHLH/+17\n1NWfv//971UyD0BN42t2AQAun2EYmj9/viwWiwzD0FtvvaVXXnmlWmt45JFHNHjwYNWvX79az3ul\nqs75uP/++xUXFydJOn36tL7//nutWbNGH3/8sd58802NHj3a4zWgYu+8844KCgo8Nv6yZcs0duxY\nXXXVVerSpYvq16+v48ePa+XKlRo1apQ++eQTLVu2rMxV+Q8++EADBgxQQECABg0aJLvdro8++kgT\nJkzQli1btGzZslL9Dx8+rKeeekqSdM0118jhcOj48eMV1jZ58mSX7Xl5eXr11Vfl6+ur22+//TJe\nPVCDGQBqvE8//dSQZDzwwANGdHS04XA4jLNnz5pd1kV16tTJMOP/hg4dOmRIMu6///5qP3dVKpm/\nDRs2lDm2fPlyQ5Jx7bXXVntdVU2S0alTJ7PLuKKtW7fO+PDDD43z58+Xaj969KgRGxtrSDKWL19e\n6lhubq4RGRlp1KlTx0hNTXW2nz592mjXrp0hyXj//fdLPScrK8tISUkxMjMzDcMwjPvvv9+QZHz+\n+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\n2bOnyr+85gk333yztmzZom+++cb5/nj11VeVmZmpBQsWlPkA9/7772vRokXljufqzpCVeZ+UvB9a\ntWrl/NeSS1Eyjqv3jyQdPXq0VL9LUVRUpClTpig6Olo7duwoE/q/+uqrSx7b02bOnKkJEybo+uuv\n17p165xfqv2tJk2aaNu2bdq/f79uvPHGUseKiop06NAh+fr6Kj4+vspq27lzp7Zt26brrruOL2kC\n4s6aQI21aNEiFRYW6sYbb9TIkSNd/omMjFRKSooOHTokSfrd736nsLAw7d69+6LbB1amb3lat24t\nSdq0aVOZYz/++KN+/vnnMu233HKLsrOztWfPnks6pzt8fHwkuXfluV69eurfv7+WLl2qrl276ocf\nftB3333nsdqqUsmyhl/fVfHgwYOSLuyA8luufk8XU7duXV1//fU6fvy4y6UgvxYUFKTmzZtrz549\nl/VBq0mTJrLZbNq1a5fLq94bNmyQ9N/336XIyMhQTk6O2rdvXyaE5+fnX9YHCU96+eWXNWHCBCUk\nJGjDhg3lhnDpwhIeSfr000/LHNu8ebMKCgrUvn37Kv3Q+eabb0qSRo0a5fKDHVDbEMSBGqpk7/B5\n8+Zp/vz5Lv889NBDzrtuShcC6Lhx43T69GmNGTOmzD+rl6y/rmzf8gwbNkx+fn6aM2eODh8+7Gwv\nLi7WxIkTXd52e8KECZIu7Inu6gPAqVOn9PXXX19kdioWHh4ui8Win376qcyxs2fPasuWLWXaz507\n5wyPNpvtss5fHQ4fPqyVK1dKknP9uCTnHTh/u6f02rVrne+Tynr00UclXdgP+rfLHIqLi51XqCXp\n8ccfV2FhoUaMGOEyRGdnZ1805NapU0fDhg1TXl6e/vSnP5U69sMPP2j27Nny8/PTvffee0mvR7rw\nAcxms2n79u3Kz893tp87d06PPfaYMjIyLnlsT5k6daomTZqkG2+8UevWrZPD4aiwf1JSkhwOhxYv\nXlxqr/czZ87oj3/8o6QLW11WlVOnTukf//iHfH19NWLEiCobF6jJWJoC1EAbN27U/v37dcMNN7j8\nAl2JkSNH6oUXXtCCBQv03HPPydfXV5MnT9Y///lPffTRR2rcuLH69Omj4OBg/fzzz/rss880bdo0\n55KFyvR1JS4uTsnJyXriiSfUqlUrDRo0SKGhoVq7dq1ycnLUokUL7d69u9RzunXrpuTkZD399NNq\n1KiRevXqpeuuu075+fn6z3/+o02bNunWW291eRXPXUFBQbr55pv1xRdfaNiwYWrcuLF8fHzUt29f\n1a9fX7feeqsaNmyoG2+8Uddee63OnDmjzz//XPv27VPfvn3VtGnTSz63JyxcuNAZrM+dO6f//Oc/\nWr16tU6dOqU777yz1F7p48aN04IFC3T33XcrKSlJMTEx+u677/Tpp59q4MCBbt+w6NdGjRqlL774\nQn//+9/VqFEj/f73v1dkZKTS0tK0fv16jRgxQlOmTJF0YQ/x7du3a968eWrQoIF69Oih+vXrKysr\nS4cOHdLmzZs1fPhwvfHGGxWeMzk5WV988YVee+01paamqkuXLs59xPPy8vTaa685b9x0KaxWqx59\n9FElJyfrhhtu0O9//3sVFhZqw4YNysrKUpcuXZxX3q8EixYt0rPPPisfHx/ddtttmj17dpk+cXFx\npf57DQkJ0VtvvaWkpCR17txZgwcPlt1u14cffqjvv/9eSUlJLvfMf/LJJ50fRL788ktJ0rRp05w3\nhOrXr1+p91yJxYsX6+TJk3xJE/g1s7dtAVB5Q4cONSQZs2bNumjf22+/3ZBkrFy50tl27tw5Y86c\nOUbbtm2NunXrGjabzWjYsKHx4IMPltnKzN2+5W3XZxiG8Y9//MNo1aqV4e/vbzgcDmPYsGHGL7/8\nUuEt7r/44gvj7rvvNq666irDz8/PcDgcRsuWLY0JEyaUuh23YVzYvrC8W7mXV9eBAweMPn36GHa7\n3bBYLM69nAsLC42XX37Z6NmzpxEbG+us+eabbzZef/114+zZsxXM9sXPqwpu116yFdyv97+uiKvt\nCy0WixEWFmbceuutxptvvllqr/ISW7ZsMbp06WKEhYUZQUFBRocOHYxVq1Y5t9ObPHmyy/NczLvv\nvmt07NjRCAkJMfz9/Y24uDhj6NChxvbt28v0/eijj4zevXsbkZGRhp+fnxEVFWW0bdvWeOaZZ4x9\n+/aV6lvenGVnZxtPPfWU0bBhQ6NOnTpGaGiokZiYaKxdu7ZM3/JeWwlX76Fz584Z06dPN5o2bWoE\nBAQYUVFRxj333GMcPnz4kn9Xl1tTeUrebxX9Ke999+WXXxp33HGHERYWZgQEBBjXX3+98eqrr7p8\n75TUVdF5yns9N910k8v9zIHazGIYv7r3MwAAAIBqwRpxAAAAwAQEcQAAAMAEBHEAAADABARxAAAA\nwAQEcQAAAMAEBHEAAADABLXuhj6XeqtuszkcjivyTm61BfNvLubfPMy9uZh/czH/5qnpcx8TE+NW\nP66IAwAAACYgiAMAAAAmIIgDAAAAJiCIAwAAACYgiAMAAAAmIIgDAAAAJiCIAwAAACYgiAMAAAAm\nIIgDAAAAJiCIAwAAACYgiAMAAAAmIIgDAAAAJiCIAwAAACYgiAMAAAAm8K3Ok82bN087duxQaGio\npk+fLkmaMWOG0tLSJEkFBQWy2WyaNm2a0tPTNWHCBMXExEiSGjVqpNGjR0uSfvzxR82dO1eFhYVq\n1aqVhg8fLovFUp0vBQAAALgs1RrEO3furJ49e2ru3LnOtgkTJjh/fuedd2Sz2ZyPo6OjNW3atDLj\nvPXWW3rooYfUqFEjvfTSS9q5c6datWrl2eIBAACAKlStQbxZs2ZKT093ecwwDH311Vd69tlnKxwj\nOztbp0+fVuPGjSVJHTt2VGpqKkEcAFDtgqcHe3R8H5uPggs8d468J/I8NjaAi6vWIF6Rffv2KTQ0\nVFdddZWzLT09XU899ZQCAwM1ePBgNW3aVFlZWYqIiHD2iYiIUFZWlhklAwAAAJfsigniW7ZsUYcO\nHZyPw8PDNW/ePAUHB+vHH3/UtGnTnOvKKyMlJUUpKSmSpOTkZDkcjiqruTr5+vrW2Nq9AfNvLubf\nPMx9xXxsPh4d32q1llqyWdX8Hf4eG9sb8P43T22Z+ysiiJ8/f17ffPONkpOTnW1+fn7y8/OTJMXH\nxysqKkpHjx6V3W5XZmams19mZqbsdnu5YycmJioxMdH5OCMjwwOvwPMcDkeNrd0bMP/mYv7Nw9xX\nzJPLRiTJZrOpoKDAY+PnZbA0pSK8/81T0+e+ZLORi7kiti/817/+pZiYmFJLTk6ePKni4mJJ0vHj\nx3X06FFFRUUpPDxcgYGB2r9/vwzD0ObNm9WmTRuzSgcAAAAuSbVeEZ85c6b27t2rvLw8jRkzRgMH\nDlTXrl3LLEuRpL1792rp0qXy8fGR1WrVgw8+qKCgIEnSqFGjNG/ePBUWFiohIYEvagIAAKDGsRiG\nYZhdRHUq2bO8pqnp/0RT0zH/5mL+zcPcV8zTu6Z4fGkKu6ZUiPe/eWr63NeopSkAAABAbUMQBwAA\nAExAEAcAAABMQBAHAAAATEAQBwAAAExAEAcAAABMQBAHAAAATHBF3OIeuFye3svXx+bj0VtZs5cv\nAAC1D1fEAQAAABMQxAEAAAATEMQBAAAAE7BGHABqML4fAQA1F1fEAQAAABMQxAEAAAATEMQBAAAA\nE7BGHMBlY50yAACVxxVxAAAAwAQEcQAAAMAEBHEAAADABARxAAAAwAQEcQAAAMAEBHEAAADABARx\nAAAAwAQEcQAAAMAEBHEAAADABARxAAAAwAQEcQAAAMAEBHEAAADABARxAAAAwAQEcQAAAMAEBHEA\nAADABARxAAAAwAQEcQAAAMAEBHEAAADABARxAAAAwAQEcQAAAMAEBHEAAADABARxAAAAwAQEcQAA\nAMAEBHEAAADABARxAAAAwAQEcQAAAMAEBHEAAADABL7VebJ58+Zpx44dCg0N1fTp0yVJS5cu1bp1\n6xQSEiJJGjJkiFq3bi1JWrVqldavXy+r1arhw4crISFBkrRz504tWLBAxcXF6tatm/r161edLwMA\nAAC4bNUaxDt37qyePXtq7ty5pdp79+6tvn37lmo7cuSItm7dqldffVXZ2dmaOnWqZs2aJUl6++23\n9cc//lERERF6+umn1aZNG11zzTXV9joAAACAy1WtQbxZs2ZKT093q29qaqrat28vPz8/1atXT9HR\n0Tp48KAkKTo6WlFRUZKk9u3bKzU11fQgHjw92KPj+9h8FFzguXPkPZHnsbEBAABQVrUG8fKsXbtW\nmzdvVnx8vO677z4FBQUpKytLjRo1cvax2+3KysqSJEVERDjbIyIidODAgXLHTklJUUpKiiQpOTlZ\nDofDI6/Bx+bjkXFLWK1W2Ww2j43v7/D32NjVgfk3F/NvHubeXMy/d/P19fVYbkDFasvcmx7Eu3fv\nrqSkJEnSkiVL9M4772jcuHFVNn5iYqISExOdjzMyMqps7F/z5NVqSbLZbCooKPDY+HkZNfuKOPNv\nLubfPMy9uZh/7+ZwODyWG1Cxmj73MTExbvUzfdeUsLAwWa1WWa1WdevWTT/88IOkC1fAMzMznf2y\nsrJkt9vLtGdmZsput1d73QAAAMDlMD2IZ2dnO3/+5ptvFBsbK0lq06aNtm7dqnPnzik9PV1Hjx5V\nw4YN1aBBAx09elTp6ekqKirS1q1b1aZNG7PKBwAAAC5JtS5NmTlzpvbu3au8vDyNGTNGAwcO1J49\ne3T48GFZLBZFRkZq9OjRkqTY2Fi1a9dOjz/+uKxWq0aOHCmr9cLnhhEjRuiFF15QcXGxunTp4gzv\nAAAAQE1RrUF8/PjxZdq6du1abv/+/furf//+Zdpbt27t3GscAAAAqIlMX5oCAAAA1EYEcQAAAMAE\nBHEAAADABARxAAAAwAQEcQAAAMAEBHEAAADABARxAAAAwAQEcQAAAMAEBHEAAADABARxAAAAwAQE\ncQAAAMAEBHEAAADABARxAAAAwAQEcQAAAMAEBHEAAADABARxAAAAwAQEcQAAAMAEBHEAAADABARx\nAAAAwAQEcQAAAMAEBHEAAADABARxAAAAwAQEcQAAAMAEBHEAAADABARxAAAAwAQEcQAAAMAEBHEA\nAADABARxAAAAwAQEcQAAAMAEBHEAAADABARxAAAAwAS+7nQqLi6WYRjy8fFxtu3cuVM///yzrr/+\nel133XUeKxAAAADwRm4F8VmzZsnPz0+PPPKIJOmzzz7T22+/LUny8fHRpEmT1KJFC89VCQAAAHgZ\nt5amHDhwQK1atXI+/uijj9S1a1ctXLhQN910k1atWuWxAgEAAABv5FYQz83Nld1ulyQdO3ZM6enp\n6tmzpwIDA9WlSxf99NNPHi0SAAAA8DZuBXGbzaa8vDxJ0p49exQcHKxrr732wgBWqwoLCz1XIQAA\nAOCF3Foj3rhxY33wwQfy8fHRxx9/XGqZyrFjxxQREeGxAgEAAABv5NYV8XvuuUd5eXn6y1/+osLC\nQt19993OY1u3blXjxo09ViAAAADgjdy6In7VVVdp9uzZysvLU3BwcKljw4cPV1hYmEeKAwAAALyV\nW1fE582bp/T09DIhXJICAwP17rvvVnlhAAAAgDdzK4hv2rRJJ0+edHksLy9PmzZtqtKiAAAAAG93\n2be4z8nJUZ06daqiFgAAAKDWKHeN+DfffKNvvvnG+XjZsmVllqYUFhZq3759io+Pd+tk8+bN044d\nOxQaGqrp06dLkv7+979r+/bt8vX1VVRUlMaNG6e6desqPT1dEyZMUExMjCSpUaNGGj16tCTpxx9/\n1Ny5c1VYWKhWrVpp+PDhslgslXvlAAAAgInKDeIZGRnat2+f8/Hhw4fl61u6u5+fn5o0aaKhQ4e6\ndbLOnTurZ8+emjt3rrOtRYsWGjp0qHx8fPTuu+9q1apVuueeeyRJ0dHRmjZtWplx3nrrLT300ENq\n1KiRXnrpJe3cubPUlooAAADAla7cIN6rVy/16tVLkvTwww9r4sSJiouLu6yTNWvWTOnp6aXaWrZs\n6fy5cePG+vrrryscIzs7W6dPn3ZumdixY0elpqYSxAEAAFCjuLV94a+vYHvS+vXr1b59e+fj9PR0\nPfXUUwoMDNTgwYPVtGlTZWVllbqBUEREhLKysqqlPgAAAKCquBXEJam4uFgHDx5URkaGzp07V+Z4\np06dLquQlStXysfHR7fddpv+MbdqAAAgAElEQVQkKTw8XPPmzVNwcLB+/PFHTZs2zbmuvDJSUlKU\nkpIiSUpOTpbD4bisOsvjY/PxyLglrFarbDabx8b3d/h7bOzqwPybi/k3D3NvLubfu/n6+nosN6Bi\ntWXu3QriR44c0bRp03Ts2LFy+1xOEN+4caO2b9+uZ5991vmlSz8/P/n5+UmS4uPjFRUVpaNHj8pu\ntyszM9P53MzMTNnt9nLHTkxMVGJiovNxRkbGJddZkeCCsnusVyWbzaaCggKPjZ+XkeexsasD828u\n5t88zL25mH/v5nA4PJYbULGaPvclm41cjFtBfP78+Tp//rwmTJig+vXrOwNyVdi5c6c++OADPffc\nc/L3/+8n85MnTyooKEhWq1XHjx/X0aNHFRUVpaCgIAUGBmr//v1q1KiRNm/erJ49e1ZZPQAAAEB1\ncCuIHzp0SOPGjdPNN998WSebOXOm9u7dq7y8PI0ZM0YDBw7UqlWrVFRUpKlTp0r67zaFe/fu1dKl\nS+Xj4yOr1aoHH3xQQUFBkqRRo0Zp3rx5KiwsVEJCAl/UBAAAQI3jVhAPDg4us3XhpRg/fnyZtq5d\nu7rse8stt+iWW25xeaxBgwaXtF4cAAAAuFK4dWfN3r17a+3atSouLvZ0PQAAAECt4NZl7pMnTyot\nLU0TJkxQixYtnEtESlgsFg0cONAjBQIAAADeyK0gvnLlSufP5e2cQhAHAAAA3OdWEF+yZImn6wAA\nAABqFbfWiAMAAACoWm5vhWIYhrZv3669e/cqPz9fd999tyIjI7V3715FR0dXeFMdAAAAAKW5FcTz\n8/P10ksv6eDBgwoICNCZM2fUs2dPRUZGKiUlRUFBQRoxYoSnawUAAAC8hltLU959911lZmZq6tSp\n+tvf/lbqWIsWLfTdd995pDgAAADAW7kVxFNTUzV48GA1btxYFoul1DGHw6HMzEyPFAcAAAB4K7eC\n+JkzZ8pdA15YWCjDMKq0KAAAAMDbuRXEY2JitHv3bpfH9u7dq/r161dpUQAAAIC3cyuI9+jRQ2vW\nrNHKlSuVkZEhSSooKNCGDRu0du1a9ejRw6NFAgAAAN7GrV1TEhMTdfz4cS1dutR5c5+pU6fKarWq\nb9++uu222zxaJAAAAOBt3N5HfNiwYerevbt2796t3NxcBQcHq0WLFoqKivJkfQAAAIBXcjuIS1Jk\nZKS6devmqVoAAADcFjw92KPj+9h8FFzguXPkPZHnsbFRM5QbxEvWgrvL4XBcdjEAAABAbVFuEH/4\n4YcrNVDJ2nEAAAAAF1duEB87dqzz56KiIq1YsUI2m03t2rVTaGiocnJy9NVXX+n06dMaMGBAtRQL\nAAAAeItyg3jnzp2dPy9cuFDXXXedJk6cWOrOmklJSZo2bZqOHDni0SIBAAAAb+PWPuJbtmzR7bff\nXub29haLRbfffru2bNnikeIAAAAAb+X2Le5Pnjzp8lhubq7OnDlTpUUBAAAA3s6tIN6sWTO9//77\nOnjwYKn2gwcPavHixWrevLlHigMAAAC8lVv7iI8cOVJTp07VM888I4fDodDQUOXm5iojI0P16tXT\niBEjPF0nAAAA4FXcCuL16tXTjBkztHHjRh04cEA5OTmKjY1V48aN1alTJ/n6Vuq+QAAAAECt53aC\n9vX1VWJiohITEz1ZDwAAAFAruLVGHAAAAEDVKveK+COPPKInn3xScXFxevjhh8tsXfhrFotFc+bM\n8UiBAAAAgDcqN4g3a9ZMNpvN+XNFQRwAAABA5ZQbxMeNG+f8+eGHH66WYgAAAIDagjXiAAAAgAnc\nCuILFy4sdw34nDlz9M4771RpUQAAAIC3cyuIb9++XS1btnR5rGXLltq2bVuVFgUAAAB4O7eCeFZW\nlhwOh8tjERERysrKqtKiAAAAAG/nVhCvW7eujh075vLYsWPHFBAQUKVFAQAAAN7OrSB+ww03aMWK\nFcrJySnVnpOTo1WrVqlFixYeKQ4AAADwVm7d4n7QoEF6+umn9dhjj6l169bO5Sjbt29XnTp1NHjw\nYE/XCQAAAHgVt4J4vXr19NJLL2np0qXavXu38vLyFBISoptuukkDBw5UZGSkp+sEAAAAvIpbQVy6\nEMYfeeQRT9YCAAAA1BpurRE/efKk0tLSXB5LS0vTyZMnq7QoAAAAwNu5FcTnz5+v//u//3N5bM2a\nNZo/f36VFgUAAAB4O7eC+L///e8Kb+jz/fffV2lRAAAAgLdzK4ifOnVKNpvN5bHAwEDl5+dXaVEA\nAACAt3MriNvtdh04cMDlsQMHDigsLKxKiwIAAAC8nVu7ptxyyy1avXq14uLi1Lp1a2f7jh079MEH\nH+j22293+4Tz5s3Tjh07FBoaqunTp0uS8vPzNWPGDJ04cUKRkZGaMGGCgoKCZBiGFixYoG+//Vb+\n/v4aN26c4uPjJUkbN27UypUrJUn9+/dX586d3a4BAAAAMJtbQTwpKUn79u3Tyy+/rLCwMNntdmVl\nZSknJ0eNGzfW3Xff7fYJO3furJ49e2ru3LnOttWrV+uGG25Qv379tHr1aq1evVr33HOPvv32Wx07\ndkyzZ8/WgQMHNH/+fL344ovKz8/X8uXLlZycLEmaNGmS2rRpo6CgoEq+fAAAAMAcbi1N8ff315Qp\nU/TQQw+padOmqlu3rpo1a6axY8dqypQp8vf3d/uEzZo1KxOYU1NT1alTJ0lSp06dlJqaKknatm2b\nOnbsKIvFosaNG+vUqVPKzs7Wzp071aJFCwUFBSkoKEgtWrTQzp073a4BAAAAMJvbN/Tx9fVV165d\n1bVr1yovIjc3V+Hh4ZKksLAw5ebmSpKysrLkcDic/SIiIpSVlaWsrCxFREQ420uu0LuSkpKilJQU\nSVJycnKp8aqSj83HI+OWsFqt5X5htir4O9z/MHUlYv7Nxfybh7k3F/NvLubfe/n6+noss11J3A7i\n1cVischisVTZeImJiUpMTHQ+zsjIqLKxfy24INgj45aw2WwqKCjw2Ph5GXkeG7s6MP/mYv7Nw9yb\ni/k3F/PvvRwOh8cyW3WIiYlxq5/bQXzXrl367LPPlJaWpnPnzpU6ZrFYNGfOnMpV+CuhoaHKzs5W\neHi4srOzFRISIunCle5f/xIyMzNlt9tlt9u1d+9eZ3tWVpaaNWt2yecHAAAAqptba8R37NihF198\nUYWFhUpLS9PVV18th8OhzMxMWSwWNW3a9LKKaNOmjTZt2iRJ2rRpk9q2bets37x5swzD0P79+2Wz\n2RQeHq6EhATt2rVL+fn5ys/P165du5SQkHBZNQAAAADVya0r4itWrFCPHj30wAMPaMiQIRo0aJDi\n4+OVlpamF154oVIheObMmdq7d6/y8vI0ZswYDRw4UP369dOMGTO0fv165/aFktSqVSvt2LFDjz76\nqOrUqaNx48ZJkoKCgjRgwAA9/fTTki7s6sKOKQAAAKhJ3AriaWlpGjRokHPtdnFxsaQL61/uvvtu\nrVixQu3bt3frhOPHj3fZ/uyzz5Zps1gsGjVqlMv+nvriKAAAAFAd3FqaYrFYZLVaZbFYFBISUmrd\ntt1u1/Hjxz1WIAAAAOCN3AriMTExOnHihCSpQYMGWrNmjbKzs3Xy5El99NFHioyM9GiRAAAAgLdx\na2nKrbfeql9++UWSNHDgQE2dOlVjxoyRdGGPzccee8xzFQIAAABeyK0g3rNnT+fP8fHxeuWVV7Rz\n506dPXtWLVq00DXXXOOxAgEAAABvdEk39ImIiFC3bt2quhYAAACg1nBrjTgAAACAqkUQBwAAAExA\nEAcAAABMQBAHAAAATFBuEH/llVd07NgxSdKmTZuUl5dXbUUBAAAA3q7cIJ6amqr8/HxJ0rx587h7\nJgAAAFCFyg3iYWFh2r9/f3XWAgAAANQa5e4j3q5dOy1atEiLFi2SJD3zzDPlDmKxWLR48eKqrw4A\nAADwUuUG8fvvv19NmjTRkSNHtHz5cnXq1El2u706awMAAAC8VrlB3GKxqF27dpKkjRs3qlevXoqL\ni6uuugAAAACv5tYt7ufOnevpOgAAAIBaxa0gLknZ2dn66KOPtG/fPuXn5ysoKEjNmzdXnz59FBYW\n5skaAQAAcAUJnh7s0fF9bD4KLvDcOfKeuDK25Xbrhj5paWmaOHGiPvnkEwUEBKhBgwYKCAjQxx9/\nrIkTJ+ro0aOerhMAAADwKm5dEX/vvfdks9n04osvql69es72EydO6Pnnn9d7772nJ5980mNFAgAA\nAN7GrSvie/bs0aBBg0qFcEmKjIzU3XffrT179nikOAAAAMBbuRXEi4qKFBgY6PJYYGCgioqKqrQo\nAAAAwNu5FcTj4uL0ySefqLi4uFS7YRj67LPP2NYQAAAAqCS31ognJSUpOTlZEyZMUPv27RUeHq6c\nnBx99dVXOnbsmCZNmuTpOgEAAACv4lYQT0hI0KRJk7R48WKtXLnS2R4fH68//OEPatmypccKBAAA\nALyR2/uIJyQkKCEhQWfPntWpU6dUt25d+fv7e7I2AAAAwGu5HcRL+Pv7E8ABAACAy+TWlzUBAAAA\nVC2COAAAAGACgjgAAABgAoI4AAAAYIKLBvGioiL94Q9/0K5du6qjHgAAAKBWuGgQ9/X1VXp6unx8\nfKqjHgAAAKBWcGtpyg033MAVcQAAAKAKubWP+B133KE5c+bo/PnzuummmxQWFiaLxVKqT1RUlEcK\nBAAAALyRW0F8ypQpkqQ1a9ZozZo1LvssWbKkyooCAAAAvJ1bQXzs2LGergMAAACoVdwK4p07d/Zw\nGQAAAEDtUql9xIuLi/XTTz9p7969OnPmjKdqAgAAALyeW1fEJenTTz/V8uXLlZeXJ0l66aWXFB8f\nr7/85S+6/vrr1atXL48VCQAAAHgbt66Ip6SkaOHChWrbtq0mTJhQ6ljTpk31z3/+0yPFAQAAAN7K\nrSvia9asUZ8+fXTPPfeouLi41LGrr75aH374oUeKAwAAALyVW1fE09PTlZCQ4PKYv7+/CgoKqrQo\nAAAAwNu5dUU8ODhY6enpLo+lpaXJbrdfVhFpaWmaMWOG83F6eroGDhyoU6dOad26dQoJCZEkDRky\nRK1bt5YkrVq1SuvXr5fVatXw4cPL/aAAAAAAXIncCuKtW7fWihUr1Lx5c0VGRkqSLBaLTp48qTVr\n1qht27aXVURMTIymTZsm6cLOLA899JBuuukmbdiwQb1791bfvn1L9T9y5Ii2bt2qV199VdnZ2Zo6\ndapmzZolq7VSm8AAAAAApnEriA8ePFh79uzRE088oUaNGkmSFixYoF9++UWhoaFKSkqqsoL+9a9/\nKTo62hn4XUlNTVX79u3l5+enevXqKTo6WgcPHlTjxo2rrA4AAADAk9wK4iEhIUpOTtaaNWu0a9cu\nRUdH6/z58+rZs6d69+4tm81WZQVt2bJFHTp0cD5eu3atNm/erPj4eN13330KCgpSVlaW8wOBJNnt\ndmVlZVVZDQAAAICnub2PeGBgoJKSkqr06vdvFRUVafv27Ro6dKgkqXv37s7zLVmyRO+8847GjRtX\nqTFTUlKUkpIiSUpOTpbD4ajaov8/H5uPR8YtYbVaq/QDz2/5O/w9NnZ1YP7Nxfybh7k3F/NvLubf\nPMx91XA7iEtSQUGBfv75Z2VlZSkiIkKxsbEKDAyssmK+/fZbXXfddQoLC5Mk5/9KUrdu3fTyyy9L\nunAFPDMz03ksKyur3C+MJiYmKjEx0fk4IyOjyur9teCCYI+MW8Jms3l0d5q8jDyPjV0dmH9zMf/m\nYe7Nxfybi/k3D3NfsZiYGLf6uR3Ely9fro8++qjUre0DAgLUt29fDRgwoPIVuvDbZSnZ2dkKDw+X\nJH3zzTeKjY2VJLVp00azZ89Wnz59lJ2draNHj6phw4ZVUgMAAABQHdwK4kuXLtWKFSvUtWtXdejQ\nQaGhocrNzdWXX36ppUuX6vz58xo4cOBlFXLmzBnt3r1bo0ePdra9++67Onz4sCwWiyIjI53HYmNj\n1a5dOz3++OOyWq0aOXIkO6YAAACgRnEriK9bt059+vTRvffe62yLjY3V9ddfL5vNpnXr1l12EA8I\nCNDf/va3Um3/8z//U27//v37q3///pd1TgAAAMAsbl1GLigoUMuWLV0eS0hI4M6aAAAAQCW5FcQb\nNmyoH374weWxH374gfXZAAAAQCWVG8SLi4udf4YPH64NGzboww8/VHp6ugoLC5Wenq4PPvhAGzZs\n0MiRI6uzZgAAAKDGK3eN+JAhQ8q0vffee3rvvffKtD/55JNavHhx1VYGAAAAeLFyg/iAAQNksViq\nsxYAAACg1ig3iF/uLigAAAAAysfm2wAAAIAJ3L6z5pEjR/T1118rMzNT586dK3P8kUceqdLCAAAA\nAG/mVhDftGmTXn/9dVksFoWEhMjXt/TTWEsOAAAAVI5bQXzFihVq06aNxo4dq7p163q6JgAAAMDr\nubVGPCcnRz169CCEAwAAAFXErSDepEkT/fLLL56uBQAAAKg13AriI0eOVEpKir788kvl5eWVuutm\nyR8AAAAA7nNrjbjdbldcXJzmzJnj8rjFYuHOmgAAAEAluBXE33zzTW3dulVt27bV1VdfXWbXFAAA\nAACV41ai3rZtm+6991716tXL0/UAAAAAtYJba8T9/f11zTXXeLoWAAAAoNZwK4h37txZX375padr\nAQAAAGoNt5amREZGasuWLZo6daoSEhJc7ifetWvXKi8OAAAA8FZuBfH58+dLkjIyMvTdd9+57EMQ\nBwAAANznVhB/7bXXPF0HAAAAUKu4vTQFAAAAQNVx68uaAAAAAKqWW1fEH374YVkslgr7sHwFAAAA\ncJ9bQbxZs2ZlgnheXp7279+vgIAANW/e3CPFAQAAAN7K7Svirpw6dUovvviiWrRoUaVFAQAAAN7u\nstaI161bV3feeaeWL19eVfUAAAAAtcJlf1mzTp06yszMrIpaAAAAgFrDraUprpw/f14///yzli1b\nptjY2KqsCQAAAPB6bgXxQYMGlXvMZrNp0qRJVVYQAAAAUBu4FcQHDBhQZtcUPz8/RUZGqlWrVrLZ\nbB4pDgAAAPBWbgXxgQMHeroOAAAAoFbhzpoAAACACcq9Il7ZLQmTkpIuuxgAAACgtig3iC9btqxS\n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\nQmCC\n", | |
"text/plain": [ | |
"<Figure size 864x504 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "PNhz1Ly1Z5_5", | |
"colab_type": "code", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 540 | |
}, | |
"outputId": "97a39f47-e7ee-4825-83a3-b147c1563000" | |
}, | |
"source": [ | |
"accidents = df.groupby(df['date'].dt.date).count().date\n", | |
"\n", | |
"accidents.plot(figsize=(13,8), color='blue')\n", | |
"\n", | |
"# sunday accidents\n", | |
"sundays = df.groupby(df[df['date'].dt.dayofweek==6].date.dt.date).count().date\n", | |
"plt.scatter(sundays.index, sundays, color='green', label='sunday')\n", | |
"\n", | |
"# friday accidents\n", | |
"friday = df.groupby(df[df['date'].dt.dayofweek==4].date.dt.date).count().date\n", | |
"plt.scatter(friday.index, friday, color='red', label='friday')\n", | |
"\n", | |
"# Title, x label and y label\n", | |
"plt.title('Accidents in Barcelona in 2017', fontsize=20)\n", | |
"plt.xlabel('Date',fontsize=16)\n", | |
"plt.ylabel('Number of accidents per day',fontsize=16);\n", | |
"plt.legend()" | |
], | |
"execution_count": 28, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"<matplotlib.legend.Legend at 0x7fafe6986d68>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 28 | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "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\nNzQYuVuKqQlPUvFUIkoUXD2JIikq8uHgwXrk5PAYIeUYnkTJxltUBAC4CR+gHkXIRav8eGGhkbul\nGGcaiCgs5jSQEhwwkFoMT6Jk01Zejt7SUtgA/4Cht7QUbeXlxu6YQmqKu3GmgSgJBWYajN0PIkos\ncniS0XtBpB9vSQmaN25EVkUFHA0N8BYWoq28HN6SEqN3TRE1Mw0cNBAlIXEnkMtpElEsyeFJPK9Q\ncvGWlKBl7Vqjd0MTNTMNvB9AlIRcLgmpqT7eESSimHI4JJ5XiCyEOQ1EFFKtuxaH3d/A43Bj8c7F\nqHVbYy1pIjK3Wnct/tHyNRq7T/HcQmQBte5a7Kn/SPHzOWggSiK17lrMf28+vj17Eh6HG5uPbMb8\n9+bz4k5EURHnlobuOnR7O3huITI58Zs91vGN4tdw0ECURCr2V6DGXQM4egFXFwCgxl2Div3WKEJD\nRObkP7fYvIBdru3BcwuRefl/s/Zexa9hIjRREqnvlIvQ4JLNgHu4//GGTmsUoSEicwqcW97iuYXI\nAvy/2aw6xa/hoIEoiRSly0VocMXrfR4vTLdGERoiMieeW4isxf+b/e5zAFYpeg3Dk4iSSPmUcpRm\nl/Z5rDS7FOVTrFGEhojMiecWImsZ6DcbCWcaiJJISXYJNs7ZiIr9FWjobEBheiHKp5SjJNsaRWiI\nyJx4biGyluDfrFIcNBAlmZLsEqy93ppFaIjIvHhuIbIWtb9ZhicREREREVFYHDQQEREREVFYHDQQ\nEREREVFYHDQQEREREVFYHDQQEREREVFYHDQQEREREVFYHDQQEREREVFYHDQQEREREVFYHDQQERER\nEVFYHDQQEREREVFYHDQQEREREVFYHDQQEREREVFYHDQQEREREVFYHDQQEREREVFYHDQQEREREVFY\nHDQQEREREVFYHDQQEREREVFYHDQQEREREVFYNkmSJKN3goiIiIiIzMuyMw1Lly41ehcMkcjtTuS2\nhZNs7U629grJ1u5kay+QnG0Gkq/dydZeIZnanUxtVcOygwYiIiIiItIHBw1ERERERBSW49FHH33U\n6J3Q6sILLzR6FwyRyO1O5LaFk2ztTrb2CsnW7mRrL5CcbQaSr93J1l4hmdqdTG1VionQREREREQU\nFsOTiIiIiIgoLKdeG2pqasLzzz+PlpYW2Gw2zJ49G3PnzkV7eztWrlyJb7/9FkOGDMFDDz2EzMxM\n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\n4DcIniGPXAAAAABJRU5ErkJggg==\n", | |
"text/plain": [ | |
"<Figure size 936x576 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "yxyNGMjOZ_WR", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"###Distribution of car accidents per hour" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "Y2sZEEEjZ91m", | |
"colab_type": "code", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 471 | |
}, | |
"outputId": "9a3b7f25-4bf2-4167-adfa-1d830902dd20" | |
}, | |
"source": [ | |
"# Number of accident per hour\n", | |
"accidents_hour = df.groupby(df['date'].dt.hour).count().date\n", | |
"\n", | |
"# plot accidents per hour\n", | |
"accidents_hour.plot(kind='bar',figsize=(12,7), color='orange', alpha=0.5)\n", | |
"\n", | |
"# title and x,y labels\n", | |
"plt.title('Accidents in Barcelona in 2017', fontsize=20)\n", | |
"plt.xlabel('Hour',fontsize=16)\n", | |
"plt.ylabel('Number of accidents',fontsize=16);" | |
], | |
"execution_count": 29, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "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\nGzZsUNeuXSv1MXnyZCUnJ+v888/X2LFjFRYWpi1btuh//ud/tG7dOn3yySey26v/EVTxHH711Vfq\n16+fZs6cqezsbL355pu64oor9MILL7gNchkZGXrqqac0YMAATZkyRd99951Wr16tyy67TDt27FDX\nrl1d+27atEmJiYkaNmyYxo4dq6CgIB04cECrVq3Su+++q82bN6tnz57n/macQ016qg0/Pz9JqvKc\nrl+/XpJ05ZVXVjlmyJAhcjgc+vzzz3XmzBkFBATUqYdf2rp1q7Zt26bo6GjXL4fAr1YjX2EHYMIT\nTzxhSDIef/xx17Y+ffoYNpvNOHDgQJX9H3zwQUOScfXVVxunT5+uNHb69Gnj2LFjtdp33rx5VaY3\nHDp0yPDz8zNatWplHDp0yLW9rKzMuP766w1JVaaUrF+/3pBkDBgwwMjLy6s0lpycbEgyZs6cWWn7\nBRdcYEgyrrrqKqO4uNi1PSsrywgNDTVCQ0ONkpKSSn2pmiklTqfTaNeunVFUVFRl7Pjx426P+SV3\nz4dhGK7HfMcddxilpaWu7Xv27DF8fX2Niy66yNT5DeP/ppTceuutxrx584x58+YZf/rTn4zrrrvO\n8PPzM7p162bs2bOnynEHDx6ssu3MmTPG8OHDDbvdbhw5csRtnbi4OLeP/6WXXjIkGf369TPy8/Mr\njZWWlhqZmZmuryu+h9ddd12l75Vh/N9ztmjRokrb5WZKydSpUw1JxtSpU43y8nLX9v379xshISGG\nv79/pdfchg0bXM99cnJypXNVTG2YNm1ape1ZWVnGiRMnqjzeHTt2GC1btjSuvPLKKmOeuJs+VZue\naurs2bNG9+7dDUnGRx99VGmsb9++hiQjIyPD7bGxsbGGJOOrr77yeP7aTimp+P499thjNToO8EYE\nbqCJKy8vNy688ELDx8enUkhasmSJIcl44IEHKu1fWlpqhIaGGi1atDB++OGHas9dk30Nw33AfPTR\nRw1Jxty5c6vs//XXXxs+Pj5VQsiYMWMMScbu3bvd1unVq5cRGRlZaVtF4Hb3C8bvfvc7Q5Lx5Zdf\nuraZCdzR0dFVfsmoieoCt8PhMAoKCqocM2TIEEOSUVhYaKpGRYhz9+F0Oo3HHnusRo9h9erVhiRj\n+fLlbuukpKS4Pa4i0G3btu2cNXr16mXY7fYqv0wZxk+vufDwcKNfv36Vtv8ycJ85c8ZwOBxGUFCQ\nay7xz/3lL38xJBkPP/ywa1tFuB00aFCV/UtKSgy73W706dPnnP1XuPrqq42AgIBKv8hVp7rAXV89\nuXPfffcZkoyRI0dWGevcubPHfzeGYRgDBw40JBmff/65x/PXJnAXFhYawcHBht1uN3788UfTxwHe\niiklQBO3fv16ff311xoxYoTatWvn2j5x4kTdd999WrZsmR599FHXn5T/+9//qqCgQJdccomioqKq\nPXdN9vVk27ZtkqT4+PgqYzExMWrfvr2+/fbbStu/+OIL+fn5aeXKlVVWSJB+muZy/Phx5eTkKDw8\n3LU9NDRUnTp1qrJ/+/btJUl5eXmm+540aZKWLFmibt26afz48YqPj9eAAQM8ToGpqc6dO1eZEvPL\nXoOCgkyfb8OGDa51qs+ePavDhw9r0aJFeuihh/TRRx9p48aNleb2fvfdd3ryySe1bt06fffddzp1\n6lSl8/3www9u61x88cVVthUVFWn37t1q06aNevfuXW2fxcXF2rlzpyIiIrRo0SK3+wQEBGjv3r3V\nnmffvn0qLi7WoEGD3M4lHj58uB599FFt3769ypi7KTZ+fn5q06aN29fImjVr9OKLLyojI0PZ2dkq\nLS2tNJ6dna3zzjuv2n7PpaY9mbV48WItXLhQv/nNb5rUsnuvv/66CgsLdf3116tt27aN3Q7Q6Ajc\nQBNX8aajX755zel06uqrr9bq1av1zjvvaNy4cZLkesPhz8O5JzXZ15OCggJJUps2bdyOt23btkrg\nzsnJUWlpqR5++OFqz33y5MlKgTssLMztfhXzVt2tKexJUlKSYmJilJycrMTERCUmJsput2vkyJFa\nuHCh22BfE/XZ6y/5+fmpc+fOeu6557Rz5059+umneuONN3TTTTdJkr755htdfPHFysvL06WXXqor\nrrhCoaGh8vX11eHDh7V8+XKPb1x0F45q8jrJy8uTYRg6fvz4Ob+/1al4XXkKuhXb3b3Btrrn/pfP\n+zPPPKOZM2eqVatWuvzyy9WhQwc5HA7ZbDalpKRo586dNXqTpyc16cmsZ599Vn/84x/VrVs3rVu3\nzu0vJhW/QFY8n79Usd1Tf7VV8f8Wy1UCPyFwA03Y8ePHlZKSIkm66aabXIHql15++WVX4K74wenp\nCubP1WRfTyp+oGdlZSk2NrbK+NGjR90eU15ertzc3FrXrStfX1/NnDlTM2fO1LFjx/TZZ59pxYoV\nWrlypfbs2aM9e/bU+5vIrHDJJZdo8+bN+s9//uN6ffztb39TTk6OkpOTq/yi9vrrr2v58uUez+fu\nTok1eZ1UvB569+7t+utHbVScx93rR5J+/PHHSvvVRmlpqebPn6+2bdtq27ZtVcL9F198UetzW23R\nokWaNWuWunfvrnXr1rne3PpLXbt2VUZGhvbv368+ffpUGistLdWhQ4dkt9sVExNTb73t2LFDGRkZ\n6tixI2+WBP4XywICTdjy5ctVUlKiPn366I477nD7ERkZqdTUVB06dEiS9Jvf/EZhYWHatWvXOZfl\nq8m+nvz2t7+VJKWlpVUZ++abb/T9999X2d6/f3/l5eVpz549tapphq+vryRzV5Jbt26t66+/Xm++\n+aaGDx+ur7/+Wrt377ast/pUMR3h53cZPHjwoKSfVhz5JXffp3Np2bKlunfvrqysLLdTOH4uKChI\nsbGx2rNnT51+oeratascDod27tzp9ir2hg0bJP3f6682srOzlZ+fr4EDB1YJ2ydPnqzTLwxWevLJ\nJzVr1iz16tVLGzZs8Bi2pZ+m3kjSRx99VGVs06ZNKi4u1sCBA+v1l8uXXnpJkjRlyhRudQ/8LwI3\n0IRVrL39/PPPa+nSpW4//vCHP7juQin9FDSnT5+uU6dO6c4776zy5/CK+dE13deTSZMmyc/PT0uW\nLNHhw4dd28vLyzV79my3t5ueNWuWpJ/WFHcX9IuKirRly5ZzPDvVa9WqlWw2m7777rsqY2fOnNHm\nzZurbD979qwrJDocjjrVbwiHDx/WW2+9JUmu+d2SXHek/OWazGvXrnW9TmpqxowZkn5aT/mX0xPK\ny8tdV5wl6d5771VJSYkmT57sNizn5eWdM8z6+/tr0qRJKiws1P/8z/9UGvv666+1ePFi+fn56ZZb\nbqnV45F++kXL4XBo69atOnnypGv72bNn9cc//lHZ2dm1PrdVHnnkEc2ZM0d9+vTRunXrFBERUe3+\n48aNU0REhFasWFFprfTTp0/rL3/5i6SflpCsL0VFRfrXv/4lu92uyZMn19t5geaOKSVAE7Vx40bt\n379fcXFxbt/IVuGOO+7QY489puTkZD388MOy2+2aN2+e/v3vf+u9995Tly5dNHr0aAUHB+v777/X\nxx9/rAULFrimGtRkX3eio6OVmJio++67T71799aECRMUGhqqtWvXKj8/Xz169NCuXbsqHXPZZZcp\n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\npSMFVFN/AAAAAElFTkSuQmCC\n", | |
"text/plain": [ | |
"<Figure size 864x504 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "yfDK6KJ2aFeu", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"###Distribution of car accidents per day of the week and hour" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "Q_luCIQfaCtl", | |
"colab_type": "code", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 1000 | |
}, | |
"outputId": "0dc5bd66-ca0c-4c72-9d3f-1a6124ec3184" | |
}, | |
"source": [ | |
"# Number of accident per hour and day\n", | |
"accidents_hour_day = df.groupby([df['date'].dt.hour.rename('hour'),df['date'].dt.dayofweek.rename('day')]).count().date\n", | |
"\n", | |
"accidents_hour_day.unstack().plot(kind='barh', figsize=(16,26))\n", | |
"\n", | |
"# title and x,y labels\n", | |
"plt.legend(labels=[calendar.day_name[x] for x in range(0,7)],fontsize=16)\n", | |
"plt.title('Accidents in Barcelona in 2017',fontsize=20)\n", | |
"plt.xlabel('Number of accidents',fontsize=16)\n", | |
"plt.ylabel('Hour',fontsize=16);" | |
], | |
"execution_count": 49, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "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\n/DO++OILSCQSdOvWDdbW1li7dq147MLCQmzcuBH9+vWDgYHB65xyjcWkloiIiIiI3jo//fSTwkRR\ntWrVUtjeq1evV7aRkpICHR0dpbp9+vTB4cOHFcru3r2L8PBwHDhwAGlpaQrDjrOzs2FqagotLS0M\nGTIEixcvRmhoKAwNDbFz507cu3cPQ4YMqchpvhWY1BIRERER0VuncePGL50oytzc/JVtpKenw8TE\nRGHYMgDI5XKFz8XFxQgODkZWVhYmTpwIR0dHyGQy7Ny5E4sXL0Z+fr5Yd/DgwYiIiMDmzZsxdOhQ\nrF27Fm3btoWTk1M5z/DtwaSWiIiIiIjoORKJ5JV1zM3NkZ2djeLiYoXENjMzU6HelStXcO7cOSxd\nuhR9+vQRy3ft2qXUplwuh7e3N2JiYtChQwccP34cCxYseI0zqfk4+zEREREREVEFODs748mTJ0rJ\naWJiosLnvLw8AIBU+l+fYmFhocI7vM8KDg7G+fPnMXXqVBgbG8PHx6eSI69Z2FNLRERERERUAV27\ndkWbNm0wefJkZGZmwtbWFlu3bsXly5cV6jVu3Bh169bF7NmzIZFIoKWlhRUrVigNWy7l4uICJycn\nHD9+HKNGjYKenl5VnI7GYlJLRERERETllu74nbpDqBaio6Mxffp0fPvtt5BKpejRowdmzpyJUaNG\niXX09PTEep999hlMTEwQEBAAc3NzTJ06VWW777//Pv766y9OEFUGEkEQBHUHUVG3b99WdwhUSeRy\nudK7B6TZeE9rFt7Pmof3tGbh/ax5qss9zc3N5TIylUAqlSqsiVsWvXv3hp6eHjZt2vSGolK/Vz1f\nVlZWZWqHPbVERERERETVQEFBAc6ePYuDBw/ijz/+wJo1a9QdkkZgUktERERERFQN3L59G3369IGx\nsTHGjx8PLy8vdYekEZjUEhERERERVQN2dnZITU1Vdxgah0v6EBERERERkcZiUktEREREREQai0kt\nERERERERaSwmtURERERERKSxmNQSERERERGRxmJSS0RERERERBqLSS0RERERERFpLK5TS0RERERE\n5RZ3Pkitxx/YbG2F9tu9ezdWrFiBy5cv4/Hjx6hTpw6aN2+OoKAgeHp6lrutGzduYMyYMRWKpSLC\nw8Mxf/58rmf7DPbUEhERERHRW+Gnn37CiBEjYGdnh3nz5mH16tUYN24cAODIkSPlbq80QSb10uie\n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\nYcOGuPTSSw+41tNPPx1Tp06Nurq6GDVqVDzxxBPR1NQUv//97+PrX/96REQsWrQovvnNb8aDDz4Y\n73vf+7p/9p577okdO3bEwoULS/L7SkXSpRYAAKC3Ghoa4uKLL44vfvGL8cUvfjHGjh0bf/3Xfx3z\n58+PmTNn9vu6xx9/fDQ3N3d//cILL8QXvvCFePbZZ+PYY4+NzZs3x7333htXXXVVfPzjH4+IiJkz\nZ8Yrr7wSq1ev3u9a73nPe7p/3dXVFWeddVa89rWvjU9+8pOxbNmyGDduXLzhDW+It771rXH77bfv\nV2pvv/32mDlzZpxwwgn9/r2kyO3HAADAkHDyySfHQw89FN///vejvr4+pk6dGj/84Q/jAx/4QDQ1\nNfX7urNnz97v61NP/Z+n4D/99NMREdHW1hb79u2LuXPn7nfe+9///gOu1dHREcuWLYu/+qu/ipNO\nOilOPPHEqK+vj66urnjyySe7z1u0aFH85Cc/if/8z/+MiP+5bfnXv/71kFuljVBqAQCAIaSysjLO\nPvvsuOqqq2LNmjXxk5/8JN74xjfGihUrYtu2bf265pgxY/b7+jWveU1EROzevTsiIp577rmIiAP2\n8/a0v/dTn/pUrF69Ov7hH/4h7rjjjnjggQdi2bJl+10vIuJd73pXHHPMMXH77bdHRMTq1avj2GOP\njXe+8539+j2kLOnbj+21Kh+FQiGKxWLeMSghMy0v5glAuTr22GNjwYIFcd1118WTTz4Zp59+ehxx\nxBEREbFnz57ughoR8eKLL/brM8aPHx8REc8//3yceOKJ3ceff/75/c7btWtXPPTQQ/GpT30qLrro\nou7jv/nNbw645vDhw2PBggVx2223xSWXXBJr166Niy++OKqqkq54/WKlFgAAGBL+tGL65zZv3hwR\nEcccc0xERBx33HEREfHEE090n7N9+/b4xS9+0a/PPeOMM2LYsGFx//3373d87dq1+329Z8+e2Lt3\nbwwfPny/43feeWeP1124cGG89NJLcfHFF8eePXviAx/4QL/ypW7o1XgAAGBImj17dpxzzjkxe/bs\nOOGEE6KjoyPWrVsXq1evjrlz53a/xucd73hHjB49Oq644oq4/PLLY8+ePfH1r389Ro4c2a/PnTx5\ncsybNy9uuumm2LdvX0yfPj0efvjhWLdu3X7njR49Os4444y45ZZb4phjjolx48bFd7/73Xj22Wd7\n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\nUmoBAABIllILAABAspRaAAAAkqXUAgAAkCylFgAAgGQptQAAACRLqQUAACBZSi0AAADJUmoBAABI\nllILAABAspRaAAAAkqXUAgAAkCylFgAAgGQptQAAACRLqQUAACBZSi0AAADJUmoBAABIllILAABA\nspRaAAAAkqXUAgAAkCylFgAAgGQptQAAACRLqQUAACBZSi0AAADJUmoBAABIVlXeAQ5HzWOP5x2B\nEqrJOwAlN1hmumX6tLwjAAAwQKzUAgAAkCylFgAAgGQptQAAACQr6T21K4bfkHcEIAWb8g5A6uZP\nXZ13BADgIKzUAgAAkCylFgAAgGQptQAAACQr6T21nzjiuLwjADAUbL467wSltznimLwzUDrm2aOt\nk5fnHQHIgJVaAAAAkqXUAgAAkKxMbz9uaWmJtra2qK6ujsbGxoiIWL16dTz66KNRVVUV48ePj0su\nuSRGjhyZZSwAAAASlelK7axZs+Kaa67Z79hpp50WjY2NcdNNN8WECRPinnvuyTISAAAACct0pXbK\nlCmxdevW/Y696U1v6v71G97whvjpT3/a6+stfWBCybIBABxMfX193hFeVaFQiGKxmHcMgFwMqj21\n69ati+nTp+cdAwAAgEQMmlf63H333VFZWRnnnHPOQc9pbW2N1tbWiIhoaGjIKhoAMMQVCoW8I7yq\nqqqqQZ+RvjHT8mKeA2tQlNr169fHo48+Gtddd11UVFQc9Lza2tqora3NMBkAQAz6W3vdflx+zLS8\nmGf/1NTU9Oq83EvtY489FmvXro3Pfe5zccQRR/TpZ08av2iAUgEAKZk7f0zeEQDISaaltqmpKdrb\n26OjoyMWL14cdXV1cc8990RnZ2d84QtfiIiIU045JT760Y9mGQsAAIBEZVpqlyxZcsCx2bNnZxkB\nAACAMjKonn4MAAAAfZH7ntrDsarz2bwjAACDwKpv+zcB2Vt7/ql5RwDCSi0AAAAJU2oBAABIllIL\nAABAspLeU3v3+ivzjgAAcFgqV9532NcoFApRLBZLkAYgPVZqAQAASJZSCwAAQLJ6XWo7Ozvjqquu\nil/96lcDmQcAAAB6rdd7aquqqmLr1q1RWVk5kHn6pBR7UBgc7AUqP2ZaXsyz/JgpAOWiT7cfT5s2\nzUotAAAAg0afnn78rne9K7761a/G3r17Y8aMGTFmzJioqKjY75zx48eXNCAAAAAcTJ9K7fXXXx8R\n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\niIhjjz02jj322KxjAAAAkJC8uP0YAAAA9kferNTujzkNa7KOQBuZ8+9tM8sFFx7VJucBAADSYKUW\nAACAZCm1AAAAJEupBQAAIFlJ76m9f9FVWUc4oBTf8VC7nTuXy0VdXV27nR8AAChMVmoBAABIllIL\nAABAspRaAAAAkpX0ntr23OMJAABA/rNSCwAAQLKUWgAAAJKl1AIAAJAspRYAAIBkKbUAAAAkS6kF\nAAAgWUotAAAAyVJqAQAASJZSCwAAQLKUWgAAAJKl1AIAAJAspRYAAIBkKbUAAAAkS6kFAAAgWUXN\nzc3NWYcAAACA/ZHsSu0111yTdQTakHkWHjMtLOZZeMy0sJhn4THTwmKe7SvZUgsAAABKLQAAAMkq\n/u53v/vdrEPsr8GDB2cdgTZknoXHTAuLeRYeMy0s5ll4zLSwmGf78UZRAAAAJMvtxwAAACRLqQUA\nACBZJVkH2Fc1NTUxd+7caGpqirFjx8bZZ5+ddST2UV1dXcyePTvWr18fRUVFUVlZGWeccUa88847\nMWvWrHjzzTfj4IMPjm984xvxoQ99KOu47KWmpqa45pproqysLK655pqora2NW265JTZs2BCDBw+O\nK6+8MkpKkvsj54C1cePGuP322+OVV16JoqKiuPzyy6OiosI1mqhHHnkkHn/88SgqKopDDz00Jk+e\nHOvXr3eNJuS2226LpUuXRu/evWPmzJkREbv8e7O5uTnmzp0by5Yti65du8bkyZPt5cszO5vnvHnz\nYsmSJVFSUhL9+vWLyZMnR48ePSIi4oEHHojHH388OnXqFJdcckmMGjUqy/jsxM5mut3DDz8c8+bN\nizlz5kSvXr1co+0gqZXapqamuPPOO+O6666LWbNmxe9///t49dVXs47FPiouLo4vfOELMWvWrLjx\nxhvjl7/8Zbz66qvx4IMPxogRI+LWW2+NESNGxIMPPph1VPbBwoULY8CAAS0f/9d//VeMGzcufvjD\nH0aPHj3i8ccfzzAd+2ru3LkxatSouOWWW2LGjBkxYMAA12ii6uvr4xe/+EVUVVXFzJkzo6mpKRYv\nXuwaTcwpp5wS1113XavP7eqaXLZsWaxZsyZuvfXW+NKXvhRz5szJIjK7sbN5HnPMMTFz5sy46aab\n4pBDDokHHnggIiJeffXVWLx4cdx8883x//7f/4s777wzmpqasojNbuxsphHvLeYsX748crlcy+dc\no20vqVL74osvRv/+/aNfv35RUlISJ5xwQjz11FNZx2If9enTp+WnUQcddFAMGDAg6uvr46mnnoqT\nTz45IiJOPvlks03I2rVrY+nSpTF27NiIiGhubo6VK1fG8ccfHxHv/UFvnunYtGlT/PnPf47TTjst\nIiJKSkqiR48ertGENTU1xbZt26KxsTG2bdsWpaWlrtHEHH300TvcGbGra/Lpp5+OT33qU1FUVBTD\nhg2LjRs3xrp16zo8M7u2s3mOHDkyiouLIyJi2LBhUV9fHxHvzfmEE06Izp07R9++faN///7x4osv\ndnhmdm9nM42I+MlPfhIXXnhhFBUVtXzONdr2krrPqL6+PsrLy1s+Li8vjxdeeCHDRHxQtbW18dJL\nL8WQIUPirbfeij59+kRERGlpabz11lsZp2Nv3XXXXXHRRRfF5s2bIyJiw4YN0b1795a/nMvKylr+\ncib/1dbWRq9eveK2226Ll19+OQYPHhyTJk1yjSaqrKwszjzzzLj88sujS5cuMXLkyBg8eLBrtADs\n6pqsr69vtSpUXl4e9fX1LceS/x5//PE44YQTIuK9eQ4dOrTla67XdDz11FNRVlYWhx9+eKvPu0bb\nXlIrtRSWLVu2xMyZM2PSpEnRvXv3Vl8rKipq9RMt8teSJUuid+/e9oIUkMbGxnjppZfi9NNPj+nT\np0fXrl13uNXYNZqOd955J5566qmYPXt2/OhHP4otW7ZETU1N1rFoY67JwnH//fdHcXFxnHTSSVlH\n4QPYunVrPPDAAzFx4sSsoxwQklqpLSsri7Vr17Z8vHbt2igrK8swEfuroaEhZs6cGSeddFKMGTMm\nIiJ69+4d69atiz59+sS6deuiV69eGadkb6xatSqefvrpWLZsWWzbti02b94cd911V2zatCkaGxuj\nuLg46uvrXasJKS8vj/Ly8paVgeOPPz4efPBB12iiVqxYEX379m2Z15gxY2LVqlWu0QKwq2uyrKws\n6urqWo7z76V0LFq0KJYsWRLXX399yw8p3v/vX9drGt54442ora2Nb33rWxHx3nV49dVXx7Rp01yj\n7SCpldojjjgiXn/99aitrY2GhoZYvHhxjB49OutY7KPm5ua4/fbbY8CAATF+/PiWz48ePTp++9vf\nRkTEb3/72/jYxz6WVUT2wQUXXBC33357zJ49O77+9a/HRz7ykZgyZUoMHz48nnzyyYh47y9p12o6\nSktLo7y8PFavXh0R75WigQMHukYTlcvl4oUXXoitW7dGc3Nzyzxdo+nb1TU5evToeOKJJ6K5uTme\nf/756N69u9saE1BTUxMLFiyIq6++Orp27dry+dGjR8fixYvj3Xffjdra2nj99ddjyJAhGSZlbxx2\n2GExZ86cmD17dsyePTvKy8vj3/7t36K0tNQ12g6Kmpubm7MOsS+WLl0aP/nJT6KpqSlOPfXUOOec\nc7KOxD567rnn4vrrr4/DDjus5aeQ559/fgwdOjRmzZoVdXV1fl1IolauXBkPP/xwXHPNNfHGG2/E\nLbfcEu+8804MGjQorrzyyujcuXPWEdlLf/nLX+L222+PhoaG6Nu3b0yePDmam5tdo4maP39+LF68\nOIqLi+Pwww+Pr3zlK1FfX+8aTcgtt9wSzz77bGzYsCF69+4dEyZMiI997GM7vSabm5vjzjvvjGee\neSa6dOkSkydPjiOOOCLrb4G/sbN5PvDAA9HQ0NDy5+rQoUPjS1/6UkS8d0vyb37zm+jUqVNMmjQp\nPvrRj2YZn53Y2Uy3v+FiRMQVV1wR06ZNa/mVPq7RtpVcqQUAAIDtkrr9GAAAAP6WUgsAAECylFoA\nAACSpdQCAACQLKUWAACAZCm1ALSrRYsWxYQJE2LSpEnxzjvvtPpaY2NjTJgwIebPn9/huebPnx8T\nJkyIxsbGDn/ufdHU1BR33XVXfOlLX4qJEyfG9OnTs44UERGzZ8+OK664Yo/HbZ9/bW1tu2X5+c9/\nHn/84x/b7fwA5LeSrAMAcGDYtGlTLFiwIC688MKsoyTlySefjIULF8bFF18cw4YNy5vfDXzuuefG\nGWeckXWMiIhYuHBhHHnkkTFmzJisowCQAaUWgA4xcuTIePTRR2PcuHFRWlqadZwO8e6770bnzp0/\n0Dlee+21iIg444wzolOn/LnBqn///llHAICIUGoB6CDnnHNO/OAHP4j7778/Lr300l0eN3/+/Pjp\nT3+6wy3Js2fPjmeffTZmz54dERG1tbXx1a9+NS677LKoq6uL3/zmN7F169YYPXp0fPnLX45169bF\nnXfeGc8991yUlpbGueeeG6eccsoOz/faa6/F3Llz44UXXoju3bvH2LFj47zzzmtVIN9+++245557\nYsmSJbFhw4bo27dvjB8/PiorK1uOWbRoUdx2223x3e9+Nx599NFYvnx5HHzwwTFjxoxdfq81NTVx\n3333xV/+8pcoKSmJ4cOHx0UXXRQVFRUREXHFFVfEm2++GRERn//85yMiYvLkyTv9PiIiHn300fjd\n734Xq1evjubm5hgwYECce+65ceyxx7Y6bsuWLfGzn/0snnzyyVi7dm306NEjjjzyyLjssstafuBQ\nW1sb9957byxfvjw2btwYZWVlcdxxx8Ull1yy03lERLzxxhvx4x//OFauXBldu3aNE088MQYOHLjT\nrNXV1fHLX/4yVq9eHd26dYvRo0fHF77whVYr0RMmTIhzzjknevXqFT//+c9jw4YNMWjQoLjsssvi\n0EMPbfUavfnmm/G///u/ERFx8sknxxVXXBGrV6+Ou+++O1atWhWbN2+OXr16xdChQ+NrX/taFBcX\n73IuAKRFqQWgQ/Tp0yc+/elPx8KFC+PMM8+Mgw8+uE3O++CDD8bRRx8dV1xxRbz66qtx9913R6dO\nneKll16KsWPHxplnnhm/+tWv4j/+4z/iiCOOaClD282YMSNOPfXUOPvss+OZZ56Jn/3sZ1FUVBQT\nJkyIiPdum/72t78d27Zti/POOy/69u0bzzzzTNxxxx3x7rvvxmc+85lW5/vhD38Yn/zkJ+Nf/uVf\noqmpaZe5a2pqYtq0afGRj3wkvvGNb8SWLVvi3nvvjW9/+9sxY8aMKCsri29+85vxi1/8IhYtWhQ3\n3HBDROx+hbS2tjbGjh0bBx98cDQ2NsaSJUuiqqoqrrvuuhg1alRERDQ0NMQNN9wQL7/8cpx11lkx\nbNiw2LRpU9TU1MTGjRujtLQ0amtr49prr42uXbvGxIkTo3///lFXVxfLly/f5XNvP++2bdvii1/8\nYvTu3Tt+/etfx5/+9Kcdjr377rvjkUceic985jNx0UUXRX19fdxzzz3xyiuvxA033NDqBwq/+93v\noqKiIi655JJoaGiIefPmxfTp0+OWW26J4uLi+OY3vxnTpk2LD3/4w3HeeedFRESvXr0iIqKqqip6\n9OgRl112WfTq1Svq6+tj6dKl0dzcvMvvA4D0KLUAdJizzz47qqur47777ovJkye3yTn79esXX/3q\nVyMiYtSoUfHcc8/FE088EV/96lfjU5/6VEREDB48OJ5++ul48skndyi1Y8eOjbPPPjsi3rtFetOm\nTfHII4/EuHHjokePHrFw4cKoq6uLm266KQ455JCIiDjmmGNi48aN8dOf/jROP/30Vqt+Y8aMiYsu\numiPue+5557o169fXHfddS2PHzZsWHzta1+Lhx9+OP7pn/4pBg0aFGVlZS1f25OLL7645f+bmppi\nxIgR8frrr8evfvWrllL7xBNPxPPPPx9XXXVVjB49uuX4448/vuX/58+fH9u2bWsp19vtaoU44r2V\n6mCPCtIAAAcDSURBVDfeeCNuuOGGlqyjRo2Kb37zm62Oq62tjYceeijOO++8+Md//MeWzx9yyCFx\n/fXXx9NPPx0f//jHWz5fXFwcV199dZSU/P//ZLn55pvjxRdfjCOPPDIGDRoUnTt3jp49e7Z6jd5+\n++1Ys2bNDt/niSeeuOsXEIAk5c/mHAAK3oc+9KEYP358PPHEE7F69eo2OedHP/rRVh9vv3V3e4nb\n/ry9e/eOtWvX7vD4T3ziE60+/uQnPxlbtmyJV155JSIinnnmmRgyZEj07ds3GhsbW/4bNWpUbNiw\nIV599dVWj//bQrYrW7ZsiZdeeilOOOGEVoW4b9++ceSRR8azzz67x3PszP/93/9FVVVV/PM//3Oc\nf/75cf7558fy5ctbvdbLly+P0tLSVkXv/Z555pk47rjjWhXaPXn++eejvLy8VbHs1KnTDq/v8uXL\no7m5OU488cRWr+fQoUPjoIMOij//+c+tjj/mmGNaFdrDDjssIiLq6up2m6dnz57Rr1+/uPvuu6O6\nujpef/31vf5eAEiLlVoAOtT48ePj0UcfjXvvvTemTJnygc/Xo0ePVh9vL0A7+/y2bdt2eHzv3r13\n+nF9fX1ERLz11luxZs2aOP/883f6/Bs2bGj1cZ8+ffaYeePGjdHc3LzTN8wqLS1t2Ue7L+rq6uJ7\n3/teDBw4MC655JLI5XJRXFwc9957b8ubTW3Pu6ey+s477+xToY2IWL9+/U6/n/e/vm+//XZExC5n\n//7X8/3v9rx9vu++++5u8xQVFcXUqVPjvvvui//5n/9p2Qv92c9+Nk4//fTdfzMAJEWpBaBDdevW\nLc4+++yYN29efPazn93h6126dImI9/Zo/u0K3fvLTlt56623olu3bq0+joiWUtezZ8/o3bt3TJo0\naaeP374yvF1RUdEen7NHjx5RVFQU69ev3+Fr69ev369f21NTUxObNm2Kb3zjG1FeXt7y+a1bt7Y6\nrmfPni2r0LvSs2fPllK/t0pLS3d63u2v53bbv7epU6fu8IOH7c/dVrbfmt7c3Bwvv/xyPProozFn\nzpw4+OCDd1jhByBdbj8GoMN9+tOfjrKysrjnnnt2+Foul4uIiL/+9a8tn9u4cWM8//zz7ZLlD3/4\nQ6uPf//730e3bt1abnMdOXJkvPbaa5HL5eKII47Y4b+DDjpon5+zW7duMXjw4HjyySdbvZnUm2++\nGatWrYrhw4fv8zm3r0L/7e3Mq1evjlWrVrU6buTIkbF+/fp4+umnd3muY445JpYuXRrr1q3b6+cf\nNmxYrF27ttWcmpqadnh9jznmmCgqKoq6urqdvp59+/bd6+fcbler8NsVFRXF4Ycf3rLneE+lHoC0\nWKkFoMN17tw5zj333PjP//zPHb720Y9+NLp37x4/+tGPYsKECfHuu+/GQw891Go1tS099thj0dTU\nFEOGDImampp4/PHH47zzzovu3btHxHu3S//hD3+I66+/PsaNGxcVFRWxdevWeO211+K5556Lq666\nar+ed+LEiTFt2rSoqqqK008/PbZs2RL33XdfdO/ePcaPH7/P5xsxYkQUFxfH7NmzY/z48bFu3bq4\n7777IpfLtXq335NOOikee+yx+Pd///f43Oc+F0OGDIktW7ZETU1NjBs3LgYMGBATJkyIZcuWxdSp\nU+Nzn/tc9O/fP+rr66OmpmaXtw2fcsopsWDBgpg5c2acf/750atXr/j1r38dmzdvbnVc//7946yz\nzoo777wzVq9eHUcffXR07tw51q5dG8uXL4/TTjstPvKRj+zT9z5w4MB47rnnYsmSJVFaWho9e/aM\nzZs3x1133RWf+MQnon///tHU1BSLFi2K4uLifT4/APlNqQUgE6eeemo8/PDDO7yBT48ePeKaa66J\nn/zkJzFr1qwoLy+Pc889N1asWLHfb6C0O9/61rdi7ty58bOf/Sy6d+8e55xzTpx77rktX+/evXt8\n//vfj5/+9KexYMGCqK+vjx49ekRFRUWMGTNmv5931KhRce2118Z9990Xs2bNavV7avd1P2tExKGH\nHhpXXnllzJ8/P6ZPnx79+vWLCy64IGpqalq9biUlJS17Tbe/E3XPnj3jyCOPbLk1uG/fvnHjjTfG\n/9feHaNGCEQBGH4pvIC2YmFt5QW8h3gPj2Etiq1ewMJDbb/YJEXIQprAdhn4vnqYqX+GeXMcR+z7\nHs/nM/I8/3O41M++27bFuq6vf2rbto1lWX6t7fs+yrKM67riuq6I+L6hb5rmNWH6HX3fxzzPMU1T\n3PcdXdfFMAxRFEWc5xmPxyOyLIuqqmIcx6jr+u0zAPi/Pj591gYAAECivKkFAAAgWaIWAACAZIla\nAAAAkiVqAQAASJaoBQAAIFmiFgAAgGSJWgAAAJIlagEAAEjWFwnIXsMtTCDBAAAAAElFTkSuQmCC\n", | |
"text/plain": [ | |
"<Figure size 1152x1872 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "kYzOeTKRaL4U", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"###Time analysis — conclusions\n", | |
"1. August presents the lowest number of car accidents 651 in 2017. The rest of the months present a number of accidents around 800–900.\n", | |
"2. The number of car accidents decrease on weekends.\n", | |
"3. The greater number of car accidents occurs from (8–9) and (12–20).\n", | |
"4. At night most of the accidents happen on weekends." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "E_bSlhC9lvQf", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"##Type of accident analysis" | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "zytNezkwlyKP", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"###Vehicles involved\n", | |
"\n" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "xpJ7wpQsaIN8", | |
"colab_type": "code", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 743 | |
}, | |
"outputId": "f1fb8f9c-fef9-4b0e-e675-bccccd3a1c04" | |
}, | |
"source": [ | |
"# Compute the number of accidents according to the number of vehicles involved\n", | |
"vehicles_involved = df.vehicles_involved.value_counts()\n", | |
"# There is no car accident with 12 vehicles involved. We include 0 in our Serie for better visualization\n", | |
"vehicles_involved[12]=0\n", | |
"\n", | |
"vehicles_involved.sort_index(inplace=True)\n", | |
"\n", | |
"# Plot number of car accidents according to the number of vehicles involved\n", | |
"vehicles_involved.plot(kind='bar',figsize=(12,7), color='darkblue', alpha=0.5)\n", | |
"\n", | |
"# Title and x,y labels\n", | |
"plt.title('Accidents in Barcelona in 2017',fontsize=20)\n", | |
"plt.xlabel('Vehicles involved',fontsize=16)\n", | |
"plt.ylabel('Number of accidents',fontsize=16);\n", | |
"\n", | |
"# Print a label above each bar indicating the number of accidents\n", | |
"for index in vehicles_involved.index:\n", | |
" plt.text(x=index,y=vehicles_involved.loc[index],s=str(vehicles_involved.loc[index]),horizontalalignment='center')" | |
], | |
"execution_count": 53, | |
"outputs": [ | |
{ | |
"output_type": "stream", | |
"text": [ | |
"<bound method Series.kurt of 0 5\n", | |
"1 2255\n", | |
"2 7028\n", | |
"3 797\n", | |
"4 165\n", | |
"5 48\n", | |
"6 14\n", | |
"7 6\n", | |
"8 2\n", | |
"9 5\n", | |
"10 2\n", | |
"11 1\n", | |
"12 0\n", | |
"13 1\n", | |
"14 1\n", | |
"Name: vehicles_involved, dtype: int64>\n" | |
], | |
"name": "stdout" | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAuIAAAHGCAYAAAAxNu6CAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3XlclWX+//H3gYPAEQUO4L4guUya\niImWS6KEaWplimZqU6kt2qY1TvprJm1Mxaw0td1SZ2rU3CjH0sSt1JxwT2xSSzPDDQ4gi4rA/fvD\nh+crAXqjHI7g6/l48Hh4rvu6r/t935zyc26vc90WwzAMAQAAAChXHu4OAAAAANyIKMQBAAAAN6AQ\nBwAAANyAQhwAAABwAwpxAAAAwA0oxAEAAAA3oBAHUCYmTJggi8WiDRs2mN6nS5cuslgsrgvlRldz\nPVA8i8WiLl26uDvGNanM73UAV49CHKgkJk2aJIvFIovFop9++sndca5rhw8flsVi0SOPPOLuKNfk\nYnF36Y/ValXNmjXVq1cvffXVV+6OiHKSmpqqOXPm6P7771fjxo3l6+srf39/derUSR999JEKCgpK\n3HfLli3q2bOn7Ha7fH19FR4erhkzZig/P79I3/T0dE2bNk2DBw9W8+bNZbVaZbFYlJCQUOL4f3yP\nFvfzr3/9q0yuA1DRWN0dAMC1MwxDc+bMkcVikWEY+vDDD/X666+Xa4ann35aAwcOVIMGDcr1uNer\n8rweDz/8sEJDQyVJZ86c0U8//aSVK1fqyy+/1Pvvv6/HH3/c5Rlwef/85z+Vk5PjsvEXL16sESNG\nqHbt2uratasaNGigEydOaNmyZRo+fLi++uorLV68uMhd+c8//1z9+vWTj4+PHnjgAdntdq1YsUKj\nR4/W5s2btXjx4kL9Dx8+rL/+9a+SpHr16ik4OFgnTpy4bLbx48cX256Zmak333xTVqtV3bp1u4az\nByowA0CFt2rVKkOS8cgjjxi1atUygoODjXPnzrk71hVFRUUZ7vjf0KFDhwxJxsMPP1zuxy5LF6/f\n+vXri2xbsmSJIclo2LBhuecqa5KMqKgod8e4rq1du9b44osvjPz8/ELtx44dM+rXr29IMpYsWVJo\nW0ZGhhESEmJUqVLFSExMdLafOXPGaN++vSHJWLBgQaF9HA6HkZCQYKSmphqGYRgPP/ywIclYs2ZN\nqTO/9957hiTj/vvvL/W+QGXB1BSgEvjwww8lSY899pgGDx6slJQULV++vMT++fn5eu+999SxY0f5\n+/vL19dXjRs31vDhw3XgwIGr6nu5OdELFy5UmzZt5Ovrqxo1auihhx5ScnLyZc9p9erV6tmzp4KD\ng+Xt7a2bbrpJY8aMUXp6epG+oaGhCg0NVXZ2tsaMGaMGDRrI29tbjRs31tSpU2UYRqGcjRo1kiTN\nnz+/0D+Pz5s3T9KFf2GYP3++OnTooJCQEPn4+Kh+/frq3r27Fi1adNncV7oeF+c7p6Sk6PHHH1ft\n2rXl7e2tFi1aaO7cuabGNuOuu+6SJJ06darItnnz5qlfv34KCwuTr6+vqlevro4dO+qTTz4pdqyL\nU2Byc3P1j3/8Q82aNZO3t3eRqT2LFi3SnXfeKbvdLh8fH4WGhurBBx/Utm3bioy5YMECde3aVQEB\nAfLx8dHNN9+sV199VefOnTN9jhkZGRo3bpyaNWsmHx8fBQYGqnv37sVOk9iwYYMsFosmTJigXbt2\nqVevXgoICJDNZlNUVJS2bNlSZJ/k5GT94x//UMeOHVWrVi1VqVJFderU0aBBg7Rv3z7TOaXi54hf\nTaaSREdH65577pGHR+G/1mvVqqUnn3zSebxLLVmyRKdOndLAgQMVGRnpbPfx8dGrr74qSXr33XcL\n7RMYGOj8HV+rDz74QJL0xBNPXPNYQEXF1BSggjtx4oS++OILNW3aVB06dFD16tX1xhtv6IMPPtAD\nDzxQpH9ubq569+6tNWvWqH79+ho0aJCqV6+uw4cPa/ny5erUqZOaNGlS6r4lmT59up5//nkFBATo\nz3/+swICArR69Wp16NBB/v7+xe7zyiuvaMKECbLb7erdu7dq1KihPXv26PXXX9eXX36p7777TtWr\nVy+0z/nz59W9e3clJyfr7rvvltVqVXx8vMaOHauzZ886/3m8S5cuSk9P11tvvaVWrVqpT58+zjEi\nIiIkSS+99JKmTJmiRo0aacCAAfL399exY8eUmJioxYsXF3tdSyM9PV0dO3ZUlSpVFBsbq3Pnzmnx\n4sUaOnSoPDw89PDDD1/T+JKcxeilBdZFI0aMUIsWLdS5c2fVrl1bqamp+vLLL/XQQw/pp59+0sSJ\nE4sds1+/fkpMTNTdd9+tPn36qEaNGpIufHB59NFHNX/+fAUHB6tv374KCQnR0aNHtX79ejVr1qxQ\n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\n7NlTjRo1UlZWln799Vdt3LhRnTp1KvYunll+fn667bbb9O2332rw4MFq2rSpPD09de+996pBgwbq\n1KmTGjdurDZt2qhhw4Y6e/as1qxZox9//FH33nuvbr755qs+tivMmzfPWVifP39ev/76q+Lj45Wd\nna177rmn0FrpI0eO1Ny5c9W/f3/FxsaqTp062rt3r1atWqUBAwaYfmDRpYYPH65vv/1W//rXv9Sk\nSRPdd999CgkJUXJystatW6ehQ4dqwoQJki6sIb59+3a98847uummm9S9e3c1aNBADodDhw4d0jff\nfKNHH31U77333mWPGRcXp2+//VazZ89WYmKiunbt6lxHPDMzU7Nnz3Y+uOlqeHh46Nlnn1VcXJxa\ntmyp++67T7m5uVq/fr0cDoe6du3qvPN+PZg/f75efvlleXp66o477tDMmTOL9AkNDS3032v16tX1\n4YcfKjY2Vl26dNHAgQNlt9v1xRdf6KefflJsbGyxa+b/5S9/cX4Q2bRpkyRp2rRpzgdC9enTp9B7\n7qKFCxfq9OnTfEkTuJS7l20BUHqDBg0yJBlvvfXWFft269bNkGQsW7bM2Xb+/Hlj1qxZRtu2bY2q\nVasaNpvNaNy4sfHYY48VWcrMbN+SluszDMP497//bbRu3drw9vY2goODjcGDBxu///77ZR9x/+23\n3xr9+/c3ateubXh5eRnBwcFGq1atjNGjRxd6HLdhXFi+sKRHuZeU68CBA0bv3r0Nu91uWCwW51rO\nubm5xtSpU40ePXoY9evXd2a+7bbbjHfffdc4d+7cZa72lY+ryzyu/eJScJeuf305xS1faLFYjICA\nAKNTp07G+++/X2it8os2b95sdO3a1QgICDD8/PyMjh07GsuXL3cupzd+/Phij3Mln3zyidG5c2ej\nevXqhre3txEaGmoMGjTI2L59e5G+K1asMHr16mWEhIQYXl5eRs2aNY22bdsaL730kvHjjz8W6lvS\nNUtLSzP++te/Go0bNzaqVKli+Pv7GzExMcbq1auL9C3p3C4q7j10/vx544033jBuvvlmw8fHx6hZ\ns6YxZMgQ4/Dhw1f9u7rWTCW5+H673E9J77tNmzYZd999txEQEGD4+PgYt9xyi/Hmm28W+965mOty\nxynpfNq1a1fseubAjcxiGJc8+xkAAABAuWCOOAAAAOAGFOIAAACAG1CIAwAAAG5AIQ4AAAC4AYU4\n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\nGRkKDAyUJAUEBCgjI0OS5HA4FBwc7NwvKChIDodDDoej0EOE7Ha7HA5HkeMkJCQoISFBkhQXF1do\nrLJktVpdNrYrXC95bTab6b4eHh6m+18P5yZdP9fZrIqWV6p4mStaXonM5aGi5ZXIXB4qWl6JzFd1\nfLMdCwoKdPDgQaWkpOj8+fNFtkdFRZkaZ+LEibLb7crIyNCrr76qOnXqFNpusVhksVjMxrqsmJgY\nxcTEOF+npKSUybh/FBwc7LKxXeF6yZuTk2O6r81mM93/ejg36fq5zmZVtLxSxctc0fJKZC4PFS2v\nRObyUNHySmS+1B/r25KYKsSPHj2qadOm6fjx4yX2MVuI2+12SZK/v7/atm2rgwcPyt/fX2lpaQoM\nDFRaWppz/rjdbi90cVJTU2W322W327Vv3z5nu8PhUPPmzU0dHwAAALgemCrE58yZo/z8fI0ePVoN\nGjSQl5fXVR3s7NmzMgxDvr6+Onv2rPbs2aPY2FhFRkZq48aN6tOnjzZu3Ki2bdtKkiIjI7Vq1Sp1\n7NhRBw4ckM1mU2BgoCIiIrRgwQJlZWVJknbv3l3qL4wCAAAA7mSqED906JBGjhyp22677ZoOlpGR\noddff12SlJ+fr06dOikiIkI33XSTpk+frnXr1jmXL5Sk1q1ba8eOHXr22WdVpUoVjRw5UpLk5+en\nfv36ady4cZKk2NhYVkwBAABAhWKqEK9WrVqRpQuvRs2aNTVt2rRix3/55ZeLtFssFg0fPrzYsaKj\noxUdHX3NmQAAAAB3MPVkzV69emn16tUqKChwdR4AAADghmDqNvfp06eVnJys0aNHF1q/+yKLxaIB\nAwa4JCAAAABQGZkqxC8+Sl5SiSunUIgDAAAA5pkqxBctWuTqHAAAAMANxdQccQAAAABly/RSKIZh\naPv27dq3b5+ysrLUv39/hYSEaN++fapVq5bzQT0AAAAArsxUIZ6VlaUpU6bo4MGD8vHx0dmzZ9Wj\nRw+FhIQoISFBfn5+Gjp0qKuzAgAAAJWGqakpn3zyiVJTUzVx4kR9/PHHhbaFh4dr7969LgkHAAAA\nVFamCvHExEQNHDhQTZs2lcViKbQtODhYqampLgkHAAAAVFamCvGzZ8+WOAc8NzdXhmGUaSgAAACg\nsjNViNepU0d79uwpdtu+ffvUoEGDMg0FAAAAVHamCvHu3btr5cqVWrZsmVJSUiRJOTk5Wr9+vVav\n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\nU65F3GKx8P777+Pv70/Pnj2t28PDw9mxYwcAO3bsoGXLltbt8fHxWCwWjhw5gqurK9WrVycsLIzk\n5GRyc3PJzc0lOTmZsLCw8nwqIiIiIiL3pFynphw+fJj4+HiCgoJ47bXXABg0aBB9+/Zl4cKFbNu2\nzbp8IUCzZs04cOAArzl8gbUAACAASURBVLzyCs7OzowcORIANzc3nn76aSZOnAhA//79tWKKiIiI\niDiUci3iDRo0IDo6usR906ZNK7bNZDIxbNiwEo/v0qULXbp0ua/5RERERETKS7nPERcRERERERVx\nERERERFDqIiLiIiIiBhARVxERERExAAq4iIiIiIiBlARFxERERExgIq4iIiIiIgBVMRFRERERAyg\nIi4iIiIiYgAVcRERERERA6iIi4iIiIgYQEVcRERERMQAKuIiIiIiIgZQERcRERERMYCKuIiIiIiI\nAVTERUREREQMoCIuIiIiImIAFXEREREREQOoiIuIiIiIGEBFXERERETEACriIiIiIiIGUBEXERER\nETGAiriIiIiIiAFUxEVEREREDKAiLiIiIiJiABVxEREREREDqIiLiIiIiBhARVxERERExAAq4iIi\nIiIiBlARFxERERExgIq4iIiIiIgBVMRFRERERAygIi4iIiIiYgAVcRERERERA6iIi4iIiIgYQEVc\nRERERMQAKuIiIiIiIgZQERcRERERMYCKuIiIiIiIAVTERUREREQMoCIuIiIiImIAFXEREREREQM4\nleeDLVmyhAMHDuDu7s78+fMByM3NZeHChZw7d44aNWrw6quv4ubmhsVi4dNPP+XgwYO4uLgwcuRI\nateuDcD27dtZvXo1AP369aNTp07l+TRERERERO5ZuY6Id+rUiUmTJtlsi4mJISQkhEWLFhESEkJM\nTAwABw8e5MyZMyxatIjhw4ezbNky4EZxX7lyJbNmzWLWrFmsXLmS3Nzc8nwaIiIiIiL3rFyLeKNG\njXBzc7PZtm/fPiIjIwGIjIxk3759AOzfv5+OHTtiMpmoX78+ly9f5sKFCyQlJREaGoqbmxtubm6E\nhoaSlJRUnk9DREREROSelevUlJJkZ2dTvXp1ADw8PMjOzgYgKysLb29v63FeXl5kZWWRlZWFl5eX\ndbunpydZWVkl3veWLVvYsmULAHPmzLG5v/vJycnpgd13Wbm6upb5WLPZXObjH+TzcsTMd8Iefi/u\nhKPlBcfL7Gh5QZnLg6PlBWUuD46WF5T5rh7fsEcugclkwmQy3bf7i4qKIioqynr7/Pnz9+2+b+Xt\n7f3A7rus8vLyynysq6trmY9/kM/LETPfCXv4vbgTjpYXHC+zo+UFZS4PjpYXlLk8OFpeUOZb+fn5\nlek4w1dNcXd358KFCwBcuHCBatWqATdGum89MZmZmXh6euLp6UlmZqZ1e1ZWFp6enuUbWkRERETk\nHhlexMPDw9mxYwcAO3bsoGXLltbt8fHxWCwWjhw5gqurK9WrVycsLIzk5GRyc3PJzc0lOTmZsLAw\nI5+CiIiIiMgdK9epKe+88w7//ve/uXTpEiNGjGDAgAH07duXhQsXsm3bNuvyhQDNmjXjwIEDvPLK\nKzg7OzNy5EgA3NzcePrpp5k4cSIA/fv3L3YBqMiDlpaWxl/+8hfr7ePHjzN+/Hjatm3LG2+8QV5e\nHrVr12bBggVUrVqV1atXs3TpUuvxP/zwA9988w1NmjQxIr6IiIjYgXIt4mPGjClx+7Rp04ptM5lM\nDBs2rMTju3TpQpcuXe5rNpE7UbduXWJjYwEoLCykRYsWdO/eneHDhzN16lTatGnD119/zdKlS3n9\n9dfp168f/fr1A26U8KFDh6qEi4iIPOQMn5oi4uh27tzJI488QkBAAOnp6bRu3RqAxx57jA0bNhQ7\nPiYmht69e5d3TBEREbEzKuIi92jt2rX07dsXgPr167Np0yYAVq1axalTp4odv379euvxIiIi8vBS\nERe5B9euXWPz5s307NkTgAULFvDZZ5/xxBNPkJubS8WKFW2OP3DgAJUrV6ZBgwZGxBURERE7Ylfr\niIs4mri4OEJCQqhRowZwY+74P/7xD+DG0prr16+3OX7t2rX06dOn3HOKiIiI/dGIuMg9iImJsZlm\ncnPt+6KiIubMmcPgwYOt+4qKivj6669VxEVERATQiLhImc2fn2Jz+/r1fDZvjiMw8DnrvgMHYkhK\n+hqARo0iqVmzoXXfzz+nAO6sXJkN2N7XuHGhDzy/iIiI2BcVcZG7VLFiJUaOjLbZ1rx5X5o3vzFC\n7urqSl5ennVfYGAozzzzTrlmFBEREfulqSkiIiIiIgZQERcRERERMYCKuIiIiIiIAVTERUREREQM\noCIuIiIiImIAFXEREREREQOoiIuIiIiIGEBFXERERETEACriIiIiIiIGUBEXERERETGAiriIiIiI\niAFUxEVEREREDKAiLiIiIiJiABVxEREREREDqIiLiIiIiBhARVxERERExAAq4iIiIiIiBlARFxER\nERExgIq4iIiIiIgBVMRFRERERAygIi4iIiIiYgAVcRERERERA6iIi4iIiIgYQEVc5CExduxYQkND\n6dKli832Tz75hI4dOxIWFsZ//dd/AfDzzz9Tp04dunbtSteuXZkwYYIRkUVERH7XnIwOICLlY8CA\nAbzwwguMHj3aum3Xrl1s2rSJ2NhY/P39OXTokHXfI488QmxsrBFRRUREHgoaERd5SLRu3RoPDw+b\nbf/zP//DSy+9hIuLCwDe3t5GRBMREXkoqYiLPMTS09PZu3cvPXv2JCoqiqSkJOu+48eP061bN55+\n+mn27NljYEoREZHfJ01NEXmIFRYWcvHiRdavX8+xY8cYNGgQ3377LTVr1mTv3r14enqSkpLCn/70\nJ+Li4qhatarRkUVERH43NCIu8hDz9fWle/fumEwmWrZsidlsJisrCxcXFzw9PQEIDQ0lODiY9PR0\ng9OKiIj8vqiIizzEHn/8cXbv3g3AkSNHuHbtGp6enmRmZlJYWAjATz/9REZGBkFBQUZGBW6M4Hfr\n1o3nnnsOgG3btvH444/TtWtX+vbtS0ZGhsEJRUREyk5TU0QeEiNHjuTbb78lKyuLFi1aMH78eAYO\nHMi4cePo0qULlStX5p133sFkMpGYmMjbb7+Nk5MTZrOZ2bNnU716daOfAsuWLaNevXpcunQJgJdf\nftm6bfny5fztb3/jnXfeMTiliIhI2aiI34OIiAjc3NxwdnYGYOPGjQYnErE1f36K9d916oygTp0R\n1tunTsHixYcIDn6R4GBwdXVlz5489uxJAQLp2fNv1mNTUyE19f/f17hxoeUR38apU6fYunUrr7zy\nCh9++CEAJpPJWsovXbqEj49PuecqzdixY9myZQve3t5s27bNZt/777/PzJkzSU1NtU4BskfZ2dmM\nGjWKlJQUTCYT8+fPJzw83OhYvysRERG4u7tjsVhwcnLS64jIQ0ZTU+7RV199xb59+/THU+QBe/PN\nN5kyZQpm8///s/X+++8zePBgWrRowapVqxg1apSBCW0NGDCAv//978W2nzx5kvj4ePz9/Q1IdWem\nTZtGt27diI+PJzY2lnr16hkdqVQnT56kf//+dOrUibCwMJYtW2Z0pDLbvHkzsbGxDvE6cvM8N23a\n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\n", | |
"text/plain": [ | |
"<Figure size 864x504 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "ATNrsfZpl6OF", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"###Mild — Serious injuries" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "DaxNzr_ul3WS", | |
"colab_type": "code", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 450 | |
}, | |
"outputId": "216ebb65-e542-4525-ce58-c0c8856e1f68" | |
}, | |
"source": [ | |
"# Serie with number of mild injuries and serious injuries\n", | |
"injuries = df[['mild_injuries','serious_injuries']].sum()\n", | |
"\n", | |
"# Pie plot with the percentage of victims with mild and serious injuries\n", | |
"injuries.plot(kind='pie',figsize=(7,7), colors=['green','red'], labels=None, autopct='%1.1f%%', fontsize=16)\n", | |
"\n", | |
"# Legend and title\n", | |
"plt.legend(labels=['Mild Injuries', 'Serious Injuries'])\n", | |
"plt.title('Injuries in 2017', fontsize=16)\n", | |
"plt.ylabel('')" | |
], | |
"execution_count": 32, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"data": { | |
"text/plain": [ | |
"Text(0, 0.5, '')" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 32 | |
}, | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "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\nAAAASUVORK5CYII=\n", | |
"text/plain": [ | |
"<Figure size 504x504 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "nb6EZ8Ful-2R", | |
"colab_type": "code", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 517 | |
}, | |
"outputId": "e034fd87-17e6-467b-b7fc-1ee07a8f3a57" | |
}, | |
"source": [ | |
"# Number of serious injuries per day of the week\n", | |
"accidents_serious = df[df['serious_injuries']!=0].groupby(df['date'].dt.dayofweek).sum().serious_injuries\n", | |
"# Percentage of serious injuries per day of the week\n", | |
"rate_serious = accidents_serious/accidents_serious.sum()\n", | |
"\n", | |
"# Number of mild injuries per day of the week\n", | |
"accidents_mild = df[df['mild_injuries']!=0].groupby(df['date'].dt.dayofweek).sum().mild_injuries\n", | |
"# Percentage of mild injuries per day of the week\n", | |
"rate_mild = accidents_mild/accidents_mild.sum()\n", | |
"\n", | |
"# Combine both series as a dataframe in order to plot them as a side by side bar\n", | |
"rates = pd.DataFrame({'Serious injures':rate_serious,'Mild injuries':rate_mild})\n", | |
"rates.plot(kind='bar',figsize=(12,7),color=['red','green'],alpha=0.5)\n", | |
"\n", | |
"# Title and labels\n", | |
"plt.title('Rate of injuries type by day of the week',fontsize=20)\n", | |
"plt.xlabel('Day of the week',fontsize=16)\n", | |
"plt.ylabel('Percentage',fontsize=16)\n", | |
"plt.xticks(np.arange(7),[calendar.day_name[x] for x in range(0,7)]);" | |
], | |
"execution_count": 33, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAuYAAAH0CAYAAABxb+heAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4zLCBo\ndHRwOi8vbWF0cGxvdGxpYi5vcmcvnQurowAAIABJREFUeJzs3Xl8jOf+//H3TDaJJEiCWFJLFKW1\nJcUXRSTWqi6WKFWt9qi1lNNTehzLUUuP5bSqilZpdTlaqqpFK2qpolUtraUqrdpqOUQFETKZ6/dH\nf5ljmklkmJEhr+fj0Ucz133d1/W5r7lnfHLlmmssxhgjAAAAAIXKWtgBAAAAACAxBwAAAHwCiTkA\nAADgA0jMAQAAAB9AYg4AAAD4ABJzAAAAwAeQmAPI07vvvqv69esrLCxMFotFQ4cOzbf+2LFjZbFY\ntG7dumvqd926dbJYLBo7duw1tVMQjzzyiCwWi3799Vev91WUtGzZUhaLpbDDyMVT92hhmzFjhmrV\nqqXg4GBZLBa98MIL19Serz5fvuLXX3+VxWLRI488Utih4CZHYg64YLFYnP7z8/NTRESEWrZsqQUL\nFshT2/9XrlxZlStX9khbnrZ582b17NlTZ8+eVf/+/TVmzBi1a9eusMO6qVksFrVs2bKww4CP+89/\n/qMhQ4aoWLFiGjp0qMaMGaPGjRvnew6/gAI3Bv/CDgDwZWPGjJEkZWVlKTU1VUuXLtX69ev1zTff\naObMmYUcnXd98sknMsbozTffVJMmTQp0zqBBg9S9e3fdcsst19R3w4YNtWfPHkVFRV1TOwUxadIk\njRgxQhUqVPB6X4AnfPzxx47/ly9fvpCjAeBJJOZAPv68lOLLL79U8+bNNWvWLA0fPlxVqlQpnMCu\ng99++02S3PqHPyoqyiPJdEhIiGrWrHnN7RREuXLlVK5cuevSF+AJV/PaBHBjYCkL4IamTZuqZs2a\nMsZo27ZtTscuXbqkmTNnqkOHDqpUqZKCgoIUERGhpKQkrVy50qluzhrqAwcO6MCBA07LZv68hvHH\nH3/UI488opiYGAUGBqps2bLq0aOH9u7d61bsdrtds2fP1p133qnQ0FAVL15cd955p1555RXZ7XZH\nvQULFshisWj+/PmSpCpVqjhiu9KfwfNav5uzROPkyZPq27evypUrp6CgINWuXdvRj6vx+fMvRvkt\n/blS38eOHdPjjz+uChUqyM/PTwsWLJCU/5/4v/rqK3Xp0kXR0dEKDAxUTEyMnnjiCUdidLlffvlF\nffv2VbVq1RQcHKyIiAjdcccd6tevn06dOpXXkEn635hL0vr1653uh7Fjx+rHH3+UxWJRQkJCnm3c\ncccdCggI0NGjRyU5j+HmzZuVlJSkEiVKKCwsTG3bttU333zjsh2bzaZZs2apcePGCg8PV0hIiOrX\nr6+ZM2c63ScFdfHiRY0aNUpVqlRRUFCQYmNjNW7cOF26dMlR5/Tp0woJCVFsbGyey8TuueceWSyW\nPOP+s23btqldu3YKCwtTeHi4kpKStHnz5jzrf/jhh3rooYdUvXp1FS9eXMWLF1dcXJxmzJiR67of\nfPBBWSwWrV+/3mVbS5YskcVi0aBBgwoU68WLFzV58mTdcccdCgkJUXh4uO666y699957TvVy7vG1\na9dKcl5ylx+LxaI33nhDkvPr2dVryWazaeLEibr11lsVFBSkmJgYPfPMM07P1+Wu9f1p7969slgs\n6tmzp1P5/v37HXF+8cUXTseeeeYZWSwWff75507lhw8f1qBBg1S1alUFBQUpMjJSnTp10tatW132\n7Yl73W63a8iQIbJYLHrggQd04cKFAp0H5IUZc+AqBQQEOD1OS0vTkCFD1KRJE7Vu3VqlS5fW0aNH\ntXz5cnXo0EGvvvqqHn/8cUl/JJhjxoxxfGDr8g9V1qtXz/HzqlWr9MADDygrK0v33HOPqlWrpsOH\nD+uDDz7QJ598orVr16pBgwYFirdXr1565513FBMTo8cff1wWi0VLly7VgAEDtHHjRr399tuO/seM\nGaMPP/xQO3bs0JAhQ1SyZElJcvz/avz+++9q2rSpAgMD1aVLF128eFHvv/+++vTpI6vVqt69e191\n21eSlpamxo0bKzQ0VA888ICsVqvKli2b7zmvv/66+vbtq6CgIHXq1EkxMTHat2+fXnvtNS1fvlxb\ntmxxLNk5evSo7rzzTqWnp6tDhw7q3LmzMjMztX//fi1cuFCDBg1SZGRknn3ljPm4ceNUqVIlp1/O\nWrZsqZo1ayohIUFr167VTz/9pOrVqzudv2nTJu3cuVOdO3fONfv/1VdfadKkSUpKStLAgQOVmpqq\nDz74QBs2bNBnn32mu+66y1E35z779NNPVaNGDfXo0UPFihXT2rVrNXjwYH311VdauHBhQYddktSt\nWzdt3bpVXbp0UUBAgJYtW6axY8fqm2++0UcffSSLxaJSpUqpe/fumj9/vlJSUtS6dWunNg4dOqSV\nK1cqLi5O8fHxV+xz06ZNSkpK0qVLl/TAAw+oWrVq2r59u1q2bKlWrVq5PGfEiBGyWq1q1KiRKlSo\noDNnzujzzz/XkCFDtHXrVqfr7t+/v/7zn/9o7ty5atGiRa625syZI0nq16/fFWO9dOmS2rZtq/Xr\n16tmzZoaOHCgMjIytHjxYiUnJ2v79u2aOHGiJDk+f7BgwQIdOHDAsdTuStx5Pffo0UNffPGF2rdv\nr/DwcK1YsUL/+te/dOLEiVy/RHvi/alGjRqqUKFCriR7zZo1Tj9ffp+uWbNGxYoVc1pi9+2336pN\nmzZKS0tT27Zt9cADD+jkyZP68MMP1axZMy1dulQdOnRw1PfEvZ6ZmamePXvqgw8+0MCBAzVjxgxZ\nrcx34hoZALlIMq5eHuvXrzdWq9UEBgaa3377zelYZmamOXToUK5zfv/9d1O7dm1TqlQpk5GR4XSs\nUqVKplKlSi5jSEtLMyVLljSRkZFm165dTsd++OEHU7x4cVO/fv0CXc8777xjJJn69eubs2fPOsrP\nnTtn4uLijCTz9ttvO53Tu3dvI8ns37+/QH0YY8yYMWOMJLN27Vqn8pzxfOyxx4zNZnOU79q1y/j5\n+ZnbbrvNqf7atWuNJDNmzBin8vzG60p99+rVy2RlZeU6z9V17t271wQEBJjY2Fhz+PBhp/opKSnG\narWa++67z1E2Y8YMI8m88MILudo/d+5cruc9L5JMixYtXB57//33jSQzfPjwPK/hs88+c5TljKEk\n89JLLznV//DDD40kU61aNZOdne0ozxnDQYMGOT1PNpvN9OnTx0gyH374YYGupUWLFkaSufXWW01a\nWpqj/MKFC6Zx48ZGknnzzTcd5Vu3bjWSTOfOnXO1lRPX3Llzr9iv3W43NWrUcBnrCy+84BiTP98n\nqampudrKzs42Dz/8sJFktmzZ4nSsdu3aJigoyJw8edKp/OeffzYWi8U0adLkirEaY8zEiRONJNO+\nfXun+/P48eOmUqVKRpL58ssvnc7JGVt3XOn1nNNmgwYNzKlTpxzl586dM7GxscZqtZqjR486yj35\n/tSrVy8jyezcudNR1r17dxMVFWXq1atnmjVr5tSv1Wo1rVq1cpRlZWWZ2NhYExQUZNatW+fU9pEj\nR0z58uVNdHS0yczMdJS7e6/v37/fSDK9e/c2xhhz6tQp07RpU2OxWMzkyZMLdJ1AQZCYAy7k/OM9\nZswYM2bMGPPss8+abt26mYCAAGOxWMyMGTPcam/atGlGklm/fr1TeX6JZk4SMXPmTJfHhw4daiTl\n+kfRlaSkJCPJfPrpp7mOpaSkGEkmISHBqdzTiXlISIg5c+ZMrnOaN29uJDn9wuDpxDwwMNAcP37c\n5XmurjNnbD/++GOX59x3333Gz8/PpKenG2P+l5jPmTPHZf2Cyi8xz8rKMuXKlTORkZFOCcbp06dN\ncHCwiY2NNXa73VGeM4Z/Tr5z5CRiOYlMdna2iYiIMNHR0S5/gTl9+rSxWCyma9euBbqWnPYvT77/\nHFvLli2dyuPj442/v79TAmiz2UzFihVNWFiY0z2Sl40bNxpJpnnz5rmO2Ww2Exsb6/I+ycu2bduM\nJDNu3Din8pkzZxpJZurUqU7lI0aMMJLMG2+8UaD2q1WrZiwWi9mzZ0+uY6+99pqRZB599FGncm8m\n5qtXr851bPTo0UaSWb58uaPMk+9PCxYsMJLMiy++6CgrU6aM6datm/nrX/9qAgICzLlz54wxxixZ\nssRIMhMmTHDUzflF869//avL9nNi/eSTT4wxV3evX56Y//rrr6ZmzZomICDAvPXWW1e8PsAdLGUB\n8jFu3DinxxaLRfPmzdOjjz7qsv6uXbs0ZcoUbdiwQUePHlVmZqbT8SNHjhS475z1sDt27HC5n/dP\nP/0kSdqzZ49q1aqVb1vffvutrFary634WrRoIT8/P3333XcFju1q3HrrrQoPD89VHhMTI+mPdcah\noaFe6bty5coqU6ZMgevnjP369etdrk89ceKEsrOz9dNPPykuLk6dOnXSs88+q4EDB+rTTz9V27Zt\n1bRpU9WqVctje0P7+/vrL3/5i/75z39qyZIl6tGjhyRp4cKFunDhgvr27euyr7vuusvln9dbtmyp\n9evX67vvvlOLFi30008/KS0tTbfeequee+45lzEEBwdrz549bsXtaqlHs2bNXN5zAwYMUJ8+ffT6\n66/r2WeflSStWLFChw8fVv/+/Qt0f3z77bd59uvn56dmzZrp559/znXs1KlTmjJlilasWKFffvlF\n58+fdzr+59fuww8/rBEjRmju3LkaPny4pD+WRyxYsEClSpVSt27drhjr2bNnlZqaqgoVKrj8sHPO\n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\nIUOGmKFDh5rOnTub8uXLm6CgoAJfU7du3YwkU7lyZTN06FDz1FNPmSpVqhhJJjk5OVd9T+/Kktdu\nI676yWtXll27dpmgoCBjtVpNt27dzPDhw01iYqIJCQkxHTt2dLvv/K5z4cKFJiAgwPj7+5uOHTua\nYcOGmcGDB5t7773XREREmBo1ajjqDhkyxBQrVswkJSWZJ554wowYMcJ07drVFCtWzAQFBZlNmzbl\n2f/lunfvbiSZjh07mtGjR5vx48fn2snHGGOmT5/uuEenTZvmsq2cMWzXrp0JDAw0HTp0MCNHjjRd\nu3Y1fn5+plixYmbDhg1O51y6dMl06tTJSDIVKlQwvXr1MiNGjDB9+vQxd911l7FarWbSpEkFupac\nXT46depkypUrZwYPHmyGDRvm2BXl7rvvdtpF5nIffPCB4/oGDx5coP4ut3HjRhMcHGz8/PxM165d\nzciRI0379u1NYGCgadeuXa775MiRIyYiIsJYrVZz//33m7/97W/m/vvvNwEBASY5Odlpm7w/u3jx\noildurSRZKKiopx2zCmIixcvmmbNmhlJpnbt2ubpp582AwcONGXKlDGSzN/+9rdc51zNriyrVq0y\nkkxsbKz529/+ZsaPH++0jWZ+bc6fP9/l+5cn35+MMaZu3bqO5/3ynXkuXrxoQkJCjCRTunRpl/fN\njh07THR0tJFkmjRpYgYMGGD++te/muTkZFO1atVcbbp7r/95u8TLx8ZqtZrY2Fhz4MABt64XcIXE\nHHDhSon5sWPHTEhIiAkJCTHHjh1zlC9fvtw0atTIhIaGmhIlSpjWrVub9evX5/kP27lz50y/fv1M\nhQoVjJ+fn8s3/v3795uBAweaatWqmaCgIBMWFmZq1KhhHnroIbN06dICX1N2drZ5+eWXTVxcnAkO\nDjbBwcGmQYMGZubMmS630/PFxNwYY7744gtz1113meDgYBMWFmY6dOhgduzYcVV959V/ju+//970\n7t3b3HLLLSYwMNCUKlXK1K5d2/Tt29esWbPGUW/Lli2mX79+pk6dOqZUqVKmWLFiJjY21jzyyCPm\nhx9+yLPvPzt+/Lh58MEHTZkyZYzVas1zDHL2ci5WrFiufbRzXD6GmzZtMomJiSYsLMyEhoaa1q1b\nm6+//trleXa73bz55pumVatWplSpUiYgIMCUL1/eNG3a1EyYMMEcPHiwQNeSk+hlZmaav//976Zy\n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\nGvm298ILL2jEiBHKzMzULbfc4lhj3q9fP/Xr109vv/22EhMTHfWXL1+uJUuWyN/fX2XKlNFTTz11\n1deSs7f4sGHDNHz4cE2ZMiXf2fcePXro0KFDateunYwxioiI0Ouvv65NmzZp9uzZ8vf3V/HixfXi\niy9edUx5xmqMMR5v9Qbx22+Q+RUpAAAgAElEQVS/FXYIVy0qKkonT54s7DCKJMa+cDH+hYvxLzyM\nfeG63uOfkZHh9rKQm5m/v3++a8zz0rt3b/Xt21dNmzb1QlS5uXreypcvX+DzmTEHAMADPL3PdC6T\nJnm3feAmM2zYMF24cEENGzYs7FAKjMQcAAAAN50rbcnoi/jwJwAAAOADSMwBAAAAH0BiDgAAAPgA\nEnMAAADAB5CYAwAAIJcKFSpo8ODBjsc2m0133HGHHn74YUnSZ599ppkzZ0qSpk2bptmzZ+dq49Ch\nQ2rVqlWu8mPHjukvf/nLFWPo1auXzpw541bcb775pt5//323zvEV7MoCAADg46Zt8+x2nMPjhl+x\nTkhIiH788UdduHBBwcHB2rBhg6Kjox3H27RpozZt2lxV/9HR0Xr11VevWG/hwoVutWuz2Ry/ONyI\nmDEHAACAS61atdKaNWskSR9++KHuu+8+x7FFixbp73//e65zvv/+eyUlJSkpKUkLFixw2e7lM+mL\nFi3S448/rp49e6pp06Z67rnnHPUaNWqktLQ0HTx40Gnmffbs2Zr2/787oEuXLho9erTat2+v1157\nzWn2/tdff1XPnj3Vrl073X///UpNTZX0xzeLtmrVSklJSXrggQeuYYQ8i8QcAAAALt17771atmyZ\nMjMztWfPHtWvX/+K5wwbNkzPPfecUlJSCtzPrl279Morr2jNmjX66KOPdOTIEbfizMrK0sqVK9Wv\nXz+n8r/97W8aP368Vq1apX/84x8aOXKkJOmFF17Q22+/rZSUFM2fP9+tvryJpSwAAABwqVatWjp8\n+LCWLVvmcq34n505c0ZnzpxR48aNJUmdO3fW2rVrr3hes2bNFB4eLkmqXr26jhw5ogoVKhQ4zk6d\nOuUqO3/+vLZt26YnnnjCUXbp0iVJUnx8vJ566indc889at++fYH78bbrnphv375d8+fPl91uV2Ji\notOfRCRp9+7deuONN3TgwAENHTrU8cTu3LlTb7zxhqPeb7/9piFDhqhhw4Z6+eWXtXv3boWEhEiS\n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\n/rqMMe5cFgAAAFDo3ErM82O322WxWK5YZ968eXr22Wf173//W19++aUOHz7sVCcqKkoDBgxQs2bN\nnMrPnTunxYsXa+LEiZo4caIWL16sc+fOSZJeffVVPfHEE5oxY4aOHTum7du3e+qyAAAAgOuiQIl5\nzs4rl/98+X+ZmZn67rvvFBYWlm87qampio6OVtmyZeXv768mTZpo69atTnXKlCmjSpUq5Uryt2/f\nrjp16ig0NFShoaGqU6eOtm/frtOnT+vChQuqXr26LBaLmjdvnqtNAAAAwNddcY35+++/r8WLFzse\n/+Mf/8izbtu2bfNtKy0tTZGRkY7HkZGR2rdvX0HizHVuRESE0tLSXLaZs6UjAAAAcKO4YmJeu3Zt\nSZIxRkuWLFFCQoJTIixJAQEBqlixoho0aOCdKD0kJSVFKSkpkqTJkycrKirKa335hYR4rW1Jslqt\nCvFiH94cG29j7AsX41+4GP/Cw9gXLsa/cHl7/C3+/jf8GBXEFRPzWrVqqVatWpIki8WixMRERURE\nXFVnEREROnXqlOPxqVOnCtxWRESEdu/e7XiclpamWrVqudVmUlKSkpKSHI9Pnjzp7iUUWFhGhtfa\nliS7PUQZXuzDm2PjbYx94WL8CxfjX3gY+8LF+Bcub49/kM12w45R+fLlC1zXrQ9/du3a9aqTckmK\njY3V0aNHdeLECdlsNm3atEnx8fEFOrdevXrasWOHzp07p3PnzmnHjh2qV6+eSpUqpeDgYP30008y\nxmjDhg0FbhMAAADwFW7vY757925t3LhRp06d0qVLl5yOWSwWjR49Os9z/fz81KdPH02YMEF2u10J\nCQmKiYnRokWLFBsbq/j4eKWmpmrq1Kk6f/68tm3bpvfee0/Tp09XaGioOnfurJEjR0qSunTpotDQ\nUEnS448/rlmzZunSpUuqV6+e6tev7+5lAQAAAIXKrcR89erVeu211xQaGqpy5copICDA6XhB9g9v\n0KBBrrXol+9/Xq1aNc2ePdvlua1atVKrVq1ylcfGxmratGkFuQQAAADAJ7mVmH/88cdq2rSpBgwY\nIH//a/rSUAAAAACXcWuNeVpamhISEkjKAQAAAA9zKzGvWrWqjh8/7q1YAAAAgCLLrcT80Ucf1YoV\nK5y2LQQAAABw7dxak/L8888rIyND48aNU1BQkIoXL+503GKxaNasWR4NEAAAACgK3ErMb7/9dlks\n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\nGgAAAABJRU5ErkJggg==\n", | |
"text/plain": [ | |
"<Figure size 864x504 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "8HXqPn02mBJx", | |
"colab_type": "code", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 471 | |
}, | |
"outputId": "71fd19bf-b4f2-445a-8ee0-bf8ae30b365e" | |
}, | |
"source": [ | |
"# Number of serious injuries per hour\n", | |
"accidents_serious = df[df['serious_injuries']!=0].groupby(df['date'].dt.hour).sum().serious_injuries\n", | |
"# Percentage of serious injuries per day of the week\n", | |
"rate_serious = accidents_serious/accidents_serious.sum()\n", | |
"\n", | |
"# Number of mild injuries per hour\n", | |
"accidents_mild = df[df['mild_injuries']!=0].groupby(df['date'].dt.hour).sum().mild_injuries\n", | |
"# Percentage of mild injuries per hour\n", | |
"rate_mild = accidents_mild/accidents_mild.sum()\n", | |
"\n", | |
"# Combine both series as a dataframe in order to plot them as a side by side bar\n", | |
"rates = pd.DataFrame({'Serious injures':rate_serious,'Mild injuries':rate_mild})\n", | |
"rates.plot(kind='bar',figsize=(12,7),color=['red','green'],alpha=0.5)\n", | |
"\n", | |
"# Title and labels\n", | |
"plt.title('Rate of injuries type by day of the week',fontsize=20)\n", | |
"plt.xlabel('Hour',fontsize=16)\n", | |
"plt.ylabel('Percentage',fontsize=16)\n", | |
"plt.xticks(np.arange(24));" | |
], | |
"execution_count": 36, | |
"outputs": [ | |
{ | |
"output_type": "display_data", | |
"data": { | |
"image/png": "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\nLi4uyMvLQ35+PiRJstjH2dkZ+fn5suXEeNYJIaBQKODi4mLnrIiIiIjk98gV35IkwdXVtdQ+VWVJ\nG8YjIiIiqlr4b/lERERERDJh8U1EREREJBMW30REREREMmHxTUREREQkExbfREREREQyYfFNRERE\nRCQTFt9ERERERDJh8U1EREREJBMW30REREREMmHxTUREREQkExbfREREREQyUT3oBIiIiKqCGT/O\nQG5ursW2CYETZM6GiKoqjnwTEREREcmExTcRERERkUxYfBMRERERyYTFNxERERGRTFh8ExERERHJ\nhMU3EREREZFMWHwTEREREcmExTcRERERkUxYfBMRERERyYTFNxERERGRTFh8ExERERHJhMU3ERER\nEZFMWHwTEREREcmExTcRERERkUxYfBMRERERyYTFNxERERGRTFh8ExERERHJhMU3EREREZFMWHwT\nEREREclEJXfAo0ePYunSpTAajYiIiEDfvn3N2gsLC5GYmIhz585Bq9UiJiYG3t7e+PHHH/Hdd9+Z\n+l24cAGzZ89Gw4YNZT4DIiIiIqKKkbX4NhqNWLx4MSZPngydTofY2FgEBQWhXr16pj47duyAm5sb\n5s2bh71792LFihUYN24cOnXqhE6dOgG4U3jPmTOHhTcRERERVSmyTjtJTU2Fj48PatWqBZVKhZCQ\nEBw6dMisz+HDhxEaGgoACA4OxokTJyCEMOuzZ88ehISEyJU2EREREZFdyDrynZOTA51OZ3qs0+mQ\nkpJitY9SqYRGo8GNGzfg4eFh6rN//35MnDjRYoykpCQkJSUBAGbNmgUvLy+b81SpVBXar6IYj/EY\nT/5YjMd4tlIoFNBoNBbbKiMPR7+elRFPaeX5kWSM5SjxSuMI98qDjCf7nO/7lZKSArVajfr161ts\n1+v10Ov1psdZWVk2x/Dy8qrQfhXFeIzHePLHYryqH++T058gNzfXYtuEwAl2j2c0Gq3Gq4zzdvTn\nrzLiaa08P84Gg2yxHCVeaRzhXqmMeHXq1ClXP1mnnXh6eiI7O9v0ODs7G56enlb7FBUVITc3F1qt\n1tS+d+9edOjQQZ6EiYiIiIjsSNbi28/PD+np6cjMzITBYMC+ffsQFBRk1icwMBC7du0CABw4cAD+\n/v6QJAnAnVGH/fv3s/gmIiIioipJ1mknSqUSw4cPR1xcHIxGI8LCwuDr64tVq1bBz88PQUFBCA8P\nR2JiIqKjo+Hu7o6YmBjT/qdPn4aXlxdq1aolZ9pERERERHYh+5zvgIAABAQEmG2Liooy/axWqzF+\n/HiL+/r7+yMuLq5S8yMiIiIiqiz8hksiIiIiIpmw+CYiIiIikgmLbyIiIiIimbD4JiIiIiKSCYtv\nIiIiIiKZsPgmIiIiIpIJi28iIiIiIpmw+CYiIiIikgmLbyIiIiIimbD4JiIiIiKSCYtvIiIiIiKZ\nsPgmIiIiIpIJi28iIiIiIpmw+CYiIiIikgmLbyIiIiIimbD4JiIiIiKSCYtvIiIiIiKZqB50AkRE\nRPTgzfhxBnJzcy22TQicIHM29uXI50ZVD0e+iYiIiIhkwuKbiIiIiEgmLL6JiIiIiGTC4puIiIiI\nSCYsvomIiIiIZMLim4iIiIhIJiy+iYiIiIhkwuKbiIiIiEgmLL6JiIiIiGTCb7gkIiIi2fFbJ+lR\nxZFvIiIiIiKZsPgmIiIiIpIJp50QEZFdcBoBEVHZWHwTERER2RH/EKXScNoJEREREZFMOPJNRET0\nEOLoKZFj4sg3EREREZFMZB/5Pnr0KJYuXQqj0YiIiAj07dvXrL2wsBCJiYk4d+4ctFotYmJi4O3t\nDQA4f/48Fi1ahNu3b0OSJMTHx0OtVst9CkREREREFSJr8W00GrF48WJMnjwZOp0OsbGxCAoKQr16\n9Ux9duzYATc3N8ybNw979+7FihUrMG7cOBQVFWHevHkYM2YMGjZsiBs3bkCl4qwZIqo4/rM+ERHJ\nTdbqNTU1FT4+PqhVqxYAICQkBIcOHTIrvg8fPozIyEgAQHBwMJYsWQIhBI4dO4b69eujYcOGAACt\nVitn6kREREQPJQ4kVC2yFt85OTnQ6XSmxzqdDikpKVb7KJVKaDQa3LhxA+np6ZAkCXFxcbh+/TpC\nQkLwzDPPlIiRlJSEpKQkAMCsWbPg5eVlc54qlapC+1UU4zEe48kfCwAUCgU0Go3FtsrIw5GfO0D+\n68l4jHcvpZXjyRnLUeKVxtHfyyo7XpWZt1FUVITffvsN8fHxcHZ2xjvvvIPGjRujVatWZv30ej30\ner3pcVZWls2xvLy8KrRfRTEe4zGe/LGAO1PhrI0WVUYejvzcAfJfT8ZjvHtprRzPaNTIFstR4pXG\n0d/LKhqvTp065eon62onnp6eyM7ONj3Ozs6Gp6en1T5FRUXIzc2FVquFTqfDY489Bg8PDzg7O6Nd\n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\nQ2BgYKn7K5VKDB8+HHFxcRg3bhz+8Y9/wNfXF6tWrcLhw4cBAOHh4bh58yaio6Px/fffY8iQITae\nEhERERHRw8mmke+BAwfi+PHjmDRpEvz8/ODp6Ym///4bqamp8Pb2xqBBg8o8RkBAAAICAsy2RUVF\nmX5Wq9UYP358mXkQEREREVU1No18e3h4ID4+Hn379oUQAufPn4cQAv369UN8fLzV+eBERERERGTD\nyLfRaMSFCxfg6emJqKgos9FqIiIiIiIqm00j37GxsUhLS6usXIiIiIiIHFq5i2+FQgGdTof8/PzK\nzIeIiIiIyGHZNPKt1+uxcePGMr9GnoiIiIiISrJptZO8vDxkZGRgzJgxaNu2LapXrw5JkkztkiRx\nJRIiIiIiIitsKr7XrVtn+nnnzp0W+7D4tkybkGC9MT5evkSIHgJWXw+9NPImUglKfa07wPkREdH9\nsan4XrVqVWXlQURERETk8Gya801ERERERBVn08g3AAghcOTIEZw6dQo3b95EZGQkatasiVOnTsHH\nxweenp6VkScRERERUZVnU/F98+ZNxMfHIzU1FS4uLsjLy0OPHj1Qs2ZNJCUlwd3dHcOHD6+sXImI\niIiIqjSbpp18+eWXyM7OxowZM7BkyRKzttatW+PEiRN2TY6IiIiIyJHYVHwfOnQIgwYNQrNmzcyW\nGAQALy8vZGdn2zU5IiIiIiJHYlPxnZeXZ3VOd0FBAYQQdkmKiIiIiMgR2TTnu06dOjh+/Dhat25d\nou3UqVOoX7++3RIjIiIiIprx4wzk5uZabJsQOEHmbO6fTSPf3bt3x8aNG7F27VpkZWUBAHJzc7Fz\n505s3boV3bt3r5QkiYiIiIgcgU0j33q9HhkZGfj6669NX7gzY8YMKBQK9OnTB506daqUJImIiIiI\nHIFNxff169cRGRmJbt264dixY7h+/Tq0Wi1at26NWrVqVVaOREREREQOoczi22g04ptvvsHmzZuR\nm5sLhUKBwMBAjBo1Cm5ubnLkSERERETkEMqc8/3DDz9gzZo1aNiwIZ5++mm0b98ehw8fxueffy5H\nfkREREREDqPMke/t27cjIiICI0aMMG3btm0blixZghEjRkClsvkb6omIiIiIHklljnxnZmYiODjY\nbFtISAiMRiP++uuvSkuMiIiIiMjRlFl85+XlQaPRmG1zdXUFANy+fbtysiIiIiIickDlmjOSk5OD\n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\np49KS0u1Y8cOVVVV6dVXX9UVV1yh7OxsDRs2TD/60Y8szfvss8/0zDPPyOPx6JFHHtFzzz0nu92u\nm266KSjb984772jBggWy2+0aPXq05s+fr5KSEt166616+umn9fTTT1uaxw7y0t5BtrS0BDz2+Xwq\nKiry/38YGRlpad43P4l0uVx66aWXtGfPHiUnJ2vixInq2bOnpXnl5eUaM2aMoqOjtWfPHi1evFg2\nm00ej0dTp07V4MGDLc2bMWOGMjIylJ2drYSEBEvXfS579uzRqlWr1KtXL40fP17Lly9XXV2dEhMT\nNWXKFF1++eWW5rW2tuqNN97wf7IWGhqqhIQE3XrrrcrJybE0a/HixUpNTVVJSYn/9+LIkSOqrKzU\n4sWLNWvWLEvz6uvr2122d+9eS7Mk6dlnn1Xfvn01bNgwbdq0SdXV1fr1r3+tsLAw7d692/K8ZcuW\nKS0tTSdPntScOXN04403aubMmaqpqdHzzz+v3/3ud5ZndvnybbPZ9NVXX6l3794Bz3/11Vey2WyW\n57V3tNLn8+no0aOW5/l8Pv+pJvHx8SopKdHChQt1+PDhoJTvkJAQ2e12devWTX369PF/nB8eHm75\nz3P+/Plav369XnvtNU2YMEEDBgxQeHi45TuNb/L5fGppaZHP55PP5/MfGY6IiPAXZaskJyf7Pw25\n7LLLtGfPHqWkpOjgwYNBOSXDZrPJbrdr6NChGjp0qNxut2pra7V582a9/PLLWrFihaV5Pp9Pbrdb\nra2tOnnypFwulyIjI9XW1hbwJsdKHo9HdrtdbW1tam1tlSTFxcUFJY8dpLVM7yAnT5581ilYzc3N\nmjFjhmw2m8rKyizNe+WVV/zl+69//at69eqlGTNmaOvWrfrLX/5i+fZ9+OGHuvfeeyVJq1atUkFB\ngQYOHKiDBw9qyZIlKi0ttTSvpaVFx48f15w5c9SzZ09lZ2crKysraHeqfuGFFzR27FgdP35cs2fP\n1sSJEzV79mzt2LFDL7zwgubNm2dp3pIlS5SRkaHi4mL9+9//Vmtrq7Kzs/X3v/9dBw8e1Pjx4y3L\namxsVHFxccBzPXv2VF5enjZt2mRZzhkzZ85sd796/Phxy/O++OILf1fKyMjQa6+9pieffDIoJVg6\n/YnWbbfdJkl66623/AfRbrvtNm3cuDEomV2+fD/wwAN68skn1bdvX8XGxkqSvvzySx06dEiTJ0+2\n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\n", | |
"text/plain": [ | |
"<Figure size 864x504 with 1 Axes>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
} | |
} | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "93XbDoilmONm", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"###Type of accident analysis — conclusions\n", | |
"1. In most accidents, 1,2, or 3 vehicles were involved. The police of Barcelona registered in 2017 car accidents were up to 14 vehicles where involved.\n", | |
"2. Most of the people injured in car accidents in 2017 suffered mild injuries (98%).\n", | |
"3. Accidents tend to be more severe during night, late-evening, and weekends." | |
] | |
}, | |
{ | |
"cell_type": "markdown", | |
"metadata": { | |
"id": "18S2Kd6AmVQA", | |
"colab_type": "text" | |
}, | |
"source": [ | |
"##Location analysis" | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "FnasoLTZHIBe", | |
"colab_type": "code", | |
"outputId": "15d0329d-cf55-4fc2-8882-d5aea4f1f9e5", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 895 | |
} | |
}, | |
"source": [ | |
"import folium\n", | |
"\n", | |
"# Define a map centered around Barcelona\n", | |
"barcelona_map = folium.Map(location=[41.38879, 2.15899], zoom_start=12)\n", | |
"\n", | |
"# Display the map\n", | |
"barcelona_map" | |
], | |
"execution_count": 37, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"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+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS40LjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NvZGUuanF1ZXJ5LmNvbS9qcXVlcnktMS4xMi40Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS40LjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdjZG4uZ2l0aGFjay5jb20vcHl0aG9uLXZpc3VhbGl6YXRpb24vZm9saXVtL21hc3Rlci9mb2xpdW0vdGVtcGxhdGVzL2xlYWZsZXQuYXdlc29tZS5yb3RhdGUuY3NzIi8+CiAgICA8c3R5bGU+aHRtbCwgYm9keSB7d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO21hcmdpbjogMDtwYWRkaW5nOiAwO308L3N0eWxlPgogICAgPHN0eWxlPiNtYXAge3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO3JpZ2h0OjA7bGVmdDowO308L3N0eWxlPgogICAgCiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLAogICAgICAgIGluaXRpYWwtc2NhbGU9MS4wLCBtYXhpbXVtLXNjYWxlPTEuMCwgdXNlci1zY2FsYWJsZT1ubyIgLz4KICAgIDxzdHlsZT4jbWFwX2UyODE1ZGQyZmM1YjQyYzdiNmE3NjZkZjc1NjRjMmY0IHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMC4wJTsKICAgICAgICBoZWlnaHQ6IDEwMC4wJTsKICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgIHRvcDogMC4wJTsKICAgICAgICB9CiAgICA8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PiAgICAKICAgIAogICAgPGRpdiBjbGFzcz0iZm9saXVtLW1hcCIgaWQ9Im1hcF9lMjgxNWRkMmZjNWI0MmM3YjZhNzY2ZGY3NTY0YzJmNCIgPjwvZGl2Pgo8L2JvZHk+CjxzY3JpcHQ+ICAgIAogICAgCiAgICAKICAgICAgICB2YXIgYm91bmRzID0gbnVsbDsKICAgIAoKICAgIHZhciBtYXBfZTI4MTVkZDJmYzViNDJjN2I2YTc2NmRmNzU2NGMyZjQgPSBMLm1hcCgKICAgICAgICAnbWFwX2UyODE1ZGQyZmM1YjQyYzdiNmE3NjZkZjc1NjRjMmY0JywgewogICAgICAgIGNlbnRlcjogWzQxLjM4ODc5LCAyLjE1ODk5XSwKICAgICAgICB6b29tOiAxMiwKICAgICAgICBtYXhCb3VuZHM6IGJvdW5kcywKICAgICAgICBsYXllcnM6IFtdLAogICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcsCiAgICAgICAgem9vbUNvbnRyb2w6IHRydWUsCiAgICAgICAgfSk7CgoKICAgIAogICAgdmFyIHRpbGVfbGF5ZXJfYzExODY4ZmEzYzRmNDI3OWJkMTE4ZGNjNTJjNTQ2MjggPSBMLnRpbGVMYXllcigKICAgICAgICAnaHR0cHM6Ly97c30udGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmcnLAogICAgICAgIHsKICAgICAgICAiYXR0cmlidXRpb24iOiBudWxsLAogICAgICAgICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwKICAgICAgICAibWF4TmF0aXZlWm9vbSI6IDE4LAogICAgICAgICJtYXhab29tIjogMTgsCiAgICAgICAgIm1pblpvb20iOiAwLAogICAgICAgICJub1dyYXAiOiBmYWxzZSwKICAgICAgICAib3BhY2l0eSI6IDEsCiAgICAgICAgInN1YmRvbWFpbnMiOiAiYWJjIiwKICAgICAgICAidG1zIjogZmFsc2UKfSkuYWRkVG8obWFwX2UyODE1ZGQyZmM1YjQyYzdiNmE3NjZkZjc1NjRjMmY0KTsKPC9zY3JpcHQ+\" 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 0x7fafe4dc4710>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 37 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "u_njqhFJHURy", | |
"colab_type": "code", | |
"outputId": "a2744f9a-1918-412a-87d7-0deb8f2817a3", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 895 | |
} | |
}, | |
"source": [ | |
"# Create a map object of the city of Barcelona\n", | |
"barcelona_map= folium.Map(location=[41.38879, 2.15899], zoom_start=12)\n", | |
"\n", | |
"# Display only accidents where serious injuries where recorded\n", | |
"for lat, lng, label in zip(df.latitude, df.longitude, df.serious_injuries.astype(str)):\n", | |
" if label!='0':\n", | |
" folium.vector_layers.CircleMarker(\n", | |
" [lat, lng],\n", | |
" radius=3,\n", | |
" color='red',\n", | |
" fill=True,\n", | |
" popup=label,\n", | |
" fill_color='darkred',\n", | |
" fill_opacity=0.6\n", | |
" ).add_to(barcelona_map)\n", | |
" \n", | |
"# Show map\n", | |
"barcelona_map" | |
], | |
"execution_count": 39, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"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+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS40LjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NvZGUuanF1ZXJ5LmNvbS9qcXVlcnktMS4xMi40Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS40LjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdjZG4uZ2l0aGFjay5jb20vcHl0aG9uLXZpc3VhbGl6YXRpb24vZm9saXVtL21hc3Rlci9mb2xpdW0vdGVtcGxhdGVzL2xlYWZsZXQuYXdlc29tZS5yb3RhdGUuY3NzIi8+CiAgICA8c3R5bGU+aHRtbCwgYm9keSB7d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO21hcmdpbjogMDtwYWRkaW5nOiAwO308L3N0eWxlPgogICAgPHN0eWxlPiNtYXAge3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO3JpZ2h0OjA7bGVmdDowO308L3N0eWxlPgogICAgCiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLAogICAgICAgIGluaXRpYWwtc2NhbGU9MS4wLCBtYXhpbXVtLXNjYWxlPTEuMCwgdXNlci1zY2FsYWJsZT1ubyIgLz4KICAgIDxzdHlsZT4jbWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMC4wJTsKICAgICAgICBoZWlnaHQ6IDEwMC4wJTsKICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgIHRvcDogMC4wJTsKICAgICAgICB9CiAgICA8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PiAgICAKICAgIAogICAgPGRpdiBjbGFzcz0iZm9saXVtLW1hcCIgaWQ9Im1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCIgPjwvZGl2Pgo8L2JvZHk+CjxzY3JpcHQ+ICAgIAogICAgCiAgICAKICAgICAgICB2YXIgYm91bmRzID0gbnVsbDsKICAgIAoKICAgIHZhciBtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QgPSBMLm1hcCgKICAgICAgICAnbWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkJywgewogICAgICAgIGNlbnRlcjogWzQxLjM4ODc5LCAyLjE1ODk5XSwKICAgICAgICB6b29tOiAxMiwKICAgICAgICBtYXhCb3VuZHM6IGJvdW5kcywKICAgICAgICBsYXllcnM6IFtdLAogICAgICAgIHdvcmxkQ29weUp1bXA6IGZhbHNlLAogICAgICAgIGNyczogTC5DUlMuRVBTRzM4NTcsCiAgICAgICAgem9vbUNvbnRyb2w6IHRydWUsCiAgICAgICAgfSk7CgoKICAgIAogICAgdmFyIHRpbGVfbGF5ZXJfMTM1M2U4ZTBmNmFlNDcxMmI4MWJkZTBlYzA5NjBhMDUgPSBMLnRpbGVMYXllcigKICAgICAgICAnaHR0cHM6Ly97c30udGlsZS5vcGVuc3RyZWV0bWFwLm9yZy97en0ve3h9L3t5fS5wbmcnLAogICAgICAgIHsKICAgICAgICAiYXR0cmlidXRpb24iOiBudWxsLAogICAgICAgICJkZXRlY3RSZXRpbmEiOiBmYWxzZSwKICAgICAgICAibWF4TmF0aXZlWm9vbSI6IDE4LAogICAgICAgICJtYXhab29tIjogMTgsCiAgICAgICAgIm1pblpvb20iOiAwLAogICAgICAgICJub1dyYXAiOiBmYWxzZSwKICAgICAgICAib3BhY2l0eSI6IDEsCiAgICAgICAgInN1YmRvbWFpbnMiOiAiYWJjIiwKICAgICAgICAidG1zIjogZmFsc2UKfSkuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8yOTA3NWUxZjk4ZmU0MjIxOTlkNzFjYjIyMTJmY2UxNSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjQxMjU0NiwgMi4xNzYzMjRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzU4NWZjMTMwZWQ3NzRlZGNiNzZmZjhmYWRmYjdiZGUyID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzY3MDZjZmFhNjViOTQwODRiYTBhN2FiNjg4MTU3NWIzID0gJChgPGRpdiBpZD0iaHRtbF82NzA2Y2ZhYTY1Yjk0MDg0YmEwYTdhYjY4ODE1NzViMyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNTg1ZmMxMzBlZDc3NGVkY2I3NmZmOGZhZGZiN2JkZTIuc2V0Q29udGVudChodG1sXzY3MDZjZmFhNjViOTQwODRiYTBhN2FiNjg4MTU3NWIzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzI5MDc1ZTFmOThmZTQyMjE5OWQ3MWNiMjIxMmZjZTE1LmJpbmRQb3B1cChwb3B1cF81ODVmYzEzMGVkNzc0ZWRjYjc2ZmY4ZmFkZmI3YmRlMikKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMDEwMmMwMzViMGNkNDc4NGI0MzNmMjQ3OTE1YTQ4NzAgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MDc3ODUsIDIuMTgzNDA3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84N2ZkMDA4ZWY3MDA0ZjZjYTZmYjA0MmM4YjM2ODdjZCA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9mMzIwMzBhZjFkZDg0ZjYzODE1Mzk0ZmY0MjMxNTQ3YSA9ICQoYDxkaXYgaWQ9Imh0bWxfZjMyMDMwYWYxZGQ4NGY2MzgxNTM5NGZmNDIzMTU0N2EiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzg3ZmQwMDhlZjcwMDRmNmNhNmZiMDQyYzhiMzY4N2NkLnNldENvbnRlbnQoaHRtbF9mMzIwMzBhZjFkZDg0ZjYzODE1Mzk0ZmY0MjMxNTQ3YSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8wMTAyYzAzNWIwY2Q0Nzg0YjQzM2YyNDc5MTVhNDg3MC5iaW5kUG9wdXAocG9wdXBfODdmZDAwOGVmNzAwNGY2Y2E2ZmIwNDJjOGIzNjg3Y2QpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2RmNDc1MjQwNWE2MzRmOGRhNDEzNzgwODUwNmE3NTU5ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuNDA5NzI5OTk5OTk5OTk2LCAyLjE4NTgxMV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYTFjMTMxZDkwMTIzNGUwNTlkODllODVhMjhjYzhkMWMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNWMxNjFjMjM5YTM2NGFhZTg2YTI0NzU5Y2IxODE5ZTcgPSAkKGA8ZGl2IGlkPSJodG1sXzVjMTYxYzIzOWEzNjRhYWU4NmEyNDc1OWNiMTgxOWU3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hMWMxMzFkOTAxMjM0ZTA1OWQ4OWU4NWEyOGNjOGQxYy5zZXRDb250ZW50KGh0bWxfNWMxNjFjMjM5YTM2NGFhZTg2YTI0NzU5Y2IxODE5ZTcpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZGY0NzUyNDA1YTYzNGY4ZGE0MTM3ODA4NTA2YTc1NTkuYmluZFBvcHVwKHBvcHVwX2ExYzEzMWQ5MDEyMzRlMDU5ZDg5ZTg1YTI4Y2M4ZDFjKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9lNDczZDE1NGE4ZTc0YWVjOWQ5OTU1YjZlY2U4ZTllNiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM4MTAxNTk5OTk5OTk5NSwgMi4xODE5NzQwMDAwMDAwMDAzXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9hZWE2Mzk2M2YzMjE0NmJkYjIzNGU0OGE2MzFlMDU0ZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84ZmNjMTI5NTU4MWE0OTM2ODUwZDhlZDBkMTc3YWE1YSA9ICQoYDxkaXYgaWQ9Imh0bWxfOGZjYzEyOTU1ODFhNDkzNjg1MGQ4ZWQwZDE3N2FhNWEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2FlYTYzOTYzZjMyMTQ2YmRiMjM0ZTQ4YTYzMWUwNTRlLnNldENvbnRlbnQoaHRtbF84ZmNjMTI5NTU4MWE0OTM2ODUwZDhlZDBkMTc3YWE1YSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9lNDczZDE1NGE4ZTc0YWVjOWQ5OTU1YjZlY2U4ZTllNi5iaW5kUG9wdXAocG9wdXBfYWVhNjM5NjNmMzIxNDZiZGIyMzRlNDhhNjMxZTA1NGUpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2JkZThhZWI1MGViNzQ2MTViM2FlMGMzMmI2YTU3MmE4ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzg0MTkyLCAyLjE2MjgwOV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMjkzY2VjYTA2Mjk5NDBlNWJhMDQ5MzZlY2Y5YmVmZmQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMjhmODJmMmUzYzk5NGU4MWJhMjgzYTQ0MjVhMWFkN2IgPSAkKGA8ZGl2IGlkPSJodG1sXzI4ZjgyZjJlM2M5OTRlODFiYTI4M2E0NDI1YTFhZDdiIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8yOTNjZWNhMDYyOTk0MGU1YmEwNDkzNmVjZjliZWZmZC5zZXRDb250ZW50KGh0bWxfMjhmODJmMmUzYzk5NGU4MWJhMjgzYTQ0MjVhMWFkN2IpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYmRlOGFlYjUwZWI3NDYxNWIzYWUwYzMyYjZhNTcyYTguYmluZFBvcHVwKHBvcHVwXzI5M2NlY2EwNjI5OTQwZTViYTA0OTM2ZWNmOWJlZmZkKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9hMmRhYWVhNGZmODE0ZTY3YTBlMTNiYTkyODY4OGJkYiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM4ODgyMiwgMi4xNjcwMDhdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2U3MGYxZjQ2YTgzMzQzYTk4ZDc3OWNmMzNiODhhNDA0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzVmMDU5YjNkNjdjMTQ3ZDg4MGY0MTM2NTk0ZmRmOGJlID0gJChgPGRpdiBpZD0iaHRtbF81ZjA1OWIzZDY3YzE0N2Q4ODBmNDEzNjU5NGZkZjhiZSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZTcwZjFmNDZhODMzNDNhOThkNzc5Y2YzM2I4OGE0MDQuc2V0Q29udGVudChodG1sXzVmMDU5YjNkNjdjMTQ3ZDg4MGY0MTM2NTk0ZmRmOGJlKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2EyZGFhZWE0ZmY4MTRlNjdhMGUxM2JhOTI4Njg4YmRiLmJpbmRQb3B1cChwb3B1cF9lNzBmMWY0NmE4MzM0M2E5OGQ3NzljZjMzYjg4YTQwNCkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMjllNzkwMDhmNTU3NGZjYWI0NGNlYThkZjQxNzNjYmUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zODY0NzcsIDIuMTU3MzM3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9lNDNkNzYwMjgzMTg0NTlmOGU4Mzg1Nzk1M2Y0MWJmNCA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9jYTViMTU2NWI4Mzk0NzM3YmIwNzUyZjlmY2Y4OTQ2NiA9ICQoYDxkaXYgaWQ9Imh0bWxfY2E1YjE1NjViODM5NDczN2JiMDc1MmY5ZmNmODk0NjYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2U0M2Q3NjAyODMxODQ1OWY4ZTgzODU3OTUzZjQxYmY0LnNldENvbnRlbnQoaHRtbF9jYTViMTU2NWI4Mzk0NzM3YmIwNzUyZjlmY2Y4OTQ2Nik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8yOWU3OTAwOGY1NTc0ZmNhYjQ0Y2VhOGRmNDE3M2NiZS5iaW5kUG9wdXAocG9wdXBfZTQzZDc2MDI4MzE4NDU5ZjhlODM4NTc5NTNmNDFiZjQpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzE1NDY0M2MzMzhkZjQwNDg4ODMxOWQxMjk2NWE5ZDE4ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzkzMzE1LCAyLjE1MjgyMV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYmE2ZGJmNDI5NGFlNDJlZGJhZDY2ZWYyMmI5MTQzMTAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMTM0MGQ5Yzc2Mjc2NDc4NGE5MTU0NzFmZjVjZjkyMGYgPSAkKGA8ZGl2IGlkPSJodG1sXzEzNDBkOWM3NjI3NjQ3ODRhOTE1NDcxZmY1Y2Y5MjBmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iYTZkYmY0Mjk0YWU0MmVkYmFkNjZlZjIyYjkxNDMxMC5zZXRDb250ZW50KGh0bWxfMTM0MGQ5Yzc2Mjc2NDc4NGE5MTU0NzFmZjVjZjkyMGYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMTU0NjQzYzMzOGRmNDA0ODg4MzE5ZDEyOTY1YTlkMTguYmluZFBvcHVwKHBvcHVwX2JhNmRiZjQyOTRhZTQyZWRiYWQ2NmVmMjJiOTE0MzEwKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8yMDM2YjMzOTUyNDM0MDRkYjcwNzcxOWZlNTRjZDg5MCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM4NTYyMjk5OTk5OTk5NSwgMi4xNTM5NDddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2EzMzIxN2MyMmMwOTRkNTc5MGYzN2E0NGZkMDU4MTQ5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzA5NDg1Y2ZhOGU1MzRjNTNiMmIzYzBhZGY4ZThmNjZhID0gJChgPGRpdiBpZD0iaHRtbF8wOTQ4NWNmYThlNTM0YzUzYjJiM2MwYWRmOGU4ZjY2YSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYTMzMjE3YzIyYzA5NGQ1NzkwZjM3YTQ0ZmQwNTgxNDkuc2V0Q29udGVudChodG1sXzA5NDg1Y2ZhOGU1MzRjNTNiMmIzYzBhZGY4ZThmNjZhKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzIwMzZiMzM5NTI0MzQwNGRiNzA3NzE5ZmU1NGNkODkwLmJpbmRQb3B1cChwb3B1cF9hMzMyMTdjMjJjMDk0ZDU3OTBmMzdhNDRmZDA1ODE0OSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNDQ2NGFkZWIxMjlmNDk0ODkxYjQ1NzIzZDVhNWIyYzEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zOTUxOTQwMDAwMDAwMDQsIDIuMTc0NjEzXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8wZDVkM2Y5NGViNjE0NzljODIzMDJhZmM5NjVjYWJkZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85NjkxMzY3YTQ1ZmE0ZWRiYjA1NmE2YjgyMjQwZGRlMiA9ICQoYDxkaXYgaWQ9Imh0bWxfOTY5MTM2N2E0NWZhNGVkYmIwNTZhNmI4MjI0MGRkZTIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzBkNWQzZjk0ZWI2MTQ3OWM4MjMwMmFmYzk2NWNhYmRmLnNldENvbnRlbnQoaHRtbF85NjkxMzY3YTQ1ZmE0ZWRiYjA1NmE2YjgyMjQwZGRlMik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl80NDY0YWRlYjEyOWY0OTQ4OTFiNDU3MjNkNWE1YjJjMS5iaW5kUG9wdXAocG9wdXBfMGQ1ZDNmOTRlYjYxNDc5YzgyMzAyYWZjOTY1Y2FiZGYpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2E4NTBjOTNiYzg1NjQ3N2ZhNGJhM2QyMWY2NzRmODA4ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzUwNzc4OTk5OTk5OTk2LCAyLjE0OTk5OV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOTg5ZDlhYmMzMGI3NDc1NDg1MmUxN2FhYjc0OWQyODMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfM2ZhODIzODFkNjAyNGE3NzkwNmYwYTZjYTU0NzI5YzcgPSAkKGA8ZGl2IGlkPSJodG1sXzNmYTgyMzgxZDYwMjRhNzc5MDZmMGE2Y2E1NDcyOWM3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF85ODlkOWFiYzMwYjc0NzU0ODUyZTE3YWFiNzQ5ZDI4My5zZXRDb250ZW50KGh0bWxfM2ZhODIzODFkNjAyNGE3NzkwNmYwYTZjYTU0NzI5YzcpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYTg1MGM5M2JjODU2NDc3ZmE0YmEzZDIxZjY3NGY4MDguYmluZFBvcHVwKHBvcHVwXzk4OWQ5YWJjMzBiNzQ3NTQ4NTJlMTdhYWI3NDlkMjgzKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8yYWRkOWE3Y2I4NzU0YjYzYjVlYjk4OWRhOGY3YzBlNCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM0NTYzMywgMi4xNDIxOTAwMDAwMDAwMDAzXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jYTRlZGFjYWNiY2U0N2VhOWU0ZGZhMDQ2M2JiMjg3NiA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8yMmQxZjc4MzNlN2Y0Y2IxYTBiYjA2ZGJhNGE5MWM5MiA9ICQoYDxkaXYgaWQ9Imh0bWxfMjJkMWY3ODMzZTdmNGNiMWEwYmIwNmRiYTRhOTFjOTIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2NhNGVkYWNhY2JjZTQ3ZWE5ZTRkZmEwNDYzYmIyODc2LnNldENvbnRlbnQoaHRtbF8yMmQxZjc4MzNlN2Y0Y2IxYTBiYjA2ZGJhNGE5MWM5Mik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8yYWRkOWE3Y2I4NzU0YjYzYjVlYjk4OWRhOGY3YzBlNC5iaW5kUG9wdXAocG9wdXBfY2E0ZWRhY2FjYmNlNDdlYTllNGRmYTA0NjNiYjI4NzYpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzk2NGEzOGEyN2NhZDQwZmRhMzM1YWVmOTI1NTJmYzc0ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzQ1NTUzLCAyLjEyODY3N10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNzkxYjMzOThhOTNjNGQxNmI0MGUwODVmZWIxZGRlZDEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZGY4MzFlNWQ3MDk1NGU3N2E3YjJiNmQ5NTc1NjJhZGEgPSAkKGA8ZGl2IGlkPSJodG1sX2RmODMxZTVkNzA5NTRlNzdhN2IyYjZkOTU3NTYyYWRhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF83OTFiMzM5OGE5M2M0ZDE2YjQwZTA4NWZlYjFkZGVkMS5zZXRDb250ZW50KGh0bWxfZGY4MzFlNWQ3MDk1NGU3N2E3YjJiNmQ5NTc1NjJhZGEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfOTY0YTM4YTI3Y2FkNDBmZGEzMzVhZWY5MjU1MmZjNzQuYmluZFBvcHVwKHBvcHVwXzc5MWIzMzk4YTkzYzRkMTZiNDBlMDg1ZmViMWRkZWQxKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl82OGJiZTEzZmE4ZDk0NTRkYjc1NjE0Y2RlZjA5NzFiNSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM5MTI2NCwgMi4xMzcwNTVdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzAyNmJhOTBiYjVjZjQzN2JhM2JiOGJjNTRjNTkxOGQ0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2VjODgyNzZlZDU5ODQ5MDc4Njc2ZDhhOTAzZWE0YWQ4ID0gJChgPGRpdiBpZD0iaHRtbF9lYzg4Mjc2ZWQ1OTg0OTA3ODY3NmQ4YTkwM2VhNGFkOCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMDI2YmE5MGJiNWNmNDM3YmEzYmI4YmM1NGM1OTE4ZDQuc2V0Q29udGVudChodG1sX2VjODgyNzZlZDU5ODQ5MDc4Njc2ZDhhOTAzZWE0YWQ4KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzY4YmJlMTNmYThkOTQ1NGRiNzU2MTRjZGVmMDk3MWI1LmJpbmRQb3B1cChwb3B1cF8wMjZiYTkwYmI1Y2Y0MzdiYTNiYjhiYzU0YzU5MThkNCkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMTNmMTc3OGY3NzU0NDc5MWE3ZGRhZTA2OWUwMDkzY2QgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zOTYxODIsIDIuMTE0NDAxXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82NGQ1YWZkN2U1MWI0MWJiYjUzOTU2ZTcwMDU1Y2YzNSA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8xM2ZhMjk2MmM2ZDU0ZTg5YjFhYTBlMmEwYjhhNDkzYSA9ICQoYDxkaXYgaWQ9Imh0bWxfMTNmYTI5NjJjNmQ1NGU4OWIxYWEwZTJhMGI4YTQ5M2EiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzY0ZDVhZmQ3ZTUxYjQxYmJiNTM5NTZlNzAwNTVjZjM1LnNldENvbnRlbnQoaHRtbF8xM2ZhMjk2MmM2ZDU0ZTg5YjFhYTBlMmEwYjhhNDkzYSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8xM2YxNzc4Zjc3NTQ0NzkxYTdkZGFlMDY5ZTAwOTNjZC5iaW5kUG9wdXAocG9wdXBfNjRkNWFmZDdlNTFiNDFiYmI1Mzk1NmU3MDA1NWNmMzUpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2M5ZTIyZjJkNTdkZTQ1NDRiZWZhZWRiYjFiYjhmNzljID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzc2NzkyLCAyLjExMDc2MV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNThiZTQwZGZlZjIzNDg4Nzk3NGZhZWQ0YTliODNhNWQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNTc5OTM4NjMzMThlNGIyODliMjFiODczODQ4Yzg4ZTQgPSAkKGA8ZGl2IGlkPSJodG1sXzU3OTkzODYzMzE4ZTRiMjg5YjIxYjg3Mzg0OGM4OGU0IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF81OGJlNDBkZmVmMjM0ODg3OTc0ZmFlZDRhOWI4M2E1ZC5zZXRDb250ZW50KGh0bWxfNTc5OTM4NjMzMThlNGIyODliMjFiODczODQ4Yzg4ZTQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYzllMjJmMmQ1N2RlNDU0NGJlZmFlZGJiMWJiOGY3OWMuYmluZFBvcHVwKHBvcHVwXzU4YmU0MGRmZWYyMzQ4ODc5NzRmYWVkNGE5YjgzYTVkKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl83OGQ3ODk5ZjQzN2E0OWU5ODNmNDk0Y2ZlZTlkMDZmOSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM5NTkzOSwgMi4xNDkzMzRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2ZlODMyYTM0ZjYxYTQ1OGY5YmU2YjRjYThlMjgwOWM1ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzcxYjlhZGEwMjEyOTQ2YzhiZDM3ODhmNTJkZThkODg1ID0gJChgPGRpdiBpZD0iaHRtbF83MWI5YWRhMDIxMjk0NmM4YmQzNzg4ZjUyZGU4ZDg4NSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MjwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZmU4MzJhMzRmNjFhNDU4ZjliZTZiNGNhOGUyODA5YzUuc2V0Q29udGVudChodG1sXzcxYjlhZGEwMjEyOTQ2YzhiZDM3ODhmNTJkZThkODg1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzc4ZDc4OTlmNDM3YTQ5ZTk4M2Y0OTRjZmVlOWQwNmY5LmJpbmRQb3B1cChwb3B1cF9mZTgzMmEzNGY2MWE0NThmOWJlNmI0Y2E4ZTI4MDljNSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZTFiNTFmYjYxOWRiNGZmYmIwYmYwZGY3YjRkM2Q0ZGIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zOTc3NzksIDIuMTMyODUzXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8xYTQ2NTZiOTIyMDc0ZmRlYWMyYTYxZGU5ZDhjZTQ0MiA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF83YjM1YThmNmEyZjk0ZDZiOTYyMjYxNzgzNzc0ZTNjYSA9ICQoYDxkaXYgaWQ9Imh0bWxfN2IzNWE4ZjZhMmY5NGQ2Yjk2MjI2MTc4Mzc3NGUzY2EiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzFhNDY1NmI5MjIwNzRmZGVhYzJhNjFkZTlkOGNlNDQyLnNldENvbnRlbnQoaHRtbF83YjM1YThmNmEyZjk0ZDZiOTYyMjYxNzgzNzc0ZTNjYSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9lMWI1MWZiNjE5ZGI0ZmZiYjBiZjBkZjdiNGQzZDRkYi5iaW5kUG9wdXAocG9wdXBfMWE0NjU2YjkyMjA3NGZkZWFjMmE2MWRlOWQ4Y2U0NDIpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzgyN2JiOWFjMzc4MTRlZjY4MTVkYWEyODQ0MTYzMWRmID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuNDEwMTM5LCAyLjE0NzE4M10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNDFkODcwOGU5MDAyNDY2NmFkN2JjMjhmYzM1NTVhMTYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYWM5ZWI5M2Y4OGE5NDAzZWI5N2Q5YzgyZjQ5MjUxNTcgPSAkKGA8ZGl2IGlkPSJodG1sX2FjOWViOTNmODhhOTQwM2ViOTdkOWM4MmY0OTI1MTU3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80MWQ4NzA4ZTkwMDI0NjY2YWQ3YmMyOGZjMzU1NWExNi5zZXRDb250ZW50KGh0bWxfYWM5ZWI5M2Y4OGE5NDAzZWI5N2Q5YzgyZjQ5MjUxNTcpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfODI3YmI5YWMzNzgxNGVmNjgxNWRhYTI4NDQxNjMxZGYuYmluZFBvcHVwKHBvcHVwXzQxZDg3MDhlOTAwMjQ2NjZhZDdiYzI4ZmMzNTU1YTE2KQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl80OTY1M2E1NTJiMDc0OGE0OGRhMjg1NDYyOWEyZTIyOCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjQxMjU0Njk5OTk5OTk5NiwgMi4xNjI2MzldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzcwMGExN2NlZjZlODRkNjU4ODAyOTBmZjdmYjIyODEzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzliMDBkNTgwMWI2MzQwZjlhNWFmZjI1NTg1ZDgyZDgwID0gJChgPGRpdiBpZD0iaHRtbF85YjAwZDU4MDFiNjM0MGY5YTVhZmYyNTU4NWQ4MmQ4MCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNzAwYTE3Y2VmNmU4NGQ2NTg4MDI5MGZmN2ZiMjI4MTMuc2V0Q29udGVudChodG1sXzliMDBkNTgwMWI2MzQwZjlhNWFmZjI1NTg1ZDgyZDgwKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzQ5NjUzYTU1MmIwNzQ4YTQ4ZGEyODU0NjI5YTJlMjI4LmJpbmRQb3B1cChwb3B1cF83MDBhMTdjZWY2ZTg0ZDY1ODgwMjkwZmY3ZmIyMjgxMykKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYzI2YmQ1ZTAzYzYzNDg2ZGJkNGI3ZWUxMTM1ZTVjNzggPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MjczODMsIDIuMTc3MDI4XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85ZjZiYjI4NmI4ZmM0OTAwOWU3NDRjYzhjZGMwNDg3MCA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF83OTliMDc0MWU5MGQ0Njc2YWE4ZGFkZDQ3Mjk4ZTBhZCA9ICQoYDxkaXYgaWQ9Imh0bWxfNzk5YjA3NDFlOTBkNDY3NmFhOGRhZGQ0NzI5OGUwYWQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzlmNmJiMjg2YjhmYzQ5MDA5ZTc0NGNjOGNkYzA0ODcwLnNldENvbnRlbnQoaHRtbF83OTliMDc0MWU5MGQ0Njc2YWE4ZGFkZDQ3Mjk4ZTBhZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9jMjZiZDVlMDNjNjM0ODZkYmQ0YjdlZTExMzVlNWM3OC5iaW5kUG9wdXAocG9wdXBfOWY2YmIyODZiOGZjNDkwMDllNzQ0Y2M4Y2RjMDQ4NzApCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2JjNDg3Zjk0MTZkZDQyNzdiNWZjNjczMjY4MTQxYTFhID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuNDIwMzI3LCAyLjE4NjkwOV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZjFkNDViZmUwMjY2NGMwZjg3NjdmMjJlYmJkMzVmOWYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZGZiYzhlZDkxZGM5NGJjMGI3ZThhMTFmZjRiNTVhZTIgPSAkKGA8ZGl2IGlkPSJodG1sX2RmYmM4ZWQ5MWRjOTRiYzBiN2U4YTExZmY0YjU1YWUyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9mMWQ0NWJmZTAyNjY0YzBmODc2N2YyMmViYmQzNWY5Zi5zZXRDb250ZW50KGh0bWxfZGZiYzhlZDkxZGM5NGJjMGI3ZThhMTFmZjRiNTVhZTIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYmM0ODdmOTQxNmRkNDI3N2I1ZmM2NzMyNjgxNDFhMWEuYmluZFBvcHVwKHBvcHVwX2YxZDQ1YmZlMDI2NjRjMGY4NzY3ZjIyZWJiZDM1ZjlmKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8xZjhiMmM2ZDZjYjM0OTk1ODJiYWMwMTBmOWMxZmQ5NCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjQzOTIzMywgMi4xODI1ODhdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzdlZThjZDcyMWY5NzRjNDRhZDg1MWMzOGNiNzM1OWE5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzI2MTMwMTU0M2NiMDQzMTM5NjU0NGIzMGEwMTc3ZTg5ID0gJChgPGRpdiBpZD0iaHRtbF8yNjEzMDE1NDNjYjA0MzEzOTY1NDRiMzBhMDE3N2U4OSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfN2VlOGNkNzIxZjk3NGM0NGFkODUxYzM4Y2I3MzU5YTkuc2V0Q29udGVudChodG1sXzI2MTMwMTU0M2NiMDQzMTM5NjU0NGIzMGEwMTc3ZTg5KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzFmOGIyYzZkNmNiMzQ5OTU4MmJhYzAxMGY5YzFmZDk0LmJpbmRQb3B1cChwb3B1cF83ZWU4Y2Q3MjFmOTc0YzQ0YWQ4NTFjMzhjYjczNTlhOSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMjc5ZGM2ZTg1MGIyNGQxOGEyZDExNDU2ZmI2YmYwYTkgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MTQ1NTIsIDIuMTkyNDI1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9lYmY0MTY5ZjVlYTU0OWNiYjBkNDFlY2UwZjI5ZDA1NyA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8xMzI3YTZiYWZkMTc0OTU1YjI2MTNjY2JkZGIzMzUzMCA9ICQoYDxkaXYgaWQ9Imh0bWxfMTMyN2E2YmFmZDE3NDk1NWIyNjEzY2NiZGRiMzM1MzAiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2ViZjQxNjlmNWVhNTQ5Y2JiMGQ0MWVjZTBmMjlkMDU3LnNldENvbnRlbnQoaHRtbF8xMzI3YTZiYWZkMTc0OTU1YjI2MTNjY2JkZGIzMzUzMCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8yNzlkYzZlODUwYjI0ZDE4YTJkMTE0NTZmYjZiZjBhOS5iaW5kUG9wdXAocG9wdXBfZWJmNDE2OWY1ZWE1NDljYmIwZDQxZWNlMGYyOWQwNTcpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzQxMGQ5MGE3NzUyNzQ5N2E4Mzk4MjUyNGFhYTEwYjBmID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuNDExOTcyOTk5OTk5OTk2LCAyLjE5MTI3OV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMWNlNzRkZjA1ZmMyNGEyMzg0NzNiOGZhYmQ1NTBkNzkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfM2JlYWI0YmZmODRiNDRhM2FlOTFhYmI3OWRmZDk1MjUgPSAkKGA8ZGl2IGlkPSJodG1sXzNiZWFiNGJmZjg0YjQ0YTNhZTkxYWJiNzlkZmQ5NTI1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4yPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8xY2U3NGRmMDVmYzI0YTIzODQ3M2I4ZmFiZDU1MGQ3OS5zZXRDb250ZW50KGh0bWxfM2JlYWI0YmZmODRiNDRhM2FlOTFhYmI3OWRmZDk1MjUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNDEwZDkwYTc3NTI3NDk3YTgzOTgyNTI0YWFhMTBiMGYuYmluZFBvcHVwKHBvcHVwXzFjZTc0ZGYwNWZjMjRhMjM4NDczYjhmYWJkNTUwZDc5KQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9iNjhmZTU1OGNiZjk0OTgyYWFhYzI3YjBjYzY5ZTFmOCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjQxMTc3NCwgMi4yMTkzMzMwMDAwMDAwMDAyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kMmQ0OWE0OWM2NGI0ZTU3Yjg0N2NjNzk4ZjVjMmRlMyA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84MDZlYjQ5ODFmNzA0NDY5YmIzNWJiYTI2ZjNkMDA3MSA9ICQoYDxkaXYgaWQ9Imh0bWxfODA2ZWI0OTgxZjcwNDQ2OWJiMzViYmEyNmYzZDAwNzEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2QyZDQ5YTQ5YzY0YjRlNTdiODQ3Y2M3OThmNWMyZGUzLnNldENvbnRlbnQoaHRtbF84MDZlYjQ5ODFmNzA0NDY5YmIzNWJiYTI2ZjNkMDA3MSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9iNjhmZTU1OGNiZjk0OTgyYWFhYzI3YjBjYzY5ZTFmOC5iaW5kUG9wdXAocG9wdXBfZDJkNDlhNDljNjRiNGU1N2I4NDdjYzc5OGY1YzJkZTMpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2IxZGIzYjdiZmRmYjRlZjNiMDZmODQ0ZWNjZGQ0MzMxID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuNDEwOTUsIDIuMjA4NDY2OTk5OTk5OTk5N10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMDc2NGEwNzIwNWU2NGFiM2I1YTU5MTY2ZThjMjEwNjMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYjhlZjBmYzQ4ZTQ1NDc2NjlkMDMyYWZmNzU0MzdiOTEgPSAkKGA8ZGl2IGlkPSJodG1sX2I4ZWYwZmM0OGU0NTQ3NjY5ZDAzMmFmZjc1NDM3YjkxIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8wNzY0YTA3MjA1ZTY0YWIzYjVhNTkxNjZlOGMyMTA2My5zZXRDb250ZW50KGh0bWxfYjhlZjBmYzQ4ZTQ1NDc2NjlkMDMyYWZmNzU0MzdiOTEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYjFkYjNiN2JmZGZiNGVmM2IwNmY4NDRlY2NkZDQzMzEuYmluZFBvcHVwKHBvcHVwXzA3NjRhMDcyMDVlNjRhYjNiNWE1OTE2NmU4YzIxMDYzKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl82MWQzN2MyMzBkYmQ0MDA2YjViZWI3YWVkY2E1YjU5MiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjQwOTI4OSwgMi4xOTQ4NTldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2MxMDQ5ZmY3ZWY0OTRiZTZhN2Y0NDdhZDcwYzk4ZjQ2ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzgwYjQwOTYzNGYxMDQ0YjVhMDRkNjAwOTgyMzFjYmJhID0gJChgPGRpdiBpZD0iaHRtbF84MGI0MDk2MzRmMTA0NGI1YTA0ZDYwMDk4MjMxY2JiYSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYzEwNDlmZjdlZjQ5NGJlNmE3ZjQ0N2FkNzBjOThmNDYuc2V0Q29udGVudChodG1sXzgwYjQwOTYzNGYxMDQ0YjVhMDRkNjAwOTgyMzFjYmJhKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzYxZDM3YzIzMGRiZDQwMDZiNWJlYjdhZWRjYTViNTkyLmJpbmRQb3B1cChwb3B1cF9jMTA0OWZmN2VmNDk0YmU2YTdmNDQ3YWQ3MGM5OGY0NikKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfODE4NGQyZmEyZTk1NDg0YWI4MjZjNjQ1MGU4Nzc2ZTQgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MDE1NTYsIDIuMTkxNTUyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9iZWZlODlkY2VmMWQ0NTliYTc3OWI3MTEwYTBkZjg0NiA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9hMjc1ZjBiOGY5YmU0NzQwOWE3ZDk4YjFjYTk0MTZjNCA9ICQoYDxkaXYgaWQ9Imh0bWxfYTI3NWYwYjhmOWJlNDc0MDlhN2Q5OGIxY2E5NDE2YzQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2JlZmU4OWRjZWYxZDQ1OWJhNzc5YjcxMTBhMGRmODQ2LnNldENvbnRlbnQoaHRtbF9hMjc1ZjBiOGY5YmU0NzQwOWE3ZDk4YjFjYTk0MTZjNCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl84MTg0ZDJmYTJlOTU0ODRhYjgyNmM2NDUwZTg3NzZlNC5iaW5kUG9wdXAocG9wdXBfYmVmZTg5ZGNlZjFkNDU5YmE3NzliNzExMGEwZGY4NDYpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzJiYWQzM2NlNjVlZDQwNTQ5YTY2Mzc5ZTM1ZWYwNWI0ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzk5NDQyLCAyLjIwOTc0MV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMjJjZGNkZWQ1OWUyNGE4MmIyYTFjNzZkODdiNGViYTQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZWE4ODkzOWE2MDFmNDQxNGI0ODM5NDliM2E2Njg1OWMgPSAkKGA8ZGl2IGlkPSJodG1sX2VhODg5MzlhNjAxZjQ0MTRiNDgzOTQ5YjNhNjY4NTljIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4yPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8yMmNkY2RlZDU5ZTI0YTgyYjJhMWM3NmQ4N2I0ZWJhNC5zZXRDb250ZW50KGh0bWxfZWE4ODkzOWE2MDFmNDQxNGI0ODM5NDliM2E2Njg1OWMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMmJhZDMzY2U2NWVkNDA1NDlhNjYzNzllMzVlZjA1YjQuYmluZFBvcHVwKHBvcHVwXzIyY2RjZGVkNTllMjRhODJiMmExYzc2ZDg3YjRlYmE0KQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl83MDg5MDNlZDQ4OTU0MTBjOWRkMTU5YWU3ZWU4MTE3YSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM3NDk3MSwgMi4xNzAwMDNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2M0YWUzZmRiOGI1YjQ0NGVhN2EyNmU1NGQ4OTFkYmExID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2RmYzdiMzViYmY4YjRkODg4ZDk1ZGZkMzdmNTJjNTQ0ID0gJChgPGRpdiBpZD0iaHRtbF9kZmM3YjM1YmJmOGI0ZDg4OGQ5NWRmZDM3ZjUyYzU0NCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MjwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYzRhZTNmZGI4YjViNDQ0ZWE3YTI2ZTU0ZDg5MWRiYTEuc2V0Q29udGVudChodG1sX2RmYzdiMzViYmY4YjRkODg4ZDk1ZGZkMzdmNTJjNTQ0KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzcwODkwM2VkNDg5NTQxMGM5ZGQxNTlhZTdlZTgxMTdhLmJpbmRQb3B1cChwb3B1cF9jNGFlM2ZkYjhiNWI0NDRlYTdhMjZlNTRkODkxZGJhMSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYWY0MzI1MWQwYjFjNDA1N2I2ZjRlZDg3ZDRkNmNmNjggPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zOTQ1NzQsIDIuMjA2NzM4XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82MTZhMmY5YjY3NzE0YjM4OWJiNzBmMDBmNjg1YzQyOCA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iNGM5ZDI1ZjJjMWQ0ODU1OTI5OGRkYTVkN2MwMzg5OCA9ICQoYDxkaXYgaWQ9Imh0bWxfYjRjOWQyNWYyYzFkNDg1NTkyOThkZGE1ZDdjMDM4OTgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzYxNmEyZjliNjc3MTRiMzg5YmI3MGYwMGY2ODVjNDI4LnNldENvbnRlbnQoaHRtbF9iNGM5ZDI1ZjJjMWQ0ODU1OTI5OGRkYTVkN2MwMzg5OCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9hZjQzMjUxZDBiMWM0MDU3YjZmNGVkODdkNGQ2Y2Y2OC5iaW5kUG9wdXAocG9wdXBfNjE2YTJmOWI2NzcxNGIzODliYjcwZjAwZjY4NWM0MjgpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2M5NzU4MThkYjQwNjQ2ZGQ4NmE0OTIzMWUwNTFjZjJjID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzc5NTYwOTk5OTk5OTk1LCAyLjE1NDcxM10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNWU4MGZjNDAxYjVjNGNhY2I0YjIwZWYxMjE2MzhmNTkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNTE2ZjY2YzIxZjRjNGU2MGJiNzRlN2IzOGIyNzYwNjYgPSAkKGA8ZGl2IGlkPSJodG1sXzUxNmY2NmMyMWY0YzRlNjBiYjc0ZTdiMzhiMjc2MDY2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF81ZTgwZmM0MDFiNWM0Y2FjYjRiMjBlZjEyMTYzOGY1OS5zZXRDb250ZW50KGh0bWxfNTE2ZjY2YzIxZjRjNGU2MGJiNzRlN2IzOGIyNzYwNjYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYzk3NTgxOGRiNDA2NDZkZDg2YTQ5MjMxZTA1MWNmMmMuYmluZFBvcHVwKHBvcHVwXzVlODBmYzQwMWI1YzRjYWNiNGIyMGVmMTIxNjM4ZjU5KQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl83M2I1M2NiYTEyMGM0M2ZkYjRhYzJlMmUwZTg2ZmIxZCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM5NTU2NywgMi4xNTU3MTRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzFmNjY4MDhiNTk5NDQ2YTQ4M2IzZGU3NzVhZGRmOTA3ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzIwOWNmMjk0MDBjMTQ4ODVhMTFlNGY3Y2U2NTk3OTYwID0gJChgPGRpdiBpZD0iaHRtbF8yMDljZjI5NDAwYzE0ODg1YTExZTRmN2NlNjU5Nzk2MCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMWY2NjgwOGI1OTk0NDZhNDgzYjNkZTc3NWFkZGY5MDcuc2V0Q29udGVudChodG1sXzIwOWNmMjk0MDBjMTQ4ODVhMTFlNGY3Y2U2NTk3OTYwKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzczYjUzY2JhMTIwYzQzZmRiNGFjMmUyZTBlODZmYjFkLmJpbmRQb3B1cChwb3B1cF8xZjY2ODA4YjU5OTQ0NmE0ODNiM2RlNzc1YWRkZjkwNykKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNjliZmQ4NGI1NDU2NDU2N2FmNDQyNmI4NjM4N2FjNjYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zOTQ3OCwgMi4xNTM1NTNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2VmMWU1NGQ5MTNmZjQ1ZGM5MTRmNDQ4NzI2MmJlY2Y3ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzBmMThkOTMxOWZjNjQ3YmNiM2EzMGQ3ZTFjYjI5NjFiID0gJChgPGRpdiBpZD0iaHRtbF8wZjE4ZDkzMTlmYzY0N2JjYjNhMzBkN2UxY2IyOTYxYiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MjwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZWYxZTU0ZDkxM2ZmNDVkYzkxNGY0NDg3MjYyYmVjZjcuc2V0Q29udGVudChodG1sXzBmMThkOTMxOWZjNjQ3YmNiM2EzMGQ3ZTFjYjI5NjFiKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzY5YmZkODRiNTQ1NjQ1NjdhZjQ0MjZiODYzODdhYzY2LmJpbmRQb3B1cChwb3B1cF9lZjFlNTRkOTEzZmY0NWRjOTE0ZjQ0ODcyNjJiZWNmNykKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNjI3Njg5Y2U2MGQxNGIwYWEwNTNlMDY1ZWU4ZTRlZmUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zOTIxMDcsIDIuMTU2NTA0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9mN2Y2NjI5MjllMDA0Zjc1ODA5MTQ1MGQwNmMzMWJlMiA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF80ZDNmN2Q0NTU0NDU0NzdjYWJhMTE4MjRmMTAzNzc4ZiA9ICQoYDxkaXYgaWQ9Imh0bWxfNGQzZjdkNDU1NDQ1NDc3Y2FiYTExODI0ZjEwMzc3OGYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2Y3ZjY2MjkyOWUwMDRmNzU4MDkxNDUwZDA2YzMxYmUyLnNldENvbnRlbnQoaHRtbF80ZDNmN2Q0NTU0NDU0NzdjYWJhMTE4MjRmMTAzNzc4Zik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl82Mjc2ODljZTYwZDE0YjBhYTA1M2UwNjVlZThlNGVmZS5iaW5kUG9wdXAocG9wdXBfZjdmNjYyOTI5ZTAwNGY3NTgwOTE0NTBkMDZjMzFiZTIpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2Q2YTQ4ZGE2ZjRlNzRjMDc5ZTkwODk3ZjhiMjdjMjZiID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzc3MTE3OTk5OTk5OTk2LCAyLjE0NzA1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83OTE5N2NkMjdhMWY0M2ZkODI2NDVlNDVmMTAxZDYxZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF82YzAxNzZiZGIzYzI0NDIxYWQyNDI4NjdjZTQzNzY1YSA9ICQoYDxkaXYgaWQ9Imh0bWxfNmMwMTc2YmRiM2MyNDQyMWFkMjQyODY3Y2U0Mzc2NWEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzc5MTk3Y2QyN2ExZjQzZmQ4MjY0NWU0NWYxMDFkNjFlLnNldENvbnRlbnQoaHRtbF82YzAxNzZiZGIzYzI0NDIxYWQyNDI4NjdjZTQzNzY1YSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9kNmE0OGRhNmY0ZTc0YzA3OWU5MDg5N2Y4YjI3YzI2Yi5iaW5kUG9wdXAocG9wdXBfNzkxOTdjZDI3YTFmNDNmZDgyNjQ1ZTQ1ZjEwMWQ2MWUpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzg0MDkzZWQ1MDFmZTQyYjViNDQ1ZmZkYzM3Y2YwMmUzID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzg5MDI4LCAyLjE1Mzk2OV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMmNiNWU3Y2YyZWI5NDgwZjkyN2I2NjJkOWYxMDk2YzIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMzI3NTA0NzNmODNiNGJiMTk2ZmU5M2ZjNGFhMTBhMWYgPSAkKGA8ZGl2IGlkPSJodG1sXzMyNzUwNDczZjgzYjRiYjE5NmZlOTNmYzRhYTEwYTFmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4yPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8yY2I1ZTdjZjJlYjk0ODBmOTI3YjY2MmQ5ZjEwOTZjMi5zZXRDb250ZW50KGh0bWxfMzI3NTA0NzNmODNiNGJiMTk2ZmU5M2ZjNGFhMTBhMWYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfODQwOTNlZDUwMWZlNDJiNWI0NDVmZmRjMzdjZjAyZTMuYmluZFBvcHVwKHBvcHVwXzJjYjVlN2NmMmViOTQ4MGY5MjdiNjYyZDlmMTA5NmMyKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9kYWUyYWU5Y2FjMjY0N2RiYTc1MDQ5YmQ4MmU0ZGE5MCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM5MDM5MiwgMi4xNTI3NTVdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2U2MTE5NTNkNTM1ZDQ2NDdhNDc3YjI0ZDgxOGUyOTc5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2VjNGRlMzc4N2FkMDQ2YWE5M2UxYjFkZmZkNjdiYTkyID0gJChgPGRpdiBpZD0iaHRtbF9lYzRkZTM3ODdhZDA0NmFhOTNlMWIxZGZmZDY3YmE5MiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZTYxMTk1M2Q1MzVkNDY0N2E0NzdiMjRkODE4ZTI5Nzkuc2V0Q29udGVudChodG1sX2VjNGRlMzc4N2FkMDQ2YWE5M2UxYjFkZmZkNjdiYTkyKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2RhZTJhZTljYWMyNjQ3ZGJhNzUwNDliZDgyZTRkYTkwLmJpbmRQb3B1cChwb3B1cF9lNjExOTUzZDUzNWQ0NjQ3YTQ3N2IyNGQ4MThlMjk3OSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYzk5YzYyOWU4NmI2NDQ4ZWE3Y2MyYTk1NWYyMjE5ZjUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zNzQ4MDYsIDIuMTYwNzIzXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83NTJiM2NiYzliZmY0YTY1YjQ4MjcxNDA2MjdhN2M5NyA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iMDkzOTVlZDhhYTY0MjUxOGI2NmI0MDZhZTI4M2MwMyA9ICQoYDxkaXYgaWQ9Imh0bWxfYjA5Mzk1ZWQ4YWE2NDI1MThiNjZiNDA2YWUyODNjMDMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzc1MmIzY2JjOWJmZjRhNjViNDgyNzE0MDYyN2E3Yzk3LnNldENvbnRlbnQoaHRtbF9iMDkzOTVlZDhhYTY0MjUxOGI2NmI0MDZhZTI4M2MwMyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9jOTljNjI5ZTg2YjY0NDhlYTdjYzJhOTU1ZjIyMTlmNS5iaW5kUG9wdXAocG9wdXBfNzUyYjNjYmM5YmZmNGE2NWI0ODI3MTQwNjI3YTdjOTcpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzU5M2JiNzcwMDhiMTRkZjQ4YzNjMTM1ZjcxZmJhMWZlID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzUzMDUsIDIuMTMzODY2XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8xMWI0ODhhODA1N2E0ZmZkODg4N2IwZTBkMDc1MWY2NiA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iZWU3ZTYyMTI1Mzk0NWM0OWFmN2M1NDA2MmIzODIxMCA9ICQoYDxkaXYgaWQ9Imh0bWxfYmVlN2U2MjEyNTM5NDVjNDlhZjdjNTQwNjJiMzgyMTAiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzExYjQ4OGE4MDU3YTRmZmQ4ODg3YjBlMGQwNzUxZjY2LnNldENvbnRlbnQoaHRtbF9iZWU3ZTYyMTI1Mzk0NWM0OWFmN2M1NDA2MmIzODIxMCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl81OTNiYjc3MDA4YjE0ZGY0OGMzYzEzNWY3MWZiYTFmZS5iaW5kUG9wdXAocG9wdXBfMTFiNDg4YTgwNTdhNGZmZDg4ODdiMGUwZDA3NTFmNjYpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2ZmZTVlYTc2Y2UyZDQ4MjI4YmY3ODQ5MTNjMjVmZjE0ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzc1MjY3LCAyLjE0MjU1NjAwMDAwMDAwMDNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzc5NzUzOTQ3ZmVjNDQ0MzU5ZTcxM2IxZjRlNmZiY2ZjID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2IwOWMzZmVhZWRkYjQ3NjE5OTlmNGFlMjVkYzRkN2QzID0gJChgPGRpdiBpZD0iaHRtbF9iMDljM2ZlYWVkZGI0NzYxOTk5ZjRhZTI1ZGM0ZDdkMyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNzk3NTM5NDdmZWM0NDQzNTllNzEzYjFmNGU2ZmJjZmMuc2V0Q29udGVudChodG1sX2IwOWMzZmVhZWRkYjQ3NjE5OTlmNGFlMjVkYzRkN2QzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2ZmZTVlYTc2Y2UyZDQ4MjI4YmY3ODQ5MTNjMjVmZjE0LmJpbmRQb3B1cChwb3B1cF83OTc1Mzk0N2ZlYzQ0NDM1OWU3MTNiMWY0ZTZmYmNmYykKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMzQ4ZDMxYTFhZWM5NGNkZDg4YjVkNDcxYTIxM2E2MzkgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zNzE1MTUsIDIuMTMyNzY3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8yYzYyMjYwMGU0ZmY0MGZlYjZhODVkNjJjYTk3OTQ3NiA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8zYjJmMGYzNGQ1Yjk0NjE5YTc0NTc0ZmQ3YjgxNjNjZCA9ICQoYDxkaXYgaWQ9Imh0bWxfM2IyZjBmMzRkNWI5NDYxOWE3NDU3NGZkN2I4MTYzY2QiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzJjNjIyNjAwZTRmZjQwZmViNmE4NWQ2MmNhOTc5NDc2LnNldENvbnRlbnQoaHRtbF8zYjJmMGYzNGQ1Yjk0NjE5YTc0NTc0ZmQ3YjgxNjNjZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8zNDhkMzFhMWFlYzk0Y2RkODhiNWQ0NzFhMjEzYTYzOS5iaW5kUG9wdXAocG9wdXBfMmM2MjI2MDBlNGZmNDBmZWI2YTg1ZDYyY2E5Nzk0NzYpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2QzMTdlM2ExOWY1ZjQzY2I5NzFjZDZmMTNjMGI3YjQxID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzg3MjgyLCAyLjEyMzI3NV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfY2M3MDdlMTdmYTFlNDlhZjllMTc4ZTU4ZjJjMDY3OWEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYTczYjExMjQ1ZmRhNGVjYzk4N2Q1MDYzY2M2MTYwZmYgPSAkKGA8ZGl2IGlkPSJodG1sX2E3M2IxMTI0NWZkYTRlY2M5ODdkNTA2M2NjNjE2MGZmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jYzcwN2UxN2ZhMWU0OWFmOWUxNzhlNThmMmMwNjc5YS5zZXRDb250ZW50KGh0bWxfYTczYjExMjQ1ZmRhNGVjYzk4N2Q1MDYzY2M2MTYwZmYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZDMxN2UzYTE5ZjVmNDNjYjk3MWNkNmYxM2MwYjdiNDEuYmluZFBvcHVwKHBvcHVwX2NjNzA3ZTE3ZmExZTQ5YWY5ZTE3OGU1OGYyYzA2NzlhKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl85MWE2ZWUzYjRjYjA0MzRhODViYWQzYmFiOWM1MTg1MCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM4NzgwNiwgMi4xMjUzNTk5OTk5OTk5OTk3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8xMjJjYjk0OTJlNWI0MjdjYjg4NzRiMDgyYzc1NzRiMiA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8yOWRiYzM3MzQ0OTA0MmJhYTc1NTU2NzQzNDQ5ZGUwNSA9ICQoYDxkaXYgaWQ9Imh0bWxfMjlkYmMzNzM0NDkwNDJiYWE3NTU1Njc0MzQ0OWRlMDUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzEyMmNiOTQ5MmU1YjQyN2NiODg3NGIwODJjNzU3NGIyLnNldENvbnRlbnQoaHRtbF8yOWRiYzM3MzQ0OTA0MmJhYTc1NTU2NzQzNDQ5ZGUwNSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl85MWE2ZWUzYjRjYjA0MzRhODViYWQzYmFiOWM1MTg1MC5iaW5kUG9wdXAocG9wdXBfMTIyY2I5NDkyZTViNDI3Y2I4ODc0YjA4MmM3NTc0YjIpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzVjOGQ1ZTU2MzFkZjRjOGY4NWRlM2YxZTExMzU2MDY4ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzg3MDgyLCAyLjExMjI5M10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfODVmNTBlM2RjNzVmNGZjMzkxNGZmMmNkZWJjNDM3N2YgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNDdlMWMyYWNkOGY4NDM2ZWIzYzA0YWM5ODkxZjg5N2QgPSAkKGA8ZGl2IGlkPSJodG1sXzQ3ZTFjMmFjZDhmODQzNmViM2MwNGFjOTg5MWY4OTdkIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF84NWY1MGUzZGM3NWY0ZmMzOTE0ZmYyY2RlYmM0Mzc3Zi5zZXRDb250ZW50KGh0bWxfNDdlMWMyYWNkOGY4NDM2ZWIzYzA0YWM5ODkxZjg5N2QpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNWM4ZDVlNTYzMWRmNGM4Zjg1ZGUzZjFlMTEzNTYwNjguYmluZFBvcHVwKHBvcHVwXzg1ZjUwZTNkYzc1ZjRmYzM5MTRmZjJjZGViYzQzNzdmKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8xMjFkOGZjZGM1NTA0ZTdkYjcyOGJiN2UxZDllMGYwZSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM4NTM1LCAyLjExNzAyN10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOGJiMjljODg5N2MzNDdiYzliMzdlOWVjYTIyZjg1OGIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZWUzMTA0ZDBiNDYzNDI3NWExNTQ5NjIxODYwNjkzZDAgPSAkKGA8ZGl2IGlkPSJodG1sX2VlMzEwNGQwYjQ2MzQyNzVhMTU0OTYyMTg2MDY5M2QwIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF84YmIyOWM4ODk3YzM0N2JjOWIzN2U5ZWNhMjJmODU4Yi5zZXRDb250ZW50KGh0bWxfZWUzMTA0ZDBiNDYzNDI3NWExNTQ5NjIxODYwNjkzZDApOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMTIxZDhmY2RjNTUwNGU3ZGI3MjhiYjdlMWQ5ZTBmMGUuYmluZFBvcHVwKHBvcHVwXzhiYjI5Yzg4OTdjMzQ3YmM5YjM3ZTllY2EyMmY4NThiKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9lODU0NmMxNzc5Mjc0YzVhYWYzYjc3NDRiMGIwMDI0NiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM5NTA4LCAyLjEzMTU2OF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYjZhMjBjNjU3ZmJiNDJjYTk3ZDZlYTBhOWIzMjBmZGYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNTAzMDNiN2Q0Yjc2NGE0Y2I1MTk3ODQyMDcxY2Y1YmMgPSAkKGA8ZGl2IGlkPSJodG1sXzUwMzAzYjdkNGI3NjRhNGNiNTE5Nzg0MjA3MWNmNWJjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iNmEyMGM2NTdmYmI0MmNhOTdkNmVhMGE5YjMyMGZkZi5zZXRDb250ZW50KGh0bWxfNTAzMDNiN2Q0Yjc2NGE0Y2I1MTk3ODQyMDcxY2Y1YmMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZTg1NDZjMTc3OTI3NGM1YWFmM2I3NzQ0YjBiMDAyNDYuYmluZFBvcHVwKHBvcHVwX2I2YTIwYzY1N2ZiYjQyY2E5N2Q2ZWEwYTliMzIwZmRmKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8xMmU2OGU5NDBhN2Q0MzlhYTRkMjEyZWVmYjUyNjZjZSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjQwNjkwOCwgMi4xNjM1NTddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzBkMWUyMGQ2ZTEyYjQ5ZGViMjZhOGQ3ZThiMTNiYmEwID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2U2YTExM2YyMmYzYTQ4NTBiMmYzNTA4NzljYWQxNmUyID0gJChgPGRpdiBpZD0iaHRtbF9lNmExMTNmMjJmM2E0ODUwYjJmMzUwODc5Y2FkMTZlMiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMGQxZTIwZDZlMTJiNDlkZWIyNmE4ZDdlOGIxM2JiYTAuc2V0Q29udGVudChodG1sX2U2YTExM2YyMmYzYTQ4NTBiMmYzNTA4NzljYWQxNmUyKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzEyZTY4ZTk0MGE3ZDQzOWFhNGQyMTJlZWZiNTI2NmNlLmJpbmRQb3B1cChwb3B1cF8wZDFlMjBkNmUxMmI0OWRlYjI2YThkN2U4YjEzYmJhMCkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNDQyNmM2YTI0MjMyNDNjZTg1MDUyMjA3MGMyOWFhODEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MzAzMiwgMi4xNjQ4MTNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzU4OTA5Y2JmMDlkODQ1NzdiOWQ3MDE2NzUyNjNiOTMzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2RlZGMxYzY2YjcyMjQ0ZDA4MmNhMzgyNTAyMzZlMTJhID0gJChgPGRpdiBpZD0iaHRtbF9kZWRjMWM2NmI3MjI0NGQwODJjYTM4MjUwMjM2ZTEyYSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNTg5MDljYmYwOWQ4NDU3N2I5ZDcwMTY3NTI2M2I5MzMuc2V0Q29udGVudChodG1sX2RlZGMxYzY2YjcyMjQ0ZDA4MmNhMzgyNTAyMzZlMTJhKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzQ0MjZjNmEyNDIzMjQzY2U4NTA1MjIwNzBjMjlhYTgxLmJpbmRQb3B1cChwb3B1cF81ODkwOWNiZjA5ZDg0NTc3YjlkNzAxNjc1MjYzYjkzMykKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYTZmNGI4ZjU3ODYwNDI4NGIzNjIwYWIwOGNkYjFlMDUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MDkyMTksIDIuMTcwMzkzMDAwMDAwMDAwMl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZTc5NTBjYTlmMWM2NGEzMmJhZTk1NTM1Y2E0OGZlZmEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNzc2ZWQyYzljNGQxNDg4ZjhkMzhhNTBlZjc1ODdmZmMgPSAkKGA8ZGl2IGlkPSJodG1sXzc3NmVkMmM5YzRkMTQ4OGY4ZDM4YTUwZWY3NTg3ZmZjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9lNzk1MGNhOWYxYzY0YTMyYmFlOTU1MzVjYTQ4ZmVmYS5zZXRDb250ZW50KGh0bWxfNzc2ZWQyYzljNGQxNDg4ZjhkMzhhNTBlZjc1ODdmZmMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYTZmNGI4ZjU3ODYwNDI4NGIzNjIwYWIwOGNkYjFlMDUuYmluZFBvcHVwKHBvcHVwX2U3OTUwY2E5ZjFjNjRhMzJiYWU5NTUzNWNhNDhmZWZhKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl85ODJmMjcyNWRhMmM0NGU0OWIzZTgwZTYxMTdiMjc4NyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjQ0NjM2NCwgMi4xNzYwMzQ5OTk5OTk5OTk3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83MGQ3ZDdlZTExNDM0MGJiODg1ZDYwNjcxYTFlZmE2MyA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85MTYxOGFjNWQ5YTM0YTk5YWM3MTZjYWVkMDUxYWUwOSA9ICQoYDxkaXYgaWQ9Imh0bWxfOTE2MThhYzVkOWEzNGE5OWFjNzE2Y2FlZDA1MWFlMDkiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzcwZDdkN2VlMTE0MzQwYmI4ODVkNjA2NzFhMWVmYTYzLnNldENvbnRlbnQoaHRtbF85MTYxOGFjNWQ5YTM0YTk5YWM3MTZjYWVkMDUxYWUwOSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl85ODJmMjcyNWRhMmM0NGU0OWIzZTgwZTYxMTdiMjc4Ny5iaW5kUG9wdXAocG9wdXBfNzBkN2Q3ZWUxMTQzNDBiYjg4NWQ2MDY3MWExZWZhNjMpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzJlMGE2NmYyYWJiMzRmZDlhZWEzZjU5N2E4MDIzYTM3ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuNDQ1Mzk2LCAyLjE4ODkzMV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMDMyYTZkNDczNzMwNGU0MDg5ZDdlNjdlNzRkYjk3YWQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZDI4ODVmYmZlZTM4NDVhYzk0YzBmMTRiYWQ0Mzc1ZmMgPSAkKGA8ZGl2IGlkPSJodG1sX2QyODg1ZmJmZWUzODQ1YWM5NGMwZjE0YmFkNDM3NWZjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8wMzJhNmQ0NzM3MzA0ZTQwODlkN2U2N2U3NGRiOTdhZC5zZXRDb250ZW50KGh0bWxfZDI4ODVmYmZlZTM4NDVhYzk0YzBmMTRiYWQ0Mzc1ZmMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMmUwYTY2ZjJhYmIzNGZkOWFlYTNmNTk3YTgwMjNhMzcuYmluZFBvcHVwKHBvcHVwXzAzMmE2ZDQ3MzczMDRlNDA4OWQ3ZTY3ZTc0ZGI5N2FkKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9mY2QzZjgzNDVhMmY0ZWExYjE1ODAwODdiOTU0NGM3ZCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjQxNDU1NywgMi4xODA4NDE5OTk5OTk5OTk3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jNjQ3MTAxYmU0MWM0ODNiOTVlZTA2YjNhZWNmMmUxZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8yNTA5NjkyYzg5NjQ0MGY4YTA4ZTg0MmM4MWNmYjU0YyA9ICQoYDxkaXYgaWQ9Imh0bWxfMjUwOTY5MmM4OTY0NDBmOGEwOGU4NDJjODFjZmI1NGMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2M2NDcxMDFiZTQxYzQ4M2I5NWVlMDZiM2FlY2YyZTFmLnNldENvbnRlbnQoaHRtbF8yNTA5NjkyYzg5NjQ0MGY4YTA4ZTg0MmM4MWNmYjU0Yyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9mY2QzZjgzNDVhMmY0ZWExYjE1ODAwODdiOTU0NGM3ZC5iaW5kUG9wdXAocG9wdXBfYzY0NzEwMWJlNDFjNDgzYjk1ZWUwNmIzYWVjZjJlMWYpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2ZjODFhZmE1NGY2ZTRmM2Q4ZGI1YTI5ZDkxZGVjNGEwID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuNDIwNDg2LCAyLjIwMDMzOF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZjdhYTcyOTFiYWRiNDE4OGE5ZjRhY2QxNjVlMDM4Y2MgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMmMyNzJhYTUzYWZhNGY1YmJmNWEwODZkZTk5MmMyYjkgPSAkKGA8ZGl2IGlkPSJodG1sXzJjMjcyYWE1M2FmYTRmNWJiZjVhMDg2ZGU5OTJjMmI5IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9mN2FhNzI5MWJhZGI0MTg4YTlmNGFjZDE2NWUwMzhjYy5zZXRDb250ZW50KGh0bWxfMmMyNzJhYTUzYWZhNGY1YmJmNWEwODZkZTk5MmMyYjkpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZmM4MWFmYTU0ZjZlNGYzZDhkYjVhMjlkOTFkZWM0YTAuYmluZFBvcHVwKHBvcHVwX2Y3YWE3MjkxYmFkYjQxODhhOWY0YWNkMTY1ZTAzOGNjKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8wNjQ4MDRlYTc3ZTg0ZmMzYTZiZTBjNzhlNDkzOWMzNCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjQwNzU4NCwgMi4xOTIwMjhdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzgzZmFhZTAxZGEzZDRhOWQ4YmZkOTBkMGE5ZGU3NDk1ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzU3N2MxZDMwMmJjMTRhYjE5N2M2NThhNTFmZDllMmQzID0gJChgPGRpdiBpZD0iaHRtbF81NzdjMWQzMDJiYzE0YWIxOTdjNjU4YTUxZmQ5ZTJkMyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfODNmYWFlMDFkYTNkNGE5ZDhiZmQ5MGQwYTlkZTc0OTUuc2V0Q29udGVudChodG1sXzU3N2MxZDMwMmJjMTRhYjE5N2M2NThhNTFmZDllMmQzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzA2NDgwNGVhNzdlODRmYzNhNmJlMGM3OGU0OTM5YzM0LmJpbmRQb3B1cChwb3B1cF84M2ZhYWUwMWRhM2Q0YTlkOGJmZDkwZDBhOWRlNzQ5NSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMmE3YzE2ZWQ2NDk5NDdmOWFhMTYwNjY2ZDA3ZTNkMTcgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MjExNTcsIDIuMjAzNDcwMDAwMDAwMDAwM10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMjlmNzQ3ZTA4ODRhNDk2NWE0ZTA4ZDBkMzE1NWRjMGMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMDA0OWFmYjNmMDZkNGZjYTg0MjQ3NjhhYTE3NDg2NmUgPSAkKGA8ZGl2IGlkPSJodG1sXzAwNDlhZmIzZjA2ZDRmY2E4NDI0NzY4YWExNzQ4NjZlIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8yOWY3NDdlMDg4NGE0OTY1YTRlMDhkMGQzMTU1ZGMwYy5zZXRDb250ZW50KGh0bWxfMDA0OWFmYjNmMDZkNGZjYTg0MjQ3NjhhYTE3NDg2NmUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMmE3YzE2ZWQ2NDk5NDdmOWFhMTYwNjY2ZDA3ZTNkMTcuYmluZFBvcHVwKHBvcHVwXzI5Zjc0N2UwODg0YTQ5NjVhNGUwOGQwZDMxNTVkYzBjKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8yYmNiNzM5NDJlY2I0ZDBjYWVlYjE4YzUwN2U4NTdkYSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjQxOTUwMzAwMDAwMDAwNiwgMi4yMTQ1NDVdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2Q5ODNkNWI1ZWMzNjQwMTQ5ZDZkOTkyYmM0YjYzMDM2ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzkwMmEyYzI1MWQ4YzQ5Y2RiZjJhYTBkMTRlOTE3M2NmID0gJChgPGRpdiBpZD0iaHRtbF85MDJhMmMyNTFkOGM0OWNkYmYyYWEwZDE0ZTkxNzNjZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZDk4M2Q1YjVlYzM2NDAxNDlkNmQ5OTJiYzRiNjMwMzYuc2V0Q29udGVudChodG1sXzkwMmEyYzI1MWQ4YzQ5Y2RiZjJhYTBkMTRlOTE3M2NmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzJiY2I3Mzk0MmVjYjRkMGNhZWViMThjNTA3ZTg1N2RhLmJpbmRQb3B1cChwb3B1cF9kOTgzZDViNWVjMzY0MDE0OWQ2ZDk5MmJjNGI2MzAzNikKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMDc2ZGU1YTg1ODFmNDIzYWFmOGM2ZDQ4MzEwNTA5ZDYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zOTcyOTUsIDIuMTk3MTc4XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9lZGNhNDEwODkyNzc0MzY4ODM3NWU0ZWYyNDQyM2FlNyA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84ZTc5MjVmYjU5NDM0ZjUxYTFhYzFkMjlkOTJjZTg1YiA9ICQoYDxkaXYgaWQ9Imh0bWxfOGU3OTI1ZmI1OTQzNGY1MWExYWMxZDI5ZDkyY2U4NWIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2VkY2E0MTA4OTI3NzQzNjg4Mzc1ZTRlZjI0NDIzYWU3LnNldENvbnRlbnQoaHRtbF84ZTc5MjVmYjU5NDM0ZjUxYTFhYzFkMjlkOTJjZTg1Yik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8wNzZkZTVhODU4MWY0MjNhYWY4YzZkNDgzMTA1MDlkNi5iaW5kUG9wdXAocG9wdXBfZWRjYTQxMDg5Mjc3NDM2ODgzNzVlNGVmMjQ0MjNhZTcpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzRkYTM2MmYwZjg3NjRjY2ZhNjZiNTY1MjQ2Y2U2Yjk3ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuNDA3MDI5LCAyLjIwMjM3OV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYTRmY2JiYWEwMjE2NDE5ZTg1MDk2MmM5MTYzZGU0NGIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNTNkMzJmZjIzNzM3NGQyN2FlNDBkNWI4ZDM2YmY3NWMgPSAkKGA8ZGl2IGlkPSJodG1sXzUzZDMyZmYyMzczNzRkMjdhZTQwZDViOGQzNmJmNzVjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hNGZjYmJhYTAyMTY0MTllODUwOTYyYzkxNjNkZTQ0Yi5zZXRDb250ZW50KGh0bWxfNTNkMzJmZjIzNzM3NGQyN2FlNDBkNWI4ZDM2YmY3NWMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNGRhMzYyZjBmODc2NGNjZmE2NmI1NjUyNDZjZTZiOTcuYmluZFBvcHVwKHBvcHVwX2E0ZmNiYmFhMDIxNjQxOWU4NTA5NjJjOTE2M2RlNDRiKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl81ZjM3NTE4ZGZjNWY0NGEwYTExZWUyOTU2N2FhZjY4MSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjQwNjY5MiwgMi4yMDUxMDhdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2M3M2ZmYmJkMTkzYTQzZmU4Y2EwMDQ4MTZlZWU4OGVlID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzM2ZjViODIxYjZlMzQxN2M5NTRmY2RkNGRkN2VlNWMxID0gJChgPGRpdiBpZD0iaHRtbF8zNmY1YjgyMWI2ZTM0MTdjOTU0ZmNkZDRkZDdlZTVjMSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYzczZmZiYmQxOTNhNDNmZThjYTAwNDgxNmVlZTg4ZWUuc2V0Q29udGVudChodG1sXzM2ZjViODIxYjZlMzQxN2M5NTRmY2RkNGRkN2VlNWMxKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzVmMzc1MThkZmM1ZjQ0YTBhMTFlZTI5NTY3YWFmNjgxLmJpbmRQb3B1cChwb3B1cF9jNzNmZmJiZDE5M2E0M2ZlOGNhMDA0ODE2ZWVlODhlZSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYTk2NWQwYTJiMzQzNDZjZGFhMDhkYTM4M2M5YTkyMjEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zOTczODcsIDIuMTkyNjg0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81MWNlMWIyZWIyZjU0M2E3ODRmNWMzNTliNGIwM2ViNiA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9mYWQ1Y2E1ZmRmYjc0YjE2OThkY2ZlYmIyZTYzMzdiOCA9ICQoYDxkaXYgaWQ9Imh0bWxfZmFkNWNhNWZkZmI3NGIxNjk4ZGNmZWJiMmU2MzM3YjgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzUxY2UxYjJlYjJmNTQzYTc4NGY1YzM1OWI0YjAzZWI2LnNldENvbnRlbnQoaHRtbF9mYWQ1Y2E1ZmRmYjc0YjE2OThkY2ZlYmIyZTYzMzdiOCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9hOTY1ZDBhMmIzNDM0NmNkYWEwOGRhMzgzYzlhOTIyMS5iaW5kUG9wdXAocG9wdXBfNTFjZTFiMmViMmY1NDNhNzg0ZjVjMzU5YjRiMDNlYjYpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2ZjZjg5YTU0YmVkZDRhZmZiMzM4OGUzMjVmM2Y5NTA2ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuNDA3NTYzLCAyLjIyMTExM10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMTNiNGY2ZjcxMWY1NGY3N2FjY2VjMjU2ODEwN2JmOTEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNGI3ZDMzMjNkYjEyNGU4YTk5YmE0ZTBmYzQzNzEzNjIgPSAkKGA8ZGl2IGlkPSJodG1sXzRiN2QzMzIzZGIxMjRlOGE5OWJhNGUwZmM0MzcxMzYyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8xM2I0ZjZmNzExZjU0Zjc3YWNjZWMyNTY4MTA3YmY5MS5zZXRDb250ZW50KGh0bWxfNGI3ZDMzMjNkYjEyNGU4YTk5YmE0ZTBmYzQzNzEzNjIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZmNmODlhNTRiZWRkNGFmZmIzMzg4ZTMyNWYzZjk1MDYuYmluZFBvcHVwKHBvcHVwXzEzYjRmNmY3MTFmNTRmNzdhY2NlYzI1NjgxMDdiZjkxKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl84ODBhNTQwZTJlNjg0Y2U1YTI2YzAwNWY0N2I2ZDlhNSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjQwNDk0NywgMi4xOTI1MDRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2E2YzFhNjdhMjAwYTRmZGY5ZGVjOGNlMGQ0YzY3NjU5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzE4ZGRkZjEwNDA2YjQ0NjZiODdkODczMWYyYzA5MjI5ID0gJChgPGRpdiBpZD0iaHRtbF8xOGRkZGYxMDQwNmI0NDY2Yjg3ZDg3MzFmMmMwOTIyOSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYTZjMWE2N2EyMDBhNGZkZjlkZWM4Y2UwZDRjNjc2NTkuc2V0Q29udGVudChodG1sXzE4ZGRkZjEwNDA2YjQ0NjZiODdkODczMWYyYzA5MjI5KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzg4MGE1NDBlMmU2ODRjZTVhMjZjMDA1ZjQ3YjZkOWE1LmJpbmRQb3B1cChwb3B1cF9hNmMxYTY3YTIwMGE0ZmRmOWRlYzhjZTBkNGM2NzY1OSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMzUxMjdjYWI5MjM1NGM3Yzk2NDJkZGE1MzY0M2M0MGEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zNzg5MTA5OTk5OTk5OTUsIDIuMTkxNjk2XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9iY2NiMDZiOGUxNWU0YTNhOWY4ZmU0OTg4YWVhNzljNyA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF82YWRmOTliMmVkNDQ0MWQ1YTEyYWYxNTlkNWEzMWI1ZSA9ICQoYDxkaXYgaWQ9Imh0bWxfNmFkZjk5YjJlZDQ0NDFkNWExMmFmMTU5ZDVhMzFiNWUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2JjY2IwNmI4ZTE1ZTRhM2E5ZjhmZTQ5ODhhZWE3OWM3LnNldENvbnRlbnQoaHRtbF82YWRmOTliMmVkNDQ0MWQ1YTEyYWYxNTlkNWEzMWI1ZSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8zNTEyN2NhYjkyMzU0YzdjOTY0MmRkYTUzNjQzYzQwYS5iaW5kUG9wdXAocG9wdXBfYmNjYjA2YjhlMTVlNGEzYTlmOGZlNDk4OGFlYTc5YzcpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzE1Mjg4Y2M2OGIxODQyYzNhYmFlYWExM2UzOTM0ODEzID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzg0MDI3LCAyLjE1MTUyOV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfN2ZiYWI2YmU4NWJkNGYwN2IyZTg2ZTA1OWUwNTQyNjQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMzVjZjc3ODFhYjBkNDhmNDg2NWU0NzgxZTE0MTdjMDUgPSAkKGA8ZGl2IGlkPSJodG1sXzM1Y2Y3NzgxYWIwZDQ4ZjQ4NjVlNDc4MWUxNDE3YzA1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF83ZmJhYjZiZTg1YmQ0ZjA3YjJlODZlMDU5ZTA1NDI2NC5zZXRDb250ZW50KGh0bWxfMzVjZjc3ODFhYjBkNDhmNDg2NWU0NzgxZTE0MTdjMDUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMTUyODhjYzY4YjE4NDJjM2FiYWVhYTEzZTM5MzQ4MTMuYmluZFBvcHVwKHBvcHVwXzdmYmFiNmJlODViZDRmMDdiMmU4NmUwNTllMDU0MjY0KQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8yZTgyNDJmNjQ3ZTE0MThmYjEwZmZkYzc4MTc0MTU3NiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM5MDY1MiwgMi4xNjI2MDJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzA5ZDQ2YjI0ZDI2NzQxNjlhNDAxNTllNTgyY2I3NzZhID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzBhY2U2ZjZiMjEzMjRhY2FhN2I5NjU3OTlkZTEwNDBhID0gJChgPGRpdiBpZD0iaHRtbF8wYWNlNmY2YjIxMzI0YWNhYTdiOTY1Nzk5ZGUxMDQwYSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMDlkNDZiMjRkMjY3NDE2OWE0MDE1OWU1ODJjYjc3NmEuc2V0Q29udGVudChodG1sXzBhY2U2ZjZiMjEzMjRhY2FhN2I5NjU3OTlkZTEwNDBhKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzJlODI0MmY2NDdlMTQxOGZiMTBmZmRjNzgxNzQxNTc2LmJpbmRQb3B1cChwb3B1cF8wOWQ0NmIyNGQyNjc0MTY5YTQwMTU5ZTU4MmNiNzc2YSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNjQ1MGU2YTUyYTcyNGUwMDk4NGJhMDU3YWQ0YjljZjYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zODgxOCwgMi4xNTczMzVdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2E3M2I5NzQ3M2YzZjRlM2RhZTJkM2EwYzdlMDE4ZWNkID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2FlYmZlMDZhNGVkZTRiNjlhOGRkOGFiOGI1MTU1YTgzID0gJChgPGRpdiBpZD0iaHRtbF9hZWJmZTA2YTRlZGU0YjY5YThkZDhhYjhiNTE1NWE4MyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYTczYjk3NDczZjNmNGUzZGFlMmQzYTBjN2UwMThlY2Quc2V0Q29udGVudChodG1sX2FlYmZlMDZhNGVkZTRiNjlhOGRkOGFiOGI1MTU1YTgzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzY0NTBlNmE1MmE3MjRlMDA5ODRiYTA1N2FkNGI5Y2Y2LmJpbmRQb3B1cChwb3B1cF9hNzNiOTc0NzNmM2Y0ZTNkYWUyZDNhMGM3ZTAxOGVjZCkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMTJjZTI1ZDk4NjUyNDlhNWI2M2Q0MGZiMTVjYzljNGMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zOTc1NjgsIDIuMTY3NTA4XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84ZDBkYTk1YTI1OWQ0MGEyOGYwOGRmZTc4NTE3ZTIxNCA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9hY2UzZjM4YmU3MDE0MjIzOTNiMDUzMDlhMmI0MTExNiA9ICQoYDxkaXYgaWQ9Imh0bWxfYWNlM2YzOGJlNzAxNDIyMzkzYjA1MzA5YTJiNDExMTYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzhkMGRhOTVhMjU5ZDQwYTI4ZjA4ZGZlNzg1MTdlMjE0LnNldENvbnRlbnQoaHRtbF9hY2UzZjM4YmU3MDE0MjIzOTNiMDUzMDlhMmI0MTExNik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8xMmNlMjVkOTg2NTI0OWE1YjYzZDQwZmIxNWNjOWM0Yy5iaW5kUG9wdXAocG9wdXBfOGQwZGE5NWEyNTlkNDBhMjhmMDhkZmU3ODUxN2UyMTQpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2M0YmU1OTkzNmZhNjRkYTFhN2Q5MGRmZmEzYjIyMzg0ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzk0MTQsIDIuMTY5NzYyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kYjFjZGNiZjgzN2Q0NjBkYmI0Y2NjMjI2M2U5OWIzMCA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF81YWU2YWE1MjZlNDI0OTY4YmExODZiODY0MTRiYzM5NyA9ICQoYDxkaXYgaWQ9Imh0bWxfNWFlNmFhNTI2ZTQyNDk2OGJhMTg2Yjg2NDE0YmMzOTciIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2RiMWNkY2JmODM3ZDQ2MGRiYjRjY2MyMjYzZTk5YjMwLnNldENvbnRlbnQoaHRtbF81YWU2YWE1MjZlNDI0OTY4YmExODZiODY0MTRiYzM5Nyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9jNGJlNTk5MzZmYTY0ZGExYTdkOTBkZmZhM2IyMjM4NC5iaW5kUG9wdXAocG9wdXBfZGIxY2RjYmY4MzdkNDYwZGJiNGNjYzIyNjNlOTliMzApCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2IwZjFjY2I4MDA2NDQxMjdiNGM1Y2NiYmQxZDk2ZWQ1ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuNDAxNzk2OTk5OTk5OTk1LCAyLjE3MzE2ODk5OTk5OTk5OTddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzk4ODdlNzMwM2I0NTRlOGFiMDdkZmQ1MDAyMWViZGE0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2FiYmQ5MzllOGZlNTRmMmQ5NjI2NGQ2NzFjOTY5YWVmID0gJChgPGRpdiBpZD0iaHRtbF9hYmJkOTM5ZThmZTU0ZjJkOTYyNjRkNjcxYzk2OWFlZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOTg4N2U3MzAzYjQ1NGU4YWIwN2RmZDUwMDIxZWJkYTQuc2V0Q29udGVudChodG1sX2FiYmQ5MzllOGZlNTRmMmQ5NjI2NGQ2NzFjOTY5YWVmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2IwZjFjY2I4MDA2NDQxMjdiNGM1Y2NiYmQxZDk2ZWQ1LmJpbmRQb3B1cChwb3B1cF85ODg3ZTczMDNiNDU0ZThhYjA3ZGZkNTAwMjFlYmRhNCkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNDQwZDNhNzcyNzNlNDQ1ODlmMmFhMmM3ODZlN2Q1MzYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zNDI0MTcsIDIuMTI5MjQ1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8wYzgwYWExZDY2Nzc0ODlhODAzYWM5OGIzNTI0YjEzZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF82ZjYyMWNkZmViZWY0MmIwOTM5ODc4NDIzOGE1YTNmOCA9ICQoYDxkaXYgaWQ9Imh0bWxfNmY2MjFjZGZlYmVmNDJiMDkzOTg3ODQyMzhhNWEzZjgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzBjODBhYTFkNjY3NzQ4OWE4MDNhYzk4YjM1MjRiMTNlLnNldENvbnRlbnQoaHRtbF82ZjYyMWNkZmViZWY0MmIwOTM5ODc4NDIzOGE1YTNmOCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl80NDBkM2E3NzI3M2U0NDU4OWYyYWEyYzc4NmU3ZDUzNi5iaW5kUG9wdXAocG9wdXBfMGM4MGFhMWQ2Njc3NDg5YTgwM2FjOThiMzUyNGIxM2UpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2I1Yjg0YTE3ODQ4YjRiMTFiYTJkNjA3NDkwMWVhZGVmID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzczMjkzLCAyLjE0NjM3Nl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMTRlNTllNWY0YjI4NDdmYzliZjM4MzU0ODc3NmZmOTkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMTEwMTA2NDJjNWEyNGRlN2I2MzBkYzNmZGVkMzVjNmIgPSAkKGA8ZGl2IGlkPSJodG1sXzExMDEwNjQyYzVhMjRkZTdiNjMwZGMzZmRlZDM1YzZiIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8xNGU1OWU1ZjRiMjg0N2ZjOWJmMzgzNTQ4Nzc2ZmY5OS5zZXRDb250ZW50KGh0bWxfMTEwMTA2NDJjNWEyNGRlN2I2MzBkYzNmZGVkMzVjNmIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYjViODRhMTc4NDhiNGIxMWJhMmQ2MDc0OTAxZWFkZWYuYmluZFBvcHVwKHBvcHVwXzE0ZTU5ZTVmNGIyODQ3ZmM5YmYzODM1NDg3NzZmZjk5KQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl84YTU1OTlkMTQ3ZDU0YzViOTkyZjgzZmVmZTc4MjI4ZiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM4OTYyNCwgMi4xMzI2MDgwMDAwMDAwMDAzXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81NWQwMDlkNjQwM2U0MDA2YWM3ZjZiOTRiZTI1NWVmNyA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9kOGYzMzU1OWZlNWM0YjU1OGYyMWU2NDEyZmM1ZTYxNiA9ICQoYDxkaXYgaWQ9Imh0bWxfZDhmMzM1NTlmZTVjNGI1NThmMjFlNjQxMmZjNWU2MTYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzU1ZDAwOWQ2NDAzZTQwMDZhYzdmNmI5NGJlMjU1ZWY3LnNldENvbnRlbnQoaHRtbF9kOGYzMzU1OWZlNWM0YjU1OGYyMWU2NDEyZmM1ZTYxNik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl84YTU1OTlkMTQ3ZDU0YzViOTkyZjgzZmVmZTc4MjI4Zi5iaW5kUG9wdXAocG9wdXBfNTVkMDA5ZDY0MDNlNDAwNmFjN2Y2Yjk0YmUyNTVlZjcpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzQzMGY2N2YyMjJlNzQ2MThhZTllY2ZmNTIwNmFlNGNmID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzg2NjIsIDIuMTA3MjgyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8zYjQ0ZmU2Y2VhNWY0OTg1OGQxOTAzYTk4ZTY1OWFmYSA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF83Nzk5ZmQ1ODIwMGI0ODEyYWU2YjY4OTYxZTE5ODQ4NSA9ICQoYDxkaXYgaWQ9Imh0bWxfNzc5OWZkNTgyMDBiNDgxMmFlNmI2ODk2MWUxOTg0ODUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzNiNDRmZTZjZWE1ZjQ5ODU4ZDE5MDNhOThlNjU5YWZhLnNldENvbnRlbnQoaHRtbF83Nzk5ZmQ1ODIwMGI0ODEyYWU2YjY4OTYxZTE5ODQ4NSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl80MzBmNjdmMjIyZTc0NjE4YWU5ZWNmZjUyMDZhZTRjZi5iaW5kUG9wdXAocG9wdXBfM2I0NGZlNmNlYTVmNDk4NThkMTkwM2E5OGU2NTlhZmEpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzk1ZGEyNWVjYjM1ZjRkMGQ4OGMxYTUyOGU3MTEzZjNmID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzgzODgyLCAyLjExNjYzNF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfM2Y5NWJjMmFiM2ZlNDgxZTgwZjc4ZjE5MjhjOTVlNzUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMTVlOTZlOTg2ZWZjNDRjYWFlYmM1ZmYwNDY4MTI5Y2YgPSAkKGA8ZGl2IGlkPSJodG1sXzE1ZTk2ZTk4NmVmYzQ0Y2FhZWJjNWZmMDQ2ODEyOWNmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8zZjk1YmMyYWIzZmU0ODFlODBmNzhmMTkyOGM5NWU3NS5zZXRDb250ZW50KGh0bWxfMTVlOTZlOTg2ZWZjNDRjYWFlYmM1ZmYwNDY4MTI5Y2YpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfOTVkYTI1ZWNiMzVmNGQwZDg4YzFhNTI4ZTcxMTNmM2YuYmluZFBvcHVwKHBvcHVwXzNmOTViYzJhYjNmZTQ4MWU4MGY3OGYxOTI4Yzk1ZTc1KQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9mOGE3ZjEyOTA5Zjg0ZDhjODMwN2RhNWRkMjJjMWJhMSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM5NDA4MSwgMi4xMjc5OV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfN2RiNTQ4ZTFiYjRkNGVhOTkwZjMxMTIzZWEwZGE5ZTEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMjA1MjkyZDg1NTg2NDE5YTgxN2M3YTliMzJjMWMyODUgPSAkKGA8ZGl2IGlkPSJodG1sXzIwNTI5MmQ4NTU4NjQxOWE4MTdjN2E5YjMyYzFjMjg1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF83ZGI1NDhlMWJiNGQ0ZWE5OTBmMzExMjNlYTBkYTllMS5zZXRDb250ZW50KGh0bWxfMjA1MjkyZDg1NTg2NDE5YTgxN2M3YTliMzJjMWMyODUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZjhhN2YxMjkwOWY4NGQ4YzgzMDdkYTVkZDIyYzFiYTEuYmluZFBvcHVwKHBvcHVwXzdkYjU0OGUxYmI0ZDRlYTk5MGYzMTEyM2VhMGRhOWUxKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl83YmExMGM0MjBhNjQ0ZmUxOTA5ZTRjYjk4Y2Q0MDNiNCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjQwMTI1NiwgMi4xMzYyMzFdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2JjODMwZWVkNDRhODRmMmFhMWZkNDc4NWMxOTFmMzZiID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzJmYjhlNmFjZjc0NTQzYTY4NmE3MjlhZDdiOWQ4ZTQxID0gJChgPGRpdiBpZD0iaHRtbF8yZmI4ZTZhY2Y3NDU0M2E2ODZhNzI5YWQ3YjlkOGU0MSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYmM4MzBlZWQ0NGE4NGYyYWExZmQ0Nzg1YzE5MWYzNmIuc2V0Q29udGVudChodG1sXzJmYjhlNmFjZjc0NTQzYTY4NmE3MjlhZDdiOWQ4ZTQxKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzdiYTEwYzQyMGE2NDRmZTE5MDllNGNiOThjZDQwM2I0LmJpbmRQb3B1cChwb3B1cF9iYzgzMGVlZDQ0YTg0ZjJhYTFmZDQ3ODVjMTkxZjM2YikKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNTA1NGMxZDA3Mzg0NDkxNmIwYmMwYWQ2ZWJjMWRlZDIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MTIwNTQsIDIuMTQzNzkzXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8zYjZmMDg3NTc2YzI0MzgzODc0NTc5YzdiMWIxMTJjNCA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9jMDk0ZDExNzcyZDM0Yjk3ODFlNTA2NTMwNWExYzJhZiA9ICQoYDxkaXYgaWQ9Imh0bWxfYzA5NGQxMTc3MmQzNGI5NzgxZTUwNjUzMDVhMWMyYWYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzNiNmYwODc1NzZjMjQzODM4NzQ1NzljN2IxYjExMmM0LnNldENvbnRlbnQoaHRtbF9jMDk0ZDExNzcyZDM0Yjk3ODFlNTA2NTMwNWExYzJhZik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl81MDU0YzFkMDczODQ0OTE2YjBiYzBhZDZlYmMxZGVkMi5iaW5kUG9wdXAocG9wdXBfM2I2ZjA4NzU3NmMyNDM4Mzg3NDU3OWM3YjFiMTEyYzQpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzIwOTg4NTNiZGM3ZjQ4MDJiMmUzYzhmNzIxYTA5ZTViID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzk3MzA5LCAyLjE1Njg2M10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNDNhYmU0MWE2ZWFlNGI4YjgyZDg4MGQ1MTFjMjE0ZDkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYTMyN2U0ZjNlNTRhNDUzYmFlY2Y2NTZmNGM3NGFkNWYgPSAkKGA8ZGl2IGlkPSJodG1sX2EzMjdlNGYzZTU0YTQ1M2JhZWNmNjU2ZjRjNzRhZDVmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80M2FiZTQxYTZlYWU0YjhiODJkODgwZDUxMWMyMTRkOS5zZXRDb250ZW50KGh0bWxfYTMyN2U0ZjNlNTRhNDUzYmFlY2Y2NTZmNGM3NGFkNWYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMjA5ODg1M2JkYzdmNDgwMmIyZTNjOGY3MjFhMDllNWIuYmluZFBvcHVwKHBvcHVwXzQzYWJlNDFhNmVhZTRiOGI4MmQ4ODBkNTExYzIxNGQ5KQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl81NjllZDBhODM4M2U0MjVkYTBjZjA2YTAzODVjYWZhZiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjQyNjk3NywgMi4xNTU2NTgwMDAwMDAwMDAzXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82MmFlOTUwM2YwNzQ0M2FkOWUzNTc2MGNiMzhmY2E4OCA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8wZWI4ZTg2ZmZjMDQ0YzI4OTYyNWVjYjAxNGU5ZTljOCA9ICQoYDxkaXYgaWQ9Imh0bWxfMGViOGU4NmZmYzA0NGMyODk2MjVlY2IwMTRlOWU5YzgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzYyYWU5NTAzZjA3NDQzYWQ5ZTM1NzYwY2IzOGZjYTg4LnNldENvbnRlbnQoaHRtbF8wZWI4ZTg2ZmZjMDQ0YzI4OTYyNWVjYjAxNGU5ZTljOCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl81NjllZDBhODM4M2U0MjVkYTBjZjA2YTAzODVjYWZhZi5iaW5kUG9wdXAocG9wdXBfNjJhZTk1MDNmMDc0NDNhZDllMzU3NjBjYjM4ZmNhODgpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzk4ZGFhOGM2NDM2MTRiNTJhZjNjMzVmNGRmNjdiNzYyID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuNDExODg4LCAyLjE2OTA2Ml0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZWQxOTY5NWNhNmFiNDEzNTgyZjFiY2ZiM2ExZmQ4MzEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMTczMDdmNmM1NThhNGQzNWFmMjliZDVlY2M1NjU1Y2QgPSAkKGA8ZGl2IGlkPSJodG1sXzE3MzA3ZjZjNTU4YTRkMzVhZjI5YmQ1ZWNjNTY1NWNkIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9lZDE5Njk1Y2E2YWI0MTM1ODJmMWJjZmIzYTFmZDgzMS5zZXRDb250ZW50KGh0bWxfMTczMDdmNmM1NThhNGQzNWFmMjliZDVlY2M1NjU1Y2QpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfOThkYWE4YzY0MzYxNGI1MmFmM2MzNWY0ZGY2N2I3NjIuYmluZFBvcHVwKHBvcHVwX2VkMTk2OTVjYTZhYjQxMzU4MmYxYmNmYjNhMWZkODMxKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9hYWY3ZDcyYzZmODU0MjE0OTZhNzgxZmU2MWIwNzdkMCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjQzNDg2NiwgMi4xNzk3MzVdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzYyNzdhY2NlZjIyYTRjNDBhNTY2ZmZhZDNjMTE1MzhjID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2NmNDQxMjA4YWJjYjQxNGNiMmNhZjFlMzI4YmFhYzI5ID0gJChgPGRpdiBpZD0iaHRtbF9jZjQ0MTIwOGFiY2I0MTRjYjJjYWYxZTMyOGJhYWMyOSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNjI3N2FjY2VmMjJhNGM0MGE1NjZmZmFkM2MxMTUzOGMuc2V0Q29udGVudChodG1sX2NmNDQxMjA4YWJjYjQxNGNiMmNhZjFlMzI4YmFhYzI5KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2FhZjdkNzJjNmY4NTQyMTQ5NmE3ODFmZTYxYjA3N2QwLmJpbmRQb3B1cChwb3B1cF82Mjc3YWNjZWYyMmE0YzQwYTU2NmZmYWQzYzExNTM4YykKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYTU4ZWE4NzY1NzBiNDNjMWI1MzU5MjRmZWM0NWE1NWEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40NTQ1OTQsIDIuMTg4ODNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2E0MTgxMTU0MjhlYzQ4YWY5ZWViNGJiY2VlOGVmN2E4ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzhhOWUwMzlhYzZjYjRlNWI4NTYxOGMzYTBhMmIyNzNmID0gJChgPGRpdiBpZD0iaHRtbF84YTllMDM5YWM2Y2I0ZTViODU2MThjM2EwYTJiMjczZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYTQxODExNTQyOGVjNDhhZjllZWI0YmJjZWU4ZWY3YTguc2V0Q29udGVudChodG1sXzhhOWUwMzlhYzZjYjRlNWI4NTYxOGMzYTBhMmIyNzNmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2E1OGVhODc2NTcwYjQzYzFiNTM1OTI0ZmVjNDVhNTVhLmJpbmRQb3B1cChwb3B1cF9hNDE4MTE1NDI4ZWM0OGFmOWVlYjRiYmNlZThlZjdhOCkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfM2EyODk0MzNmNmNhNDRjNGFiYmFiZmVlNWM1ZGQyZTEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MDg1MjI5OTk5OTk5OTUsIDIuMTg2ODU1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84YTcxMjZkZGIyZWM0NDE3OWUxMGFmMjAwNGViYmIwZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF82NDBlYjI5MGVlOGI0NjY5OTUwNGI0ZDE4MzgwM2NjNiA9ICQoYDxkaXYgaWQ9Imh0bWxfNjQwZWIyOTBlZThiNDY2OTk1MDRiNGQxODM4MDNjYzYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzhhNzEyNmRkYjJlYzQ0MTc5ZTEwYWYyMDA0ZWJiYjBlLnNldENvbnRlbnQoaHRtbF82NDBlYjI5MGVlOGI0NjY5OTUwNGI0ZDE4MzgwM2NjNik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8zYTI4OTQzM2Y2Y2E0NGM0YWJiYWJmZWU1YzVkZDJlMS5iaW5kUG9wdXAocG9wdXBfOGE3MTI2ZGRiMmVjNDQxNzllMTBhZjIwMDRlYmJiMGUpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2Q5NTJlMmU5ZTkyNTQ2ZjM5NzViZTVkNzg1YTNiYTRhID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuNDEyNjQ1LCAyLjIxNzU1NDAwMDAwMDAwMDJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzI2NTlkYTdmYzlmNTQxMTE4ZmMyZTQ5MWI5MzYzNDZmID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzkzODllMDg4ODc0NTRlYmNiY2M1MWQ2ZWI3Y2NlZDA1ID0gJChgPGRpdiBpZD0iaHRtbF85Mzg5ZTA4ODg3NDU0ZWJjYmNjNTFkNmViN2NjZWQwNSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMjY1OWRhN2ZjOWY1NDExMThmYzJlNDkxYjkzNjM0NmYuc2V0Q29udGVudChodG1sXzkzODllMDg4ODc0NTRlYmNiY2M1MWQ2ZWI3Y2NlZDA1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2Q5NTJlMmU5ZTkyNTQ2ZjM5NzViZTVkNzg1YTNiYTRhLmJpbmRQb3B1cChwb3B1cF8yNjU5ZGE3ZmM5ZjU0MTExOGZjMmU0OTFiOTM2MzQ2ZikKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfY2YzZWExMjQ0NDc1NGJhNzlmZWI0ZTIzYmZlNDlmMmIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MTEwNDQsIDIuMTk3MDYzXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9iYThhZTRmMjg2NDk0ODc5OWI3MmFlYmNlOGUyZDI1MyA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85NGFjMDk0YzViNDg0ZjA4ODQxMDMyZTdhMzFmNGFkYyA9ICQoYDxkaXYgaWQ9Imh0bWxfOTRhYzA5NGM1YjQ4NGYwODg0MTAzMmU3YTMxZjRhZGMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2JhOGFlNGYyODY0OTQ4Nzk5YjcyYWViY2U4ZTJkMjUzLnNldENvbnRlbnQoaHRtbF85NGFjMDk0YzViNDg0ZjA4ODQxMDMyZTdhMzFmNGFkYyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9jZjNlYTEyNDQ0NzU0YmE3OWZlYjRlMjNiZmU0OWYyYi5iaW5kUG9wdXAocG9wdXBfYmE4YWU0ZjI4NjQ5NDg3OTliNzJhZWJjZThlMmQyNTMpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzY5ZDAwZDQwNDgwMzQ1ZDhhYjc2MzVlNTZhOTk0YzJhID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuNDA4MTg0MDAwMDAwMDA2LCAyLjIwMzM5M10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNDYwZjY3ZDA0YTBjNDc4ZjhhZDJjNDdmMWRhMDQwMzkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfM2VlYWM1NGExYmFkNDBlOWIzNzQ1OTY4YWQ2Yzc0MGEgPSAkKGA8ZGl2IGlkPSJodG1sXzNlZWFjNTRhMWJhZDQwZTliMzc0NTk2OGFkNmM3NDBhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4yPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80NjBmNjdkMDRhMGM0NzhmOGFkMmM0N2YxZGEwNDAzOS5zZXRDb250ZW50KGh0bWxfM2VlYWM1NGExYmFkNDBlOWIzNzQ1OTY4YWQ2Yzc0MGEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNjlkMDBkNDA0ODAzNDVkOGFiNzYzNWU1NmE5OTRjMmEuYmluZFBvcHVwKHBvcHVwXzQ2MGY2N2QwNGEwYzQ3OGY4YWQyYzQ3ZjFkYTA0MDM5KQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl84NzdlNTNkYTc2MzQ0MzY3YmY0M2I0YjkyNGU1MDM1NyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM5MjAwNCwgMi4yMDE4XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9mODdmMzhhYTZlNWU0NDc0YWUwNzMyM2U4YmU0MDI1ZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9lMjVhMTg0YjhkZTM0YTZjOWVkMjZlMTdkZDhkNDg4OSA9ICQoYDxkaXYgaWQ9Imh0bWxfZTI1YTE4NGI4ZGUzNGE2YzllZDI2ZTE3ZGQ4ZDQ4ODkiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2Y4N2YzOGFhNmU1ZTQ0NzRhZTA3MzIzZThiZTQwMjVlLnNldENvbnRlbnQoaHRtbF9lMjVhMTg0YjhkZTM0YTZjOWVkMjZlMTdkZDhkNDg4OSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl84NzdlNTNkYTc2MzQ0MzY3YmY0M2I0YjkyNGU1MDM1Ny5iaW5kUG9wdXAocG9wdXBfZjg3ZjM4YWE2ZTVlNDQ3NGFlMDczMjNlOGJlNDAyNWUpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2VmMGUwMzlkMGQzMjQ3MWZhOTYxNWRiMDhiYWZlNWQ2ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzc1Mjk5LCAyLjE3NzM3OF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZWZmMWM3ZTQ3N2QyNDMzOWE0YjE3MDRlMzc3ZDA1NzQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfN2NmYWRmNjYyMGY3NDgzNmE0NzA2NzZlNmViMDM0YmYgPSAkKGA8ZGl2IGlkPSJodG1sXzdjZmFkZjY2MjBmNzQ4MzZhNDcwNjc2ZTZlYjAzNGJmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9lZmYxYzdlNDc3ZDI0MzM5YTRiMTcwNGUzNzdkMDU3NC5zZXRDb250ZW50KGh0bWxfN2NmYWRmNjYyMGY3NDgzNmE0NzA2NzZlNmViMDM0YmYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZWYwZTAzOWQwZDMyNDcxZmE5NjE1ZGIwOGJhZmU1ZDYuYmluZFBvcHVwKHBvcHVwX2VmZjFjN2U0NzdkMjQzMzlhNGIxNzA0ZTM3N2QwNTc0KQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9jNjA3MzI2ZDI4NzI0M2I2OTczNGQyNGJhN2Y5NjU4ZiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM4MDg0OCwgMi4xODEzMzZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzk4ZWZhNmU3MzM2YTQxYTNhNjFiYjEzZWI0Y2ZiOTAyID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2E2YjY1ZGY2ZTZkMjQyZWU4MGE0ZGY2ODJkYTczMmQ2ID0gJChgPGRpdiBpZD0iaHRtbF9hNmI2NWRmNmU2ZDI0MmVlODBhNGRmNjgyZGE3MzJkNiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOThlZmE2ZTczMzZhNDFhM2E2MWJiMTNlYjRjZmI5MDIuc2V0Q29udGVudChodG1sX2E2YjY1ZGY2ZTZkMjQyZWU4MGE0ZGY2ODJkYTczMmQ2KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2M2MDczMjZkMjg3MjQzYjY5NzM0ZDI0YmE3Zjk2NThmLmJpbmRQb3B1cChwb3B1cF85OGVmYTZlNzMzNmE0MWEzYTYxYmIxM2ViNGNmYjkwMikKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNDhjYjE1YWE5NzdiNGY4ZTlkMDlkNTYzZmM1OGM4NjkgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zNzkzNzcwMDAwMDAwMDUsIDIuMTgwMjVdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzYxZDdhMjU4NTllZDQwNTc5Y2YxZTAyNjk3ZGJkMzQ4ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2VmZGYyZWMxODk0NTRmN2RhMjMyNDI5YmY4ZmY2Nzg2ID0gJChgPGRpdiBpZD0iaHRtbF9lZmRmMmVjMTg5NDU0ZjdkYTIzMjQyOWJmOGZmNjc4NiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNjFkN2EyNTg1OWVkNDA1NzljZjFlMDI2OTdkYmQzNDguc2V0Q29udGVudChodG1sX2VmZGYyZWMxODk0NTRmN2RhMjMyNDI5YmY4ZmY2Nzg2KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzQ4Y2IxNWFhOTc3YjRmOGU5ZDA5ZDU2M2ZjNThjODY5LmJpbmRQb3B1cChwb3B1cF82MWQ3YTI1ODU5ZWQ0MDU3OWNmMWUwMjY5N2RiZDM0OCkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYTRjNjI1YTY4ZjFkNDZjNWE4ZTkwNTUzZTMxNmUxOTAgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zODM4MzQsIDIuMTYwODE2XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9lOWE5YzBmMjllYjM0NDNmODYxNjg1NzM4MzhhZGIwOSA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8zZDUxZTE3NTVhNjQ0YWQzYTgyYWJlMTFmYWQwZWIzNiA9ICQoYDxkaXYgaWQ9Imh0bWxfM2Q1MWUxNzU1YTY0NGFkM2E4MmFiZTExZmFkMGViMzYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2U5YTljMGYyOWViMzQ0M2Y4NjE2ODU3MzgzOGFkYjA5LnNldENvbnRlbnQoaHRtbF8zZDUxZTE3NTVhNjQ0YWQzYTgyYWJlMTFmYWQwZWIzNik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9hNGM2MjVhNjhmMWQ0NmM1YThlOTA1NTNlMzE2ZTE5MC5iaW5kUG9wdXAocG9wdXBfZTlhOWMwZjI5ZWIzNDQzZjg2MTY4NTczODM4YWRiMDkpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzQxNzliM2E3ODEzZjQ5ZWJiMWM0MTk5ZjFjNWZhZWExID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzk3NDU1LCAyLjE2MzExMTAwMDAwMDAwMDJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2QyYjYyYzgzNWQyOTRiODk4OWU4MTk2NDVmZTg5NmI5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzJlMWNjYmE3YWMwZjRlYmJhYTE0MTczODVlZGJiOTA1ID0gJChgPGRpdiBpZD0iaHRtbF8yZTFjY2JhN2FjMGY0ZWJiYWExNDE3Mzg1ZWRiYjkwNSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZDJiNjJjODM1ZDI5NGI4OTg5ZTgxOTY0NWZlODk2Yjkuc2V0Q29udGVudChodG1sXzJlMWNjYmE3YWMwZjRlYmJhYTE0MTczODVlZGJiOTA1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzQxNzliM2E3ODEzZjQ5ZWJiMWM0MTk5ZjFjNWZhZWExLmJpbmRQb3B1cChwb3B1cF9kMmI2MmM4MzVkMjk0Yjg5ODllODE5NjQ1ZmU4OTZiOSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNjhkZWNmOWQwZjhjNDI1ZjhiMjNmYTE5Mjk2NzA5MWYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zOTY1MjQsIDIuMTU5NDk1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84NDI3MDZhN2I3MTY0YjFjYjRlMjMwNzVjZmNlODdmYiA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9jMjU4ODZiMWY1ZjU0Yjg5OTU3ZDg3MThmZjYzOWMxNiA9ICQoYDxkaXYgaWQ9Imh0bWxfYzI1ODg2YjFmNWY1NGI4OTk1N2Q4NzE4ZmY2MzljMTYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzg0MjcwNmE3YjcxNjRiMWNiNGUyMzA3NWNmY2U4N2ZiLnNldENvbnRlbnQoaHRtbF9jMjU4ODZiMWY1ZjU0Yjg5OTU3ZDg3MThmZjYzOWMxNik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl82OGRlY2Y5ZDBmOGM0MjVmOGIyM2ZhMTkyOTY3MDkxZi5iaW5kUG9wdXAocG9wdXBfODQyNzA2YTdiNzE2NGIxY2I0ZTIzMDc1Y2ZjZTg3ZmIpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzA2NDIyNmUxMDM4YjQyNmZhMmQzYTU4YWM2MmJkYzFhID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzg3MjQ0LCAyLjE2NTM1M10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOWU3ZDEzNmQ5OWFjNDdlZmEyYjMzZmQ1NGY4YWIwZjYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNmY0NmM4YmRiNzMyNDAzYTk2ZDY0NDM4ODBmNDE5MDcgPSAkKGA8ZGl2IGlkPSJodG1sXzZmNDZjOGJkYjczMjQwM2E5NmQ2NDQzODgwZjQxOTA3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF85ZTdkMTM2ZDk5YWM0N2VmYTJiMzNmZDU0ZjhhYjBmNi5zZXRDb250ZW50KGh0bWxfNmY0NmM4YmRiNzMyNDAzYTk2ZDY0NDM4ODBmNDE5MDcpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMDY0MjI2ZTEwMzhiNDI2ZmEyZDNhNThhYzYyYmRjMWEuYmluZFBvcHVwKHBvcHVwXzllN2QxMzZkOTlhYzQ3ZWZhMmIzM2ZkNTRmOGFiMGY2KQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl81OTBkOTI2NzBhNzA0NWQ1OTY4YTM2N2E0NjMyMDlmOCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM5ODM5OSwgMi4xNjg2NDkwMDAwMDAwMDAzXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8yMThjZDA1MDVmMTk0YjhiYWVkMjI2ODE2OTQ4YWU2YyA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9hNjQxMTc1NjJiMjk0NzYxODdlMmRlNTNjYmExNDgwYiA9ICQoYDxkaXYgaWQ9Imh0bWxfYTY0MTE3NTYyYjI5NDc2MTg3ZTJkZTUzY2JhMTQ4MGIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzIxOGNkMDUwNWYxOTRiOGJhZWQyMjY4MTY5NDhhZTZjLnNldENvbnRlbnQoaHRtbF9hNjQxMTc1NjJiMjk0NzYxODdlMmRlNTNjYmExNDgwYik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl81OTBkOTI2NzBhNzA0NWQ1OTY4YTM2N2E0NjMyMDlmOC5iaW5kUG9wdXAocG9wdXBfMjE4Y2QwNTA1ZjE5NGI4YmFlZDIyNjgxNjk0OGFlNmMpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzA1NzM4NDg5YjQ4YjRkMzFhYWFmOGQwYjUzYzYzZDljID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzkxNDg0OTk5OTk5OTk2LCAyLjE3MDk4OF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMWFlN2VmYTNlMGQyNGNlYTk0MzkwMzgyYmNkZDVlNjcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfY2Q5MWIyMzc5MmZhNDRkNzhmMGVhOGI0Y2RmODYwMWYgPSAkKGA8ZGl2IGlkPSJodG1sX2NkOTFiMjM3OTJmYTQ0ZDc4ZjBlYThiNGNkZjg2MDFmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8xYWU3ZWZhM2UwZDI0Y2VhOTQzOTAzODJiY2RkNWU2Ny5zZXRDb250ZW50KGh0bWxfY2Q5MWIyMzc5MmZhNDRkNzhmMGVhOGI0Y2RmODYwMWYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMDU3Mzg0ODliNDhiNGQzMWFhYWY4ZDBiNTNjNjNkOWMuYmluZFBvcHVwKHBvcHVwXzFhZTdlZmEzZTBkMjRjZWE5NDM5MDM4MmJjZGQ1ZTY3KQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8yYjUwNWE3NzM2YWQ0OTBkYTc2OGQ1NmQwYjk5ZmNiZiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM5MzE4MiwgMi4xNzMyNzddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzFkYzdiYTk0NDgxNTRmOTZiN2U1OGJjOGU1ZjZjODE1ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzM5ZTdhODIyYzE0YjQ4YzZhNTA5NTllNjcwMTNlMThkID0gJChgPGRpdiBpZD0iaHRtbF8zOWU3YTgyMmMxNGI0OGM2YTUwOTU5ZTY3MDEzZTE4ZCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMWRjN2JhOTQ0ODE1NGY5NmI3ZTU4YmM4ZTVmNmM4MTUuc2V0Q29udGVudChodG1sXzM5ZTdhODIyYzE0YjQ4YzZhNTA5NTllNjcwMTNlMThkKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzJiNTA1YTc3MzZhZDQ5MGRhNzY4ZDU2ZDBiOTlmY2JmLmJpbmRQb3B1cChwb3B1cF8xZGM3YmE5NDQ4MTU0Zjk2YjdlNThiYzhlNWY2YzgxNSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZDA4Y2RmZmY5MzdjNDQzNzhjNGJjNzJiZTFhNmM2OTMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zOTkxMTEsIDIuMTgxMTk5MDAwMDAwMDAwM10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMDNhZjQ5MTI5ZmQ0NDliNDg3Yjc2ZjdkYTU1MTkyZGYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfODFhNDcxOWU5MDNhNDU4OWEzODViYzQ5ZWYzNWZiZmUgPSAkKGA8ZGl2IGlkPSJodG1sXzgxYTQ3MTllOTAzYTQ1ODlhMzg1YmM0OWVmMzVmYmZlIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8wM2FmNDkxMjlmZDQ0OWI0ODdiNzZmN2RhNTUxOTJkZi5zZXRDb250ZW50KGh0bWxfODFhNDcxOWU5MDNhNDU4OWEzODViYzQ5ZWYzNWZiZmUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZDA4Y2RmZmY5MzdjNDQzNzhjNGJjNzJiZTFhNmM2OTMuYmluZFBvcHVwKHBvcHVwXzAzYWY0OTEyOWZkNDQ5YjQ4N2I3NmY3ZGE1NTE5MmRmKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl85Nzg3MmQxMjBiZDE0ZGQxOTFkZTgwNWEyMWYxY2NhOSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjMzNzczOSwgMi4xMjYyNDRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2ZlYmFhYWNmMzI5ZDQ4MDJhZTQ5YjE3MDU1MjcyMjhkID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzI4NTA2ODUxNTEzOTQ4MGU5MmI0OTk1MDhiYzc2ZDk4ID0gJChgPGRpdiBpZD0iaHRtbF8yODUwNjg1MTUxMzk0ODBlOTJiNDk5NTA4YmM3NmQ5OCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZmViYWFhY2YzMjlkNDgwMmFlNDliMTcwNTUyNzIyOGQuc2V0Q29udGVudChodG1sXzI4NTA2ODUxNTEzOTQ4MGU5MmI0OTk1MDhiYzc2ZDk4KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzk3ODcyZDEyMGJkMTRkZDE5MWRlODA1YTIxZjFjY2E5LmJpbmRQb3B1cChwb3B1cF9mZWJhYWFjZjMyOWQ0ODAyYWU0OWIxNzA1NTI3MjI4ZCkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfN2FkNmQxNWJjYWJhNGIzMjgyM2U5MWNmMjAyNzIyZGQgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zODAyNTEsIDIuMTQyOTA3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84ZDFlZDIwMmJjZjE0MjQzOGQyMTBhZTZhODM5OWNjZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iN2E5NjAyYmFlOTQ0Njk3OTc5NWVhNDQ5YmNlYWRhZCA9ICQoYDxkaXYgaWQ9Imh0bWxfYjdhOTYwMmJhZTk0NDY5Nzk3OTVlYTQ0OWJjZWFkYWQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzhkMWVkMjAyYmNmMTQyNDM4ZDIxMGFlNmE4Mzk5Y2NmLnNldENvbnRlbnQoaHRtbF9iN2E5NjAyYmFlOTQ0Njk3OTc5NWVhNDQ5YmNlYWRhZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl83YWQ2ZDE1YmNhYmE0YjMyODIzZTkxY2YyMDI3MjJkZC5iaW5kUG9wdXAocG9wdXBfOGQxZWQyMDJiY2YxNDI0MzhkMjEwYWU2YTgzOTljY2YpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2Q2ZjQ3N2VjYjBhZTQ3ZWZhN2ZlNTBiNjIxYTRhZDRmID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzgzMDcyLCAyLjEyNjk1MV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMTYwOTBkNDUxNjMzNDBjNWEyNzFhNjI4NTljNGViMjggPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfODUzZDUxYTYwNjA1NGZkMTk4MTMwNzU1MzgyOTkzOWYgPSAkKGA8ZGl2IGlkPSJodG1sXzg1M2Q1MWE2MDYwNTRmZDE5ODEzMDc1NTM4Mjk5MzlmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8xNjA5MGQ0NTE2MzM0MGM1YTI3MWE2Mjg1OWM0ZWIyOC5zZXRDb250ZW50KGh0bWxfODUzZDUxYTYwNjA1NGZkMTk4MTMwNzU1MzgyOTkzOWYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZDZmNDc3ZWNiMGFlNDdlZmE3ZmU1MGI2MjFhNGFkNGYuYmluZFBvcHVwKHBvcHVwXzE2MDkwZDQ1MTYzMzQwYzVhMjcxYTYyODU5YzRlYjI4KQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8yYmQ1MjgxYzQ2YmM0ODMyOWQ1OWQ5ZDI2YzZiNWE5ZiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM5OTM0LCAyLjEzNDE0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8zMzNlNWQ4ZmIxNTc0M2Q1OGFhYTM3ODQxN2ZmNmE0ZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85OGU2MGVmYzVlMzY0MGI1ODNjZDU4OTJmNjg4MjY2ZSA9ICQoYDxkaXYgaWQ9Imh0bWxfOThlNjBlZmM1ZTM2NDBiNTgzY2Q1ODkyZjY4ODI2NmUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzMzM2U1ZDhmYjE1NzQzZDU4YWFhMzc4NDE3ZmY2YTRlLnNldENvbnRlbnQoaHRtbF85OGU2MGVmYzVlMzY0MGI1ODNjZDU4OTJmNjg4MjY2ZSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8yYmQ1MjgxYzQ2YmM0ODMyOWQ1OWQ5ZDI2YzZiNWE5Zi5iaW5kUG9wdXAocG9wdXBfMzMzZTVkOGZiMTU3NDNkNThhYWEzNzg0MTdmZjZhNGUpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2NmM2U5NTllZjYyYjQ1YjI5Y2JhYzNjY2YzZWY1ODc1ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzkwNDgsIDIuMTI5NDI5OTk5OTk5OTk5N10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYjZkOWFlYmVkN2Y2NDExYWExYTUwM2Q1MDM3NjdhYTkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMTFmZDIxN2Y2ZmZjNGQ4ZWIyNTNkYWZkNGY4ZGZjNjYgPSAkKGA8ZGl2IGlkPSJodG1sXzExZmQyMTdmNmZmYzRkOGViMjUzZGFmZDRmOGRmYzY2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iNmQ5YWViZWQ3ZjY0MTFhYTFhNTAzZDUwMzc2N2FhOS5zZXRDb250ZW50KGh0bWxfMTFmZDIxN2Y2ZmZjNGQ4ZWIyNTNkYWZkNGY4ZGZjNjYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfY2YzZTk1OWVmNjJiNDViMjljYmFjM2NjZjNlZjU4NzUuYmluZFBvcHVwKHBvcHVwX2I2ZDlhZWJlZDdmNjQxMWFhMWE1MDNkNTAzNzY3YWE5KQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl81YWVjYmZlNDQ3ZmY0ZGRkOWFkYzc3ZTZlZDUzOGI0NCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM5NzE3NSwgMi4xNDA1OTJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzc0Y2M5MGJiODI2MTRkNjM4Yzk2MDM5MDk1MGE4YTA5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzg2ZDBhZjkyNTYzYjQ5MGY5NjUxN2Y4MWFmN2MzNDBmID0gJChgPGRpdiBpZD0iaHRtbF84NmQwYWY5MjU2M2I0OTBmOTY1MTdmODFhZjdjMzQwZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNzRjYzkwYmI4MjYxNGQ2MzhjOTYwMzkwOTUwYThhMDkuc2V0Q29udGVudChodG1sXzg2ZDBhZjkyNTYzYjQ5MGY5NjUxN2Y4MWFmN2MzNDBmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzVhZWNiZmU0NDdmZjRkZGQ5YWRjNzdlNmVkNTM4YjQ0LmJpbmRQb3B1cChwb3B1cF83NGNjOTBiYjgyNjE0ZDYzOGM5NjAzOTA5NTBhOGEwOSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYjZmNzhiMzI5ZmZiNGFlZGExN2UzZmE3MjdhODg1YjUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zOTc2NTMwMDAwMDAwMDUsIDIuMTM2MzJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzMwNmEyN2VmOWQwOTRmZWU4NDUwNjNmNzFiYTc3NGJkID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzI4MDg4Y2YzMTczNDQ5OThhM2Q3ZWQ2Y2E3YWE0OWRkID0gJChgPGRpdiBpZD0iaHRtbF8yODA4OGNmMzE3MzQ0OTk4YTNkN2VkNmNhN2FhNDlkZCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMzA2YTI3ZWY5ZDA5NGZlZTg0NTA2M2Y3MWJhNzc0YmQuc2V0Q29udGVudChodG1sXzI4MDg4Y2YzMTczNDQ5OThhM2Q3ZWQ2Y2E3YWE0OWRkKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2I2Zjc4YjMyOWZmYjRhZWRhMTdlM2ZhNzI3YTg4NWI1LmJpbmRQb3B1cChwb3B1cF8zMDZhMjdlZjlkMDk0ZmVlODQ1MDYzZjcxYmE3NzRiZCkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMWQzMzJmYTBhYzkxNDJmMWJiZGRhNzRhZGQ2NWM0MWUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zOTgyNCwgMi4xMTgwMTVdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzdlOTllZDkyY2IzZjQwMjFhZDQzZDM1MDk5MDQzZTZlID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzRiNGE4NDkxNjM5ODQ2MjQ4YmEzMDJhYjkxYjE5MTk5ID0gJChgPGRpdiBpZD0iaHRtbF80YjRhODQ5MTYzOTg0NjI0OGJhMzAyYWI5MWIxOTE5OSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfN2U5OWVkOTJjYjNmNDAyMWFkNDNkMzUwOTkwNDNlNmUuc2V0Q29udGVudChodG1sXzRiNGE4NDkxNjM5ODQ2MjQ4YmEzMDJhYjkxYjE5MTk5KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzFkMzMyZmEwYWM5MTQyZjFiYmRkYTc0YWRkNjVjNDFlLmJpbmRQb3B1cChwb3B1cF83ZTk5ZWQ5MmNiM2Y0MDIxYWQ0M2QzNTA5OTA0M2U2ZSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfODUxZjZhYmUxY2M4NGI0Njk3ZjJkOWVkNjMxODIzYTUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MDU0ODIsIDIuMTMxMzldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzE4YWY4Yjg5ZTFmNzQ1OTRhMDM5ZDdiNTY4ZTY1ODgxID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzc0YTE5ZDQ5NGU3YzRjN2Q5NDkxNTAwMWFlMTgxZjBjID0gJChgPGRpdiBpZD0iaHRtbF83NGExOWQ0OTRlN2M0YzdkOTQ5MTUwMDFhZTE4MWYwYyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MjwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMThhZjhiODllMWY3NDU5NGEwMzlkN2I1NjhlNjU4ODEuc2V0Q29udGVudChodG1sXzc0YTE5ZDQ5NGU3YzRjN2Q5NDkxNTAwMWFlMTgxZjBjKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzg1MWY2YWJlMWNjODRiNDY5N2YyZDllZDYzMTgyM2E1LmJpbmRQb3B1cChwb3B1cF8xOGFmOGI4OWUxZjc0NTk0YTAzOWQ3YjU2OGU2NTg4MSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMjM1ZjYyZjljMmQyNDNhZDgwYTM4NDViYTkwYzdkZjEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MTE1NSwgMi4xNTcyNTNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2IzZmQxYWM4ZTJlYzQ3OWU4YzA1MjU1MzUwODZiY2E3ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2E3Y2VhMGMyOWVkODRiMGZhMGI5MTQ5NzY5YjI2YmNhID0gJChgPGRpdiBpZD0iaHRtbF9hN2NlYTBjMjllZDg0YjBmYTBiOTE0OTc2OWIyNmJjYSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYjNmZDFhYzhlMmVjNDc5ZThjMDUyNTUzNTA4NmJjYTcuc2V0Q29udGVudChodG1sX2E3Y2VhMGMyOWVkODRiMGZhMGI5MTQ5NzY5YjI2YmNhKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzIzNWY2MmY5YzJkMjQzYWQ4MGEzODQ1YmE5MGM3ZGYxLmJpbmRQb3B1cChwb3B1cF9iM2ZkMWFjOGUyZWM0NzllOGMwNTI1NTM1MDg2YmNhNykKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMGU2NDdkMDM1MWZjNDgwNTk1MDkxNzQ0MGFmNjRjNjEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MjQ5MDMsIDIuMTM0ODJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzUwYWY2ZGFlYjVhOTRmNmFiNGNiMWQ4OWI5NDE0YTg1ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzk1MTI2ZTMzNzFlZDQzNDBhNmE4ODE5NTEwN2RhMDc5ID0gJChgPGRpdiBpZD0iaHRtbF85NTEyNmUzMzcxZWQ0MzQwYTZhODgxOTUxMDdkYTA3OSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MjwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNTBhZjZkYWViNWE5NGY2YWI0Y2IxZDg5Yjk0MTRhODUuc2V0Q29udGVudChodG1sXzk1MTI2ZTMzNzFlZDQzNDBhNmE4ODE5NTEwN2RhMDc5KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzBlNjQ3ZDAzNTFmYzQ4MDU5NTA5MTc0NDBhZjY0YzYxLmJpbmRQb3B1cChwb3B1cF81MGFmNmRhZWI1YTk0ZjZhYjRjYjFkODliOTQxNGE4NSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZDlmZjcyNGYzMTlkNGU4MmFjZGRkZDJkZWM0YjM0MDAgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MzkxMjI5OTk5OTk5OTUsIDIuMTU0MjcyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83ZWY5ZTZmOGZjZGM0OTY1OWYxNDI2Y2NkNjE1ZDdmNSA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8zNmIxNWVmZDM0YTQ0OTUxOTNiNjNlMjM4YjcyZDI1MiA9ICQoYDxkaXYgaWQ9Imh0bWxfMzZiMTVlZmQzNGE0NDk1MTkzYjYzZTIzOGI3MmQyNTIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzdlZjllNmY4ZmNkYzQ5NjU5ZjE0MjZjY2Q2MTVkN2Y1LnNldENvbnRlbnQoaHRtbF8zNmIxNWVmZDM0YTQ0OTUxOTNiNjNlMjM4YjcyZDI1Mik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9kOWZmNzI0ZjMxOWQ0ZTgyYWNkZGRkMmRlYzRiMzQwMC5iaW5kUG9wdXAocG9wdXBfN2VmOWU2ZjhmY2RjNDk2NTlmMTQyNmNjZDYxNWQ3ZjUpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzdjNjYwZjEwODIxNzQyZDFiYmM1Y2VjMzRlOGQ1ZDRmID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuNDM4NjcyLCAyLjE3Njk2Nl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNjUzYjZjMjFmYWJhNDlhM2ExZDdhYjJlYzhlYWYwYjIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYWFkMzRhN2Y4NzQwNDFmM2JlZTcyYWE5MDAyNDAzZTAgPSAkKGA8ZGl2IGlkPSJodG1sX2FhZDM0YTdmODc0MDQxZjNiZWU3MmFhOTAwMjQwM2UwIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82NTNiNmMyMWZhYmE0OWEzYTFkN2FiMmVjOGVhZjBiMi5zZXRDb250ZW50KGh0bWxfYWFkMzRhN2Y4NzQwNDFmM2JlZTcyYWE5MDAyNDAzZTApOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfN2M2NjBmMTA4MjE3NDJkMWJiYzVjZWMzNGU4ZDVkNGYuYmluZFBvcHVwKHBvcHVwXzY1M2I2YzIxZmFiYTQ5YTNhMWQ3YWIyZWM4ZWFmMGIyKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8wNjFmN2YwOTkwZDM0M2E3YWI4MTUyZmU4YjZkMTRlMCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjQzNjYxNiwgMi4xODQ4NTldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2RmYzVhNzcyMzVlYTQ3OTg4ZjcyMGI4MDY1MmJiMWZjID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2I1N2ZkNzZlMGMyMjQ2MDg4ZTg4YmRjNTc2OWQwZmNiID0gJChgPGRpdiBpZD0iaHRtbF9iNTdmZDc2ZTBjMjI0NjA4OGU4OGJkYzU3NjlkMGZjYiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZGZjNWE3NzIzNWVhNDc5ODhmNzIwYjgwNjUyYmIxZmMuc2V0Q29udGVudChodG1sX2I1N2ZkNzZlMGMyMjQ2MDg4ZTg4YmRjNTc2OWQwZmNiKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzA2MWY3ZjA5OTBkMzQzYTdhYjgxNTJmZThiNmQxNGUwLmJpbmRQb3B1cChwb3B1cF9kZmM1YTc3MjM1ZWE0Nzk4OGY3MjBiODA2NTJiYjFmYykKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfOTE5ZmJiZTFhZDI5NDQ2N2JjYjMwMjY2Yzk4ZWFmZDYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40NDE1MTgsIDIuMjA3MjE4XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kMmVhYTJiMDk5NmQ0MmY0YmM0YzVjMGVjYmM1ZWI4YiA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9jYTJkZTAxYmJhNWM0YTM3YjRkYWYwNWNkODZjMjAwNSA9ICQoYDxkaXYgaWQ9Imh0bWxfY2EyZGUwMWJiYTVjNGEzN2I0ZGFmMDVjZDg2YzIwMDUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2QyZWFhMmIwOTk2ZDQyZjRiYzRjNWMwZWNiYzVlYjhiLnNldENvbnRlbnQoaHRtbF9jYTJkZTAxYmJhNWM0YTM3YjRkYWYwNWNkODZjMjAwNSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl85MTlmYmJlMWFkMjk0NDY3YmNiMzAyNjZjOThlYWZkNi5iaW5kUG9wdXAocG9wdXBfZDJlYWEyYjA5OTZkNDJmNGJjNGM1YzBlY2JjNWViOGIpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzgyNGM3NGZlNTIwMDRkZGFhNzAwODlkZWIzZGI2NDc1ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuNDEwNzg0LCAyLjE3ODMxNF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMWU4ZDg5MTNmZWIxNDgzNTk2OWU0MmQ5YzdjYmJiMWIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNTg4ZDM3YTVjOWY2NDY3NmFiNmNkMDcyYmVlMzIyMmUgPSAkKGA8ZGl2IGlkPSJodG1sXzU4OGQzN2E1YzlmNjQ2NzZhYjZjZDA3MmJlZTMyMjJlIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8xZThkODkxM2ZlYjE0ODM1OTY5ZTQyZDljN2NiYmIxYi5zZXRDb250ZW50KGh0bWxfNTg4ZDM3YTVjOWY2NDY3NmFiNmNkMDcyYmVlMzIyMmUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfODI0Yzc0ZmU1MjAwNGRkYWE3MDA4OWRlYjNkYjY0NzUuYmluZFBvcHVwKHBvcHVwXzFlOGQ4OTEzZmViMTQ4MzU5NjllNDJkOWM3Y2JiYjFiKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9lOGQzY2IyNGJjZGE0N2E2OTBmNjgwZWZjODY2NTExMSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjQxNTQwMiwgMi4xOTM1NjZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2M4N2U0NjE1NGI2MzQ1NjViOWEwOWI1ZDFlZGRiNGJhID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzViZTJiYjg2M2VjNjRmMmViZGNjZjE2YWFlYWViMDVjID0gJChgPGRpdiBpZD0iaHRtbF81YmUyYmI4NjNlYzY0ZjJlYmRjY2YxNmFhZWFlYjA1YyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYzg3ZTQ2MTU0YjYzNDU2NWI5YTA5YjVkMWVkZGI0YmEuc2V0Q29udGVudChodG1sXzViZTJiYjg2M2VjNjRmMmViZGNjZjE2YWFlYWViMDVjKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2U4ZDNjYjI0YmNkYTQ3YTY5MGY2ODBlZmM4NjY1MTExLmJpbmRQb3B1cChwb3B1cF9jODdlNDYxNTRiNjM0NTY1YjlhMDliNWQxZWRkYjRiYSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMWZiZDA2N2RmOWMxNDVjMTgyOTNmNDI5MzNmMWY1YWUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MTA1NDYwMDAwMDAwMDQsIDIuMjAzNzE4XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kN2ZmYzI4MGE0M2E0MzY4YjQ2ZjUzYjUyY2ViMWY3MCA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9hNDQ4ZmI1NDgwOGU0YWJjYTUyMmZhMzZmOGI4YzY0MSA9ICQoYDxkaXYgaWQ9Imh0bWxfYTQ0OGZiNTQ4MDhlNGFiY2E1MjJmYTM2ZjhiOGM2NDEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2Q3ZmZjMjgwYTQzYTQzNjhiNDZmNTNiNTJjZWIxZjcwLnNldENvbnRlbnQoaHRtbF9hNDQ4ZmI1NDgwOGU0YWJjYTUyMmZhMzZmOGI4YzY0MSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8xZmJkMDY3ZGY5YzE0NWMxODI5M2Y0MjkzM2YxZjVhZS5iaW5kUG9wdXAocG9wdXBfZDdmZmMyODBhNDNhNDM2OGI0NmY1M2I1MmNlYjFmNzApCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzQ2MmM5ZDUyYzhlMDRjMTRhMDIyNDc4NzgyYTg5NzUyID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuNDEwMDg3LCAyLjIwMDYwODAwMDAwMDAwMDNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2Q3ZWMyZDExYTE1NjQzODFhZTcyYzcxZGFmODgzM2RjID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2NkMWFkZGViOTM5MDQzNDk5Mzk4ZTNhN2VmZjFiYTJjID0gJChgPGRpdiBpZD0iaHRtbF9jZDFhZGRlYjkzOTA0MzQ5OTM5OGUzYTdlZmYxYmEyYyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZDdlYzJkMTFhMTU2NDM4MWFlNzJjNzFkYWY4ODMzZGMuc2V0Q29udGVudChodG1sX2NkMWFkZGViOTM5MDQzNDk5Mzk4ZTNhN2VmZjFiYTJjKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzQ2MmM5ZDUyYzhlMDRjMTRhMDIyNDc4NzgyYTg5NzUyLmJpbmRQb3B1cChwb3B1cF9kN2VjMmQxMWExNTY0MzgxYWU3MmM3MWRhZjg4MzNkYykKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZGIzNTgzOGRmZWFmNGQwN2JmMjQxMzNmOWZhYmI2MjkgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MTI5NDUsIDIuMjA1MTE5XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9iNzg0NDIzNmQ0NDU0ZDc2OTUyOTQwMzQyNjJjMWRlNyA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8xNjU3YmNmYTljMTg0OWEyYTgzNWVhODE5YWE1MmU3NCA9ICQoYDxkaXYgaWQ9Imh0bWxfMTY1N2JjZmE5YzE4NDlhMmE4MzVlYTgxOWFhNTJlNzQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2I3ODQ0MjM2ZDQ0NTRkNzY5NTI5NDAzNDI2MmMxZGU3LnNldENvbnRlbnQoaHRtbF8xNjU3YmNmYTljMTg0OWEyYTgzNWVhODE5YWE1MmU3NCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9kYjM1ODM4ZGZlYWY0ZDA3YmYyNDEzM2Y5ZmFiYjYyOS5iaW5kUG9wdXAocG9wdXBfYjc4NDQyMzZkNDQ1NGQ3Njk1Mjk0MDM0MjYyYzFkZTcpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzBhMGRjN2FhMDljNDRjMDRhZjRhNWJiY2JhZDA2ZDc4ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuNDA1NjQ2MDAwMDAwMDA0LCAyLjIxMzMwMl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZDJlMDkwZjkyMDNmNDRjY2JhZDhkYjNjZGUwNmQzZGUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYmFlNmM5NzlhNGJhNDhhNmE5MjQyN2ZlMjNmM2MwMzQgPSAkKGA8ZGl2IGlkPSJodG1sX2JhZTZjOTc5YTRiYTQ4YTZhOTI0MjdmZTIzZjNjMDM0IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9kMmUwOTBmOTIwM2Y0NGNjYmFkOGRiM2NkZTA2ZDNkZS5zZXRDb250ZW50KGh0bWxfYmFlNmM5NzlhNGJhNDhhNmE5MjQyN2ZlMjNmM2MwMzQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMGEwZGM3YWEwOWM0NGMwNGFmNGE1YmJjYmFkMDZkNzguYmluZFBvcHVwKHBvcHVwX2QyZTA5MGY5MjAzZjQ0Y2NiYWQ4ZGIzY2RlMDZkM2RlKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9iOTc5NGU4Mzg1ZDc0ZWNlYjUxZjZjZTk3NDJmNTcwMSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM4NDM3MiwgMi4xOTE0MjVdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2NhOWQzODRhNGRlMjRiMTdiZjMyNzcxMDQzMTExN2E4ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzU4NmI1YmQ4M2UxMzQxOWRhNWYzMzBlNGIwOTgyNmRlID0gJChgPGRpdiBpZD0iaHRtbF81ODZiNWJkODNlMTM0MTlkYTVmMzMwZTRiMDk4MjZkZSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfY2E5ZDM4NGE0ZGUyNGIxN2JmMzI3NzEwNDMxMTE3YTguc2V0Q29udGVudChodG1sXzU4NmI1YmQ4M2UxMzQxOWRhNWYzMzBlNGIwOTgyNmRlKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2I5Nzk0ZTgzODVkNzRlY2ViNTFmNmNlOTc0MmY1NzAxLmJpbmRQb3B1cChwb3B1cF9jYTlkMzg0YTRkZTI0YjE3YmYzMjc3MTA0MzExMTdhOCkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNDdkNjFlMzA5NDZhNDYyOGE1ODU0Y2Q2ZDRmNmU3ZWEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zOTI0NCwgMi4xNjc1MDddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2FiMmYyM2Y5MTZmOTQ3NjFhZjVhODg2Yzc4MTdiYWY5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzRkNDgwMjIzZTQ0NzQyZWFiZGQwYWQ0NjA0ZjI4YmZjID0gJChgPGRpdiBpZD0iaHRtbF80ZDQ4MDIyM2U0NDc0MmVhYmRkMGFkNDYwNGYyOGJmYyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYWIyZjIzZjkxNmY5NDc2MWFmNWE4ODZjNzgxN2JhZjkuc2V0Q29udGVudChodG1sXzRkNDgwMjIzZTQ0NzQyZWFiZGQwYWQ0NjA0ZjI4YmZjKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzQ3ZDYxZTMwOTQ2YTQ2MjhhNTg1NGNkNmQ0ZjZlN2VhLmJpbmRQb3B1cChwb3B1cF9hYjJmMjNmOTE2Zjk0NzYxYWY1YTg4NmM3ODE3YmFmOSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMDEwY2FkNWQ4MTMwNDQ2Yjg1ZGI3ZmMwNmE2NTkwOGMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zOTA2MDM5OTk5OTk5OTYsIDIuMTYzODI0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81Y2Y2MzdlMWY1OGI0MTM1YjQzZTNiYjEwZTc5Yzg2NCA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9mODE3Njk0OGI4NTQ0NjY0OGM1NGIwZjBlOTMzOTNkOSA9ICQoYDxkaXYgaWQ9Imh0bWxfZjgxNzY5NDhiODU0NDY2NDhjNTRiMGYwZTkzMzkzZDkiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzVjZjYzN2UxZjU4YjQxMzViNDNlM2JiMTBlNzljODY0LnNldENvbnRlbnQoaHRtbF9mODE3Njk0OGI4NTQ0NjY0OGM1NGIwZjBlOTMzOTNkOSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8wMTBjYWQ1ZDgxMzA0NDZiODVkYjdmYzA2YTY1OTA4Yy5iaW5kUG9wdXAocG9wdXBfNWNmNjM3ZTFmNThiNDEzNWI0M2UzYmIxMGU3OWM4NjQpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzE1N2ZmYWNhYjk1MzQ0MjdiMDljYjJlN2Q3ZDRkODZiID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzg5Njg4LCAyLjE3MzQwODAwMDAwMDAwMDJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzRiODYzOTc1ODYwMzQxOGM5NjQ3ZDIyNWQxMTdkMzRhID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzhjZWVjODYwNWE1NDQxNWM4MWJhNzczOWYzZmYwOTNmID0gJChgPGRpdiBpZD0iaHRtbF84Y2VlYzg2MDVhNTQ0MTVjODFiYTc3MzlmM2ZmMDkzZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNGI4NjM5NzU4NjAzNDE4Yzk2NDdkMjI1ZDExN2QzNGEuc2V0Q29udGVudChodG1sXzhjZWVjODYwNWE1NDQxNWM4MWJhNzczOWYzZmYwOTNmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzE1N2ZmYWNhYjk1MzQ0MjdiMDljYjJlN2Q3ZDRkODZiLmJpbmRQb3B1cChwb3B1cF80Yjg2Mzk3NTg2MDM0MThjOTY0N2QyMjVkMTE3ZDM0YSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZDVlZDUwMzc0YTZkNGRjMjgxYzY3NWUzMzJmOTQwNzIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MDA5MjE5OTk5OTk5OTQsIDIuMTc2NTg2XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9iZDRlYmQ2ODJkM2Y0MjJlODgwZWQ5NzBkZDNhY2NhYiA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF81OGE3OTAxYzdmOWQ0ZDBiODE3ZmM5MjYwZDk0ODY0MiA9ICQoYDxkaXYgaWQ9Imh0bWxfNThhNzkwMWM3ZjlkNGQwYjgxN2ZjOTI2MGQ5NDg2NDIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2JkNGViZDY4MmQzZjQyMmU4ODBlZDk3MGRkM2FjY2FiLnNldENvbnRlbnQoaHRtbF81OGE3OTAxYzdmOWQ0ZDBiODE3ZmM5MjYwZDk0ODY0Mik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9kNWVkNTAzNzRhNmQ0ZGMyODFjNjc1ZTMzMmY5NDA3Mi5iaW5kUG9wdXAocG9wdXBfYmQ0ZWJkNjgyZDNmNDIyZTg4MGVkOTcwZGQzYWNjYWIpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzdkZDQxMThmODExMzRjMWZhNDNlMTE3NDVmMjAxNWI1ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzU4MzU4LCAyLjE0MDM0Nl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMjhmYTM4NzA0ZTE3NDZkMjg0NmQxODU5NzY2Mzg4ZTkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNDFkNDJhMzJhNzcxNGU4NjlhYTM2ZWVhNTYzYzc5OTkgPSAkKGA8ZGl2IGlkPSJodG1sXzQxZDQyYTMyYTc3MTRlODY5YWEzNmVlYTU2M2M3OTk5IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8yOGZhMzg3MDRlMTc0NmQyODQ2ZDE4NTk3NjYzODhlOS5zZXRDb250ZW50KGh0bWxfNDFkNDJhMzJhNzcxNGU4NjlhYTM2ZWVhNTYzYzc5OTkpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfN2RkNDExOGY4MTEzNGMxZmE0M2UxMTc0NWYyMDE1YjUuYmluZFBvcHVwKHBvcHVwXzI4ZmEzODcwNGUxNzQ2ZDI4NDZkMTg1OTc2NjM4OGU5KQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9lODdkMzllMDVmYzA0NmZmOTI3NzBhYWM4NTBjYzE2MSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM2NTE2MSwgMi4xMzY0NjhdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzY5YWYxOWU0Y2QxMDRlZTJiMTQ3NjA0MzhiYzViNjRlID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzQ0MmM3NmM2ZTZhYzQxMjVhZjMzNGIzMjc5MzkwMzA1ID0gJChgPGRpdiBpZD0iaHRtbF80NDJjNzZjNmU2YWM0MTI1YWYzMzRiMzI3OTM5MDMwNSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNjlhZjE5ZTRjZDEwNGVlMmIxNDc2MDQzOGJjNWI2NGUuc2V0Q29udGVudChodG1sXzQ0MmM3NmM2ZTZhYzQxMjVhZjMzNGIzMjc5MzkwMzA1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2U4N2QzOWUwNWZjMDQ2ZmY5Mjc3MGFhYzg1MGNjMTYxLmJpbmRQb3B1cChwb3B1cF82OWFmMTllNGNkMTA0ZWUyYjE0NzYwNDM4YmM1YjY0ZSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNjQ0OTY2ZTVjNDg5NGI1MmJkOTIyYWExNTY0OWM3NWQgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zNzUyMjE5OTk5OTk5OTQsIDIuMTM5NDA3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84NmYyYzczMjQzM2Y0Y2FjOWUxNTY2MzYzOTg1ZDc0NiA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iNDRkZWI5YmY0ZDU0YWZmYjIyNDU1MjdkNjUxZGNlNSA9ICQoYDxkaXYgaWQ9Imh0bWxfYjQ0ZGViOWJmNGQ1NGFmZmIyMjQ1NTI3ZDY1MWRjZTUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzg2ZjJjNzMyNDMzZjRjYWM5ZTE1NjYzNjM5ODVkNzQ2LnNldENvbnRlbnQoaHRtbF9iNDRkZWI5YmY0ZDU0YWZmYjIyNDU1MjdkNjUxZGNlNSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl82NDQ5NjZlNWM0ODk0YjUyYmQ5MjJhYTE1NjQ5Yzc1ZC5iaW5kUG9wdXAocG9wdXBfODZmMmM3MzI0MzNmNGNhYzllMTU2NjM2Mzk4NWQ3NDYpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2RkN2U1NDQ0YzVhZTQwMWJhMmFmOWNjZjA2NjAxMTU5ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzg3NjY3LCAyLjEyNjU1NF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNDlhMWI4MTFhOWExNDZhODlmZThlMWY4ODljOTM4MjcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMjcwMzA3ZDY5Y2ZiNDA3ZmIyMTk2MmNhNDY4NmM4ZTEgPSAkKGA8ZGl2IGlkPSJodG1sXzI3MDMwN2Q2OWNmYjQwN2ZiMjE5NjJjYTQ2ODZjOGUxIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80OWExYjgxMWE5YTE0NmE4OWZlOGUxZjg4OWM5MzgyNy5zZXRDb250ZW50KGh0bWxfMjcwMzA3ZDY5Y2ZiNDA3ZmIyMTk2MmNhNDY4NmM4ZTEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZGQ3ZTU0NDRjNWFlNDAxYmEyYWY5Y2NmMDY2MDExNTkuYmluZFBvcHVwKHBvcHVwXzQ5YTFiODExYTlhMTQ2YTg5ZmU4ZTFmODg5YzkzODI3KQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9jZWM1ZDViYWVmODY0NDg0YmE0MTZmZTE4MDkwYTRiMCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM4NzI4MiwgMi4xMjMyNzVdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzUzZDBhZmNlZTE2ZTQ3NmM4MGNhZGI4YTViMTBkYjYzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzNkNmU5YmZjOTg4ZDQyYTNiOTFlYjZlODRkYjAyYzBkID0gJChgPGRpdiBpZD0iaHRtbF8zZDZlOWJmYzk4OGQ0MmEzYjkxZWI2ZTg0ZGIwMmMwZCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MjwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNTNkMGFmY2VlMTZlNDc2YzgwY2FkYjhhNWIxMGRiNjMuc2V0Q29udGVudChodG1sXzNkNmU5YmZjOTg4ZDQyYTNiOTFlYjZlODRkYjAyYzBkKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2NlYzVkNWJhZWY4NjQ0ODRiYTQxNmZlMTgwOTBhNGIwLmJpbmRQb3B1cChwb3B1cF81M2QwYWZjZWUxNmU0NzZjODBjYWRiOGE1YjEwZGI2MykKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfY2U4MGViNDdkNGQwNGU2ZDk4YjQ3ZTNhN2RlNTlhNGMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zODg0NjIsIDIuMTIwODQxXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kOTIwYjgwNWE0Mzc0YmZlYWQ4YmU0MjVmNWQxMDRjZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8xN2NiYjQ0ZWQzMDM0YjRiYTk3ZTkzNjcxYzcyMTIwMSA9ICQoYDxkaXYgaWQ9Imh0bWxfMTdjYmI0NGVkMzAzNGI0YmE5N2U5MzY3MWM3MjEyMDEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2Q5MjBiODA1YTQzNzRiZmVhZDhiZTQyNWY1ZDEwNGNlLnNldENvbnRlbnQoaHRtbF8xN2NiYjQ0ZWQzMDM0YjRiYTk3ZTkzNjcxYzcyMTIwMSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9jZTgwZWI0N2Q0ZDA0ZTZkOThiNDdlM2E3ZGU1OWE0Yy5iaW5kUG9wdXAocG9wdXBfZDkyMGI4MDVhNDM3NGJmZWFkOGJlNDI1ZjVkMTA0Y2UpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzM2Y2MzYjJhOTk2MDQ2Njk4MmU2OGNkNTk5ZGU0NjU3ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzkyODYwOTk5OTk5OTk2LCAyLjE0NDk4NDk5OTk5OTk5OTddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzg3YTI0M2U1YzVjZjQ0OGU5MjI5YjQwOTA4MjQwYmZkID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzM1NTFiNjJkOGZkNjRhNTY5YWZkMDA4ZGZhZTU0ZmM4ID0gJChgPGRpdiBpZD0iaHRtbF8zNTUxYjYyZDhmZDY0YTU2OWFmZDAwOGRmYWU1NGZjOCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfODdhMjQzZTVjNWNmNDQ4ZTkyMjliNDA5MDgyNDBiZmQuc2V0Q29udGVudChodG1sXzM1NTFiNjJkOGZkNjRhNTY5YWZkMDA4ZGZhZTU0ZmM4KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzM2Y2MzYjJhOTk2MDQ2Njk4MmU2OGNkNTk5ZGU0NjU3LmJpbmRQb3B1cChwb3B1cF84N2EyNDNlNWM1Y2Y0NDhlOTIyOWI0MDkwODI0MGJmZCkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZDhlMDkzNGZhZDhkNGQyMjk5MDRhMWI4MTVjZmFmZTMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MTE0MTU5OTk5OTk5OTYsIDIuMTQyODI5XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF80NWQ4OWUzMjRhNDc0YzEzODVkZmNiOTUyODU5MGRmZCA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8zNTMwN2UwNzgwZTU0Y2ZhODA3NzlmNDAyY2Q2NDljMiA9ICQoYDxkaXYgaWQ9Imh0bWxfMzUzMDdlMDc4MGU1NGNmYTgwNzc5ZjQwMmNkNjQ5YzIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzQ1ZDg5ZTMyNGE0NzRjMTM4NWRmY2I5NTI4NTkwZGZkLnNldENvbnRlbnQoaHRtbF8zNTMwN2UwNzgwZTU0Y2ZhODA3NzlmNDAyY2Q2NDljMik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9kOGUwOTM0ZmFkOGQ0ZDIyOTkwNGExYjgxNWNmYWZlMy5iaW5kUG9wdXAocG9wdXBfNDVkODllMzI0YTQ3NGMxMzg1ZGZjYjk1Mjg1OTBkZmQpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2UxZjEzNTRjYzBiNjQwNzc4YmY4ZjdhNDdlZTllMTM4ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzk2MjM5LCAyLjE1NTUyM10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZmVkZDQ4MjRkZjE2NGYwOGE5ODVlOTYwYTM0NzhmNDMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMDg0ZGU4NTk4M2Q5NDc0YzlmMzZjMzUxNWNhODZlNmUgPSAkKGA8ZGl2IGlkPSJodG1sXzA4NGRlODU5ODNkOTQ3NGM5ZjM2YzM1MTVjYTg2ZTZlIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9mZWRkNDgyNGRmMTY0ZjA4YTk4NWU5NjBhMzQ3OGY0My5zZXRDb250ZW50KGh0bWxfMDg0ZGU4NTk4M2Q5NDc0YzlmMzZjMzUxNWNhODZlNmUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZTFmMTM1NGNjMGI2NDA3NzhiZjhmN2E0N2VlOWUxMzguYmluZFBvcHVwKHBvcHVwX2ZlZGQ0ODI0ZGYxNjRmMDhhOTg1ZTk2MGEzNDc4ZjQzKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl83NTExMTM2ZTQ2Nzk0OWJjYTU5NzZiNDRmZThiNTcxNCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjQzNjA0MywgMi4xNzY1MThdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2FhZGRjOGQwOWNhNjRkYjI4MGFmNDM0OTcxZGExYzVmID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzZhMTM1ODQ2NTQxZjRiNDliNjhmODRlMjU4ZTgyMzhjID0gJChgPGRpdiBpZD0iaHRtbF82YTEzNTg0NjU0MWY0YjQ5YjY4Zjg0ZTI1OGU4MjM4YyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYWFkZGM4ZDA5Y2E2NGRiMjgwYWY0MzQ5NzFkYTFjNWYuc2V0Q29udGVudChodG1sXzZhMTM1ODQ2NTQxZjRiNDliNjhmODRlMjU4ZTgyMzhjKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzc1MTExMzZlNDY3OTQ5YmNhNTk3NmI0NGZlOGI1NzE0LmJpbmRQb3B1cChwb3B1cF9hYWRkYzhkMDljYTY0ZGIyODBhZjQzNDk3MWRhMWM1ZikKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNjcxMzEwZTdjN2RhNDJiYmIwNGRlNmY2MGQ4N2U5ZjcgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MjQ5NDUsIDIuMTg2NTU1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9lMDUxY2YyNjE5YTA0YWU0OTdkOGJiOTM0MmQ5NDU0ZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF80MzM0ZjhiNzJkYzM0YWU3YTcxOTU0NGNiMDY0YjAyYiA9ICQoYDxkaXYgaWQ9Imh0bWxfNDMzNGY4YjcyZGMzNGFlN2E3MTk1NDRjYjA2NGIwMmIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2UwNTFjZjI2MTlhMDRhZTQ5N2Q4YmI5MzQyZDk0NTRmLnNldENvbnRlbnQoaHRtbF80MzM0ZjhiNzJkYzM0YWU3YTcxOTU0NGNiMDY0YjAyYik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl82NzEzMTBlN2M3ZGE0MmJiYjA0ZGU2ZjYwZDg3ZTlmNy5iaW5kUG9wdXAocG9wdXBfZTA1MWNmMjYxOWEwNGFlNDk3ZDhiYjkzNDJkOTQ1NGYpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2FiNjM4YThmOTRjNjQ0YmRiZGM2ZjViNDQ2ZTJmMDMxID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuNDEzMTkxOTk5OTk5OTk1LCAyLjE5MjUxOF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZTY3MmUwNTgzMDcxNGU4MTk3Y2Y1OGJmZjIwY2E1YTIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYTRiN2RlMDBiZWExNDA1MWEyYzk1MDBmMDQyNjgyNzQgPSAkKGA8ZGl2IGlkPSJodG1sX2E0YjdkZTAwYmVhMTQwNTFhMmM5NTAwZjA0MjY4Mjc0IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9lNjcyZTA1ODMwNzE0ZTgxOTdjZjU4YmZmMjBjYTVhMi5zZXRDb250ZW50KGh0bWxfYTRiN2RlMDBiZWExNDA1MWEyYzk1MDBmMDQyNjgyNzQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYWI2MzhhOGY5NGM2NDRiZGJkYzZmNWI0NDZlMmYwMzEuYmluZFBvcHVwKHBvcHVwX2U2NzJlMDU4MzA3MTRlODE5N2NmNThiZmYyMGNhNWEyKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9hZTAyMTEzZDhkYjk0MWRjYjgzNjY2ZjY0MWRiYjYzMiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjQwNjkxMSwgMi4yMTgzMzJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzhjZDk2N2I3NzkyYjQ2NTM5OGUyZDJiMzFkODlkOGZhID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzhiYjlkMmVlYWYyYzQyYWM4ODUyZGI4ZmQxMzBkNTQ5ID0gJChgPGRpdiBpZD0iaHRtbF84YmI5ZDJlZWFmMmM0MmFjODg1MmRiOGZkMTMwZDU0OSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MjwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOGNkOTY3Yjc3OTJiNDY1Mzk4ZTJkMmIzMWQ4OWQ4ZmEuc2V0Q29udGVudChodG1sXzhiYjlkMmVlYWYyYzQyYWM4ODUyZGI4ZmQxMzBkNTQ5KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2FlMDIxMTNkOGRiOTQxZGNiODM2NjZmNjQxZGJiNjMyLmJpbmRQb3B1cChwb3B1cF84Y2Q5NjdiNzc5MmI0NjUzOThlMmQyYjMxZDg5ZDhmYSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZTAyN2Y4NDM2MzJmNGM0ZGIyMWJkOTk0ZWM4Y2E0MmQgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MDU2NDYwMDAwMDAwMDQsIDIuMjEzMzAyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81YzE3ZTgyODMwMDA0ZGU3ODUxYjk4NmZiZjcwNzZmOCA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84YmFlZjRhZTg3MzE0MzYyYTVhMWM1YzE3OTMyZmQzNSA9ICQoYDxkaXYgaWQ9Imh0bWxfOGJhZWY0YWU4NzMxNDM2MmE1YTFjNWMxNzkzMmZkMzUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzVjMTdlODI4MzAwMDRkZTc4NTFiOTg2ZmJmNzA3NmY4LnNldENvbnRlbnQoaHRtbF84YmFlZjRhZTg3MzE0MzYyYTVhMWM1YzE3OTMyZmQzNSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9lMDI3Zjg0MzYzMmY0YzRkYjIxYmQ5OTRlYzhjYTQyZC5iaW5kUG9wdXAocG9wdXBfNWMxN2U4MjgzMDAwNGRlNzg1MWI5ODZmYmY3MDc2ZjgpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzA0NWQ0NjdlZjY0YzRiZmRhOWMwNTIwMDVmYWEzOTIwID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzgyNTM3LCAyLjE0NjU2NF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYTA3ZTNjOGNmM2NiNGI3YTljYjc4NmVlNWQwYTJlNjMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZGU0MDhiYThjZDYzNDJkMzlhYjAxMTUzNTY4YTg1YjcgPSAkKGA8ZGl2IGlkPSJodG1sX2RlNDA4YmE4Y2Q2MzQyZDM5YWIwMTE1MzU2OGE4NWI3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hMDdlM2M4Y2YzY2I0YjdhOWNiNzg2ZWU1ZDBhMmU2My5zZXRDb250ZW50KGh0bWxfZGU0MDhiYThjZDYzNDJkMzlhYjAxMTUzNTY4YTg1YjcpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMDQ1ZDQ2N2VmNjRjNGJmZGE5YzA1MjAwNWZhYTM5MjAuYmluZFBvcHVwKHBvcHVwX2EwN2UzYzhjZjNjYjRiN2E5Y2I3ODZlZTVkMGEyZTYzKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8wOTZjODdiZGE4ZjA0OTM0OWJjZjViMTNlYjI0YjA3MyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM5NTg1NywgMi4xNjUyNDldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzRmZTdkMWY5OTExOTQ3MWQ4ZDQ2MzUwZGZkZDcxM2Y1ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzY0OWZlY2ViMjA5ZjRkNzY5NGE5Zjg5MDg4ZWVmMDRiID0gJChgPGRpdiBpZD0iaHRtbF82NDlmZWNlYjIwOWY0ZDc2OTRhOWY4OTA4OGVlZjA0YiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNGZlN2QxZjk5MTE5NDcxZDhkNDYzNTBkZmRkNzEzZjUuc2V0Q29udGVudChodG1sXzY0OWZlY2ViMjA5ZjRkNzY5NGE5Zjg5MDg4ZWVmMDRiKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzA5NmM4N2JkYThmMDQ5MzQ5YmNmNWIxM2ViMjRiMDczLmJpbmRQb3B1cChwb3B1cF80ZmU3ZDFmOTkxMTk0NzFkOGQ0NjM1MGRmZGQ3MTNmNSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNzk1NGY2M2NkNzZhNGRlNjk4YWQzZWZmOWZjODExYTIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zOTA0MTU5OTk5OTk5OTUsIDIuMTY3MDQ5XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9mMzk3YThlMGI5ZmY0OTY3YmQwYTdkNzcxMWQxOWNiZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iMWVhNmU3ZjhhNzI0Mjg1YjQ5ZDcwYWY4MDgzNmIyMCA9ICQoYDxkaXYgaWQ9Imh0bWxfYjFlYTZlN2Y4YTcyNDI4NWI0OWQ3MGFmODA4MzZiMjAiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2YzOTdhOGUwYjlmZjQ5NjdiZDBhN2Q3NzExZDE5Y2JmLnNldENvbnRlbnQoaHRtbF9iMWVhNmU3ZjhhNzI0Mjg1YjQ5ZDcwYWY4MDgzNmIyMCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl83OTU0ZjYzY2Q3NmE0ZGU2OThhZDNlZmY5ZmM4MTFhMi5iaW5kUG9wdXAocG9wdXBfZjM5N2E4ZTBiOWZmNDk2N2JkMGE3ZDc3MTFkMTljYmYpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzA0OTRmMDZiYTMwMDRhYTZiZjA2MzliOGU2MzExNjljID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzg5OSwgMi4xNTczNTNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzU0YTk3N2ZhZTc0NTQ2ZTBhOTRmYjNkMGY4Y2U5OGZkID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzQ4ODI0YWNmZWU2MjRkYzVhMDlkNTFmMWRmM2I5OGM0ID0gJChgPGRpdiBpZD0iaHRtbF80ODgyNGFjZmVlNjI0ZGM1YTA5ZDUxZjFkZjNiOThjNCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNTRhOTc3ZmFlNzQ1NDZlMGE5NGZiM2QwZjhjZTk4ZmQuc2V0Q29udGVudChodG1sXzQ4ODI0YWNmZWU2MjRkYzVhMDlkNTFmMWRmM2I5OGM0KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzA0OTRmMDZiYTMwMDRhYTZiZjA2MzliOGU2MzExNjljLmJpbmRQb3B1cChwb3B1cF81NGE5NzdmYWU3NDU0NmUwYTk0ZmIzZDBmOGNlOThmZCkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZWE3ZTYxMThjNzUxNDk3OGI1ZmE0NGU5N2JhN2IyNzYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zNzg4MywgMi4xNDcxNDVdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzIxN2IxNzBiMDA5MzRhMGJhMTlkMWMyMDA0NmY5MDIzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzYxMGI3NWY2NzRlYTQ4ZWViOWNiYmRhOTRlMDU1NDg3ID0gJChgPGRpdiBpZD0iaHRtbF82MTBiNzVmNjc0ZWE0OGVlYjljYmJkYTk0ZTA1NTQ4NyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMjE3YjE3MGIwMDkzNGEwYmExOWQxYzIwMDQ2ZjkwMjMuc2V0Q29udGVudChodG1sXzYxMGI3NWY2NzRlYTQ4ZWViOWNiYmRhOTRlMDU1NDg3KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2VhN2U2MTE4Yzc1MTQ5NzhiNWZhNDRlOTdiYTdiMjc2LmJpbmRQb3B1cChwb3B1cF8yMTdiMTcwYjAwOTM0YTBiYTE5ZDFjMjAwNDZmOTAyMykKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNzY2MmQ1NGZhOWY5NDJjNzlkN2UxODIwZmQwYWMxMGIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zOTE5OTIsIDIuMTY1NjM2XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83MmYwNTIzMDgwY2Y0MzA1OWM0MTVhYWYxMDE0ZmM5YyA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF82OGVlNGQ0MDVlN2Y0ODczODI5M2U5ZThlMDY2ZDgyZCA9ICQoYDxkaXYgaWQ9Imh0bWxfNjhlZTRkNDA1ZTdmNDg3MzgyOTNlOWU4ZTA2NmQ4MmQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzcyZjA1MjMwODBjZjQzMDU5YzQxNWFhZjEwMTRmYzljLnNldENvbnRlbnQoaHRtbF82OGVlNGQ0MDVlN2Y0ODczODI5M2U5ZThlMDY2ZDgyZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl83NjYyZDU0ZmE5Zjk0MmM3OWQ3ZTE4MjBmZDBhYzEwYi5iaW5kUG9wdXAocG9wdXBfNzJmMDUyMzA4MGNmNDMwNTljNDE1YWFmMTAxNGZjOWMpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzM4OTc2YTk0MTEwYTQyNTc5ODAzYjU1MzM2MDc0NjRiID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzg3MjQ0LCAyLjE2NTM1M10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMDZiZjk2NTMyOWE1NDgxODgxYWUwMzE2MGY4ZDYwNmIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYjgyN2FiZGFmZmJlNGQ3Mzg5YThhNzEzYTUxOTRkMTggPSAkKGA8ZGl2IGlkPSJodG1sX2I4MjdhYmRhZmZiZTRkNzM4OWE4YTcxM2E1MTk0ZDE4IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8wNmJmOTY1MzI5YTU0ODE4ODFhZTAzMTYwZjhkNjA2Yi5zZXRDb250ZW50KGh0bWxfYjgyN2FiZGFmZmJlNGQ3Mzg5YThhNzEzYTUxOTRkMTgpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMzg5NzZhOTQxMTBhNDI1Nzk4MDNiNTUzMzYwNzQ2NGIuYmluZFBvcHVwKHBvcHVwXzA2YmY5NjUzMjlhNTQ4MTg4MWFlMDMxNjBmOGQ2MDZiKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8zZjBmZGY5NDMwNDY0NTYwYjVkMTRmM2VkOTY0NGUyZCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM5MTU3LCAyLjE2ODYzNjAwMDAwMDAwMDJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2IwYzM5ZTdlZDZlMjRlM2RhNjBlNTMzOTRjY2ExNDg4ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzUwNGY3YjYzNTE1MjQxYmVhNzgzM2ViMzVhMjA4MDVjID0gJChgPGRpdiBpZD0iaHRtbF81MDRmN2I2MzUxNTI0MWJlYTc4MzNlYjM1YTIwODA1YyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYjBjMzllN2VkNmUyNGUzZGE2MGU1MzM5NGNjYTE0ODguc2V0Q29udGVudChodG1sXzUwNGY3YjYzNTE1MjQxYmVhNzgzM2ViMzVhMjA4MDVjKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzNmMGZkZjk0MzA0NjQ1NjBiNWQxNGYzZWQ5NjQ0ZTJkLmJpbmRQb3B1cChwb3B1cF9iMGMzOWU3ZWQ2ZTI0ZTNkYTYwZTUzMzk0Y2NhMTQ4OCkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNGI1ZGEzMGY4YmNkNDUxMmFhM2ZkMzAyMzk2OGM2OTQgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zOTgyODQ5OTk5OTk5OTQsIDIuMTgwMDc4XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85MjQzZjVkNTY2ZmQ0OGY4YWY2MDQ0NTFhODgzZTlmYSA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iNmUzMWZlYTEwOWQ0MWMyODAxMjUwZTkwOWZjNTNlNCA9ICQoYDxkaXYgaWQ9Imh0bWxfYjZlMzFmZWExMDlkNDFjMjgwMTI1MGU5MDlmYzUzZTQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzkyNDNmNWQ1NjZmZDQ4ZjhhZjYwNDQ1MWE4ODNlOWZhLnNldENvbnRlbnQoaHRtbF9iNmUzMWZlYTEwOWQ0MWMyODAxMjUwZTkwOWZjNTNlNCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl80YjVkYTMwZjhiY2Q0NTEyYWEzZmQzMDIzOTY4YzY5NC5iaW5kUG9wdXAocG9wdXBfOTI0M2Y1ZDU2NmZkNDhmOGFmNjA0NDUxYTg4M2U5ZmEpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2M4MmQzYjQ0MzFiMTRkNTg4NDZlYzYwYmJmZjNiNWY0ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuNDA2OTYwOTk5OTk5OTk1LCAyLjE3NTUwMDk5OTk5OTk5OTddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzdkMzFiMmE0ZDExODQ3MTVhZjc0YmM4MTA3MmFkOTU0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzJkODA2NTNjMzQ5OTQxNTJhOGM5ZWY2YTU1OGJkODNkID0gJChgPGRpdiBpZD0iaHRtbF8yZDgwNjUzYzM0OTk0MTUyYThjOWVmNmE1NThiZDgzZCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfN2QzMWIyYTRkMTE4NDcxNWFmNzRiYzgxMDcyYWQ5NTQuc2V0Q29udGVudChodG1sXzJkODA2NTNjMzQ5OTQxNTJhOGM5ZWY2YTU1OGJkODNkKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2M4MmQzYjQ0MzFiMTRkNTg4NDZlYzYwYmJmZjNiNWY0LmJpbmRQb3B1cChwb3B1cF83ZDMxYjJhNGQxMTg0NzE1YWY3NGJjODEwNzJhZDk1NCkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfODQ1NzdkOTMzODI5NDYzZDg5ZjBkN2IzYzg5NWExZDcgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zNzU0NTgsIDIuMTMyNjA5XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8wMGQyYzA3YjUxZTQ0MzZkYjZiMWJmMGNkOWE4ZjNmOCA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iNmEzNDBiNjFlZTc0Nzc5OWE2ZGU2MmI3YWQ0Mzg5NSA9ICQoYDxkaXYgaWQ9Imh0bWxfYjZhMzQwYjYxZWU3NDc3OTlhNmRlNjJiN2FkNDM4OTUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzAwZDJjMDdiNTFlNDQzNmRiNmIxYmYwY2Q5YThmM2Y4LnNldENvbnRlbnQoaHRtbF9iNmEzNDBiNjFlZTc0Nzc5OWE2ZGU2MmI3YWQ0Mzg5NSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl84NDU3N2Q5MzM4Mjk0NjNkODlmMGQ3YjNjODk1YTFkNy5iaW5kUG9wdXAocG9wdXBfMDBkMmMwN2I1MWU0NDM2ZGI2YjFiZjBjZDlhOGYzZjgpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzJkZWVlMTg0ZDJmYzQ0NWNhZDVjMjhiMjdmM2UzZDI3ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzc1NSwgMi4xMjY1MDJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzFjNWQxMjZiYjgxNTQxZDM5MTZjM2UwMjBkOTljNWVmID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzFhNTdhZmM5NTgyZjQ0MjFhZmZlNTU3YjcxNjI3YTgyID0gJChgPGRpdiBpZD0iaHRtbF8xYTU3YWZjOTU4MmY0NDIxYWZmZTU1N2I3MTYyN2E4MiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMWM1ZDEyNmJiODE1NDFkMzkxNmMzZTAyMGQ5OWM1ZWYuc2V0Q29udGVudChodG1sXzFhNTdhZmM5NTgyZjQ0MjFhZmZlNTU3YjcxNjI3YTgyKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzJkZWVlMTg0ZDJmYzQ0NWNhZDVjMjhiMjdmM2UzZDI3LmJpbmRQb3B1cChwb3B1cF8xYzVkMTI2YmI4MTU0MWQzOTE2YzNlMDIwZDk5YzVlZikKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYTExM2EwNzM3OTM3NDZkOGExZmMxZGJjOWZlMWYyZTggPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zODEzNzgwMDAwMDAwMDUsIDIuMTQxNTAxXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9lYjc1YzZhYTFlYjg0YjcyYmZlYjg0OTVhYjNkMTBmZCA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF83NjVkMTdhNTY4NWU0N2NhYWYwNTcyODEwYTIxM2U1NyA9ICQoYDxkaXYgaWQ9Imh0bWxfNzY1ZDE3YTU2ODVlNDdjYWFmMDU3MjgxMGEyMTNlNTciIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2ViNzVjNmFhMWViODRiNzJiZmViODQ5NWFiM2QxMGZkLnNldENvbnRlbnQoaHRtbF83NjVkMTdhNTY4NWU0N2NhYWYwNTcyODEwYTIxM2U1Nyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9hMTEzYTA3Mzc5Mzc0NmQ4YTFmYzFkYmM5ZmUxZjJlOC5iaW5kUG9wdXAocG9wdXBfZWI3NWM2YWExZWI4NGI3MmJmZWI4NDk1YWIzZDEwZmQpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2U1MjAyOTVlMjg5OTQwNWQ4ZjExYWVjMDRmZTYyNDVmID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzc5NjU2LCAyLjEzOTY5NF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNWM0ZDJjYzdiOGNlNGI1NDk4MzZiZmE1YmE0OGNjN2UgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZGM5ODAyNDNiNmY2NDIwNzg4YzFjOWJmNWYzMTU4YWMgPSAkKGA8ZGl2IGlkPSJodG1sX2RjOTgwMjQzYjZmNjQyMDc4OGMxYzliZjVmMzE1OGFjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF81YzRkMmNjN2I4Y2U0YjU0OTgzNmJmYTViYTQ4Y2M3ZS5zZXRDb250ZW50KGh0bWxfZGM5ODAyNDNiNmY2NDIwNzg4YzFjOWJmNWYzMTU4YWMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZTUyMDI5NWUyODk5NDA1ZDhmMTFhZWMwNGZlNjI0NWYuYmluZFBvcHVwKHBvcHVwXzVjNGQyY2M3YjhjZTRiNTQ5ODM2YmZhNWJhNDhjYzdlKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9hMzBjYzkzMTJiZmY0NDdhYWZlODFiMzJmZWZjN2FiMCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM4OTM5MDk5OTk5OTk5NiwgMi4xMTgxMzJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzIwYjA5M2IyMWNhZDQxYjZiNTA1ODI0MmFiZDM4ZmFjID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzA4M2M5NTM3NDg5MTRjYmFhNGVlYmE1ZGZkNmJhN2JmID0gJChgPGRpdiBpZD0iaHRtbF8wODNjOTUzNzQ4OTE0Y2JhYTRlZWJhNWRmZDZiYTdiZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMjBiMDkzYjIxY2FkNDFiNmI1MDU4MjQyYWJkMzhmYWMuc2V0Q29udGVudChodG1sXzA4M2M5NTM3NDg5MTRjYmFhNGVlYmE1ZGZkNmJhN2JmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2EzMGNjOTMxMmJmZjQ0N2FhZmU4MWIzMmZlZmM3YWIwLmJpbmRQb3B1cChwb3B1cF8yMGIwOTNiMjFjYWQ0MWI2YjUwNTgyNDJhYmQzOGZhYykKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNjRjYzc4MWU2OWFlNGRlMWFhNTcwNTJhNmQ2YzMyMzkgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zOTU4MTksIDIuMTM1MTkyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF80NDY0M2NjZWZhYmU0ODQ3OWQ3ZDY1OTI0ZDI4MTMxZCA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9lZmJiOTAwNDc0ODU0NWQ4YjRiMTg4ZWRkNDJlZDZlZCA9ICQoYDxkaXYgaWQ9Imh0bWxfZWZiYjkwMDQ3NDg1NDVkOGI0YjE4OGVkZDQyZWQ2ZWQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzQ0NjQzY2NlZmFiZTQ4NDc5ZDdkNjU5MjRkMjgxMzFkLnNldENvbnRlbnQoaHRtbF9lZmJiOTAwNDc0ODU0NWQ4YjRiMTg4ZWRkNDJlZDZlZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl82NGNjNzgxZTY5YWU0ZGUxYWE1NzA1MmE2ZDZjMzIzOS5iaW5kUG9wdXAocG9wdXBfNDQ2NDNjY2VmYWJlNDg0NzlkN2Q2NTkyNGQyODEzMWQpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2U0N2Q3ZjliZTZhNDQ0NzZhMDM3MzY2Y2U0MTcyM2QzID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuNDEyMjk5LCAyLjEzNTQ5Nl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYjc3ZmNhOTczYmVjNDc4MGIyODBlODcwOWNhNzVmN2YgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNTQ5MTI0OGE1MGVhNDdkMWJhZGVhODhmMTliNjRhOWIgPSAkKGA8ZGl2IGlkPSJodG1sXzU0OTEyNDhhNTBlYTQ3ZDFiYWRlYTg4ZjE5YjY0YTliIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iNzdmY2E5NzNiZWM0NzgwYjI4MGU4NzA5Y2E3NWY3Zi5zZXRDb250ZW50KGh0bWxfNTQ5MTI0OGE1MGVhNDdkMWJhZGVhODhmMTliNjRhOWIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZTQ3ZDdmOWJlNmE0NDQ3NmEwMzczNjZjZTQxNzIzZDMuYmluZFBvcHVwKHBvcHVwX2I3N2ZjYTk3M2JlYzQ3ODBiMjgwZTg3MDljYTc1ZjdmKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8yM2ZiMmVjOTE0Nzg0YmQ0ODNlNjI5OTg1OWU0MDBlMiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjQwNjk1OSwgMi4xNDMzOTZdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzQyM2Q2ZWZiYWE3ZDQ3NDI4YzJlMTE0YTM3NTViMjFkID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2U5YTQwYmVmNWJiNTQ4YTk5ZDM1YWViY2YxMzU2MjY4ID0gJChgPGRpdiBpZD0iaHRtbF9lOWE0MGJlZjViYjU0OGE5OWQzNWFlYmNmMTM1NjI2OCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNDIzZDZlZmJhYTdkNDc0MjhjMmUxMTRhMzc1NWIyMWQuc2V0Q29udGVudChodG1sX2U5YTQwYmVmNWJiNTQ4YTk5ZDM1YWViY2YxMzU2MjY4KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzIzZmIyZWM5MTQ3ODRiZDQ4M2U2Mjk5ODU5ZTQwMGUyLmJpbmRQb3B1cChwb3B1cF80MjNkNmVmYmFhN2Q0NzQyOGMyZTExNGEzNzU1YjIxZCkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfN2IwYzJiMjkyMzJmNGZkZWI3MTQ2MjRmM2JjNjI4OTcgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MDE4OCwgMi4xNTA4NzddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzdmNjc5ZmJkODU2NjQ3YjQ5MGMzMjhhNmE5MzVmZDQzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzgxMzMyMTUwMWMwNzRlYWU5MDVkNWIxNGMxNjQ5ZGUxID0gJChgPGRpdiBpZD0iaHRtbF84MTMzMjE1MDFjMDc0ZWFlOTA1ZDViMTRjMTY0OWRlMSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfN2Y2NzlmYmQ4NTY2NDdiNDkwYzMyOGE2YTkzNWZkNDMuc2V0Q29udGVudChodG1sXzgxMzMyMTUwMWMwNzRlYWU5MDVkNWIxNGMxNjQ5ZGUxKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzdiMGMyYjI5MjMyZjRmZGViNzE0NjI0ZjNiYzYyODk3LmJpbmRQb3B1cChwb3B1cF83ZjY3OWZiZDg1NjY0N2I0OTBjMzI4YTZhOTM1ZmQ0MykKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMjY4Yzg0Yjg2NmU4NDIzYTk3YTcwMTE3Mjc3ZTgzYjMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MTI0MywgMi4xMzk5NDFdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzAxNTAxNGUyN2E0ODQyZjBiNWUwNWRlNGZiMzkxMjM5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2E3MTI3MTVkNWMxZTRlMGE5Y2RhNmE1NjNiZTI1YTgxID0gJChgPGRpdiBpZD0iaHRtbF9hNzEyNzE1ZDVjMWU0ZTBhOWNkYTZhNTYzYmUyNWE4MSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMDE1MDE0ZTI3YTQ4NDJmMGI1ZTA1ZGU0ZmIzOTEyMzkuc2V0Q29udGVudChodG1sX2E3MTI3MTVkNWMxZTRlMGE5Y2RhNmE1NjNiZTI1YTgxKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzI2OGM4NGI4NjZlODQyM2E5N2E3MDExNzI3N2U4M2IzLmJpbmRQb3B1cChwb3B1cF8wMTUwMTRlMjdhNDg0MmYwYjVlMDVkZTRmYjM5MTIzOSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZGJlMWZmMWI1YTI0NDkzMzlhZWY4OWE1NDNiNDI5MjUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MDI2NzMsIDIuMTYzMDE3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF80MGI2ODA2ZmZhZTY0YmIyOTBhMzU3M2YwODdjMzliNyA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9lMWZjYTAyNzAyZGU0YmRiOTExOWU4M2U5NmQxY2UxNCA9ICQoYDxkaXYgaWQ9Imh0bWxfZTFmY2EwMjcwMmRlNGJkYjkxMTllODNlOTZkMWNlMTQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzQwYjY4MDZmZmFlNjRiYjI5MGEzNTczZjA4N2MzOWI3LnNldENvbnRlbnQoaHRtbF9lMWZjYTAyNzAyZGU0YmRiOTExOWU4M2U5NmQxY2UxNCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9kYmUxZmYxYjVhMjQ0OTMzOWFlZjg5YTU0M2I0MjkyNS5iaW5kUG9wdXAocG9wdXBfNDBiNjgwNmZmYWU2NGJiMjkwYTM1NzNmMDg3YzM5YjcpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzFjNGM1N2RmZWQ5MzQ5Yzk4YjliZTJkZjc3MmFkYzcwID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuNDAyOTg2OTk5OTk5OTk2LCAyLjE3MDM3NDAwMDAwMDAwMDJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2RjOWJhNzc1ZjZiNjRmMGY4MzIzNDE3NGZiNDM0MTk3ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzVlOWRlZWI0NWIxYTRlOTBhNjA4NWQ3ZDM3NzA1ZDdmID0gJChgPGRpdiBpZD0iaHRtbF81ZTlkZWViNDViMWE0ZTkwYTYwODVkN2QzNzcwNWQ3ZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZGM5YmE3NzVmNmI2NGYwZjgzMjM0MTc0ZmI0MzQxOTcuc2V0Q29udGVudChodG1sXzVlOWRlZWI0NWIxYTRlOTBhNjA4NWQ3ZDM3NzA1ZDdmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzFjNGM1N2RmZWQ5MzQ5Yzk4YjliZTJkZjc3MmFkYzcwLmJpbmRQb3B1cChwb3B1cF9kYzliYTc3NWY2YjY0ZjBmODMyMzQxNzRmYjQzNDE5NykKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYmJmMTdkN2U3NjZjNGQ1MmE5NTJkZDk2ZTQzMTRhYzggPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MTQ4OCwgMi4xNjUwODEwMDAwMDAwMDAzXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF81ODZlYjliMTEyOTI0ZTljYTRjYzhkZTY4YWNiOWNiYyA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8wMmNhZTdlMDI0OTg0ZWZiYjQ5MTAzMWZiYTNkODI0ZCA9ICQoYDxkaXYgaWQ9Imh0bWxfMDJjYWU3ZTAyNDk4NGVmYmI0OTEwMzFmYmEzZDgyNGQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzU4NmViOWIxMTI5MjRlOWNhNGNjOGRlNjhhY2I5Y2JjLnNldENvbnRlbnQoaHRtbF8wMmNhZTdlMDI0OTg0ZWZiYjQ5MTAzMWZiYTNkODI0ZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9iYmYxN2Q3ZTc2NmM0ZDUyYTk1MmRkOTZlNDMxNGFjOC5iaW5kUG9wdXAocG9wdXBfNTg2ZWI5YjExMjkyNGU5Y2E0Y2M4ZGU2OGFjYjljYmMpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2M2NjJhNjZmYTc2NjQwNGU4YWIwZTYxNTFmYTAxNzllID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuNDU5NTQ0LCAyLjE4MjMzMzAwMDAwMDAwMDNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzNlOWQ3YTIwZGMzYTQ1YzI5MGVmNGQ5ZDgzZDE4NzYwID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzYyZjMyYmEwOGRkNDQ1NTk5OWZiYjgzNjc2OGUwZDI2ID0gJChgPGRpdiBpZD0iaHRtbF82MmYzMmJhMDhkZDQ0NTU5OTlmYmI4MzY3NjhlMGQyNiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfM2U5ZDdhMjBkYzNhNDVjMjkwZWY0ZDlkODNkMTg3NjAuc2V0Q29udGVudChodG1sXzYyZjMyYmEwOGRkNDQ1NTk5OWZiYjgzNjc2OGUwZDI2KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2M2NjJhNjZmYTc2NjQwNGU4YWIwZTYxNTFmYTAxNzllLmJpbmRQb3B1cChwb3B1cF8zZTlkN2EyMGRjM2E0NWMyOTBlZjRkOWQ4M2QxODc2MCkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMmIzNWI2YzJhZGYwNDg0NmE5NThiNzJhZWJkMmNlYmMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40NDIxOTgsIDIuMTkxODg4OTk5OTk5OTk5OF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfM2ZhNmQzODVmMDQ2NDk1ZDhiYWY4NTVmZWYyNzkzYTMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZjhhOWFjZjg1ZjgyNDM0MThmODE5YjIxM2FjNGQ5MWYgPSAkKGA8ZGl2IGlkPSJodG1sX2Y4YTlhY2Y4NWY4MjQzNDE4ZjgxOWIyMTNhYzRkOTFmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8zZmE2ZDM4NWYwNDY0OTVkOGJhZjg1NWZlZjI3OTNhMy5zZXRDb250ZW50KGh0bWxfZjhhOWFjZjg1ZjgyNDM0MThmODE5YjIxM2FjNGQ5MWYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMmIzNWI2YzJhZGYwNDg0NmE5NThiNzJhZWJkMmNlYmMuYmluZFBvcHVwKHBvcHVwXzNmYTZkMzg1ZjA0NjQ5NWQ4YmFmODU1ZmVmMjc5M2EzKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl81MzQyNGM0NzQ1OGU0MTI4YWMyZWFjOGQxMGEwNDljNiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM5NTM0MywgMi4yMDA2NDkwMDAwMDAwMDAzXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8xM2E1NWRiMjY0ZDU0MDA2OTUyYmQwZTJkOWNjNDQ4YSA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF82MTRkMjM5ZDJhMmI0MDZkOTg5ZTU5NzAxNGZiMTFiZiA9ICQoYDxkaXYgaWQ9Imh0bWxfNjE0ZDIzOWQyYTJiNDA2ZDk4OWU1OTcwMTRmYjExYmYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzEzYTU1ZGIyNjRkNTQwMDY5NTJiZDBlMmQ5Y2M0NDhhLnNldENvbnRlbnQoaHRtbF82MTRkMjM5ZDJhMmI0MDZkOTg5ZTU5NzAxNGZiMTFiZik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl81MzQyNGM0NzQ1OGU0MTI4YWMyZWFjOGQxMGEwNDljNi5iaW5kUG9wdXAocG9wdXBfMTNhNTVkYjI2NGQ1NDAwNjk1MmJkMGUyZDljYzQ0OGEpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzlmMzk4NWIxMjc2NzQ0NDJiMzU2MDYxMTc1ZjkyMzZmID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuNDE0MTg4LCAyLjIwMTU2N10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOTkyMmZmMTIzNGQwNGQ4OWIyZDQwZDRiYWQ1MzVmOTIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYTBkNjE4YWM0MWUwNDRhMmJmMTE2N2FkNWYwMDgzZDIgPSAkKGA8ZGl2IGlkPSJodG1sX2EwZDYxOGFjNDFlMDQ0YTJiZjExNjdhZDVmMDA4M2QyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF85OTIyZmYxMjM0ZDA0ZDg5YjJkNDBkNGJhZDUzNWY5Mi5zZXRDb250ZW50KGh0bWxfYTBkNjE4YWM0MWUwNDRhMmJmMTE2N2FkNWYwMDgzZDIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfOWYzOTg1YjEyNzY3NDQ0MmIzNTYwNjExNzVmOTIzNmYuYmluZFBvcHVwKHBvcHVwXzk5MjJmZjEyMzRkMDRkODliMmQ0MGQ0YmFkNTM1ZjkyKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9kNjA5MDZhMjk2MGU0YmNiOWE0MGVjN2FjMWY3YjNjYSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjQwNzAyOSwgMi4yMDIzNzldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2Q0NzY1ZWE5ZTZiMTQ3ZDc4ZmRhODM1YzhjODYyZDEzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzA0OWFmMjMxZDQ1NzQwYjVhNzdlOGZiNGY5ZWFmYjgyID0gJChgPGRpdiBpZD0iaHRtbF8wNDlhZjIzMWQ0NTc0MGI1YTc3ZThmYjRmOWVhZmI4MiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZDQ3NjVlYTllNmIxNDdkNzhmZGE4MzVjOGM4NjJkMTMuc2V0Q29udGVudChodG1sXzA0OWFmMjMxZDQ1NzQwYjVhNzdlOGZiNGY5ZWFmYjgyKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2Q2MDkwNmEyOTYwZTRiY2I5YTQwZWM3YWMxZjdiM2NhLmJpbmRQb3B1cChwb3B1cF9kNDc2NWVhOWU2YjE0N2Q3OGZkYTgzNWM4Yzg2MmQxMykKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMWVhNjRjNGQ5ZmY0NGZjNmE0NjhjZDhiY2Y0ZTMzNDcgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zODMwNzg5OTk5OTk5OTUsIDIuMTUwNTQ1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9iMjY1MDEwYWE0MTM0ZWRkODBiYzRiZDBkNDI3MjEwNiA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85NmUyNDY3YWNkOTQ0ZmZmYjczN2RiODFiNDczYTIxOCA9ICQoYDxkaXYgaWQ9Imh0bWxfOTZlMjQ2N2FjZDk0NGZmZmI3MzdkYjgxYjQ3M2EyMTgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2IyNjUwMTBhYTQxMzRlZGQ4MGJjNGJkMGQ0MjcyMTA2LnNldENvbnRlbnQoaHRtbF85NmUyNDY3YWNkOTQ0ZmZmYjczN2RiODFiNDczYTIxOCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8xZWE2NGM0ZDlmZjQ0ZmM2YTQ2OGNkOGJjZjRlMzM0Ny5iaW5kUG9wdXAocG9wdXBfYjI2NTAxMGFhNDEzNGVkZDgwYmM0YmQwZDQyNzIxMDYpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2MwOTBiMjBjMGRmNTQ5ZjI5NDRkYjc1MGY1YmU1MmNjID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzg5NDE4LCAyLjE2ODI3NDAwMDAwMDAwMDNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2I4YzdjNzI0ZTQ4ZjRiYTFiN2U4MWJjMWQ5ZTRiMTE1ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzdlM2E5ZjUxNThmZjRlOWQ4YWEyMWQyMzE0NDhiYzExID0gJChgPGRpdiBpZD0iaHRtbF83ZTNhOWY1MTU4ZmY0ZTlkOGFhMjFkMjMxNDQ4YmMxMSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYjhjN2M3MjRlNDhmNGJhMWI3ZTgxYmMxZDllNGIxMTUuc2V0Q29udGVudChodG1sXzdlM2E5ZjUxNThmZjRlOWQ4YWEyMWQyMzE0NDhiYzExKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2MwOTBiMjBjMGRmNTQ5ZjI5NDRkYjc1MGY1YmU1MmNjLmJpbmRQb3B1cChwb3B1cF9iOGM3YzcyNGU0OGY0YmExYjdlODFiYzFkOWU0YjExNSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNjdiZWE5NzkyOTE3NDA4YmI5NDQ2OGE0YzJlN2M5OWEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zOTI4NTMsIDIuMTU4ODE5XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8yNTMzYzg1NWIyMjA0Mzk5YWQ0ZjJhMDM1ZjYwZGE2MSA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8yNDJlZmQyMDc3ZDc0ZjBmYmE5ZGVjNjE5MDE2NzI2MyA9ICQoYDxkaXYgaWQ9Imh0bWxfMjQyZWZkMjA3N2Q3NGYwZmJhOWRlYzYxOTAxNjcyNjMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzI1MzNjODU1YjIyMDQzOTlhZDRmMmEwMzVmNjBkYTYxLnNldENvbnRlbnQoaHRtbF8yNDJlZmQyMDc3ZDc0ZjBmYmE5ZGVjNjE5MDE2NzI2Myk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl82N2JlYTk3OTI5MTc0MDhiYjk0NDY4YTRjMmU3Yzk5YS5iaW5kUG9wdXAocG9wdXBfMjUzM2M4NTViMjIwNDM5OWFkNGYyYTAzNWY2MGRhNjEpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzUyOTY2ODYyYTE4YzQ5OWI4YjRmOTQ2YjhiNDg1NDdmID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzg5MDQxOTk5OTk5OTk2LCAyLjE1NjIwNjk5OTk5OTk5OThdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzNhNGJlNjFiMmQ3NTQ3NTE4NzMxYjc5Zjg5Y2E5ZGNlID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzI5YTUxMWZlZDljYjRlOWRiMWMzMmQ2OGNiNjIxZDdiID0gJChgPGRpdiBpZD0iaHRtbF8yOWE1MTFmZWQ5Y2I0ZTlkYjFjMzJkNjhjYjYyMWQ3YiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfM2E0YmU2MWIyZDc1NDc1MTg3MzFiNzlmODljYTlkY2Uuc2V0Q29udGVudChodG1sXzI5YTUxMWZlZDljYjRlOWRiMWMzMmQ2OGNiNjIxZDdiKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzUyOTY2ODYyYTE4YzQ5OWI4YjRmOTQ2YjhiNDg1NDdmLmJpbmRQb3B1cChwb3B1cF8zYTRiZTYxYjJkNzU0NzUxODczMWI3OWY4OWNhOWRjZSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNWFhYjlmNjE4NzlkNDU1YmIxNjc5NzQwZjI4ZDg2ZjIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zOTk5NDc5OTk5OTk5OTUsIDIuMTcwNDkzXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF80ZDA4ZmE1MWVlNDQ0YTUwYTVkYTQ2Yzk4Mzk5YWVkOCA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF81MzM5NDQ3ZTE0MGE0YTNjYjQ5ZDlhNDNhNzYwODFiOCA9ICQoYDxkaXYgaWQ9Imh0bWxfNTMzOTQ0N2UxNDBhNGEzY2I0OWQ5YTQzYTc2MDgxYjgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjI8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzRkMDhmYTUxZWU0NDRhNTBhNWRhNDZjOTgzOTlhZWQ4LnNldENvbnRlbnQoaHRtbF81MzM5NDQ3ZTE0MGE0YTNjYjQ5ZDlhNDNhNzYwODFiOCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl81YWFiOWY2MTg3OWQ0NTViYjE2Nzk3NDBmMjhkODZmMi5iaW5kUG9wdXAocG9wdXBfNGQwOGZhNTFlZTQ0NGE1MGE1ZGE0NmM5ODM5OWFlZDgpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2QxZGY3NWU0MzY5NTQ4YmQ5ZTA0MjQ3NDI3ZGFkYmEwID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzk5NTYxLCAyLjE3MTY1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8zNjQyZjZkZGE4Y2Q0OGQ0YjAwNWY1YmY1NDhiMGIzYyA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8yZTgyYWMwMjczYTE0M2ZlOWQ2MTU0MDIxN2NhMzkyMCA9ICQoYDxkaXYgaWQ9Imh0bWxfMmU4MmFjMDI3M2ExNDNmZTlkNjE1NDAyMTdjYTM5MjAiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzM2NDJmNmRkYThjZDQ4ZDRiMDA1ZjViZjU0OGIwYjNjLnNldENvbnRlbnQoaHRtbF8yZTgyYWMwMjczYTE0M2ZlOWQ2MTU0MDIxN2NhMzkyMCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9kMWRmNzVlNDM2OTU0OGJkOWUwNDI0NzQyN2RhZGJhMC5iaW5kUG9wdXAocG9wdXBfMzY0MmY2ZGRhOGNkNDhkNGIwMDVmNWJmNTQ4YjBiM2MpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2IyYjBlNDkxMjg1NzQxNTBiOWI3NGQ4MDBlMGZhMzc3ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzg5ODgzMDAwMDAwMDA1LCAyLjE1NTA5M10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfY2Q2ZDJkOGEyODFlNDJkMGE5ZTdhOGNjNjg5MmI3YzQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMThiNzViNGI5NzVmNDc1OGIzOGM3OWFjZTMzYTkyOGIgPSAkKGA8ZGl2IGlkPSJodG1sXzE4Yjc1YjRiOTc1ZjQ3NThiMzhjNzlhY2UzM2E5MjhiIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jZDZkMmQ4YTI4MWU0MmQwYTllN2E4Y2M2ODkyYjdjNC5zZXRDb250ZW50KGh0bWxfMThiNzViNGI5NzVmNDc1OGIzOGM3OWFjZTMzYTkyOGIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYjJiMGU0OTEyODU3NDE1MGI5Yjc0ZDgwMGUwZmEzNzcuYmluZFBvcHVwKHBvcHVwX2NkNmQyZDhhMjgxZTQyZDBhOWU3YThjYzY4OTJiN2M0KQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9hMDVjMDM2NjQyYTc0NmMxODNkYzAyODNlYTQ3MzgxMiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM4NTYyMjk5OTk5OTk5NSwgMi4xNTM5NDddLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzVjNzI5ZTdkMzc2YzQzN2Q4ZWQ2NjZhYTI2NDk5ZjkwID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2QzMWIxMzRiNGJmZjQwMzBhM2VmN2Y5NjUwOTRlMDkzID0gJChgPGRpdiBpZD0iaHRtbF9kMzFiMTM0YjRiZmY0MDMwYTNlZjdmOTY1MDk0ZTA5MyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNWM3MjllN2QzNzZjNDM3ZDhlZDY2NmFhMjY0OTlmOTAuc2V0Q29udGVudChodG1sX2QzMWIxMzRiNGJmZjQwMzBhM2VmN2Y5NjUwOTRlMDkzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2EwNWMwMzY2NDJhNzQ2YzE4M2RjMDI4M2VhNDczODEyLmJpbmRQb3B1cChwb3B1cF81YzcyOWU3ZDM3NmM0MzdkOGVkNjY2YWEyNjQ5OWY5MCkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYmZhNDk1ZGFjMTg1NGRhYTk0ZTMzNzc0NDE1OTg1MjcgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zOTU2MzQsIDIuMTc5MDQ3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8xZTMwNGZlM2VmMDI0NzYxOGE4NjI1MDIxODE0NGRiMSA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iMjZmZjc5ZGE2ZjI0MTNkOWFiNTM4MzQ5M2MxMTBhNyA9ICQoYDxkaXYgaWQ9Imh0bWxfYjI2ZmY3OWRhNmYyNDEzZDlhYjUzODM0OTNjMTEwYTciIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzFlMzA0ZmUzZWYwMjQ3NjE4YTg2MjUwMjE4MTQ0ZGIxLnNldENvbnRlbnQoaHRtbF9iMjZmZjc5ZGE2ZjI0MTNkOWFiNTM4MzQ5M2MxMTBhNyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9iZmE0OTVkYWMxODU0ZGFhOTRlMzM3NzQ0MTU5ODUyNy5iaW5kUG9wdXAocG9wdXBfMWUzMDRmZTNlZjAyNDc2MThhODYyNTAyMTgxNDRkYjEpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzU3YWQ2YmZjNDcxZTQ2ZGM4M2Q1MTE5YmI0ZGI1YmRkID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzcwMTczLCAyLjE3NDE1ODAwMDAwMDAwMDNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzY3ZDA3ZTliODY5ODRlY2VhZmMxODE1MWY1YWEzNGUwID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzIzMzM4OTdlODA5YTQ4YjRiM2Q1MGFmMTdhY2U5ZDYxID0gJChgPGRpdiBpZD0iaHRtbF8yMzMzODk3ZTgwOWE0OGI0YjNkNTBhZjE3YWNlOWQ2MSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNjdkMDdlOWI4Njk4NGVjZWFmYzE4MTUxZjVhYTM0ZTAuc2V0Q29udGVudChodG1sXzIzMzM4OTdlODA5YTQ4YjRiM2Q1MGFmMTdhY2U5ZDYxKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzU3YWQ2YmZjNDcxZTQ2ZGM4M2Q1MTE5YmI0ZGI1YmRkLmJpbmRQb3B1cChwb3B1cF82N2QwN2U5Yjg2OTg0ZWNlYWZjMTgxNTFmNWFhMzRlMCkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfOGUzYTllNGI4MDhkNGZhY2I0OTlkYjhiOTg5NzQ3NjcgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zNzMyMDYsIDIuMTQ2MjYyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8zNTZiYzc0MjY2ZGQ0YmJjYjM2OGFjMTI1M2YzZjcwMiA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85YjE3OTZiZjJjN2U0ZWE2YTNkODc5ZjUzY2JjMTQ1MiA9ICQoYDxkaXYgaWQ9Imh0bWxfOWIxNzk2YmYyYzdlNGVhNmEzZDg3OWY1M2NiYzE0NTIiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzM1NmJjNzQyNjZkZDRiYmNiMzY4YWMxMjUzZjNmNzAyLnNldENvbnRlbnQoaHRtbF85YjE3OTZiZjJjN2U0ZWE2YTNkODc5ZjUzY2JjMTQ1Mik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl84ZTNhOWU0YjgwOGQ0ZmFjYjQ5OWRiOGI5ODk3NDc2Ny5iaW5kUG9wdXAocG9wdXBfMzU2YmM3NDI2NmRkNGJiY2IzNjhhYzEyNTNmM2Y3MDIpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzA1OTk3YWE2ZTI3MTQzNjQ4OGViNDRiZmMyNjYwMzdmID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzg2OTIyOTk5OTk5OTk2LCAyLjEyOTEzMl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYmZhMTQ3YjgxYTY5NDMxMmI2MjE1YTlhODAxOGNlNWIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOTg2OTgwOWJkNTNjNDY4ODhlNWY5YzU2YTA2ZWU4MzIgPSAkKGA8ZGl2IGlkPSJodG1sXzk4Njk4MDliZDUzYzQ2ODg4ZTVmOWM1NmEwNmVlODMyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iZmExNDdiODFhNjk0MzEyYjYyMTVhOWE4MDE4Y2U1Yi5zZXRDb250ZW50KGh0bWxfOTg2OTgwOWJkNTNjNDY4ODhlNWY5YzU2YTA2ZWU4MzIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMDU5OTdhYTZlMjcxNDM2NDg4ZWI0NGJmYzI2NjAzN2YuYmluZFBvcHVwKHBvcHVwX2JmYTE0N2I4MWE2OTQzMTJiNjIxNWE5YTgwMThjZTViKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl81NGU0YTA2M2I4ODc0MzRjODU2OTBiNTNkYTY2OTExNiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM4NjAxOCwgMi4xMzU3OF0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYjFmOGZkZDIzODVjNGUyYmIxZDJhY2I4NDEwNGVhMzkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZGI5ODgzYTU0YTcyNGFhYzk1MDE4MDJiNTQ0Zjc2ZTYgPSAkKGA8ZGl2IGlkPSJodG1sX2RiOTg4M2E1NGE3MjRhYWM5NTAxODAyYjU0NGY3NmU2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4yPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iMWY4ZmRkMjM4NWM0ZTJiYjFkMmFjYjg0MTA0ZWEzOS5zZXRDb250ZW50KGh0bWxfZGI5ODgzYTU0YTcyNGFhYzk1MDE4MDJiNTQ0Zjc2ZTYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNTRlNGEwNjNiODg3NDM0Yzg1NjkwYjUzZGE2NjkxMTYuYmluZFBvcHVwKHBvcHVwX2IxZjhmZGQyMzg1YzRlMmJiMWQyYWNiODQxMDRlYTM5KQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9mNGQzMTE5MjQ2YjY0MjRhYjQ5MjA2YzllOWQ5NTk3MiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM4NzIxMSwgMi4xMjEwNzldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzdkNzE4YzJhOThkYTQzNTJiYjgyOGVhMzQzMGM1MTJmID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2FkNWM0MWI3MTk3NzRkNmZhNWMzOGFlYmE2M2RkNGM4ID0gJChgPGRpdiBpZD0iaHRtbF9hZDVjNDFiNzE5Nzc0ZDZmYTVjMzhhZWJhNjNkZDRjOCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfN2Q3MThjMmE5OGRhNDM1MmJiODI4ZWEzNDMwYzUxMmYuc2V0Q29udGVudChodG1sX2FkNWM0MWI3MTk3NzRkNmZhNWMzOGFlYmE2M2RkNGM4KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2Y0ZDMxMTkyNDZiNjQyNGFiNDkyMDZjOWU5ZDk1OTcyLmJpbmRQb3B1cChwb3B1cF83ZDcxOGMyYTk4ZGE0MzUyYmI4MjhlYTM0MzBjNTEyZikKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYzY5MjZkMmRhZjQxNDdjNWE1M2I4MzgzM2NmZDlmYmMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MDI5MjUsIDIuMTE1ODY2OTk5OTk5OTk5N10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYWQ0NjliNWZkNDZkNGU2MWIyM2UyMjY4ZjY5MmYwY2MgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYjI1ZmUyNTFlN2ViNDdhNWFjYjM1OTU4MjY3MGZjZmIgPSAkKGA8ZGl2IGlkPSJodG1sX2IyNWZlMjUxZTdlYjQ3YTVhY2IzNTk1ODI2NzBmY2ZiIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hZDQ2OWI1ZmQ0NmQ0ZTYxYjIzZTIyNjhmNjkyZjBjYy5zZXRDb250ZW50KGh0bWxfYjI1ZmUyNTFlN2ViNDdhNWFjYjM1OTU4MjY3MGZjZmIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYzY5MjZkMmRhZjQxNDdjNWE1M2I4MzgzM2NmZDlmYmMuYmluZFBvcHVwKHBvcHVwX2FkNDY5YjVmZDQ2ZDRlNjFiMjNlMjI2OGY2OTJmMGNjKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8zZjRjNDQ4YWJkZTM0M2JhYjY5MjIxZWJlMjE2ZWEwOSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM5OTQyOTk5OTk5OTk5NSwgMi4xMzA4MTRdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2Q5NjE4YTdkMWYxNzQyMjFiZWYwMmVhMWI2MDYzMzBlID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzNmYTNmMGQwMDZkZTRiNDNiMTA0YWU1ZWNjY2QyOTBmID0gJChgPGRpdiBpZD0iaHRtbF8zZmEzZjBkMDA2ZGU0YjQzYjEwNGFlNWVjY2NkMjkwZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZDk2MThhN2QxZjE3NDIyMWJlZjAyZWExYjYwNjMzMGUuc2V0Q29udGVudChodG1sXzNmYTNmMGQwMDZkZTRiNDNiMTA0YWU1ZWNjY2QyOTBmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzNmNGM0NDhhYmRlMzQzYmFiNjkyMjFlYmUyMTZlYTA5LmJpbmRQb3B1cChwb3B1cF9kOTYxOGE3ZDFmMTc0MjIxYmVmMDJlYTFiNjA2MzMwZSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYzhmMmQ4NWYxODI0NGQyZjg4NWUwZTJiMjgyNjYzNTMgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MDk3OTQsIDIuMTM1NTUyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF83MjM4N2ZhZDdkYjQ0MGVjOGFlNDE4MGE0NjJiNGFmMCA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iZWZjN2U5ZGRjYzE0MjcxOTYzYTA3NzdiYjEyNWRjYiA9ICQoYDxkaXYgaWQ9Imh0bWxfYmVmYzdlOWRkY2MxNDI3MTk2M2EwNzc3YmIxMjVkY2IiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzcyMzg3ZmFkN2RiNDQwZWM4YWU0MTgwYTQ2MmI0YWYwLnNldENvbnRlbnQoaHRtbF9iZWZjN2U5ZGRjYzE0MjcxOTYzYTA3NzdiYjEyNWRjYik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9jOGYyZDg1ZjE4MjQ0ZDJmODg1ZTBlMmIyODI2NjM1My5iaW5kUG9wdXAocG9wdXBfNzIzODdmYWQ3ZGI0NDBlYzhhZTQxODBhNDYyYjRhZjApCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2M1MDM1ZWU4MjZiZDQ1MDk4YzliYTM4ZWJhMWUwZDBmID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuNDEzMzIxLCAyLjEzNzY4OV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZWVlZTJiYWI2ZDJkNDE2Mjk1ZWQ2ZTdiNWUyM2UxMTMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNTQ2OTEyYjEzZDI3NDFmMWFlY2UzZTIwZmEwZDQ4MjEgPSAkKGA8ZGl2IGlkPSJodG1sXzU0NjkxMmIxM2QyNzQxZjFhZWNlM2UyMGZhMGQ0ODIxIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9lZWVlMmJhYjZkMmQ0MTYyOTVlZDZlN2I1ZTIzZTExMy5zZXRDb250ZW50KGh0bWxfNTQ2OTEyYjEzZDI3NDFmMWFlY2UzZTIwZmEwZDQ4MjEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYzUwMzVlZTgyNmJkNDUwOThjOWJhMzhlYmExZTBkMGYuYmluZFBvcHVwKHBvcHVwX2VlZWUyYmFiNmQyZDQxNjI5NWVkNmU3YjVlMjNlMTEzKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl83MjU4ZDEwNmI4ZDk0NWJkYjE4MWZiYmI0Y2MwYzYzMSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjQwMjgzNywgMi4xNDQwNzJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzQ1ZjhkZjU5NWQyZjQ4OTBiMDQ0NmE4OWIwZTdmMWZiID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzBhZWYzYjg0MzdkMDRkMGE5MGJjNDEyOTU0MjFhNDU1ID0gJChgPGRpdiBpZD0iaHRtbF8wYWVmM2I4NDM3ZDA0ZDBhOTBiYzQxMjk1NDIxYTQ1NSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNDVmOGRmNTk1ZDJmNDg5MGIwNDQ2YTg5YjBlN2YxZmIuc2V0Q29udGVudChodG1sXzBhZWYzYjg0MzdkMDRkMGE5MGJjNDEyOTU0MjFhNDU1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzcyNThkMTA2YjhkOTQ1YmRiMTgxZmJiYjRjYzBjNjMxLmJpbmRQb3B1cChwb3B1cF80NWY4ZGY1OTVkMmY0ODkwYjA0NDZhODliMGU3ZjFmYikKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMDZhY2ViZWFhYjIyNDE3NWI3NTMyM2FkZGE3N2Q2NzAgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MDM3MTgsIDIuMTQyNjE3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82NjkzMDcxNmNhZTI0MTFhOWVmOTI5NGY3YzkxMzE1ZSA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF82NjIxZmQ0ZDQwMDc0YmY1OTUyZjM4NzFlMTk1NGFmYyA9ICQoYDxkaXYgaWQ9Imh0bWxfNjYyMWZkNGQ0MDA3NGJmNTk1MmYzODcxZTE5NTRhZmMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzY2OTMwNzE2Y2FlMjQxMWE5ZWY5Mjk0ZjdjOTEzMTVlLnNldENvbnRlbnQoaHRtbF82NjIxZmQ0ZDQwMDc0YmY1OTUyZjM4NzFlMTk1NGFmYyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8wNmFjZWJlYWFiMjI0MTc1Yjc1MzIzYWRkYTc3ZDY3MC5iaW5kUG9wdXAocG9wdXBfNjY5MzA3MTZjYWUyNDExYTllZjkyOTRmN2M5MTMxNWUpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2JhZTA0NjkwMzNlNzQwYTI5MWExNGJhNDhiMmQ2ZTA5ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuNDMwOTE1OTk5OTk5OTk2LCAyLjE2ODQ3Ml0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOWZmM2VkYTg3MTJmNGQ4NzliNDllMDhiNDJmMDA1ZjYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZWE1YzQ3NmJjYmU1NGJiNGE4ZTllNzFkZjM3MzEyMjAgPSAkKGA8ZGl2IGlkPSJodG1sX2VhNWM0NzZiY2JlNTRiYjRhOGU5ZTcxZGYzNzMxMjIwIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF85ZmYzZWRhODcxMmY0ZDg3OWI0OWUwOGI0MmYwMDVmNi5zZXRDb250ZW50KGh0bWxfZWE1YzQ3NmJjYmU1NGJiNGE4ZTllNzFkZjM3MzEyMjApOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYmFlMDQ2OTAzM2U3NDBhMjkxYTE0YmE0OGIyZDZlMDkuYmluZFBvcHVwKHBvcHVwXzlmZjNlZGE4NzEyZjRkODc5YjQ5ZTA4YjQyZjAwNWY2KQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9lNGM5ODkzNzU5NjM0MDg0OTlhN2MwN2Y1ZDFiMmNmOSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjQzNTcwOSwgMi4xNjY4NTgwMDAwMDAwMDA0XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9mNWQ0ZDZmM2YwMWM0ODUzYTVkYmJjYTQ3NmNiMzIyOSA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9hZmNkMDQwYTdhMmM0ZmJiYjVlNjM4MGQxMDA5NzhmMyA9ICQoYDxkaXYgaWQ9Imh0bWxfYWZjZDA0MGE3YTJjNGZiYmI1ZTYzODBkMTAwOTc4ZjMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2Y1ZDRkNmYzZjAxYzQ4NTNhNWRiYmNhNDc2Y2IzMjI5LnNldENvbnRlbnQoaHRtbF9hZmNkMDQwYTdhMmM0ZmJiYjVlNjM4MGQxMDA5NzhmMyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9lNGM5ODkzNzU5NjM0MDg0OTlhN2MwN2Y1ZDFiMmNmOS5iaW5kUG9wdXAocG9wdXBfZjVkNGQ2ZjNmMDFjNDg1M2E1ZGJiY2E0NzZjYjMyMjkpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzQwMTU4Yzg0ODI3ZTQ3NmQ4NGZlZDBkYTYyZWVlODFhID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuNDM2Mjc5LCAyLjE2NDI2MV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNjYxMGM5M2EwMzFhNDU0ZjkzNDg5N2Y4OGIzNTU2ZDkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZDBkZDY0NjkyNTc3NGEzMDk0NzcwZmVhMzkyN2RmZjIgPSAkKGA8ZGl2IGlkPSJodG1sX2QwZGQ2NDY5MjU3NzRhMzA5NDc3MGZlYTM5MjdkZmYyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82NjEwYzkzYTAzMWE0NTRmOTM0ODk3Zjg4YjM1NTZkOS5zZXRDb250ZW50KGh0bWxfZDBkZDY0NjkyNTc3NGEzMDk0NzcwZmVhMzkyN2RmZjIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNDAxNThjODQ4MjdlNDc2ZDg0ZmVkMGRhNjJlZWU4MWEuYmluZFBvcHVwKHBvcHVwXzY2MTBjOTNhMDMxYTQ1NGY5MzQ4OTdmODhiMzU1NmQ5KQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl80NWU2M2ZmOTQyZGY0NmYzOGI3MmU4ZDExY2E5OTJkMCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjQxNTM5MSwgMi4xODkwMTVdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2FhMGU4YmVhNjcwZDQxN2JhYWI0NjU1YmY3Y2E5Y2FiID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2RhNzk0NzAzZGJiMzRmNjBiMjQ4ZDhkMDU0MWQ2NDRmID0gJChgPGRpdiBpZD0iaHRtbF9kYTc5NDcwM2RiYjM0ZjYwYjI0OGQ4ZDA1NDFkNjQ0ZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYWEwZThiZWE2NzBkNDE3YmFhYjQ2NTViZjdjYTljYWIuc2V0Q29udGVudChodG1sX2RhNzk0NzAzZGJiMzRmNjBiMjQ4ZDhkMDU0MWQ2NDRmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzQ1ZTYzZmY5NDJkZjQ2ZjM4YjcyZThkMTFjYTk5MmQwLmJpbmRQb3B1cChwb3B1cF9hYTBlOGJlYTY3MGQ0MTdiYWFiNDY1NWJmN2NhOWNhYikKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfOWUxYTkzOGI0NThkNDRjNGJmZTcyYmVjNTMyYWZlZTEgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MDI2MTcsIDIuMTg1ODYzXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF80OTI0YTVmOWRiMGM0YTY5OTNiODc0YmU5NDQwYmJlOCA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84MDQ3MjVkOTU2MzM0OWUyOTdmNDI2ZGFhMjZkNmQ0MSA9ICQoYDxkaXYgaWQ9Imh0bWxfODA0NzI1ZDk1NjMzNDllMjk3ZjQyNmRhYTI2ZDZkNDEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzQ5MjRhNWY5ZGIwYzRhNjk5M2I4NzRiZTk0NDBiYmU4LnNldENvbnRlbnQoaHRtbF84MDQ3MjVkOTU2MzM0OWUyOTdmNDI2ZGFhMjZkNmQ0MSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl85ZTFhOTM4YjQ1OGQ0NGM0YmZlNzJiZWM1MzJhZmVlMS5iaW5kUG9wdXAocG9wdXBfNDkyNGE1ZjlkYjBjNGE2OTkzYjg3NGJlOTQ0MGJiZTgpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2EzYTc2ODhmNzQ0ODRhNGJhZTYwNWUxNjQzNDM5ZGVmID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuNDA2MDY1MDAwMDAwMDA1LCAyLjE4NTY1N10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYWQ0Njg3OTkyMzQ0NDViZmJjMjZhNzI5OTdlM2ZmYTkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMGU1MzU5ODMwOTdiNGY0NmIxYjI1ZjUzMmFlMmQxOTcgPSAkKGA8ZGl2IGlkPSJodG1sXzBlNTM1OTgzMDk3YjRmNDZiMWIyNWY1MzJhZTJkMTk3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hZDQ2ODc5OTIzNDQ0NWJmYmMyNmE3Mjk5N2UzZmZhOS5zZXRDb250ZW50KGh0bWxfMGU1MzU5ODMwOTdiNGY0NmIxYjI1ZjUzMmFlMmQxOTcpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYTNhNzY4OGY3NDQ4NGE0YmFlNjA1ZTE2NDM0MzlkZWYuYmluZFBvcHVwKHBvcHVwX2FkNDY4Nzk5MjM0NDQ1YmZiYzI2YTcyOTk3ZTNmZmE5KQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9hNGU1ODhmNmMwNjc0ZDk2YmRiYTVhOWVlNjc0NmZjZCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjQxMjY0LCAyLjIwODUyM10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNmFiM2FkNzcxOTJjNGY5NmExYWFkYjhhODdmZTZiMTkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNTEwODBlZDg1OGQwNDdmOWE0MGI4YThjNmViNjg0YjUgPSAkKGA8ZGl2IGlkPSJodG1sXzUxMDgwZWQ4NThkMDQ3ZjlhNDBiOGE4YzZlYjY4NGI1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82YWIzYWQ3NzE5MmM0Zjk2YTFhYWRiOGE4N2ZlNmIxOS5zZXRDb250ZW50KGh0bWxfNTEwODBlZDg1OGQwNDdmOWE0MGI4YThjNmViNjg0YjUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYTRlNTg4ZjZjMDY3NGQ5NmJkYmE1YTllZTY3NDZmY2QuYmluZFBvcHVwKHBvcHVwXzZhYjNhZDc3MTkyYzRmOTZhMWFhZGI4YTg3ZmU2YjE5KQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl81YmIwZTA4ZjRjMzc0ZjVlYTU1OGU3ZjBhYTc4MTAwOSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM5NjQ0MiwgMi4xOTgzMDFdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzRkNGI1MDE2MWNhOTQ3YTU5MzQ4MmM1NDExYjBkZDcxID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2E4OTNhZGE1ODVkNjRjNTY4NTAxNjgzYThhMWQ3OTJmID0gJChgPGRpdiBpZD0iaHRtbF9hODkzYWRhNTg1ZDY0YzU2ODUwMTY4M2E4YTFkNzkyZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNGQ0YjUwMTYxY2E5NDdhNTkzNDgyYzU0MTFiMGRkNzEuc2V0Q29udGVudChodG1sX2E4OTNhZGE1ODVkNjRjNTY4NTAxNjgzYThhMWQ3OTJmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzViYjBlMDhmNGMzNzRmNWVhNTU4ZTdmMGFhNzgxMDA5LmJpbmRQb3B1cChwb3B1cF80ZDRiNTAxNjFjYTk0N2E1OTM0ODJjNTQxMWIwZGQ3MSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNTQwMjFkZmE4ZTQwNDk1MWJjZDRlMjNlM2RlZGNjZTkgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zOTcyOTYwMDAwMDAwMDQsIDIuMjA2MjNdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2QwN2U0MmM1ZjVkNzQxYzY5YjYwYmM2Yzk5YzRlMjdiID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2NiN2E3YzUxYTllZTQ0Mzc5YjE1ZmJhNzNhYTAyMTdlID0gJChgPGRpdiBpZD0iaHRtbF9jYjdhN2M1MWE5ZWU0NDM3OWIxNWZiYTczYWEwMjE3ZSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZDA3ZTQyYzVmNWQ3NDFjNjliNjBiYzZjOTljNGUyN2Iuc2V0Q29udGVudChodG1sX2NiN2E3YzUxYTllZTQ0Mzc5YjE1ZmJhNzNhYTAyMTdlKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzU0MDIxZGZhOGU0MDQ5NTFiY2Q0ZTIzZTNkZWRjY2U5LmJpbmRQb3B1cChwb3B1cF9kMDdlNDJjNWY1ZDc0MWM2OWI2MGJjNmM5OWM0ZTI3YikKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfY2VkODU0YTEwNDQ1NDczN2JlNWU5MmVhM2E1YTRjMGUgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MTQxODgsIDIuMjAxNTY3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kYTM3YTdlYzJiYWM0NDZjYTExNmE1MDViNmZlMzhhZCA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9hODdiZTNiODMwMWU0N2Q1YTEwY2UwMDY3YjZjMzI4OCA9ICQoYDxkaXYgaWQ9Imh0bWxfYTg3YmUzYjgzMDFlNDdkNWExMGNlMDA2N2I2YzMyODgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2RhMzdhN2VjMmJhYzQ0NmNhMTE2YTUwNWI2ZmUzOGFkLnNldENvbnRlbnQoaHRtbF9hODdiZTNiODMwMWU0N2Q1YTEwY2UwMDY3YjZjMzI4OCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9jZWQ4NTRhMTA0NDU0NzM3YmU1ZTkyZWEzYTVhNGMwZS5iaW5kUG9wdXAocG9wdXBfZGEzN2E3ZWMyYmFjNDQ2Y2ExMTZhNTA1YjZmZTM4YWQpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2QyNjZkY2RmNzk3YzQyODNhYTBmMWRiZWFlNTE3M2M5ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzk5ODMyLCAyLjIwMDU4N10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZWRhZWUyYmRmODAzNDY1NmJlY2UzNDE5Njg4YjhlNzcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZjUwNzk0YTVhM2FjNDU2MTllZDgzYzMyMWU0YjUxM2MgPSAkKGA8ZGl2IGlkPSJodG1sX2Y1MDc5NGE1YTNhYzQ1NjE5ZWQ4M2MzMjFlNGI1MTNjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9lZGFlZTJiZGY4MDM0NjU2YmVjZTM0MTk2ODhiOGU3Ny5zZXRDb250ZW50KGh0bWxfZjUwNzk0YTVhM2FjNDU2MTllZDgzYzMyMWU0YjUxM2MpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfZDI2NmRjZGY3OTdjNDI4M2FhMGYxZGJlYWU1MTczYzkuYmluZFBvcHVwKHBvcHVwX2VkYWVlMmJkZjgwMzQ2NTZiZWNlMzQxOTY4OGI4ZTc3KQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9kZDFmMzYzZDNmYzc0ZDY1YmMyNmJjMzEwODY1MWE3YSA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM5NzM5LCAyLjE5MDQxNTAwMDAwMDAwMDJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzE0N2RjZGJmYjliMzQ2NzE4NjBlZTBkNzQ2NmEzMjgyID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzg1NjgyMjkyYjcwZjRhMDM5NTg1OWIwNTMzOTQyNmQ1ID0gJChgPGRpdiBpZD0iaHRtbF84NTY4MjI5MmI3MGY0YTAzOTU4NTliMDUzMzk0MjZkNSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMTQ3ZGNkYmZiOWIzNDY3MTg2MGVlMGQ3NDY2YTMyODIuc2V0Q29udGVudChodG1sXzg1NjgyMjkyYjcwZjRhMDM5NTg1OWIwNTMzOTQyNmQ1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2RkMWYzNjNkM2ZjNzRkNjViYzI2YmMzMTA4NjUxYTdhLmJpbmRQb3B1cChwb3B1cF8xNDdkY2RiZmI5YjM0NjcxODYwZWUwZDc0NjZhMzI4MikKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZjc5YzVlYjEzMDdiNDkzYWJjYjI0ZjFkZGU3YTViMWYgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MDM0NzIsIDIuMjE0NTg4XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85NTYwNTVmNDllODQ0NzZkYjlkNjYwYTAwNGU3MTQzZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8yYTc2YTMyNWJiZTQ0MGZiODRjOGQwMDI5MGI5ZjYwZiA9ICQoYDxkaXYgaWQ9Imh0bWxfMmE3NmEzMjViYmU0NDBmYjg0YzhkMDAyOTBiOWY2MGYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzk1NjA1NWY0OWU4NDQ3NmRiOWQ2NjBhMDA0ZTcxNDNmLnNldENvbnRlbnQoaHRtbF8yYTc2YTMyNWJiZTQ0MGZiODRjOGQwMDI5MGI5ZjYwZik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9mNzljNWViMTMwN2I0OTNhYmNiMjRmMWRkZTdhNWIxZi5iaW5kUG9wdXAocG9wdXBfOTU2MDU1ZjQ5ZTg0NDc2ZGI5ZDY2MGEwMDRlNzE0M2YpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzc2NTM3YjA2YjZhZTQ3MGM4NmFhZmEyOWUwMzUwNGI5ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzc0OTcxLCAyLjE3MDAwM10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOGU3Y2Y5NWQyMDYwNGE2NzhjYTVjMjIwZDYwMjhkZTggPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZDU1YmVlODZhMDU1NDFkZGIzY2ViNzM0OGFhYjQwMzYgPSAkKGA8ZGl2IGlkPSJodG1sX2Q1NWJlZTg2YTA1NTQxZGRiM2NlYjczNDhhYWI0MDM2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF84ZTdjZjk1ZDIwNjA0YTY3OGNhNWMyMjBkNjAyOGRlOC5zZXRDb250ZW50KGh0bWxfZDU1YmVlODZhMDU1NDFkZGIzY2ViNzM0OGFhYjQwMzYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNzY1MzdiMDZiNmFlNDcwYzg2YWFmYTI5ZTAzNTA0YjkuYmluZFBvcHVwKHBvcHVwXzhlN2NmOTVkMjA2MDRhNjc4Y2E1YzIyMGQ2MDI4ZGU4KQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8zYTljYWRkM2U5ZTE0N2NhYjUxYThjZGFiMDdiNmEyNCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM3MDgyMiwgMi4xNzUwMzldLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzY4ZGIxMDdiMWFhYjQ3MDlhNTEwMGU4M2Y4YmU5MzdkID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzZmZjAwMmFkYWIzMzQ3MWViNWMxYjIxMzViYTU5ZDY3ID0gJChgPGRpdiBpZD0iaHRtbF82ZmYwMDJhZGFiMzM0NzFlYjVjMWIyMTM1YmE1OWQ2NyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNjhkYjEwN2IxYWFiNDcwOWE1MTAwZTgzZjhiZTkzN2Quc2V0Q29udGVudChodG1sXzZmZjAwMmFkYWIzMzQ3MWViNWMxYjIxMzViYTU5ZDY3KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzNhOWNhZGQzZTllMTQ3Y2FiNTFhOGNkYWIwN2I2YTI0LmJpbmRQb3B1cChwb3B1cF82OGRiMTA3YjFhYWI0NzA5YTUxMDBlODNmOGJlOTM3ZCkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMGNkOTE4YzJmNTgzNDEzZjg1OTY5YTA3NTUwMDlhNTAgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zODM5MjUsIDIuMTQ3MTY2XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82MDg5MTBiMzQxOWI0YWM4YTZlZWFhNWE2YzczODc4OCA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9lODMxNzdhNmFmYzQ0OWM0YTFkZTA1NDVhZmY1NmNkMCA9ICQoYDxkaXYgaWQ9Imh0bWxfZTgzMTc3YTZhZmM0NDljNGExZGUwNTQ1YWZmNTZjZDAiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzYwODkxMGIzNDE5YjRhYzhhNmVlYWE1YTZjNzM4Nzg4LnNldENvbnRlbnQoaHRtbF9lODMxNzdhNmFmYzQ0OWM0YTFkZTA1NDVhZmY1NmNkMCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8wY2Q5MThjMmY1ODM0MTNmODU5NjlhMDc1NTAwOWE1MC5iaW5kUG9wdXAocG9wdXBfNjA4OTEwYjM0MTliNGFjOGE2ZWVhYTVhNmM3Mzg3ODgpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzU4YjNkMzM2NDY0NjQ2MTA4ODc2ODA5ODFlNDNkZWI4ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzk2NzE0LCAyLjE2MTE5N10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZmY3OWZjYjk2NjY1NGQwM2FjMDE5MjAwNzQ2Yjc0OTMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYTU1NWJlODJhMzYyNGU2NmE2NWUyNTAyOWY1MzdlNGYgPSAkKGA8ZGl2IGlkPSJodG1sX2E1NTViZTgyYTM2MjRlNjZhNjVlMjUwMjlmNTM3ZTRmIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9mZjc5ZmNiOTY2NjU0ZDAzYWMwMTkyMDA3NDZiNzQ5My5zZXRDb250ZW50KGh0bWxfYTU1NWJlODJhMzYyNGU2NmE2NWUyNTAyOWY1MzdlNGYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfNThiM2QzMzY0NjQ2NDYxMDg4NzY4MDk4MWU0M2RlYjguYmluZFBvcHVwKHBvcHVwX2ZmNzlmY2I5NjY2NTRkMDNhYzAxOTIwMDc0NmI3NDkzKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8wZjdjZmVlMGYzMzI0MGIyYTY4NTM0YjVhOWNjMDg1MyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM4Mjk4NywgMi4xNTk3MDIwMDAwMDAwMDAyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8yMzlhNmZmY2Q4YWQ0ZWUwOGUwNTZhMGJiM2U5NjQ4ZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84YjZiNmUzNWQ1MGE0YTA0YjVmZTgzOTMyNTgxNzdhMyA9ICQoYDxkaXYgaWQ9Imh0bWxfOGI2YjZlMzVkNTBhNGEwNGI1ZmU4MzkzMjU4MTc3YTMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzIzOWE2ZmZjZDhhZDRlZTA4ZTA1NmEwYmIzZTk2NDhmLnNldENvbnRlbnQoaHRtbF84YjZiNmUzNWQ1MGE0YTA0YjVmZTgzOTMyNTgxNzdhMyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8wZjdjZmVlMGYzMzI0MGIyYTY4NTM0YjVhOWNjMDg1My5iaW5kUG9wdXAocG9wdXBfMjM5YTZmZmNkOGFkNGVlMDhlMDU2YTBiYjNlOTY0OGYpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzhiNDdiMjU3YWE3OTRhMWNhZjc3Y2Y5ZTJmMTY0ZjMwID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzkwNjQyLCAyLjE2OTg5Nl0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYzk0NWNlYjllNWI1NGY3YTk2NDNkYzM3NTg1MDZiZjYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNzQ2YTMwOTUyZjc5NDQ2NGI1Y2M4NGJjYTM3MzY4ZjAgPSAkKGA8ZGl2IGlkPSJodG1sXzc0NmEzMDk1MmY3OTQ0NjRiNWNjODRiY2EzNzM2OGYwIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jOTQ1Y2ViOWU1YjU0ZjdhOTY0M2RjMzc1ODUwNmJmNi5zZXRDb250ZW50KGh0bWxfNzQ2YTMwOTUyZjc5NDQ2NGI1Y2M4NGJjYTM3MzY4ZjApOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfOGI0N2IyNTdhYTc5NGExY2FmNzdjZjllMmYxNjRmMzAuYmluZFBvcHVwKHBvcHVwX2M5NDVjZWI5ZTViNTRmN2E5NjQzZGMzNzU4NTA2YmY2KQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl81NDNjZDhjNmQ3ZTc0ZmQ1YTZmNTM5ODhjYTBjMzQxNyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM5MTIyNywgMi4xNjkyODJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzBhMjM2YmRjYTUwYjQwNGZhMjFmYjk0Yzg0YjE4MjgxID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzUzYTA1YzBjNmNiNjRiYzM5NTYxMDMyMWEyMjlkZDIzID0gJChgPGRpdiBpZD0iaHRtbF81M2EwNWMwYzZjYjY0YmMzOTU2MTAzMjFhMjI5ZGQyMyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMGEyMzZiZGNhNTBiNDA0ZmEyMWZiOTRjODRiMTgyODEuc2V0Q29udGVudChodG1sXzUzYTA1YzBjNmNiNjRiYzM5NTYxMDMyMWEyMjlkZDIzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzU0M2NkOGM2ZDdlNzRmZDVhNmY1Mzk4OGNhMGMzNDE3LmJpbmRQb3B1cChwb3B1cF8wYTIzNmJkY2E1MGI0MDRmYTIxZmI5NGM4NGIxODI4MSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMTBkNDM3NzQ2YjdlNGExODg4ZTBiM2QzNzc5Mzc0NDAgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MDA4NzcsIDIuMTgzNTFdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzc5ZGYxMmY3MmU2NTQwNjRiMTMxNDc4ZWFlMjFmZDY2ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2NjNDFhOTYwNGI4OTRmMjNhNWU5ZWVkMDkxMGVmODVlID0gJChgPGRpdiBpZD0iaHRtbF9jYzQxYTk2MDRiODk0ZjIzYTVlOWVlZDA5MTBlZjg1ZSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNzlkZjEyZjcyZTY1NDA2NGIxMzE0NzhlYWUyMWZkNjYuc2V0Q29udGVudChodG1sX2NjNDFhOTYwNGI4OTRmMjNhNWU5ZWVkMDkxMGVmODVlKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzEwZDQzNzc0NmI3ZTRhMTg4OGUwYjNkMzc3OTM3NDQwLmJpbmRQb3B1cChwb3B1cF83OWRmMTJmNzJlNjU0MDY0YjEzMTQ3OGVhZTIxZmQ2NikKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfYTNlNjJjMjIzZDY5NDFhOWEzYTkzYmVlMmY3NmNlYjQgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MDI3MzgsIDIuMTc4OTQ1XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85ZWM3YjM1MjBmNTM0MzA4YTE0Y2ExOTA1MTVkZWIzNSA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9iMzAxZmQwNmEwZjE0YjZiYjc5NzIyOGM3NGNjYWViZSA9ICQoYDxkaXYgaWQ9Imh0bWxfYjMwMWZkMDZhMGYxNGI2YmI3OTcyMjhjNzRjY2FlYmUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzllYzdiMzUyMGY1MzQzMDhhMTRjYTE5MDUxNWRlYjM1LnNldENvbnRlbnQoaHRtbF9iMzAxZmQwNmEwZjE0YjZiYjc5NzIyOGM3NGNjYWViZSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9hM2U2MmMyMjNkNjk0MWE5YTNhOTNiZWUyZjc2Y2ViNC5iaW5kUG9wdXAocG9wdXBfOWVjN2IzNTIwZjUzNDMwOGExNGNhMTkwNTE1ZGViMzUpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2M0NzMzNjBkNTk1ZjQ2NTY4NjIyNDAxNTM0NDBmMzdmID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuMzcxNDMxLCAyLjE2MDIzN10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYWRkNjQyMTJiZGUxNDkwZGIzYWVlYWZjODllNzk2MzYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYWMzYzRkMzM5ZDI3NGFiNWJmOTc2NDE5NTg0NzRlODcgPSAkKGA8ZGl2IGlkPSJodG1sX2FjM2M0ZDMzOWQyNzRhYjViZjk3NjQxOTU4NDc0ZTg3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hZGQ2NDIxMmJkZTE0OTBkYjNhZWVhZmM4OWU3OTYzNi5zZXRDb250ZW50KGh0bWxfYWMzYzRkMzM5ZDI3NGFiNWJmOTc2NDE5NTg0NzRlODcpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYzQ3MzM2MGQ1OTVmNDY1Njg2MjI0MDE1MzQ0MGYzN2YuYmluZFBvcHVwKHBvcHVwX2FkZDY0MjEyYmRlMTQ5MGRiM2FlZWFmYzg5ZTc5NjM2KQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9jZDNhMWUwZTQ2MzE0MTc1Yjg1ZjI4M2YzYWMwZTBhNCA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM4MDY5LCAyLjEyNTU1M10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYjZkNTQ5N2IyZTM2NGY4ZjlhYWE1NjU4YjE0NjIxZWUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZGNiYzFkZTZkMWFmNDFkOWJiMDQ3NWNiOTFiYjQ5ZDAgPSAkKGA8ZGl2IGlkPSJodG1sX2RjYmMxZGU2ZDFhZjQxZDliYjA0NzVjYjkxYmI0OWQwIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iNmQ1NDk3YjJlMzY0ZjhmOWFhYTU2NThiMTQ2MjFlZS5zZXRDb250ZW50KGh0bWxfZGNiYzFkZTZkMWFmNDFkOWJiMDQ3NWNiOTFiYjQ5ZDApOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfY2QzYTFlMGU0NjMxNDE3NWI4NWYyODNmM2FjMGUwYTQuYmluZFBvcHVwKHBvcHVwX2I2ZDU0OTdiMmUzNjRmOGY5YWFhNTY1OGIxNDYyMWVlKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9iMjlmZjhiMzhiM2M0MGEwODU4ZTcxOGU4ZWU4YzA5YiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjM4MzAyOSwgMi4xMDY5MDJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzk1YmMwZmRjMWI1NjQ0N2Y5N2JhYTJhMDVjYWE5MWE1ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2ZiZGM0ZTE1MjljMjQ0NzI4YjgyZDI1ZWMzNjQ4NDkzID0gJChgPGRpdiBpZD0iaHRtbF9mYmRjNGUxNTI5YzI0NDcyOGI4MmQyNWVjMzY0ODQ5MyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+NDwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOTViYzBmZGMxYjU2NDQ3Zjk3YmFhMmEwNWNhYTkxYTUuc2V0Q29udGVudChodG1sX2ZiZGM0ZTE1MjljMjQ0NzI4YjgyZDI1ZWMzNjQ4NDkzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2IyOWZmOGIzOGIzYzQwYTA4NThlNzE4ZThlZThjMDliLmJpbmRQb3B1cChwb3B1cF85NWJjMGZkYzFiNTY0NDdmOTdiYWEyYTA1Y2FhOTFhNSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfZWEwZDA3ZTY4ZDUxNDc2ZGIwN2E0NzZlZjg0ZTg3ZTIgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS4zODk5NzIsIDIuMTI2MjA4XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84MmJiODM1MzAwMTA0ODc5YjkyOWU2NmRlYmM0YmRiNyA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF80ZGIzMjE5NjU2NGY0Yzc0OTZkOWMyMWZkYTA1M2YwNiA9ICQoYDxkaXYgaWQ9Imh0bWxfNGRiMzIxOTY1NjRmNGM3NDk2ZDljMjFmZGEwNTNmMDYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzgyYmI4MzUzMDAxMDQ4NzliOTI5ZTY2ZGViYzRiZGI3LnNldENvbnRlbnQoaHRtbF80ZGIzMjE5NjU2NGY0Yzc0OTZkOWMyMWZkYTA1M2YwNik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl9lYTBkMDdlNjhkNTE0NzZkYjA3YTQ3NmVmODRlODdlMi5iaW5kUG9wdXAocG9wdXBfODJiYjgzNTMwMDEwNDg3OWI5MjllNjZkZWJjNGJkYjcpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyX2E4ZTQ3ODRmYjk1ZTQ3MmQ5YjVlNWVlMWY1Nzg0MjY2ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuNDE2MjQxLCAyLjEzNjE4N10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZmFmNGYxYTQ4N2JkNGYyNDhkYWQxMmZjMTg1NjBlNGIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYmFkZmU3ZGUxNzY2NDkzM2E2YmI0YzA5NWVmOGRmZDYgPSAkKGA8ZGl2IGlkPSJodG1sX2JhZGZlN2RlMTc2NjQ5MzNhNmJiNGMwOTVlZjhkZmQ2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9mYWY0ZjFhNDg3YmQ0ZjI0OGRhZDEyZmMxODU2MGU0Yi5zZXRDb250ZW50KGh0bWxfYmFkZmU3ZGUxNzY2NDkzM2E2YmI0YzA5NWVmOGRmZDYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfYThlNDc4NGZiOTVlNDcyZDliNWU1ZWUxZjU3ODQyNjYuYmluZFBvcHVwKHBvcHVwX2ZhZjRmMWE0ODdiZDRmMjQ4ZGFkMTJmYzE4NTYwZTRiKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl80ZGQzOGE5N2E5YWY0ZDI1OThlOWRkM2JkMzFiNzkwMiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjQyNTEyNCwgMi4xNTE4MzJdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzBjYzdmNmExZjgyMDRkZjZiODUxZTkwZjE1NmUzM2FlID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2E5ZGI2MWNhODQ4NzRmZGE5Y2VkNjQ5ZjJhYTFhMzRhID0gJChgPGRpdiBpZD0iaHRtbF9hOWRiNjFjYTg0ODc0ZmRhOWNlZDY0OWYyYWExYTM0YSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMGNjN2Y2YTFmODIwNGRmNmI4NTFlOTBmMTU2ZTMzYWUuc2V0Q29udGVudChodG1sX2E5ZGI2MWNhODQ4NzRmZGE5Y2VkNjQ5ZjJhYTFhMzRhKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzRkZDM4YTk3YTlhZjRkMjU5OGU5ZGQzYmQzMWI3OTAyLmJpbmRQb3B1cChwb3B1cF8wY2M3ZjZhMWY4MjA0ZGY2Yjg1MWU5MGYxNTZlMzNhZSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfNDFiZTlkYmQzZmM5NGJhMmFiNzcwNzI0ODA1YmJjNzkgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MDcyMjYsIDIuMTYxMzYyXSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8wOWQyZGE1ZWYyN2U0ZjExODAwMTdlODYwMWY0OTI3ZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84NzdjN2RhMmFkNjI0MjU1OWIxMTBkY2FkYWFjZGUxNSA9ICQoYDxkaXYgaWQ9Imh0bWxfODc3YzdkYTJhZDYyNDI1NTliMTEwZGNhZGFhY2RlMTUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjI8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzA5ZDJkYTVlZjI3ZTRmMTE4MDAxN2U4NjAxZjQ5MjdmLnNldENvbnRlbnQoaHRtbF84NzdjN2RhMmFkNjI0MjU1OWIxMTBkY2FkYWFjZGUxNSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl80MWJlOWRiZDNmYzk0YmEyYWI3NzA3MjQ4MDViYmM3OS5iaW5kUG9wdXAocG9wdXBfMDlkMmRhNWVmMjdlNGYxMTgwMDE3ZTg2MDFmNDkyN2YpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzdjMmZmMDJhODMzMjQ4MmViNGRkNTIzYWU2ZDlmZjA1ID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuNDM3NDY4LCAyLjE2NjUzN10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfM2RiYWE5NDhlMGRjNDYyNjk2N2NkODZkMWI1MTE1OWEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMjVmYzdjN2Q1MDk5NDFjNGE2ZDkzMGJhYTFhN2Y2ZTYgPSAkKGA8ZGl2IGlkPSJodG1sXzI1ZmM3YzdkNTA5OTQxYzRhNmQ5MzBiYWExYTdmNmU2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8zZGJhYTk0OGUwZGM0NjI2OTY3Y2Q4NmQxYjUxMTU5YS5zZXRDb250ZW50KGh0bWxfMjVmYzdjN2Q1MDk5NDFjNGE2ZDkzMGJhYTFhN2Y2ZTYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfN2MyZmYwMmE4MzMyNDgyZWI0ZGQ1MjNhZTZkOWZmMDUuYmluZFBvcHVwKHBvcHVwXzNkYmFhOTQ4ZTBkYzQ2MjY5NjdjZDg2ZDFiNTExNTlhKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl8zY2QyZjIxYTgyMzk0MzZhODI2MWMxOWNmZTJlYjlmNyA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjQ0MzMyLCAyLjE3MTY1OV0sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYzVhNTM5NjZmYWJkNDFmZGFjNTFhYzA3MWIxNGU5N2IgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfN2Y4MDdlYTgxYjMwNGY4MDgxMjA3MTM2YTEwMGY0YTkgPSAkKGA8ZGl2IGlkPSJodG1sXzdmODA3ZWE4MWIzMDRmODA4MTIwNzEzNmExMDBmNGE5IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4yPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jNWE1Mzk2NmZhYmQ0MWZkYWM1MWFjMDcxYjE0ZTk3Yi5zZXRDb250ZW50KGh0bWxfN2Y4MDdlYTgxYjMwNGY4MDgxMjA3MTM2YTEwMGY0YTkpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfM2NkMmYyMWE4MjM5NDM2YTgyNjFjMTljZmUyZWI5ZjcuYmluZFBvcHVwKHBvcHVwX2M1YTUzOTY2ZmFiZDQxZmRhYzUxYWMwNzFiMTRlOTdiKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl9jNmU1ZWFmM2E1NDY0YTQyYTliN2YzNjg2ZWQxNTUzYiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjQzMjk0OSwgMi4xNzM1MzFdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2YwYWZhMTBlN2ViNzRhYmM5ODM5NjZmZTM4NzM5OTNmID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzI2OTM0OWM3NGU4ZTQyZjliNjBlMmFmNTdkMDc2ODIxID0gJChgPGRpdiBpZD0iaHRtbF8yNjkzNDljNzRlOGU0MmY5YjYwZTJhZjU3ZDA3NjgyMSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZjBhZmExMGU3ZWI3NGFiYzk4Mzk2NmZlMzg3Mzk5M2Yuc2V0Q29udGVudChodG1sXzI2OTM0OWM3NGU4ZTQyZjliNjBlMmFmNTdkMDc2ODIxKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyX2M2ZTVlYWYzYTU0NjRhNDJhOWI3ZjM2ODZlZDE1NTNiLmJpbmRQb3B1cChwb3B1cF9mMGFmYTEwZTdlYjc0YWJjOTgzOTY2ZmUzODczOTkzZikKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIGNpcmNsZV9tYXJrZXJfMGFjMmIyM2QxNWNiNDQ0MDk4MTFjMTA2OGUwNTFmZjQgPSBMLmNpcmNsZU1hcmtlcigKICAgICAgICAgICAgICAgIFs0MS40MzUyNTgwMDAwMDAwMDUsIDIuMTkyMTI3XSwKICAgICAgICAgICAgICAgIHsKICAiYnViYmxpbmdNb3VzZUV2ZW50cyI6IHRydWUsCiAgImNvbG9yIjogInJlZCIsCiAgImRhc2hBcnJheSI6IG51bGwsCiAgImRhc2hPZmZzZXQiOiBudWxsLAogICJmaWxsIjogdHJ1ZSwKICAiZmlsbENvbG9yIjogImRhcmtyZWQiLAogICJmaWxsT3BhY2l0eSI6IDAuNiwKICAiZmlsbFJ1bGUiOiAiZXZlbm9kZCIsCiAgImxpbmVDYXAiOiAicm91bmQiLAogICJsaW5lSm9pbiI6ICJyb3VuZCIsCiAgIm9wYWNpdHkiOiAxLjAsCiAgInJhZGl1cyI6IDMsCiAgInN0cm9rZSI6IHRydWUsCiAgIndlaWdodCI6IDMKfQogICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgLmFkZFRvKG1hcF8zYzgwN2UyZmQ0MDc0ZWVjYTQ1NzM1YThlZGE4NWFjZCk7CiAgICAgICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82YWRhOTY5MDFiOGQ0Y2ZkODM4NDQyZjMwNGQ1N2Y5MCA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9hMmEwMjU3MDMwNzA0Y2EwODJmYzFkZjk0NGE0Y2VkZSA9ICQoYDxkaXYgaWQ9Imh0bWxfYTJhMDI1NzAzMDcwNGNhMDgyZmMxZGY5NDRhNGNlZGUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzZhZGE5NjkwMWI4ZDRjZmQ4Mzg0NDJmMzA0ZDU3ZjkwLnNldENvbnRlbnQoaHRtbF9hMmEwMjU3MDMwNzA0Y2EwODJmYzFkZjk0NGE0Y2VkZSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgY2lyY2xlX21hcmtlcl8wYWMyYjIzZDE1Y2I0NDQwOTgxMWMxMDY4ZTA1MWZmNC5iaW5kUG9wdXAocG9wdXBfNmFkYTk2OTAxYjhkNGNmZDgzODQ0MmYzMDRkNTdmOTApCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBjaXJjbGVfbWFya2VyXzA2NGY1ODI2MGUyYTQ3YzBiZDNlNzViYmI5ZTRmODliID0gTC5jaXJjbGVNYXJrZXIoCiAgICAgICAgICAgICAgICBbNDEuNDQwNDMsIDIuMTg2Njk1MDAwMDAwMDAwM10sCiAgICAgICAgICAgICAgICB7CiAgImJ1YmJsaW5nTW91c2VFdmVudHMiOiB0cnVlLAogICJjb2xvciI6ICJyZWQiLAogICJkYXNoQXJyYXkiOiBudWxsLAogICJkYXNoT2Zmc2V0IjogbnVsbCwKICAiZmlsbCI6IHRydWUsCiAgImZpbGxDb2xvciI6ICJkYXJrcmVkIiwKICAiZmlsbE9wYWNpdHkiOiAwLjYsCiAgImZpbGxSdWxlIjogImV2ZW5vZGQiLAogICJsaW5lQ2FwIjogInJvdW5kIiwKICAibGluZUpvaW4iOiAicm91bmQiLAogICJvcGFjaXR5IjogMS4wLAogICJyYWRpdXMiOiAzLAogICJzdHJva2UiOiB0cnVlLAogICJ3ZWlnaHQiOiAzCn0KICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIC5hZGRUbyhtYXBfM2M4MDdlMmZkNDA3NGVlY2E0NTczNWE4ZWRhODVhY2QpOwogICAgICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNmViMDUzNDVlZDU0NDZhMGE5ZDg0M2U4ZWRlMjUxY2EgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYmZiZmQ1YTJiODhjNGNkY2JhYTRhZTk5MDIwODIzOWUgPSAkKGA8ZGl2IGlkPSJodG1sX2JmYmZkNWEyYjg4YzRjZGNiYWE0YWU5OTAyMDgyMzllIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF82ZWIwNTM0NWVkNTQ0NmEwYTlkODQzZThlZGUyNTFjYS5zZXRDb250ZW50KGh0bWxfYmZiZmQ1YTJiODhjNGNkY2JhYTRhZTk5MDIwODIzOWUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIGNpcmNsZV9tYXJrZXJfMDY0ZjU4MjYwZTJhNDdjMGJkM2U3NWJiYjllNGY4OWIuYmluZFBvcHVwKHBvcHVwXzZlYjA1MzQ1ZWQ1NDQ2YTBhOWQ4NDNlOGVkZTI1MWNhKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgY2lyY2xlX21hcmtlcl82MDU4ZGU5ZmFlMjQ0N2EyYWUxMmVkNWI3OGQ0N2RmYiA9IEwuY2lyY2xlTWFya2VyKAogICAgICAgICAgICAgICAgWzQxLjQ0MzEzNywgMi4xOTI4MjFdLAogICAgICAgICAgICAgICAgewogICJidWJibGluZ01vdXNlRXZlbnRzIjogdHJ1ZSwKICAiY29sb3IiOiAicmVkIiwKICAiZGFzaEFycmF5IjogbnVsbCwKICAiZGFzaE9mZnNldCI6IG51bGwsCiAgImZpbGwiOiB0cnVlLAogICJmaWxsQ29sb3IiOiAiZGFya3JlZCIsCiAgImZpbGxPcGFjaXR5IjogMC42LAogICJmaWxsUnVsZSI6ICJldmVub2RkIiwKICAibGluZUNhcCI6ICJyb3VuZCIsCiAgImxpbmVKb2luIjogInJvdW5kIiwKICAib3BhY2l0eSI6IDEuMCwKICAicmFkaXVzIjogMywKICAic3Ryb2tlIjogdHJ1ZSwKICAid2VpZ2h0IjogMwp9CiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICAuYWRkVG8obWFwXzNjODA3ZTJmZDQwNzRlZWNhNDU3MzVhOGVkYTg1YWNkKTsKICAgICAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzVhZWE2M2YyZjQzYTQ3YTE4NzlmOTU5N2YzMDQ2OGNjID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzM5MzVlZGE3MmYzMjRiMDQ4YjJkMDc1MzQyNjAyOWY1ID0gJChgPGRpdiBpZD0iaHRtbF8zOTM1ZWRhNzJmMzI0YjA0OGIyZDA3NTM0MjYwMjlmNSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNWFlYTYzZjJmNDNhNDdhMTg3OWY5NTk3ZjMwNDY4Y2Muc2V0Q29udGVudChodG1sXzM5MzVlZGE3MmYzMjRiMDQ4YjJkMDc1MzQyNjAyOWY1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBjaXJjbGVfbWFya2VyXzYwNThkZTlmYWUyNDQ3YTJhZTEyZWQ1Yjc4ZDQ3ZGZiLmJpbmRQb3B1cChwb3B1cF81YWVhNjNmMmY0M2E0N2ExODc5Zjk1OTdmMzA0NjhjYykKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCjwvc2NyaXB0Pg==\" 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 0x7fafe4dcaa90>" | |
] | |
}, | |
"metadata": { | |
"tags": [] | |
}, | |
"execution_count": 39 | |
} | |
] | |
}, | |
{ | |
"cell_type": "code", | |
"metadata": { | |
"id": "pnQLQwH8JqJm", | |
"colab_type": "code", | |
"outputId": "f4a7a4ce-95f9-4223-e57f-529b5b6c47fc", | |
"colab": { | |
"base_uri": "https://localhost:8080/", | |
"height": 895 | |
} | |
}, | |
"source": [ | |
"from folium import plugins\n", | |
"\n", | |
"# Create a map object of the city of Barcelona\n", | |
"barcelona_map= folium.Map(location=[41.38879, 2.15899], zoom_start=12)\n", | |
"\n", | |
"# Instantiate a mark cluster object for the car accidents\n", | |
"accidents = plugins.MarkerCluster().add_to(barcelona_map)\n", | |
"\n", | |
"# Display only accidents where serious injuries where recorded\n", | |
"for lat, lng, label in zip(df.latitude, df.longitude, df.serious_injuries.astype(str)):\n", | |
" if label!='0':\n", | |
" folium.Marker(\n", | |
" location=[lat, lng],\n", | |
" icon=None,\n", | |
" popup=label,\n", | |
" ).add_to(accidents)\n", | |
"\n", | |
"# Display map\n", | |
"barcelona_map" | |
], | |
"execution_count": 40, | |
"outputs": [ | |
{ | |
"output_type": "execute_result", | |
"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+CjxoZWFkPiAgICAKICAgIDxtZXRhIGh0dHAtZXF1aXY9ImNvbnRlbnQtdHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PVVURi04IiAvPgogICAgPHNjcmlwdD5MX1BSRUZFUl9DQU5WQVM9ZmFsc2U7IExfTk9fVE9VQ0g9ZmFsc2U7IExfRElTQUJMRV8zRD1mYWxzZTs8L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS40LjAvZGlzdC9sZWFmbGV0LmpzIj48L3NjcmlwdD4KICAgIDxzY3JpcHQgc3JjPSJodHRwczovL2NvZGUuanF1ZXJ5LmNvbS9qcXVlcnktMS4xMi40Lm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvanMvYm9vdHN0cmFwLm1pbi5qcyI+PC9zY3JpcHQ+CiAgICA8c2NyaXB0IHNyYz0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvTGVhZmxldC5hd2Vzb21lLW1hcmtlcnMvMi4wLjIvbGVhZmxldC5hd2Vzb21lLW1hcmtlcnMuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2Nkbi5qc2RlbGl2ci5uZXQvbnBtL2xlYWZsZXRAMS40LjAvZGlzdC9sZWFmbGV0LmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL21heGNkbi5ib290c3RyYXBjZG4uY29tL2Jvb3RzdHJhcC8zLjIuMC9jc3MvYm9vdHN0cmFwLm1pbi5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9tYXhjZG4uYm9vdHN0cmFwY2RuLmNvbS9ib290c3RyYXAvMy4yLjAvY3NzL2Jvb3RzdHJhcC10aGVtZS5taW4uY3NzIi8+CiAgICA8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHBzOi8vbWF4Y2RuLmJvb3RzdHJhcGNkbi5jb20vZm9udC1hd2Vzb21lLzQuNi4zL2Nzcy9mb250LWF3ZXNvbWUubWluLmNzcyIvPgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9MZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy8yLjAuMi9sZWFmbGV0LmF3ZXNvbWUtbWFya2Vycy5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9yYXdjZG4uZ2l0aGFjay5jb20vcHl0aG9uLXZpc3VhbGl6YXRpb24vZm9saXVtL21hc3Rlci9mb2xpdW0vdGVtcGxhdGVzL2xlYWZsZXQuYXdlc29tZS5yb3RhdGUuY3NzIi8+CiAgICA8c3R5bGU+aHRtbCwgYm9keSB7d2lkdGg6IDEwMCU7aGVpZ2h0OiAxMDAlO21hcmdpbjogMDtwYWRkaW5nOiAwO308L3N0eWxlPgogICAgPHN0eWxlPiNtYXAge3Bvc2l0aW9uOmFic29sdXRlO3RvcDowO2JvdHRvbTowO3JpZ2h0OjA7bGVmdDowO308L3N0eWxlPgogICAgCiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLAogICAgICAgIGluaXRpYWwtc2NhbGU9MS4wLCBtYXhpbXVtLXNjYWxlPTEuMCwgdXNlci1zY2FsYWJsZT1ubyIgLz4KICAgIDxzdHlsZT4jbWFwXzlmM2YzYjVmYTNhYTQzNzViOGVmOThhOWZiZTVjNzcwIHsKICAgICAgICBwb3NpdGlvbjogcmVsYXRpdmU7CiAgICAgICAgd2lkdGg6IDEwMC4wJTsKICAgICAgICBoZWlnaHQ6IDEwMC4wJTsKICAgICAgICBsZWZ0OiAwLjAlOwogICAgICAgIHRvcDogMC4wJTsKICAgICAgICB9CiAgICA8L3N0eWxlPgogICAgPHNjcmlwdCBzcmM9Imh0dHBzOi8vY2RuanMuY2xvdWRmbGFyZS5jb20vYWpheC9saWJzL2xlYWZsZXQubWFya2VyY2x1c3Rlci8xLjEuMC9sZWFmbGV0Lm1hcmtlcmNsdXN0ZXIuanMiPjwvc2NyaXB0PgogICAgPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwczovL2NkbmpzLmNsb3VkZmxhcmUuY29tL2FqYXgvbGlicy9sZWFmbGV0Lm1hcmtlcmNsdXN0ZXIvMS4xLjAvTWFya2VyQ2x1c3Rlci5jc3MiLz4KICAgIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cHM6Ly9jZG5qcy5jbG91ZGZsYXJlLmNvbS9hamF4L2xpYnMvbGVhZmxldC5tYXJrZXJjbHVzdGVyLzEuMS4wL01hcmtlckNsdXN0ZXIuRGVmYXVsdC5jc3MiLz4KPC9oZWFkPgo8Ym9keT4gICAgCiAgICAKICAgIDxkaXYgY2xhc3M9ImZvbGl1bS1tYXAiIGlkPSJtYXBfOWYzZjNiNWZhM2FhNDM3NWI4ZWY5OGE5ZmJlNWM3NzAiID48L2Rpdj4KPC9ib2R5Pgo8c2NyaXB0PiAgICAKICAgIAogICAgCiAgICAgICAgdmFyIGJvdW5kcyA9IG51bGw7CiAgICAKCiAgICB2YXIgbWFwXzlmM2YzYjVmYTNhYTQzNzViOGVmOThhOWZiZTVjNzcwID0gTC5tYXAoCiAgICAgICAgJ21hcF85ZjNmM2I1ZmEzYWE0Mzc1YjhlZjk4YTlmYmU1Yzc3MCcsIHsKICAgICAgICBjZW50ZXI6IFs0MS4zODg3OSwgMi4xNTg5OV0sCiAgICAgICAgem9vbTogMTIsCiAgICAgICAgbWF4Qm91bmRzOiBib3VuZHMsCiAgICAgICAgbGF5ZXJzOiBbXSwKICAgICAgICB3b3JsZENvcHlKdW1wOiBmYWxzZSwKICAgICAgICBjcnM6IEwuQ1JTLkVQU0czODU3LAogICAgICAgIHpvb21Db250cm9sOiB0cnVlLAogICAgICAgIH0pOwoKCiAgICAKICAgIHZhciB0aWxlX2xheWVyXzgxMTJmZGIxYTljMjRkZDM5MmY3NDJjMGJiODQ5OGVhID0gTC50aWxlTGF5ZXIoCiAgICAgICAgJ2h0dHBzOi8ve3N9LnRpbGUub3BlbnN0cmVldG1hcC5vcmcve3p9L3t4fS97eX0ucG5nJywKICAgICAgICB7CiAgICAgICAgImF0dHJpYnV0aW9uIjogbnVsbCwKICAgICAgICAiZGV0ZWN0UmV0aW5hIjogZmFsc2UsCiAgICAgICAgIm1heE5hdGl2ZVpvb20iOiAxOCwKICAgICAgICAibWF4Wm9vbSI6IDE4LAogICAgICAgICJtaW5ab29tIjogMCwKICAgICAgICAibm9XcmFwIjogZmFsc2UsCiAgICAgICAgIm9wYWNpdHkiOiAxLAogICAgICAgICJzdWJkb21haW5zIjogImFiYyIsCiAgICAgICAgInRtcyI6IGZhbHNlCn0pLmFkZFRvKG1hcF85ZjNmM2I1ZmEzYWE0Mzc1YjhlZjk4YTlmYmU1Yzc3MCk7CiAgICAKICAgICAgICAgICAgdmFyIG1hcmtlcl9jbHVzdGVyXzFjYjNlM2FmNWJlNDQ4NjlhYWUzZGQ3ZmYyZjFhY2VlID0gTC5tYXJrZXJDbHVzdGVyR3JvdXAoe30pOwogICAgICAgICAgICBtYXBfOWYzZjNiNWZhM2FhNDM3NWI4ZWY5OGE5ZmJlNWM3NzAuYWRkTGF5ZXIobWFya2VyX2NsdXN0ZXJfMWNiM2UzYWY1YmU0NDg2OWFhZTNkZDdmZjJmMWFjZWUpOwogICAgICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfZGEzNzljNGJhNWQ2NDRhNzlhMWYwOWU4NWQ5ZTJmZmIgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQxLjQxMjU0NiwgMi4xNzYzMjRdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl8xY2IzZTNhZjViZTQ0ODY5YWFlM2RkN2ZmMmYxYWNlZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzRiYTM0NTc0Yjg1MDRlOGU4NWYzMWNhOWJkMDIyYjBkID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2EwOWM4MDE0NzBiMjRjZjBhYjgzNzg4ZGYzN2IxOTI1ID0gJChgPGRpdiBpZD0iaHRtbF9hMDljODAxNDcwYjI0Y2YwYWI4Mzc4OGRmMzdiMTkyNSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNGJhMzQ1NzRiODUwNGU4ZTg1ZjMxY2E5YmQwMjJiMGQuc2V0Q29udGVudChodG1sX2EwOWM4MDE0NzBiMjRjZjBhYjgzNzg4ZGYzN2IxOTI1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfZGEzNzljNGJhNWQ2NDRhNzlhMWYwOWU4NWQ5ZTJmZmIuYmluZFBvcHVwKHBvcHVwXzRiYTM0NTc0Yjg1MDRlOGU4NWYzMWNhOWJkMDIyYjBkKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfMTA5YTc3OGJlZjEzNDM3MjgwMjBmNzk2M2JlZmZkOWYgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQxLjQwNzc4NSwgMi4xODM0MDddLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl8xY2IzZTNhZjViZTQ0ODY5YWFlM2RkN2ZmMmYxYWNlZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzNkMDhhOTNlYjAxMzRiNTk4N2I1MGNjYjYwZGFjNGEzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2Y3NTliYzdmYjI3YjRhZjBiMTQxYzZhNzYzMDc5MjBiID0gJChgPGRpdiBpZD0iaHRtbF9mNzU5YmM3ZmIyN2I0YWYwYjE0MWM2YTc2MzA3OTIwYiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfM2QwOGE5M2ViMDEzNGI1OTg3YjUwY2NiNjBkYWM0YTMuc2V0Q29udGVudChodG1sX2Y3NTliYzdmYjI3YjRhZjBiMTQxYzZhNzYzMDc5MjBiKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfMTA5YTc3OGJlZjEzNDM3MjgwMjBmNzk2M2JlZmZkOWYuYmluZFBvcHVwKHBvcHVwXzNkMDhhOTNlYjAxMzRiNTk4N2I1MGNjYjYwZGFjNGEzKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfMzczMWFhNGY4NjlkNDJhZDgzZTliMTIzZGZjZTYzMzIgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQxLjQwOTcyOTk5OTk5OTk5NiwgMi4xODU4MTFdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl8xY2IzZTNhZjViZTQ0ODY5YWFlM2RkN2ZmMmYxYWNlZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzQ1NGU1ZTYwZWFiMTQzZDE5NzEzMTcyMzYxZmU1NDQ4ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzlhZTVmNGQ4Mjc3MTQ1MWRhMGY4ZTliMzczOTQ3ZWU4ID0gJChgPGRpdiBpZD0iaHRtbF85YWU1ZjRkODI3NzE0NTFkYTBmOGU5YjM3Mzk0N2VlOCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNDU0ZTVlNjBlYWIxNDNkMTk3MTMxNzIzNjFmZTU0NDguc2V0Q29udGVudChodG1sXzlhZTVmNGQ4Mjc3MTQ1MWRhMGY4ZTliMzczOTQ3ZWU4KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfMzczMWFhNGY4NjlkNDJhZDgzZTliMTIzZGZjZTYzMzIuYmluZFBvcHVwKHBvcHVwXzQ1NGU1ZTYwZWFiMTQzZDE5NzEzMTcyMzYxZmU1NDQ4KQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfNjIzZDkzN2UzYjNjNGNjZWJmNGNlMWJhYzY2YzFiMDQgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQxLjM4MTAxNTk5OTk5OTk5NSwgMi4xODE5NzQwMDAwMDAwMDAzXSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfMWNiM2UzYWY1YmU0NDg2OWFhZTNkZDdmZjJmMWFjZWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9mMzEyY2IyZTYxMDU0YzNjOGQ4N2Q5Y2Q3YjExM2QzZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9jOWI5ZDk4YTFiZWE0Y2JjOGI3MTA3ZTJkZjM2ZDE3NCA9ICQoYDxkaXYgaWQ9Imh0bWxfYzliOWQ5OGExYmVhNGNiYzhiNzEwN2UyZGYzNmQxNzQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2YzMTJjYjJlNjEwNTRjM2M4ZDg3ZDljZDdiMTEzZDNmLnNldENvbnRlbnQoaHRtbF9jOWI5ZDk4YTFiZWE0Y2JjOGI3MTA3ZTJkZjM2ZDE3NCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgbWFya2VyXzYyM2Q5MzdlM2IzYzRjY2ViZjRjZTFiYWM2NmMxYjA0LmJpbmRQb3B1cChwb3B1cF9mMzEyY2IyZTYxMDU0YzNjOGQ4N2Q5Y2Q3YjExM2QzZikKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzk1MTE0YjQ4NWFjYzQyMmU4OTYwYTQzYWUxNGJhYTdiID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0MS4zODQxOTIsIDIuMTYyODA5XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfMWNiM2UzYWY1YmU0NDg2OWFhZTNkZDdmZjJmMWFjZWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jNjU2N2NhZmQ3NTc0MDQxOGFhMjgzZTdkZDRiZTVjZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF80N2RkYTJiZjZlNjE0NGZmYTdmNjg5NzI3M2FkNjI1ZSA9ICQoYDxkaXYgaWQ9Imh0bWxfNDdkZGEyYmY2ZTYxNDRmZmE3ZjY4OTcyNzNhZDYyNWUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2M2NTY3Y2FmZDc1NzQwNDE4YWEyODNlN2RkNGJlNWNmLnNldENvbnRlbnQoaHRtbF80N2RkYTJiZjZlNjE0NGZmYTdmNjg5NzI3M2FkNjI1ZSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgbWFya2VyXzk1MTE0YjQ4NWFjYzQyMmU4OTYwYTQzYWUxNGJhYTdiLmJpbmRQb3B1cChwb3B1cF9jNjU2N2NhZmQ3NTc0MDQxOGFhMjgzZTdkZDRiZTVjZikKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzc0YjlhMGRlNmMzZTQ2OGFhN2IxYzc1MmFmYTkyYTEwID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0MS4zODg4MjIsIDIuMTY3MDA4XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfMWNiM2UzYWY1YmU0NDg2OWFhZTNkZDdmZjJmMWFjZWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8yNzJlNzllMzExM2Y0MWUwODMzZmFmMGQxZWQxNThiMiA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84MmM1NWUyYmQ0Mjk0ZDBjOGJhMTUyNDRiNDRlY2QyNiA9ICQoYDxkaXYgaWQ9Imh0bWxfODJjNTVlMmJkNDI5NGQwYzhiYTE1MjQ0YjQ0ZWNkMjYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzI3MmU3OWUzMTEzZjQxZTA4MzNmYWYwZDFlZDE1OGIyLnNldENvbnRlbnQoaHRtbF84MmM1NWUyYmQ0Mjk0ZDBjOGJhMTUyNDRiNDRlY2QyNik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgbWFya2VyXzc0YjlhMGRlNmMzZTQ2OGFhN2IxYzc1MmFmYTkyYTEwLmJpbmRQb3B1cChwb3B1cF8yNzJlNzllMzExM2Y0MWUwODMzZmFmMGQxZWQxNThiMikKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyX2Y4Y2YxMzFlYTA2MTQwMmNhZTU5OWMwNmI3YTQzZTRjID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0MS4zODY0NzcsIDIuMTU3MzM3XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfMWNiM2UzYWY1YmU0NDg2OWFhZTNkZDdmZjJmMWFjZWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jYzkxMDcyZDgyNzg0Nzc1ODk4MTE0Y2RkMDE1MTBjMiA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8wNzYxNDg3MzI1M2Q0ZGE4ODMxYjhmOWRlZmEyZTBmOCA9ICQoYDxkaXYgaWQ9Imh0bWxfMDc2MTQ4NzMyNTNkNGRhODgzMWI4ZjlkZWZhMmUwZjgiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2NjOTEwNzJkODI3ODQ3NzU4OTgxMTRjZGQwMTUxMGMyLnNldENvbnRlbnQoaHRtbF8wNzYxNDg3MzI1M2Q0ZGE4ODMxYjhmOWRlZmEyZTBmOCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgbWFya2VyX2Y4Y2YxMzFlYTA2MTQwMmNhZTU5OWMwNmI3YTQzZTRjLmJpbmRQb3B1cChwb3B1cF9jYzkxMDcyZDgyNzg0Nzc1ODk4MTE0Y2RkMDE1MTBjMikKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzBiNTFmNmM2MDg4MjRhMmQ5OWY4YzQwMDU3ZGJkY2QyID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0MS4zOTMzMTUsIDIuMTUyODIxXSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfMWNiM2UzYWY1YmU0NDg2OWFhZTNkZDdmZjJmMWFjZWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9iNWY1MzAyZDNiNmU0ZjA5OWYyNjg1ZWFjNjYyYzY2ZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8yY2VhZDMyZGZhYTE0OGU0OWRkYzhjM2I3YmUyZDUzNCA9ICQoYDxkaXYgaWQ9Imh0bWxfMmNlYWQzMmRmYWExNDhlNDlkZGM4YzNiN2JlMmQ1MzQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2I1ZjUzMDJkM2I2ZTRmMDk5ZjI2ODVlYWM2NjJjNjZmLnNldENvbnRlbnQoaHRtbF8yY2VhZDMyZGZhYTE0OGU0OWRkYzhjM2I3YmUyZDUzNCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgbWFya2VyXzBiNTFmNmM2MDg4MjRhMmQ5OWY4YzQwMDU3ZGJkY2QyLmJpbmRQb3B1cChwb3B1cF9iNWY1MzAyZDNiNmU0ZjA5OWYyNjg1ZWFjNjYyYzY2ZikKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyX2ZjMTdkYTU5MTA2YTRiOWVhN2I3N2UxOGQwNDZmN2Y4ID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0MS4zODU2MjI5OTk5OTk5OTUsIDIuMTUzOTQ3XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfMWNiM2UzYWY1YmU0NDg2OWFhZTNkZDdmZjJmMWFjZWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8zMWU2NmZlOWIxMzg0YjhkYjMwODEzZGUzYzBjZGEyMCA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9kZTViMjE0YzUxNzc0ZmJlODI4ZTM4ZTZiZjJjMWIxZCA9ICQoYDxkaXYgaWQ9Imh0bWxfZGU1YjIxNGM1MTc3NGZiZTgyOGUzOGU2YmYyYzFiMWQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzMxZTY2ZmU5YjEzODRiOGRiMzA4MTNkZTNjMGNkYTIwLnNldENvbnRlbnQoaHRtbF9kZTViMjE0YzUxNzc0ZmJlODI4ZTM4ZTZiZjJjMWIxZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgbWFya2VyX2ZjMTdkYTU5MTA2YTRiOWVhN2I3N2UxOGQwNDZmN2Y4LmJpbmRQb3B1cChwb3B1cF8zMWU2NmZlOWIxMzg0YjhkYjMwODEzZGUzYzBjZGEyMCkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzg0ZDAwMWI3NGQzYzRmODY4Yzg3NjNkMTVmZWY5ZmNmID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0MS4zOTUxOTQwMDAwMDAwMDQsIDIuMTc0NjEzXSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfMWNiM2UzYWY1YmU0NDg2OWFhZTNkZDdmZjJmMWFjZWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8xMTgxNDMwNmZkZTk0ODJhYTA0NzA5NGRhNWI1MDQ1MSA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8wNjhiYjU3ODQ0Njc0MTY2ODk1YjZlNDg5NmQwZTE3YSA9ICQoYDxkaXYgaWQ9Imh0bWxfMDY4YmI1Nzg0NDY3NDE2Njg5NWI2ZTQ4OTZkMGUxN2EiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzExODE0MzA2ZmRlOTQ4MmFhMDQ3MDk0ZGE1YjUwNDUxLnNldENvbnRlbnQoaHRtbF8wNjhiYjU3ODQ0Njc0MTY2ODk1YjZlNDg5NmQwZTE3YSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgbWFya2VyXzg0ZDAwMWI3NGQzYzRmODY4Yzg3NjNkMTVmZWY5ZmNmLmJpbmRQb3B1cChwb3B1cF8xMTgxNDMwNmZkZTk0ODJhYTA0NzA5NGRhNWI1MDQ1MSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyX2Y0MjJhOGM3YzVmZTQyN2U4NTM0N2RjMjg2NTMzNTAxID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0MS4zNTA3Nzg5OTk5OTk5OTYsIDIuMTQ5OTk5XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfMWNiM2UzYWY1YmU0NDg2OWFhZTNkZDdmZjJmMWFjZWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9mNGRmZWJkNmE1M2I0NTI5YmQzY2Y1MDY4YmRiZWQyZCA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF84ZjcxNjZlOGMyODI0YzIyOGE5ZDE0ZmQwMTU0ZWRiYyA9ICQoYDxkaXYgaWQ9Imh0bWxfOGY3MTY2ZThjMjgyNGMyMjhhOWQxNGZkMDE1NGVkYmMiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2Y0ZGZlYmQ2YTUzYjQ1MjliZDNjZjUwNjhiZGJlZDJkLnNldENvbnRlbnQoaHRtbF84ZjcxNjZlOGMyODI0YzIyOGE5ZDE0ZmQwMTU0ZWRiYyk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgbWFya2VyX2Y0MjJhOGM3YzVmZTQyN2U4NTM0N2RjMjg2NTMzNTAxLmJpbmRQb3B1cChwb3B1cF9mNGRmZWJkNmE1M2I0NTI5YmQzY2Y1MDY4YmRiZWQyZCkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzkwYWVkYmNiMWViODQ3MDc5ZWJkZTlhNWFjMTE5MmJiID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0MS4zNDU2MzMsIDIuMTQyMTkwMDAwMDAwMDAwM10sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzFjYjNlM2FmNWJlNDQ4NjlhYWUzZGQ3ZmYyZjFhY2VlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNGUxZTI3OWVkZTE1NDQ0ZmFkNDRhN2VkMGY2MWUzYTUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYjMzMDAxZWFhZDNmNDg3MGFiM2RiMDk4YTViNTI1ZmIgPSAkKGA8ZGl2IGlkPSJodG1sX2IzMzAwMWVhYWQzZjQ4NzBhYjNkYjA5OGE1YjUyNWZiIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80ZTFlMjc5ZWRlMTU0NDRmYWQ0NGE3ZWQwZjYxZTNhNS5zZXRDb250ZW50KGh0bWxfYjMzMDAxZWFhZDNmNDg3MGFiM2RiMDk4YTViNTI1ZmIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl85MGFlZGJjYjFlYjg0NzA3OWViZGU5YTVhYzExOTJiYi5iaW5kUG9wdXAocG9wdXBfNGUxZTI3OWVkZTE1NDQ0ZmFkNDRhN2VkMGY2MWUzYTUpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl84ZWUyNDkyMGZhZjE0MmViYmUwNGU4OGQ1NmZjY2IzZiA9IEwubWFya2VyKAogICAgICAgICAgICBbNDEuMzQ1NTUzLCAyLjEyODY3N10sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzFjYjNlM2FmNWJlNDQ4NjlhYWUzZGQ3ZmYyZjFhY2VlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZTMwNWU5MzFlMTlhNDFkZWIyMzliMTBhODBlNWMwMGYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNmY5ZWM4NWRiNTIxNDU4NWExN2M5NGIyYTcyOGM1YjUgPSAkKGA8ZGl2IGlkPSJodG1sXzZmOWVjODVkYjUyMTQ1ODVhMTdjOTRiMmE3MjhjNWI1IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9lMzA1ZTkzMWUxOWE0MWRlYjIzOWIxMGE4MGU1YzAwZi5zZXRDb250ZW50KGh0bWxfNmY5ZWM4NWRiNTIxNDU4NWExN2M5NGIyYTcyOGM1YjUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl84ZWUyNDkyMGZhZjE0MmViYmUwNGU4OGQ1NmZjY2IzZi5iaW5kUG9wdXAocG9wdXBfZTMwNWU5MzFlMTlhNDFkZWIyMzliMTBhODBlNWMwMGYpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl8wMTNkNWE2NWIyYTM0MWMxOWMyYjlmZDVlNGRlM2JjNSA9IEwubWFya2VyKAogICAgICAgICAgICBbNDEuMzkxMjY0LCAyLjEzNzA1NV0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzFjYjNlM2FmNWJlNDQ4NjlhYWUzZGQ3ZmYyZjFhY2VlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZTI0YThiNDM5Mjg0NGJjNjljYmM5NmUzYmRmYmE2NDYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYzgzMjE0NjhjOGRjNDRlNGI2ODMxODk2YzI1YWJhOTEgPSAkKGA8ZGl2IGlkPSJodG1sX2M4MzIxNDY4YzhkYzQ0ZTRiNjgzMTg5NmMyNWFiYTkxIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9lMjRhOGI0MzkyODQ0YmM2OWNiYzk2ZTNiZGZiYTY0Ni5zZXRDb250ZW50KGh0bWxfYzgzMjE0NjhjOGRjNDRlNGI2ODMxODk2YzI1YWJhOTEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl8wMTNkNWE2NWIyYTM0MWMxOWMyYjlmZDVlNGRlM2JjNS5iaW5kUG9wdXAocG9wdXBfZTI0YThiNDM5Mjg0NGJjNjljYmM5NmUzYmRmYmE2NDYpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl8zOGU1ZWI2M2E4MDM0ZTMyYTQ5NDk2ZWM4ODg3MTBmNyA9IEwubWFya2VyKAogICAgICAgICAgICBbNDEuMzk2MTgyLCAyLjExNDQwMV0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzFjYjNlM2FmNWJlNDQ4NjlhYWUzZGQ3ZmYyZjFhY2VlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOWY1ODdhNWM3OGRlNDBmNzlhMWE5M2IwZjU2Yzc5ODcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNTUyNDQ3ZTNjZjJjNDdiZWI0M2NkNDVlNWU3MzM2ZjQgPSAkKGA8ZGl2IGlkPSJodG1sXzU1MjQ0N2UzY2YyYzQ3YmViNDNjZDQ1ZTVlNzMzNmY0IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF85ZjU4N2E1Yzc4ZGU0MGY3OWExYTkzYjBmNTZjNzk4Ny5zZXRDb250ZW50KGh0bWxfNTUyNDQ3ZTNjZjJjNDdiZWI0M2NkNDVlNWU3MzM2ZjQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl8zOGU1ZWI2M2E4MDM0ZTMyYTQ5NDk2ZWM4ODg3MTBmNy5iaW5kUG9wdXAocG9wdXBfOWY1ODdhNWM3OGRlNDBmNzlhMWE5M2IwZjU2Yzc5ODcpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl8zNDg0Y2IwNzUyNzQ0OGI2OThjOGNlZTE4ZmNhZDEzNiA9IEwubWFya2VyKAogICAgICAgICAgICBbNDEuMzc2NzkyLCAyLjExMDc2MV0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzFjYjNlM2FmNWJlNDQ4NjlhYWUzZGQ3ZmYyZjFhY2VlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNWJjMDk4MWZmZWE2NDVkZTliZWY4NmM3ZjgwNTdhODQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNzc2ODQwYzVkYTMxNGVjYjgzY2Y5YjdmZWM5MDBjMzQgPSAkKGA8ZGl2IGlkPSJodG1sXzc3Njg0MGM1ZGEzMTRlY2I4M2NmOWI3ZmVjOTAwYzM0IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF81YmMwOTgxZmZlYTY0NWRlOWJlZjg2YzdmODA1N2E4NC5zZXRDb250ZW50KGh0bWxfNzc2ODQwYzVkYTMxNGVjYjgzY2Y5YjdmZWM5MDBjMzQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl8zNDg0Y2IwNzUyNzQ0OGI2OThjOGNlZTE4ZmNhZDEzNi5iaW5kUG9wdXAocG9wdXBfNWJjMDk4MWZmZWE2NDVkZTliZWY4NmM3ZjgwNTdhODQpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl8yNjBlZmJhYTk2YjY0MWMxYjMxMGMxMWZlMWE2ZWJmZSA9IEwubWFya2VyKAogICAgICAgICAgICBbNDEuMzk1OTM5LCAyLjE0OTMzNF0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzFjYjNlM2FmNWJlNDQ4NjlhYWUzZGQ3ZmYyZjFhY2VlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMDMzNzQ2NjI5ODBiNDA4NmE2NTU0MzRjYjJmZTQwMjcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMjA0NzA3NTcxNWVlNDczYjgyODVhMDA0MDNiM2FjYjIgPSAkKGA8ZGl2IGlkPSJodG1sXzIwNDcwNzU3MTVlZTQ3M2I4Mjg1YTAwNDAzYjNhY2IyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4yPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8wMzM3NDY2Mjk4MGI0MDg2YTY1NTQzNGNiMmZlNDAyNy5zZXRDb250ZW50KGh0bWxfMjA0NzA3NTcxNWVlNDczYjgyODVhMDA0MDNiM2FjYjIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl8yNjBlZmJhYTk2YjY0MWMxYjMxMGMxMWZlMWE2ZWJmZS5iaW5kUG9wdXAocG9wdXBfMDMzNzQ2NjI5ODBiNDA4NmE2NTU0MzRjYjJmZTQwMjcpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl9hNjExMDlhYzhhNDA0ZThkYWY0ZWRkZDM5NTkwMjE2MSA9IEwubWFya2VyKAogICAgICAgICAgICBbNDEuMzk3Nzc5LCAyLjEzMjg1M10sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzFjYjNlM2FmNWJlNDQ4NjlhYWUzZGQ3ZmYyZjFhY2VlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNGJhNDEwNDc2ZTYyNGM4YmJhNjU2OTkzODkxOGY1ZTQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYWExNDYxZDY2YmFmNDQxNWIwOWUyYzM4OGNlYmU1ZGMgPSAkKGA8ZGl2IGlkPSJodG1sX2FhMTQ2MWQ2NmJhZjQ0MTViMDllMmMzODhjZWJlNWRjIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80YmE0MTA0NzZlNjI0YzhiYmE2NTY5OTM4OTE4ZjVlNC5zZXRDb250ZW50KGh0bWxfYWExNDYxZDY2YmFmNDQxNWIwOWUyYzM4OGNlYmU1ZGMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl9hNjExMDlhYzhhNDA0ZThkYWY0ZWRkZDM5NTkwMjE2MS5iaW5kUG9wdXAocG9wdXBfNGJhNDEwNDc2ZTYyNGM4YmJhNjU2OTkzODkxOGY1ZTQpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl81ODZkZDA4MDAxYzU0NWUwYTM1YzlmMWRkN2IwYWRlYyA9IEwubWFya2VyKAogICAgICAgICAgICBbNDEuNDEwMTM5LCAyLjE0NzE4M10sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzFjYjNlM2FmNWJlNDQ4NjlhYWUzZGQ3ZmYyZjFhY2VlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfN2JlYmZhNjY5MGU5NDI4YWI5ODJjY2ZlMDMwYThjOGIgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMWEwYTU5ZGZlMWI4NDliYWEzMmU1OTk0OTU4Mzk3MDIgPSAkKGA8ZGl2IGlkPSJodG1sXzFhMGE1OWRmZTFiODQ5YmFhMzJlNTk5NDk1ODM5NzAyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF83YmViZmE2NjkwZTk0MjhhYjk4MmNjZmUwMzBhOGM4Yi5zZXRDb250ZW50KGh0bWxfMWEwYTU5ZGZlMWI4NDliYWEzMmU1OTk0OTU4Mzk3MDIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl81ODZkZDA4MDAxYzU0NWUwYTM1YzlmMWRkN2IwYWRlYy5iaW5kUG9wdXAocG9wdXBfN2JlYmZhNjY5MGU5NDI4YWI5ODJjY2ZlMDMwYThjOGIpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl9hZTllZmMzNWUwNzk0MzMzOGZhMTEzZjc4OWNhMmFhZSA9IEwubWFya2VyKAogICAgICAgICAgICBbNDEuNDEyNTQ2OTk5OTk5OTk2LCAyLjE2MjYzOV0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzFjYjNlM2FmNWJlNDQ4NjlhYWUzZGQ3ZmYyZjFhY2VlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYWU3ZDQzNmVmMTJjNGQxNThjMjgyNTk5YjEwNTJmYzMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYmQ4YmI2MzhjMWRkNDE5N2JiODg1YWMwYWQxMjRiMzEgPSAkKGA8ZGl2IGlkPSJodG1sX2JkOGJiNjM4YzFkZDQxOTdiYjg4NWFjMGFkMTI0YjMxIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hZTdkNDM2ZWYxMmM0ZDE1OGMyODI1OTliMTA1MmZjMy5zZXRDb250ZW50KGh0bWxfYmQ4YmI2MzhjMWRkNDE5N2JiODg1YWMwYWQxMjRiMzEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl9hZTllZmMzNWUwNzk0MzMzOGZhMTEzZjc4OWNhMmFhZS5iaW5kUG9wdXAocG9wdXBfYWU3ZDQzNmVmMTJjNGQxNThjMjgyNTk5YjEwNTJmYzMpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl83Y2FlYmM0NThlNTE0YjU2YmEyMGFhYTQ3YzU2MjExZiA9IEwubWFya2VyKAogICAgICAgICAgICBbNDEuNDI3MzgzLCAyLjE3NzAyOF0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzFjYjNlM2FmNWJlNDQ4NjlhYWUzZGQ3ZmYyZjFhY2VlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNGYyZmY5MDhjODY0NDRiMjkwYTQ4OWQ2NGMyZDZjMDYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZGI0MjI0NDZiZDEyNGZkYTgzZDQ1YTliYmY0YjUzY2UgPSAkKGA8ZGl2IGlkPSJodG1sX2RiNDIyNDQ2YmQxMjRmZGE4M2Q0NWE5YmJmNGI1M2NlIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF80ZjJmZjkwOGM4NjQ0NGIyOTBhNDg5ZDY0YzJkNmMwNi5zZXRDb250ZW50KGh0bWxfZGI0MjI0NDZiZDEyNGZkYTgzZDQ1YTliYmY0YjUzY2UpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl83Y2FlYmM0NThlNTE0YjU2YmEyMGFhYTQ3YzU2MjExZi5iaW5kUG9wdXAocG9wdXBfNGYyZmY5MDhjODY0NDRiMjkwYTQ4OWQ2NGMyZDZjMDYpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl83MjRlNGFmMmI3N2U0MTE5ODk5ZTQwMWI1MjVjMjdmNSA9IEwubWFya2VyKAogICAgICAgICAgICBbNDEuNDIwMzI3LCAyLjE4NjkwOV0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzFjYjNlM2FmNWJlNDQ4NjlhYWUzZGQ3ZmYyZjFhY2VlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYmRkMDU4ODMwNGUxNDZlNDg2NDI1ODAwNmU1OGI5OGYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNmM3NTg0MjVjNTlmNGZjOGJkY2U2YWU3YmJlYzZmMTkgPSAkKGA8ZGl2IGlkPSJodG1sXzZjNzU4NDI1YzU5ZjRmYzhiZGNlNmFlN2JiZWM2ZjE5IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iZGQwNTg4MzA0ZTE0NmU0ODY0MjU4MDA2ZTU4Yjk4Zi5zZXRDb250ZW50KGh0bWxfNmM3NTg0MjVjNTlmNGZjOGJkY2U2YWU3YmJlYzZmMTkpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl83MjRlNGFmMmI3N2U0MTE5ODk5ZTQwMWI1MjVjMjdmNS5iaW5kUG9wdXAocG9wdXBfYmRkMDU4ODMwNGUxNDZlNDg2NDI1ODAwNmU1OGI5OGYpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl9hNWMyOGU3NDM3ODk0MTJmODM5NTIzMGJiODAwMTZiNCA9IEwubWFya2VyKAogICAgICAgICAgICBbNDEuNDM5MjMzLCAyLjE4MjU4OF0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzFjYjNlM2FmNWJlNDQ4NjlhYWUzZGQ3ZmYyZjFhY2VlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZDI1MzRmYTFjNjM5NDZmNjk2YjJjNDk2MDIwZGNmNGQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNmY4NzYwZmFlNDFmNDFhM2EwMDg0ZTBmYTA4NTkzOTkgPSAkKGA8ZGl2IGlkPSJodG1sXzZmODc2MGZhZTQxZjQxYTNhMDA4NGUwZmEwODU5Mzk5IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9kMjUzNGZhMWM2Mzk0NmY2OTZiMmM0OTYwMjBkY2Y0ZC5zZXRDb250ZW50KGh0bWxfNmY4NzYwZmFlNDFmNDFhM2EwMDg0ZTBmYTA4NTkzOTkpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl9hNWMyOGU3NDM3ODk0MTJmODM5NTIzMGJiODAwMTZiNC5iaW5kUG9wdXAocG9wdXBfZDI1MzRmYTFjNjM5NDZmNjk2YjJjNDk2MDIwZGNmNGQpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl84ZjEyOWY4ZDdkNjE0Y2NjYjAwMjE3NGZkZWQ4NTdmNiA9IEwubWFya2VyKAogICAgICAgICAgICBbNDEuNDE0NTUyLCAyLjE5MjQyNV0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzFjYjNlM2FmNWJlNDQ4NjlhYWUzZGQ3ZmYyZjFhY2VlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYzdkOTdjOGJmYjQyNGQwZmJmOGM4ZDVhZjBlZDQxYjkgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZmEwNzg5MmIyM2I4NDk2NmEzZDNkMmM1ZDgxMzI3OWEgPSAkKGA8ZGl2IGlkPSJodG1sX2ZhMDc4OTJiMjNiODQ5NjZhM2QzZDJjNWQ4MTMyNzlhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9jN2Q5N2M4YmZiNDI0ZDBmYmY4YzhkNWFmMGVkNDFiOS5zZXRDb250ZW50KGh0bWxfZmEwNzg5MmIyM2I4NDk2NmEzZDNkMmM1ZDgxMzI3OWEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl84ZjEyOWY4ZDdkNjE0Y2NjYjAwMjE3NGZkZWQ4NTdmNi5iaW5kUG9wdXAocG9wdXBfYzdkOTdjOGJmYjQyNGQwZmJmOGM4ZDVhZjBlZDQxYjkpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl9lYjI0ZGExN2U2NjA0ZmYwYmM2NmVkMGU4MDg3ODZlZSA9IEwubWFya2VyKAogICAgICAgICAgICBbNDEuNDExOTcyOTk5OTk5OTk2LCAyLjE5MTI3OV0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzFjYjNlM2FmNWJlNDQ4NjlhYWUzZGQ3ZmYyZjFhY2VlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNzc3NDNhODY5NTg0NDI1MWJiZDY5NmYxZTQ2ZTYyNmQgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMDNkZGY5ZGQzNDZiNDk0NmFiNzBkYTIzNTdmYTJjYzIgPSAkKGA8ZGl2IGlkPSJodG1sXzAzZGRmOWRkMzQ2YjQ5NDZhYjcwZGEyMzU3ZmEyY2MyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4yPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF83Nzc0M2E4Njk1ODQ0MjUxYmJkNjk2ZjFlNDZlNjI2ZC5zZXRDb250ZW50KGh0bWxfMDNkZGY5ZGQzNDZiNDk0NmFiNzBkYTIzNTdmYTJjYzIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl9lYjI0ZGExN2U2NjA0ZmYwYmM2NmVkMGU4MDg3ODZlZS5iaW5kUG9wdXAocG9wdXBfNzc3NDNhODY5NTg0NDI1MWJiZDY5NmYxZTQ2ZTYyNmQpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl9mMzdhNTQ4NjQ1Mjk0MGRmODEwYjQyMDg0ZjI4Njc1NyA9IEwubWFya2VyKAogICAgICAgICAgICBbNDEuNDExNzc0LCAyLjIxOTMzMzAwMDAwMDAwMDJdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl8xY2IzZTNhZjViZTQ0ODY5YWFlM2RkN2ZmMmYxYWNlZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzIzMDE2YmJkZmQwMTQ0M2I4ZWFiZjNkOGExZWY3NTAyID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2FlY2IwZTY1MGQ2YTQ1ZTM4MGQ2YzkxNzQ2YmUyZGJhID0gJChgPGRpdiBpZD0iaHRtbF9hZWNiMGU2NTBkNmE0NWUzODBkNmM5MTc0NmJlMmRiYSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMjMwMTZiYmRmZDAxNDQzYjhlYWJmM2Q4YTFlZjc1MDIuc2V0Q29udGVudChodG1sX2FlY2IwZTY1MGQ2YTQ1ZTM4MGQ2YzkxNzQ2YmUyZGJhKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfZjM3YTU0ODY0NTI5NDBkZjgxMGI0MjA4NGYyODY3NTcuYmluZFBvcHVwKHBvcHVwXzIzMDE2YmJkZmQwMTQ0M2I4ZWFiZjNkOGExZWY3NTAyKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfYWI1MzUwZTk0YTkyNDQ5YmI2NzIwMzdlOWUyOTc3MDUgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQxLjQxMDk1LCAyLjIwODQ2Njk5OTk5OTk5OTddLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl8xY2IzZTNhZjViZTQ0ODY5YWFlM2RkN2ZmMmYxYWNlZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzA2ZmIzYjVmOTUwMjRiOWQ4YjgxYjg0MTU4YTQ3N2I0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzZiNDc4ZTE3OTM0NDQwMjhiNmFjN2YwZjZjOGNjZDQ1ID0gJChgPGRpdiBpZD0iaHRtbF82YjQ3OGUxNzkzNDQ0MDI4YjZhYzdmMGY2YzhjY2Q0NSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMDZmYjNiNWY5NTAyNGI5ZDhiODFiODQxNThhNDc3YjQuc2V0Q29udGVudChodG1sXzZiNDc4ZTE3OTM0NDQwMjhiNmFjN2YwZjZjOGNjZDQ1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfYWI1MzUwZTk0YTkyNDQ5YmI2NzIwMzdlOWUyOTc3MDUuYmluZFBvcHVwKHBvcHVwXzA2ZmIzYjVmOTUwMjRiOWQ4YjgxYjg0MTU4YTQ3N2I0KQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfNTQwOGM2YWNlZDcxNDc0ZTk0ZjAyM2IwNjRlNWYwNjMgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQxLjQwOTI4OSwgMi4xOTQ4NTldLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl8xY2IzZTNhZjViZTQ0ODY5YWFlM2RkN2ZmMmYxYWNlZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzRlM2VkNWZiZWY0NzRmM2Y5M2RkZjlkYzU0MjY1NWZjID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzg5NGM0MWI5OWI3ODRlNjM5ZjViYTZhOWUzZmFlYjRkID0gJChgPGRpdiBpZD0iaHRtbF84OTRjNDFiOTliNzg0ZTYzOWY1YmE2YTllM2ZhZWI0ZCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNGUzZWQ1ZmJlZjQ3NGYzZjkzZGRmOWRjNTQyNjU1ZmMuc2V0Q29udGVudChodG1sXzg5NGM0MWI5OWI3ODRlNjM5ZjViYTZhOWUzZmFlYjRkKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfNTQwOGM2YWNlZDcxNDc0ZTk0ZjAyM2IwNjRlNWYwNjMuYmluZFBvcHVwKHBvcHVwXzRlM2VkNWZiZWY0NzRmM2Y5M2RkZjlkYzU0MjY1NWZjKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfMjgzMGI4MDhhYmM1NDlkMzk1YjE1YzNmZGQ1ZTQ3ZWMgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQxLjQwMTU1NiwgMi4xOTE1NTJdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl8xY2IzZTNhZjViZTQ0ODY5YWFlM2RkN2ZmMmYxYWNlZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzdkZWQwNDAzNzM5NzQxODdhZGY5YjI4MjZlZDFiOGYwID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzliYThlODQzNjc1MjQyMGE5MmVmNTlkNDlhNTE1Zjc1ID0gJChgPGRpdiBpZD0iaHRtbF85YmE4ZTg0MzY3NTI0MjBhOTJlZjU5ZDQ5YTUxNWY3NSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfN2RlZDA0MDM3Mzk3NDE4N2FkZjliMjgyNmVkMWI4ZjAuc2V0Q29udGVudChodG1sXzliYThlODQzNjc1MjQyMGE5MmVmNTlkNDlhNTE1Zjc1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfMjgzMGI4MDhhYmM1NDlkMzk1YjE1YzNmZGQ1ZTQ3ZWMuYmluZFBvcHVwKHBvcHVwXzdkZWQwNDAzNzM5NzQxODdhZGY5YjI4MjZlZDFiOGYwKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfYWU1MzhiYzdmN2I3NDQ3Nzg5NmM0MGM0NDVlYzUxOWMgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQxLjM5OTQ0MiwgMi4yMDk3NDFdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl8xY2IzZTNhZjViZTQ0ODY5YWFlM2RkN2ZmMmYxYWNlZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2NlMzJkMmY2Y2VjMDQxN2Y5N2Q2YmFiZjU1NzE1YjMxID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2QwMTllZDdhNTY2YTQ2ZjNhYzJlNDcwOWMxYWVjYzg0ID0gJChgPGRpdiBpZD0iaHRtbF9kMDE5ZWQ3YTU2NmE0NmYzYWMyZTQ3MDljMWFlY2M4NCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MjwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfY2UzMmQyZjZjZWMwNDE3Zjk3ZDZiYWJmNTU3MTViMzEuc2V0Q29udGVudChodG1sX2QwMTllZDdhNTY2YTQ2ZjNhYzJlNDcwOWMxYWVjYzg0KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfYWU1MzhiYzdmN2I3NDQ3Nzg5NmM0MGM0NDVlYzUxOWMuYmluZFBvcHVwKHBvcHVwX2NlMzJkMmY2Y2VjMDQxN2Y5N2Q2YmFiZjU1NzE1YjMxKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfYTlmODQyYzM5ODAyNDhiZGIzMTNlMTcxMzFlMGFmOTAgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQxLjM3NDk3MSwgMi4xNzAwMDNdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl8xY2IzZTNhZjViZTQ0ODY5YWFlM2RkN2ZmMmYxYWNlZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2NlOGY3OTRiODMxYjRlMTY4ZDI4MzE0NzU2NTNmOWVjID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2FlZDU1NWI1NGYxMjQ5N2NiMWFkMDQ4NGUxYmEzOWRhID0gJChgPGRpdiBpZD0iaHRtbF9hZWQ1NTViNTRmMTI0OTdjYjFhZDA0ODRlMWJhMzlkYSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MjwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfY2U4Zjc5NGI4MzFiNGUxNjhkMjgzMTQ3NTY1M2Y5ZWMuc2V0Q29udGVudChodG1sX2FlZDU1NWI1NGYxMjQ5N2NiMWFkMDQ4NGUxYmEzOWRhKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfYTlmODQyYzM5ODAyNDhiZGIzMTNlMTcxMzFlMGFmOTAuYmluZFBvcHVwKHBvcHVwX2NlOGY3OTRiODMxYjRlMTY4ZDI4MzE0NzU2NTNmOWVjKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfM2MwNTUzY2Y5M2UxNDNhZWFmMWY1YWZmODQ5YmY3YWIgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQxLjM5NDU3NCwgMi4yMDY3MzhdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl8xY2IzZTNhZjViZTQ0ODY5YWFlM2RkN2ZmMmYxYWNlZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2VkNmI5OTgwZjJkMTQxYWRiNDk4MjkwNjViZmQwM2YyID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2YzY2E0OWUzMjZhMDRmNDY4MzZjYzRmYzIzMTNhMjhjID0gJChgPGRpdiBpZD0iaHRtbF9mM2NhNDllMzI2YTA0ZjQ2ODM2Y2M0ZmMyMzEzYTI4YyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZWQ2Yjk5ODBmMmQxNDFhZGI0OTgyOTA2NWJmZDAzZjIuc2V0Q29udGVudChodG1sX2YzY2E0OWUzMjZhMDRmNDY4MzZjYzRmYzIzMTNhMjhjKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfM2MwNTUzY2Y5M2UxNDNhZWFmMWY1YWZmODQ5YmY3YWIuYmluZFBvcHVwKHBvcHVwX2VkNmI5OTgwZjJkMTQxYWRiNDk4MjkwNjViZmQwM2YyKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfMzY2MzA0NjhlYzU0NDQzOGIwZTQ3ZjU0YzdjY2EyOGYgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQxLjM3OTU2MDk5OTk5OTk5NSwgMi4xNTQ3MTNdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl8xY2IzZTNhZjViZTQ0ODY5YWFlM2RkN2ZmMmYxYWNlZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzgyOWQ0ODg2NmJjNzRlNmE4NDY4NzY2YThkN2Y4MDcyID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzFlMjVlYjc3NzMyMDQ3ODViOWQzNTE1MTE3NTRlOWQzID0gJChgPGRpdiBpZD0iaHRtbF8xZTI1ZWI3NzczMjA0Nzg1YjlkMzUxNTExNzU0ZTlkMyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfODI5ZDQ4ODY2YmM3NGU2YTg0Njg3NjZhOGQ3ZjgwNzIuc2V0Q29udGVudChodG1sXzFlMjVlYjc3NzMyMDQ3ODViOWQzNTE1MTE3NTRlOWQzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfMzY2MzA0NjhlYzU0NDQzOGIwZTQ3ZjU0YzdjY2EyOGYuYmluZFBvcHVwKHBvcHVwXzgyOWQ0ODg2NmJjNzRlNmE4NDY4NzY2YThkN2Y4MDcyKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfOTdlNDc0OWI5Njc2NDczNWI1ODhhZjA0MWJhYmEwMDMgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQxLjM5NTU2NywgMi4xNTU3MTRdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl8xY2IzZTNhZjViZTQ0ODY5YWFlM2RkN2ZmMmYxYWNlZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2MwMmVkNTI0ZjVhYTRjMTNiNDgzYWViNTk5MjZkZmM4ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2ZlNGY5MGUxNzc0ZjRmNjhhNzU0OTA2ZjVlMjBmYWQyID0gJChgPGRpdiBpZD0iaHRtbF9mZTRmOTBlMTc3NGY0ZjY4YTc1NDkwNmY1ZTIwZmFkMiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYzAyZWQ1MjRmNWFhNGMxM2I0ODNhZWI1OTkyNmRmYzguc2V0Q29udGVudChodG1sX2ZlNGY5MGUxNzc0ZjRmNjhhNzU0OTA2ZjVlMjBmYWQyKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfOTdlNDc0OWI5Njc2NDczNWI1ODhhZjA0MWJhYmEwMDMuYmluZFBvcHVwKHBvcHVwX2MwMmVkNTI0ZjVhYTRjMTNiNDgzYWViNTk5MjZkZmM4KQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfMjkxMzU1Yzc2ODgxNGU0OWEyMzBiNmY4ZGM1MjdiYjIgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQxLjM5NDc4LCAyLjE1MzU1M10sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzFjYjNlM2FmNWJlNDQ4NjlhYWUzZGQ3ZmYyZjFhY2VlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfOTI1N2I2MzE1YTVhNGUyZjljMGM1MDhiNTA5NmJkZGYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOWIxNTdjMWE4OTczNGRhNDlmMjQ5YmJkYmZlZTYxOWEgPSAkKGA8ZGl2IGlkPSJodG1sXzliMTU3YzFhODk3MzRkYTQ5ZjI0OWJiZGJmZWU2MTlhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4yPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF85MjU3YjYzMTVhNWE0ZTJmOWMwYzUwOGI1MDk2YmRkZi5zZXRDb250ZW50KGh0bWxfOWIxNTdjMWE4OTczNGRhNDlmMjQ5YmJkYmZlZTYxOWEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl8yOTEzNTVjNzY4ODE0ZTQ5YTIzMGI2ZjhkYzUyN2JiMi5iaW5kUG9wdXAocG9wdXBfOTI1N2I2MzE1YTVhNGUyZjljMGM1MDhiNTA5NmJkZGYpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl83Mjc4MGM5M2NmNDA0Njg0ODBjYzQwODgwNDE3YTU5MSA9IEwubWFya2VyKAogICAgICAgICAgICBbNDEuMzkyMTA3LCAyLjE1NjUwNF0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzFjYjNlM2FmNWJlNDQ4NjlhYWUzZGQ3ZmYyZjFhY2VlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMjhiZWUzODkzNjdiNDkyOTljNWRmY2I0ZDFiM2Y4NzcgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZmVkZmU0MzVhMGNjNDQ0MzhkYzNiM2Y2OWVjYjBkNTMgPSAkKGA8ZGl2IGlkPSJodG1sX2ZlZGZlNDM1YTBjYzQ0NDM4ZGMzYjNmNjllY2IwZDUzIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8yOGJlZTM4OTM2N2I0OTI5OWM1ZGZjYjRkMWIzZjg3Ny5zZXRDb250ZW50KGh0bWxfZmVkZmU0MzVhMGNjNDQ0MzhkYzNiM2Y2OWVjYjBkNTMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl83Mjc4MGM5M2NmNDA0Njg0ODBjYzQwODgwNDE3YTU5MS5iaW5kUG9wdXAocG9wdXBfMjhiZWUzODkzNjdiNDkyOTljNWRmY2I0ZDFiM2Y4NzcpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl9kNTY5ZjBkNzZmMTM0OTFjODVjNTRkYzY4N2EyMmFmNSA9IEwubWFya2VyKAogICAgICAgICAgICBbNDEuMzc3MTE3OTk5OTk5OTk2LCAyLjE0NzA1XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfMWNiM2UzYWY1YmU0NDg2OWFhZTNkZDdmZjJmMWFjZWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84OWJhODdlMTQ1YWE0N2E1OTcwMDY3Y2I3NmIxNGJlMSA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF82MDhlNzdmZDMyMmU0MDQ3OGJkYzRlNjg3ZDk5MmM0MCA9ICQoYDxkaXYgaWQ9Imh0bWxfNjA4ZTc3ZmQzMjJlNDA0NzhiZGM0ZTY4N2Q5OTJjNDAiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzg5YmE4N2UxNDVhYTQ3YTU5NzAwNjdjYjc2YjE0YmUxLnNldENvbnRlbnQoaHRtbF82MDhlNzdmZDMyMmU0MDQ3OGJkYzRlNjg3ZDk5MmM0MCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgbWFya2VyX2Q1NjlmMGQ3NmYxMzQ5MWM4NWM1NGRjNjg3YTIyYWY1LmJpbmRQb3B1cChwb3B1cF84OWJhODdlMTQ1YWE0N2E1OTcwMDY3Y2I3NmIxNGJlMSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzAwZWJkOWQ5NzFlYTQ1ZTM4Y2MzMjA2YmZmNDU5YTZkID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0MS4zODkwMjgsIDIuMTUzOTY5XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfMWNiM2UzYWY1YmU0NDg2OWFhZTNkZDdmZjJmMWFjZWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9jYWZkMDE1NjdmNjU0OGYwYmU2NzRlM2I2YTE4OTA4NSA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9lMzg5ZTdlYmVkYTU0NDgwOTRjMTNjYTZmYTAyNDRlYSA9ICQoYDxkaXYgaWQ9Imh0bWxfZTM4OWU3ZWJlZGE1NDQ4MDk0YzEzY2E2ZmEwMjQ0ZWEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjI8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2NhZmQwMTU2N2Y2NTQ4ZjBiZTY3NGUzYjZhMTg5MDg1LnNldENvbnRlbnQoaHRtbF9lMzg5ZTdlYmVkYTU0NDgwOTRjMTNjYTZmYTAyNDRlYSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgbWFya2VyXzAwZWJkOWQ5NzFlYTQ1ZTM4Y2MzMjA2YmZmNDU5YTZkLmJpbmRQb3B1cChwb3B1cF9jYWZkMDE1NjdmNjU0OGYwYmU2NzRlM2I2YTE4OTA4NSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyX2E0MWYzZGQwZTMxZjRhMzQ5MjlkMjFhOTYyZGIzZGNmID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0MS4zOTAzOTIsIDIuMTUyNzU1XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfMWNiM2UzYWY1YmU0NDg2OWFhZTNkZDdmZjJmMWFjZWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8wNzRjODhkZmNhYjI0OWMwYjdiOTY3OGM1MTUwMGIyZiA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8xY2JhNTgyZWE4NDE0Y2Q4OTRiMDZiZTFiOWQwYzc4OSA9ICQoYDxkaXYgaWQ9Imh0bWxfMWNiYTU4MmVhODQxNGNkODk0YjA2YmUxYjlkMGM3ODkiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzA3NGM4OGRmY2FiMjQ5YzBiN2I5Njc4YzUxNTAwYjJmLnNldENvbnRlbnQoaHRtbF8xY2JhNTgyZWE4NDE0Y2Q4OTRiMDZiZTFiOWQwYzc4OSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgbWFya2VyX2E0MWYzZGQwZTMxZjRhMzQ5MjlkMjFhOTYyZGIzZGNmLmJpbmRQb3B1cChwb3B1cF8wNzRjODhkZmNhYjI0OWMwYjdiOTY3OGM1MTUwMGIyZikKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzM4OTI0MDdlNTYzMzQ3ZTM4MzQzMzEwYWUwY2ZjMjkwID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0MS4zNzQ4MDYsIDIuMTYwNzIzXSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfMWNiM2UzYWY1YmU0NDg2OWFhZTNkZDdmZjJmMWFjZWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9hZDMyZTY4MTg2ODI0NjdlYmU3YjBlNDY1ZGMzNmNmOSA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF8xYjQwY2ExZjBhNjI0ZjcyOWM5YjM2OTNjZjExZTQyNCA9ICQoYDxkaXYgaWQ9Imh0bWxfMWI0MGNhMWYwYTYyNGY3MjljOWIzNjkzY2YxMWU0MjQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2FkMzJlNjgxODY4MjQ2N2ViZTdiMGU0NjVkYzM2Y2Y5LnNldENvbnRlbnQoaHRtbF8xYjQwY2ExZjBhNjI0ZjcyOWM5YjM2OTNjZjExZTQyNCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgbWFya2VyXzM4OTI0MDdlNTYzMzQ3ZTM4MzQzMzEwYWUwY2ZjMjkwLmJpbmRQb3B1cChwb3B1cF9hZDMyZTY4MTg2ODI0NjdlYmU3YjBlNDY1ZGMzNmNmOSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzJjNjdhOTYwYWRjNTQ5ZDJiNjgwZWFjM2IzNWVhYmMxID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0MS4zNTMwNSwgMi4xMzM4NjZdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl8xY2IzZTNhZjViZTQ0ODY5YWFlM2RkN2ZmMmYxYWNlZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzM0NzA1MWY5OTVjZTQ1M2U4YzBhYTAxNmEzZjJiN2IyID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzU1OTA2ZGI3YjJhMjRmZjRhMzkxOTZjMzZjY2RiZDU1ID0gJChgPGRpdiBpZD0iaHRtbF81NTkwNmRiN2IyYTI0ZmY0YTM5MTk2YzM2Y2NkYmQ1NSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMzQ3MDUxZjk5NWNlNDUzZThjMGFhMDE2YTNmMmI3YjIuc2V0Q29udGVudChodG1sXzU1OTA2ZGI3YjJhMjRmZjRhMzkxOTZjMzZjY2RiZDU1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfMmM2N2E5NjBhZGM1NDlkMmI2ODBlYWMzYjM1ZWFiYzEuYmluZFBvcHVwKHBvcHVwXzM0NzA1MWY5OTVjZTQ1M2U4YzBhYTAxNmEzZjJiN2IyKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfZDEwZjE2OWY2Y2ZmNDIwMjg0NTZmM2FhOTQ0MWU5YmEgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQxLjM3NTI2NywgMi4xNDI1NTYwMDAwMDAwMDAzXSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfMWNiM2UzYWY1YmU0NDg2OWFhZTNkZDdmZjJmMWFjZWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9kZGYzNjI3NDE3ZWQ0ODdkYWQ5MDExZTc2MmVkMDdkZCA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF82MDk1ODZiZTU2ODQ0ZGZjOWI0MGZjZDMwYTdmNjRlNCA9ICQoYDxkaXYgaWQ9Imh0bWxfNjA5NTg2YmU1Njg0NGRmYzliNDBmY2QzMGE3ZjY0ZTQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2RkZjM2Mjc0MTdlZDQ4N2RhZDkwMTFlNzYyZWQwN2RkLnNldENvbnRlbnQoaHRtbF82MDk1ODZiZTU2ODQ0ZGZjOWI0MGZjZDMwYTdmNjRlNCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgbWFya2VyX2QxMGYxNjlmNmNmZjQyMDI4NDU2ZjNhYTk0NDFlOWJhLmJpbmRQb3B1cChwb3B1cF9kZGYzNjI3NDE3ZWQ0ODdkYWQ5MDExZTc2MmVkMDdkZCkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyX2FjZGQ1YzY1ODRiNzQyNmQ5NDQ1ZmI4OTA0NzAzMDIzID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0MS4zNzE1MTUsIDIuMTMyNzY3XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfMWNiM2UzYWY1YmU0NDg2OWFhZTNkZDdmZjJmMWFjZWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84MDdkNDliNjA1ZmQ0Yjc2YWEyMGFkMDA4YmNiOWJlYyA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85ZDYwZjBiM2QxNmE0N2ZmOTcwZWJiYmQ3ODBmYTI2ZCA9ICQoYDxkaXYgaWQ9Imh0bWxfOWQ2MGYwYjNkMTZhNDdmZjk3MGViYmJkNzgwZmEyNmQiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzgwN2Q0OWI2MDVmZDRiNzZhYTIwYWQwMDhiY2I5YmVjLnNldENvbnRlbnQoaHRtbF85ZDYwZjBiM2QxNmE0N2ZmOTcwZWJiYmQ3ODBmYTI2ZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgbWFya2VyX2FjZGQ1YzY1ODRiNzQyNmQ5NDQ1ZmI4OTA0NzAzMDIzLmJpbmRQb3B1cChwb3B1cF84MDdkNDliNjA1ZmQ0Yjc2YWEyMGFkMDA4YmNiOWJlYykKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzE4ZjMxMTg2NzMzNzRlZDBhNGE1OGYyZTEwNGY2NjFlID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0MS4zODcyODIsIDIuMTIzMjc1XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfMWNiM2UzYWY1YmU0NDg2OWFhZTNkZDdmZjJmMWFjZWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF8yYmRhMzY5YTExNTc0Y2VjYjMwNDVlNzQ3ODA2NWVjNiA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9lYTkzZGRiMWNkNjI0ZmZmOGU1YWZlZmE5NTllZGViMSA9ICQoYDxkaXYgaWQ9Imh0bWxfZWE5M2RkYjFjZDYyNGZmZjhlNWFmZWZhOTU5ZWRlYjEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzJiZGEzNjlhMTE1NzRjZWNiMzA0NWU3NDc4MDY1ZWM2LnNldENvbnRlbnQoaHRtbF9lYTkzZGRiMWNkNjI0ZmZmOGU1YWZlZmE5NTllZGViMSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgbWFya2VyXzE4ZjMxMTg2NzMzNzRlZDBhNGE1OGYyZTEwNGY2NjFlLmJpbmRQb3B1cChwb3B1cF8yYmRhMzY5YTExNTc0Y2VjYjMwNDVlNzQ3ODA2NWVjNikKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyX2JmYzk0OTY0YTdiNjQzYjc5NmI5NTZiYTJjYWNkOTlmID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0MS4zODc4MDYsIDIuMTI1MzU5OTk5OTk5OTk5N10sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzFjYjNlM2FmNWJlNDQ4NjlhYWUzZGQ3ZmYyZjFhY2VlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMDQxY2Q0OTIzOTRmNGIwOTkzMTExNjdiMjMyZDdjYTAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMTk3ZDI3NjJjNDg4NGM5NDhkZTE5NmFiOWQzNTc5MWUgPSAkKGA8ZGl2IGlkPSJodG1sXzE5N2QyNzYyYzQ4ODRjOTQ4ZGUxOTZhYjlkMzU3OTFlIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8wNDFjZDQ5MjM5NGY0YjA5OTMxMTE2N2IyMzJkN2NhMC5zZXRDb250ZW50KGh0bWxfMTk3ZDI3NjJjNDg4NGM5NDhkZTE5NmFiOWQzNTc5MWUpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl9iZmM5NDk2NGE3YjY0M2I3OTZiOTU2YmEyY2FjZDk5Zi5iaW5kUG9wdXAocG9wdXBfMDQxY2Q0OTIzOTRmNGIwOTkzMTExNjdiMjMyZDdjYTApCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl80NWUyYjZiMzJlMDI0YmY4OWRhNjgyNjZmZmVjZTFiYyA9IEwubWFya2VyKAogICAgICAgICAgICBbNDEuMzg3MDgyLCAyLjExMjI5M10sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzFjYjNlM2FmNWJlNDQ4NjlhYWUzZGQ3ZmYyZjFhY2VlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYTU2NDc5M2E2MjRiNGMzMmJjMTYwYzQ2NDNkNzUwZWUgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYjkwZTgzNzJhZTM1NDEzMjhmZTZjODhmYWEwNTgzMjYgPSAkKGA8ZGl2IGlkPSJodG1sX2I5MGU4MzcyYWUzNTQxMzI4ZmU2Yzg4ZmFhMDU4MzI2IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hNTY0NzkzYTYyNGI0YzMyYmMxNjBjNDY0M2Q3NTBlZS5zZXRDb250ZW50KGh0bWxfYjkwZTgzNzJhZTM1NDEzMjhmZTZjODhmYWEwNTgzMjYpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl80NWUyYjZiMzJlMDI0YmY4OWRhNjgyNjZmZmVjZTFiYy5iaW5kUG9wdXAocG9wdXBfYTU2NDc5M2E2MjRiNGMzMmJjMTYwYzQ2NDNkNzUwZWUpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl9kNDQ2YTA3ZjE1Mzg0YmYwYWFkNTdhZjBiNzdlNzhlMyA9IEwubWFya2VyKAogICAgICAgICAgICBbNDEuMzg1MzUsIDIuMTE3MDI3XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfMWNiM2UzYWY1YmU0NDg2OWFhZTNkZDdmZjJmMWFjZWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF82MzJmNGIyNDQ4Y2M0OWY2ODdmNDdmOTVhY2ZkNWFlYSA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF85YzQyOGY2OWQyNDM0NThhYmJhM2QwNjA0OGQ1MmU3ZCA9ICQoYDxkaXYgaWQ9Imh0bWxfOWM0MjhmNjlkMjQzNDU4YWJiYTNkMDYwNDhkNTJlN2QiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzYzMmY0YjI0NDhjYzQ5ZjY4N2Y0N2Y5NWFjZmQ1YWVhLnNldENvbnRlbnQoaHRtbF85YzQyOGY2OWQyNDM0NThhYmJhM2QwNjA0OGQ1MmU3ZCk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgbWFya2VyX2Q0NDZhMDdmMTUzODRiZjBhYWQ1N2FmMGI3N2U3OGUzLmJpbmRQb3B1cChwb3B1cF82MzJmNGIyNDQ4Y2M0OWY2ODdmNDdmOTVhY2ZkNWFlYSkKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyX2U1ZDhlZTUzY2QxMTQxYTQ4OTg2ZjBhMWZmMDFhN2NmID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0MS4zOTUwOCwgMi4xMzE1NjhdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl8xY2IzZTNhZjViZTQ0ODY5YWFlM2RkN2ZmMmYxYWNlZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzA1YWJkOGMzNTY4NzQ3MGY5M2NlMjRhOWY3N2ZlYTA5ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzcxMjkwMTNkZTQ1ZTRkYzBiNDNkNmJkMzIxNGM3YjQzID0gJChgPGRpdiBpZD0iaHRtbF83MTI5MDEzZGU0NWU0ZGMwYjQzZDZiZDMyMTRjN2I0MyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMDVhYmQ4YzM1Njg3NDcwZjkzY2UyNGE5Zjc3ZmVhMDkuc2V0Q29udGVudChodG1sXzcxMjkwMTNkZTQ1ZTRkYzBiNDNkNmJkMzIxNGM3YjQzKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfZTVkOGVlNTNjZDExNDFhNDg5ODZmMGExZmYwMWE3Y2YuYmluZFBvcHVwKHBvcHVwXzA1YWJkOGMzNTY4NzQ3MGY5M2NlMjRhOWY3N2ZlYTA5KQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfOTI3MDNiNDQ0M2I0NDllZThjY2JhMjhlZmU3N2NlYWIgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQxLjQwNjkwOCwgMi4xNjM1NTddLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl8xY2IzZTNhZjViZTQ0ODY5YWFlM2RkN2ZmMmYxYWNlZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2U4N2Y0ZDg2MjYwNjQwMjA4NWQwMDE3ZGMyYWRhYmIyID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2I4YTIyMDI1OWNjYjRjZGY5OWQzNjg4YWUzMDY2NGRhID0gJChgPGRpdiBpZD0iaHRtbF9iOGEyMjAyNTljY2I0Y2RmOTlkMzY4OGFlMzA2NjRkYSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZTg3ZjRkODYyNjA2NDAyMDg1ZDAwMTdkYzJhZGFiYjIuc2V0Q29udGVudChodG1sX2I4YTIyMDI1OWNjYjRjZGY5OWQzNjg4YWUzMDY2NGRhKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfOTI3MDNiNDQ0M2I0NDllZThjY2JhMjhlZmU3N2NlYWIuYmluZFBvcHVwKHBvcHVwX2U4N2Y0ZDg2MjYwNjQwMjA4NWQwMDE3ZGMyYWRhYmIyKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfMWE2ZThkN2VkZTczNDVkMzhmNmFkY2Q3YTZjMGFkYTggPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQxLjQzMDMyLCAyLjE2NDgxM10sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzFjYjNlM2FmNWJlNDQ4NjlhYWUzZGQ3ZmYyZjFhY2VlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNWJjYTJjM2YxNTViNDlhMzhhZjMwNDczYThmOWVjYjYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZmI4NWU1MWZkZDhjNGZhMmE3ODU0MTYzNDliM2MwYjMgPSAkKGA8ZGl2IGlkPSJodG1sX2ZiODVlNTFmZGQ4YzRmYTJhNzg1NDE2MzQ5YjNjMGIzIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF81YmNhMmMzZjE1NWI0OWEzOGFmMzA0NzNhOGY5ZWNiNi5zZXRDb250ZW50KGh0bWxfZmI4NWU1MWZkZDhjNGZhMmE3ODU0MTYzNDliM2MwYjMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl8xYTZlOGQ3ZWRlNzM0NWQzOGY2YWRjZDdhNmMwYWRhOC5iaW5kUG9wdXAocG9wdXBfNWJjYTJjM2YxNTViNDlhMzhhZjMwNDczYThmOWVjYjYpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl82MDIxOWYyYmU0Njk0M2JkOGJiMmYyYzJmOTNhYTVjOSA9IEwubWFya2VyKAogICAgICAgICAgICBbNDEuNDA5MjE5LCAyLjE3MDM5MzAwMDAwMDAwMDJdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl8xY2IzZTNhZjViZTQ0ODY5YWFlM2RkN2ZmMmYxYWNlZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzI5NTkxYzEzM2QzNzRkNWJiMWE0YzYwMGUxNmIyMGU0ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzIxZDhmMzg4YzM3ZTRkMDZhZmJkNzQ1OGE0N2E0N2E5ID0gJChgPGRpdiBpZD0iaHRtbF8yMWQ4ZjM4OGMzN2U0ZDA2YWZiZDc0NThhNDdhNDdhOSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMjk1OTFjMTMzZDM3NGQ1YmIxYTRjNjAwZTE2YjIwZTQuc2V0Q29udGVudChodG1sXzIxZDhmMzg4YzM3ZTRkMDZhZmJkNzQ1OGE0N2E0N2E5KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfNjAyMTlmMmJlNDY5NDNiZDhiYjJmMmMyZjkzYWE1YzkuYmluZFBvcHVwKHBvcHVwXzI5NTkxYzEzM2QzNzRkNWJiMWE0YzYwMGUxNmIyMGU0KQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfZjQwZDJhNDliZjc5NDc2Yzg0MDM1MzU1ZTdiYTI2NzkgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQxLjQ0NjM2NCwgMi4xNzYwMzQ5OTk5OTk5OTk3XSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfMWNiM2UzYWY1YmU0NDg2OWFhZTNkZDdmZjJmMWFjZWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF84OTIxMTFiNjgxMmU0Y2I0OTg2M2RhODI3MDlkYTc3YiA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9jYWI5Mjg1YjY4NDM0YmIwYTAxZWRmNTAwOWE0Yzg3NiA9ICQoYDxkaXYgaWQ9Imh0bWxfY2FiOTI4NWI2ODQzNGJiMGEwMWVkZjUwMDlhNGM4NzYiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzg5MjExMWI2ODEyZTRjYjQ5ODYzZGE4MjcwOWRhNzdiLnNldENvbnRlbnQoaHRtbF9jYWI5Mjg1YjY4NDM0YmIwYTAxZWRmNTAwOWE0Yzg3Nik7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgbWFya2VyX2Y0MGQyYTQ5YmY3OTQ3NmM4NDAzNTM1NWU3YmEyNjc5LmJpbmRQb3B1cChwb3B1cF84OTIxMTFiNjgxMmU0Y2I0OTg2M2RhODI3MDlkYTc3YikKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzVkY2E2ZGIxZGUxODQxZTdiYjQ3Yzc2Yjk4NTU2Yzk1ID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0MS40NDUzOTYsIDIuMTg4OTMxXSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfMWNiM2UzYWY1YmU0NDg2OWFhZTNkZDdmZjJmMWFjZWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF85MWMxZTI0MzBlYjk0NDY0YTk3NzkwZmUzNWQ3NjE5MiA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF9kNWZiZWY2ZjMyZWM0NTA4OGI5ZDM5ZGE4ZmFiODIxZSA9ICQoYDxkaXYgaWQ9Imh0bWxfZDVmYmVmNmYzMmVjNDUwODhiOWQzOWRhOGZhYjgyMWUiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwXzkxYzFlMjQzMGViOTQ0NjRhOTc3OTBmZTM1ZDc2MTkyLnNldENvbnRlbnQoaHRtbF9kNWZiZWY2ZjMyZWM0NTA4OGI5ZDM5ZGE4ZmFiODIxZSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgbWFya2VyXzVkY2E2ZGIxZGUxODQxZTdiYjQ3Yzc2Yjk4NTU2Yzk1LmJpbmRQb3B1cChwb3B1cF85MWMxZTI0MzBlYjk0NDY0YTk3NzkwZmUzNWQ3NjE5MikKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyX2YzOGI4MGFmZDBmMTRmMGFiYTg4NDQyMWM2NTJhZWIwID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0MS40MTQ1NTcsIDIuMTgwODQxOTk5OTk5OTk5N10sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzFjYjNlM2FmNWJlNDQ4NjlhYWUzZGQ3ZmYyZjFhY2VlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfZTI3MDg1NGQxZDdkNDA2NWFjNmM0MjQ3M2IwOWZjOTggPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfMjAzMmNlOGQxYzYyNGI0MmEzZGFhODdmMjUxMTc1YzkgPSAkKGA8ZGl2IGlkPSJodG1sXzIwMzJjZThkMWM2MjRiNDJhM2RhYTg3ZjI1MTE3NWM5IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9lMjcwODU0ZDFkN2Q0MDY1YWM2YzQyNDczYjA5ZmM5OC5zZXRDb250ZW50KGh0bWxfMjAzMmNlOGQxYzYyNGI0MmEzZGFhODdmMjUxMTc1YzkpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl9mMzhiODBhZmQwZjE0ZjBhYmE4ODQ0MjFjNjUyYWViMC5iaW5kUG9wdXAocG9wdXBfZTI3MDg1NGQxZDdkNDA2NWFjNmM0MjQ3M2IwOWZjOTgpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl82ZmQ1ZDMyZmU0ZjI0Nzk3YWIwNDU2N2ZjMDUxOWNhZCA9IEwubWFya2VyKAogICAgICAgICAgICBbNDEuNDIwNDg2LCAyLjIwMDMzOF0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzFjYjNlM2FmNWJlNDQ4NjlhYWUzZGQ3ZmYyZjFhY2VlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfN2I3MzlkZjBkM2FjNGY0ZmIwMTA1ZmJmNWZlN2FiZDAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZjNmNDdhODcyM2VjNDM3M2EwNzliMjE2MDI2ZDA0NDggPSAkKGA8ZGl2IGlkPSJodG1sX2YzZjQ3YTg3MjNlYzQzNzNhMDc5YjIxNjAyNmQwNDQ4IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF83YjczOWRmMGQzYWM0ZjRmYjAxMDVmYmY1ZmU3YWJkMC5zZXRDb250ZW50KGh0bWxfZjNmNDdhODcyM2VjNDM3M2EwNzliMjE2MDI2ZDA0NDgpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl82ZmQ1ZDMyZmU0ZjI0Nzk3YWIwNDU2N2ZjMDUxOWNhZC5iaW5kUG9wdXAocG9wdXBfN2I3MzlkZjBkM2FjNGY0ZmIwMTA1ZmJmNWZlN2FiZDApCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl8wYTgyMjYzOThlNTE0OWE0OTNkNWU2YWZhYzg5ZmRjMyA9IEwubWFya2VyKAogICAgICAgICAgICBbNDEuNDA3NTg0LCAyLjE5MjAyOF0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzFjYjNlM2FmNWJlNDQ4NjlhYWUzZGQ3ZmYyZjFhY2VlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYTRkNWZmODUxMjRmNDRjZGJhZjVlNDE2MzRiMzg4YzYgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfNGY0ZmQzY2JmNjdkNDdhMjk3ZGU4ODk5YTU2Mjg2OTQgPSAkKGA8ZGl2IGlkPSJodG1sXzRmNGZkM2NiZjY3ZDQ3YTI5N2RlODg5OWE1NjI4Njk0IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hNGQ1ZmY4NTEyNGY0NGNkYmFmNWU0MTYzNGIzODhjNi5zZXRDb250ZW50KGh0bWxfNGY0ZmQzY2JmNjdkNDdhMjk3ZGU4ODk5YTU2Mjg2OTQpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl8wYTgyMjYzOThlNTE0OWE0OTNkNWU2YWZhYzg5ZmRjMy5iaW5kUG9wdXAocG9wdXBfYTRkNWZmODUxMjRmNDRjZGJhZjVlNDE2MzRiMzg4YzYpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl83YjE0ZDgzM2U0MTQ0NmYwOTFlZTliZGFjM2Y5NzU3NiA9IEwubWFya2VyKAogICAgICAgICAgICBbNDEuNDIxMTU3LCAyLjIwMzQ3MDAwMDAwMDAwMDNdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl8xY2IzZTNhZjViZTQ0ODY5YWFlM2RkN2ZmMmYxYWNlZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2QxNDg1ZDhmMGEwYTQ2ZjE4Mjc3NDEwNzJlZmNjYWNmID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2ViMjk2M2Q0YTE0ZjQ5ZWE5MDFlNDJjM2ZkZDliYTI1ID0gJChgPGRpdiBpZD0iaHRtbF9lYjI5NjNkNGExNGY0OWVhOTAxZTQyYzNmZGQ5YmEyNSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfZDE0ODVkOGYwYTBhNDZmMTgyNzc0MTA3MmVmY2NhY2Yuc2V0Q29udGVudChodG1sX2ViMjk2M2Q0YTE0ZjQ5ZWE5MDFlNDJjM2ZkZDliYTI1KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfN2IxNGQ4MzNlNDE0NDZmMDkxZWU5YmRhYzNmOTc1NzYuYmluZFBvcHVwKHBvcHVwX2QxNDg1ZDhmMGEwYTQ2ZjE4Mjc3NDEwNzJlZmNjYWNmKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfZGNlZWYxMmZiM2FlNGYzZWJmMWViYTZmMzkxYWFiODYgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQxLjQxOTUwMzAwMDAwMDAwNiwgMi4yMTQ1NDVdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl8xY2IzZTNhZjViZTQ0ODY5YWFlM2RkN2ZmMmYxYWNlZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzJlMzk0OGIwYzU3MDQyOWY4NjJlMzc1ZjZmYWRlM2NhID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2NjYmMxNWE0Yjg4MDRkMTc5YzI5MGUwMTUxMDFkOTg5ID0gJChgPGRpdiBpZD0iaHRtbF9jY2JjMTVhNGI4ODA0ZDE3OWMyOTBlMDE1MTAxZDk4OSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMmUzOTQ4YjBjNTcwNDI5Zjg2MmUzNzVmNmZhZGUzY2Euc2V0Q29udGVudChodG1sX2NjYmMxNWE0Yjg4MDRkMTc5YzI5MGUwMTUxMDFkOTg5KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfZGNlZWYxMmZiM2FlNGYzZWJmMWViYTZmMzkxYWFiODYuYmluZFBvcHVwKHBvcHVwXzJlMzk0OGIwYzU3MDQyOWY4NjJlMzc1ZjZmYWRlM2NhKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfNGIzZGE1NzQxZjUwNDc5YjgxZjYyYWUwOWM2OWI1YmQgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQxLjM5NzI5NSwgMi4xOTcxNzhdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl8xY2IzZTNhZjViZTQ0ODY5YWFlM2RkN2ZmMmYxYWNlZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzkyYjg1NzE4ZDQzYTRmZGJiNzdiMGU0MGU4Y2M4OGMyID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzM3MDA2YjIxN2EyYTQyYzE4MjJjMzRjZDliOGU4NTlmID0gJChgPGRpdiBpZD0iaHRtbF8zNzAwNmIyMTdhMmE0MmMxODIyYzM0Y2Q5YjhlODU5ZiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOTJiODU3MThkNDNhNGZkYmI3N2IwZTQwZThjYzg4YzIuc2V0Q29udGVudChodG1sXzM3MDA2YjIxN2EyYTQyYzE4MjJjMzRjZDliOGU4NTlmKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfNGIzZGE1NzQxZjUwNDc5YjgxZjYyYWUwOWM2OWI1YmQuYmluZFBvcHVwKHBvcHVwXzkyYjg1NzE4ZDQzYTRmZGJiNzdiMGU0MGU4Y2M4OGMyKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfZDA2MTU3OTMyMDQ4NGFhZWJhYTViYTc5MGI4ZmQyMTUgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQxLjQwNzAyOSwgMi4yMDIzNzldLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl8xY2IzZTNhZjViZTQ0ODY5YWFlM2RkN2ZmMmYxYWNlZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzk1MGY4OWVhMDE3MjQ3N2RiMDQ2MmI4YmUwODg1YTAyID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2RhN2VmNmMxYzViYTQxODQ4MDNjYTIzZjUwNDdkNTQxID0gJChgPGRpdiBpZD0iaHRtbF9kYTdlZjZjMWM1YmE0MTg0ODAzY2EyM2Y1MDQ3ZDU0MSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOTUwZjg5ZWEwMTcyNDc3ZGIwNDYyYjhiZTA4ODVhMDIuc2V0Q29udGVudChodG1sX2RhN2VmNmMxYzViYTQxODQ4MDNjYTIzZjUwNDdkNTQxKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfZDA2MTU3OTMyMDQ4NGFhZWJhYTViYTc5MGI4ZmQyMTUuYmluZFBvcHVwKHBvcHVwXzk1MGY4OWVhMDE3MjQ3N2RiMDQ2MmI4YmUwODg1YTAyKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfYmQwZjMzMzQzODdhNDMxM2FlZjY3MzA0ZDBjNjllNTMgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQxLjQwNjY5MiwgMi4yMDUxMDhdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl8xY2IzZTNhZjViZTQ0ODY5YWFlM2RkN2ZmMmYxYWNlZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzcwNzk5MTZhMDZjZjQwMmJiYWE2YTY5ZDNhYjlkYWVhID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzkzNDRkNmJhYjQ1MDRlZTFhYTc3YTQ4YWJmMjFlMWU3ID0gJChgPGRpdiBpZD0iaHRtbF85MzQ0ZDZiYWI0NTA0ZWUxYWE3N2E0OGFiZjIxZTFlNyIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfNzA3OTkxNmEwNmNmNDAyYmJhYTZhNjlkM2FiOWRhZWEuc2V0Q29udGVudChodG1sXzkzNDRkNmJhYjQ1MDRlZTFhYTc3YTQ4YWJmMjFlMWU3KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfYmQwZjMzMzQzODdhNDMxM2FlZjY3MzA0ZDBjNjllNTMuYmluZFBvcHVwKHBvcHVwXzcwNzk5MTZhMDZjZjQwMmJiYWE2YTY5ZDNhYjlkYWVhKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfMWM2MjE2MDM1NWVmNDdlNWFlYTEwOTJmNjAxZmU5MmUgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQxLjM5NzM4NywgMi4xOTI2ODRdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl8xY2IzZTNhZjViZTQ0ODY5YWFlM2RkN2ZmMmYxYWNlZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzE2MTJkYmFiNjY3MzQ2ZmViMDZiM2E3NTg2Y2NmMDQxID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2U3NjY1MzcyYzI4OTQyYTliZGRmYTk3NDkyMjljNGFlID0gJChgPGRpdiBpZD0iaHRtbF9lNzY2NTM3MmMyODk0MmE5YmRkZmE5NzQ5MjI5YzRhZSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMTYxMmRiYWI2NjczNDZmZWIwNmIzYTc1ODZjY2YwNDEuc2V0Q29udGVudChodG1sX2U3NjY1MzcyYzI4OTQyYTliZGRmYTk3NDkyMjljNGFlKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfMWM2MjE2MDM1NWVmNDdlNWFlYTEwOTJmNjAxZmU5MmUuYmluZFBvcHVwKHBvcHVwXzE2MTJkYmFiNjY3MzQ2ZmViMDZiM2E3NTg2Y2NmMDQxKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfOTA2YTMyYTI0MWZhNDYwYWJhMzMyMzY2OGJhZGE5MDggPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQxLjQwNzU2MywgMi4yMjExMTNdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl8xY2IzZTNhZjViZTQ0ODY5YWFlM2RkN2ZmMmYxYWNlZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2MyMzFmZjNkNDk1YjRjZjI5YzYzMjVlMzNiNmVmMzA2ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2UyMTEwYjQyYmY5NjQzZmU4NDYwNTE1NDdmNWU0NTkxID0gJChgPGRpdiBpZD0iaHRtbF9lMjExMGI0MmJmOTY0M2ZlODQ2MDUxNTQ3ZjVlNDU5MSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYzIzMWZmM2Q0OTViNGNmMjljNjMyNWUzM2I2ZWYzMDYuc2V0Q29udGVudChodG1sX2UyMTEwYjQyYmY5NjQzZmU4NDYwNTE1NDdmNWU0NTkxKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfOTA2YTMyYTI0MWZhNDYwYWJhMzMyMzY2OGJhZGE5MDguYmluZFBvcHVwKHBvcHVwX2MyMzFmZjNkNDk1YjRjZjI5YzYzMjVlMzNiNmVmMzA2KQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfMmJiYzJkZDhmZTEyNDcxM2JmZDJjOGZmZmM5NzFkZWIgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQxLjQwNDk0NywgMi4xOTI1MDRdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl8xY2IzZTNhZjViZTQ0ODY5YWFlM2RkN2ZmMmYxYWNlZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwX2EyNmQwM2IyOTA5ZjQwMDU4ODVkNjg3NTk0ZDZmZTNlID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzYzODdiYzgxYjM3ZjQ1YTdhOWZjY2FiMzYxYzEzNzU0ID0gJChgPGRpdiBpZD0iaHRtbF82Mzg3YmM4MWIzN2Y0NWE3YTlmY2NhYjM2MWMxMzc1NCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfYTI2ZDAzYjI5MDlmNDAwNTg4NWQ2ODc1OTRkNmZlM2Uuc2V0Q29udGVudChodG1sXzYzODdiYzgxYjM3ZjQ1YTdhOWZjY2FiMzYxYzEzNzU0KTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfMmJiYzJkZDhmZTEyNDcxM2JmZDJjOGZmZmM5NzFkZWIuYmluZFBvcHVwKHBvcHVwX2EyNmQwM2IyOTA5ZjQwMDU4ODVkNjg3NTk0ZDZmZTNlKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfMDAyNjJlZTM2MzJkNDk3YTkxNWU2MTNlYTJmMDEzMTAgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQxLjM3ODkxMDk5OTk5OTk5NSwgMi4xOTE2OTZdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl8xY2IzZTNhZjViZTQ0ODY5YWFlM2RkN2ZmMmYxYWNlZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzg3MDZkNDcxYTQ5MjRmZDg5NTE2YjhjMzFlNTZhYjgzID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzk4YmY3YTQ1MTNjNTQ4NWI4ODQ3M2RkNzlhNDI1MWVkID0gJChgPGRpdiBpZD0iaHRtbF85OGJmN2E0NTEzYzU0ODViODg0NzNkZDc5YTQyNTFlZCIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfODcwNmQ0NzFhNDkyNGZkODk1MTZiOGMzMWU1NmFiODMuc2V0Q29udGVudChodG1sXzk4YmY3YTQ1MTNjNTQ4NWI4ODQ3M2RkNzlhNDI1MWVkKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfMDAyNjJlZTM2MzJkNDk3YTkxNWU2MTNlYTJmMDEzMTAuYmluZFBvcHVwKHBvcHVwXzg3MDZkNDcxYTQ5MjRmZDg5NTE2YjhjMzFlNTZhYjgzKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfYTc3YmVmM2M3MDY2NDAzYzljZjllMmE2ZWYyZTNkNDIgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQxLjM4NDAyNywgMi4xNTE1MjldLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl8xY2IzZTNhZjViZTQ0ODY5YWFlM2RkN2ZmMmYxYWNlZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzllYzE2MTZmOTcxODQxOWRhODE5NzY0YTA3ZDM0ZWQ4ID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sX2UzOTg4MTg5ZjU1YzQyMjg5YWEyMzcxNjQ5NTQ2YzIyID0gJChgPGRpdiBpZD0iaHRtbF9lMzk4ODE4OWY1NWM0MjI4OWFhMjM3MTY0OTU0NmMyMiIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfOWVjMTYxNmY5NzE4NDE5ZGE4MTk3NjRhMDdkMzRlZDguc2V0Q29udGVudChodG1sX2UzOTg4MTg5ZjU1YzQyMjg5YWEyMzcxNjQ5NTQ2YzIyKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfYTc3YmVmM2M3MDY2NDAzYzljZjllMmE2ZWYyZTNkNDIuYmluZFBvcHVwKHBvcHVwXzllYzE2MTZmOTcxODQxOWRhODE5NzY0YTA3ZDM0ZWQ4KQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfMTQ4OWQ2ZmY4OWYxNGEyMmJjYTBlZWFhZWMzNDViYWYgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQxLjM5MDY1MiwgMi4xNjI2MDJdLAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpY29uOiBuZXcgTC5JY29uLkRlZmF1bHQoKSwKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKS5hZGRUbyhtYXJrZXJfY2x1c3Rlcl8xY2IzZTNhZjViZTQ0ODY5YWFlM2RkN2ZmMmYxYWNlZSk7CiAgICAgICAgCiAgICAKICAgICAgICAgICAgdmFyIHBvcHVwXzE0ODBlMmU5ZTZmNzQyY2I4ZjFiNDRlZWFlY2Q3ZDhkID0gTC5wb3B1cCh7bWF4V2lkdGg6ICcxMDAlJwogICAgICAgICAgICAKICAgICAgICAgICAgfSk7CgogICAgICAgICAgICAKICAgICAgICAgICAgICAgIHZhciBodG1sXzllYmJkNGE5MmY2ODQ1ZmRiMWMyNjM0ZTJhYjhkODZhID0gJChgPGRpdiBpZD0iaHRtbF85ZWJiZDRhOTJmNjg0NWZkYjFjMjYzNGUyYWI4ZDg2YSIgc3R5bGU9IndpZHRoOiAxMDAuMCU7IGhlaWdodDogMTAwLjAlOyI+MTwvZGl2PmApWzBdOwogICAgICAgICAgICAgICAgcG9wdXBfMTQ4MGUyZTllNmY3NDJjYjhmMWI0NGVlYWVjZDdkOGQuc2V0Q29udGVudChodG1sXzllYmJkNGE5MmY2ODQ1ZmRiMWMyNjM0ZTJhYjhkODZhKTsKICAgICAgICAgICAgCgogICAgICAgICAgICBtYXJrZXJfMTQ4OWQ2ZmY4OWYxNGEyMmJjYTBlZWFhZWMzNDViYWYuYmluZFBvcHVwKHBvcHVwXzE0ODBlMmU5ZTZmNzQyY2I4ZjFiNDRlZWFlY2Q3ZDhkKQogICAgICAgICAgICA7CgogICAgICAgICAgICAKICAgICAgICAKICAgIAogICAgICAgIHZhciBtYXJrZXJfZTA0Njc3NmMwN2YxNDY2NGIxNGYxNDBlYzg5MjFlMGIgPSBMLm1hcmtlcigKICAgICAgICAgICAgWzQxLjM4ODE4LCAyLjE1NzMzNV0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzFjYjNlM2FmNWJlNDQ4NjlhYWUzZGQ3ZmYyZjFhY2VlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfNTNiZWQwNWRlMjYzNDFlZjlkYWQ4YzZjZDgyYjU1M2QgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfM2ZhMmM3MzY0MDA2NDYwMmEwY2FhNzJkOTExMTYxM2EgPSAkKGA8ZGl2IGlkPSJodG1sXzNmYTJjNzM2NDAwNjQ2MDJhMGNhYTcyZDkxMTE2MTNhIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF81M2JlZDA1ZGUyNjM0MWVmOWRhZDhjNmNkODJiNTUzZC5zZXRDb250ZW50KGh0bWxfM2ZhMmM3MzY0MDA2NDYwMmEwY2FhNzJkOTExMTYxM2EpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl9lMDQ2Nzc2YzA3ZjE0NjY0YjE0ZjE0MGVjODkyMWUwYi5iaW5kUG9wdXAocG9wdXBfNTNiZWQwNWRlMjYzNDFlZjlkYWQ4YzZjZDgyYjU1M2QpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl8zOGMzMjRiMWUyNGE0Yzc3YmFhY2U3MWNmNTg5NjUzNCA9IEwubWFya2VyKAogICAgICAgICAgICBbNDEuMzk3NTY4LCAyLjE2NzUwOF0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzFjYjNlM2FmNWJlNDQ4NjlhYWUzZGQ3ZmYyZjFhY2VlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfN2I2NTdmMDJkMDY4NDE1MWIyM2M0ODAyZGYzZTBlODAgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfN2VlZjMyNjgxOThhNGYzYTg1ZGY0OTJkYmU1ZGFmMzMgPSAkKGA8ZGl2IGlkPSJodG1sXzdlZWYzMjY4MTk4YTRmM2E4NWRmNDkyZGJlNWRhZjMzIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF83YjY1N2YwMmQwNjg0MTUxYjIzYzQ4MDJkZjNlMGU4MC5zZXRDb250ZW50KGh0bWxfN2VlZjMyNjgxOThhNGYzYTg1ZGY0OTJkYmU1ZGFmMzMpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl8zOGMzMjRiMWUyNGE0Yzc3YmFhY2U3MWNmNTg5NjUzNC5iaW5kUG9wdXAocG9wdXBfN2I2NTdmMDJkMDY4NDE1MWIyM2M0ODAyZGYzZTBlODApCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl81MWFlZjBlMDMwMDI0ZDhlYThjZjJlNWZmYzU2YjE2YSA9IEwubWFya2VyKAogICAgICAgICAgICBbNDEuMzk0MTQsIDIuMTY5NzYyXSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgaWNvbjogbmV3IEwuSWNvbi5EZWZhdWx0KCksCiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICkuYWRkVG8obWFya2VyX2NsdXN0ZXJfMWNiM2UzYWY1YmU0NDg2OWFhZTNkZDdmZjJmMWFjZWUpOwogICAgICAgIAogICAgCiAgICAgICAgICAgIHZhciBwb3B1cF9mNzczNjU1MGQ0ZWY0NGQ0ODJhZmZkODZiMzUzZWNhYiA9IEwucG9wdXAoe21heFdpZHRoOiAnMTAwJScKICAgICAgICAgICAgCiAgICAgICAgICAgIH0pOwoKICAgICAgICAgICAgCiAgICAgICAgICAgICAgICB2YXIgaHRtbF81MGI2NTAwYWVlY2Y0MThjYWQzODhhZTg3MWQ4ZDhmYSA9ICQoYDxkaXYgaWQ9Imh0bWxfNTBiNjUwMGFlZWNmNDE4Y2FkMzg4YWU4NzFkOGQ4ZmEiIHN0eWxlPSJ3aWR0aDogMTAwLjAlOyBoZWlnaHQ6IDEwMC4wJTsiPjE8L2Rpdj5gKVswXTsKICAgICAgICAgICAgICAgIHBvcHVwX2Y3NzM2NTUwZDRlZjQ0ZDQ4MmFmZmQ4NmIzNTNlY2FiLnNldENvbnRlbnQoaHRtbF81MGI2NTAwYWVlY2Y0MThjYWQzODhhZTg3MWQ4ZDhmYSk7CiAgICAgICAgICAgIAoKICAgICAgICAgICAgbWFya2VyXzUxYWVmMGUwMzAwMjRkOGVhOGNmMmU1ZmZjNTZiMTZhLmJpbmRQb3B1cChwb3B1cF9mNzczNjU1MGQ0ZWY0NGQ0ODJhZmZkODZiMzUzZWNhYikKICAgICAgICAgICAgOwoKICAgICAgICAgICAgCiAgICAgICAgCiAgICAKICAgICAgICB2YXIgbWFya2VyXzBmNzA2ZWU3YWQ0NzQzYzZiYTgwYmYwMTY2YWU0NzA5ID0gTC5tYXJrZXIoCiAgICAgICAgICAgIFs0MS40MDE3OTY5OTk5OTk5OTUsIDIuMTczMTY4OTk5OTk5OTk5N10sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzFjYjNlM2FmNWJlNDQ4NjlhYWUzZGQ3ZmYyZjFhY2VlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYmY0MWY1NzdkMWM3NDBiY2FkNjM2ZDlhOWM5NDNkODMgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfOGI3MjQ5OGU4YWQ3NDc3ZTkwYTY4NmZmZTY1YjBlOTIgPSAkKGA8ZGl2IGlkPSJodG1sXzhiNzI0OThlOGFkNzQ3N2U5MGE2ODZmZmU2NWIwZTkyIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9iZjQxZjU3N2QxYzc0MGJjYWQ2MzZkOWE5Yzk0M2Q4My5zZXRDb250ZW50KGh0bWxfOGI3MjQ5OGU4YWQ3NDc3ZTkwYTY4NmZmZTY1YjBlOTIpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl8wZjcwNmVlN2FkNDc0M2M2YmE4MGJmMDE2NmFlNDcwOS5iaW5kUG9wdXAocG9wdXBfYmY0MWY1NzdkMWM3NDBiY2FkNjM2ZDlhOWM5NDNkODMpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl8yMmE3N2YwNzUxNGE0NjU1YmU0ZjgxMWY1YmFmNWQ5NiA9IEwubWFya2VyKAogICAgICAgICAgICBbNDEuMzQyNDE3LCAyLjEyOTI0NV0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzFjYjNlM2FmNWJlNDQ4NjlhYWUzZGQ3ZmYyZjFhY2VlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfYWRmZGY2MTcxMTYyNGE0NTk1Y2I2ZTA0ZGVjOGEwNDEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfZGFjNjUyYzQ4ZjMzNDcwZmFjNTQ3NDY1MjJmNWM4ZjEgPSAkKGA8ZGl2IGlkPSJodG1sX2RhYzY1MmM0OGYzMzQ3MGZhYzU0NzQ2NTIyZjVjOGYxIiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF9hZGZkZjYxNzExNjI0YTQ1OTVjYjZlMDRkZWM4YTA0MS5zZXRDb250ZW50KGh0bWxfZGFjNjUyYzQ4ZjMzNDcwZmFjNTQ3NDY1MjJmNWM4ZjEpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl8yMmE3N2YwNzUxNGE0NjU1YmU0ZjgxMWY1YmFmNWQ5Ni5iaW5kUG9wdXAocG9wdXBfYWRmZGY2MTcxMTYyNGE0NTk1Y2I2ZTA0ZGVjOGEwNDEpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl84NGZjODY5MmMzNDU0M2EyYmE4M2I2MDQzMmRkMzJhMSA9IEwubWFya2VyKAogICAgICAgICAgICBbNDEuMzczMjkzLCAyLjE0NjM3Nl0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGljb246IG5ldyBMLkljb24uRGVmYXVsdCgpLAogICAgICAgICAgICAgICAgfQogICAgICAgICAgICApLmFkZFRvKG1hcmtlcl9jbHVzdGVyXzFjYjNlM2FmNWJlNDQ4NjlhYWUzZGQ3ZmYyZjFhY2VlKTsKICAgICAgICAKICAgIAogICAgICAgICAgICB2YXIgcG9wdXBfMzQ4YjdkYzBhZWM1NDcxOGFjYTBmNzRlZjMxZjk1MDEgPSBMLnBvcHVwKHttYXhXaWR0aDogJzEwMCUnCiAgICAgICAgICAgIAogICAgICAgICAgICB9KTsKCiAgICAgICAgICAgIAogICAgICAgICAgICAgICAgdmFyIGh0bWxfYjlmYzVkMjY5YjFiNDdkNjhlM2UzOGViZjdmMTNkZDcgPSAkKGA8ZGl2IGlkPSJodG1sX2I5ZmM1ZDI2OWIxYjQ3ZDY4ZTNlMzhlYmY3ZjEzZGQ3IiBzdHlsZT0id2lkdGg6IDEwMC4wJTsgaGVpZ2h0OiAxMDAuMCU7Ij4xPC9kaXY+YClbMF07CiAgICAgICAgICAgICAgICBwb3B1cF8zNDhiN2RjMGFlYzU0NzE4YWNhMGY3NGVmMzFmOTUwMS5zZXRDb250ZW50KGh0bWxfYjlmYzVkMjY5YjFiNDdkNjhlM2UzOGViZjdmMTNkZDcpOwogICAgICAgICAgICAKCiAgICAgICAgICAgIG1hcmtlcl84NGZjODY5MmMzNDU0M2EyYmE4M2I2MDQzMmRkMzJhMS5iaW5kUG9wdXAocG9wdXBfMzQ4YjdkYzBhZWM1NDcxOGFjYTBmNzRlZjMxZjk1MDEpCiAgICAgICAgICAgIDsKCiAgICAgICAgICAgIAogICAgICAgIAogICAgCiAgICAgICAgdmFyIG1hcmtlcl82MTAyNDU5NzRlMjI0YmUzYTMwNTVkYzRlZTFm |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment